From 0d12375bd2025901040bc028d46dca2d3505d939 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Mon, 30 Nov 2020 14:03:59 +1000 Subject: [PATCH 01/29] Added libraries --- src/lib/AErenderLauncher.AerenderParser.pas | 289 +++++++ src/lib/AErenderLauncher.IO.pas | 47 + ....pas => AErenderLauncher.Localization.pas} | 2 +- src/lib/AErenderLauncher.Math.pas | 18 + .../AErenderLauncher.MathExpParser.pas} | 6 +- src/lib/FMX.ComboEdit.Style.pas | 817 ++++++++++++++++++ src/lib/FMX.ComboEdit.pas | 518 +++++++++++ 7 files changed, 1693 insertions(+), 4 deletions(-) create mode 100644 src/lib/AErenderLauncher.AerenderParser.pas create mode 100644 src/lib/AErenderLauncher.IO.pas rename src/lib/{AErenderLauncherLocalization.pas => AErenderLauncher.Localization.pas} (99%) create mode 100644 src/lib/AErenderLauncher.Math.pas rename src/{MathExpParser.pas => lib/AErenderLauncher.MathExpParser.pas} (98%) create mode 100644 src/lib/FMX.ComboEdit.Style.pas create mode 100644 src/lib/FMX.ComboEdit.pas diff --git a/src/lib/AErenderLauncher.AerenderParser.pas b/src/lib/AErenderLauncher.AerenderParser.pas new file mode 100644 index 0000000..0f7dac6 --- /dev/null +++ b/src/lib/AErenderLauncher.AerenderParser.pas @@ -0,0 +1,289 @@ +unit AErenderLauncher.AerenderParser; + +(* AErender Data Parser *) +(* Lily Stilson // 2020 *) +(* MIT License *) +(* *) +(* Copyright (c) 2020 Alice Romanets *) +(* *) +(* Permission is hereby granted, free of charge, to any person obtaining a copy *) +(* of this software and associated documentation files (the "Software"), to deal *) +(* in the Software without restriction, including without limitation the rights *) +(* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell *) +(* copies of the Software, and to permit persons to whom the Software is *) +(* furnished to do so, subject to the following conditions: *) +(* *) +(* The above copyright notice and this permission notice shall be included in all *) +(* copies or substantial portions of the Software. *) +(* *) +(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *) +(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) +(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *) +(* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *) +(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, *) +(* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE *) +(* SOFTWARE. *) + +{$EXTENDEDCOMPATIBILITY ON} + +interface + +uses + System.SysUtils; + +type + /// + ///A set of constants that will determine current aerender state. + /// + TAErenderLogType = record + const + Information: Integer = 0; + Rendering: Integer = 1; + Error: Integer = 2; + end; + + /// + ///A more convinient way to call Single-type framerates. + /// + TFrameRate = Real; + + /// + ///Record that represents standard After Effects timecode data. + /// + TTimecode = record + H, MM, SS, FR: Cardinal; + private + {Private declartions} + public + constructor Create(const H, MM, SS, FR: Cardinal); + procedure Clear; + + /// + /// Converts parsed timecode to string with 'H:MM:SS:FR' format. + /// + function ToSingleString: String; + + /// + /// Converts parsed timecode to string with H, MM, SS, FR being separated. + /// + function ToExpandedString(Delimeter: String): String; + + /// + /// Calculates total ammount of seconds from timecode + /// + function ToSeconds(): Cardinal; + end; + + /// + ///Parsed aerender frame string data type. + /// + TAErenderFrameData = record + Timecode: TTimecode; + Frame: Cardinal; + ElapsedTime: Cardinal; + InitialMessage: String; + end; + + /// + /// Transforms string with 'H:MM:SS:FR' format to TTimecode. + /// + function StrToTimecode (const ITimecodeString: String; var ATimecode: TTimecode): String; + + function TimecodeToFrames (const Timecode: TTimecode; const FrameRate: TFrameRate): Cardinal; + + /// + ///Parses aerender log string and returns record of it's contents. + /// + function ParseAErenderFrameLogString (const ILogString: String): TAErenderFrameData; + + /// + ///Parses aerender log string and returns TTimecode value of render area duration. + /// + function ParseAErenderDurationLogString (const ILogString: String): TTimecode; + + /// + ///Parses aerender log string and returns TFrameRate value of render framerate. + /// + function ParseAErenderFrameRateLogString (const ILogString: String): TFrameRate; + +implementation + +constructor TTimecode.Create(const H, MM, SS, FR: Cardinal); +begin + Self.H := H; + Self.MM := MM; + Self.SS := SS; + Self.FR := FR; +end; + +procedure TTimecode.Clear; +begin + Self.H := 0; + Self.MM := 0; + Self.SS := 0; + Self.FR := 0; +end; + +function TTimecode.ToSingleString(): String; +begin + Result := Result + Self.H.ToString + ':'; + + if Self.MM < 10 then + Result := Result + '0' + Self.MM.ToString + ':' + else + Result := Result + Self.MM.ToString + ':'; + + if Self.SS < 10 then + Result := Result + '0' + Self.SS.ToString + ':' + else + Result := Result + Self.SS.ToString + ':'; + + if Self.FR < 10 then + Result := Result + '0' + Self.FR.ToString + else + Result := Result + Self.FR.ToString; +end; + +function TTimecode.ToExpandedString(Delimeter: String): String; +begin + Result := Result + 'H: ' + Self.H.ToString + Delimeter; + + if Self.MM < 10 then + Result := Result + 'M: ' + '0' + Self.MM.ToString + Delimeter + else + Result := Result + 'M: ' + Self.MM.ToString + ':'; + + if Self.SS < 10 then + Result := Result + 'S: ' + '0' + Self.SS.ToString + Delimeter + else + Result := Result + 'S: ' + Self.SS.ToString + Delimeter; + + if Self.FR < 10 then + Result := Result + 'FR: ' + '0' + Self.FR.ToString + else + Result := Result + 'FR: ' + Self.FR.ToString; +end; + +function TTimecode.ToSeconds(): Cardinal; +begin + // {H -> MM} + {MM -> SS} + SS + Result := (Self.H * 60 * 60) + (Self.MM * 60) + Self.SS; +end; + +function StrToTimecode (const ITimecodeString: String; var ATimecode: TTimecode): String; +var + ATimecodeString: String; +begin + ATimecodeString := ITimecodeString; + + //Read hours from timecode and remove it from temporary string + ATimecode.H := StrToInt(ATimecodeString[1]); + Delete(ATimecodeString, 1, 2); + { AString = '00:00:00 (1): 0 Seconds' } + + //Read minutes from timecode and remove it from temporary string + ATimecode.MM := StrToInt(ATimecodeString[1] + ATimecodeString[2]); + Delete(ATimecodeString, 1, 3); + { AString = '00:00 (1): 0 Seconds' } + + //Read seconds from timecode and remove it from temporary string + ATimecode.SS := StrToInt(ATimecodeString[1] + ATimecodeString[2]); + Delete(ATimecodeString, 1, 3); + { AString = '00 (1): 0 Seconds' } + + //Read frames from timecode and remove it from temporary string + ATimecode.FR := StrToInt(ATimecodeString[1] + ATimecodeString[2]); + Delete(ATimecodeString, 1, 4); + { AString = '1): 0 Seconds' } + + Result := ATimecodeString; +end; + +function TimecodeToFrames (const Timecode: TTimecode; const FrameRate: TFrameRate): Cardinal; +begin + Result := Trunc(Timecode.ToSeconds * FrameRate) + Timecode.FR; +end; + +function ParseAErenderFrameLogString (const ILogString: String): TAErenderFrameData; +var + AString: String; +begin + Result.InitialMessage := ILogString; + AString := ILogString; + { AString = 'PROGRESS: 0:00:00:00 (1): 0 Seconds' } + if ILogString.Contains('PROGRESS: ') then begin + //Get rid of PROGRESS response in initial string + AString := AString.Replace('PROGRESS: ', ''); + { AString = '0:00:00:00 (1): 0 Seconds' } + + AString := StrToTimecode(AString, Result.Timecode); + + //Read current render frame from timecode and remove it from temporary string + var AFrame: String; + while AString[1] <> ')' do begin + AFrame := AFrame + AString[1]; + Delete(AString, 1, 1); + end; + Result.Frame := StrToInt(AFrame); + Delete(AString, 1, 3); + { AString = '0 Seconds' } + + //Read elapsed time to render one frame and clear the string + var AElapsedTime: String; + while AString[2] <> 'S' do begin + AElapsedTime := AElapsedTime + AString[1]; + Delete(AString, 1, 1); + end; + Result.ElapsedTime := StrToInt(AElapsedTime); + { AString = ' Seconds' } + end else begin + raise Exception.Create('Parsing error (-1): Provided string cannot be interpreted as current rendering frame data.'); + end; +end; + +function ParseAErenderDurationLogString (const ILogString: String): TTimecode; +var + AString: String; +begin + AString := ILogString; + { AString = 'PROGRESS: Duration: 0:00:10:00' } + //if AString.Contains ('Duration: ') then begin + AString := AString.Replace('PROGRESS: Duration: ', ''); + { AString = '0:00:10:00' } + + AString := StrToTimecode (AString, Result); + { AString = '' } + {end else begin + raise Exception.Create('Parsing error (-1): Provided string cannot be parsed.'); + end;} + +end; + +function ParseAErenderFrameRateLogString (const ILogString: String): TFrameRate; +var + AString: String; +begin + //Added to get rid of decimal separators + if ILogString.Contains(',') then + AString := ILogString.Replace(',', '.') + else + AString := ILogString; + { AString = 'PROGRESS: Frame Rate: 60.00 (comp)' } + + //if AString.Contains ('Frame Rate: ') then begin + AString := AString.Replace('PROGRESS: Frame Rate: ', ''); + { AString = '60.00 (comp)' } + var AFrameRate: String; + for var i := 1 to Length (AString) do + if AString[i + 1] <> '(' then begin + AFrameRate := AFrameRate + AString[i] + end else begin + break + end; + Result := StrToFloat(AFrameRate); + {end else begin + raise Exception.Create('Parsing error (-1): Provided string cannot be parsed.'); + end;} +end; + +end. diff --git a/src/lib/AErenderLauncher.IO.pas b/src/lib/AErenderLauncher.IO.pas new file mode 100644 index 0000000..e14d7e1 --- /dev/null +++ b/src/lib/AErenderLauncher.IO.pas @@ -0,0 +1,47 @@ +unit AErenderLauncher.IO; + +interface + +uses + {$IFDEF MSWINDOWS} + Winapi.ShellAPI, Winapi.Windows; + {$ELSE MACOS} + Posix.Stdlib, Posix.Unistd; + {$ENDIF} + + function Open(Path: String): Integer; + function Execute(Path: String): Integer; + function BackgroundExecute(Path: String): Integer; + +implementation + +function Open(Path: String): Integer; +begin + {$IFDEF MSWINDOWS} + Result := ShellExecute(0, 'open', PWideChar(Path), nil, nil, SW_SHOW); + {$ELSE MACOS} + Result := _system(PAnsiChar('open ' + AnsiString('"' + Path + '"'))); + {$ENDIF} +end; + +function Execute(Path: String): Integer; +begin + {$IFDEF MSWINDOWS} + Result := ShellExecute(0, 'OPEN', PWideChar(Path), '', '', SW_SHOWNORMAL) + {$ELSE MACOS} + _system(PAnsiChar('chmox +x ' + AnsiString('"' + Path + '"'))); + Result := _system(PAnsiChar('command ' + AnsiString('"' + Path + '"'))); + {$ENDIF} +end; + +function BackgroundExecute(Path: String): Integer; +begin + {$IFDEF MSWINDOWS} + Result := ShellExecute(0, 'OPEN', PWideChar(Path), '', '', SW_HIDE) + {$ELSE MACOS} + _system(PAnsiChar('chmox +x ' + AnsiString('"' + Path + '"'))); + Result := _system(PAnsiChar('command ' + AnsiString('"' + Path + '" & disown'))); + {$ENDIF} +end; + +end. diff --git a/src/lib/AErenderLauncherLocalization.pas b/src/lib/AErenderLauncher.Localization.pas similarity index 99% rename from src/lib/AErenderLauncherLocalization.pas rename to src/lib/AErenderLauncher.Localization.pas index da0b9ba..b7ff2de 100644 --- a/src/lib/AErenderLauncherLocalization.pas +++ b/src/lib/AErenderLauncher.Localization.pas @@ -1,4 +1,4 @@ -unit AErenderLauncherLocalization; +unit AErenderLauncher.Localization; interface diff --git a/src/lib/AErenderLauncher.Math.pas b/src/lib/AErenderLauncher.Math.pas new file mode 100644 index 0000000..e5efbf9 --- /dev/null +++ b/src/lib/AErenderLauncher.Math.pas @@ -0,0 +1,18 @@ +unit AErenderLauncher.Math; + +interface + + function IfThenElse(const AValue: Boolean; const ATrue: Variant; const AFalse: Variant): Variant; + //function IfThenElse(const AValue: Boolean; const ATrue: TObject; const AFalse: TObject): TObject; overload; + +implementation + +function IfThenElse(const AValue: Boolean; const ATrue: Variant; const AFalse: Variant): Variant; +begin + if AValue then + Result := ATrue + else + Result := AFalse; +end; + +end. diff --git a/src/MathExpParser.pas b/src/lib/AErenderLauncher.MathExpParser.pas similarity index 98% rename from src/MathExpParser.pas rename to src/lib/AErenderLauncher.MathExpParser.pas index a8f4cb5..eadb442 100644 --- a/src/MathExpParser.pas +++ b/src/lib/AErenderLauncher.MathExpParser.pas @@ -1,9 +1,9 @@ -unit MathExpParser; +unit AErenderLauncher.MathExpParser; interface -Uses - Sysutils, Classes, DateUtils, Math, Generics.Collections; +uses + System.SysUtils, System.Classes, System.DateUtils, System.Math, System.Generics.Collections; type TAssociativity = (asNone,asLeft, asRight); diff --git a/src/lib/FMX.ComboEdit.Style.pas b/src/lib/FMX.ComboEdit.Style.pas new file mode 100644 index 0000000..e96311f --- /dev/null +++ b/src/lib/FMX.ComboEdit.Style.pas @@ -0,0 +1,817 @@ +{*******************************************************} +{ } +{ Delphi FireMonkey Platform } +{ } +{ Copyright(c) 2014-2020 Embarcadero Technologies, Inc. } +{ All rights reserved } +{ } +{*******************************************************} + +unit FMX.ComboEdit.Style; + +interface + +{$SCOPEDENUMS ON} + +uses + System.Types, System.UITypes, System.Classes, FMX.Presentation.Style, FMX.ComboEdit, FMX.Controls, FMX.Edit.Style, + FMX.Pickers, FMX.ListBox, FMX.Controls.Presentation, FMX.Controls.Model, FMX.Presentation.Messages; + +type + +{ TComboEditListBox } + + TStyledComboEdit = class; + + TComboEditListBox = class(TCustomListBox) + private + [Weak] FStyledComboEdit: TStyledComboEdit; + [Weak] FModel: TComboEditModel; + FInKeyDown: Boolean; + procedure HandleStringsChanged(const S: string; const Op: TCustomListBox.TStringsChangeOp); + protected + function GetDefaultStyleLookupName: string; override; + function GetObservers: TObservers; override; + /// Returns model of TComboEditModel + property Model: TComboEditModel read FModel write FModel; + public + constructor Create(AOwner: TComponent); override; + procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); override; + procedure MouseMove(Shift: TShiftState; X, Y: Single); override; + procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + end; + +{ TStyledComboEditBase } + + TStyledComboEditBase = class(TStyledEdit) + private + FNeedSetFocusAfterButtonClick: Boolean; + FArrowButton: TControl; + protected + procedure ApplyStyle; override; + procedure FreeStyle; override; + property ArrowButton: TControl read FArrowButton; + /// Drop down list + procedure PMDropDown(var AMessage: TDispatchMessage); message PM_DROPDOWN; + /// Close the drop-down list. + procedure PMCloseDropDown(var AMessage: TDispatchMessage); message PM_CLOSE_DROPDOWN; + procedure Change; override; + procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + procedure DoComboMouseDown(Sender:TObject; Button: TMouseButton; Shift: TShiftState; x, Y: Single); virtual; + /// Can user open Drop Down list by clicking on Arrow Button + function CanDropDown(const AButton: TMouseButton; const AShift: TShiftState): Boolean; virtual; + procedure DropDown; virtual; abstract; + /// This method closes the drop-down list, if it was opened + procedure CloseDropDown; virtual; abstract; + public + constructor Create(AOwner: TComponent); override; + end; + +{ TStyledComboEdit } + + TStyledComboEdit = class(TStyledComboEditBase) + private type + TStateInfo = record + Saved: Boolean; + ItemIndex: Integer; + Text: string; + end; + private + FPopup: TPopup; + FListBox: TComboEditListBox; + FListPicker: TCustomListPicker; + FSavedState: TStateInfo; + function GetComboEdit: TCustomComboEdit; + procedure RebuildList; + procedure RefreshSelectedItem; + function GetModel: TComboEditModel; + procedure DoOnValueChangedFromDropDownList(Sender: TObject; const AValueIndex: Integer); + procedure DoPopup(Sender: TObject); + procedure DoClosePopup(Sender: TObject); + protected + { Messages From Model} + procedure MMItemIndexChanged(var AMessage: TDispatchMessage); message MM_ITEMINDEX_CHANGED; + procedure MMItemHeightChanged(var AMessage: TDispatchMessage); message MM_ITEMHEIGHT_CHANGED; + procedure MMItemWidthChanged(var AMessage: TDispatchMessage); message MM_ITEMWIDTH_CHANGED; + procedure MMItemsChanged(var AMessage: TDispatchMessage); message MM_ITEMS_CHANGED; + { Messages From Controller } + /// Notification about initialization of presentation + procedure PMInit(var AMessage: TDispatchMessage); message PM_INIT; + procedure DoAbsoluteChanged; override; + protected + procedure MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); override; + procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); override; + /// Creates listbox for implementation Drop Down List + function CreateListBox: TComboEditListBox; virtual; + /// Updates width of drop down list + procedure DoRealign; override; + procedure DoExit; override; + /// Saves current value of ItemIndex and Text + procedure SaveState; + /// Restores previous saved save of ItemIndex and Text. + /// If control didn't save state, this method will ignore invoke. + procedure RestoreState; + /// Initialization of List Picker + procedure InitPicker(AListPicker: TCustomListPicker); virtual; + /// Recalculates popup size based on items + procedure RecalculatePopupSize; virtual; + /// Defines TComboEdit model class + function DefineModelClass: TDataModelClass; override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + /// Opens drop down list. If lsit is opened, it will close popup. + procedure DropDown; override; + /// Closes drop down list + procedure CloseDropDown; override; + procedure Clear; + /// Access to presented control + property ComboEdit: TCustomComboEdit read GetComboEdit; + /// Returns model of TComboEditModel + property Model: TComboEditModel read GetModel; + property ListBox: TComboEditListBox read FListBox; + /// Returns list picker, if current platform implements pickers + property ListPicker: TCustomListPicker read FListPicker; + end; + +implementation + +uses + System.SysUtils, System.Math.Vectors, System.Rtti, System.Math, FMX.Platform, FMX.Types, + FMX.Presentation.Factory, FMX.Forms, FMX.Text, FMX.Consts; + +{ TComboEditListBox } + +constructor TComboEditListBox.Create(AOwner: TComponent); +begin + inherited; + if AOwner is TStyledComboEdit then + FStyledComboEdit := TStyledComboEdit(AOwner); + OnStringsChanged := HandleStringsChanged; + FInKeyDown := False; + SetAcceptsControls(False); +end; + +procedure TComboEditListBox.KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); +begin + if not FInKeyDown then + begin + FInKeyDown := True; + try + if FStyledComboEdit <> nil then + FStyledComboEdit.KeyDown(Key, KeyChar, Shift) + else + inherited; + finally + FInKeyDown := False; + end; + end; +end; + +procedure TComboEditListBox.MouseMove(Shift: TShiftState; X, Y: Single); +var + Item: TListBoxItem; + LItemIndex: Integer; +begin + inherited; + Item := ItemByPoint(X, Y); + if Item <> nil then + begin + if Selected = Item then + Exit; + if Observers.IsObserving(TObserverMapping.EditLinkID) then + if TLinkObservers.EditLinkIsReadOnly(Observers) then + Exit + else + if not TLinkObservers.EditLinkEdit(Observers) then + Exit; + TLinkObservers.PositionLinkPosChanging(Observers); + LItemIndex := ItemIndex; + if MultiSelectStyle <> TMultiSelectStyle.None then + begin + if MultiSelectStyle = TMultiSelectStyle.Default then + begin + {$IFDEF MACOS} + if ssCommand in Shift then + {$ELSE} + if ssCtrl in Shift then + {$ENDIF} + Item.IsSelected := not Item.IsSelected + else + SelectRange(FirstSelectedItem, Item); + ItemIndex := Item.Index; + end; + end + else + ItemIndex := Item.Index; + if LItemIndex <> ItemIndex then + TLinkObservers.ListSelectionChanged(Observers); + end; +end; + +procedure TComboEditListBox.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); +var + LItem : TListBoxItem; + LItemIndex: Integer; +begin + inherited; + if (Parent is TPopup) and TPopup(Parent).IsOpen and (Model <> nil) then + begin + LItemIndex := ItemIndex; + if LocalRect.Contains(PointF(X, Y)) then + begin + LItem := ItemByPoint(X, Y) ; + if LItem <> nil then + begin + if LItem.Index <> Model.ItemIndex then + TLinkObservers.PositionLinkPosChanging(Observers); + if Observers.IsObserving(TObserverMapping.EditLinkID) then + begin + if TLinkObservers.EditLinkIsEditing(Observers) then + Model.ItemIndex := LItem.Index; + end + else + Model.ItemIndex := LItem.Index; + end; + if FStyledComboEdit <> nil then + FStyledComboEdit.SaveState; + Model.Change; + end; + TPopup(Parent).IsOpen := False; + if LItemIndex <> ItemIndex then + TLinkObservers.ListSelectionChanged(Observers); + end; +end; + +function TComboEditListBox.GetDefaultStyleLookupName: string; +begin + Result := 'listboxstyle'; // do not localize +end; + +function TComboEditListBox.GetObservers: TObservers; +begin + if Model <> nil then + Result := Model.Owner.Observers + else + Result := inherited; +end; + +procedure TComboEditListBox.HandleStringsChanged(const S: string; const Op: TCustomListBox.TStringsChangeOp); +begin + if (Model <> nil) and (Op = TCustomListBox.TStringsChangeOp.Added) then + Model.Items.Add(S); +end; + +{ TStyledComboEditBase } + +procedure TStyledComboEditBase.ApplyStyle; +var + DeviceSrv: IFMXDeviceService; +begin + inherited; + if FindStyleResource('arrow', FArrowButton) then + begin + FArrowButton.HitTest := True; + FArrowButton.Cursor := crArrow; + FArrowButton.OnMouseDown := Self.DoComboMouseDown; + if SupportsPlatformService(IFMXDeviceService, IInterface(DeviceSrv)) and (TDeviceFeature.HasTouchScreen in DeviceSrv.GetFeatures) then + FArrowButton.TouchTargetExpansion.Rect := TRectF.Create(0, DefaultTouchTargetExpansion, DefaultTouchTargetExpansion, 0) + end; +end; + +function TStyledComboEditBase.CanDropDown(const AButton: TMouseButton; const AShift: TShiftState): Boolean; +begin + Result := AButton = TMouseButton.mbLeft; +end; + +procedure TStyledComboEditBase.Change; +begin + RepaintEdit; + inherited; +end; + +constructor TStyledComboEditBase.Create(AOwner: TComponent); +var + DefaultValueService: IFMXDefaultPropertyValueService; + NeedSetFocusAfterButtonClick: TValue; +begin + inherited; + { Define default behavior for platforms } + NeedSetFocusAfterButtonClick := TValue.Empty; + if SupportsPlatformService(IFMXDefaultPropertyValueService, IInterface(DefaultValueService)) then + NeedSetFocusAfterButtonClick := DefaultValueService.GetDefaultPropertyValue(Self.ClassName, 'NeedSetFocusAfterButtonClick'); + + if NeedSetFocusAfterButtonClick.IsEmpty then + FNeedSetFocusAfterButtonClick := True + else + FNeedSetFocusAfterButtonClick := NeedSetFocusAfterButtonClick.AsBoolean; +end; + +procedure TStyledComboEditBase.DoComboMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); +var + OldPressed: Boolean; +begin + if CanDropDown(Button, Shift) then + begin + if FNeedSetFocusAfterButtonClick then + SetFocus; + OldPressed := Pressed; + try + Pressed := True; + DropDown; + finally + Pressed := OldPressed; + end; + end; +end; + +procedure TStyledComboEditBase.FreeStyle; +begin + if FArrowButton <> nil then + FArrowButton.OnMouseDown := nil; + FArrowButton := nil; + inherited; +end; + +procedure TStyledComboEditBase.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); +begin + inherited; + // if control does not support text input, then we must show drop down list, + // when user clicked on control. + if not Model.InputSupport then + DoComboMouseDown(Self, Button, Shift, X, Y); +end; + +procedure TStyledComboEditBase.PMCloseDropDown(var AMessage: TDispatchMessage); +begin + CloseDropDown; +end; + +procedure TStyledComboEditBase.PMDropDown(var AMessage: TDispatchMessage); +begin + DropDown; +end; + +{ TStyledComboEdit } + +procedure TStyledComboEdit.Clear; +begin + FListBox.Clear; +end; + +procedure TStyledComboEdit.CloseDropDown; +begin + if Model.DroppedDown then + begin + Model.DroppedDown := False; + case Model.DropDownKind of + TDropDownKind.Custom: + FPopup.IsOpen := False; + TDropDownKind.Native: + if FListPicker.IsShown then + FListPicker.Hide; + end; + end; +end; + +constructor TStyledComboEdit.Create(AOwner: TComponent); +var + PickerService: IFMXPickerService; +begin + inherited; + if TPlatformServices.Current.SupportsPlatformService(IFMXPickerService, PickerService) then + begin + FListPicker := PickerService.CreateListPicker; + FListPicker.Parent := Self; + FListPicker.OnValueChanged := DoOnValueChangedFromDropDownList; + FListPicker.OnHide := DoClosePopup; + FListPicker.OnShow := DoPopup; + end; + FPopup := TPopup.Create(Self); + FPopup.StyleLookup := 'combopopupstyle'; + FPopup.PlacementTarget := Self; + FPopup.Stored := False; + FPopup.Parent := Self; + FPopup.Locked := True; + FPopup.OnClosePopup := DoClosePopup; + FPopup.OnPopup := DoPopup; + FPopup.DragWithParent := True; + FListBox := CreateListBox; + if FListBox = nil then + raise EArgumentNilException.CreateFmt(SResultCanNotBeNil, ['CreateListBox']); + FListBox.Parent := FPopup; + FListBox.Stored := False; + FListBox.Align := TAlignLayout.Client; + FListBox.ShowCheckboxes := False; + FListBox.ItemIndex := -1; + FListBox.Model := Model; + FSavedState.Saved := False; +end; + +function TStyledComboEdit.CreateListBox: TComboEditListBox; +begin + Result := TComboEditListBox.Create(Self); +end; + +function TStyledComboEdit.DefineModelClass: TDataModelClass; +begin + Result := TComboEditModel; +end; + +destructor TStyledComboEdit.Destroy; +begin + FListPicker.Free; + FPopup.Free; + inherited; +end; + +procedure TStyledComboEdit.DoClosePopup(Sender: TObject); +begin + if not (csDestroying in ComponentState) then + begin + Model.DisableNotify; + try + Model.DroppedDown := False; + Model.SelStart := Model.Text.Length; + Model.SelLength := 0; + finally + Model.EnableNotify; + end; + Model.Caret.Show; + if Assigned(Model.OnClosePopup) then + Model.OnClosePopup(PresentedControl); + end; +end; + +procedure TStyledComboEdit.DoExit; +begin + inherited; + CloseDropDown; +end; + +procedure TStyledComboEdit.DoOnValueChangedFromDropDownList(Sender: TObject; const AValueIndex: Integer); +var + LSaveIndex: Integer; +begin + if not Model.ReadOnly then + begin + if Observers.IsObserving(TObserverMapping.EditLinkID) and not TLinkObservers.EditLinkEdit(Observers) then + // Editing not permitted, ignore change + Exit; + LSaveIndex := Model.ItemIndex; + Model.ItemIndex := AValueIndex; + if Model.ItemIndex <> LSaveIndex then + begin + if Observers.IsObserving(TObserverMapping.EditLinkID) then + begin + TLinkObservers.EditLinkModified(Observers); + TLinkObservers.EditLinkTrackUpdate(Observers); + end; + if Observers.IsObserving(TObserverMapping.ControlValueID) then + begin + TLinkObservers.ControlValueModified(Observers); + TLinkObservers.ControlValueTrackUpdate(Observers); + end; + end; + SaveState; + Model.Change; + end; +end; + +procedure TStyledComboEdit.DoPopup(Sender: TObject); +begin + if Assigned(Model.OnPopup) then + Model.OnPopup(PresentedControl); +end; + +procedure TStyledComboEdit.DoRealign; +begin + inherited; + if FDisableAlign then + Exit; + FDisableAlign := True; + try + FPopup.Width := Width; + finally + FDisableAlign := False; + end; +end; + +procedure TStyledComboEdit.DropDown; +begin + if Model.DroppedDown then + CloseDropDown + else + begin + SaveState; + Model.DroppedDown := True; + + if Model.Count > 0 then + case Model.DropDownKind of + TDropDownKind.Custom: + begin + RecalculatePopupSize; + FPopup.IsOpen := True; + if FPopup.IsOpen then + FListBox.SetFocus; + end; + TDropDownKind.Native: + begin + Model.SelLength := 0; + Model.Caret.Hide; + InitPicker(FListPicker); + FListPicker.Show; + end; + end; + end; +end; + +function TStyledComboEdit.GetComboEdit: TCustomComboEdit; +begin + Result := PresentedControl as TCustomComboEdit; +end; + +function TStyledComboEdit.GetModel: TComboEditModel; +begin + Result := inherited GetModel; +end; + +procedure TStyledComboEdit.InitPicker(AListPicker: TCustomListPicker); +begin + if Pressed or DoubleClick then + FListPicker.PreferedDisplayIndex := Screen.DisplayFromPoint(Screen.MousePos).Index + else + FListPicker.PreferedDisplayIndex := -1; + FListPicker.Values := Model.Items; + FListPicker.ItemIndex := Model.ItemIndex; + FListPicker.ItemWidth := Model.ItemWidth; + FListPicker.CountVisibleItems := Model.DropDownCount; +end; + +procedure TStyledComboEdit.KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); +var + LItemIndex: Integer; +begin + if Observers.IsObserving(TObserverMapping.EditLinkID) and ((KeyChar > ' ') or (Key in [vkUp, vkDown])) then + if TLinkObservers.EditLinkIsReadOnly(Observers) then + Exit + else + TLinkObservers.EditLinkEdit(Observers); + + inherited; + + if not Model.DroppedDown then + LItemIndex := Model.ItemIndex + else if Model.DropDownKind = TDropDownKind.Native then + LItemIndex := FListPicker.ItemIndex + else + LItemIndex := FListBox.ItemIndex; + + if (Model.Count > 0) and not Model.ReadOnly and Enabled then + begin + case Key of + vkUp: + LItemIndex := EnsureRange(LItemIndex - 1, 0, Model.Count - 1); + vkDown: + if (Shift = [ssAlt]) and not Model.DroppedDown then + DropDown + else + LItemIndex := EnsureRange(LItemIndex + 1, 0, Model.Count - 1); + vkReturn: + begin + Model.ItemIndex := LItemIndex; + Model.Change; + SaveState; + CloseDropDown; + end; + vkEscape: + begin + RestoreState; + CloseDropDown; + RefreshSelectedItem; + Exit; + end + else + Exit; + end; + TLinkObservers.ListSelectionChanged(Observers); + + if not Model.DroppedDown then + begin + Model.ItemIndex := LItemIndex; + Model.Change; + SaveState; + RefreshSelectedItem; + end + else if Model.DropDownKind = TDropDownKind.Native then + FListPicker.ItemIndex := LItemIndex + else + FListBox.ItemIndex := LItemIndex; + Key := 0; + KeyChar := #0; + end + // Mark Return key as processed to avoid handling of Default button + else if (Key = vkReturn) and ((Shift = [ssAlt]) or (Shift = [])) then + begin + Key := 0; + KeyChar := #0; + end; +end; + +procedure TStyledComboEdit.PMInit(var AMessage: TDispatchMessage); +begin + inherited; + FListBox.ItemHeight := Model.ItemHeight; +end; + +procedure TStyledComboEdit.DoAbsoluteChanged; +begin + inherited; + if FPopup.IsOpen and (not AbsoluteEnabled or not ParentedVisible or AbsoluteClipRect.IsEmpty) then + CloseDropDown; +end; + +procedure TStyledComboEdit.MMItemHeightChanged(var AMessage: TDispatchMessage); +begin + FListBox.ItemHeight := Model.ItemHeight; + if FListPicker <> nil then + FListPicker.ItemHeight := Model.ItemHeight; +end; + +procedure TStyledComboEdit.MMItemIndexChanged(var AMessage: TDispatchMessage); +begin + RefreshSelectedItem; +end; + +procedure TStyledComboEdit.MMItemsChanged(var AMessage: TDispatchMessage); +begin + RebuildList; + // if component is being loaded or destroyed, we don't assign items for picker. Because it can affect on life cycle of + // android activity (only for Android) and to bring to deadlock of java thread (Event in CallInUIThreadAndWaitFinishing + // and mutex in AndroidApi.AppGlue) + if (FListPicker <> nil) and ([csLoading, csDestroying] * ComponentState = []) then + FListPicker.Values := Model.Items; + if InRange(Model.ItemIndex, 0, Model.Count - 1) then + Text := Model.Items[Model.ItemIndex]; +end; + +procedure TStyledComboEdit.MMItemWidthChanged(var AMessage: TDispatchMessage); +begin + if (TDropDownKind.Native = Model.DropDownKind) and (FListPicker <> nil) then + FListPicker.ItemWidth := Model.ItemWidth + else + FPopup.Width := Model.ItemWidth; +end; + +procedure TStyledComboEdit.MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); +begin + inherited; + if Model.Count > 0 then + if WheelDelta < 0 then + Model.ItemIndex := EnsureRange(Model.ItemIndex + 1, 0, Model.Count - 1) + else + Model.ItemIndex := EnsureRange(Model.ItemIndex - 1, 0, Model.Count - 1); + Handled := True; +end; + +procedure TStyledComboEdit.RebuildList; +var + SavedItemIndex, I: Integer; + Item: TListBoxItem; +begin + if csDestroying in ComponentState then + Exit; + + FListBox.BeginUpdate; + try + SavedItemIndex := FListBox.ItemIndex; + FListBox.Clear; + for I := 0 to Model.Items.Count - 1 do + begin + Item := TListBoxItem.Create(nil); + Item.Parent := FListBox; + Item.AutoTranslate := AutoTranslate; + Item.Height := Model.ItemHeight; + Item.Stored := False; + Item.Locked := True; + Item.Text := Model.Items[I]; + end; + FListBox.ItemIndex := EnsureRange(SavedItemIndex, -1, FListBox.Count - 1); + finally + FListBox.EndUpdate; + end; +end; + +procedure TStyledComboEdit.RecalculatePopupSize; + + procedure UpdateItemBounds(Index: Integer); + var + Item: TListBoxItem; + NewHeight: Single; + Content: TControl; + begin + Item := FListBox.ItemByIndex(Index); + if (Item <> nil) and FindStyleResource('Content', Content) then // do not localize + begin + if Item.Height <> 0 then + NewHeight := Item.Height + else if Model.ItemHeight = 0 then + NewHeight := Content.Height + else + NewHeight := Model.ItemHeight; + Item.SetBounds(Item.Position.X, Item.Position.Y, Item.Width, NewHeight); + Item.ApplyStyleLookup; + end; + end; + + function CalculatePopupContentHeight: Single; + var + TotalHeight: Single; + Num: Integer; + I: Integer; + Item: TListBoxItem; + begin + TotalHeight := 0; + Num := 0; + for I := 0 to FListbox.Count - 1 do + begin + Item := FListbox.ListItems[I]; + if Item.Position.Y >= 0 then + begin + TotalHeight := TotalHeight + Item.Height; + Inc(Num); + end; + if Num >= Model.DropDownCount then + Break; + end; + Result := TotalHeight; + end; + +var + PopupContentHeight: Single; + I: Integer; +begin + // Resize list items to match the dimensions of the control + for I := 0 to FListbox.Count - 1 do + UpdateItemBounds(I); + + FPopup.ApplyStyleLookup; + if Pressed or DoubleClick then + FPopup.PreferedDisplayIndex := Screen.DisplayFromPoint(Screen.MousePos).Index + else + FPopup.PreferedDisplayIndex := -1; + if SameValue(Model.ItemWidth, 0, TEpsilon.Position) then + FPopup.Width := Width + else + FPopup.Width := Model.ItemWidth; + + if FListBox.ItemHeight > 0 then + PopupContentHeight := Min(Model.Count, Model.DropDownCount) * FListBox.ItemHeight + else + PopupContentHeight := CalculatePopupContentHeight; + FPopup.Height := FPopup.Padding.Top + PopupContentHeight + FListBox.BorderHeight + FPopup.Padding.Bottom; +end; + +procedure TStyledComboEdit.RefreshSelectedItem; +var + LValue: Integer; +begin + LValue := Model.ItemIndex; + if (Model.DropDownKind = TDropDownKind.Native) and (FListPicker <> nil) then + FListPicker.ItemIndex := LValue; + FListBox.ItemIndex := LValue; + if Model.ItemIndex >= 0 then + begin + SetTextInternal(Model.Items[Model.ItemIndex]); + Model.CaretPosition := Model.Text.Length; + Model.Caret.Visible := Model.InputSupport; + if not Model.ReadOnly then + Edit.SelectAll; + if ResourceControl <> nil then + ResourceControl.UpdateEffects; + Repaint; + end; +end; + +procedure TStyledComboEdit.RestoreState; +begin + if FSavedState.Saved then + begin + Model.ItemIndex := EnsureRange(FSavedState.ItemIndex, -1, Model.Count - 1); + if Model.ItemIndex = -1 then + Model.Text := FSavedState.Text; + end; +end; + +procedure TStyledComboEdit.SaveState; +begin + FSavedState.Saved := True; + FSavedState.ItemIndex := Model.ItemIndex; + FSavedState.Text := Model.Text; +end; + +initialization + TPresentationProxyFactory.Current.Register(TComboEdit, TControlType.Styled, TStyledPresentationProxy); +finalization + TPresentationProxyFactory.Current.Unregister(TComboEdit, TControlType.Styled, TStyledPresentationProxy); +end. diff --git a/src/lib/FMX.ComboEdit.pas b/src/lib/FMX.ComboEdit.pas new file mode 100644 index 0000000..1641678 --- /dev/null +++ b/src/lib/FMX.ComboEdit.pas @@ -0,0 +1,518 @@ +{*******************************************************} +{ } +{ Delphi FireMonkey Platform } +{ } +{ Copyright(c) 2014-2020 Embarcadero Technologies, Inc. } +{ All rights reserved } +{ } +{*******************************************************} + +unit FMX.ComboEdit; + +interface + +{$SCOPEDENUMS ON} + +uses + FMX.Types, FMX.Controls, FMX.ListBox, System.Classes, System.UITypes, FMX.Edit, FMX.Pickers, + FMX.Presentation.Messages, FMX.Controls.Presentation, FMX.Controls.Model; + +const + MM_ITEMHEIGHT_CHANGED = MM_EDIT_USER + 1; + MM_ITEMWIDTH_CHANGED = MM_EDIT_USER + 2; + MM_ITEMS_CHANGED = MM_EDIT_USER + 3; + MM_ITEMINDEX_CHANGED = MM_EDIT_USER + 4; + MM_DROPDOWNCOUNT_CHANGED = MM_EDIT_USER + 5; + MM_DROPDOWNKIND_CHANGED = MM_EDIT_USER + 6; + MM_LISTBOXRESOURCE_CHANGED = MM_EDIT_USER + 7; + MM_COMBOEDIT_USER = MM_EDIT_USER + 8; + PM_DROPDOWN = PM_EDIT_USER + 1; + PM_CLOSE_DROPDOWN = PM_EDIT_USER + 2; + PM_COMBOEDIT_USER = PM_EDIT_USER + 5; + +type + +{ TComboEditBase } + + // Base class for edit with the dropdown list. Provides action on a call popup + TComboEditBase = class(TCustomEdit) + public + constructor Create(AOwner: TComponent); override; + procedure DropDown; virtual; + /// This method trying to close the drop-down list + procedure CloseDropDown; + end; + +{ TComboEdit } + + TComboEditModel = class(TCustomEditModel) + public const + DefaultDropDownCount = 8; + DefaultItemHeight = 19; + DefaultDropDownKind = TDropDownKind.Native; + private + FItems: TStrings; + FNeedSetFocusAfterButtonClick: Boolean; + FDropDownCount: Integer; + FPlacement: TPlacement; + FItemHeight: Single; + FItemWidth: Single; + FDroppedDown: Boolean; + FDropDownKind: TDropDownKind; + FItemIndex: Integer; + FListBoxResource: string; + FOnPopup: TNotifyEvent; + FOnClosePopup: TNotifyEvent; + procedure DoItemsChanged(Sender: TObject); + procedure SetItemHeight(const Value: Single); + procedure SetItemWidth(const Value: Single); + function GetCount: Integer; + procedure SetItemIndex(const Value: Integer); + procedure SetDropDownCount(const Value: Integer); + procedure SetDropDownKind(const Value: TDropDownKind); + procedure SetListBoxResource(const Value: string); + protected + function GetTextSettingsClass: TTextSettingsInfo.TCustomTextSettingsClass; override; + function DoValidate(const Value: string): string; override; + public + constructor Create; override; + destructor Destroy; override; + property Count: Integer read GetCount; + property DropDownKind: TDropDownKind read FDropDownKind write SetDropDownKind; + property DroppedDown: Boolean read FDroppedDown write FDroppedDown; + property DropDownCount: Integer read FDropDownCount write SetDropDownCount; + property Items: TStrings read FItems; + property ItemIndex: Integer read FItemIndex write SetItemIndex; + property ItemHeight: Single read FItemHeight write SetItemHeight; + property ItemWidth: Single read FItemWidth write SetItemWidth; + property ListBoxResource: string read FListBoxResource write SetListBoxResource; + property NeedSetFocusAfterButtonClick: Boolean read FNeedSetFocusAfterButtonClick write FNeedSetFocusAfterButtonClick; + property Placement: TPlacement read FPlacement; + property OnClosePopup: TNotifyEvent read FOnClosePopup write FOnClosePopup; + property OnPopup: TNotifyEvent read FOnPopup write FOnPopup; + end; + + TCustomComboEdit = class(TComboEditBase) + private + function GetCount: Integer; + procedure SetItemIndex(const Value: Integer); + function GetItemIndex: Integer; + function GetDroppedDown: Boolean; + procedure SetDropDownCount(const Value: Integer); + function GetDropDownCount: Integer; + procedure SetDropDownKind(const Value: TDropDownKind); + function GetDropDownKind: TDropDownKind; + procedure SetListBoxResource(const Value: string); + function GetListBoxResource: string; + procedure SetItemHeight(const Value: Single); + function GetItemHeight: Single; + procedure SetItems(const Value: TStrings); + function GetItems: TStrings; + procedure SetItemWidth(const Value: Single); + function GetItemWidth: Single; + procedure SetOnClosePopup(const Value: TNotifyEvent); + function GetOnClosePopup: TNotifyEvent; + procedure SetOnPopup(const Value: TNotifyEvent); + function GetOnPopup: TNotifyEvent; + function GetModel: TComboEditModel; overload; + protected + function DefineModelClass: TDataModelClass; override; + function DefinePresentationName: string; override; + public + constructor Create(AOwner: TComponent); override; + procedure Clear; + property Action; + property Model: TComboEditModel read GetModel; + property DroppedDown: Boolean read GetDroppedDown; + property Count: Integer read GetCount; + property Font; + property TextAlign; + public + property DropDownCount: Integer read GetDropDownCount write SetDropDownCount; + property DropDownKind: TDropDownKind read GetDropDownKind write SetDropDownKind; + property ItemHeight: Single read GetItemHeight write SetItemHeight; + property ItemWidth: Single read GetItemWidth write SetItemWidth; + property Items: TStrings read GetItems write SetItems; + property ItemIndex: Integer read GetItemIndex write SetItemIndex; + property ListBoxResource: string read GetListBoxResource write SetListBoxResource; + property OnClosePopup: TNotifyEvent read GetOnClosePopup write SetOnClosePopup; + property OnPopup: TNotifyEvent read GetOnPopup write SetOnPopup; + end; + + TComboEdit = class(TCustomComboEdit) + published + property CanFocus default True; + property CanParentFocus; + property Cursor default crIBeam; + property DisableFocusEffect; + property DropDownCount default TComboEditModel.DefaultDropDownCount; + property DropDownKind default TComboEditModel.DefaultDropDownKind; + property KeyboardType; + property ReadOnly; + property ItemHeight; + property ItemWidth; + property Items; + property ItemIndex; + property ListBoxResource; + property Text; + property TextSettings; + property Position; + property Width; + property Height; + property HelpContext; + property HelpKeyword; + property HelpType; + property Hint; + property StyledSettings; + property StyleLookup; + property ClipChildren default False; + property ClipParent default False; + property DragMode default TDragMode.dmManual; + property EnableDragHighlight default True; + property Enabled default True; + property Locked default False; + property HitTest default True; + property Padding; + property Opacity; + property Margins; + property PopupMenu; + property RotationAngle; + property RotationCenter; + property Scale; + property Size; + property TouchTargetExpansion; + property Visible default True; + property Caret; + property KillFocusByReturn; + property ParentShowHint; + property ShowHint; + { events } + property OnChange; + property OnChangeTracking; + property OnTyping; + property OnApplyStyleLookup; + property OnClosePopup; + property OnPopup; + { Drag and Drop events } + property OnDragEnter; + property OnDragLeave; + property OnDragOver; + property OnDragDrop; + property OnDragEnd; + { Keyboard events } + property OnValidating; + property OnValidate; + property OnKeyDown; + property OnKeyUp; + { Mouse events } + property OnCanFocus; + property OnClick; + property OnDblClick; + property OnEnter; + property OnExit; + property OnMouseDown; + property OnMouseMove; + property OnMouseUp; + property OnMouseWheel; + property OnMouseEnter; + property OnMouseLeave; + property OnPainting; + property OnPaint; + property OnResize; + property OnResized; + property OnPresentationNameChoosing; + end; + +implementation + +uses + System.Types, System.SysUtils, System.Math, System.Math.Vectors, {$IFDEF MACOS}Macapi.CoreFoundation ,{$ENDIF} + FMX.Platform, FMX.ComboEdit.Style; + +{ TComboEditBase } + +constructor TComboEditBase.Create(AOwner: TComponent); +begin + inherited; + MinClipWidth := 14; + MinClipHeight := 14; +end; + +procedure TComboEditBase.DropDown; +begin + if HasPresentationProxy then + PresentationProxy.SendMessage(PM_DROPDOWN); +end; + +procedure TComboEditBase.CloseDropDown; +begin + if HasPresentationProxy then + PresentationProxy.SendMessage(PM_CLOSE_DROPDOWN); +end; + +{ TComboEdit } + +procedure TCustomComboEdit.Clear; +begin + Model.Items.Clear; +end; + +constructor TCustomComboEdit.Create(AOwner: TComponent); +begin + inherited; + Cursor := crIBeam; +end; + +function TCustomComboEdit.DefineModelClass: TDataModelClass; +begin + Result := TComboEditModel; +end; + +function TCustomComboEdit.DefinePresentationName: string; +begin + Result := 'ComboEdit-' + GetPresentationSuffix; +end; + +procedure TCustomComboEdit.SetDropDownCount(const Value: Integer); +begin + Model.DropDownCount := Value; +end; + +procedure TCustomComboEdit.SetDropDownKind(const Value: TDropDownKind); +begin + Model.DropDownKind := Value; +end; + +procedure TCustomComboEdit.SetItemHeight(const Value: Single); +begin + Model.ItemHeight := Value; +end; + +procedure TCustomComboEdit.SetItems(const Value: TStrings); +begin + Model.Items.Assign(Value); +end; + +procedure TCustomComboEdit.SetItemWidth(const Value: Single); +begin + Model.ItemWidth := Max(0, Value); +end; + +function TCustomComboEdit.GetItemHeight: Single; +begin + Result := Model.ItemHeight; +end; + +function TCustomComboEdit.GetItemIndex: Integer; +begin + Result := Model.ItemIndex; +end; + +function TCustomComboEdit.GetItems: TStrings; +begin + Result := Model.Items; +end; + +function TCustomComboEdit.GetItemWidth: Single; +begin + Result := Model.ItemWidth; +end; + +procedure TCustomComboEdit.SetItemIndex(const Value: Integer); +begin + Model.ItemIndex := Value; +end; + +function TCustomComboEdit.GetCount: Integer; +begin + Result := Model.Count; +end; + +function TCustomComboEdit.GetDropDownCount: Integer; +begin + Result := Model.DropDownCount; +end; + +function TCustomComboEdit.GetDropDownKind: TDropDownKind; +begin + Result := Model.DropDownKind; +end; + +function TCustomComboEdit.GetDroppedDown: Boolean; +begin + Result := Model.DroppedDown; +end; + +function TCustomComboEdit.GetListBoxResource: string; +begin + Result := Model.ListBoxResource; +end; + +function TCustomComboEdit.GetModel: TComboEditModel; +begin + Result := GetModel; +end; + +function TCustomComboEdit.GetOnClosePopup: TNotifyEvent; +begin + Result := Model.OnClosePopup; +end; + +function TCustomComboEdit.GetOnPopup: TNotifyEvent; +begin + Result := GetModel.OnPopup; +end; + +procedure TCustomComboEdit.SetListBoxResource(const Value: string); +begin + Model.ListBoxResource := Value; +end; + +procedure TCustomComboEdit.SetOnClosePopup(const Value: TNotifyEvent); +begin + Model.OnClosePopup := Value; +end; + +procedure TCustomComboEdit.SetOnPopup(const Value: TNotifyEvent); +begin + Model.OnPopup := Value; +end; + +type + TCustomEditBoxSettings = class(TTextSettingsInfo.TCustomTextSettings) + public + constructor Create(const AOwner: TPersistent); override; + published + property Font; + property FontColor; + property HorzAlign default TTextAlign.Leading; + property VertAlign default TTextAlign.Center; + end; + +{ TCustomEditBoxSettings } + +constructor TCustomEditBoxSettings.Create(const AOwner: TPersistent); +begin + inherited; + WordWrap := False; + HorzAlign := TTextAlign.Leading; + VertAlign := TTextAlign.Center; +end; + +{ TCustomComboEditModel } + +constructor TComboEditModel.Create; +begin + inherited; + FItems := TStringList.Create; + TStringList(FItems).CaseSensitive := True; + TStringList(FItems).OnChange := DoItemsChanged; + FDropDownKind := DefaultDropDownKind; + FDropDownCount := DefaultDropDownCount; + FItemHeight := DefaultItemHeight; + FItemWidth := 0; + FItemIndex := -1; + FDroppedDown := False; +end; + +destructor TComboEditModel.Destroy; +begin + FreeAndNil(FItems); + inherited; +end; + +procedure TComboEditModel.DoItemsChanged(Sender: TObject); +begin + SendMessage(MM_ITEMS_CHANGED); +end; + +function TComboEditModel.DoValidate(const Value: string): string; +var + SavedCaseSensitive: Boolean; +begin + Result := inherited DoValidate(Value); + // ComboEdit can include items with the same text values. In this case, when we validate new text value, it can + // potentially reset item index on the first matches. ItemIndex can be set from Presentation, when user select item + // in dropdown list. In this case we don't need to change ItemIndex value, if text was not really changed. + if Text <> Result then + ItemIndex := Items.IndexOf(Result); + // IndexOf uses case sensitive search. If we don't find nothing, we try to use case insensitive search. + if ItemIndex = -1 then + begin + SavedCaseSensitive := TStringList(FItems).CaseSensitive; + try + TStringList(FItems).CaseSensitive := False; + ItemIndex := Items.IndexOf(Result); + finally + TStringList(FItems).CaseSensitive := SavedCaseSensitive; + end; + end; +end; + +function TComboEditModel.GetCount: Integer; +begin + Result := FItems.Count; +end; + +function TComboEditModel.GetTextSettingsClass: TTextSettingsInfo.TCustomTextSettingsClass; +begin + Result := TCustomEditBoxSettings; +end; + +procedure TComboEditModel.SetDropDownCount(const Value: Integer); +begin + if FDropDownCount <> Value then + begin + FDropDownCount := Value; + SendMessage(MM_DROPDOWNCOUNT_CHANGED); + end; +end; + +procedure TComboEditModel.SetDropDownKind(const Value: TDropDownKind); +begin + if FDropDownKind <> Value then + begin + FDropDownKind := Value; + SendMessage(MM_DROPDOWNKIND_CHANGED); + end; +end; + +procedure TComboEditModel.SetItemHeight(const Value: Single); +begin + if not SameValue(FItemHeight, Value, TEpsilon.Vector) then + begin + FItemHeight := Value; + SendMessage(MM_ITEMHEIGHT_CHANGED); + end; +end; + +procedure TComboEditModel.SetItemIndex(const Value: Integer); +begin + if FItemIndex <> Value then + begin + FItemIndex := EnsureRange(Value, -1, Count - 1); + SendMessage(MM_ITEMINDEX_CHANGED); + end; +end; + +procedure TComboEditModel.SetItemWidth(const Value: Single); +begin + if not SameValue(FItemWidth, Value, TEpsilon.Vector) then + begin + FItemWidth := Value; + SendMessage(MM_ITEMWIDTH_CHANGED); + end; +end; + +procedure TComboEditModel.SetListBoxResource(const Value: string); +begin + if FListBoxResource <> Value then + begin + FListBoxResource := Value; + SendMessage(MM_LISTBOXRESOURCE_CHANGED); + end; +end; + +initialization + RegisterFmxClasses([TComboEdit]); +end. From 20ba3d09d5b88afb2ff6db48e68ccf6ba2a765da Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Mon, 30 Nov 2020 14:05:25 +1000 Subject: [PATCH 02/29] Used new libraries in form implementation --- src/AboutUnit.fmx | 3327 +++++++++++++++++++++++---------------------- src/AboutUnit.pas | 10 +- 2 files changed, 1668 insertions(+), 1669 deletions(-) diff --git a/src/AboutUnit.fmx b/src/AboutUnit.fmx index 3ebb333..bdbd838 100644 --- a/src/AboutUnit.fmx +++ b/src/AboutUnit.fmx @@ -53,107 +53,107 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000080000000800806000000C33E61 CB000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 0C7449444154785EED9D096C14E715C7DFFAD85DEFAEBDB6B131D86073D998D3 - E0636D5AB551E8212135A92A4551D52A6D1AA95552D284400285025112B5AADA - 4AA44D507AA9A952A557AA44254DA3465481A815B5F16D739F36E0D8D8E0737D - EDD5EFCD1163F0CE7C33DEF5CC7ADE4F7AECBCCFCBACE5F7DFF7DDDF00411004 - 411004411004411004411016C026BDCE05F267CDE567262291BB5EE34ABC8381 - F7474B924CF689E860E0D1C292C97E5C884730E42027334B6196CACC0DAEDC0D - 9096550C49F645906473B232E26EC29171084F76C358FF0518ED6D63257E6601 - 66416621663117432C0520071E836E078723173CCB1E82CCC20758F07DEC470E - 7C13C14B648289A00E063ADF8591AB7F8389895E5638C90CC5103321C44A0053 - 81B7DB0B2077D33390B9FC11484A710B3F25664738E887812B7F80DEE6433039 - 798395DC298459110B0160DD8E69DE05D9258FC2A2CD0721392553F809115B42 - C101E86E7A116E9FFF3DF3469961F580ED04DDCC5600187C96DA9D0BA1A8E655 - C828F892584CC495E1EBEFC1D5DAED00E3379937C14CB70866230031F8767B11 - 147EF1AF90E6DD20161373C2D8601B747EF030AB123A98A75B04D852D783187C - 87A300967DE11D7066AE178B893923D59907E9055B61A4F33D0885B03A90BB8C - 9AD02300CC1A76665E28DAFA26A42DA8144A89B927C5990BCE9CCDD07FF908F3 - 74B507F408005BFB1EC82BFB3E642DFFAA58441886DD5D04B6241BF87BFEC73C - CD22C054AE0529F57BCB2077ED5362116138180B8C89D020D716532D6FC6D48F - 19C3058B2B0F30D561D78F3003180B8C09C6468C1177E35EAB00ECE0CAA984F4 - 455BC522C234604C303662FB2C2E0240653921BBF89BA24B980E313638CFC2DD - B6E315809CFE33C0BB749B5042980F313619CCB8AB012D02480577BE0F9252F1 - 03083382B1C1188943F3311500BE2F153C0BAA4497302D628C50005CB1E57913 - 2A092D05EC99AB8512C2BC38324BD8BF385623C74D112D550013807BB1E812A6 - 25D59DCFFE9505A00A6F06C0F72543B2DD2B9410E625D92E3702316631CB0088 - 980508B3C3DD0044B40880988790002C0E09C0E290002C0E09C0E290002C4EC2 - 09203535155C2E17B72527734F8C59129EFE228A04E7981742C983C7C191BE4C - 283588A777ED81B5EBF91720373736C06BAF1C923C0B30317C15CE1FB98F5DE1 - 9271DC40A2B8442CE13280D3A96D5BE1868D65E0F678248FB89B84138037334B - BAE2233925052AABAA258FB89B8412407A7A06642F582079FCF8B67C4ABA22EE - 26A104B0A9BC026C36EE61EE4F58B9AA0416E4E4481E71270925804A5F8D74A5 - 0D148DAF86B2C04C248C00BCDE4C28295D2379DA2101CC4CC208A0C2570D4949 - FA7FDDFC8225B0B4B048F20899841180AF7A8B7435336DADCDD25574A831782F - 0921809CDC85B07CE52AC9BB9770380CFFF8FB3B92179D2A26229B2D61343F27 - 24C45F0303A7C4B5CE0EB87AF912DCEAC36374A2939595CDDA11A592A79FF48C - 0CC8F07AA39ADD8E03A7D171B9DC505EE583AF3CF4303CF6ED27E0F1277740DE - 2263965B26C450F0F32FFD18F2972C91BC7BF9D73FDF85B7DFFA0B7CFD1BDF82 - CFDEFF39A97466FEFBD13178E3F5DF4A9E7630C03F7DF9B0E4CDCCE0E0001CD8 - B30B2626F0DC86290A583B64DB035F86CD15559092327D751D0E57E3B0F5AC99 - 6F43C1054B962A061F696F6D155FDB5A845725CA2B7DC284925E468687852A47 - 09ECB1AC5937355FE14C4B83AF3DF228EC7FF1474236BB3BF846627A01A8A5FF - 919111B878E19C707DE6F429080450F4D14973B96043D926C9D30E061F3F538D - C22231512E292C84FD2FFC10EEDBFAF959F562E285A9058003386A02686B69FA - E41B39C952EE9953EDC2B512BE9A4F4B57FA181F1B93AEA28343D6AB4BD7C073 - 7B0F422E6BC49A15530B60F98A95AC07902B7933D3D234BDDE6C6AA897AEA283 - 19001B627A51CB32C80AD66BD9BEE359CDB397738DA90550A5327A170804E074 - 3B9EA83A454B73A36A1D8D7530B6C2F5A2767F045BF50E071ED8616E4C2B00AC - 2FD5A671CF9E6EBFA7A5ED67F5F385F3629B4089EA590C0DA3F0E60BA615C0EA - 356B852E9712D1BA4DCD8DEAD540F1EA52C8CAD63EB58C044900F147ADF11789 - 8485743F133CFD69618650E533A2110CE231BDB1251EF7E4C19402C03A1A074B - 94B87CE9120C0F0D49DE746EDFEA83EBD73A252F3A7AE70622117D67347775DD - 80A31FBC0FBF7EED1578E9E03E78F6E9EFC233DBBF033BBFF738B4B7AA8F61C4 - 03530A60FDC6326145AF12A754FE603C5960C9D24261A0299E04830138FEE1BF - E1C5037BE1851FEC81B7FEF42634D4D50A0245018F8E8E0AED16A330A500D4D2 - 3FD2CAFAFF4A34359C94AE9489E73A81C6FA3AD8BF6717FCF18DD7E1C6F56B52 - A9B9309D001CACDFBC7153B9E4CDCC2D96E271024809FC86F574774B5E745000 - 7A9699A9D1DF7F1B7E75F817D07FFBB654624E4C27804D9B2B5467D378067B90 - 8693B5D2557470C46E5571EC4FBE0987D4C70ACC80E904C093FE1BEAF0585C75 - 78BA8348B585178A986A3AD8E3F1C04F5E3EACB89D0B5BE00D27EBB85AE298DA - 2BAA7CAA29DEEF1F81DD3B9EE4EE8A3DB57337ACDBB051F266E6565F1FEC7B6E - 87E4CD21893C1D8C53B56A7BF9309895BE6A96296A540DDFC753BFBBDD1E1650 - 3C6BD97A984A003CE93F5E58B51A308D0032B3B285E159A3C09E475A5A9AE459 - 07D308A0CA571397EE182FB84A486DF4713E621E01D41897FE657C5B66B75024 - 1131850016E62D82A265CB25CF3870054FA6C6DDC7898E29046064E3EF4E8435 - 08ACF760254C21009F09D2BF4CB5C5AA01C3078270BF1EAE9A55E397AFFE1C3A - 3BAE4A9E767077D1CEDD7B254F99E7F7ED86EE8FBB24EF5E68202886F0CCC60D - 0D0D0A8B3F71E78F5E3B77E61474DDB82EDD51192B65014305208EEAA9D7B92D - 8D0D5C0B31D5A8E79C43C02AC9C82EE95C62A800561697701DF9D2C839FBA7C6 - C95A3E01607581CBBAAD80A102E069FD8F8EFA59FA3E2D79B3E3664F37773BC2 - 2A5BC90D13004EFAE04C9D1AADCD4D100AC56EC1E4C9DA13D29532583559E190 - 49C30450BA769D70EA971ABC4BBB78A9AFABE59A4AF678D2351D4899A8182600 - 9EF48F9B3E4EB54DDFF9335B70C5F0E54B17254F192BF4060C11406AAA1D3697 - AB3F751E974AF3ECC3D34A3D6763B06C73B9B046713E638800707326EE995723 - D6E95FA6A1BE96AB5B69B73BB8849AC81822005CF7AF06A6FFB616F5839FF430 - 383000E7CEF2F52CCACA2BA4AB2978968EE17E8044C090A16097DB0D1919CAFB - FE46FD7E6104305EE0B66D5C84A2066EDA181E9EBE03090F99C0534094C0EEEB - D060FC7EFFA8681C0A367C2E808831F3FDB87822B690002C0E09C0E290002C0E - 09C0E290002C0E09C0E290002C0E09C0E290002C8E560118739619A1054D31D2 - 2280080427673E978D300F628CB8CFB1E31100DE0C2D0C8111F5539708631163 - 84134072DC14E1CD0078A3204C0CF2ADA5228C438C115603AAC1477833002A2A - 0823BD339FCD4A980731462800390B28C29B01F0660118BDD500E1E0B0584498 - 0E8C0DC6086325C64C152D5500BB69601886AE1D158B08D321C486C5481440CC - AA00194C2B63D07BFECFA24B980E3136F83C1BEEAEA0960C8029650CC6FB9A60 - B8EB3F4229611E3026181B51005CF53FA22503E04D718DD930F4341E827044D3 - 80031147301618138C0DC73AC03BD1B7F92D38310249B63470E7CDEF45F38942 - 6FFB6F60A0F36D7635C00C9FA113570188A9C5DF73163C791560F714083E610C - FE9E3AB87EE220BBEA6336CA2C84C5BCE815002A2CCCEA9D7A48CFFF0CA438D5 - 17D813B1677CE022741CDFCEBA7F78F489A6D6BF8C5E01A085D8078FC360E709 - F0E46F8154A7BE273011FA181B3807578E3E01A1894BCCC31D289A52BF8CDE0D - F0B208821009F961E8CA71B07B5780D34B9B46E682C16BC7E0DAB11D100A5C66 - 9E5CEF6B4AFD327A0580A00050710108875926E8F80882E303E0595806B664F3 - 3F313111090786A1ABE1107437FD8CFDCD6FB09259051F99ED4948F8FFB12B89 - 01C767B16641B263192C5CFF1864153F08C9C9D63B7D391E844263D07FE108DC - 6CFF1D4BF978C64D3F333F3339EDE3975117B13A0A0B4580CF64C7CDF4E9CC32 - 98101683B7681B780BEF0777EE7AB025293F0786984E243C09FEDE76D6C6FA90 - 65D7F759E03F66A558D7E323C6C699718FF72B112B0120782FAC526421E0B71F - B3820B2025035C99A5E0C8288214770ED86C983162F9D9F3810844221310F4F7 - C1C450078C0E9C654D2C5CDC815D3BFCB6E3089F1C784CF9BABFF577128F20C8 - 4290C580DF7C0C385EA361B6A0E0CFCC54BB4A344CF138B227073D6681978967 - 20F0DE681870341404055F1D5904186C7C95EBF898065E66AE82217F0E059F0F - 39D871093A411004411004411004411004613900FE0FC9CFE14B9BFF54F80000 - 000049454E44AE426082} + 0C7C49444154785EED9D096C14E715C7DF7A4FEFAE776D833160637319CC69B0 + F1DAB46A23E82121955695A2A86A95368DD42A2969422081428128895A556D25 + D22628E9A1A64A955EA91235348D1A250A44AD128C0FC0E63E02061CC0069FEB + 6BAF7E6F8E808D77E69BD95DCFACE7FDA4C7CEFBBCCC5A7EFF7DDFFD0D100441 + 100441100441100441100461016CD2EB64207FD6647E66369218F79A51321D0C + BC3F5A8E64B24F2407038F16974CF6334226822107D9CECCC1CCC9CC07DEA215 + 905B500139AE999063F3B032623CF1C430C447AFC150F75918EC6C6525616611 + 66516631666917433A0520071E83EE02B7BB08FC73EF85FC391BC13B23C47EE4 + C63711BC244660F04603F45CDE0F0317FF0123239DAC7094198A216D42489700 + 6E07DEE52A81A2558F4370EEFD6077FA849F12A9118B84A1F7E29FA0F3C85E18 + 1DBDCA4AEE14424AA4430058B7639AF742E1A207A078F51E7038F2859F10E925 + 1AED81EB2DCFC0AD337F64DE2033AC1EB09DA09B540580C167A9DD3303CAEB5F + 8040C957C46222A3F45F7E0B2E366C0218BEC1BC1166BA45908A00C4E0BB5CE5 + 50F6E5BF436E7085584C4C0A43BDADD0FECE7DAC4AB8C43CDD22C096BA1EC4E0 + BBDD2530F74B6F80277FB9584C4C1A4E4F31E495AC8781F6B72016C3EA40EE32 + 6A428F00306BB89805A17CDDAB903B7D8D504A4C3E0E4F1178A6AD86EE0B6F32 + 4F577B408F00B0B5EF87E2AA1F41C1FC6F88458461B8FCE560CBB141F8FA47CC + D32C024CE55A90527FB00AA62F79542C220C07638131111AE4DA62AAE5CD98FA + 31637861D69ADD9063C7AE1F6106301618138C8D1823EEC6BD5601B8C0CBEAFC + BC99EBC522C234604C303662FB2C2302406579A0A0E23BA24B980E313638CFC2 + DDB6E315809CFE03905FBA412821CC87189B0033EE6A408B009CE09B1D821C17 + 7E0061463036182371683EAD02C0F739C13FAD567409D322C60805C0155B9E37 + A192D01CE0CC5F2C9410E6C59DBF88FD8B633572DC14D1520538C0ED9B25BA84 + 6971FA66B37F6501A8C29B01F07D76B0BB824209615EC4361A3602316669CB00 + 880D12095416616A12DC0D40448B0088290809C0E290002C0E09C0E290002C0E + 09C0E2649D009C4E2778BD5E6EB3DBB927C62C094F7F11458273CC33A062E341 + F004E60AA506F1D8D6EDB07439FF02E423CD4DF0E2F37B25CF020CF75D84B3FB + EF6157B8641C3790282E11CBBA0CE0F168DB56B8626515F8FC7EC923C6937502 + 08E61748577CD81D0E58535B2779C478B24A00797901289C364DF2F809ADFD8C + 74458C27AB04B0AABA066C36EE61EE4F59B070114C9B3E5DF2883BC92A01AC09 + D54B57DA40D184EA290B4C44D6082018CC8745954B244F3B248089C91A01D484 + EA202747FFAF3BBBA414E694954B1E2193350208D5AD95AE26A6F5D811E92A39 + D418BC9BAC10C0F4A219306FC142C9BB9B783C0EFFFAE71B92979C5A26229B2D + 6B343F2964C55F0303A7C4E5F64B70F1C279B8D985C7E824A7A0A090B5232A25 + 4F3F7981000482C1A4E672E1C06972BC5E1F54D786E0EBF7DE070F7EEF6178E8 + 91CD503CD398E596593114FCD4B33F83D9A5A5927737FFF9F77E78FDB5BFC1B7 + BEFD5DF8FCBA2F48A513F3BF0F0EC02B2FFF5EF2B48301FEC573FB246F627A7B + 7B60F7F6AD303282E736DCA684B543366CFC1AACAEA9058763ECEA3A1CAEC661 + EB94996A43C125A57314838FB41D3B26BEB61E155E95A85E13122694F432D0DF + 2F54394A608F65C9B2DBF3159EDC5CF8E6FD0FC0AE677E2A64B3F1C13712D30B + 402DFD0F0C0CC0B9B3A785EB93278E432482A24F4EAED70B2BAA56499E7630F8 + F8996A94958B89B2B4AC0C763DFD13B867FD1753EAC5640A530B000770D404D0 + 7AB4E5D36FE4284BB9278FB709D74A84EA3F2B5DE963786848BA4A0E0E592FAE + 5C024FEED80345AC116B564C2D8079F317B01E4091E44DCCD196B1F5664B53A3 + 74951CCC00D810D38B5A9641E6B35ECBA6CD4F689EBD9C6C4C2D805A95D1BB48 + 240227DAF044D5DB1C3DD2AC5A47631D8CAD70BDA8DD1FC156BDDB8D0776981B + D30A00EB4BB569DC5327DAEE6A698759FD7CF68CD82650A22E85A16114DE54C1 + B40258BC64A9D0E5522259B7E948B37A3550B1B8120A0AB54F2D23511240E651 + 6BFC25127121DD4F044F7F5A982154F98C6444A3784C6F7AC9C43D7930A500B0 + 8EC6C112252E9C3F0FFD7D7D9237965B37BBE0CAE576C94B8EDEB9814442DF19 + CD1D1D57E1DD77DE86DFBEF83C3CBB67273CF1D80FE0F14DDF872D3F7C08DA8E + A98F616402530A60F9CA2A6145AF12C755FE603C59A0744E9930D09449A2D108 + 1C7CFF3D7866F70E78FAC7DBE1B5BFBC0A4D0D870481A28007070785768B5198 + 52006AE91F39C6FAFF4AB4341D96AE94C9E43A81E6C606D8B57D2BFCF99597E1 + EA95CB52A9B9309D00DCACDFBC7255B5E44DCC4D96E271024809FC865DBF764D + F2928302D0B3CC4C8DEEEE5BF09B7DBF86EE5BB7A41273623A01AC5A5DA33A9B + C633D883341D3E245D250747EC1656A4FFE49B784C7DACC00C984E003CE9BFA9 + 018FC55587A73B88D45978A188A9A683FD7E3FFCFCB97D8ADBB9B005DE74B881 + AB258EA9BDA636A49AE2C3E101D8B6F911EEAED8A35BB6C1B2152B256F626E76 + 75C1CE27374BDE2492CDD3C13855ABB6970F83B92654C73245BDAAE1FB78EA77 + 9FCFCF028A672D5B0F53098027FD670AAB5603A611407E41A1303C6B14D8F3C8 + CDCD953CEB601A01D486EA33D21DE3055709A98D3E4E45CC23807AE3D2BF4C68 + 6D6A0B45B21153086046F14C289F3B4FF28C0357F0E46BDC7D9CED9842004636 + FEEE445883C07A0F56C21402089920FDCBD459AC1A307C2008F7EBE1AA59355E + 7AE157D07EE9A2E4690777176DD9B643F294796AE736B8F64987E4DD0D0D04A5 + 119ED9B8BEBE5E61F127EEFCD16BA74F1E878EAB57A43B2A63A52C60A800C451 + 3DF53AF7687313D7424C351A39E710B04A32B24B3A99182A8005158BB88E7C69 + E69CFD53E3F0213E01607581CBBAAD80A102E069FD0F0E8659FA3E2179A971E3 + FA35EE768455B6921B26009CF4C1993A358E1D6981582C7D0B260F1FFA50BA52 + 06AB262B1C326998002A972E134EFD52837769172F8D0D87B8A692FDFE3C4D07 + 52662B86098027FDE3A68FE3AD6377FEA40AAE18BE70FE9CE4296385DE802102 + 703A5DB0BA5AFDA9F3B8549A671F9E561A391B8355ABAB85358A53194304809B + 3371CFBC1AE94EFF324D8D87B8BA952E979B4BA8D98C2102C075FF6A60FA6F3D + AA7EF0931E7A7B7AE0F429BE9E4555758D74751B9EA563B81F201B306428D8EB + F34120A0BCEF6F301C16460033056EDBC645286AE0A68DFEFEB13B90F090093C + 054409ECBEF6F566EEF74F8AC6A160C3E702883433D58F8B27D20B09C0E29000 + 2C0E09C0E290002C0E09C0E290002C0E09C0E290002C0E09C0E2681380CD66CC + 5966043F1A63A4450009888C4E7C2E1B611EC418719F63C72300BC195A1CA203 + EAA72E11C622C6082780E4B829C29B01F0465118E9E55B4B4518871823AC0654 + 838FF06600545414063A273E9B95300F628C5000721650843703E0CD223078B3 + 09E2D17EB188301D181B8C11C64A8C992A5AAA0076D3483FF45D7E572C224C87 + 101B1623510069AB026430AD0C41E799BF8A2E613AC4D8E0F36CB8BB825A3200 + A6942118EE6A81BE8EFF0AA58479C098606C440170D5FF88960C8037C53566FD + 70A3792FC4129A061C880C82B1C098606C38D601DE89BECD6FD19101269D5CF0 + 154FED45F3D94257EBEFA0A7FD7576D5C30C9FA193510188A9257CE314F88B6B + C0E52F117CC218C2D71BE0CA477BD85517B34166312CE645AF00506171E8EF68 + 84BC599F0347AEFA027B22FD0C779F834B0737B1EE1F1E7DA2A9F52FA3570068 + 31F6C1C3D0DBFE21F867AF05A747DF1398087D0CF69C868FDF7B186223E79987 + 3B5034A57E19BD1BE065114421110B43DFC707C119980F9E206D1A990C7ADA0F + C095039B2116B9801E330CBEA6D42FA35700080A00151781787C18FADA3F80E8 + 700FF8675481CD6EFE27266623F1483F7434ED85EB2DBF647FF3ABAC24A5E023 + A99E8484FF1FBB9218707C166B01D8DD73A168F9835058F155B0DBAD77FA7226 + 88C586E0D6D937A1B3ED0F2CE5E31937DDCCC2CCE4B48F5F465DA4EB282C1401 + 3E931D37D3E7310B3021CC8260F9060896AD035FD172B0E5283F0786184B223E + 0AE1CE36D6C67A1F7A2FBDCD02FF092BC5BA1E1F3136CC8C7BBC5F89740900C1 + 7B6195220B01BFFD9815BC008E0078F32BC11D2807876F3AD86C9831D2F9D953 + 8104241223100D77C148DF25D6C83BC59A58B8B803BB76F86DC7113E39F098F2 + 757FEBEF2413419085208B01BFF91870BC46C36C41C19F98DBED2AD130C5E3C8 + 9E1CF4B4055E269381C07BA361C0D15010147C75641160B0F155AEE3D31A7899 + C90A86FC39147C3EE4606724E804411004411004411004411084E500F83F2B0F + E44ABBC27B940000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_128.png' @@ -165,215 +165,215 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000001000000010008060000005C72A8 66000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 19F249444154785EEDDD09741D577907F0EF6979DA2C3DADB66559B6E45D5E14 - CBB66C67C1092127349400871E68819EF67481362DD05087E034244058439B42 - E1140870A0A50D5BA1C0A14081903DCDE2459B37BCC4B622D9962D6B7F929EB6 - D7FBCDDC8BC6CF92FDDE9B3B6FE6BDF9FFCEB999B963D97E72F4FDE7CE768700 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000020B50272992962BF9F4CFBFEC01D51B95462FB692BDD0B44 - 7D7EEBF7C1EB736D0748962A785E5A8BDFBA3D2DA56381C416372F635B96684C - F515EB3AC07C628B5CF56744537D6B63B1CBB4904E05612D662E70D5E7F5F99A - F5F7A825403CAC05CD8D8B7FBE66FD1AA6FA9E970E45A18A583555DCD957B482 - 8A5A2A2ADF42C1D2060A16AFA6BC921ACA29A8A6AC4048FCD67CF13500718A8E - D34C7490A6C6CE5164A89B26868FD3C4C0110AF71DA0B14BAF8A2F989EA3C506 - 82E783C0CB013057D173CBF95DCBCB5B4045B5B75271CDED54B4F846CACEA911 - DB019C353DD54DE1F3CFD370F7AF28FCEA1314898C88AD5396A68220360C3CC7 - 8B013057E1F31E5E157E2E85965E4FA52BDF49C54BDE4081AC22B10DC01DD199 - 300D9FFD390D9CFC360D76BD20B64C8AA68260BE518167782D00620B7FB6E889 - F2A862CD5BA8B2E12E0A2ED828FA00DE323172907A8F7C892E1DFB89E84544B3 - 86416C10788257024015BE2A7EB5C70F1AAD7CD51DB470D37D945BB85AF401BC - 6D72F4385DE8F834F59DF885E84DC8661D11786634E08500B016BF2A7CDEE307 - 29BF6C0DD5ECFC241596DF2CFA00E965B4EF69EA7EF17E1AEF3F267A1C026A44 - C041E08910E08273932A7C35DCE7C2E7B3F585B4B0F1AF69D90D5F157BFD55A2 - 0F907E720BEAA862E53BC58F7784C23D1D72ABEB7B7D2B2E3EB758F7FADCCCE3 - FCDCA26A5AFE9A2F5041C52DA20F9019467B9FA6CEE7DE4793E173A2A7CE0FA8 - CB87AE8D04DC1A01588B5F1DEB175061D5165AF9BAEF53B0A451F40132476E61 - 1D95D5BD89C2BD7B6972B4576CB116BC6BA302370260EEE22FADBF9D96EFFA16 - 65E5568A3E40E6C9CA29A1B2FAB7D044F8288D0F748A2DD63DBF2F460073157F - 3E85EADF48B5D77F8D025905A20F90B9028120952CBD932223C72932F08AD8E2 - 6A08A43200E62BFE3B45F17F59FCC3F0390080CC1708648B10B84384C009B743 - 205501A08A5F9DED3787FD25B537D3F21BC59E5FA422809F70088496BE5E1C0A - B418CF1AB8749350AA02800B9F036076CF9F5FDA4075B77E1BB7F2827F0572C4 - 48E0761AEE7A9CA6C6FBC50615002A041C0F032E4CA7C50EFDF32818ACA0BAD7 - 7E8DB2B243A20FE05F5C035C0B5C135C1B668D70ADA8BA7194D323006BF19BD7 - F9F9269FDA9B3E4B051537897500C8CEADA0BC50350D9C795CF4527AABB0D301 - C0238CCB8FFB2B56BD892AD77F50AC03809257B29EA6C78ED358DF49D1B33E38 - C41C0B02270F01D4DE7F3600720B17D2E22D1F17EB00108B6B23B7A84AACF1CE - 926B866B47D59123521100B3C3FFC54DBB71A30FC03CB836166FBE47ACF1A132 - D78CE3E7029C0A00F5A167F7FE45E5EB2854F74EB10E00F3E11AE15A49D128C0 - E90098DDFB576DFE80D8E2F4390780F4C635C2B592A251801301A03EECECDEBF - 50245A71F51D621D00AE856B856B2605A30027038093CB0C80CAF57F21B701C0 - B50564CDA800706C14A03B00D407E43FD71CFEE7169651C9B23B8DAD00101FAE - 19AE9DD9C30055AB5A43C0A91100FFB9E6DE3F54F7660A04F0941F4022B866B8 - 76AE3C0CD04A7700A8E25701904BA5CBDF2096009028B3767804A002407B08E8 - 0C00F5C178691EFFE7142FA482B266632B0024866B876BC80C00751E80690B01 - 9D01C0F883CD064068F12ED1D5FD7700F884A81DA3862E0B006DC5CF9C0800FE - 33CD00285ABC9337024092CC1A5201C0B5E5D90050E9640980CA26B104806499 - 35141B00DA42406700B0D900C82D2CA19CC23A632B0024876B886BC9E3230095 - 4A2A00B28CD7736BFEB0003E1410B5C42FC731EBEAF25AB34D5700282A00B229 - BF0C7B7F001DF2CBB996D2EA1C4016E5E454F34600B029277B89F8AF5957B375 - A685CE0060B321100CF11C67006097594BDA8B9FE90A00F5C154CBA2AC5C3E71 - 01007699B5640D00D56CD33D0260E6870B040ACD2E00D8623E4BA3ADE8AD9C08 - 005320C0D72E01C02E07DF9AE5DC080000744A8B11000A1FC0595A6BCCB94300 - 00F03C0400808F2100007C0C0100E0630800001F430000F8180200C0C7100000 - 3E860000F0310400808F2100007C0C0100E063BA1E2CE020E139CBF89DE645A2 - 85A8FED6476941F52D62DDF7CA2B2A28E0D0FB51C6C7C6281C1E913DC84823E7 - 9EA2534FFC95581B142D2C5A44B469D16644B30501E0B05DB7DC4AEFFAD33F97 - 3DFD666666E8331FFF089D397D4A6E818CE36000E010C061A1D252B9E68CACAC - 2CDA79C34DB20790180480C3B8409DB66DC7CE94FC3D9079F053E3B0A2050BE4 - 9A734A4A42D4B06193EC01C40F01E0B050A84CAE396BC7F537C83580F821001C - 56595525D79CB579CB560A06F91C2C40FC10000ECAC9CDA5458B53F382A4BCBC - 7CDADCB445F600E2830070D07A715C9E2B422055765C7FA35C03880F02C0415B - 9BB7CBB5D468D8B8898A8BF14226881F02C021D9D9D9D4785D93ECA506FF9DA9 - 0E1D486F0800876CD8D84885457C53646AE1300012810070C8F69DEE5C965BB1 - 6A3555562D943D80AB430038802FC73536A576F86FE556F840FA410038E0BAA6 - 2DC66539B7E03000E285007040F38EEBE59A3B165757D3B2E575B207303F0480 - 667CE26FC3A646D9730F4601100F0480665BB636534E4E8EEC25AEBDAD85A6A6 - A6642F79CD784210E2809F10CD9A77DA1BFE1F3ED841278EFD56F692172A2DA3 - 750DEB650F606E08008D78F28F356B1B642F39A74E9EA08EF636D9B3A7195703 - E01A10001A6D6BDE616BD81D8944E8D5CE3374E460BBDC624F93381C090683B2 - 077025048046CD3BECED7179E83F3D3D4DDDDD5DD4DFD727B726AFA0A0801A37 - BB773F82977150F3A3DAABD7AC351EA5E669D5F8FE89BC7CF72EDFBA0193826A - 52B570117DE2E147642F393FFAC1F7E87F7FF65363FD4FFEEC2FE9C65DF6FFF9 - DA5A0ED097BEF0CFB2E79EEA2535B64E8E4E4E4CD0F9F3E7642F715CF05CEC1B - 1B37D32AB1AC5DB68C7273AF1C1D3DFECB5FD07F7DF731D9F308CC0AEC7D77BC - F14DF4963F78BBEC25E7531F7BE077B3FB6EDDB69DDEF3B7EF37D6EDE02B0AF7 - DEFD5E57A70EAFAB5F41F73DF890EC25EFB9679EA2FFF8E6D7652F3EE5E515B4 - EBB5AFA31B5EB38B42A16B4FD0FAC2F3CFD2BF7DFD51D9F308CC0AEC7D766FBF - 1D1919A6CE33A7658FE8C8E143C694DF76F15ED7ED2704C7C7C7E59A3D378911 - 51CDD25AD9BB3A3E21CBD3B1F3A88CC3399EE2F723048006FC43B9A466A9EC25 - E750473B45A351D9231A1D0DD3C913C765CF9EED2EDF14D477A957AED9B775FB - 0EB936379E85E90D77BE993EF199478C773264DB38ECF0030480063A1EBE39D8 - D62AD7661D6CBF725B32F8D8B7A2B252F6526F421CBF47348D0256AF5E2BD7AE - 54BF62253DF0B14FD19BDFFA360AE6F1D1285C0B02C0A6402040DBB6EF94BDE4 - 4C4F4F5147C795D7FEDB5B5BE49A7D6E3F9F3038C887AFF6D5CEF18C03FF3FE0 - 61FEBDF77FC4780E02E28700B089F73A7667FE3D7AE4308D8D8ECADEACB3DD5D - 74F1428FECD9E3F6B301A39A4E42F2A5CDD2B272D923E3B2DD5DEFFB80710216 - B73E270EFF62366DD7301F7FEB81FD72ED4A7C194F073E47B1B47699ECA59EAE - 1381ACBCDC0C009EFFF09E3D1F361EBF86E420006CE03DCED66D573F29158FF6 - AB1479CB817D72CD3E3747013A0380DFB654120AD1EE3DF7E3B1679B100036AC - 5DB7DEF841B4E3F4A9576860A05FF6AE74F2F83171FC3C207BF6F0834A7CBCEC - 061D973495CACA2ABAFB9E3DC6CD45600F02C006BB4FFEB1B696F987FF8C2F0D - EA3A0C2813C7CE6BD6AE93BDD48A44F48D00DEFAF677C47D3F005C1D0220497C - BD79CB36FB37D85C2B0058EB7E7D87016EDF13A0031E70D2070190A48D9B1A8D - 33D276F45EBC48DD5D5DB237BFA3470ED1D8D898ECD9C3B7187378A59ACE4300 - D0070190241DD7D5E3D9FB337E42B0638E1B8592515058489B1A37CB5EEA8C8F - EB0930D00B019004BEF6ACE3D253BC01C0DA5A341E0668387791B0D9BB9CC143 - 100049D8DCB475CE474913111E19A1E3094CFD75B0BD4DCB5C81AC71F3166324 - 904A636357DEE804EE43002461BB86E13F4FFE99C871315F473F7AF890ECD963 - 3C21A8E10426A43F0440828A8A16186FE1B5AB35891B7C5AF6EF956BF6E9B883 - 31113CDD19780F022041FC382ABF85D70E7E3A8E67FF4D148F1AAC8F0CDBC193 - 975AEFA9771A9FC84C0783037A6EBA4A1798112841BBF77CD8F6CD34BCF7FFF2 - 173F2F7B89D9F3C047A97EC52AD9B3E787DFFF0EFDEA173F933D67BDEEF6DFA3 - B7BFE38F652FB52627278CC9563A4F9FA69EF3E7A8B7F7220D0F0D19732E4C4F - 9B8761598180317700FFBAAE90D50633027903EF31F9D97ABB78F28F64B5B5E8 - 7B4478478A0F0352A9BBEB55FAF94F7F4CFFF8A987E8EEBF790F7DF6930FD177 - 1FFB163DF99B5F1B9754F916EC0B3D3D74498401B78B172FD0F97367BD57FC0E - 43002480DFB6A3E35EFA83360220997307F3595ABBDCF64C465E32323C6C8C68 - 3E7AFF87E8A107EEA39FFCF70FE8C4F163DAAE9E642204400274DCFCC3CFF8DB - 9922EBDCD96E6398AA4B26BC43B0AFEF123DF6AD6FD29EDDEF370E6BF8DF08E2 - 830088D3A2C5D5B4BCAE5EF692D7D1667F087FB5F90312C5A1E6D61382768D8C - 8CD077FEF3DFE9810FEDA6679EFC8D38D69F94BF02F14200C4699B18FEEBA063 - 9AAFFD7B5F926BF6F15C812B57AD91BDF4C14F487EE4BE7BE829714C8F217EF2 - 100071DA6EF3AD3F6C686850CB4CBF7C469BCF64EBB2E386F43A0CE8EA3C435F - FEE2E78C1100D8830088034F44A963B249DE6BE938CBCC7FC6FE97F58D02F89D - 8676EF6D48A5D1D151DF9DAD770A02200E3A6EFD652D1A9FEBD7791850585444 - 1B1BAF933DF01304C035F009321DC7FFA3E1301D3D7C50F6ECE35788F1F56B5D - 74BCDB00D20F02E01A56AD5E63BC5FCE2E9EDC53F7EDB03A270CE5C79BED4E70 - 02E90701700DBA5EA8B1EFA517E49A3E579B4D3851FC7873D3D666D903BFC0B3 - 0057C127C61EFEDC178DF9E7EDE0EBD3DFF8EA97B44F8B9595954DEFBEEBBDDA - 5E8871E450077DFE9F1E963DBD743E0B70ECE8117AE4E14FCA9E0FE0F5E0EED8 - B0E93A7AFFDF7F50F6321F0714DF4DE7C4137108001BF030903B5C993ACB453C - 9268DEEEAFEFD9EF1000F3E0A9A7AF6BDA2A7BFE91EA8942C05D0880796C6CDC - ECCBB3E2FCBCC3E2EA25B207990E01300FBF0DFFAD704F807F2000E6C033E6F2 - 08C0AFF830205D9F1084C42000E6604EFB9DFAB7E7784555D5426DD38E81B721 - 00E6A0E3A59FE90E2703FD010110A3B8A4841AD66F943DFFDAA661F663F03E04 - 408CADCD3BB4DD5997CEF8EEC7F51BECBFFF00BC0D3FE93174DDFB9F093261BE - 40B83A0480457945A5F1F41F98F809417E112A642E0480859FAFFDCF25989767 - 5C1181CC8500B0E079FFE172380CC86C0800896F7FE51765C0E51A366C34AE8C - 406642004899FC9A2C3B8C270471623463210024FC90CF4FC794E8E04D981044 - A8AB5F41F73DF890ECD9D3D1DE9AB237EECE87473337ED7AADECE9F1C09EDDC6 - CB34938509416CC08C40CE7ADB1FBD8B6E7BFD1DB267CFA3FFFA2F7460DF5ED9 - 7347CDD25A7AF0E39F963D3D7EFAE31FD2FFFCE447B2973804800D9811C839FC - D49BAEB3FFFC1E7A3BAFFED6855F8DADFB0599B81A90997C1F006BD63550A8B4 - 4CF6EC39D8DE46910887B3FBF66A9E8578E1A2C5C6A1126416DF0740F3767DD7 - FE75BEB5D7AE7D1A5F1DA6E009C1CCE3EB00E0A7DDF8E11F1DA6A7A7A8AD55DF - 3CFD76F59C3F67BC4454279E30140F4A65165FFFDFDCB0B1D1782F9E0E478F1C - A6B1D151D9F306DDA3809250088F4A67185F0780CEB9EF0EEC7D59AE7987EEF3 - 000C870199C5B701100CE651635393ECD9C32FD4F0D2F05FE9BBD44BA74E9E94 - 3D3D366FD9664C990E99C1B701603CEA9AA7E751D713C77E4BC34343B2E72D2F - BFF8BC5CD3233F3FDF97EF4BC854BE0D009DB7FEB6EC77F7C69FABE19B92A2D1 - A8ECE9817B0232872F03804FFC6DD8D4287BF6E97C4DB76E0303FDF4DBA38765 - 4F8FF51B37D182E262D98374E6CB00D8B2B59972727264CF1E3EC6EEEFEB933D - 6FDAAFF904A571F974DB76D98374E6CB00D039ED77AB87F7FE0A5FA1989EE65B - C7F5C1614066F05D00844A4B69CDDA06D9B36FFF3EEF5DFE8B3532324C478F1C - 923D3D56AE5E43955555B207E9CA7701B04DE3B4DFFCD0CDC50BC93F229B4A7B - 5F74E09E00BC4330EDF92E009A354E6E910E7B7FA5B5653F4D4D4DC99E1E0880 - F4E7AB00A85AB888EA57AE943DFB5AF77BFFF85FE1DB940F76B4C99E1ED54B6A - A876799DEC413AF25500F0EBAE74E1876DF810209DEC7BE945B9A6CF0E8C02D2 - 9AAF0240E790D54B8FFEC6ABBDAD85229171D9D383DFA5805789A72FDF0440CD - D2A5B4A466A9ECD977208D8EFF95C8F83875B4B5CA9E1E3C99CABA86F5B207E9 - C63701505A562ED7ECEB7AB593CE9C3E257BE9E5F9679F916BFAD4D42E936BF3 - 1B1CE8976BF60D0C0CC835B0CB379382F23075EDBA06CA2F28905B9233333D43 - C78F1DA5B1B131B925FD2CAF5F4165657AA641E31B8C7892CE78A6425BBD761D - 15D99C7F81FFFD4F9C3846A3619E1BD327302B30808F6156600070020200C0C7 - 1000003E860000F0310400808F2100007C0C0100E0630800001F430000F81802 - 00C0C71000003E860000F0310400808F2100007C0C0100E0630800001F430000 - F8180200C0C71000003E860000F0310400808F2100007C4C770044E552AC45F5 - BE8A16C0AF2EAFA5D91AD3C0B91140349ABE6FCE00F012076BC98900E0848AD2 - CCE490D905005BCC5A32EB4A33A74600518A0CE97B191C809F4586FAC47FB517 - 3FD315002A9D66DBCCC479B10400BBCC5ABAB2C63470E22420B7191AEB3F636C - 01007BCC5AE2F7006A2B7CC5894300FEA03362D872522CB57E58001FE2C3E957 - C4D2AC2BCD740680B9E7576D6A7C84A6C6300A00B0836B886BC95A5B1A77ACBA - 0380F107E457174F53F8429BB105009263D690594F666D31CF0580B5F855004C - D148CF3EDE080049326B886F045201A035049C3A07600640F8ECFF89CFA93E30 - 002444D48E514397058056BA0F01B8CD064024DC4B637D07C43A00248A6B876B - E8F2005075A685EE1180FA706600104DD2C0995F8B250024CAAC9D49D1540068 - 2D7EE6EC08C0088053BF149BC6C53A00C44DD48C513B970540DA8C00F883F287 - 9EA0A9F17E1AECE46F0400E2C535C3B5C33564D692F6E2674E9C04B40600A757 - 842E1E794C6E07806B8BCA9A8988A646002A00B4727A04C01F7E82C6FA8ED3F0 - D927C43A005C0BD70AD78CB9F78F0D00AD21E0E408808F59CC00E024EB697B54 - FC0A6F0380F9708D70AD987B7F1500D6E37FAD9C0800661D05F037316E24DAC0 - A91F897500980FD788B9F7E713E7B1C7FFDA393502B08E02CC11007F43E7F67F - 85A626F9D9660088C5B5C1356216BF1A013872F65FC9964BDD0272C9789D8326 - 8BA2D333343D76814A6A6F337E0500669D7DF9211AED6D176B61D1781A30EB08 - C0114E05402C0E013308C6FBCF527EE952CA0FAD367E0500F8B2DFCFC5B1FF37 - C41A3FF9372A1A8F02D4F1BF237B7FE66400A851802A7E3300B88DF4B453E9F2 - 5D941D2C137D007F9B0C9FA2D34FEF1123E401D153C56F1DFE3B26552300C50C - 023E1418E969A3B2FAD753202BCFFC25001F9A991AA6534FFC1D4D8E748A1EEF - FD79E8AFAEFF3B76ECAFA42200D448403143802739880C1E172381DB4437D541 - 04E001D109EA7CE65E0A5F6C151D3EEE4FD9D05F71B3F0021419BA4093439D54 - 5C7B0B05024E5D9204F01E7ED947F7F30FD260D733A2C77B7EEB893FEB997F47 - B911002AD5CC91C1F860374D881028A9BD192100BEC0C5DF258A7FE0CCE3A2A7 - 4EFA7173FCB25F2C374700B3DFDCF86097180D9CA0E29A9B2890952BB702649E - 99E951EA7AEE1F68B0F349D1537B7E55FC7CC92F657B7F96EA00E0BDBEF51B9B - FD462383E728DCB35F84C04ECACE59606C03C82493E33D74E6A9DD34726EAFE8 - 71F1ABBDBFB5F8B91E5252FCCCAD11C05C2110A5C9D13EEA3FF3041556ACA260 - 518DF1AB0099207CE1657AE589DD34317842F462F7FC7CD28F0320A5C5CFBC70 - 08A0BE69B34527C7A9FF151E1E8D52D1C2EB2810C811EB00E9291A8DD0858EAF - 50D70B8F889FED4B628B2A7E75B98F0BDF5AFCDC52C6CD0060EA9BE5258F0454 - 8B8AC43C4243AF3E4B0565CB2817A3014843A317F78A21FF7DE278FF69D1B30E - F9ADB7F9BA56FC2CF61A7D2A99F703988D8388F7F47C02305FB642D10A8C565A - 7F0B2D6A7C3705172C177D006F9B1839433DED5FA581535CF85CECDCB8F0F91A - BFBACECF856F3DE64F79F133370340E1CF60DE226C860037BE3B901B07811902 - 1C08652B6FA3CA0D7F48F9C5788E00BC677CF838F51EFA1EF59FE4CB7B6A4FCF - 8D8B9E87FBD621FFEC68D7455E0800A646021C02D6D180350854CBA3E29A262A - ABFF7D2AAE7D0D6565713800B86366668C86C5A16AFFA99FD170778BD8A28A5D - EDED55E15BF7FAAAF05D2D7EE69500602A04B87108C40641502E550B52765EB1 - 71D9B064C9F554B47833E5E42D12DB019C3515E9A1F0F9561A3AFB8228FA1769 - 3A322CB6F231BD2A76D5AC67F8B9F05D1FF2C7F2520030F57978A94603D620E0 - C641606D6A7B2EE597555341F97ACA2B594179A165145CB09082459594955D2C - FE48FE5A8038452334333D4213E15E714C7F8122839DC65B7AC7FA0ED378FF39 - F1055CD8AA71A15B9BDA3EDF70DF13C5CFBC16000A7F2ED5D4F9011506AAE0AD - A1A0FADCD4D771E3DF67FDB300E265DD5373F1AA3D383755D8D6105005CF4BF5 - 75D6C257CD53BC5E14D6E255C56C2D706BD1C7163F376B0030B504B81A55A8AA - 686303801B17BB5AAA75D5D4EF51BF9F9B27A54B41A822564D15B61A19A8A55A - B736A67E1F40BCAC85ABF6E4AAA94257EBBCE4AF554B6BF3B4742B0A6B21AB75 - 6E5CE8732D55636A09100F55BCD6628E2DF4D88267D675CF4BE7A298ABB8D5B6 - D8EDCCBA0E702DD6228E2D6E6B5F2DD57A5AC994A298AFD051F4A083B5B8E75B - 4F4B995A20287C7042DA173C0000000000000000000000000000000000000000 - 000000000000000000000000000000780FD1FF0383AC3BC58CEEDD9200000000 - 49454E44AE426082} + 19F149444154785EEDDD09745C577907F06F46D268D748B2645B966459DE57D9 + B22DDB593021E4848612C8A187B4404F7BBA404B0B14EA004E43020402843685 + C22910C281366DD80A050E050A846C9026C48B366F788962D9B22C2FDA479A91 + 3452EFF7DEBDE8792CD933F3EE9B7933EFFF3BE7E6BDFB2CDB2347DFFFDDB7DD + 4700000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000905A3EB9CC16B1DF4FB67D7F901E3372A9C4F63356A6 + 1788FAFCD6EF83D7E7DA0E902C55F0BCB416BF757B46CAC402892D6E5EC636BF + 684CF515EB3AC07C628B5CF5A745537D6B63B1CB8C904905612D662E70D5E7F5 + F99AF5F7A825403CAC05CD8D8B7FBE66FD1AA6FAAE970945A18A583555DC3957 + B5C205F5545CB99502E5EB2850BA8AF2CB6A29A7B046FC4A50FC9602F1350071 + 9A0E539486283ADE4B91E11E9A18394113834729D47F90C62F9F115F109DA3C5 + 0682EB83C0CD013057D173CBFD5DCBCF2FA1E2FA5BA9B4F6762A5E7C13E5E4D6 + 8AED00CE8A4EF550E8FCF334D2F3730A9D798A229151B175CAD25410C48681EB + B83100E62A7CDEC3ABC2CFA360DD0D54BEE26D5452F37AF2E7148B6D00E9311D + 0DD168EF4F68F0D43768E8EC0B62CBA4682A08E61B15B886DB0220B6F0678B9E + 289F16ACBE8B16AC7D17E5976E147D0077898C1CA2CBC7BE48978FFF907BA259 + C32036085CC12D01A00A5F15BFDAE3078C56B9F20EAADE782F058A57893E80BB + 4D844ED0C5439FA2FE933FE59E6CD611816B46036E08006BF1ABC2E73D7E800A + 2A56D3925D0F5171E5AB451F20B384FA9FA5732FDE47E181E3A2C721A046041C + 04AE08012EB8745285AF86FB5CF87CB6BE881636FD352DBDE12B62AFBF52F401 + 324FA070192D58FE36F1E31DA1505FA7DC9AF6BDBE15175FBA58F7FADCCCE3FC + BCE21A6A78D5E7A970C12DA20F901D42179FA533CFBF872643BDA2A7CE0FA8CB + 87691B09A46B04602D7E75AC5F4845D55B69C5ADDFA1405993E803648F40F132 + AA687823852EEDA3C9B14B628BB5E0D3362A484700CC5DFCE58DB753C3EEC7C9 + 1FA8127D80ECE3CF2BA38AC6BB6822748CC283DD628B75CFEF8911C05CC55F40 + C1C63750DDAEC7C8EF2F147D80ECE5F305A8B4F64EE34A4164F065B125AD2190 + CA0098AFF8EF14C5FF2551FC7C0E0020FBF97C392204EE10217032DD2190AA00 + 50C5AFCEF69BC3FEB2FA5753C34D8F91CFCF7D00EFE01008D6BD4E1C0AB41ACF + 1AA4E926A1540500173E07C0EC9EBFA07C1D35DCFA0DB1E7C7ADBCE051BE5C2A + ADBB9D46CE3E4953E101B14105800A01C7C3800BD369B143FF7C0A041650C32D + 8F514E4E50F401BC8B6B806B816B826BC3AC11AE1555378E727A04602D7EF33A + 3FDFE4537FD367A8A8EA66B10E0039A2F8F3CB6A68F0F493A297D25B859D0E00 + 1E615C79DCBF60E51BA96AFD07C43A0028F9C1F5141D3F41E3FDA744CFFAE010 + 732C089C3C04507BFFD900C82B5A488B9B3F2ED6012016D7465E71B558E39D25 + D70CD78EAA2347A422006687FF8BB6ECC18D3E00F3E0DA58B4F91EB1C687CA5C + 338E9F0B702A00D4879EDDFB1757AEA560E3DBC43A00CC876B846B2545A300A7 + 036076EF5FBDE5FDE26F73FA9C034066E31AE15A49D128C08900501F7676EF5F + 2412ADB4E60EB10E00D7C3B5C235938251809301C0C9650640D5FABF90DB00E0 + FA7CB266540038360AD01D00EA03F29F6B0EFFF38A2AA874E99DC65600880FD7 + 0CD7CEEC6180AA55AD21E0D40880FF5C73EF1F5CF626F2FBF0941F4022B866B8 + 76AE3E0CD04A7700A8E257019047C1A5AF174B004894593B3C025001A03D0474 + 0680FA60BC348FFF734B175251458BB1150012C3B5C3356406803A0FC0B48580 + CE0060FCC1660320B878B7F82B74FF1D001E216AC7A8A12B02405BF133270280 + FF4C33008A16EDE28D009024B3865400706DB93600543ACD06404975B3580240 + B2CC1A8A0D006D21A03300D86C00E41595516ED132632B0024876B886BC9E523 + 00954A2A00FCC6EBB9357F58000FF2895AE297E398757565ADD9A62B00141500 + 39545081BD3F800E05955C4B19750EC04FB9B935BC11006CCACD5922FE6BD6D5 + 6C9D69A13300D86C0804823CC71900D865D692F6E267BA02407D30D5FCE4CFE5 + 1317006097594BD60050CD36DD2300263F9CBFC8EC02803DC6B334DA8ADECA89 + 0030F98D6B97006097DFC7CF0338C2C11100006894112300143E80B3B4D69873 + 870000E07A0800000F43000078180200C0C31000001E860000F0300400808721 + 00003C0C0100E0610800000F43000078180200C0C3743D58C041C27396F13BCD + 8B450B52E36B1EA59225B78875CFAB5CB0807C3E67B2363C3E4EA1D0A8EC4156 + 1A3DF70C753DFD57626D48B4906811D1A2A24D8B660B02C061BB6FB995DEFEA7 + 7F2E7BFA4D4F4FD3A73FFE113AFD4A97DC0259C7C100C02180C382E5E572CD19 + 7EBF9F76DD78B3EC01240601E0302E50A76DDFB92B257F0F641FFCD438ACB8A4 + 44AE39A7AC2C48EB366C923D80F821001C160C56C83567EDBCE146B906103F04 + 80C3AAAAABE59AB3B66CDD4681009F8305881F02C041B97979B468716A5E9094 + 9F5F405B9AB7CA1E407C10000E5A2F8ECBF34408A4CACE1B6E926B00F1410038 + 685BCB0EB9961AEB366EA2D252BC9009E2870070484E4E0E356D6E96BDD4E0BF + 33D5A103990D01E0900D1B9BA8A8986F8A4C2D1C06402210000ED9B12B3D97E5 + 96AF5C4555D50B650FE0DA10000EE0CB714DCDA91DFE5BA52B7C20F320001CB0 + B979AB71592E5D701800F1420038A065E70D722D3D16D7D4D0D28665B207303F + 0480667CE26FC3A626D94B1F8C02201E0800CDB66E6BA1DCDC5CD94B5C477B2B + 4D4D4DC95EF25AF08420C4013F219AB5ECB237FC3F72A8934E1EFFADEC252F58 + 5E416BD7AD973D80B9210034E2C93F56AF59277BC9E93A75923A3BDA65CF9E16 + 5C0D80EB400068B4BD65A7AD61772412A133DDA7E9E8A10EB9C59E6671381208 + 04640FE06A08008D5A76DADBE3F2D03F1A8D524FCF591AE8EF975B9357585848 + 4D5BD2773F829B7150F3A3DAAB56AF311EA5E669D5F8FE89FC82F45DBE4D074C + 0AAA49F5C245F489871F91BDE47CFFBBDFA6FFFDF18F8CF53FF9B3BFA49B76DB + FFE76B6F3D485FFCFC3FCB5EFAD42CA9B5757274726282CE9FEF95BDC471C173 + B16F6CDA422BC5B27EE952CACBBB7A74F4E4CF7E4AFFF5AD2764CF25302BB0FB + DDF18637D25D7F70B7EC25E7931FBBFF77B3FB6EDBBE83DEF9B7EF35D6EDE02B + 0A1F7CDFBBD33A75F8B2C6E574EF030FCA5EF27EFDDC33F41F5FFFAAECC5A7B2 + 7201ED7ECD6BE9C657EDA660F0FA13B4BEF0FCAFE8DFBEFAA8ECB9046605763F + BBB7DF8E8E8E50F7E957648FE8E891C3C694DF76F15E37DD4F0886C361B966CF + CD6244545B572F7BD7C62764793A761E957138C753FC5E8400D0807F2897D4D6 + C95E720E7776D0CCCC8CEC118D8D85E8D4C913B267CF8E34DF14D47FF9925CB3 + 6FDB8E9D726D6E3C0BD3EBEF7C137DE2D38F18EF64C8B171D8E10508000D743C + 7C73A8BD4DAECD3AD471F5B664F0B1EF82AA2AD94BBD0971FC1ED1340A58B56A + 8D5CBB5AE3F21574FFC73E496F7AF35B2890CF47A3703D08009B7C3E1F6DDFB1 + 4BF692138D4E5167E7D5D7FE3BDA5AE59A7DE97E3E6168880F5FEDAB9FE31907 + FE7FC0C3FC0FDEF711E33908881F02C026DEEBD89DF9F7D8D123343E36267BB3 + CEF59CA58B17FA64CF9E743F1B30A6E924245FDA2CAFA8943D322EDBBDEB3DEF + 374EC0E2D6E7C4E15FCCA61D1AE6E36F3B7840AE5D8D2FE3E9C0E728EAEA97CA + 5EEAE93A11C82A2BCD00E0F90FEFD9FB61E3F16B480E02C006DEE36CDB7EED93 + 52F1E8B84691B71EDC2FD7EC4BE728406700F0DB96CA8241DAB3F73E3CF66C13 + 02C086356BD71B3F8876BCD2F5320D0E0EC8DED54E9D382E8E9F0765CF1E7E50 + 898F97D341C7254DA5AAAA9ADE77CF5EE3E622B007016083DD27FF587BEBFCC3 + 7FC69706751D06548863E7D56BD6CA5E6A4522FA46006FBEFBAD71DF0F00D786 + 0048125F6FDEBADDFE0D36D70B00D67640DF6140BAEF09D0010F38E9830048D2 + C64D4DC619693B2E5DBC483D67CFCADEFC8E1D3D4CE3E3E3B2670FDF62CCE195 + 6A3A0F01401F044092745C578F67EFCFF809C1CE396E144A466151116D6ADA22 + 7BA9130EEB0930D00B019004BEF6ACE3D253BC01C0DA5B351E0668387791B0D9 + BB9CC145100049D8D2BC6DCE474913111A1DA513094CFD75A8A35DCB5C81AC69 + CB566324904AE3E357DFE804E9870048C20E0DC37F9EFC3391E362BE8E7EECC8 + 61D9B3C7784250C3094CC87C088004151797186FE1B5AB2D891B7C5A0FEC936B + F6E9B88331113CDD19B80F022041FC382ABF85D70E7E3A8E67FF4D148F1AAC8F + 0CDBC193975AEFA9771A9FC8CC0443837A6EBACA14981128417BF67ED8F6CD34 + BCF7FFD2173E277B89D97BFF47A971F94AD9B3E77BDFF926FDFCA73F963D67BD + F6F6DFA3BBDFFAC7B2975A939313C6642BDDAFBC427DE77BE9D2A58B34323C6C + CCB9108D9A87617E9FCF983B807F5D57C86A831981DC81F798FC6CBD5D3CF947 + B2DA5BF53D22BC33C58701A9D473F60CFDE4473FA07FFCE483F4BEBF79277DE6 + A107E95B4F3C4E4FFFF217C62555BE05FB425F1F5D1661C0EDE2C50B74BEF79C + FB8ADF61088004F0DB7674DC4B7FC846002473EE603E75F50DB667327293D191 + 116344F3D1FB3E440FDE7F2FFDF0BFBF4B274F1CD776F5241B210012A0E3E61F + 7EC6DFCE1459BDE77A8C61AA2ED9F00EC1FEFECBF4C4E35FA7BD7BDE6B1CD6F0 + BF11C4070110A7458B6BA86159A3EC25AFB3DDFE10FE5AF307248A432D5D4F08 + DA353A3A4ADFFCCF7FA7FB3FB4879E7BFA97E2587F52FE0AC40B0110A7ED62F8 + AF838E69BE0EECFB8D5CB38FE70A5CB172B5EC650E7E42F223F7DE43CF88637A + 0CF193870088D30E9B6FFD61C3C3435A66FAE533DA7C265B979D3766D661C0D9 + EED3F4A52F7CD61801803D088038F044943A269BE4BD968EB3CCFC671C7849DF + 2880DF6968F7DE86541A1B1BF3DCD97AA72000E2A0E3D65FD6AAF1B97E9D8701 + 45C5C5B4B169B3EC81972000AE834F90E938FE1F0B85E8D89143B2671FBF428C + AF5FEBA2E3DD0690791000D7B172D56AE3FD7276F1E49EBA6F87D53961283FDE + 6C778213C83C0880EBD0F5428DFDBF7941AEE973ADD98413C58F37376F6B913D + F00A3C0B700D7C62ECE1CF7EC1987FDE0EBE3EFDB5AF7C51FBB4587E7F0EBDE3 + 5DEFD6F6428CA3873BE973FFF4B0ECE9A5F35980E3C78ED2230F3F247B1E80D7 + 83A7C7864D9BE9BD7FFF01D9CB7E1C507C379D134FC421006CC0C340E99196A9 + B3D28847122D3BBCF53D7B1D02601E3CF5F4E6E66DB2E71DA99E2804D20B0130 + 8F8D4D5B3C79569C9F77585CB344F620DB2100E6E1B5E1BF15EE09F00E04C01C + 78C65C1E0178151F0664EA1382901804C01CCC69BF53FFF61CB7A8AE5EA86DDA + 31703704C01C74BCF433D3E164A037200062949695D1BAF51B65CFBBB66B98FD + 18DC0F0110635BCB4E6D77D66532BEFB71FD06FBEF3F0077C34F7A0C5DF7FE67 + 836C982F10AE0D016051B9A0CA78FA0F4CFC8420BF0815B21702C0C2CBD7FEE7 + 12C8CF37AE8840F6420058F0BCFF70251C0664370480C4B7BFF28B32E04AEB36 + 6C34AE8C4076420048D9FC9A2C3B8C27047162346B210024FC90CF4FC794E8E0 + 4E98104458D6B89CEE7DE041D9B3A7B3A32D656FDC9D0F8F666EDEFD1AD9D3E3 + FEBD7B8C9769260B1382D88019819CF5963F7A3BDDF6BA3B64CF9E47FFF55FE8 + E0FE7DB2971EB575F5F4C0C73F257B7AFCE807DFA3FFF9E1F7652F7108001B30 + 239073F8A9375D67FFF93DF4765EFDAD0BBF1A5BF70B327135203B793E0056AF + 5D47C1F20AD9B3E750473B45221CCEE9B74FF32CC40B172D360E9520BB783E00 + 5A76E8BBF6AFF3ADBD76EDD7F8EA30054F08661F4F07003FEDC60FFFE8108D4E + 517B9BBE79FAEDEA3BDF6BBC4454279E30140F4A65174FFFDFDCB0B1C9782F9E + 0EC78E1EA1F1B131D97307DDA380B260108F4A67194F0780CEB9EF0EEE7B49AE + B987EEF3000C8701D9C5B3011008E4535373B3ECD9C32FD470D3F05FE9BF7C89 + BA4E9D923D3DB66CDD6E4C990ED9C1B301603CEA9AAFE751D793C77F4B23C3C3 + B2E72E2FBDF8BC5CD3A3A0A0C093EF4BC8569E0D009DB7FEB61E48EF8D3FD7C2 + 3725CDCCCCC89E1EB827207B783200F8C4DF864D4DB2679FCED774EB36383840 + BF3D7644F6F458BF7113959496CA1E64324F06C0D66D2D949B9B2B7BF6F031F6 + 407FBFECB9D301CD27288DCBA7DB77C81E64324F0680CE69BFDB5CBCF757F80A + 4534CAB78EEB83C380ECE0B900089697D3EA35EB64CFBE03FBDD77F92FD6E8E8 + 081D3B7A58F6F458B16A35555557CB1E642ACF05C0768DD37EF34337172F24FF + 886C2AED7BD1817B02F00EC18CE7B90068D138B94526ECFD95B6D60334353525 + 7B7A2000329FA702A07AE1226A5CB142F6EC6B3BE0FEE37F856F533ED4D92E7B + 7AD42CA9A5FA8665B20799C85301C0AFBBD2851FB6E143804CB2FF372FCA357D + 76621490D13C15003A87AC6E7AF4375E1DEDAD148984654F0F7E97025E259EB9 + 3C1300B57575B4A4B64EF6EC3B9841C7FF4A241CA6CEF636D9D383275359BB6E + BDEC41A6F14C00945754CA35FBCE9EE9A6D3AF74C95E6679FE57CFC9357D6AEB + 97CAB5F90D0D0EC835FB060707E51AD8E59949417998BA66ED3A2A282C945B92 + 331D9DA613C78FD1F8F8B8DC92791A1A975345859E69D0F806239EA4339EA9D0 + 56AD594BC536E75FE07FFF93278FD35888E7C6F408CC0A0CE061981518009C80 + 0000F030040080872100003C0C0100E0610800000F43000078180200C0C31000 + 001E860000F030040080872100003C0C0100E0610800000F43000078180200C0 + C31000001E860000F030040080872100003C0C0100E0610800000FD31D003372 + C91316EB7D152D80575D594BB335A68183238099CC7D730680AB38574B4E0400 + 27D40C4D4F0E9B5D00B0C5AC25B3AE34736A04304391617D2F8303F0B2C870BF + F8AFF6E267BA0240A5D36C9B9E382F96006097594B57D798064E9C04E4364DE3 + 03A78D2D00608F594BFC1E406D85AF387108C01F745A0C5B4E89A5D60F0BE041 + 7C38FDB2589A75A599CE0030F7FCAA4D8547696A1CA300003BB886B896ACB5A5 + 71C7AA3B00187F407E757194427DEDC61600488E5943663D99B5C55C1700D6E2 + 57013045A317F6F34600489259437C23900A00AD21E0D43900330042E7FE4F74 + D50706808488DA316AE88A00D04AF72100B7D90088842ED178FF41B10E0089E2 + DAE11ABA3200549D69A17B04A03E9C1900449334D8FD0BB104804499B533299A + 0A00ADC5CF9C1D011801D0F533D10D8B7500889BA819A376AE08808C1901F007 + E50F3D4153E1011A3AC3DF0800C48B6B866B876BC8AC25EDC5CF9C3809680D00 + 4EAF085D3CFA84DC0E00D737236B26229A1A01A800D0CAE911007FF8091AEF3F + 4123E79E12EB00703D5C2B5C33E6DE3F3600B486809323003E6631038093ACAF + FD51B195B701C07CB846B856CCBDBF0A00EBF1BF564E0400B38E02F89B081B89 + 36D4F57DB10E00F3E11A31F7FE7CE23CF6F85F3BA74600D651803902E06FA8F7 + C0976972929F6D0680585C1B5C2366F1AB11802367FF951CB9D4CD27978CD739 + 68FC341315039CF10B54567F9BF12B0030ABF7A50769EC5287580B89C6D38059 + 47008E702A006271089841101E3847F9C13A2A285F65FC0A00100D9EFE8938F6 + FF9A58E327FFC644E351803AFE7764EFCF9C0C00350A50C56F0600B7505F0795 + 37ECA69C4085E80378DB64A88B4E3FBB578C9007454F15BF75F8EF98548D0014 + 3308F85060B4AF9D2A1A5F473E7FBEF94B001E343D35425D4FFD1D4D8E768B1E + EFFD79E8AFAEFF3B76ECAFA42200D448403143802739880C9D102381DB4437D5 + 4104E0023313D4FDDC072974B14D74F8B83F65437F259D85E7A3C8F0059A1CEE + A692FA5BC8E773EA922480FB4CCF4C51CFF30FD0D0D9E7448FF7FCD6137FD633 + FF8E4A4700A854334706E1A11E23044AEB5F8D10004F50C53F78FA49D15327FD + B8397ED92F563A4700B3DF5C78E82C4D0C9FA492DA9BC9EFCF935B01B24F343A + 463DBFFE071AEA7E5AF4D49E5F153F5FF24BD9DE9FA53A0078AF6FFDC666BFD1 + C8502F85FA0E8810D84539B925C636806C3211EEA3EE67F6D068EF3ED1E3E257 + 7B7F6BF1733DA4A4F859BA46007385C00C4D8EF58B61D1535454B9920225B5C6 + AF02648350DF4BD4F5F41E9A183A297AB17B7E3EE9C70190D2E2676E380450DF + B4D96626C334F0320F8FC6A878E166F2F972C53A40669A9989D085CE2FD3D917 + 1F113FDB97C51655FCEA721F17BEB5F8B9A54C3A0380A96F96973C12506D8642 + 178ED2F0995F5161F952CA2BC6680032CFD8857D74FAD97BC5F1FEB3A2671DF2 + 5B6FF34D5BF1B3D86BF4A964DE0F60360E22DED3F309C002D98A442B345A79E3 + 2DB470D33B28BFB441F401DC2D32725AECF5BF42835D5CF85CECDCB8F0F91ABF + BACECF856F3DE64F79F1B3740680C29FC1BC45D80C016E7C7720370E02330438 + 102A56DC46551BFE900A4AF11C01B84F78E4045D3AFC6D1A38C597F7D49E9E1B + 173D0FF7AD43FED9D16E1AB92100981A097008584703D620502D9F4A6B9BA9A2 + F1F7A9A4FE5594E3E77000488FE8F4388D8A43D581AE1FD3484FABD8A28A5DED + ED55E15BF7FAAAF0D35AFCCC2D01C0540870E310880D82805CAA16A09CFC5211 + 06BBA8ACE6062A5ABC85F20A1689ED00CE9A0CF7D1D8F9361AEE7D4114FD8B14 + 8D8C88AD7C4CAF8A5D35EB197E2EFCB40FF963B9290098FA3CBC54A3016B1070 + E320B036B53D8F0A2A6AA8B0723D05CA965341904F1E2EA4FC922AF2E7948A3F + 92BF16204E33119A8E8E5264F4124D862E5078A89B26865FA6F1FE23141EE815 + 5FC085AD1A17BAB5A9EDF30DF75D51FCCC6D01A0F0E7524D9D1F5061A00ADE1A + 0AAACF4D7D1D37FE7DD63F0B205ED63D3517AFDA837353856D0D0155F0BC545F + 672D7CD55CC5ED45612D5E55CCD602B7167D6CF173B30600534B806B5185AA8A + 363600B871B1ABA55A574DFD1EF5FBB9B952A614842A62D55461AB91815AAA75 + 6B63EAF701C4CB5AB86A4FAE9A2A74B5CE4BFE5AB5B43657CBB4A2B016B25AE7 + C6853ED75235A69600F150C56B2DE6D8428F2D78665D77BD4C2E8AB98A5B6D8B + DDCEACEB00D7632DE2D8E2B6F6D552AD67946C298AF90A1D450F3A588B7BBEF5 + 8C94AD0582C20727647CC1030000000000000000000000000000000000000000 + 000000000000000000000000000080FB10FD3F24C836C5203B216B0000000049 + 454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_256.png' @@ -385,462 +385,462 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 38EA49444154785EEDDD09745D577DEFF1BFAE46CB8306CB63EC7876E278942D - D991ED8404021DD65BEDEB6BF35A4A0BB4A5B4D042A1616A6820CCA581426115 - FABABA586D7985D2BCA604286D19D2308490D8F1183B89E3788E675B1E65C91A - FCCEFFDEBDAB7D8FEFD560DD7BCF3EF77C3F6B6DEFBDCF55827224FCFB9F710B + 38E149444154785EEDDD09745D577DEFF1BF66591E64D9F218CF633C5BB664C5 + 434242800EEBADF6F5B5792DA505DA525A68A1D030353410C2549A5228AC425F + 5717AB2DAF509AD79400A52D63184248EC788CEDC4F13CCFF220CB9235F89DFF + BD7B57FB1EDFABC1BAF79E7DEEF97ED6DAD97B9F2B07E548F8F73FE316000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000000C03315A6 - 87FFF85901888B6BA687C70815FFE4FB99F0B3021017F90A000A038F102AD1CB - F53318C9367E76007C110EF65C413FD26D281142241AC385B99D8FF4EB00202A - C385BF9D8FF4EB50220448E9B8FB3A5F90877B35D26D0010855C013F926DEE67 - 2AD7D7A2880890E2CA15DA2A1CE06E1FFEBA5C9F857BE58E01A0987285B5DBE7 - 1AABF067B97A956F8C0222348A235F30EBD8CEED383C57EE67B99A0AF7CA1D03 - 4031E40A67B71FAAA95CE35C9FA97C631400815138F98258C7766EC7B9E6DA52 - 436C533A56F63315EE01A0D8DCC0B6BD1D0F985EE73AB69FD9966B9BCA37B7F2 - 8D7183088DB173F761AE50B6631BDE6E6F3FD77178EEF699D63067AA548FBB55 - 2AAAE64ADDA459327EEA54A9AC9E2552D51CFCFFA15E2A2A67045F55197C2D00 - 14DE35E9976BFDC782BF8EBA44FACE4A7FEF11B97CF2A4745F3822D7FA0E48EF - 95E7E5FCC193E9AF1C6C36F0DDE0D77178AEC2BDFD5C857BE58E314A1A2CB831 - EEBEB3631BD6CA8EDD160E76ED6D73E715D234E766A91ABF5AC64D592D13A6AD - 90CACAC5C1479382CF00C0630317A4BF7F8F5C3AB143AE9CDA227D97B748E7C1 - 43C1071AD66EF0DBB13B77FB7053E1B1E58E31421A3A183DBBDFDC3E3CD66683 - DD8EF3B78619D3A476F25DD230AF43EA266E0CFE91E9C176002803D78E4BF7C5 - 1FCBF9FD4F4ACF99C7E5FCB113C146B700C8D56CD8BB631BF4E1B1DB63843498 - 3072767FB9BD3BD630B7DBECD886BC9E9AB7E34C6B9C375F26CEF8059934EB55 - 92AA6E0DB60140F91BE8DD2A178E7C5F2E1EFB869CDBBF4FB7845ABF33D660B7 - BD3B56769B0AF718860D2F0CCDEE27777F69882B37ECEDD86D36F8337D7D638B - 342CFA5FD234FF97A4B26A79B00D0092ABBF6FA774EEFB5739FFE223D275EE74 - B0C52D00DC42C0361BFA76AC746C51088C901B68C8CDEE23B7779B86BBED7387 - BEF62D4B36C8E4456F909A89AF0CE6B54103000CEA91AB171F93332FFEBD9C7E - EE89601E2E02C2C5805B04B84D857BE4A0C185DCECBE71FB7073433F3BF0B5D5 - 4EAA97C90B7F519A16BF59527A131F00605803FD7BA473CFDFC8995D8F484F4F - 4FB045C33F5F2190AB08B0C11FEEE1D010C3F5EC7E717B1BF8E17E30F0DDE06F - B9EDF5D234FF2D5251D1126C03008CD6B56BA7A573DF17E5F4EE7F909E0B5DC1 - 165B08B805812D00C27D38FC6D0FC3061C32ECFE707BB7D9C0CF13FCB5B532A5 - F537A571FEDB087E0028102D04CEEDFBBC9CDAFAE5D019817021609B2D006C53 - E13EF16CD061705FB8BD0D7DDBBBC1AF7D951957C9F455FF435A6E7DAF5454CE - 09E6008042BBD67F504E3FFF4939BEED5BC1AC2F681AFEDA6BE8870B010D7AB7 - 185014010E1B7649E786BEB2A11F0E7E6DF6885FC3BF4A1A6E5E2C33D77C58AA - EA3704730040B1F5753D21479FF9809C3FB44767A60D773640C78A22C0A000C8 - 0E7FB7D9C0D7B10DFDC1F0AF99385E66ACFE239938EBF783AFD06D008052D1D7 - 125F3CF2D7726CCB5FCAD58B97832D6E11609B0D7EB710B04DD93E9134DC92CC - 86BDB2631BFAE123FE4CF0A78FFAE7B7CBACF64F49AA6A7E3007004465A06F9F - 1CD9F42E39BF6F53300B9F0DD0E616006E21A0DC71E224F5C8D586BD3665C7E1 - D0CF04BE4875BAD5D6D6C9EC8DEF91294BFF5C52A9C9C1360040942A524D3269 - F6AF487D739D5C39BE49FA35F3B3FE6E77FBB0E13E2F6B49FC8F0EFFC0ED11BF - B67C47FDD5523765AECCBBF3F35255B72A9803007CD3DFB353F6FDE0ADD27DEA - 4030EB0DDA506703B4E958B967041243032E49F2857F38F407835FA446A62DFD - 19B9B9E3CB92AAE60E7F00F055AA6A9A4C9E77AF545CDB2B97D34540983DD8B3 - 74ACA16FB7B99F95BD241500E11FB01BFEB66507BFB639AFB84F9A177F2CF852 - 5EDF0B00DE0BFEAE1E3FFD17645C73A59C3FA8F7050C17EAFA79228B80A41400 - E11FECF0E15F33A15116DCF345193FEDB5C11C001027B593D649E3EC6572F1D8 - E3D27F552F050C45F320714540120A80F00F341CFEBA0F6CF86BAB91719367CA - BC57FD9DD44C5C1FCC01007154356EBE34CCD920974F3E2E7D57AE045BDC6BFC - E190D779A28A80722F00C23FC8A1C23F73E43F7EEA2D32F7957F2F55B54B8239 - 0020CE2AABA70745C0ABA4EBD493D27BF99CD99A8FE643628A80241400F60798 - 2FFCB5651EF31B3FF5569977CF3F49AAF2A6600E002807A9CA26699CFFF372F9 - C40F8222A0D36C75CF06B83427DC22A06C957301309AF0D7237F0DFFAFB2880F - 0094A18A8A7AA708B06702125D04946B0140F80300B2651701893F13508E0580 - FD6169EF06BF5B00B8D7FC35FCBF42F8034002648A809FCB5104E42B04ACB22B - 04CAAD000887BF5B00D8A37E1BFED532AE79A6CC7BF55725959A1ECC010049A0 - 4540C3BC57CAA5A3DF96BE2B5D66AB6BA8B30265A39C0A8091867FE651BFEAF1 - 8DB2F067BF26A9AAB9C11C009024151593A471EE5D72EEC0A332D0ABAF0D1EEE - 0C8055364540B91500F6076383DF2D00068FFC6B6AEA65FE6BFE46AAC6B50673 - 00401255544E9649372D978BFBBF2DFDFDEEBA00B98A01DD5636E1AFCAA500B0 - 3F14ED35F06D6F8FFCB565C25F8FFE676FBC5FEAA7FCCF600C0048B2CADA3952 - DB502FE70E3E11CC6CF0BB05801D6BAEB8E3D82B8702C00D7F1BFCE123FFCC69 - 7F2D0066B6FF8A34CE7B5F300600405F1BBC5AAAEA8EC8C5A32F982DB90A81B0 - D81701E55200B82D57F8678EFE27DEB44C66ACFEA25454E81C00808C71CD1BE5 - CAD9C7E5EAC5D3C14C83DF2D02862A04622BEE05800D7DA5A1AF63FD6FD2B11B - FE3552DDD824F3EFFE92A42AB9E31F00904D0F0C27DDB456CEBDFC0D19E8BE1A - 6C091701E1DE664F6CC5B900B03BDF1601F6C83F1CFE9902604EC707A5B6F115 - C1180080EBE94D8175139AE4DC81C78359BEF00F8B6D2110F702C06D1AFCFADF - 63DBE0D1FFD4E5AF96E6857F128C0100C8AF66E2B2E0CFDD72F9E481A0D7D0B7 - CDCA5708C44E5C0B005B71D9E0D75EFF5B6C113078F45FDF30596EDAF0B75251 - 312198030030B4FA296BE5F2E147A4B7A73B98B945800DFF706F332956E25C00 - D8664FFB5F1FFEDAE6BCF2A35253DF168C0100189E1E308E6B992A67F77E2F98 - B9E16F5B59D0D08C1B1BFC2A5C086801608B802A99BC60838C6BFEA5600C00C0 - C86976342D5A178C327932982F9A356EF628771C1B712C002CF707A0FF1D6E01 - 502935357532ADFD43C1180080D19BB1E663E92C71B365306FDC0C8AA5B81500 - EECEB6E370F867AAB529AB7E5D2A2BE705630000464F3344B324F75900B70850 - EE3816E25600587647DB965D00D437344BF38277046300006E9C668966CAF505 - 40388762274E0580BB93ED58BF7FDB32E1AF7DCBCA3F08364D0CC600008C4190 - 25E94C7132263B7B7265532CE8371F377607DB66C33FD3EA9AA64BC3ECD70563 - 0000C64E3345B3C5CD9AECF0B72D56E25200B83BD78EF57BCF0E7FADCEA6ADF8 - BDA0D7857F000028841A932DEE65006D3687726594F7E252005876C7DA965D04 - 68853669D6AF056300000A47B325FB2C4038FC6D8B8D381400EE0EB53B383BF8 - 33AD4AA62C7D63D073F40F0028B41A933123390BA0DCB197E2500028BB63DD96 - 5D0454374C92C6D9BF1A8C0100283CCD18CD9AFCE1EF36EFF95E00B83BD1DDB1 - D9E1AF1559CB825F0E3671E73F00A048F48900CD9AACB300B98A00CB1D7BC7F7 - 0240B93BD48E6DF80F1601CD8B38FA07001457266BDCF0B77DAEACF25A1C0A00 - CBEE50BBA307C3BF69FE6A49552D0CC60000148F668D664E7611E06693B658F0 - B9007077A2DDA9DA6CF00F1600CD0B7E25E8010028BE4CE6B805805B08D866B9 - 63AFF85C00287767DAA6DFF360F857D7D7CBB8293F1F8C0100283ECD1CCD9EEC - 22205C00D8E62DDF0B006577A0BB43EDCE4E49E3DC3BA5A2625C300600A0F834 - 73347BDC2CCACE28657B6FE937EDA3F08EB33BD5DDD999CAAB61DECF043D0000 - A593C99EF019006D36AF5CE1B917F49BF595DD896E7377722A7D0AA6AEE195C1 - 180080D2D1ECC95C06C8CEA5DCD9E525FD66E3C0DD91FA3D67AAAE49B3D771FA - 1F0050729A3D9A41D96701DCACF29EEF0580BB33F57BCD6EE3A7BD22E8010028 - BD4C065D9F4DD9D9E52DFD467D13DE71EEDCDDC19532716647D00300507A990C - CA770F8036159E7B43BF599FE5DA81999D3C61FA544955CE0DC60000949E6690 - 6691CDA5ECAC52B6F792CF0580BB03B5D91D9C69E39AD6063D0000D1C9645176 - 3E0DE696B2BD77F41BF599DD89E19692BAC92B831E0080E864B2C80DFD70F396 - 6F05407867D9B9F6B6B2CAB449335B831E0080E864B2283B9FB2B3CB159E474A - BF51DFE80EB24DB9F3CCCEADAEAE9654358BFF0000A2A559A49964F3293BB354 - 78EE0D1F0B0097DD69EE4E4D49FDEC05415F13340000A2546332293BA706C7DE - F2B50070779A1D0FEED09ADA45E92D000044ADAA6E7EF0A70D7C9BABB972CC2B - BE1600CAEE4CBB436D9F92AAF1F3821E0080E8D5D4EB25E94C3E6567966D5ED2 - 6FD277EE4ED4969289336E0E7A0000A297C9A470E86BF39A4F054078A7E59F57 - D751000000FC50593B33F8337F666584E791F3F50C80BBC36CAFCD545895FAE6 - 250000A25759392DF8D3C9A87453E1DE2BBE16002EBB33075B8A020000E0898A - AA19FA678EE6359F0B805C3BB342C64F9B12F40000F823934DB973CB53713803 - A0EC0EAC90EADA7A330600C00F996C1ACCAA18F0B100702BA6EBC71575D33353 - 00003C91C9A6A1F3CB33BE5F02B0BCDC7900008484F3CADBEC8ACB4D80568554 - 5670090000E09754AA36F83316C16FC5E91E00B3332B1B333D00009EA8484DB6 - 23D3BCE77B0110DE89B1D8A90080448A5566C5ED1200000071E07D76C5E51280 - B23B93820000E09BD865549C0A00000050201400000024100500000009440100 - 0040025100000090401400000024100500000009440100004002510000009040 - 1400000024100500000009440100004002510000009040140000002410050000 - 0009440100004002510000009040140000002410050000000944010000400251 - 0000009040140000002410050000000944010000400251000000904014000000 - 241005000000094401000040025598DE07FABD68D3A2445B65D0AA8356635A5D - BAB5DC76AFCC687D301803FF6DFE8285525DADBF2EF1D23F3020470E1D94EEEE - 6EB305402C1DDBFAA09CDEFD7030D2FF336BBB6A5A6FD0FA833660DA35D32247 - 0180D87BE39B7E4F3A36DC6166F173A5AB4B3EFDC98FC9E1A010001053312C00 - B80480D85BD7B1C18CE2695C7DBDDC7DCFABCD0C004A830200B1974AC5FFD778 - 656B9B5457EB892E00280D0A00C00313264C90A5CB57981900141F0500E089B8 - 5FCA00102F140088B5BA3ABD37B43CAC58B9AAACFE7B00F88D0200B1367EC244 - 338ABFAAEA6A695BD7616600505C140088B5868606332A0FED6B6F372300282E - 0A00C45A4343A31995875B6F5B2A4DCDCD660600C5430180586B2CC3B06CE732 - 008012A00040AC4D9D3ACD8CCA074F030028050A00C4DA9469E55700CC9A7DB3 - CC9831D3CC00A0382800106B3367CE32A3F2B2763D67010014170500624B6F96 - 9BDCD26266E565DDED1400008A8B0200B1B5A66DAD19951F2D6C162EBEC5CC00 - A0F02800105BAD655C00286E0604504C140088253DFDBF70D162332B4FAB8302 - A7B2B2D2CC00A0B02800104BAB56B79951F9D2150297AF6C353300282C0A00C4 - D2AAD6356654DE56B797F7650E00D1A10040EC4C98385116DFBAC4CCCADB9A35 - EDAC1008A0282800103BFAAADC542A19BFBABA42E0CAD5C938DB01A0B4280010 - 3B6D095B316FFD863BCD08000A870200B19284BBFFC3F47247B9AD7A08207A14 - 0088958E8DC93B1AD6CB1DEDEB9275D60340F151002056CAF9ED7F4359CB4B81 - 0014180500624357C8D395F29268CEDC793275DA74330380B1A300406C247D85 - BC8E8D779811008C1D050062A33D6177FF8725FDBF1F406151002016E6CE9B2F - 53A64E33B364D2FFFEF90B169919008C0D0500628195F132781A0040A1500020 - 1674653C649E066085400085400100EF2D59BA4C1A9B9ACC2CD97485C025B72D - 333300B8711400F05ED4A7BD9FF8E10FCCC80F497F1A0240615000C06B7ABA7B - 656BB46BFFFFD7F7BF23E73A3BCD2C7ABA14322B0402182B0A00786DF9CAD6F4 - 69EFA8F4F4F4C8E1430765D7B3DBCD96E8D5D6D6B242208031A30080D756B747 - 7BF3DFC103FBD3FDAE9D3BD2BD2F6EEFD868460070632800E0ADEAEA9AF4E9EE - 28ED7F696FBAD702606060203DF6C1ADB72D950913279A19008C1E0500BCB5BA - BD3D7DBA3B4A7B5F7C21DD77777707E33DE9B10F322B04769819008C1E0500BC - E5C3CA7F7BF70C86FE73BB9F35233FB4F16A6000634001002FE9E9EDA5CB5698 - 59348E1C3E245D5D97CDCCBFFB00162E5ACC0A81006E180500BCB46A759B5455 - 579B5934F63CFF9C19651CDCBF4F2E9C3F6F667E68E3D5C0006E904FEF14AD08 - 352D4EF4FBB3AD2ADDEAA72C958933EE0AC62863BFFCBF5F2B2D53A69A5934FE - F3DBDF92E3C78E9A59C6EC397365D6ACD96616BDC99327CB63DFFB8E9901C3D3 - 7748CC9879932C5A748BDCB66CB9AC58D92A1D1BEE4817DD1BEFBC5BEEB8EB6E - 59BFF14E59B67CA59C3A79C2BBA2D75B978E3F2E5DA77607A33ED3FA4DD3BB87 - AF39CD1B1AB4BE7083DF86BF1E02D698A66F3EA99396DBEE9519AD0F066394A9 - A6E666F9F8439F4DDFE816A577FEC1EF655D0250EBD66F90DFFEDDB798991F3E - F1E10FC881FDFBCC0CC8367FC1429917B48541E0CFBEF9E651ADAA79E9D22579 - FFBBDF91BE0916C338B6F54139BDFBE160A43B4BDB55D37A83660B01B718881C - 0500BC73CF6B7E56EE7DED6F985934F4FAFF473E70BF990DD27B133EFDB92F9A - 991F1EFBEE7FCAD7BEF265334BB6A5C1516B4343839945E36470D4BC774FE6E9 - 9128E811FECAD635E97DB162E52A19575F6F3EB9319FFAC447E4C508FF7B6283 - 02604C280090F6EEFB3F90BEC12D4A7AFAFF9187FFC9CCB2DDFFC18FC89CB9F3 - CC2C7AFA9AE2FB83A3B4FE7EFD3B26B9D6B4AF9537BFF5ED6616ADE777EF922F - 7EFE33253D72BEE5D625B2E1CEBB654D5B7B41EF9FF98B4F7E4C5E08DD0F831C - 625800447B8E1508D1BBDAA30E7F35D4237FBB9EF5EB69005D297171F0977FD2 - CDBC699619454F5FD4F49BBFF526332B1E7D59D6DDAF7A8D7CF8130FC91FBFF7 - FDB2AE637DE437CF223E2800E0151FEE6AEFEBEDCD7AFE3FCCB7C701D5BA0E56 - 083C73FAB419F941DFD33075DAC8AFB78F8606FF3DAFF939F9F8439F915FFB8D - D7CBB4E933CC27C0C85100C02BED1EBCDC66CF0BCF496FAF9EB9CB4D5F0F7CA5 - ABCBCCFCB0BA6D6D3A1492ECCCE95366E40F3D3A2F245D1D53EFD0D7E0BFF7B5 - AF934911DFEF8078A300803766DF3CC78BD3B83BB66F33A3DCF45ABB6F9701F4 - 95C9AB12BE42E069CFCE00282DCC0A65C9D265F2A71FFA98BCE177DE4CF0A320 - 2800E08DA857FEB346728ADFC7CB00ED097F29908FCFABEBFD193366CC34B31B - A38FC5FEEE5BFE50DEF1AEF779759F03E28F0200DE58777BF4D7B1F5C527274F - 1C37B3FC7C2C0096AF6C4DF40A817AD9C6B74B336AC1E25BCC68F4EEBEE735F2 - A18F3FC4BA0F280A0A00786161F097E4E49616338BCE96CD9BCC6868E7CF9F93 - FDFB5E32333FE88B937C5840294AFAE21ADFE88B78464B8FFAEF7BDFFBE5D75E - F7FAC857C444F9A20080177C09AE1DDBB79AD1F046F3B5A5B236E14F0374769E - 31237FCC9A7DB3198D8CBECFE0831FF933597C0B8F76A2B828001039BDB3D987 - 539C7A0D79346F70DBB9CDBF0240DFA1A0478F49E5E319809B4678DD5EFF7FF0 - DADF7843FA6546637D7B1F30121400889CBEC4C687BB9A77EE185DA01F3E7450 - CE7A78E779C7C63BCD28797A3C7C67BDBE9867B8659B1B1A1AD36FC0BCEB55AF - 365B80E2A30040E47CB97B7DD3533F35A391DBB6F51933F2870FEF52888AAF2B - D74D1D62011E7DFCF5FE0F7E58E6CD5F60B600A541018048E9CB6BDAD6769859 - 747A7A7A867CFB5F3E3EDE07A08F8A69A824D1502F708A52BE335CFA6CBF1EF9 - 373625F7B20DA2430180482D5DBEC28BBB9CF548FE46C263CFF3CF7979DD5997 - 2D4E222DE47C94EB099735EDEBE4ED7FFC1EEEF24764280010295F4EFFEFDAB9 - DD8C4647DF0AB8D3C3B300ED1E9C5589C2A58B17CDC82FB575BA98E9A0DBD76F - 9437FDFE1FA41FDD04A2C26F1F22A3EB96AF6A8DFEF5B5030303B27DCB8D5FCB - DF36867FB658F40D747A7A197E983061F0054DEB82F0FFADDFFD7DC21F91E337 - 109159B97A8D174B97EA69FCB1ACDBAE6F05F4F1D473D25F0DEC137B06404FFB - BFF177DE9C1E0351A30040647C394D3DD63BF9F5DE011F2F03E8CD95495B21D0 - C75701AB091326A4CFC870DA1F3EE1371191D077D6EB0D803ED8B665B319DD38 - 1F9F06D09BCB7CD9C7A5D2D575D98CFCA28F01BEE56DEF24FCE1157E1B118955 - ABDBBCF8CBF0C8E143D279F6AC99DD38BD87A0AFB7D7CCFCB17EE31D668428E9 - 637EDCED0FDF500020121D1BFC08A642DDC0A7F710EC79E13933F3C7D2652BA4 - BE7EBC9901C0200A00949CBEAB5EDF59EF83429CFEB79E19E14A82A5A43759AE - 6E4FF60A810072A30040C9F9B2F2DFB9CECEF4FBFC0BA590C54421AD4BF80A81 - 0072A30040C9F9B258CDB6AD850D6C7D09CDDE1747FF3AE1625B7CCBAD895921 - D0D73701023EA2004049E9AA68A35D1FBD588AF1029FED1E2E0EA4D6756C34A3 - F276D1D33701023EA2004049B579F2721A3D52D41700159A8F6F0554BC140840 - 1805004A6ABD2F77FF0747EAFA1EFF423B79E2B81C7DF98899F943CFBADC346B - B699010005004A4897A89D32C4BAE8A574A38BFF8CC458DF2C582CBE9C7D2926 - 5DD701C0C85000A0647C59A2565FD83396C57F86E3EB6580F51BFCB8F9B2983A - CF9E312300C3A10040C9F8F2EE7FBD537F2C8BFF0CE7E0FE7DE9470C7DA32B04 - 2E5C7C8B9901483A0A009484068F06900F363DFD53332A9E423F625828BC1A18 - 8045018092F0E96534C5BCFE6FF97A1960656B5BE2560804901B05008AAEB2B2 - 52567BF2F63F3DFD5F88C57F86A38F185EBA74C9CCFCA1CBD296FB0A81BC0C08 - 18190A0014DDE25B97A483C707BB9EDD6146C5A58F186EF7F43240B9BF1A58DF - C80860781400283A5F5EFDAB363F55FCEBFFD68E6DDBCCC82F2B56AE92BABA3A - 330386C6A395E58B020045A5D79B57B5AE31B3689D38762CFDA29E52797EF7B3 - E9470E7D935E21D0934B32F0DBF1E3C7E4C0FEFD66867253617A1FE8F7A24D8B - 126D9541AB0E9ADEB1A44D0F59EAA4E5B67B6546EB83C11831B0A67DADBCF9AD - 6F37B3687DFB5B8FCAA3FFF2B09995C61FDDF71EB96D997FD7DC9FDFBD4B3EF3 - D027CCACBC7CFCA1CFCAE49616334B36BD0FE5C4B1A372FAF4A9F4A3A97A79E4 - D2A58BD2D5D52557BA2E9BAFCAA645FBA486063913FC33FB5E7A497A7BAF9A4F - 30A4635B1F94D3BBF52F187DC6589BEE386D7A14A0AF1DD55329DAAE9916390A - 0014D55BDFFE4E59E9C919804F7EF4C1E02FB4BD66561AAFB8FB55F2EBAFFF2D - 33F3879ED6BDFFDDEF28C90D91A596D402E0D4C913E9C03E78605FD0F6CBD123 - 4782A0CF1DF228821816005C0240D1E875E6A59E1CFD5E098E78F42FC552DBB1 - 7DAB19F925954AC91A2E03C4DA99D3A7E5878F3F267FFBD77F25EF79C71FCA9F - BEF73EF9D2DF7C41BEFF9DFF90BD7B5E20FC312C0A00148D5E67D6EBCD3ED0BB - FF8BB1F8CF70F4083B8AC263247CBA39132373E4F021F9C623FF4F3EFCC09FA4 - CFE0FCE3DF7F49363DF5A49C3F7FCE7C0530721400281ABF5EFE539AC7FF72F1 - 7571205D2170C68C9966065FE991FEBF7FF35179E07DEF928F7CE07EF9B76F7E - 5D5E3E72D87C0ADC380A0014C5848913D3CFFFFB22CA02A0980B0F8DD55A4F16 - 684236BD47637B50387EEE2F1E4A1FE97FFD91874BFA040B9281020045D1BEAE - 237D9DD9077A0A3ECA53A47AB4A63768F968DDED14003ED1C7461FFBEE7FCA03 - EFBD4FBEF0B9CF94E4B5D5482E0A001445DB5A7FD69E2FD5DBFF86B265F32633 - F28BDE2DCF0A81D1B3C17FFFBBDF295FFBCA97D38FED01C5460180826B6A6E96 - 858B169B59F4766E8BFE4E7C5F9F0650EDEBFC29D692261CFCDCCC8752A20040 - C1F97477F985F3E74BFEEC7F2EFA5896BE88C5476D6B3BD20B36A1B4F4E6D00F - 3DF03E821F91A10040C1F9F47CF9CE1DFE1C796FD9FCB419F925092B04FA448B - D2BFFACB4FCB173FF7193979C2CF7B43900C140028287DAC4C1F2FF3854F0BF2 - 3CE36901A0DAD67598118A4997A3FEE807DF1FFC5EFA7B4908C941018082F2E9 - B1325D173ECAC7FFC2F6BFB437FD6E761FAD59D3CE0A8145B6E785E7E5B30FFD - 19A7FBE10D0A001454BB4777FFEB6A7C3E2D64A26F227CFAC927CCCC2FFAC6C6 - 95ABFD58B3A15CED797E370BEBC02B14002898B9F3E6CB94A9D3CC2C7A3E9E72 - F7F932C0FA0DBC1A1848120A00148C4FAFFED537A9EDF4E8FABFE5F3D300FAE6 - 467D83238064A00040C1E8E23FBED8F3FC73DEAE86E6EBD300FAE6C6DB3D2AE2 - 00141705000A62C9D265D2D8D46466D1DBF4F44FCDC83F3C0D00C00714002808 - 9FDE26A7A7FFB76DD96C66FEF1F932C0BCF90B64EAB4E96606A09C510060CCF4 - 2D722B5BDBCC2C7A7AFAFFD2C58B66E6A79D1EBF1AD8A77B3900140F0500C66C - F9CAD6F4DBE47CE1F3E97FCBE7CB00EB3AD69B118072460180315BDDEECFCD7F - BE9FFEB7F42CC595AE2E33F38B3ECA397FC122330350AE28003026D5D535B2AA - D59F17C83CBF7B97F7A7FF95BE1468C70EFF1E53B4582110287F14001893D5ED - ED525B5B6B66D1FBE9933F3623FFEDDAB9DD8CFCB3B663032B0402658E020063 - E2D3CA7FBAB6FAF62DCF9899FFF445457AC9C2477A4F87BE180840F9AA30BD0F - F47BD1A64589363DFCA80E5A8D69BA52499DB4DC76AFCC687D30182362FAD6B8 - 4F7EFA73E9F7C8FB409759DDF5AC3F8BFF8C84BE3CC9A73328AEA77EFA13F9D2 - FFF98299C5C7C71FFAAC4C6E6931337F7CEBD147E49B5F7FC4CC50768E6D7D50 - 4EEF7E3818759BA60B3F68EB0D5A7FD0B4DAD776CDB4C85100E0866D7CC5DDF2 - 9B6FFC1D3343B9D1D514EF7BDB5B62B7800D05002211C302804B00B8613EADFC - 87C2D333137A8F0780F24401801BD2D4DCCC35E204685FCBAB8181724501801B - A237FFE9E231286F4B97AF608540A04CF137386E48AB4777FFA378B4C86B6781 - 20A02C510060D474B198858B169B19CA5D1BF77A0065890200A3D6C65BE21245 - 8B3D560804CA0F0500468DBBFF9387A20F283F14001895D937CF919937CD3233 - 24C5ED2C110C941D0A008C8A4F2BFFA174A64D9F912EFE00940F0A008CCABADB - 39124CAAF51BEF342300E580020023B670F12D5EBE6215A5A1EB16B04220503E - 280030623EADFC87D26B6C6AE2ED8F4019A100C088E8911FCF83631D37030265 - 83020023A2477E931A1ACC0C49A59701AAAB75714E00714701801169E7397004 - 7485C015AB5699198038A300C0B0F488AF8D55E160701900280F14001896AE08 - A7477E805ABA8C150281724001806171FA1FAEAAEA6A59B5BACDCC00C4150500 - 8654575727AB5AD7981990D1B1E10E33021057140018D2CAD56BD2477C804B57 - 086C6A6E3633007144018021B573F31FF2E8E0D5C040AC5100202FBDD14B6F00 - 047261596820DE28009097DEE8954AF12B82DC745968560804E28BBFDD911737 - 7A6138EDEBB84404C415050072D21BBCF4462F6028BC1408882F0A00E4C4CA7F - 18095D21F0965B6F333300714201809CB8C31B23B56EFD7A330210271400B8CE - D469D365D6EC9BCD0C18DAEA35AC1008C4110500AED3C6AB7F310AE3EAEB795C - 1488210A005C673D77FF6394D66FE47706881B0A0064D1E7BAA74C9D6666C0C8 - E80A81F5F5E3CD0C401C500020CBBAF53CD685D1D3F52256B7F3E40810271400 - C8C2BBFF71A3783530102F15A6F7817E2FDAB428D15619345D864E6F2FD65697 - 6E2DB7DD2B335A1F0CC628B0858B6F9177FFC90366E68FED5B9F91C3870E9A59 - 328DAB1F2FAF7AF5CF9899BFDE77DFDBA5F3EC59338BC6C71FFAAC4C6E693133 - 7F7CEBD147E49B5F7FC4CC50768E6D7D504EEF7E3818759B76D5B4DEA0F5076D - C0B46BA6458E0200FFED756FF86DB9F3AE579A993F1E78DFBBE4E489E366965C - 1FFDE4A7BDBF3FE35FFEF9ABF29D7FFF37338B0605002211C302804B0048ABAC - AC94D51EBEFDEFC8E14384BFB1E9E99F9A91BF783530101F1400485B7CEB1299 - 30618299F9E399CD4F9B11B66CF27F5FE80BA46E9A35DBCC00F88C020069BEBE - FA77FB9667CC087A1FC4A99327CCCC5FBC480A88070A00A45FE3BAAA758D99F9 - 43C3EEE52387CD0CEA274FFCC88CFCB57E03EB48007140010059B16A95D4D6D6 - 9A993FE270CDBBD4363FE5FF3ED11502F58912007EA30080B7376EC5E19A77A9 - E90D917A63A4EFB81910F01F0540C2D5D5D5A55FE3EA9B739D9D897FF63F9F38 - DC18A94F94E8932500FC45019070FA17B5BEC6D5375BB8FB3FAF277FFC4333F2 - 973E51B27C65AB9901F0110540C2F97AAA96C7FFF2D337EDED7D718F99F9AB9D - A70100AF510024D8848913D3CFFFFBE6C2F9F3B277CF0B66865CB6C6A040D227 - 4BF41213003F51002458FBBA0E49A5FCFB15D8B963AB19219F389C2149AF10E8 - E1DB250164500024589BA7ABB76D8AC1A36E51D3CB007B5E78DECCFCC5D30080 - BF280012AAA9B959162E5A6C66FEB874E992EC79FE3933C3509E7AF20933F297 - 5E62D2DF3500FEA10048285F5FFDBB73FB56E9EFD785B3309C6D5B36CBC0802E - 2EE62FBDC4B486CB008097280012CAD7BF94B7F1EEFF11BB74F1622CCE96ACE5 - 3200E0250A80049A3163667AD536DFF4F4F4C8AE9D3BCC0C231187D725CF993B - 4FA64E9B6E66007C410190406BD7FB7944B66DEB33D2DB7BD5CC30129B9F7A52 - FA7A7BCDCC5F1D1BEF302300BEA00048A0764FEFFEDFB573BB1961A4BABBBB65 - D7B3FE9F35F1F5770E48320A8084993B6FBE4C993ACDCCFCA147B1ACFD7F63E2 - F04E00FD9D638540C02F140009E3EB73D97A14AB47B3183D2D9CE27019805703 - 037EA10048185FDFCCC6BBFF6F9C164ECF3CB3C9CCFCD5B6B6831502018F5000 - 24C892A5CBA4B1A9C9CCFCA1CFB273F7FFD86CD9E47F01A52B042E5DEEDFD2D3 - 405251002488AFA760F559767DA61D374E0B287D8CD2776DEB3ACC0840D42800 - 12424FBDAE6C6D3333BFC4E15976DFE9E393FA18A5EF582110F0070540422C5F - D99A3E05EBA39DDB58FDAF109EFE89FF6B03D4D6D6CACAD56BCC0C4094280012 - 6275BB9F37FFED7D718F9C3F7FCECC3016CFED7E36BD9892EF6EEFD8684600A2 - 44019000D5D535E953AF3EDACADDFF05A38B286DDFBAD9CCFC75EB6D4B65C2C4 - 896606202A140009B0BABD3D7DEAD5473CFE57589B9EF2FF7E0A5D21F0761608 - 022247019000BEAEFC77F0C07EE93C7BD6CC5008FA44C585F3E7CDCC5F3C0D00 - 448F02A0CCE9A9D6A5CBFC7CF63A0E77ADC78D5E06D81C83A72AE6CD5FC00A81 - 40C42800CADCAAD56D52555D6D667ED91C83D3D5711497CB2A6DBC1A18881405 - 4099F37515B6A32F1F9193278E9B190A69EF9E17E45C67A799F96BFD06960806 - A2440150C69A9A9B65F1AD4BCCCC2F9CFE2FAE2D3159215057A704100D0A8032 - A637FFE91DD73E8AC3BBEBE3EC273FFEA119F9CDD7D5298124A0002863AD9EDE - FD7FEAE409397CE8A099A11874FFEA7EF65DDBDADB5921108808054099D23BAC - 172E5A6C667ED9B2D9FFA56BCB411CD65898D4D0E0ED652AA0DC510094299FEF - B0DEB19D77FF97425C2EB3746CBCD38C009412054099F2F5EE7FBD3B5DEF5247 - F1E9658023870F9999BFF435D5FABA6A00A54501508666DF3C4766DE34CBCCFC - 1287BBD3CB491CDE09A0AFA9D6D75503282D0A8032A42FFFF115A7FF4B2B2E2F - 5BF2F575D54039A3002843935B5ACCC82FBA54ADBEAB1EA5A32F5B8AC3658079 - F3179AD1D80D0C0C98915FE2B04603928502A00C9D397DDA8CFCA17F29FFF357 - FF6FFA5DF528AD471F79D8DB50B47A7A7ACC68EC9E7CC2CF7720EC7BE9253302 - FC50617A1FE8F7A24D8B126DFA70B0BEC45EEF0ED256976E2DB7DD2B335A1F0C - C6C8436FA8DA78E75D32FBE69B25E5C133D65D5D5DB2F9A92783BF00F79A2D28 - B5858B6F49DF185A5BA7FF37F2CBA58B1783D0FE91BC7CE4B0D93276EBD66F90 - 5B6E59E2CDEFFFCEED5BE5B95DCF9A2D284BC7B63E28A7773F1C8CBA4DBB6A5A - 6FD0F4C847AB706DD74C8B1C050000006315C302804B00000024100500000009 - 4401000040025100000090401400000024100500000009440100004002510000 - 0090401400000024100500000009440100004002510000009040140000002410 + 000000000000000000000000000000000000000000000000008067CA4C0FFFF1 + B3021017374D0F8F112AFEC9F533E16705202E72150014061E2154A297ED6730 + 946DFCEC00F8221CECD9827EA8DB5024844834060B733B1FEAD7014054060B7F + 3B1FEAD7A1480890E271F775AE200FF76AA8DB00200AD9027E28DBDCCF54B6AF + 4501112085952DB45538C0DD3EFC75D93E0BF7CA1D034021650B6BB7CF3656E1 + CFB2F52AD7187944681446AE60D6B19DDB7178AEDCCFB23515EE953B068042C8 + 16CE6E3F5053D9C6D93E53B9C6C80302237F7205B18EEDDC8EB3CDB5950FB04D + E958D9CF54B80780427303DBF676DC677A9DEBD87E665BB66D2AD7DCCA35C66D + 223446CEDD87D942D98E6D78BBBDFD5CC7E1B9DBA75BFDECC95235EA4E29AB9C + 23B5E366C8E8C993A5A2728648D504B9D957176C9F16FC898AE06B0120FFFAA4 + 576EF69C92B2F20E91EE8BD2DB735CAE9D3D2B9D578E07DB0F4BF7F517E5F291 + B3C157DAF0D66603DF0D7E1D87E72ADCDBCF55B857EE18C3A4C182DBE3EE3B3B + B661ADECD86DE160D7DE36775E260DB36749E5E835523B698D8C99BC522A2B16 + 89548C0B3E03008FF55E919EDE7DD27E76A7749EDB2A3DD7B64ADB91A3C1071A + D66EF0DBB13B77FB7053E1B1E58E31441A3A183EBBDFDC3E3CD66683DD8E73B7 + FA6953A466E2BD523F77BDD48EDD14FC91A9C176002801374F4BE7D51FCBE543 + CF48D785A7E4F2A933C146B700C8D66CD8BB631BF4E1B1DB638834983074767F + B9BD3BD630B7DBECD886BC9E9AB7E3741B3F779E8C9DF60B32EE8EFBA5BCBA29 + D80600A5AFEFC636B972E2BB72F5D4D7E4D2A183BA25D47A9DB106BBEDDDB1B2 + DB54B8C7206C786160763FB9FB4B435CB9616FC76EB3C19FEEEBC6374AFDC2FF + 250DF37E492A2A5704DB0020B97A7B7649DBC17F93CB2F3F211D97CE075BDC02 + C02D046CB3A16FC74AC71685C010B98186ECEC3E727BB769B8DB3E7BE86BDFB8 + 64A34C5CF806A91EFBCA605E13340040BF2EB971F57B72E1E57F90F37B9F0EE6 + E122205C0CB84580DB54B847161A5CC8CEEE1BB70F3737F433035F5BCDB83A99 + B8E017A561D19BA55C6FE203000CAAAF779FB4EDFB5BB9B0FB09E9EAEA0AB668 + F8E72A04B2150136F8C33D1C1A62B895DD2F6E6F033FDCF707BE1BFC8D4B5F2F + 0DF3DE2265658DC13600C070DDBC795EDA0E7E5ECEEFF947E9BAD2116CB18580 + 5B10D80220DC87C3DFF6306CC021CDEE0FB7779B0DFC1CC15F5323939A7E53C6 + CF7B1BC10F0079A285C0A5839F9573DBBE183A23102E046CB305806D2ADC279E + 0D3AF4EF0BB7B7A16F7B37F8B5AF34E34A99BAFA7F48E3E2F74A59E5EC600E00 + C8B79B3D47E4FC4B9F90D3DBBF11CC7A82A6E1AFBD867EB810D0A0778B014511 + E0B06197746EE82B1BFAE1E0D7668FF835FC2BA57ED62299BEE651A91CBD3198 + 03000AADE7DAD37272EB07E4F2D17D3A336DB0B3013A56140106054066F8BBCD + 06BE8E6DE8F7877FF5D8D1326DCD1FC99819BF1F7C956E0300148BBE96B8FDF8 + DFC8A9AD7F2537AE5E0BB6B845806D36F8DD42C03665FB44D2704B321BF6CA8E + 6DE8878FF8D3C19F3AEA9FD7227734FF855454CD0BE60080A8F4761F94135BDE + 25970F6E0E66E1B301DADC02C02D04943B4E9CA41EB9DAB0D7A6EC381CFAE9C0 + 17A94AB59A9A5A99B9E93DD2B8ECCFA5A26262B00D0010A5F28A06193BF35764 + F4845AB97E7AB3F46AE667FCDDEEF661837D5ED292F81F1DFE81DB237E6DB98E + FAABA476D21C9973F767A56AD4EA600E00F04D6FE72E39F8C3B74AE7B9C3C1AC + 3B68039D0DD0A663E59E11480C0DB824C915FEE1D0EF0F7E916A99B2EC6764D6 + 5D5F948A6AEEF007005F95574E9189731E90B29BFBE55AAA0808B3077B968E35 + F4ED36F7B39297A40220FC0376C3DFB6CCE0D736FB150FCA84451F0D3EE6F5BD + 00E0BDE0EFEAD1537F41464DA890CB47F4BE80C1425D3F4F641190940220FC83 + 1D3CFCABC78C97F9F77F5E464F796D300700C449CDB856193F63B95C3DFD94F4 + DED04B0103D13C485C1190840220FC030D87BFEE031BFEDAAA65D4C4E932E7FE + BF0F7E8136047300401C558E9A27E3666F948EB34F49CFF5EBC116F71A7F38E4 + 759EA822A0D40B80F00F72A0F04F1FF98F9EBC5866BFF21FA4AA6649300700C4 + 5945D5D4A008B85FAE9F7B46BAAF5D325B73D17C484C11908402C0FE007385BF + B6F4637EA327DF29735FF5CF5251714730070094027D5470FCBC9F976B677E10 + 14016D66AB7B36C0A539E1160125AB940B80E184BF1EF96BF87F99457C00A004 + 9595D53945803D1390E822A0540B00C21F009029B30848FC9980522C00EC0F4B + 7B37F8DD02C0BDE6AFE1FF25C21F0012205D04FC5C962220572160955C21506A + 054038FCDD02C01EF5DBF0AF925113A6CB9C577F59CACBA70673004012681130 + 6EEE2BA5FDE437A5E77A87D9EA1AE8AC40C928A50260A8E19F7ED4AF6AF47859 + F0B35F918ACA39C11C009024E565E364FC9C7BE5D2E127A5AF5B5F1B3CD81900 + AB648A80522B00EC0FC606BF5B00F41FF95757D7C9BC57FFAD54D63505730040 + 1295554C9471D357C8D5C3DF94DE5E775D806CC5806E2B99F057A55200D81F8A + F61AF8B6B747FEDAD2E1AF47FF33373D247593FE67300600245945CD6CA9A9AF + 934B479E0E6636F8DD02C08E3557DC71EC954201E086BF0DFEF0917FFAB4BF16 + 00D35B7E45C6CF7D5F300600405F1BBC462A6B8FCBD5932F992DD90A81B0D817 + 01A55200B82D5BF8A78FFEC7DEB15CA6367D5ECACA740E00405A6DC326E96C7B + 4A6E5C3D1FCC34F8DD2260A04220B6E25E00D8D0571AFA3AD6FF261DBBE15F2D + 55E31B64DE7D5F90F24AEEF8070064D203C37177AC934B27BE267D9D37822DE1 + 2220DCDBEC89AD38170076E7DB22C01EF987C33F5D00CC5EFF41A919FF8A600C + 00C0ADF4A6C0DA310D72E9F053C12C57F887C5B610887B01E0360D7EFDEFB1AD + FFE87FF28A57CB84057F128C0100C8AD7AECF2E09F7BE4DAD9C341AFA16F9B95 + AB10881D0DCD38722B2EB700700B81F45980BAFA09D2B8FCD1600C00C0E03433 + 343BFACF266BA6B8196373C772C7B1A1FF51716477BE36FD61D8E61EF9A7DBEC + 577E44AAEB9A83310000832B2F1B23A31A27CBC5FDDF0966EE5900DB4A828666 + DCD8E057E142400B80FEA3FF89F337CAA809BF148C0100183ACD8E8685ADC1C8 + 3D0BA04DB3C6CD1EE58E63238E0580E5FE00F4BFC32D002AA4BABA56A6B47C28 + 180300307CD3D67E3495256EB6F4E78D9B41B114B702C0DDD9761C0EFF74B536 + 69F5AF4B45C5DC600C00C0F069866896643F0BE01601CA1DC742DC0A00CBEE68 + DB320B00BD7963C2BC77046300006E9F6649FF0D816E0110CEA1D8895301E0EE + 643BD6EFDFB674F86BDFB8F20F826E6C3006006004822C49658A933199D9932D + 9B6241BFF9B8B13BD8361BFEE956DB3055EA67BD2E18030030729A299A2D6ED6 + 6486BF6DB1129702C0DDB976ACDF7B66F86B753665E5EF05BD2EFC0300403E54 + 9B6C712F0368B339942DA3BC179702C0B23BD6B6CC22402BB471337E2D180300 + 903F9A2D996701C2E16F5B6CC4A1007077A8DDC199C19F6E953269E91B839EA3 + 7F0040BE559B8C19CA5900E58EBD14870240D91DEBB6CC22A0AA7E9C8C9FF9AB + C1180080FCD38CD1ACC91DFE6EF39EEF0580BB13DD1D9B19FE5A9135CEFFE560 + C89DFF008002D12702346B32CE02642B022C77EC1DDF0B00E5EE503BB6E1DF5F + 044C58C8D13F00A0B0D259E386BFEDB36595D7E25000587687DA1DDD1FFE0DF3 + D64879E582600C0040E168D668E66416016E36698B059F0B007727DA9DAACD06 + 7F7F013061FEAF043D00008597CE1CB700700B01DB2C77EC159F0B00E5EE4CDB + F47BEE0FFFAABA3AA99DF4F3C1180080C2D3CCD1ECC92C02C205806DDEF2BD00 + 507607BA3BD4EEEC72193FE71E292F1B158C0100283CCD1CCD1E378B32334AD9 + DE5BFA4DFB28BCE3EC4E757776BAF21A37F767821E0080E249674FF80C80369B + 57AEF0DC0BFACDFACAEE44B7B93BB93C7DFABFFE95C1180080E2D1EC495F06C8 + CCA5ECD9E525FD66E3C0DD91FA3D9BA3FF99AD9CFE0700149D668F6650E65900 + 37ABBCE77B01E0EE4CFD5E33DBE8C9AF087A00008A2F9D41B766536676794BBF + 51DF84779C3B777770858CBD637DD00300507CE90CCA750F8036159E7B43BF59 + 9F65DB81E99D3C66EA6429AF98138C0100283ECD20CD229B4B9959A56CEF259F + 0B0077076AB33B38DD4635AC0B7A0000A293CEA2CC7CEACF2D657BEFE837EA33 + BB13C3AD5C6A27AE0A7A0000A293CE2237F4C3CD5BBE1500E19D65E7DADBCA2A + DDC64D6F0A7A0000A293CEA2CC7CCACC2E57781E29FD467DA33BC836E5CED33B + B7AAAA4ACAAB58FC0700102DCD22CD249B4F9999A5C2736FF85800B8EC4E7377 + 6AB9D4CD9C1FF4D5410300204AD526933273AA7FEC2D5F0B0077A7D971FF0EAD + AE5998DA020040D42A6BE705FFB4816F73355B8E79C5D70240D99D6977A8EDCB + A572F4DCA00700207AD5757A493A9D4F9999659B97F49BF49DBB13B595CBD869 + B3821E0080E8A533291CFADABCE6530110DE69B9E75535140000003F94574F0F + FE993BB3D2C2F3C8F97A06C0DD61B6D796AEB06E56E89B970000885E65C594E0 + 9FFD19956E2ADC7BC5D702C06577667FABA8A4000000F8A1AC6A9AFE334BF39A + CF0540B69D5926A3A74C0A7A0000FC91CEA6ECB9E5A9389C01507607EAF5FF3A + 330600C00FE96CEACFAA18F0B100702BA65BC765B553D35300003C91CEA681F3 + CB33BE5F02B0BCDC7900008484F3CADBEC8ACB4D805699549471090000E097F2 + F29AE09FB1087E2B4EF700989D59313EDD0300E089B2F28976649AF77C2F00C2 + 3B31163B15009048B1CAACB85D020000200EBCCFAEB85C02507667521000007C + 13BB8C8A5301000000F2840200008004A200000020812800000048200A000000 + 12880200008004A200000020812800000048200A00000012880200008004A200 + 000020812800000048200A00000012880200008004A200000020812800000048 + 200A00000012880200008004A200000020812800000048200A00000012880200 + 008004A200000020812800000048200A00000012880200008004A20000002081 + 2800000048A032D3FB40BF176D5A9468AB085A55D0AA4DAB4DB5C6A50FC8B4A6 + 478231F0DFE6CD5F205555FAEB122FBD7D7D72FCE811E9ECEC345B00C4D2A96D + 8FC8F93D8F0723FD3FB3B61BA67507AD37687DA6DD342D72140088BD37BEE9F7 + 64FDC6BBCD2C7EAE7774C8273FF1513916140200622A8605009700107BADEB37 + 9A513C8DAAAB93FB5EF56A330380E2A00040EC9597C7FFD7785553B35455E989 + 2E00280E0A00C00363C68C91652B569A1900141E0500E089B85FCA00102F1400 + 88B5DA5ABD37B434AC5CB5BAA4FE7B00F88D0200B1367ACC58338ABFCAAA2A69 + 6E5D6F66005058140088B5FAFA7A332A0D2DEBEE322300282C0A00C45A7DFD78 + 332A0D772E5D260D1326981900140E0500626D7C0986650B9701001401050062 + 6DF2E42966543A781A004031500020D6264D29BD0260C6CC59326DDA74330380 + C2A00040AC4D9F3EC38C4ACBBA0D9C050050581400882DBD596E6263A3999596 + D6BB28000014160500626B6DF33A332A3D5AD82C58B4D8CC0020FF2800105B4D + 255C00286E06045048140088253DFDBF60E122332B4D6B8202A7A2A2C2CC0020 + BF2800104BABD7349B51E9D2150257AC6A323300C82F0A00C4D2EAA6B56654DA + D6B494F6650E00D1A10040EC8C193B5616DDB9C4CC4ADBDAB52DAC1008A02028 + 00103BFAAADCF2F264FCEAEA0A81ABD624E36C0780E2A20040EC34276CC5BC0D + 1BEF312300C81F0A00C44A12EEFE0FD3CB1DA5B6EA2180E851002056D66F4ADE + D1B05EEE68694DD6590F00854701805829E5B7FF0D641D2F050290671400880D + 5D214F57CA4BA2D973E6CAE42953CD0C00468E0200B191F415F2D66FBADB8C00 + 60E42800101B2D09BBFB3F2CE9FFFD00F28B0200B13067EE3C9934798A992593 + FEF7CF9BBFD0CC0060642800100BAC8C97C6D30000F2850200B1A02BE321FD34 + 002B0402C8070A00786FC9B2E532BEA1C1CC924D57085CB274B99901C0EDA300 + 80F7A23EEDFDF40F7F60467E48FAD31000F28302005ED3D3DDAB9AA25DFBFFFB + DFFD965C6A6B33B3E8E952C8AC100860A42800E0B515AB9A52A7BDA3D2D5D525 + C78E1E91DD2FEC305BA2575353C30A8100468C02005E5BD312EDCD7F470E1F4A + F5BB77ED4CF5BEB86BFD26330280DB4301006F555555A74E7747E9D081FDA95E + 0B80BEBEBED4D807772E5D2663C68E353300183E0A00786B4D4B4BEA747794F6 + BFFC52AAEFECEC0CC6FB52631FA457085C6F6600307C1400F0960F2BFFEDDFD7 + 1FFA7BF7BC60467E68E6D5C000468002005ED2D3DBCB96AF34B3681C3F76543A + 3AAE99997FF7012C58B888150201DC360A007869F59A66A9ACAA32B368EC7B71 + AF19A51D397450AE5CBE6C667E68E6D5C0006E934FEF142D0B352D4EF4FBB3AD + 32D5EA262D93B1D3EE0DC62861BFFCBF5F2B8D93269B5934FEEB9BDF90D3A74E + 9A59DACCD97364C68C996616BD891327CAF7BEF32D330306A7EF909836FD0E59 + B870B12C5DBE4256AE6A92F51BEF4E15DD9BEEB94FEEBEF73ED9B0E91E59BE62 + 959C3B7BC6BBA2D75BEDA79F928E737B82518F69BDA6E9DDC3379DE60D0D5A5F + B8C16FC35F0F01AB4DD3379FD44AE3D207645AD323C11825AA61C204F9D8639F + 4EDDE816A577FEC1EF655C0250AD1B36CA6FFFEE5BCCCC0F1F7FF40372F8D041 + 330332CD9BBF40E6066D4110F83367CD1AD6AA9AEDEDEDF2FE77BF2375132C06 + 716ADB23727ECFE3C1487796B61BA67507CD16026E3110390A0078E755AFF959 + 79E0B5BF6166D1D0EBFF1FFEC04366D64FEF4DF8E4673E6F667EF8DEB7FF4BBE + F2A52F9A59B22D0B8E5AEBEBEBCD2C1A6783A3E6FDFBD24F8F44418FF05735AD + 4DED8B95AB56CBA8BA3AF3C9EDF98B8F7F585E8EF0BF273628004684020029EF + 7EE803A91BDCA2A4A7FF9F78FC9FCD2CD3431FFCB0CC9E33D7CCA2A7AF297E28 + 384AEBEDD5BF63926B6DCB3A79F35BDF6E66D17A71CF6EF9FC673F55D423E7C5 + 772E918DF7DC276B9B5BF27AFFCC5F7EE2A3F252E87E186411C30220DA73AC40 + 88DED51E75F8AB811EF9DBFD825F4F03E84A898B82BFFC936EFA1D33CC287AFA + A2A6DFFCAD379959E1E8CBB2EEBBFF35F2E8C71F933F7EEFFBA575FD86C86F9E + 457C5000C02B3EDCD5DED3DD9DF1FC7F986F8F03AAD6F5AC1078E1FC7933F283 + BEA761F294A15F6F1F0E0DFE57BDE6E7E4638F7D4A7EED375E2F53A64E339F00 + 43470100AFB478F0729B7D2FED95EE6E3D73979DBE1EF87A478799F9614DF3BA + 542824D985F3E7CCC81F7A749E4FBA3AA6DEA1AFC1FFC06B5F27E322BEDF01F1 + 4601006FCC9C35DB8BD3B83B776C37A3ECF45ABB6F9701F495C9AB13BE42E079 + CFCE00282DCCF265C9B2E5F2A71FFAA8BCE177DE4CF0232F2800E08DA857FEB3 + 86728ADFC7CB002D097F29908FCFABEBFD19D3A64D37B3DBA38FC5FEEE5BFE50 + DEF1AEF779759F03E28F0200DE68BD2BFAEBD8FAE293B3674E9B596E3E16002B + 5635257A8540BD6CE3DBA519357FD162331ABEFB5EF51AF9D0C71E63DD071404 + 0500BCB020F84B726263A3994567EB96CD6634B0CB972FC9A18307CCCC0FFAE2 + 241F16508A92BEB8C637FA229EE1D2A3FE07DFF77EF9B5D7BD3EF2153151BA28 + 00E0055F826BE78E6D6634B8E17C6DB1AC4BF8D3006D6D17CCC81F3366CE32A3 + A1D1F7197CF0C37F268B16F368270A8B020091D33B9B7D38C5A9D79087F306B7 + 5DDBFD2B00F41D0A7AF498543E9E01B86388D7EDF5FF07AFFD8D37A45E6634D2 + B7F70143410180C8E94B6C7CB8AB79D7CEE105FAB1A347E4A287779EAFDF748F + 19254F9787EFACD717F30CB66C737DFDF8D41B30EFBDFFD5660B50781400889C + 2F77AF6F7EF6A7663474DBB73D6F46FEF0E15D0A51F175E5BAC9032CC0A38FBF + 3EF4C14765EEBCF9660B501C14008894BEBCA679DD7A338B4E5757D7806FFFCB + C5C7FB00F451310D95241AE8054E51CA75864B9FEDD723FFF10DC9BD6C83E850 + 002052CB56ACF4E22E673D92BF9DF0D8F7E25E2FAF3BEBB2C549A4859C8FB23D + E1B2B6A555DEFEC7EFE12E7F4486020091F2E5F4FFEE5D3BCC6878F4AD80BB3C + 3C0BD0E2C1599528B45FBD6A467EA9A9D5C54CFBDDB56193BCE9F7FF20F5E826 + 10157EFB10195DB77C7553F4AFAFEDEBEB931D5B6FFF5AFEF611FCD942D137D0 + E9E965F861CC98FE1734B506E1FF5BBFFBFB843F22C76F2022B36ACD5A2F962E + D5D3F82359B75DDF0AE8E3A9E7A4BF1AD827F60C809EF67FE3EFBC393506A246 + 0180C8F8729A7AA477F2EBBD033E5E06D09B2B93B642A08FAF025663C68C499D + 91E1B43F7CC26F2222A1EFACD71B007DB07DEB1633BA7D3E3E0DA03797F9B28F + 8BA5A3E39A19F9451F037CCBDBDE49F8C32BFC362212ABD7347BF197E1F16347 + A5EDE24533BB7D7A0F414F77B799F963C3A6BBCD0851D2C7FCB8DB1FBEA10040 + 24D66FF42398F275039FDE43B0EFA5BD66E68F65CB574A5DDD683303807E1400 + 283A7D57BDBEB3DE07F938FD6F3D3FC495048B496FB25CD392EC150201644701 + 80A2F365E5BF4B6D6DA9F7F9E74B3E8B897C6A4DF80A8100B2A30040D1F9B258 + CDF66DF90D6C7D09CDFE9787FF3AE1425BB4F8CEC4AC10E8EB9B00011F5100A0 + A87455B4E1AE8F5E28857881CF0E0F170752ADEB37995169BBEAE99B00011F51 + 00A0A89A3D79398D1E29EA0B80F2CDC7B7022A5E0A04208C020045B5C197BBFF + 8323757D8F7FBE9D3D735A4E9E386E66FED0B32E77CC9869660040018022D225 + 6A270DB02E7A31DDEEE23F4331D2370B168A2F675F0A49D7750030341400281A + 5F96A8D517F68C64F19FC1F87A1960C3463F6EBE2CA4B68B17CC08C060280050 + 34BEBCFB5FEFD41FC9E23F833972E860EA1143DFE80A810B162D363300494701 + 80A2D0E0D100F2C1E6E77E6A468593EF470CF385570303B0280050143EBD8CA6 + 90D7FF2D5F2F03AC6A6A4EDC0A8100B2A30040C1555454C81A4FDEFEA7A7FFF3 + B1F8CF60F411C3F6F67633F3872E4B5BEA2B04F232206068280050708BEE5C92 + 0A1E1FEC7E61A71915963E62B8C3D3CB00A5FE6A607D232380C15100A0E07C79 + F5AFDAF26CE1AFFF5B3BB76F3723BFAC5CB55A6A6B6BCD0C18188F56962E0A00 + 14945E6F5EDDB4D6CCA275E6D4A9D48B7A8AE5C53D2FA41E39F44D6A85404F2E + C9C06FA74F9F92C3870E99194A4D99E97DA0DF8B362D4AB45504AD2A687AC792 + 363D64A995C6A50FC8B4A647823162606DCB3A79F35BDF6E66D1FAE6379E9427 + FFF571332B8E3F7AF03DB274B97FD7DC5FDCB35B3EF5D8C7CDACB47CECB14FCB + C4C646334B36BD0FE5CCA99372FEFCB9D4A3A97A79A4BDFDAA747474C8F58E6B + E6AB3269D13EAEBE5E2E047FE6E08103D2DD7DC37C82019DDAF6889CDFA37FC1 + E833C6DA74C769D3A3007DEDA89E4AD176D3B4C85100A0A0DEFAF677CA2A4FCE + 007CE2238F047FA1ED37B3E278C57DF7CBAFBFFEB7CCCC1F7A5AF7A177BFA328 + 3744165B520B807367CFA402FBC8E183413B24278F1F0F823E7BC8A300625800 + 70090005A3D799977972F47B3D38E2D1BF148B6DE78E6D66E497F2F27259CB65 + 8058BB70FEBCFCF0A9EFC9DFFDCD5FCB7BDEF187F2A7EF7D50BEF0B79F93EF7E + EB3F65FFBE97087F0C8A020005A3D799F57AB30FF4EEFF422CFE33183DC28EA2 + F0180A9F6ECEC4D01C3F7654BEF6C4FF93471FFE93D4199C7FFA872FC8E6679F + 91CB972F99AF00868E020005E3D7CB7F8AF3F85F36BE2E0EA42B044E9B36DDCC + E02B3DD2FF8FAF3F290FBFEF5DF2E10F3C24FFFEF5AFCA89E3C7CCA7C0EDA300 + 40418C193B36F5FCBF2FA22C000AB9F0D048ADF364812664D27B34760485E367 + FEF2B1D491FE579F78BCA84FB02019280050102DADEB53D7997DA0A7E0A33C45 + AA476B7A83968F5AEFA200F0893E36FABD6FFF973CFCDE07E5739FF954515E5B + 8DE4A200404134AFF367EDF962BDFD6F205BB76C3623BFE8DDF2AC10183D1BFC + 0FBDFB9DF2952F7D31F5D81E50681400C8BB86091364C1C2456616BD5DDBA3BF + 13DFD7A701544BAB3FC55AD284839F9BF9504C1400C83B9FEE2EBF72F972D19F + FDCF461FCBD217B1F8A879DDFAD4824D282EBD39F4430FBF8FE0476428009077 + 3E3D5FBE6BA73F47DE5BB73C67467E49C20A813ED1A2F4AFFFEA93F2F9CF7C4A + CE9EF1F3DE1024030500F24A1F2BD3C7CB7CE1D3823CCF7B5A00A8E6D6F56684 + 42D2E5A83FF2C1F707BF97FE5E124272500020AF7C7AAC4CD7858FF2F1BFB043 + 07F6A7DECDEEA3B56B5B5821B0C0F6BDF4A27CFAB13FE3743FBC410180BC6AF1 + E8EE7F5D8DCFA7854CF44D84CF3DF3B499F945DFD8B86A8D1F6B3694AA7D2FEE + 61611D78850200793367EE3C9934798A9945CFC753EE3E5F06D8B09157030349 + 420180BCF1E9D5BFFA26B55D1E5DFFB77C7E1A40DFDCA86F7004900C1400C81B + 5DFCC717FB5EDCEBED6A68BE3E0DA06F6EBCCBA3220E40615100202F962C5B2E + E31B1ACC2C7A9B9FFBA919F987A70100F880020079E1D3DBE4F4F4FFF6AD5BCC + CC3F3E5F06983B6FBE4C9E32D5CC0094320A008C98BE456E5553B399454F4FFF + B75FBD6A667EDAE5F1AB817DBA970340E1500060C456AC6A4ABD4DCE173E9FFE + B77CBE0CD0BA7E8319012865140018B1352DFEDCFCE7FBE97F4BCF525CEFE830 + 33BFE8A39CF3E62F343300A58A0200235255552DAB9BFC7981CC8B7B767B7FFA + 5FE94B8176EEF4EF31458B150281D24701801159D3D2223535356616BD9F3EF3 + 6333F2DFEE5D3BCCC83FEBD66F648540A0C4510060447C5AF94FD756DFB1F579 + 33F39FBEA8482F59F848EFE9D0170301285D65A6F7817E2FDAB428D1A6871F55 + 41AB364D572AA995C6A50FC8B4A647823122A66F8DFBC4273F937A8FBC0F7499 + D5DD2FF8B3F8CF50E8CB937C3A83E27AF6A73F912FFC9FCF99597C7CECB14FCB + C4C64633F3C7379E7C42BEFED527CC0C25E7D4B647E4FC9EC78351A769BAF083 + B6EEA0F5064DAB7D6D374D8B1C05006EDBA657DC27BFF9C6DF3133941A5D4DF1 + C1B7BD25760BD850002012312C00B80480DBE6D3CA7FC83F3D33A1F77800284D + 1400B82D0D1326708D38015AD6F16A60A0545100E0B6E8CD7FBA780C4ADBB215 + 2B5921102851FC0D8EDBD2E4D1DDFF281C2DF25A5820082849140018365D2C66 + C1C245668652D7CCBD1E4049A200C0B035F396B844D1628F150281D243018061 + E3EEFFE4A1E8034A0F05008665E6ACD932FD8E196686A4B88B25828192430180 + 61F169E53F14CF94A9D352C51F80D24101806169BD8B23C1A4DAB0E91E330250 + 0A280030640B162DF6F215AB280E5DB780150281D241018021F369E53F14DFF8 + 8606DEFE0894100A000C891EF9F13C385AB919102819140018123DF21B575F6F + 66482ABD0C5055A58B7302883B0A000C490BCF8123A02B04AE5CBDDACC00C419 + 050006A5477CCDAC0A0783CB004069A000C0A07445383DF203D4B2E5AC100894 + 020A000C8AD3FF70555655C9EA35CD660620AE280030A0DADA5A59DDB4D6CC80 + B4F51BEF3623007145018001AD5AB33675C407B87485C0860913CC0C401C5100 + 60402DDCFC871CD6F36A6020D628009093DEE8A5370002D9B02C34106F1400C8 + 496FF42A2FE75704D9E9B2D0AC1008C4177FBB23276EF4C2605A5AB94404C415 + 0500B2D21BBCF4462F6020BC1408882F0A0064C5CA7F180A5D2170F19D4BCD0C + 409C5000202BEEF0C650B56ED8604600E2840200B7983C65AACC9839CBCC8081 + AD59CB0A81401C5100E016CDBCFA17C330AAAE8EC7458118A200C02D3670F73F + 8669C3267E6780B8A10040067DAE7BD2E42966060C8DAE10585737DACC00C401 + 050032B46EE0B12E0C9FAE17B1A68527478038A1004006DEFD8FDBC5AB818178 + 2933BD0FF47BD1A64589B68AA0E932747A7BB1B6DA546B5CFA804C6B7A241823 + CF162C5A2CEFFE9387CDCC1F3BB63D2FC78E1E31B3641A55375AEE7FF5CF9899 + BFDEF7E0DBA5EDE245338BC6C71EFBB44C6C6C34337F7CE3C927E4EB5F7DC2CC + 50724E6D7B44CEEF793C18759A76C3B4EEA0F506ADCFB49BA6458E0200FFED75 + 6FF86DB9E7DE579A993F1E7EDFBBE4EC99D366965C1FF9C427BDBF3FE35FFFE5 + CBF2ADFFF877338B0605002211C302804B0048A9A8A890351EBEFDEFF8B1A384 + BFB1F9B99F9A91BF783530101F1400485974E7121933668C99F9E3F92DCF9911 + B66EF67F5FE80BA4EE9831D3CC00F88C020029BEBEFA77C7D6E7CD087A1FC4B9 + B367CCCC5FBC480A88070A00A45EE3BABA69AD99F943C3EEC4F1636606F593A7 + 7F6446FEDAB09175248038A00080AC5CBD5A6A6A6ACCCC1F71B8E65D6C5B9EF5 + 7F9FE80A81FA440900BF5100C0DB1BB7E270CDBBD8F48648BD31D277DC0C08F8 + 8F0220E16A6B6B53AF71F5CDA5B6B6C43FFB9F4B1C6E8CD4274AF4C91200FEA2 + 004838FD8B5A5FE3EA9BADDCFD9FD3333FFEA119F94B9F2859B1AAC9CC00F888 + 0220E17C3D55CBE37FB9E99BF6F6BFBCCFCCFCD5C2D30080D72800126CCCD8B1 + A9E7FF7D73E5F265D9BFEF25334336DB625020E993257A8909809F280012ACA5 + 75BD9497FBF72BB06BE73633422E713843925A21D0C3B74B0248A30048B0664F + 576FDB1C8347DDA2A69701F6BDF4A299F98BA701007F51002454C38409B260E1 + 2233F3477B7BBBEC7B71AF996120CF3EF3B419F94B2F31E9EF1A00FF50002494 + AFAFFEDDB5639BF4F6EAC25918CCF6AD5BA4AF4F1717F3975E625ACB6500C04B + 140009E5EB5FCADB79F7FF90B55FBD1A8BB325EBB80C007889022081A64D9B9E + 5AB5CD375D5D5DB27BD74E33C350C4E175C9B3E7CC95C953A69A19005F500024 + D0BA0D7E1E916DDFF6BC7477DF30330CC596679F919EEE6E33F3D7FA4D779B11 + 005F500024508BA777FFEFDEB5C38C30549D9D9DB2FB05FFCF9AF8FA3B072419 + 0540C2CC993B4F264D9E6266FED0A358D6FEBF3D71782780FECEB14220E0170A + 8084F1F5B96C3D8AD5A3590C9F164E71B80CC0AB8101BF5000248CAF6F66E3DD + FFB74F0BA7E79FDF6C66FE6A5EB79E1502018F500024C89265CB657C438399F9 + 439F65E7EEFF91D9BAD9FF024A57085CB6C2BFA5A781A4A20048105F4FC1EAB3 + ECFA4C3B6E9F1650FA18A5EF9A5BD79B1180A8510024849E7A5DD5D46C667E89 + C3B3ECBED3C727F5314ADFB14220E00F0A808458B1AA29750AD647BBB6B3FA5F + 3E3CF713FFD706A8A9A991556BD69A198028510024C49A163F6FFEDBFFF23EB9 + 7CF992996124F6EE7921B59892EFEE5ABFC98C004489022001AAAAAA53A75E7D + B48DBBFFF3461751DAB16D8B99F9EBCEA5CB64CCD8B16606202A140009B0A6A5 + 2575EAD5473CFE975F9B9FF5FF7E0A5D21F02E1608022247019000BEAEFC77E4 + F02169BB78D1CC900FFA44C595CB97CDCC5F3C0D00448F02A0C4E9A9D665CBFD + 7CF63A0E77ADC78D5E06D81283A72AE6CE9BCF0A8140C428004ADCEA35CD5259 + 5565667ED91283D3D5711497CB2ACDBC1A188814054089F37515B693278ECBD9 + 33A7CD0CF9B47FDF4B72A9ADCDCCFCB561234B040351A20028610D1326C8A23B + 9798995F38FD5F585B63B242A0AE4E09201A1400254C6FFED33BAE7D148777D7 + C7D94F7EFC4333F29BAFAB530249400150C29A3CBDFBFFDCD93372ECE8113343 + 21E8FED5FDECBBE67577B1422010110A8012A577582F58B8C8CCFCB2758BFF4B + D7968238ACB130AEBEDEDBCB5440A9A30028513EDF61BD7307EFFE2F86B85C66 + 59BFE91E3302504C140025CAD7BBFFF5EE74BD4B1D85A797018E1F3B6A66FED2 + D754EBEBAA0114170540099A396BB64CBF638699F9250E77A7979238BC13405F + 53ADAFAB06505C140025485FFEE32B4EFF17575C5EB6E4EBEBAA815246015082 + 2636369A915F74A95A7D573D8A475FB61487CB0073E72D30A391EBEBEB3323BF + C4618D06240B054009BA70FEBC19F943FF52FE972FFFDFD4BBEA515C4F3EF1B8 + B7A16875757599D1C83DF3B49FEF403878E08019017E2833BD0FF47BD1A64589 + 367D38585F62AF770769AB4DB5C6A50FC8B4A647823172D01BAA36DD73AFCC9C + 354BCA3D78C6BAA3A343B63CFB4CF017E07EB305C5B660D1E2D48DA135B5FA7F + 23BFB45FBD1A84F68FE4C4F16366CBC8B56ED8288B172FF1E6F77FD78E6DB277 + F70B660B4AD2A96D8FC8F93D8F07A34ED36E98D61D343DF2D12A5CDB4DD32247 + 010000C048C5B000E01200000009440100004002510000009040140000002410 0500000009440100004002510000009040140000002410050000000944010000 4002510000009040140000002410050000000944010000400251000000904014 0000002410050000000944010000400251000000904014000000241005000000 0944010000400251000000904014000000241005000000094401000040025100 0000904014000000241005000000094401000040025100000090401400000024 1005000000094401000040025100000090401400000024100500000009440100 - 004002C5B000E83F6706000078227ED914C30260A0CB0C0000F044FCB2294E05 - C035D30300E0ABD864551C0A80EC9DD9D77DD28C0000F0C3F5D9E47D21E07B01 - 10DE81D7A4B7874B000000BF64B2E9FACCF2585C2E01E84ECCECC8CB27CFA47B - 00007C31984D8379E5B9B85D02C8ECD88181539929000011BBD6774CFF34CDF2 - BE08F0B900B83EF833AE053B9BFB0000007EE8EFD74C1ACCA8C1B172C75EF1B1 - 0070775EAEF135E9BD7238BD050080A8F575BB6700C299A5DCB137E2740F80ED - AFC9C5A347325300002296C92437E4BD0BFB5C7CBF0490BBF55D3910F4000044 - AFB7EBA5E0CFDC7995695E8ACB4D80D9EDEA95BD410F0040F47ABBF7077F5E9F - 559EF3B500B03BCEEDB50DA4FBAE237A06E06AD0000088D2559349831995692A - DC7BC5A702C0EE347787E59EF7F5F54ADFD57DE9AD00004445B34833C9CDA88C - E1E6918BE325804C8575F9D8F6A00700203A992C1ACCA6ECE6B5B8DC046877AC - F699D6756667D00300109D4C160D66537666D9E625DFEF015076ECEED0A00038 - B54537020010994C1665E75386CD2EE58EBDE1FB25007787BAE3A000387D4A06 - FA0E056300004A4F3348B3C8E652EECCF2968F0580DD6976C7B973BB9333EDD2 - D1A7831E0080D2CB6450762E6567960ACFBDE15B0110DE41EE0E0CEFE401B97C - E289A00700A0F43219747D366567972B3C8F545C2E01849BEEE07E397768B35C - BB7625180300503A9A3D9A419A4583A19FAB79CBE702C0EE38BB13DDEA2AD3FA - BABBE5CA991F056300004A47B347332857366587BFEDBD13873300B6B7CDDDC9 - FD726EFFF7831E0080D2C9648F3DFAB7CDCD2A657B2FC5F926C0CC8E3F7FE849 - 2E0300004A463347B3C7CDA2C1E666960ACFBD11A77B00DC1D6C5BBFF4755F91 - AE13DF0BC60000149F668E66CFF5E16F9B9B5DDEF2BD00B0DC9DA93B5777FA60 - EBDCF78DA00700A0F83299939D43310A7ECBF79B00C3CDADB0060B81CEFD3BA5 - BF5797630400A078346B3473B283DF6DB9B2CB4BBE1600E11D6677A2BB93EDCE - D7D62767F6FC6BD00300503C99ACE90B9A9B416E36E50AFDF0DC0B71B8046077 - 9CDDA9DADC9D9DF9019C7BF1DF828F2E056300008A20C89874D60C19FCDA94ED - BD15A79B006DCB0E7EDB7A2E5F9473FB1F0DC60000149E668C664D387F721701 - B679CBF77B002C7767DAF0778B003D1DD327279EFBA7A0BF1A3400000AE9AAC9 - 984CDE6487BFEDDDACB2DCB157E27009C0B23BD5EE64B700C8B4ABE74ECA8543 - 9C0500001496668B664C3877B233C9E6542CC4E51E00BB43EDD886BF5B0464AA - B2633BBF1CF49C05000014CA55932D2339FA57EED85B71B807C0B23B549BEEEC - 70F867FAABE74EC8F9438F04630000C64E3345B3C5CD9AC1FCB179E46694E58E - BD13974B00EE8EB52D7F117062FBDF055FC213010080310AB2249D29230E7FDB - BC57697ADF5598A6DCDE362D646C9F92FE9E3E49D5F4CAF896DB8339000037E6 - D40B5F90F307360523BDB4DC6B7A2D026CB3854038F8BD2F02E27206C0B23BD8 - B65C670132EDF4F64764A0F75030060060F43443344BDC6C19FEE83F36E27609 - 40D97138FCB30B80BEBE6E79F9E94F05630000464F3344B3C4CD96ECCC091701 - CA1D7B2D6E670094DDB9B6E52F02CE1DD82C974FFE4730060060E4343B3443DC - 4CC9CE1A37F86D8B95381500EE0EB6635B7DD922C0FE80F43A4DE607F6F2537F - 2903FDA782310000C3D3CCD0EC180C7ECD143763DCECC9954DB110979B002D7B - D39FB2E37C4D8B9B0AE9EFE99581BEE33271E63DC11C0080A11DDBFA51B9F8F2 - 73C1C8BDF16FF0C032BB088855E8BBE25600581AF0F9FA704BC995D32FCBB8E6 - 29523BE996600E00406E178E7C438E3DF395606483DF86BF5B00C4FEE85FC5F1 - 1E00CBEE6C6DF687A155996DF60795F9C11DDFF457D2DF7D20180300703DCD08 - CD8AEB03DFCD9670F86B8BA5B89E01507A746F7B3B5676EEB694F4F7F64B77E7 - B3D238F767834D55C13600008C816E39F4C3774957E7D160A2E13FD4D17F38FC - 635908C4FD1280B2E35CBD367B962325572F9D9754E519193FF50EB30D000091 - 53BBFE5CCEBEF4D360A4A1DF13341BFCB6D933001AF49C0188980D7897BBCD8E - B50D1601974EEC97718D13A4B661A9D9060048B20B87FE595E7EFA1F83911BFE - E1A37F7BEADF0D7F2B964540395C02B0DCB91BFECA9D57C8A597B7CB849B964A - F5B89BF4430040425DE9DC24871EFF845CBBA62FFC714FFB6B1FBE07207CE41F - CBE0B7E25C00A870C8E7EBB3DBB5E06776F9E527A571DE4649553506DB000049 - D3DBFD921CFCDEBBA5F7AA2E1E67C3DF1600F6C83FDFA97F2BB64540DC0B00CB - 867D98BBDD1600AA42FA7BFBE4D2D127A461DE5D92AA9C60B6030092A0BFF784 - 1CF8EE1F49F7A533C1CC0D7EDB878FFCC3E11F2E0462A71C0A8070F8BB41AF06 - 433FDCF7F574CBE5E39BA571EE5D52911A67B60300CAD9405FA71CF8FE1FCB95 - CEC3C12C1CFE1AFC3A76C3DF86BDDB62AF1CCF00E41BBB068B80DE2B17E4F2B1 - A7A5711E450000943B0DFFFDDF7D87749D7D299885C35F7BF7E8DF1EF9878B00 - 15FB22A05C0A00A5A1AE4D7F28761C16DE969953040040F9CB1DFE6E11A0C11F - 3EF56F435FC756ECC35F955B01E0F6AE5CC1EF6EE34C000094B3FCE16F8FFAF3 - 1DF9DB22409545F05BE55400A85CE13F528345C0A4D96D92AA6A30DB010071D6 - D77D580E3E765F10FEFB839986BE3EEB1F2E02721DFDDBF0B74D954D11506E05 - 801AEE68DF75FDD7A68B80A33F960933564865ED14B31D001047572F3E2707FF - EB3DD2D5F9B2CE82E6867FBEA37F37F46D53B62F0BE558002837F4AF0FF90CFB - 830C7F1EFC1AF45C918B877F20E3A6CE939AFAD9662B00204EBA4EFD480E3EFE - 80F4643DEAE786BFEDF39DF67703BFACC25F956B016069B8EB0FEDFA90CFC85F - 04E87B023AF7FE406A26A6645CD34AB3150010079DFBFF2108FFCF047F977705 - B3E1C23FD7697FED958ECB2EFC55B917006AA44580953DBF707887F475EF9509 - D3D74945AAC66C0500F868A0FFB21CDDFC6139B1FDD1603654F0273AFC5512CE - 00D85E7F88232D02ACCCF62B678FC8C5233F9449372D95CA9A96F43600805F7A - 2F3F2FFBBFF76EB9787467300B87BE1BFC230DFFB296943300B6CF5704D81FB4 - FBB98E077F01FABA2F49E78BDF95EAF15552D7B834F8B27CC50400A0A4AE0DC8 - B9035F95838F7D5C7AAFE8F57E37F4DDE0D7B1BDDB5F837EB8F01FCC80329484 - 02408DA408B0C23F709D67B65D0B7EC92E1CDE26DD9D5B64C2CC1592AA9C94DE - 0E0088465FCF6139FCC403726AD7BF077F47DB3BFC6D6F83DF36F7513F1BFC89 - 0C7F959402408DB408D0CFDC1FBCFBCB90693D174E49E74BFF21D5E3529C0D00 - 802898A3FE038F7F2C382873DFE96F83DF1DDBF00F9FF24F6CF8ABA405975B04 - A854D074ACBDDBB430AA32AD7AC83671DA3C99D1FE36A96D680DE6008062EB39 - BF558E6DFABC5C3CB12F9869B0DB90CFD5F21DF5273AFC55128F5CF315016E21 - A005806DB608081703EEBC4AA62CB95BA62E7F93A4AA6704730040A10DF41E93 - 933BFF564E3DF75FC1CC0DFE701160E736F8C347FE1AF2890E7F95C40240858B - 807001102E04ECD9805CC5C0E0B6CACA3A99BAE217A479F1AF4BAAAA29D80600 - 182B7D8FFFD93D5F91933BBE21FDFDDDC11637E07385BE6DE1E00F17002A91E1 - AF925A005836F8955B04D8DE2D02DC42C006BF3B1EDC5659532F53970585C0A2 - 5FA51000801B940EFE17BF26279F0D82FFAABED0C7067B38F0F3057FF8A83F57 - F8272EF82D1B7E49162E006CB305808EDD22C02D04B2833FDC2A2B6BA5E5B6D7 - 48F3E25F92AABAF9C13600C070FABAF70547FCFF2AA7777F2738E2D73BFADD70 - B72D1CFADADCE0D76643DF0D7E37F46D9F481A6E18DC0FB6B7C1AFCD1602B685 - 8B80A10A82C1CF9A16B4CAE485BF2875CDFA4641FD1A0080756DA057BACF3E25 - 67F63E2A9D2F6D0DB684C33D5FD3A0B7BD361BF8E1E0D7B122FC0D0A8041E122 - C02D006CEF1601DABB211F2E04C2DB32E39A8666699A774F5010BC52AAEB1605 - DB0020B97ABB5F0C02FF31E9DCFF3DB97AFE6CB0C50DF570C887E76E9F2BF86D - 1F0EFDC487BFB261870C37FC6DEF36B708B08540B8B9C16FFBF0B64C9B386DB6 - 4C987D9734CE59275575B706DB00A0FCF5753F2FE70E3E25970E3F2E174FE833 - FC1AE0B6B9C19E2FEC6DD3B986BC8E7385BE6D2ADC279E0D3A64B3FBC5ED6D01 - 10EE872B04861ADB9692BAA6169938BD5D26CE5A198C574865F5D4603B00C45F - 7FEF49E9EEDC21178F6C978BC73705E3D3C1561BDCE1401F6EEC36FD77B8C11F - 0E7F15EE61D880C3F5ECBE71FB70B305805B08E42B086C730B00F76BDD7F3E25 - F5D367487DC312193779898C9FB6582A6BE748AA727CF01900F84B57E3EBEF39 - 28974FEC912B679E93AEF3413B7E4C3F31CD06B71BE2769C2FE86D73FF79B7B9 - A16F9B0AF77068886168761FB9BDDB34B06D6F5B38D06DC8DB966F9BFBCFD836 - F8BF51D73259C635CE0B8A8199523B7E9AD435364B75D0A7AA26051F8F93CAAA - 96A0D7AF0580C2D31BF506FA3B83C11519E8BB20BD974F48F7B9B3D213F4FD3D - 47E5CAB9FDD27D5A17E3D1C0B5C1EC06B51BDE6EB0DBEDF9B685FF596DEEFF86 - DB54B8470E1A2E189EDD4FEEFEB2413B18D08363B7D9400F877C78BBFB79AE16 - FEDFB14DD95EB9630028243750DD90759B1BCEF95AAE70CF15F4EED8B6F0FF8E - 6DCAF6CA1D2307C26274C281ABBD3B7603DA0D6D6DB9023EBC2DD7D7B8FF0EFB - EF0E37657BE58E01A0107285ABF6B99A1BD6766C5B38D4879BDB7F87FBEFD65E - D96D2ADC631804C58D0987AEF6E1B13637B46D888FB485FF995CFF4EE58E953B - 06804272C3351CBEDAC2416D5B783E9296EBDFA94D85C76E8F11222C6E5CAED0 - D53E3C769B1BECB6B7CD9DE7FADAF0D836E58E01A0D8C201ECB65CE1EDF6E1B1 - 3B77FB7053E1B1E58E314284C6D8B9FBD00D64DBDBB18677B8B79FEB383C77FB - A19A65C7EE360028A47CE13B54CB15EC3A0ECF55B8B79F6BB3F28D314A8445E1 - E40A63A5633BB7E35C736DB902DF6E533A56F63315EE01A0D86CF0BABD1DBBE1 - ED86BC6DB9B6A97C732BDF183788D0280E77BF86C7766EC7E1B9723FCBD554B8 - 57EE18008A215710BBFD504DE51AE7FA4CE51BA300088CE2CA17CE769CAB0F7F - 5DAECFC2BD72C700504CB982D9ED738D55F8B35CBDCA374601111AA5335458DB - 79B85723DD060051182AC087DAE67EA6727D2D8A8800894678BFE79B8FF4EB00 - 202A4305B9B2F3917E1D4A8400895EAE9FC148B6F1B303E08B9184F948B7A144 - 0811FFE4FB99F0B3021017F9829DC0F788BE7A1600804222E801000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0040025100000090401400000024100500000009440100004002510000009040 + 1400000024100500000009440100004002510000009040312C007A2F99010000 + 9E885F36C5B000E8EB300300003C11BF6C8A530170D3F40000F82A3659158702 + 207367F6749E35230000FC706B36795F08F85E008477E04DE9EEE2120000C02F + E96CBA35B33C16974B00BA13D33BF2DAD90BA91E00005FF467537F5E792E6E97 + 00D23BB6B7EF5C7A0A0040C46E769FD27F9A66795F04F85C00DC1AFC6941DFC3 + 7D0000003FF4F469263919F5DF63E58EBDE26301E0EEBC6CE39BD27DFD586A0B + 000051EBED74CF0084334BB9636FC4E91E00DBDF94AB278EA7A70000442C9D49 + 6EC87B17F6D9F87E09207BEBE93C1CF4000044AFFBFA81E09FD9F32ADDBC1497 + 9B0033DB8DEBFB831E0080E875771E0AFE796B5679CED702C0EE38B7D7D697EA + 3B8EEB19801B410300204A374C26F56754BAA970EF159F0A00BBD3DC1D967DDE + D3D32D3D370EA6B602001015CD22CD2437A3D2069B472E8E9700D215D6B5533B + 821E0080E8A4B3A83F9B329BD7E27213A0DDB1DAA75BC7855D410F004074D259 + D49F4D9999659B977CBF0740D9B1BB438302E0DC56DD08004064D25994994F69 + 36BB943BF686EF9700DC1DEA8E8302E0FC39E9EB391A8C0100283ECD20CD229B + 4BD933CB5B3E160076A7D91DE7CEED4E4EB7F693CF053D0000C597CEA0CC5CCA + CC2C159E7BC3B70220BC83DC1D18DEC97D72EDCCD3410F0040F1A533E8D66CCA + CC2E57781EA9B85C020837DDC1BD72E9E816E9BB793D180300503C9A3D9A419A + 45FDA19FAD79CBE702C0EE38BB13DDEA2ADD7A3A3BE5FA851F056300008A47B3 + 4733285B366586BFEDBD13873300B6B7CDDDC9BD72F9D077831E0080E249678F + 3DFAB7CDCD2A657B2FC5F926C0F48EBF7CF4192E0300008A463347B3C7CDA2FE + E666960ACFBD11A77B00DC1D6C5BAFF4745E97EB67BE138C0100283CCD1CCD9E + 5BC3DF3637BBBCE57B0160B93B5377AEEEF4FED676F06B410F0040E1A5332733 + 876214FC96EF3701869B5B61F517026D8776496FB72EC7080040E168D668E664 + 06BFDBB26597977C2D00C23BCCEE447727DB9DAFAD472EECFBB7A00700A070D2 + 59D313343783DC6CCA16FAE1B917E27009C0EE38BB53B5B93B3BFD03B8F4F2BF + 071FB5076300000A20C89854D60C18FCDA94EDBD15A79B006DCB0C7EDBBAAE5D + 954B879E0CC60000E49F668C664D387FB21701B679CBF77B002C7767DAF0778B + 003D1DD32367F6FE73D0DF081A0000F974C3644C3A6F32C3DFF66E5659EED82B + 71B80460D99D6A77B25B00A4DB8D4B67E5CA51CE020000F24BB34533269C3B99 + 9964732A16E2720F80DDA1766CC3DF2D02D255D9A95D5F0C7ACE020000F2E586 + C996A11CFD2B77ECAD38DC0360D91DAA4D777638FCD3FD8D4B67E4F2D1278231 + 000023A799A2D9E2664D7FFED83C7233CA72C7DE89CB250077C7DA96BB0838B3 + E3EF832FE1890000C008055992CA942187BF6DDEAB30BDEFCA4C536E6F9B1632 + B62F97DEAE1E29ABEE96D18D77057300006ECFD9973E27970F6F0E467A69B9DB + F45A04D8660B8170F07B5F04C4E50C806577B06DD9CE02A4DB851D4F485FF7D1 + 600C00C0F069866896B8D932F8D17F6CC4ED1280B2E370F86716003D3D9D72E2 + B9BF08C600000C9F668866899B2D9999132E02943BF65ADCCE0028BB736DCB5D + 045C3ABC45DACFFE6730060060E8343B3443DC4CC9CC1A37F86D8B95381500EE + 0EB6635B7DD922C0FE80F43A4DFA0776F2D9BF92DEDE73C1180080C169666876 + F407BF668A9B316EF664CBA65888CB4D8096BDE94FD971AEA6C54D99F476754B + 5FCF69193BFD55C11C0080819DDEF611B97A626F30726FFCEB3FB0CC2C026215 + FAAEB8150096067CAE3EDCCAE5FAF913326AC224A919B73898030090DD95E35F + 9353CF7F2918D9E0B7E1EF1600B13FFA5771BC07C0B23B5B9BFD616855669BFD + 41A57F70A737FFB5F4761E0EC60000DC4A3342B3E2D6C077B3251CFEDA6229AE + 6700941EDDDBDE8E959DBBAD5C7ABB7BA5B3ED05193FFB67836965B00D0000A3 + B7538EFEE85DD2D176329868F80F74F41F0EFF58160271BF04A0EC385BAFCD9E + E528971BED97A5BCE2828C9E7CB7D9060080C8B93D7F2E170FFC341869E87705 + CD06BF6DF60C80063D6700226603DEE56EB3636DFD4540FB994332AA7E8CD48C + 5F66B6010092ECCA917F91139BFF2918B9E11F3EFAB7A7FEDDF0B762590494C2 + 2500CB9DBBE1AFDC7999B49FD82163EE582655A3EED00F01000975BD6DB31C7D + EAE372F3A6BEF0C73DEDAF7DF81E80F0917F2C83DF8A7301A0C2219FABCF6C37 + 839FD9B513CFC8F8B99BA4BC727CB00D009034DD9D07E4C877DE2DDD3774F138 + 1BFEB600B047FEB94EFD5BB12D02E25E005836ECC3DCEDB6005065D2DBDD23ED + 279F967173EE95F28A31663B0020097A6E9C9123DFFE23E96CBF10CCDCE0B77D + F8C83F1CFEE14220764AA1000887BF1BF4AA3FF4C37D4F57A7749CD922F5B3B5 + 081865B603004A596F779B1CF9DE1FCBF5B663C12C1CFE1AFC3A76C3DF86BDDB + 62AF14CF00E41ABBFA8B80EEEB57E4DAA9E7A43E7526802200004A9986FFE1EF + BC433A2E1E0866E1F0D7DE3DFAB747FEE12240C5BE082895024069A86BD31F8A + 1D8785B7A5E714010050FAB287BF5B0468F0874FFDDBD0D7B115FBF057A55600 + B8BD2B5BF0BBDB38130000A52C77F8DBA3FE5C47FEB608502511FC562915002A + 5BF80F557F11307666B35454D69BED008038EBEE3C2647BFFF6010FE87829986 + BE3EEB1F2E02B21DFDDBF0B74D954C11506A05801AEC68DF75EBD7A68A80933F + 963153574A45CD24B31D00104737AEEC0DC2FF3DD2D17642674173C33FD7D1BF + 1BFAB629DB9784522C00941BFAB7867C9AFD41863F0F7E0DBAAECBD5E33F90DA + C973A5BA6EA6D90A0088938EB33F92233F7858BA321EF573C3DFF6B94EFBBB81 + 5F52E1AF4AB500B034DCF587766BC8A7E52E02F43D0197F6FF40AAC796CBA886 + 55662B00200EDA0EFD6310FE9F0AFE2EEF086683857FB6D3FEDA2B1D975CF8AB + 522F00D4508B002B737EE5D84EE9E9DC2FA3A7B44A7979B5D90A00F0516FCF35 + 39B5E55139B3E3C9603650F0273AFC5512CE00D85E7F88432D02ACF4F6EB178F + CBD5133F9471D397494575636A1B00C02FDDED2FCAA1EFBE5BAE9EDC15CCC2A1 + EF06FF50C3BFA425E50C80ED731501F607ED7EAEE3FE5F809ECE7669DBFF6DA9 + 1A5D29B5F5CB822FCB554C00008AAAAF4F2E1DFEB21CF9FEC7A4FBBA5EEF7743 + DF0D7E1DDBBBFD35E8070BFFFE0C2841492800D4508A002BFC03D7797ADBCD9B + 7D72E5D876E9BCB455464F5F291515E352DB0100D1D047FC8EFFE46139B7FB3F + 82BFA3ED1DFEB6B7C16F9BFBA89F0DFE4486BF4A4A01A0865A04E867EE0FDEFD + 6548B7AE2BE7A4EDC07F4AD5A872CE06004014EC51FF0F3E2A9D19EFF4B7C1EF + 8E6DF8874FF92736FC55D282CB2D025479D074ACBDDBB430AA34AD6AC03676CA + 5C99D6FC36A919DF14CC010085D675699B9CDAF259B97AE66030D360B7219FAD + E53AEA4F74F8AB241EB9E62A02DC42400B00DB6C11102E06DC79A54C5A729F4C + 5EF12629AF9A16CC0100F9D6D77D4ACEEEFA3B39B7F7FBC1CC0DFE701160E736 + F8C347FE1AF2890E7F95C40240858B807001102E04ECD9806CC540FFB68A8ADA + A008F8056958F4EB5251D5106C03008C94BEC7BF6DDF9782F0FF9AF4F676065B + DC80CF16FAB685833F5C00A84486BF4A6A0160D9E0576E11607BB708700B011B + FCEEB87F5B45759D4C5E1E14020B7E954200006E532AF8F77F45CEBE1004FF0D + 7DA18F0DF670E0E70AFEF0517FB6F04F5CF05B36FC922C5C00D8660B001DBB45 + 805B0864067FB85554D448E3D2D7C88445BF2495B5F3826D0080C1F4741E948B + FBFE4DCEEFF95670C4AF77F4BBE16E5B38F4B5B9C1AFCD86BE1BFC6EE8DB3E91 + 34DCD0BF1F6C6F835F9B2D046C0B1701031504FD9F35CC6F9289F37F516A26B4 + 4A79857E0D00C0EAEBED96AE8BCFCA85034F4ADB816DC19670B8E76A1AF4B6D7 + 66033F1CFC3A5684BF4101D02F5C04B80580EDDD22407B37E4C38540785B7A5C + 5D3F411AE6BE4AC6CF7FA554D72E0CB6014072DDE87C592E1DF89EB41DFA8EDC + B87C31D8E2867A38E4C373B7CF16FCB60F877EE2C35FD9B0439A1BFEB6779B5B + 04D84220DCDCE0B77D785BBA8D9D3253C6CCBC57C6CF6E95CADA3B836D0050FA + 7A3A5F944B479E95F6634FC9D533FA0CBF06B86D6EB0E70A7BDB74AE21AFE36C + A16F9B0AF78967830E99EC7E717B5B0084FBC10A8181C6B6954B6D43A38C9DDA + 226367AC929A869552593539D80E00F1D7D37D56BADA76CAD5E33BE4EAE9CDD2 + D9763ED86A833B1CE8838DDDA6FF0E37F8C3E1AFC23D0C1B70B895DD376E1F6E + B600700B815C05816D6E01E07EADFBE7CBA56EEA34A91BB74446352E91BA298B + A4A27AB654548E0E3E03007FE96A7CBD378E48C7997D72FDFC5EE9B812B4D3A7 + 824F6C40DBE07643DC8E7305BD6DEE9F779B1BFAB6A9700F8786180666F791DB + BB4D03DBF6B68503DD86BC6DB9B6B97FC6B6FEFF8DDAC689326AFC5C29AF992E + B5A3A7486DFD04A91A3345CA2BC7C9CDB2515259D1187CA97E2D00E49FDEA8D7 + D7D7266537AF4B5FCF15E96E3F239D972F4AE7B533D2D77552AE5F3A249DE775 + 311E0D5C1BCC6E50BBE1ED06BBDD9E6B5BF8CF6A73FF37DCA6C23DB2D070C1E0 + EC7E72F7970DDAFE80EE1FBBCD067A38E4C3DBDDCFB3B5F0FF8E6DCAF6CA1D03 + 403EB981EA86ACDBDC70CED5B2857BB6A077C7B685FF776C53B657EE18591016 + C3130E5CEDDDB11BD06E686BCB16F0E16DD9BEC6FD77D87F77B829DB2B770C00 + F9902D5CB5CFD6DCB0B663DBC2A13ED8DCFE3BDC7FB7F6CA6E53E11E8320286E + 4F3874B50F8FB5B9A16D437CA82DFC67B2FD3B953B56EE1800F2C90DD770F86A + 0B07B56DE1F9505AB67FA736151EBB3D8688B0B87DD94257FBF0D86D6EB0DBDE + 36779EED6BC363DB943B0680420B07B0DBB285B7DB87C7EEDCEDC34D85C7963B + C610111A23E7EE4337906D6FC71ADEE1DE7EAEE3F0DCED076A961DBBDB00209F + 7285EF402D5BB0EB383C57E1DE7EAECDCA35C6301116F9932D8C958EEDDC8EB3 + CDB5650B7CBB4DE958D9CF54B8078042B3C1EBF676EC86B71BF2B665DBA672CD + AD5C63DC2642A330DCFD1A1EDBB91D87E7CAFD2C5B53E15EB9630028846C41EC + F60335956D9CED33956B8C3C20300A2B5738DB71B63EFC75D93E0BF7CA1D0340 + 21650B66B7CF3656E1CFB2F52AD71879446814CF40616DE7E15E0D751B004461 + A0001F689BFB99CAF6B5282002241AE1FD9E6B3ED4AF0380A80C14E4CACE87FA + 75281202247AD97E0643D9C6CF0E802F8612E643DD86222144FC93EB67C2CF0A + 405CE40A7602DF23FAEA590000F289A007000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000888EC8FF07E56367B80631B8280000000049454E44AE426082} + 000000000000000000000000000000000000000000000000000000000000203A + 22FF1FC3205EB4B2308BA90000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512.png' @@ -852,11 +852,11 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000004000000040008060000007F1D2B 83000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 738C49444154785EEDFD0BB465D75918E8AE7AA9ACB2F5AC12B664A9846D9025 - 1BA82A6130A592743BA914527A241D028671E9011DB866E09BD1971E18C2E036 - A69BE4764C9A3834DC6664D070318F847B1983102021B8FD883B69CB42066CA9 - 6483F5F053926DD95649D65B964A5575F77FF69E3EF3CC33D77E9CB3CF3E7BEF - F57D63FC99FF9C6B1F39A95ABB72FE7FCDB55603000000000000000000000000 + 73B549444154785EEDFD0BB465D75918E8AE7AA95CA5A755256C3D4A021B64C9 + 3CAA4A184CA924752795424A8FA443C0302E3DA003D70CB8197DE981210C6E63 + BA496EC7A48943C36D46060D17F348E8660C420C09C131767C435B16E2614B25 + 03B2243FF5B0655B25590F4BB2542AD5DDFFD97BFACC33CF5CFB71CE3EFBECBD + D7F78D3199FF9C6B9F129C33D7E1FCFF9A6BAD06000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -867,907 +867,908 @@ object AboutForm: TAboutForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 4067EC188CC06CF8CE0100AC756E30025B4C3102D3E53B0500305D1A0430258A - 15D898CD7C777CEF0000FA3653DC6B0CC084142230DAA4DF13DF2B0080E998B4 - C8D7148021142AB0DEB8DF8B8D7E7F7CEF0000FA365AB08FFB731A02905188C0 - 78DF8349BE2BA33EEB7B0700D037AA409FA4801FE7B31A02749A42842E9A56C1 - DFF69969FDF7010096D9660AF66915FB1A02748A2284AE1875AE6FE4F8B09F99 - F4F36D36F2330000DB69234575ED6786FD7726FD7CD8EC7158788A0B96D9A405 - 7AAE3CDEF6F98D7E2EB47D160060D94D52C097EB9BFD5C32ECF8A89F8585A400 - 61D90C3BA7273956FB6CBEB6D9E3496D0D006099D58AEB516B9B3D1E6A9F4936 - 7A0C168AE2836530EC3C1EF758ED73696D9263F97CD8CF85DAF1716CF4E70000 - A66DA3C571FE73B5FFC6B0E3693EECE7861D0BB5E3C9468FC1DC5348B0C8DACE - DF71D7DBE69B596FCBC3B063B961C7000016C9B8C574F9B9B663296FFBFCA4EB - 49394F265D87B9A6D060D1B49DB3E3AC979F49F371D6A7B116F23C19770D0060 - 91D48AE4516BB57C5A6B61D47A288F2593AEC3DC5164B028DACED551EBE5F1DA - FA386BA3C630CE6742ED676A861D03009867C38AE261C5769AB78D61D467CA31 - 8CBB16DAD69349D7616E283098676DE7E738EBB57CD85A6D4C79C8E7A3C61079 - 39CFC764D41C0060D1B515D8499AE7EB9197F35163CA433E1F3586616B21CF73 - 93AEC3B6526C308FDACECBDA7ABE56CBCBB5B6796D6CCBCB71D8B17C0CB5B5A4 - 5CAB7D06006011940570AD204E6BF9B172AD368E7BAC763C8D290FB5793E86B6 - 3CA9AD85B675D8160A0CE649DBF938AC582E8FC53C5F1B369F665E8E6DC79AE6 - 8A235735E7EDBF6A25DFFBB2A32BE38E9D1736BBCE7BDDD7FEFF889D3B7B796F - 0D0060219D7DB2397BF6E3FDBCF76BD099173EDE9CEBAD85E79FBE63657CE1D1 - 879A2FDCF5D04ADE978AE57CACADA571DA7918350F695EAE87DA5A685B87995A - 2D4A60FBD4CEC3516BB57CD8386E5E5B0BF9B1722DACCDAF3872E54A911F05FE - 4A71BFA757D0EFB8B2D9B9EBCAC16700000867CF7CAE571F7FAE3973BADF2488 - 0641BF39D05B5F536C0FCB6B6B213F56AE8561F9B031B4E5C9B86B3033A96081 - ED503BFF86AD95C7629EAFE5F351F9F4D6BEFE6F1D6DF6BEF475CDCE3DAF5F29 - F077EEFE8EC131000036E3EC8B1F5A69109C3DFDD7CDF3CF7CBCF9EC7F8CDD03 - A9888E318F308DB5D09687721EF2CF96C65D832D978A1898A5DA79376C2D3F56 - AEC5D8B6569BA7B59D83B13C9622AC5FBFE2F055CDCBAEFC8E66E779AF6F769F - F71DCD8E5DAFEBAD0300302BE7CE7CBC79F1850F35675FF8EBE6E9CF7DA8F9C2 - C9B88D200AEA32426D3D229C1D8CB563B5791A6B6B496D2D19770DB64C2A7460 - 166AE7DBB0B5FC58B916E3B0BC8C30AAE85F1F51F0BFF495479B3DFBBE73A5D8 - B7851F0060BEC40E81680A9C7EF6BDCD339FBF634843A02D425B3320451896E7 - 63A8AD25E3AEC1D4459103B3509E6BB5732FADE5C722AFCDD35A391FB7C84F9F - CBC71DCD25AFBEA8B9F4B5479BF35EFA9D2B5BF915FC00008B65E59681173FD4 - BCF0CC7B9BC7EEBBA3F9CAA79FE8AD46819D8AFC7C8CF561116ACD8150CE436D - 9E8FB972ADF61998AA2884602BD5CEB1722DCDF3F5C8CBF5B4569B8F136B8BFD - 147195FF82AB6F69769DF71DBDF8CEF80000004BE2CC0BEFEDC5879AA71E784F - 6577C024CD8032426D9EC69487F27852CE436D0DA6220A20D80AB573AB5C4BF3 - 7C3DF27CBD96A7423EADA5585BD8AF8D4AD17FF0D666CFBEEF711F3F004047F4 - 6F15F8B7CD530FBEBBA51990CFF3A81D0BE5EE80D096877C3D57CE436D0D3625 - 8A2198A6DA3955AEA579BE1E79BE5EE6F9DAF8857EBE16DBFB0F5C7B6BB3F7C2 - 1F56F40300745C34039E7FF2B79A53F7BEBBB84D20C63C46350642B91EDAF290 - AFE7CA79A8ADC186447104D3529E4FB5F32B15E5493EAFE5A3A22CF8D7CF5FF3 - B76F69F65EF0BDCDAE3D277A73000058EBCCE9F735CF3FF56F9A4FFDEFEFE9CD - CA827FD47C5884B63C94F3A45CAB7D06261605126C56ED3C2AD7D2BC36A608F9 - BC2D8615FDFDFCF243079B8B5EF37F5BB9A7DF83FC000018473C40309E19F0C4 - A77EB379F8EE077B2B5178E705FF469B01A136AF8D49390FB535185B144CB019 - E539D4361F368E13EB8BFC5AFE9AEFBCB5D97BF19B5CED070060535676053CFE - 07CDA7DEFBEEDEACAD0930AC39302CC2A831193587B145D1041B513B77CAB554 - 9827F93CE5A3A256ECAF1D2F7ED5C5CDCBBFF97B9BDDFB7ED8D57E0000A62A76 - 05BCF8EC6F355FFAD8BF691EFFCCE3BD9528C053B15F8E653E2A429E87721ECA - 79A8ADC1505144C1A4CAF3A66D9E8F659EAFE5457E8A5185FFCEE6F243573517 - BDFA7B9B3D2FF9E1DEF4C2DE1A00006C91B34F36A7BFFA5BCD174FBEB379FC33 - F1D0C028F4276D04C45A28D74399E763326A0E43453105E3AA9D2FF95ACA6B63 - 8A90CF236AC57E9EAF2FFC2FFEC6B736BBF77E4F6F0E0000B3F5E2F3FFB679FC - 13BFD43C7C77BC4A308AFAB2019017FF6D798A509BD7C690E7496D0DD689A20A - C6519E2B6DF37C2CF3B6A815FAE5D82BFCBFE56073F1353FAEF00700602EAC34 - 02EEFFE5E6E18FC60303A3B82F1B006DE3B008659E8FC9A839AC13C5158C529E - 27F93CE5B57154A4023FE50A7F000016CF788D80BCF8CFF36111DAC690E7A19C - C31A5164419BF2FC689BE76399A7C88BFD7C5E2FFA23E2E17EAF38F2E3CD9EF3 - 7FB837070080F976FAB9DF6ABE78D72F0F1E16988AFE54ECB78D29CA794428F3 - 7C4C46CD6145145C50539E1BB5795ACBC7B648057E9EAF2FFA63BE52F81F7EB3 - 87FB0100B078D63C2C307F6B408A34CFC732AF45C8C79427A3E6B0527C41A93C - 2FF279CAF3B1CC53A402BF96AF16FCF9FC1BFFCBEF6DCEBBE8C79B9D3B5FD99B - 0300C0623A7BF6F3CD0B4FFC72F38977FD9B9865118579394F6BB53C4528F390 - C690E7A19CD371517C41523B1FF2B594E7E3B048057ECACB827F357FE50DDFD4 - 5C7CE5FFD8ECDCF3C6DE1C000096C3D9D37FDE3CFEB9FF57F3F93FFBAB980D22 - 0AF3B63CCD53DE16A11C439E27B5353A280A3008E5B9509BA7B55A9E2215F679 - BEB6D8CFC37DFE00007441FBF3015244915E8E659E22B4E5C9A8391D14451994 - E7413E4F793EE61152811F51E629CAF9CEE635DF794BB36FFF3B7AA9FBFC0100 - E880B34F36CF3EFA53CDA7DEFB9E981411057A394F6B791ED23C4528C790E7A1 - 9CD3315194D16DE53990CF539E8F6D9117F9E5B836E2B57E975EFB2F6CF70700 - A093E2B680C7EEFD47C56B03F38842BD6D6C8B508E21CF4339A743760D46BA29 - 0AF45C3E8F3C8F54D0D7D6CB88F32A8D79EC6EAEF9BB3FD25C78E5FFDAECD8FD - 9ADE1C0000BA67C7AE2B9B7D97BDA9B9F8552F368FDE7F775ACD22A431D4D672 - B5CF26A3E67488BFFCEE1AF58F445ACBF328EAD398D6531E6399AFC6E5DF7C75 - 73E975EF70D51F0000322BBB01EEF9A9E6E18F3D10B34AC415FB328F31E5218D - 693DE47992CFCB6374405C95A55B52E19E94797E3C9FE7C57D1A53C47994E779 - EC6EBEF1BFFCBEE6C283FF9BABFE000050E8EF06F89EE6A2838F358F7DE2DEB4 - 9A4552CBCB31573B56E6B59F6389F90BEF96F2EFBBFC07A01C6B11457E39D623 - 9EF07FC5B7FD8B66D79E13BD39000030CC99D3EF6BBEF097FF68C89B0252C4D5 - FB72AC4528C790E7A19CB3A4A280A31BCABFEB7C9EF21853849447415FE6A9D0 - 4F79BE0B606773F5DFB8A179D92BDED1ECDCF9CADE1C000018CBD9279B27BFF8 - 7F6F1EF84F7F16932CCE0CC628D6D35ACA632CF390F27C9EE47928E72CA128DA - 587E51A4E7F279E46584BCB84FEBAB05FE6AE4DBFDFB71EDDFFB8966DFFE7FDE - ECD8E1F57E000030911D7B9BBD177C4F73E9AB7736A7EEFBF35818444863D236 - 8F310AFAFCF8B83FCB12F397BCFC867DB1234FF394D7220AFD34B6C7C55F7F49 - F3CA6FFF350FFA030080298807047EFE2FDED23CFED9AFC46C4444C19FC6B608 - 791EF23C9473964814752CAFF2EF379F479EE6292F230AFB722C23AEFAEF6C0E - 1EFDA6E6A2AFFFFFF55257FD0100606ACE3ED93CF1D9FFBA79F08EBF8A492FD2 - AD006544E15E8EB508791EF23C94739644146F2CA728D873F93CF2344F791951 - DCA73115FA65EC5E19E329FF2FBBE2B77A1FDFDB9B03000053D3FB1DFB2597FC - D7CD45577DA179EC13F7C4427F7DCDEFEE692D29E7A5519F1FF5F32CA828E258 - 3EC3BEC091A779CACB48457F2DD63601AE7BD32F36E7BDECBFEBE50000C056D9 - 7DFE8966FF6B0F36A73EFE1F072BE977F79AB6F55CF99951739680BFD4E533EC - 8B1B799AA73C8F28F0D398E751ECA7B5FEFCE2AFBFB8B9F23B7EAFD9B1EBBADE - 1C000098857367EE693EF7A1EF6F1EFF6CBC2AB0BC1D609C3705E411F23CE479 - 28E72C303B00964B14ECB97C1E799AA73C452AECF3BC5FE8AF2DFEFBF3B8DFFF - C037FF5EB373D7AB7B730000605676ECBCACB9E0CABFDB9C7FC15F344F7CEE54 - ACF40FAC48BFDF97DAD643B93E6ACE02D300581EC3BEA891A779CA5344619FE7 - B5488D807EF11F0FFB8B7F78000080D98BD76DBFE4A2BFD3BCE482DB064D8095 - D5C1384CDB67CAF55173169406C07218F6058D3CCD539E228AFB34B6C56AF1FF - 0D7FDBC3FE0000602E0C1E0E78E1950F378F7D327F38609B74BCED73E5FAA839 - 0B480360F10DFB62469EE6294F11C57D39E6B15AF8C73C8AFFF32FFD855E0E00 - 00CC8B3DE79F1834013EDE9BC5EFF5218DA5718F27A3E62C180D80C536EC0B19 - 799AA73C455EF4A7318FBCF8EF3FE97FEF059EF40F0000F3289A00EBDF10D026 - 1D6BFB4CB93E6ACE02D100585CC3BE8891A779CA53E4457F1A6B857F7F7EDD9B - FE45B37BEF77F7720000605EEDDC7D5DB3FFB557559A0069CC0D3B16CAF55173 - 168406C0E2CABF74659EE6294F9117FD694CB15AF4A751F10F00008B63B64D00 - 169006C062CABF7C659EE6294F11457D39A650FC0300C032985D13A0ED679863 - 1A008BA7ED4B17799AA73C4514F5E598222FFE23762BFE01006081AD3601DE3F - 5849A21628A5B5DAB150AEE7F3B69F614E69002C96B62F5BE4699EF21479D19F - C61465F11F57FEDFA1F807008005B77E274012354129ADD58E85723D9FB7FD0C - 7348036071B47DC9224FF394A7C88BFE34A650FC0300C032D304A0A001B018DA - BE6CF9588B5AE19F8AFE342AFE010060594DD6041847DBCF6DF4BFC70C69002C - 86FCCB94F27CAC4514F869CC43F10F00005D327913A06D3D49C7477D8E39A301 - 30FFF22F5599E711A2B04FF3BCE8CF2315FE91EF6EAEF9AE1F6FCE3BFF877A39 - 0000B0ACA20970F16B76368FDEFB17BDD9B95EA41A621CC33E9FAF4FF2DF641B - 6800CCB7B62F53E4691E857C1AD37A2AF6CBC88BFF5DCD37FCEDEF6D5E72D1DB - 7A390000B0EC769FF7C6E6C22BBFD03CF6C97B062B798D314C7C2E35016ACD80 - 7C3EEE7F936DA00130BFDABE4491A779CAA3A0CFF35AAC2FFECFBFF4177A3900 - 00D0157BCE3FB1C9264052FE5C3E1FF7BFC98C6900CCA7B62F538C659E2215FA - 799E0AFE94F7E38AEFF8A6E6C2CBFFDFBD8FEEEDCD0100802ED9B3F73B9ADD2F - FB60F3D4E74E0D564AB5423F5F4BD2B19A61C7D8261A00F329FFB2A43C1FCB28 - 0BFFBCE84F633F5EF14D079B03AFFD83DEF205BD390000D0393BF636FB2EFE3B - BD4AE15DCDD35F7E6AB0384AD41B6DD2B1619F610E6800CC9FFC4B53E6B58802 - 3F8D65AC6D005C74F525CDE5DFFA9BCD8E5DAFECCD010080CE8A26C0656F6C9E - 7FEA5DCDF34F3C3F581C25EA8E51F2CF8CF37966288A43E647DB9725F234CFC7 - B6585FFC47BCF2DBFE79AFF8BFAE970300005D17B541D40879CDB0B696A8D51A - 29423EA63CB4E56CB3F88B657ED4BE28319679FE658CBC8CFCCBBB7B65BCE6EF - BDB5D9B3EFFFDACB010000FA76EE7E7573F1AB77368FDEF7E7BD59D417B57BFD - 6BCACFC69C39A701303FF22F4CCAF3B18CB2E8CF233500FAF1AAE3B734FB2EFD - 27BD1C000060ADDDE77D7BF3D2AFBBAF79FC339F1EAC8CA3AD5110B54A3E863C - 671B6900CC87B62F47E4B588223F8D79D19F17FF91EF6EAE7AE33735175EF9AB - BD8F7BE23F00005077DEBE9B9BBD2FFD60F3E4E7E3CD0051DC47BD912B0BFEF2 - 784DFE99713ECF16D300980FE9CB507E41D23C8AF934C65A8C65940D805DCD45 - 072F690E7CF3AF363B3DF40F00001866C7DE66CF85479A17267A2860921A06B5 - C64139671B69006CBFFC0B91F218CB3C8AFB3CCF2315FD79BEBB79F5DFFA9F9A - DDE7DDD4CB01000086DBB9F340F3D2977F5D73EA9EF7F766B52DFEB5B510354A - 7E2CE6356DEBCC8806C0F6CABF00655E8BB2F04F918AFED5F8865BDFD4ECBDF0 - C77A390000C07876EEBEAEB9F0955F681EFBE4BD839571B4350692A865923C67 - C63400B6573AF9CB2F449A47719FE6292F0BFF34AEC6E5DFFECDCD4557FC52EF - E3EEFB07000026B3E7256F6C76EDBBBD79FAF38F0C564A65C19FEA97248E976B - E59C6D10C523DBA3F60588B5B49E8F65E44D803CFA0D804B5EF53FF7A617F472 - 00008009F56A89959AE26B17196BB54744AD5609F998F25C6D8D1988BF4C662F - 3FE1CBBC16B52F5BFE658C77FDF7E7AFFDAEFFA1D9F392E3BD1C00006063E279 - 0097BCE6A2E6D17B6F1BAC84FCCA7F6DDBBF5B01E69C06C0F6A89DF831A63C8A - FA344F795EF8A7716D7EF0FF72B479E901EFFB070000366FD779879A975CFA97 - CD130F7C7EB032AAE84FF54C12C7CA35B651148FCC56FE054879DB5A19F1F795 - C614FD26C085575DD25C70456CD3010000988EA831A2D6C86B8FD5C86B943242 - 1AC3B0356624FEB2D81EE5C91EF33C42CACB2FD8FAB8FC5B7FACD9B9D3FBFE01 - 0080E9891A236A8DB2FE588DB25E890829CFD79272CE8C440787D9C94FF494E7 - 5F88FC4B537E99D66EF75F8DDD83ADFFFFB8970300004C57FF56800F0F6E0568 - BBCF7FA3B702B4ADB305A2A06436F213BB7692A7B518CBBC6C06ACC685575DDC - 5C70C53FEBE50000005B236A8EA83D6A35C9DA9A25229479295FAB1D670BC45F - 12DB277D29F20831D6BE5065ECB2F51F0000D872ABB702A49DC965D46A981063 - 196C93F88B61EBE52779CA6B277F5ACB23FF12E5D12BFEBFFDF5CD792FFD6F7A - 390000C0D68ADA236A90F6264044ADA6C9E56BF9B1F2736C81F80B62766A2775 - FA020C8BF445CABF583B9B4B5E65EB3F0000303B975CFD33BDFF736D5DB2B666 - 1915A5DA1A5B243A376CADFC844E797EF2A7BCFCF2945DB598AFC637FC9D1F6E - CEDBF7F77B390000C06CECDCF5CAE6C2AB9F6E1EBBFFE46025C443FE5224791E - F279AA854A6DEB4C491496CC46ED648EB53C423ECF1B00AB71E1959734E75FF0 - FFE8E5000000B315B548D424B55AA51F794D13F2795ACBD5D6D802F197C3D669 - 3BB9D37ACA53D4BE34F95A3F2E7F43AFF8DF79412F07000098B15E2DB2529354 - 6A95E1B54D8A90E7B9DA1A53127F196CBD6127763AF1CBC8BF30ABF175D71DF4 - E03F0000605B454D12B549AD66E947ADC6890869CCD5D698B2F88B616BB49DD4 - F9495FE629F22F4DCAFB71E09B3CF80F0000D87EFDDA646DBDB2BE9EC923B4E5 - B9DA1A53107F296CAD6127743AE1F3C8BF28E98BD38FAB6EFE8E66D779DFD6CB - 010000B657D42651A394754BBDB6C923A431575B638AE22F84E96B3B99F393BD - CCF328BF3CFDFC82CBFFFBDE080000301FFA35CAFADA65755E4668CB73B53536 - 29FE52D83AC34EE474A2E7517E4956BF3CAFB9E57B9A5DBBAFEDE5000000F321 - 6A94A855F2DA657D4D93CF538434E66A6B4C49FC65305D6D27717E92977944FA - 62A42FCDDA38FF52AFFD030000E64FBF56A9D7316B6B9D14A12DCFD5D6D884F8 - 8B606B0C3B81D3099E22FF62AC8FD7DCF2DDCD8E9D57F472000080F912B54AD4 - 2CB55AA61F79CD93474863AEB6C614C45F02D3D376F2E6277799B7C5EA17C6D5 - 7F0000609EADDF0550AB71F2086D79AEB6C606C55F0CD337ECC44D27768AF4E5 - C8BF2CABE1EA3F000030EFEC025808F117C074B49DB4F9495DE66DB1FA2571F5 - 1F00005804FDDA656D3D333C425B9EABADB1011A00D337EC844D27748AF4A548 - 5F90B5E1EA3F0000B028EC02987BF187CFE6B59DACF9C95CE66DB1FA0571F51F - 000058249E0530D7E22F84AD559EC865E45F8ED5B8EAA637BAFA0F00002C94A8 - 61A296A9D538FDA8D54411218D6C91F80B607AF2137758DE16AB5F8C0B5EF1DF - F646000080C5D2AF65566B9B7AED934718963325F197C1E60C3B21F363E9244E - 91BE08F917A31F577EDB75CDAEF3BEAD970300002C96A865A2A6A9D53A6B6BA1 - 3C923C2F0D3BC618E20F9EE91875A2D6223FF157F3975DF50F7A230000C062EA - D734C3EB9EF5D166D83126A001B039B513313F81F308292F4FFA34DFD95C78E5 - 45CD9EF3FF5E2F070000584C51D3446D93D73AF51A2822E4C7F228D5D61853FC - A1B3B5D289DB76C2E7E3CEE6E587E2B5190000008BAD5FDBF4EB9C7A0D94229F - B385E20F9ACD4B276A7ED2D64EE0B49622FF02F463EF853FD81B010000165BBF - B659AD75D6D64079E4F2B5326793E20F9F8D19760296276C5BE45F841DCD5537 - 7DBB57FF0100004BA1FF4AC06F8F6C106BEB9FF60869AC19768C21340036AF76 - F295276E6D9E9FF8FD2FC24B2FFBFBBD1100006039F46B9CB2F0CFF390F2725E - AAAD3181F883673AD2499A9F94F95A443AD1CB937F6773C12B3DFC0F0000582E - 51E344AD93EA9EE1B5518AA4B6C626C41F36931BE704CC4FD63CCA93BE1F5FF7 - FABFD51B010000964BBFD659AD7DEAB55119A38CF3190AF107CEC6A5932E3F49 - F33C496B79AC3DD9F75EE2E17F0000C0F2E9D73AEDB5D06AE4F2B53267833400 - A6AB3C41DB229DF031EE6C2E7BFD55CDAEDDAFEDE5000000CB256A9DA87952FD - B3B6261A16218D4C41FCA13399714FC0DA895B8F8B0FFECDDE080000B09CFA35 - 4FBD1EEA4728E7A38CFB3906340036AE3C49439E2769AD8CD4FDDAD9ECB9F0BB - 7A230000C072EAD73CAB3550BD468AC8E56B65CE06C41F3CD3519E986DB1F684 - BFECF557DAFE0F00002CB5FE6D0057F6B27A5DD41E218D6C9206C064C63DF16A - 276C447E82F74FF88BAF3EDE1B010000965BBFF6290BFF3C0F294FF351C6FD1C - 3DF187CDE4CA9333E47912F37442E727F66AECB9C0BBFF010080E5D7AF7DD6D7 - 44EB6BA65CFA4C287326A401301DE5099947C8C7F833EF9FD8975E6BFB3F0000 - D00D51FB440D54D6457DF9584648239BA00130BE714FB8DA891A914EEED5F9FE - 57DBFE0F00007447BF065A5F1BADE6213F368E713FD7791A0093AB9D5CB59333 - ADB5C7EE7DDFD61B010000BAA15F03D5EBA3B591ABAD85DA1A4368006C5C3A09 - F3932E5FABC5DA4ED7EEBD7FA3370200007443BF066AAF91EA91D4D6988006C0 - F4E427633A21DBD7BEFEBFB0FD1F0000E89E7E2DB4BE461ABDC62669008C6723 - 275C79C246C49F773FCEBBE8DB7B23000040B7F46BA1D5DAA85E3B4D6A233FD3 - 39F187CDF8D249959F9429AFCDDB63F74BDED01B010000BAA55F0BD5EBA4F511 - DAE6218D8C41036073CA93AE36AE8F0BAEB8D0EBFF0000804E8A5A286AA25AAD - D48F306A64033400A6274EC414211FD7C6FE6B6DFF070000BAAB5F13ADAF95FA - F2315F67933400461B76B2B59D8C69BD1EE75DE0F57F00004077F56BA27ABDB4 - 1AA5B6F564D8317A3400C6974EA6DA4997D6C6899DEEFF0700003AAD5F13453D - 5AAB99DA2297AF95C768A101B071B5932D9D847984B573F7FF0300005DB65A13 - ADAD95D6CEF3F590F27C8D0968004C47796226B19677B57636571E73FF3F0000 - 40BF365A5B2FF5C7523ACE2669004C5F3A39F3937435DF77A9FBFF010000566B - A35AED94AF31251A00C30D3BE1CA1332CD87C5CE66D75EDBFF010000FAB551BE - 03605824E5BC34EC58E769008C279D44B5932D5FAB7D2EE5FDF9AE3D1A000000 - 00ABB5D1DA9A697D9EC69427B5CF318406C0C6D44EB2722DC6B5F1B2CB2F6A76 - ECBCA297030000745BD44651239575533F423986DA1A63D200D8BC38F1F293B0 - 6DBEA3B9F8D5AEFE03000024FD1A696DDDD4D7366713340036AE3CF96A27E7DA - D87BE1B5BD11000080D0AF91EAF5535F9E27E59C316900B41B7652952763FED9 - DAB17EEC39DF0E0000008064D779718BF4FADAA92F8D61D8B1D2B0639DA60130 - 5A7E828D7392B57D6E47B373F72B0739000000BBF7A61D00A5BCAEAA1D4FC6FD - 1C3D1A0093AB9D5CE55A8CEB63E7AE6B7A23000000A15F23D5EBA7BE720CB535 - C6A001B03971C2E5275FDB3CDE007041B363E70571000000809EA891A2562AEB - A7BEB6391BA401307DF593F4E2577B0020000040A95F2BADAFA156E74C8906C0 - C69427627982AE1F77EDBE709003000090F46BA5F65A6A3572E59C316800D40D - 3B99D2B17412B67D76EDF1BD177A030000004069B5565A5B43AD571E6FFB5C18 - 76ACB3340086CB4FAC714EAEF4B9FCB3FDF9CEDDF17A0B000000D6D8913F0320 - 49F3B4961F2B8DFBB9CED300984CEDA42AD7F27135D700000000586FF7DED801 - 50AFA3EA63A8AD318206C0C6C589D676B2A563AB9FD9B1D2D5020000A06E7D1D - B5DEB0638CA001301DA34FD29D7BE2FD96000000E4769DF7ADBDFFB3BD961A5E - 6B31010D80E9CA4FCE3C00000018AE564B4530251A00932B4FC0F2C45C7FFCC0 - 37BE729003000050EAD74CB55A2B8D2972E59C11340036A7ED845B7B82BEE432 - 0F0004000068B35A33ADADA5D66B5B670C1A00EB0D3BA1D2B1B613B2FEB3E786 - FE37010000BAADBD666AABBBD2FAB05A6BD8B14ED200D8BC61275EACED6876EF - 79597F0A0000C03AFD9AA95F3FAD37ACE662021A00A3B59D84B9FC78FA7C5ADB - D1ECBDE0DA410E000040A95F33ADD6506B6BAA90E735E5E7A9D00068579E3CB5 - 9369D4679C80000000E3DB488DA50E1B9306C0E4D2C9D47652C57A0A00000026 - 33AAA64AEB6AAE0969006C4C79A20D3B39010000D8B85ABDA5FEDA000D80CD1B - 75E2393101000046535B6D310D80ADD53F41779DF7DA9511000080F576ECB922 - 6583912DA001305DF9C9BA9AEFD8E535800000006D76EDBE7C90857A5DC5A669 - 004C4F3A316374C20200004CA6ACA3D25C4D35251A00000000D0011A009B9377 - A56A74AA000000C637AABE52636D820600000000748006C064DABA4D693D3FAE - 3305000030B95A5DD5565FA9BB26A001307D71021627E1392725000040AB7535 - 53A5AE62B33400000000A0033400000000A0033400000000A0033400000000A0 - 033400366EDC07527870050000C0686AAC2DA601000000001DA001000000001D - A001000000001DA001000000001DA001000000001DA001000000001DA0010000 - 00001DA001000000001DA001000000001DA001000000001DA001000000001DA0 - 01000000001DA001000000001DA001000000001DA001000000001DA001000000 - 001DA001000000001DA001000000001DA001000000001DA001000000001DA001 - 000000001DA001000000001DA001000000001DA001000000001DA00100000000 - 1DA001000000001DA001000000001DA001000000001DA001000000001DA00100 - 0000001DA001000000001DA001000000001DA001000000001DA001000000001D - A001000000001DA001000000001DA001000000001DA001000000001DA0010000 - 00001DA001000000001DA001000000001DA001000000001DA001000000001DA0 - 01000000001DA001000000001DA001000000001DA001000000001DA001000000 - 001DA001000000001DA001000000001DA001000000001DA001000000001DA001 - 000000001DB06330B22AFD99E4638A6898A4715736A6D85D893DCDEBDEF41BCD - AEBDD7F7728056476FBCB93970E0C060C62C3CFBECB3CDFDF7DED33CF4E00383 - 1500605B9C79FECEE6E37FF023BDEC742F5EACC4992CCE66E3B9C13CC614A11C - E949452EABD29F493EA6D00000A66EDFBE7DCD4FFCF4DB9AAB0E5E3D5861D6A2 - 09F0ABBFF24B2B0D0100601B6800CC4414B0006CA3EFFBFE1F54FC6FB36BAEBD - AEF9076F7ECB600600B09C340000B6D9A1EBBF7590B19D0EF7FE1E62370600C0 - B2D20000D8668ACEF971E8FA370C320080E5A301000003878FD88D01002C2F0D - 00001888DB00F61FB86C300300582E1A00009089260000C032D2000080CCD163 - 370D320080E5A2010000997825A3DB00008065A401000085E3276E19640000CB - 430300000A87BD0E100058421A0000DB28B69B337FF61F38E0EF0600583A1A00 - 00DBE8FC7DFB0619F3E6F8895B071900C072D00000808A435E0708002C190D00 - 806DE469F3F36BDFBE7DCD614D000060896800006CA303070E0C32E6D1E1231E - 0608002C0F0D00006871F4C69B56760200002C030D00806D74CD6BAF1B64CCAB - 435E0908002C090D000018E2F011CF01000096830600C036BAD2BBE6E75E3C08 - D0C31A018065A00100B08DDC5FBE18BC0D000058061A0000DBE49A6BDDFFBF28 - 8E1EBB699001002C2E0D00806DE2EAFFE2B8EAE0D56E030000169E0600C03689 - A292C571C38D760100008B4D0300609B5C799506C022397AECE6410600B09834 - 0000B6C9FE030706198B20FEBEECDA000016990600C03688FBFF15938BC7C300 - 018045A60100B00D0E5DFF8641C622397AA3DB000080C5A50100B00D0E1FF15E - F945143B370E5FEFEF0E00584C1A000033A6885C6C878FD8BD01002C260D0080 - 19B3FD7FB11DBAFE5B579A3800008B46030060C66CFF5F6C51FC6BE200008B48 - 030060866CFF5F0E9A3800C022D200009821578E97433471DC0600002C1A0D00 - 801972E5787978252000B06834000066C8F6FFE571F4D84D830C006031680000 - CC88E27FB95C75F0EA66FF81CB06330080F9A701003023DE1FBF7C3475008045 - A201003023F1FE7896CBF113B70E320080F9A7010030039E1ABF9CF61F38B072 - 2B0000C022D000009801DBFF9797870102008B420300608BC595FFA3372A1297 - D5E1EB35770080C5A00100B0C50E2910975ADC06E0618000C022D00000D86287 - 8F280E979D5B3C008045A00100B08562FBBFABC3CBCF1B1E008045A00100B085 - 6CFFEF86FE731E6E1ECC0000E6930600C0163A7EE29641C6B273AB070030EF34 - 0000B6C8FE039779477C87C4AD1EB1130000605E6900006C11F7FE778F5B3E00 - 8079A60100B0458E1EF3EEFFAE71CB070030CF340000B680EDFFDD147FE7F177 - 0F00308F340000B6C00D37BAFADF556EFD0000E6950600C016387ACC2BE1BAEA - F8895B071900C07CD1000098B2FE36F00383195D137FF76EFF0000E6910600C0 - 9479F81FCE0100601E6900004CD961AF82EB3CE70000308F340000A6C8F67F42 - 9C03D75C7BDD600600301F340000A6C803E0486EF020480060CE6800004CD121 - AF8063C0B90000CC1B0D00802989F7BFEFDBB76F30A3EBE25C88730200605E68 - 00004CC9E1231EFCC65A47DD060000CC110D008029B1E59B925D2100C03CD100 - 009882A337DEACD0A3EA905702020073420300600A0E1F71F59FBA1B8EDD34C8 - 0000B6970600C02675FD616FCF3EFB6C73C7076F1BCC285D73ED75CDFE03970D - 660000DB4703006093BABEC5FBFE7BEF69DEFFBE770F66D4781B0000300F3400 - 0036A9EBDBFF3FF7D003CD430F3EB0B21380BAA36E030000E6800600C02678D7 - 7BD3DC77EF3D2BE3DD777E646564BDAB0E5EBD120000DB4903006013E2E9FF5D - 17B70084FBEEEB8FD4D90500006C370D00804DE87A51175BFF93BBEFFCF020A3 - E6B0D7010200DB4C03006083E2C9EE5DDFD6FDB9071F1C64FDB701E40D01D6DA - 7FE0C0CA1B010000B68B0600C00679B2FBFA6DFF77DFE53900C3DC70CC2D2300 - C0F6D10000D820F774C70E80B557FC4F7A10E05087348D00806DA40100B001B6 - FFD7B7FC7B1DE070DE1A01006C270D00800D387EE29641D65DE9E9FF25AF031C - EEF0110F030400B6870600C00678A27BD37CEEA1FA03FFBC0E70B8A337DEB4B2 - 13000060D634000026145BFFE389EE5D775FCB0E80B69D01AC3AA48104006C03 - 0D00800979F85F5F5BA1FFE8A947BC0E7084C3473C070000983D0D008009D9FE - 3FFA2ABF5D00C3C58300E341920000B3A4010030817EE166FBFFFD23EEF33F79 - 9707018EE26D0000C0AC6900004CC013DCFBDAEEFF4F620780D7010EE7561200 - 60D63400002670C855DB15E36CF1771BC070FD8749BA0D0000989D5D8391553B - 2A632DA27992C661B1ABB9EC75FF55B373F7E5BD1C5860B165FB861B6F1ECCBA - 2B0AFB3B6EBF6D306B77D1C51737AFFFE66F19CC68F3D77FF5D14106307BF15A - D257BDE61B561A9229A241F96D6F3CDABCF6DAEBD644ACBF78FA74F3E4134F0C - 7E1AA6E8DC99879B473EFEEF7BD9D99638D712218D8C10052C6BA53F937C4C11 - 057D1AA37992C614BB2BB1A779DD9B7EA3D9B5F7FA5E0E2CB01F7AF35B56DEE1 - DE75FFE1DFFD61F3277FFC878359BBF825F2E7DFF14B8319358F9E3AD5FCCC4F - FDF86006307D51B49FDF2BF2A3803FFFFC7D2BF3704D6FBE5127EFFC48F33BEF - FC35B77A315D679EBFB3F9F81FFC482F3BDD8B172B71268B6808A4318AFFB241 - 10CA919E54E4B22AFD99E4630A0D00E8A8B842F2F677FCF2CAD875BFF80B6F1F - 7B7BFFCFF7FECC3C3471B87FFA736FF3DA44602AA2A88F02FFAAABAE6EAE3C78 - F06BC5FE568826C0AFFE8A262F53A401301351C00230C2A1EBDFA0F81F98E4DE - FE93777E7890D1E6F8895B0719C064E2D6B4EFFBFE1F687EF2A7DFD6FCDA6FFD - EECA18F3D8ADB695C57F88FFEDADFEDF00A64F0300600C878F78F85F98F4C17E - A35E1788074B02E38B5BAB8E7FE7AD5F2BF8FFE18FBD7565BE99EDFC9BB15DFF - BBC0C6A56DEEAC4A7F26F998C22D00D04171E5FF97FEE5AF0F66DD36EEFDFFB9 - F82595E1621B6D6CA785E4E88D3737377855E4CA73324EDEF5E14E7F3FE22A7B - BC36F4F0F56F98BB5BAA36F2FF27402BB700CC442A725995FE4CF23185060074 - 50FC22FE436FFED1C1ACDB3672BF7A5CA9729568B83B3E785BF3DBEFFCB5C18C - AE8B2BBAB18D9B55F1EFCEEFBCF3D73BF3BC8CB8D21F5BECE316A1797E8E8A06 - 0053A501301351C0023084EDFF7DF1B4E78DFCF27DF22E57B64789DB003C6382 - C47321D68BABE03FF1D36F5BFA7BCEA3E88F6DFDF10695680279882A306D1A00 - 0043A4AB304C7EFF7FB2D19FEB9228FEE3419310147D75F13D8926C0B235CBE2 - FF3D7FF7BBBE7BE5AD2951FCFBFF7380ADA4010030845FC4566DF44A7EEC1A88 - FB7819CE4E13182D8AE5EFFBFE1F1CCC165B34987FE8CD6F5979C6CCDFF97BDF - ADF103CC840600C010F1E025FA367325DF2E80D1A2D9B46C5736D918DF97E1E2 - 15778BFC5D49857F6CF38FFFB700CC920600408BF825CD3B8EFBE20AFEA3A71E - 19CC26174FF166B478E024305A3C2871D128FC8179A00100D0C2F6FF5527EFDC - 5C01EF8AE678EC3821DC7F9FEFCB287F73811E9418BB1514FEC0BCD0000068E1 - 49DCAB365B90C41B043401468B1D27719510182E8AEA796FD2C6FF1DE3E17E6F - 7FC72F2BFC81B9A1010050D12FC43C90293979E7E65FE5E77580E3B941A1D079 - F769968DE5F091F97D7346DCCE13857F3CDCCFB33D8079A2010050612BF6AA69 - 14FFC10E80F11C3DE63900308E4373B803E09A6BAF6B7EF69FBCBDF9A137FFA8 - C21F984B1A00001587BD93FD6BA6753FB2D7018E27769E78F864B7F99E8C270A - EC79F9AEC4FF5DE23EFF9FFCE9B7F9FE02734D0300A060FBFF5AD3DA0110EC02 - 188F1D28DDB699376E744D5C71DF6EF14602F7F9038B420300A0A0F85AB5D9D7 - FF95BC0E703C5E0708E3B9E6B5DBD7008866716CF7FFBEEFFF01DBFD8185A101 - 0050507CADDAECEBFF4A76008C278A09AFA1EC36DF95F16CD776FB78BA7F14FF - B6FB038B460300201345972B39ABEEB8FDB641361DF13AC069DE52B0CCE6F909 - E7302FE276AD59BE3A335DF58FA7FB032C220D00808CA26B5514EBF1E0BE699B - D64305975D3CE15C33AABBE2FBC778AE3A7870906DADB8D7DF557F60D1690000 - 64E6F1B552DBE5EE2DBA526F07C078A2F83FE46D149DF5B987A6DF7C5B565B5D - 90C777319EEE1FF7FA032C3A0D008001DBFFD7DAAA07F6C54305B76267C1323A - 7C44430A46B9F2AAAD6B00C4FFBF104FF89F87B70D004C830600C080EDFFABB6 - FA5E7D0F381B8FA65477B905607C5BB50320AEF8FFC31F7BABEF20B054340000 - 7AE2173CEF705EB5D505FAB41F2EB8CCDC06D04D76C98C2F1E04384D69CB7FDC - F30FB06C3400007A14596B9DBC6B6BEFD38FE2E6D153A7063386397EE2964106 - B499D616FDD84D60CB3FB0CC3400007ADC6BBDD6DD776ECDFDFF39B7018C270A - 9259BEE60C16D134B6E91FBDF1E695A7FCDBF20F2C330D00A0F3E297BDB8D79A - BEB8F77F16F71F6FD543069791F3B37BEC9099CC669F0310F7FBFFD09B7F7430 - 03585E1A0040E7D9FEBFD6566FFF4F66D5685806C74FB817B96BE26D198C6FFF - FE8DED928906703CE8CFFDFE40576800009DE71EEBB566B935DF6D00E389879C - 6DF5BBCE61916DE4418051FCFFC44FBFCD0E1BA0533400804E8B7BAB1556ABFA - 0FE79BDD95C759ED365806478F794B054C4BFCBB1FC5BF7FFF81AED100003ACD - 959FB566FD7ABE593C6C70591C76AB0AB49AE4A9FD8A7FA0CB3400804E735575 - ADB82F7F96E21900B3FEDF5C54B1C559C3AA5B62470ED3958A7F4FFA07BA4A03 - 00E82CDBFFD78AA78E6FC783C7DC0630BEC347EC02E892E73C2473AA14FF001A - 004087DD70A3ABFFB993DBB41DDF8300C777C80E006835ACA11BBB6714FF001A - 0040871D3D76F32023CCFAFEFF24761DD8EA3C9E285E8EDEE8BC859AF35B8AFB - 28FEE3557F8A7F000D00A0A3E24AD1465E1BB5ACE25EFCED2CC2B7ABF9B0880E - 1FB10B00C615FFD6FF8337BF653003400300E8240FFF5BEBEE6D7E109F07018E - 2FAE66BA9209A3B9E71F603D0D00A093BC526DAD93776DEFEBF8DC06309943CE - 5F58277F0680E21FA04E0300E81CDBFFD79B872BF06E0318DFF113B70C322049 - C5BEE21FA09D0600D039C74FDC3AC808F3B2FDDEDB00C6D76F625D3698B1ACEE - BFCF77625251F4FF8337FFA8E21FA0850600D0395EA5B6D6BCBC873F6E0178F4 - D4A9C18C51E25900C0AAF3CFDFB772E53FBF150080B53400804EF100B5F5EEBE - 737BEFFFCF9D9CA3FFBBCC3B0FB284B58E7FE7AD8A7F80113400804E397CC4C3 - D37271D53D5E01382F3C07607C51E828760080496800009D62FBFF5AF35670BB - 0D60327601000093D000003AE3E88D37DBFE5F98C7F7EFBB0D607C5E6709004C - 420300E88CC3475CFDCFC595F678FFFEBCF1E4F3F1C5EB2CAFB9F6BAC10C0060 - 380D00A013E2CABFA7A6AF35AF57DA6357C23C3D9760DEDD70ECE6410600309C - 0600D009876C955E679E1FB877F71CDE9A30AF3CD7020018970600D009B6FFAF - 1557D8E3817BF3EAE45D9E03302EBB5B0080716900004B4F81B4DEBC5F619FC7 - 8713CEB3A36E030000C6A001002CBD78FA3F6B2DC215764D80F14583CB1B2E00 - 8051340080A5E75DE9EB2D42717DF22E0D804978CEC5F299E7DB7400584C1A00 - C052DB7FE0B2E6AA83570F668445B9B27EF79CBEA5605EDDA0D1B574BC0D0380 - 69D30000969A7BFFD75B942BEB51FCDC7FEF3D8319A35C73ED752B0D2F008036 - 1A00C052B3FD7FBD45BAB2EE3680C968780100C36800004BCBF6FFF5E29EE245 - DA56EC418093D1F0020086D1000096D6F113B70C32923B6EBF6D902D86474F3D - E2416813888697DB000080361A00C0D23AECA9E8EB2CE215F5BBDD0630118D2F - 00A08D0600B094FA57420F0C6684474F9D5AB9A2BE68DC0630198D2F00A08D06 - 00B094DC0BBDDEC9057DAD5EDC0210CD0BC6138D2FCFBE580ECF790D200053A6 - 01002C255741D75BB4FBFF738BDABCD82EC74FDC3AC858649E7F01C0B4690000 - 4B275E8566FBFF5A71057D918B09AF039CCC21AF0304002A340080A573F888AB - FFA5FBEFBD67902DA6F8BFFF22BDBE70BBEDDBB76FA511060090D30000968EAB - 9FEB9DBC6BF1B7D0DFED618013D10803004A1A00C05289AB9E71F5935571E57C - 199EA4BF0C4D8C593A7AE34DBE0B00C01A1A00C05271D573BD65B972EE758093 - 3BE461980040460300581A71B5D3F6FFF5EEBB6FB1EFFFCF69024CE6F011DF07 - 0060950600B034E26AA72DCFEBDDBD44AFD0F33680C9F4DF8871D9600600749D - 0600B0345CED5C2FAE982FD3D3F397A999312BDE060000241A00C052F0DAB3BA - 65BB62BE2C0F349CA5A3C76E1A642CA2871E7C609001C0E66900004BC1C3CEEA - E2FDF9CBC66D0093B9EAE0D56E035860CF2DD10E1E00B69F0600B0146CFF5F2F - AE1C3E7AEA91C16C79B80D6072C74FDC32C800802ED30000165E5CDDB4FD7FBD - 3B6EBF6D902D97B80DC0B6E8C91CB6430600E8D10000169EE2BF6E99EF955FD6 - E6C656D97FE0C0CAAD0000D3B44C0F9985AED00000169E879CADB7ACDBFF9365 - 7CB6C156F33D01A6CD435961F16800000B2DB6FFBBB2B9DEB217C8FD06C7A9C1 - 8C711CBDF1E64106B079BFFDCE5F5FEA46332CAB1D839155E9CF241F5344C324 - 8DBBB231C5EE4AEC695EF7A6DF6876EDBDBE97035376FC3B6F6DBEEFFB7F6030 - 23F9A73FF7B6A5BF4F3EFEDEE3EF9FF1FDEAAFFC922B760BE6277FFA6DCD35D7 - 5E3798C1F8E2FF0FC8DF2271FF7D1B6B0CEFDF7FD9CA6D4461A5F9FAE8A9957F - 4714FF4CDD99E7EF6C3EFE073FD2CB4EF7E2C54A9CC9E26C369ECBC614A11CE9 - 49452EABD29F493EA6D0008039F3F3EFF8E5AFFD62425F5C19FF999FFAF1C16C - 79C5B31FFEE18FBD7530631C777CF0B6E6B7DFF96B83198B4003809AB8F7FE73 - BD627CA5C87FAEFF60D4588B7FFF15E62C2C0D809948452EABD29F493EA6D000 - 8039125BFF7FF69FBC7D302379FF7BDFDDFCFEEFFDEE60B6DC7EE95FFE7AB36F - DFBEC18C51A24078DB4FFDB807772D100D00E296AE28F01F7AE8C195E2DE3350 - 585A1A003311052CC042F250B3BA8D6EF35C447E119E4C344B0E792520CCAD28 - F4FB3B757E7DE556AEB7FCF00F34BFF80B6F5F69EADEF1C10FF8370FD8340D00 - 606179B7795D977E413C7997FBD92775F888D766C2BC88823F766DC5F339DEFA - DFFEE84AD11FB7E944B11FC700A64D03005848B1FDDFBDFFEB45F1DFA5EDDD77 - DFF9E141C6B8E2D9096E9B80ED11F7E8C715FEBCE08FABFBF1503DB7E600B3A0 - 01002C24DBFFEBBA76453C7E61B62576725E0908B31357F2FFC3BFFBC395623F - 1ED01A57F815FCC076D10000169202A6AE8BC5B0DB0026A781065B2B8AFEB8B2 - FF333FF5D695C2FF4FFEF80F6DE907E6820600B0706C61AE8BADA55DFC05D37B - ED27D7BF85E6B2C10C9886F837382FFAE3DE7EAFE403E68D0600B0700E1FF1F0 - BF9AAE6E858F5FB05D599BDC0D37DA05009B15DBF8A3D04FDBFB15FDC0BCD300 - 0016CEA1EB3DC5BCE6E45DDD7D20DEDD6E0398D8D1636EA3818D8A866BBCAA2F - 1EE41757FD35218145A101002C14DBFFDB75F961786E03985CBC45236E0500C6 - 1357FBE309FEB1C53FDECD1FAFEA0358341A00C042B1FDBF2E8AFF2E3F513AAE - BEC5FDB74CC6C30061B4746FFFDB064FF0B7C51F58641A00C0C2882BFF47DDB7 - 5CE549F8B10BA0BBB7406C94B76940BB28FC639B7FBAB7DF6BFB8065A001002C - 8C43D7BBFADFA6CBDBFF933B6EBF6D9031AE68AAC56D35C0AABCF0B7CD1F5836 - 1A00C0C2387C44A15213BFAC7A0055FF360057E826E7B61AE853F8035DA00100 - 2C04572ADBD9FABEEA6E0F039C98B76AD0750A7FA04B3400808560FB7FBBFBEF - B3FD3FE9F2AB1037AAFF6C0DCF02A07B14FE40176900000BE1F8895B0619B9D8 - F2EE1578ABE2CFC26D0093737B0D5D12FF46FC877FF787CD3FFDB99F51F8039D - A30100CCBDFD072EF3BEF2161EFEB79EDB002617B7D7C44E005876D124FCA73F - F7B6E64FFEF80F350B814ED20000E69E7BFFDB79FDDF7A6E03D818B7D9B0CC62 - BBFF2FFEC2DB9B5FFD955FEAE5DEE30F7497060030F78E1EF3EEFF36777B00E0 - 3A6E03D818B7D9B0ACEEF8E06D2BDBFDED9802D00000E69CEDFFEDBCF6AE9DDB - 002617DFB3F8BEC1B2887F1FE3217FBFFDCE5FF36F25C080060030D76EB8D1D5 - FF3677DC7EDB20A3E436808D71BB0DCB220AFEFFE517DEEE217F00050D0060AE - 1D3DE6F5646D3CFDBF9DADBE1B73FCC4AD830C1657EC8E8A07FDC508C05A1A00 - C0DCEA6F493E3098918B5F6C3DC8AA5D5CFDD320995C7CDFDC72C3A2FB9D77FE - BA7F1F015A68000073CBC3FFDAB9C23DDA1DB7DBFABB11BE772C3A57FE01DA69 - 000073EBB0D792B572FFFF68DE06B031BE7700B0BC340080B964FB7FBB789FB5 - 2B5CE3F13680C9C5F7CEC30001603969000073C9C3C8DA9DF4EEFFB1791BC0C6 - 1C3E621700002C230D00602E1D7205B2D5C9BB5CD51E97DB0036C6F70F009693 - 0600307762FBF1BE7DFB06337251CC7A00E064DC0630B9F8FEB90D0000968F06 - 0030776C3F6EA7989D9CDB0036E6E8B19B071900B02C340080B963FB713BC5EC - E4DC06B03176E200C0F2D10000E6CAD11B6F5674B48822368A592667E7C4C61C - F24A4000582A1A00C05C397CC4D5FF368AD88DB37362636E3876D32003009681 - 060030373C786C3845ECC6B90D6063AEB9F6BA66FF81CB06330060D169000073 - C376E376B6FF6F9E1D141BA3290700CB430300981BB6FFB753BC6E9E1D141B73 - D46D0000B034340080B960FBFF708AD7CDBBFFDE7B061993B8EAE0D52B01002C - 3E0D00602EC4D3FFA9B3FD7F3AFC396E9C5D0000B01C340080B9A0C06867FBFF - F49CBCCB9FE5461CF67C0E00580A1A00C0B68BA78CDB62DCCEF6FFE9B9FB4E7F - 961BB1FFC08195370200008B4D0300D876EEFD6F67DBFA74C59FA767016CCC0D - C7DCA603008B4E0300D876B6FFB7B3FD7FFADC06B0318734EA0060E1690000DB - CAF6FFE1FEECF60F0C32A6C58E8A8DF1A60E00587C1A00C0B63A7EE2964146E9 - D153A76C57DF028F9E7A64E5CF96C91D751B00002C340D00605B79BA78BB931E - 58B765FCD96E4CEC00889D0000C062D20000B64D6CFD8FA78B5377C7EDB70D32 - A6CD730036EE90A61D002C2C0D0060DB78F85FBBD8A2FED0830F0C664C5BDC5A - 116F046072878F780E00002CAA1D839155E9CF241F5344C3248DBBB231C5EE4A - EC695EF7A6DF6876EDBDBE9703999F7FC72FDB01D0E28E0FDEE601805BECFBBE - FF073C8072837EE6A7DEBAF22C05B6DE4FFEF4DB9A6BAEBD6E30631C6FF9E11F - 1864C04239F3FC9DCDC7FFE0477AD9E95EBC588933599CCDC673D9982294233D - A9C86555FA33C9C7141A003025712FF13FFCB1B70E66C022F9FDDFFBDDE6FDEF - 7DF760C656D200989C06002C280D809988021660E60E1F711F312C2AB7EF00C0 - 62D20000B6C521EF138785D57F80E765831900B02834008099F32A31587CC74F - DC32C8008045A10100CC9CEDFFB0F80E7B1D20002C1C0D0060A6E2CABFEDFFB0 - F8E20D1EDEA200008B45030098A943D7BFC1F67F5812C74FDC3AC8008045A001 - 00CCD4E123AEFEC3B2B09B0700168B0600303371E53F1E00082C07DF6900582C - 1A00C0CCC4F67F60B978A827002C0E0D0060666CFF87E573F4C69B3CD7030016 - 8406003013FB0F5C66AB302C29BB7B00603168000033A1F887E565770F002C06 - 0D0060268E1EBB699001CB261A7CB1CB0700986F1A00C0968BC2E0AA83570F66 - C032B2CB0700E69F0600B0E51406B0FCECF20180F9A701006CB9E3276E1D64C0 - B28A5D3E6E030080F9A601006CA97E517060300396D90D37DA050000F34C0300 - D852B60543771C3D76F3200300E6910600B0A50E7B3F387446ECF6F1C04F0098 - 5F1A00C096B1FD1FBAC7AE1F00985F1A00C096510840F71CBDD16D000030AF34 - 00802DA31080EED9B76F9F577F02C09CD20000B6441400510800DD73F888677F - 00C03CD20000B6840200BAEB90062000CC250D00604B440100745314FF87BC01 - 0400E68E06003075B6FF03878F680202C0BCD10000A6CEF67F40231000E68F06 - 003055F10BFFD11BBDFE0FF026100098371A00C054B9EF17488E1ED30C048079 - A201004C95FB7E81E4AA835737FB0F5C36980100DB4D0300989AD8FE1FF7FD02 - 24FE4D0080F9A101004C8DEDFF40E9F8895B071900B0DD340080A9397EE29641 - 06D0B7FFC081955B010080EDA701004C45DCE7EB977CA0C6C30001603E680000 - 53E13E5FA0CD61B70701C05CD00000A6C2153EA04DDC06A0490800DB4F0300D8 - 34DBFF81510E1FB10B0000B69B0600B06937DCE8EA3F30DC213B000060DB6900 - 009B76F4D8CD830CA06EDFBE7DCDD11BFD5B0100DB490300D894D8FA1FF7F702 - 8C72F8885D0000B09D3400804DF1F03F605CF120C0D80900006C0F0D006053BC - DE0B98C421FF6600C0B6D1000036CCF67F6052C74FDC32C8008059D3000036EC - F8895B0719C078FA8DC3CB06330060963400800DF35A2F6023E2590000C0EC69 - 00001BE2615EC046D93D0400DB430300D890C3473CC80BD898787648DC0A0000 - CC960600B021B6FF039BE115A200307B1A00C0C48EDE78B3EDFFC0A678852800 - CC9E060030B1C3475CFD0736276E03B8E6DAEB063300601634008089C4957F4F - F006A6E18663370F32006016340080891CB26D179812CF120180D9D200002662 - FB3F302D761401C06C69000063F3CB3A306D47DD06000033A301008C2D9EFE0F - 304DD154F4561100980D0D00606CDEDB0D6C05CF160180D9D00000C6B2FFC065 - CD5507AF1ECC00A6E706CD450098090D00602CEEFD07B6CA35D75EB7D2640400 - B69606003016DBFF81ADA4C908005B4F030018C9F67F60AB693202C0D6D30000 - 463A7EE2964106B035A2C9A8D108005B4B030018E9B027740333601700006C2D - 0D0060A8B822B7FFC081C10C60EB683602C0D6D200008672450E98956836C61B - 010080ADA101000CE58A1C304B371CBB79900100D3A60100B48AD772D9FE0FCC - D221AF0304802DA30100B43A7CC4D57F60B6F6EDDBB7D27C0400A64F030068E5 - 4A1CB01D341F01606B6800005571052EAEC401CCDAD11B6FF2EF0F006C811D83 - 9155E9CF241F5344C3248DBBB231C5EE4AEC695EF7A6DF6876EDBDBE97C3C2F8 - A137BF65E5977046BBFFDE7B9A5FFC85B70F6674593CC1FE277FFA6D83199BF1 - DBEFFCF5E68E0F7E6030EBAE389FBC1961326FF9E11F1864C04239F3FC9DCDC7 - FFE0477AD9E95EBC588933599CCDC673D9982294233D760000EBC49537DBFFC7 - 77F2AE8F0C32BA2E9A418F9E3A3598B119878FF8370800A64D030058E7D0F56F - B0FD760227EFD40060D5C93B3F3CC8D88CFE5B482E1BCC008069D00000D671E5 - 6D7C0F3DF840F3E8A9470633689A3B6EBF6D90B159DE060000D3A50100ACE115 - 5C9351EC51EA3785DC06300D478F790E09004C930600B0466CFF677CB6FF53E3 - 3680E9B8EAE0D56E03008029D20000D6B0FD7F7CB6FFD3C6CE90E9397EE29641 - 06006C960600F03571A5CDF6FFF1DDEDE9FFB4701BC0F41CB62B0900A6460300 - F81AC5FF646CFF6718B7014CC7FE0307566E050000364F0300F81A0FDC1A5F5C - DD8DABBCD0E6FDEF7BCF2063B38E9FB8759001009BA10100AC88EDFFAEB28DCF - D55D4689E74368124DC721BB9300602A34008015B6FF4FC643DE1887F3643ABC - 9E1400A643030058618BEDF86CFF675C9E13313D878F781820006C9606003078 - D7F681C18C516CFF675C6E03989EB80D20760200001BA7010078F8DF846CEB66 - 12CE97E988E2FF90570202C0A6680000DEB33D81679F7DD6155D26E23680E939 - 7CC473000060333400A0E36CFF9FCCDD8A3926E43680E9890701BA0D0000364E - 03003ACEF6FFC99CBCCBFDFF4CEEFDEF7BCF2063B38EDE78F320030026A50100 - 1DE797E9F1C5F67FDBB9D988BB3D38726A342D0160E33400A0C36CA79D8CEDFF - 6C94E6D1F4F46F5BBA6C30030026A101001DE6BDDA93B1FD9FCD38799706C0B4 - DC70A35D0000B0111A00D061F15E6DC6E30A2E9BE53680E9397ACCAD4B00B011 - 1A00D051B6FF4FE6FE7BEF1964B0319A48D3136F2E895B010080C968004047D9 - FE3F19DBB79906E7D1F4781820004C4E03003A28AEFC1F750FED446CDF661A9C - 47D3E30D260030390D00E8A043D7BBFA3F89D8B61DDBB761B3DC06303DD1C88C - 5B990080F1690040071D3EE297E649D8B6CD34DD71FB0706199BE5562600988C - 0600748CAB6693B36D9B69B2A3647AE24D261E660A00E3D300808EB1FD7F328A - 35B6C2DD6E03988A28FEFD9B0600E3D300808E397EE29641C6386CFF672B9CBC - CBAE9269714B13008C4F03003A64FF81CBBC3B7B42F7DF7BCF2083E9B1B3647A - E29626B70100C0783400A043DCFB3F99871E7CA079F4D42383194C97DB00A6C7 - 6D0000301E0D00E890A3C7BCFB7F1277DC7EDB2083E9731BC0F4B8B50900C6A3 - 01001D61FBFFE4BCAF9DADE43680E9897FDBE2DF380060380D00E8881B6E74F5 - 7F12B6FF330B6E03981EB73801C0681A00D011478FDD3CC81887EDFFCCC2FBDF - F7EE41C6661D3F71EB200300DA68004007F4B7C71E18CC1887EDFFCC427FA7C9 - A9C18CCD887FE3DCE60400C36900400778F8DF64A220B3FD9F593979A787014E - 8B7FEB0060380D00E880C35E9135110519B3E47693E9F16F1D000CA701004BCE - F6FFC929C89825B7014C4FFC5BE7618000D04E0300969C07634D260AB128C860 - 96EC3A999EC347EC020080361A00B0E40EB91A36118518DBC1AE93E9F16F1E00 - B4D3008025165B61F7EDDB3798310E8518DBC16D00D313FFE61DBDD16B4F01A0 - 4603009698ADB093B1FD9FEDF4FEF7BD7B90B159878FD8050000351A00B0C46C - 859D8CEDFF6CA793777E6490B159763F01409D06002CA9D802EB17E0C9DC7FDF - 3D830C66EFD1538FD881324587BC121000D6D1008025650BEC649E7DF6595760 - D9769E41313DC74FDC32C8008044030096505CF9F72EECC9DCADF8670E68424D - CF5507AF6EF61FB86C3003008206002C215B5F2777F22EF7FFB3FDDC06305D1A - A100B09606002C21DBFF2763FB3FF3C46D00D373F4D84D830C00081A00B0646C - FF9F9CEDFFCC13CDA8E989DB002200803E0D005832F1F47F2663FB3FF3246E03 - B8FF5E6FA49816BB0000609506002C19BFEC4E4EB1C5BCF933B7014CCD61CF44 - 0180AFD1008025124FBCB6DD7532B1DD3A9E0100F3E4EE3BED4A9996FD070E34 - D75C7BDD600600DDA601004BC4BDFF933B7997FBAD993F1E4C395D371C736B14 - 00040D005822B6FF4FCE9556E695E6D4F41CD21C0580151A00B0246CFF9F9CED - FFCC33CDA9E9F1761400E8D300802571FCC42D838C71B9C2CA3C731BC0741D75 - 1B00006800C0B2F0A4EBC9B9C2CABCD3A49A9ED801103B0100A0CB34006009C4 - D6FF78D235E38B57FFD9FECFBCD3A49AAE431AA500749C06002C010FFF9B9C2B - AB2C826852DDF1C1DB063336EB06FF5602D0711A00B0046CFF9F9C7BAB591427 - EFB20B605AAEB9F6BA9507A60240576900C0828BFB5A6DFF9FCC430F3ED03C7A - EA91C10CE69BB7554C97B70100D0651A00B0E00E1F71F57F5277DC6E4B358BE5 - 6E3B56A6C62D5300749906002CB843AE664DCCF67F168DDB00A6A7FFD054B701 - 00D04D1A00B0C0BCD66A72B6FFB388DC06305DC74FDC32C800A05B34006081D9 - FE3FB9BB3DFD9F05E53680E9F1E05400BA4A030016545CF9B7FD7F72B6FFB3A8 - DC06303DF1E0D4B8150000BA46030016D4A1EBDF60FBFF841E3D756AE5160058 - 446E0398AEE3276E1D6400D01D1A00B0A00E1F71F57F5227EF740595C576C707 - 3F30C8D82C3BA800E8220D00584071E5DFBBAC27E7F57F2C3AE7F0F4F8771480 - 2ED200800514DBFF998CEDFF2C83FE5B2C4E0D666C9607A902D0351A00B0806C - FF9F9CEDFF2C0BE7F2F41CBDF126CF5201A053340060C1EC3F70996DAB1B60EB - 34CBC2B93C5D765401D0251A00B06014FF938B27A7DBFECFB2701BC074D95105 - 40976800C082397AECA641C6B8EEF6EE7F968CDB00A6279AAAB1B30A00BA4003 - 001648FC927AD5C1AB0733C675F22EC512CBC56D00D3656715005DA101000BC4 - 2FA9938BEDFF27ED0060C9C46D006E6B991E3BAB00E80A0D005820C74FDC3AC8 - 1897EDFF2C2BBB00A6277656B90D00802ED0008005D1FF05F5C060C6B86CFF67 - 59D9D9325DC74FDC32C80060796900C082B0457572B6FFB3CC1E3DF588DB00A6 - E8B0D70102D0011A00B020FC723AB9FBEFBD6790C172721BC0F4C40E2B0F5905 - 60D96900C002887B536DFF9FDCC9BB5CFD67B9D9E1325D765A01B0EC34006001 - 28FE37E66EEF4A67C9B90D60BAEC00587C8F9E3A35C800A8D1000096525C198D - 6700C0B2731BC0F4CCE39B00FC3B3699688A01D04E030016C0737E019C48FCC2 - FCFBBFF7BB83192CB73B3EF80145E2943CFBEC33836C7EDC71FB070619E3B003 - 0060380D005800B1C5D736DFF1A4E2DF5520BA22CEF9FFE517DEAE0930059F7B - F0C141363F6237D31D1FB4CB635C7FF2EFFE70900150B36B30B26A4765AC4534 - 4FD2382C763597BDEEBF6A76EEBEBC97C386FDF55F7D6C657BEA2B2EBF62B042 - 297E51FE9D77FE7AF3D71FFBE86005BAE1C9279E683EFE571F5DF9F7611EB7B1 - 2F8228B27FFFF7FE7573FAF4E9C1CAFC88079AEEE8FDC671E5C1AB9B3D7BF60C - 56C94593FC37FEB77FD97C4EB31C16D7B9330F378F7CFCDFF7B2B32D71AE2542 - 1A19210A58D64A7F26F998220AFA3446F3248D297657624FF3BA37FD46B36BEF - F5BD1CA6221E5475FEBE7D8319C12BFFA06F5FEFDF862814194FDC62B5483BAC - FCFBBF9E7FFF61499C79FECEE6E37FF023BD2C3AB12F56E24C16D110486314FF - 65832094233DA9C86555FA33C9C7141A00000000D3A601301351C0020000004B - 4E03000000003A4003000000003A4003000000003A4003000000003A40030000 - 00003A4003000000003A4003000000003A4003000000003A4003000000003A40 - 03000000003A4003000000003A4003000000003A4003000000003A4003000000 - 003A4003000000003A4003000000003A4003000000003A4003000000003A4003 - 000000003A4003000000003A4003000000003A4003000000003A400300000000 - 3A4003000000003A4003000000003A4003000000003A4003000000003A400300 - 0000003A4003000000003A4003000000003A4003000000003A4003000000003A - 4003000000003A4003000000003A4003000000003A4003000000003A40030000 - 00003A4003000000003A4003000000003A4003000000003A4003000000003A40 - 03000000003A4003000000003A4003000000003A4003000000003A4003000000 - 003A4003000000003A4003000000003A4003000000003A4003000000003A4003 - 000000003A4003000000003A4003000000003A4003000000003A400300000000 - 3A4003000000003A4003000000003A4003000000003A4003000000003A400300 - 0000003A4003000000003A4003000000003A4003000000003A4003000000003A - 4003000000003A4003000000003A4003000000003A4003000000003A40030000 - 00003A4003000000003A4003000000003A4003000000003A4003000000003A40 - 03000000003A4003000000003A4003000000003A4003000000003A4003000000 - 003A4003000000003A4003000000003A4003000000003A4003000000003A4003 - 000000003A4003000000003A4003000000003A4003000000003A400300000000 - 3A4003000000003A4003000000003A4003000000003A4003000000003A400300 - 0000003A4003000000003A400360E3CE0DC651C6FD1C00004097A9B1B69806C0 - 2C9C3BFBD420030000A0A4669A090D805938FDD5FB07190000002535D34C6800 - 00000040076800000000400768004C5F3C90A27828853F6600008076EB6AA64A - 5DC566A94C27D37602A6F5FCB8931500006072B5BAAAADBE52774D400360164E - 3F79DF20030000A0A4669A090D80CD896ED3B08E53FFD88B2F3CBD32020000B0 - DE6ACD34AABE1A769C113400000000A0033400A62775A2CAAED4B9E6ABA7BE30 - C801000028F56BA6B575D4EA3C5F67133400A6AB3C61FB1EFDE4C3830C000080 - D2DA9AA95E57B1691A005B2B9DAC4E5A000080766AA719D000D8BC512768FFF8 - D9D39F58190100005875E6F93B07D978B5151BA601B031E58917F36127E3B9E6 - DCD9A706390000006B0DAFA7D61F1FF6795A68004C2E9D686D275C3A39D71E3F - F3A2E70000000094CE3C7FFF204BEA35D5AAB4DE769C161A00EDCA93A976728D - FACCEAFCCC690D00000080D299B34F0FB2307E8DB56A9CCFD0A301305A9C3CA3 - 4EA0FC78FA7C5AEBE72F3C5976B5000000E8D74AEB6BA8D579C8F39AF2F35468 - 006C5E3AC96A27DBEA49F8E269CF0000000028ADD64AABF5D35A69AD768C0968 - 00AC37ECA4CA4FBCDAE7DA7EF65CF3C467EC0000000028F56BA5F65A6ABDBC1E - 6BFBB930EC582769006C4EDB09954EC8D5E3CF7CE9C9E6DCB9FCDE160000806E - 8B1A296AA555EB6BA9B5DAD6198306C0E4CA13AE3C41DB8E37CDD917EC020000 - 0048566BA4BCA64AD23C1D6B3BCE983400A62B3F31F308E7BC090000002073FA - F94FF4FECFD59AA91E4C8906C0748C3A39FBC75EFC6A9CDC00000084B32FC445 - D2D1B554FB7126A001B071E39EA4AB9F79EE89FB06190000006B6BA47A1DB5D6 - B0638CA001309974A2E5275CB9968F6BF3273E6D0700000040D2AF91D6D74E7D - 6D63A8AD318206C070F94935ECC42A3F977F7675ED992F3FD99C7BD173000000 - 00A2368A1A29AF9956956BF9B1D2B89FEB3C0D80BA5127571A53D4D48E9F6B5E - 7CD12E000000807E6DB4B65E5A5F43E5CAE36D9F0BC38E759606C0C69427533A - 09D37A6DECE7673C0810000020AB8D56EBA5FA981F4FCA3963D00098BEF204CD - E7E79A674E7D24160100003AAD5F1BADAD97FACA3953A201B039C34ED27CBEBA - F6853FD700000000E8D746C3EBA7FA9C0DD200985C7EF225E55A8CED71F6B4DB - 00000080EEEAD744F57A6935423986DA1A63D000182D3FB9869D60A33E97D6CF - 352F3C77E7CA0A00004017F56BA2D51A69BD7CBD763C19F773F46800B41B7592 - A53145523B9647D33CFF150D000000A0BB566BA25ACD1411D218861D2B0D3BD6 - 691A001B579E54E5C9D81E8FDEAF010000007457BF26AAD74BAB11F23C29E78C - 490360F36A27676DBEBAF6CC979FF41C000000A093A2168A9A28AF91D646689B - B3091A001B939F8449B916631967BF967B0E000000D0456BEFFF5FAD91D64628 - C7505B634C1A00E3C94FB2F244CBD76A9F4BF9DAB9E7000000005DD4AF85D6D7 - 48EBE7A1B696D43EC7101A00C30D3B89F2932DA4F9B058ED6E3DF8C1FFB33702 - 0000744BBF165A5F230D8FA49C97861DEB3C0D80E94B27647E62D6F273CDE967 - 3FB0B2020000D005FD1A68B526EAABE5F91A53A201301D6D2767ACE51DADC857 - E7A79FB9AB370200007443BF06AAD747AB79291D67933400362E9D80F989984E - CC3C427DFE954FBA0D000000E88E7E0DB4BE36AACFF3F590F27C8D0968008C2F - 3FD9CA132EAD8D13AB5DAEC73EFD05AF030400003A216A9FA881CABA68FCC8E5 - 6BE5315A68008C36EC64CA4FBA5C5A1F1D5F7DFC5DBD11000060B9F56B9F7A5D - 548F52DB7A32EC183D1A00D3934EC674D2E5632DFADDAEAF7CD28300010080E5 - D7AF7D566BA17A847CCCD7D9240D80CDA99DA0E5382CCEBA0D000000587AABDB - FFC7D9F61F468D6C8006C064F293AECC6BF371E2ACDB00000080A5D6AF7926BD - E73F22B4CD431A198306C078367252A593328F38E1F3E8AFBB0D0000005866AB - DBFFDBEBA2B531A98DFC4CE768004C4FED841D67CDDB00000080E5B5F6E9FF65 - 8471D7D8240D808DAB9D8CF95A2DCAEED66AD7EB9947FE4D6F040000582EFD5A - 67B5F6595F13E5F35A24B53526A00130B9DAC9563B09D3DA78F1C85FFFE7DE08 - 0000B05CFAB54EBD0E6A8F5C6D2DD4D6184203607CE39E5CE9E44C9F4FF9F04E - D7335F7EAA79E1E9FFBD970300002C87A871A2D6C96B9FE1B551C88F8D63DCCF - 759E06C074D44ED414211FE3E44E2778CAFBF1D4C37FDA1B0100009643BFC659 - 5BF7ACAF8B423E9611D2C82668006C4C7E12D6F224E6F9099E3E538F2FFCC59D - CDB9335FECE50000008B2D6A9BA871CABA677D9435532E7D26943913D20098CC - B827593A31F39333226F02449E477FFDB9C77EBF370200002CB67E6D33BCFE59 - 9B8794A7F928E37E8E1E0D80E9A99DB0B5284FF8B5EB0FDFE53600000060F1F5 - 6B9BE1F5CFFAF532421AD9240D808DCB4FC65A9EA4B532D209BF369E7DE4490F - 03040000165AD43451DBD46A9E7ED46AA4885CBE56E66C8006C0E4C63DD9D209 - 9A9FA4E3C5639F761B000000B0B8FA354DBDDEA94728E7A38CFB39063400A6AB - 76E2D62275BCCA2E583F1EF9D87DCD8B5F3DD9CB010000164BD43251D3D46A9D - 7EE435D1B00869640A340036273F296B7992D6F2187EC23FFEE06FF646000080 - C5D2AF65EA754E3FDA6AA15CBE56E66C9006C0C68C73D2A593B48CFC648FBC1E - 0FFFE5479AB35E090800002C90A861A29629EB9BB551AB8DCA18659CCF50D000 - 989EDAC99AAF45A413BC3CE9EBF1CC97EC020000001647BF86A9D737FD18561B - A5486A6B6C8206C0E6D54EC6FC244D79392F4FFEF5F1D9FFF4A776010000000B - 216A97A861CABA66356AB5504879392FD5D6988006C0C60D3BF9CA13B72DCA2F - C2FAB00B0000005804FDDAA55ED7F46374FDD38F90C69A61C7184203603AF293 - B49627692D453AF9D317617D7CF63FBDCB2E00000060AEF5AFFEBF2BB22191D7 - 4079E4F2B53267933400B65E3A69CB13BDFC02C4588F67BEF85BBD110000603E - F56B967A3DD38F5A0D94229FB385340036A77682A613B78C90F2B6133EC6F5F1 - D9FFEC59000000C07C5AB9FADFAB59CA3A663586D54011213F9647A9B6C69834 - 00A667D889989FC079E4277D99AF0DBB0000008079D47EF5BFADD64979196D86 - 1D63021A009B37EE899A4EEA14E9C44F5F8E3CD6AFAFEC0238FDC95E0E000030 - 1FA246A95FFD1F55EBC4984792E7A561C7188306C074A513323F896B795B945F - 8EB5F1D8677EA537020000CC877E8D52AF5F56A356FBE41186E54C8906C0D62B - 4FE2326A5F9088F5C71EFECB8F342F7EF5642F070000D85E519B448D52D62DA3 - EB9C5A8434B2453400A6A376A296277299B745ED4BB21A5FBAF3E77B230000C0 - F6EAD726F5BA65356A354F1EA12DCFD5D6989006C0F40D3B59D3C99C227D21CA - 2F497B3CF6992F345F7DE20F7A390000C0F6889A246A935ACDD21E790D944748 - 63AEB6C62668004C4FDB099B9FD065DE16E517646D7CFECFDFD99C3BF7742F07 - 000098ADA845A226A9D52AEBEB996111DAF25C6D8D0DD000D81AC34EDA7452A7 - 28BF24A3E3D9479E6C9E79C46B01010080D98B5A246A925AADD21E79ED934748 - 63AEB6C62669004C57DB899B9FD865DE16E51726C59995F133EFFB7DAF050400 - 00662A6A90A845F2DAA41EB51A278FD096E76A6B6C9006C0D61976F2A6933B45 - FA82945F9AE1F1A58FFFB3DE080000301BFD1AA45E9FB4475EF3E411D298ABAD - 31051A00D3D77602E727789947E45F8CB658DB613BF557F77B20200000301351 - 7B440D92D724C3770144E4B54E8AD096E76A6B6C8206C0D61A7612A7933C8FF2 - 8B917F71EA5FACCF7FE8379BB367BED8CB010000B646D41C517B94F5483FCA5A - A5AC69F2798A90C65C6D8D29D9351899BE1DC598E4F3FC337984944793263F96 - 47D39C7EF674B3FB259F6EF61DB875650E0000306D8F7EE2679BAF7CF233BD2C - 15FB31E6918AFF3C8F623E8D29425B9EABADB1491A005BA75FA0F7A57CB5705F - 7FBC3C56E665847EFEF417BED85C74F585CDEE97BCAEBF0C00003025B1F5FF81 - FFFC47BD2C15F8A9C84F795EF4471EC57B9AA7023F8F90C65C6D8D29720BC0D6 - 693BA1F313BECC53E45F9694E7517EC1E25680DF722B0000003055FDADFFF10A - F27A1DB23ECA7A268FD096E76A6B4C811D005B2B5DA90F6BAFDAF795C7F308E5 - 5AB91EFAB95B0100008069EB6FFDFF6C2F8B823F4514F7659E8AFE14A9B82F23 - A431575B63CA3400B65E5EA8E7C699E73F5B46583B7FFA0B5F6A2EBAFA02B702 - 0000009BD6DFFAFFC7BDAC2CFACBC23F8DA9F04F79BE9647C8F35C6D8D29D100 - D87AA9580F65E19ECBD7CAE3699EAFD7E64DF3D8FD1F6EF65F7B73B373D7A52B - 7300008049BDF8C2A79AFBFEF86DBDAC56ECA748057E9E4744119FC6908AFD14 - A5DA1A5B40036036D616E9AB52015F1ECF3F571ECF23ACCF77EDB8A7D9F7757F - B3D9B1E3BCFE320000C098CE9D7DBA79F4AF7EB679E69153BD595EEC97792AF8 - 238F223ECD23F282BF2CF06B6BA1B6C6146900CC462AD043AD704FCA63F967CA - B53CC26AFECC235F69CEDFFF78B3F7C21B57E6000000E37AEAF3BFD47CFE2F3F - D4CB8615FE69CC230AF834B645A9B6C616D100989D54A887325F2DDEFB46ADA5 - F57C5CBBF6C4039F6A2E7ED515CDEEBDDFB03207000018E5F9A7DED37CFABDBF - D9CB6A05FFB0E23F4559F097057EBE961F2B3FC716D000989D54A0873C2FD58E - E5C57D1EA136F6F3E71EFD6873E1C1377A1E0000003052DCF7FFD06DFFA439FD - EC73BD5914F3A9E81FA7F88F02BE9C8718CB609B6800CC562AD2C3FA82BDFD78 - 39D622ACCD4F3FFB42B373C7BDCD4B3D0F0000001822EEFB3FF557FF43F3F803 - 9FEFCDA280CF0BFEBCE8AF3500A2A84F632AF0CBBC94AFD58EB3053400662F2F - D673E53CA4823E3F96AFD5D6C3EAF8CC238F35E75DF0B9E6FC4BFEE6600D0000 - 60ADC73FF33F350FDFF9915E16857C5EFCA73145CC6B910AFE88721EF23C575B - 638B6800CC5E59B4E763AE762C5FAB4592CF77344F7EEEA1E6C22B76357BF61D - 1AAC010000F43D77EA5F359F5D79DF7F14EE6D457F5BF11F057C9EA7823EE5F9 - 5A52CE99110D80ED5116EB69CCF3A45CCBC7722DD43FF7D8A7EE6E2E7DCD3736 - BBCE3BD85F0600003AEFF433B737F7FFE92FF6B228E0F3A23F2FFCF33C15FB11 - 51C8A7B18C90C6306C8D19D100D81EB5823D29E7A15FC4AFFFB9342F8FD7C767 - 4F7DD8430101008015F1D0BF073FF0B38387FED50AFDB2E02FE71151C4A728E7 - 21CFD9661A00DB2715E7212FD4F3F5901F4B6A6B21E66D9FEF3F14F0CC331F6E - 2EB8F2560F050400800E8B87FE3DFCA1B7364F3DFC486F16857B6A00D48AFF7C - 3D4514F5795E16FC699ECBD76AC7D9621A00DBAB56AC87B6223E1F43BE565B0F - F9679AE6AB4F3CD39C3DFB91E6652FFF1B9A000000D04151FC7FF1EE9F681EFB - E4677BB354DCA702BF2DAF455EECA708F998F25C6D8D19D000D85E6D457B28E7 - 21D6F24886AD2729DFD13CFBC863CDF9FB1F6FF65E78E3600D0000E88A78E2FF - 17EFBAB397A5023F8F28ECF3BC16A9B04F51AE853C0F79CE36D100D87EF5227D - ED7A28E7B9519F5F9F3FF1C0A79AF32F7DA4D97BE1B195390000B0FC9EFCDC3F - 6F1EFAE07FEC6579D19F8AFD5A9EE66D5116FCB5423F5FAB1D67463400E6432A - D0DB8AF818E38B92CFF308E5B1A43D8F26C08557ECF47A400000E88078DDDF67 - DEFFFBBD2C0AF75AB15FE665A402BF8C3816224F63CA73B535664803603EB415 - E921CD877D26E49FABFD4C58BF1EAF07BCF8559737BBF77EC3600500005836CF - 3FF59EE613EFFA955E562BF6F348EBA9E86F8B54E4A7A23E1F531EF29C6DA601 - 303FF262BDAD80CFC5B13C4AA3D656F347EFFBB3E6E2575DD1ECDEFB9AC10A00 - 00B02C9E7FEABDCDFDFFFE7FEE6579A1FF6231CF230AFC3C2F0BFE88DA5A442E - 9F97C7D8061A00F3A556A0C798AF87725ECA7FA61CC3FAFCD1FB6ED704000080 - 25D32FFEFF592FAB15F6659E8FC32215F3A9E8AF15FAB535B69906C07C692BD2 - 439AC7185FA07C5E8AB57CBDED33493FD704000080E5B1B6F88FC8AFFA973B00 - A2B04F635B441D9222E62115F7699D39A601307F8615EE695EFB4C8C29923CCF - B57F461300000016DFFAE23F2FF2CB3C8FB45E16FC65847C4C7968CBD9661A00 - F3A956A0B715F3A1ED58FEB37994D6AE69020000C0E2AA17FF11B5ABFEE34614 - F2692C2397CFCB636C330D80F95416E969DE56C087DAB1B6CFE6EA9FD1040000 - 80C5D35EFCA782BFB69E222FF853A4223FCF532429CFD798431A00F32B2FCC47 - 15F6E56753E46A6B496D7D87260000002C90D5E23F8AF55A815F7BF27F5EECA7 - C88BFC340FF97AC8F352DB3ADB480360BEE58579ADA04F637CB96A457C4DDBE7 - EAEB9A00000030FF9E7BE20F9B4FFCC92FF6B2B2C04FD156FCE7792D52911F79 - 48857D5A4FDA72E68806C0FCCB0BF3B2484FF318E34B562FE2D7CB7F2E8DED3F - 1F4D80F32F79A4D97BD1B1C10A0000302F9E7CE81DCD67DEF7FFED6579719F47 - 14FF51C0475E8E29AF45D40811918754D8A7F5A42D67CE68002C86BC302F8BF7 - 64D43C297F3EC6F892E6E37A4F3CF0294D000000983351FC3FF08177F5B254CC - 97918AFFB626402DA22EC82394F3249F97C798331A008BA12CCAF3E27D98B6E3 - B5FF5E7C59F371BD68029C3D7347F3B297FF8D66C78EF306AB0000C0AC9D3BFB - 74F3C5933FD63CFCE10FF56679C19F47ADF84F91E6A9E84F11F5401A6B11CA91 - 05A101B038F2A2BCCCEB05FBEA7AED78B916F3F802E7E37ACF3EF295E6ECD90F - 37FB2EFBF666E7CE970D560100805979F1854F355FFED8FFD89CFAF8277AB3BC - A8CF63D2E23F6A806191E479AE6D9D39A201B058F2A2BC56C0D7A4F5DAF1DA7F - 23FFE2A6F9DA319A004F7FF17DCD8507BFBDD9B9EBD2DE1A0000300B51FC7FF6 - FFF889E6C907BFD09BA522BE2CF6632C8BFD721E638AF85DBF1CF308791EDA72 - E69806C0E2C98BF63C0FE53C49EBB5E3E3FE37D67AF1B9179A531FFFD3E6E257 - 5DEE0D0100003003F19ABFFBFEE8FFD9FB5DFCB9DE2C2FEADB228AF9DA3CC614 - 51BC97631E21CF435BCE9CD300584C79913E6E019FD66BC7F3B5C9BEC08FDEF7 - 67CDF9977CD9C3010100600BC5C3FE3EFDDEDFE96579413F4E44515F8E29E277 - FF72CC23E47968CB59001A008B2B2FDACBA2BE56E487B45E3B3EEC582EBEE4F1 - 99D52F7B3C1CF0CCCAC301FF0B0F07040080298A87FD3D7CF2BF6B1EFEF09FF7 - 6665615FBBBF3F8F742C1F53C4EFF3E59847C8F3D096B3203400165759A88F9A - 2769BD76BCED587CB963ADFD4BFEDC238F354F3DFCAEE6C257BEAED9B9E7E583 - 55000060A35E7CEEA3CD67FE8F1F6B9E7CF0F3BD5914E979719F471C2B9B0129 - CFC714F17B7D39E611F23CE4390B4A0360B19585FAA87992D6DB8E87FC58E4B5 - 2F7CACAD1E5B792EC03DEF6D5EF6CA9DCD79FB0EADAC010000937BE6D17FDD7C - E24F7EA1F73BF6577BB3BCA86FBBEA9FAF95791EF1BB7B39E611F23CE47928E7 - 2C080D80C55716F1A3E6495A6F3B9EAB7DC1DBD7BEF2C98F363BF77CAC79C925 - 87BC2A1000002670E6C52F358FDEF78F9B876E7B77CC0611857ACAC759CBC73C - E2F7F572CC23E479C8F350CE59201A00CB61AB9B00E5F1DA977EED3F124F3FFC - A5E6E92FFEC7E6822B0E36BBF65C3558070000DA9C7EF6CF9ACFFEA79F691EFF - F4677BB3BC902FF3DA5A999711BFAF97631E21CF439E8772CE82D100581EA38A - FEB6227F54F15F1AF60F42585D7BF1B9E79B53F7FE9F2B6F09D8F3B243CD8E9D - 1E10080000A5B3679E699EFAFCFFDA7CEA3DFF9FC12BFEA240AF15F6B5B594E7 - 632DE2F7F4883C4F11F23CE47928E72C200D80E532AB264018F68F43486BE756 - DE1270FAC9FFDCBCF4EBBEC10302010020130FFAFBC29FFFF7CD973E7A576F56 - 2BE8F3C8D7CACFC5D816F1BB79449EA708791EF23C9473169406C0F2D9681320 - 94C7D2177DD8CFB4FD43B136FFEA13CFAC3C20F0A55FF76CB3FBFCEBEC060000 - A0D3E2AAFFD35F7E67F3C977FD72EF77E5277B2B65819F47BE9EF27C4C91E6F1 - BB785A4B798C65843C0F791ECA390B4C0360396DA609304ADBCFB6FDA391F2FE - F8F867EEB11B0000804E4B57FDBF78F22F7AB3BC70CFC751798A721E11BF7BE7 - 792D429E873C0FE59C05B7994290F936ACE88F3CCD535EC6CE6C6C8B6820E579 - 9A97796DDCD9BCF2E84DCDC557FFA366E7AE97F6E60000B0DCE2AAFFE30FFC8B - E6F377DC16B341B415F7F9BC762CE5B588C23D8DB508791EF23C947396401463 - 2CAF28E073A3E6A5FC78ED1F80B67F24CA31AC5F7BEA730F364F3FFCA7CDF9FB - F7367BCEBF6EB00A0000CBE7B9AFFC51F3E0077EAE79ECFEFB7BB354A8A7C23E - 15F4F93C5FAB8D65C4EFD9E5588B90E721CF4339674968002CBFCD3601C695FF - 63928F21F2FAFCC5E75E681EFBC4877BC91DCD4B2E3EE8B6000000964A6CF77F - E463FFB879E88E77F7F2AFF65652719F228AF5DABC360E8BF8FD3A8D6D11F23C - E47928E72C9169157FCCB761457FE4699EE7B14D3F8D69BDBF757F6D9E62756B - FFDAF9A8716D7EF5CDB7342F7DC50F36BB340200005860674E7FA979E68BFFBA - 79E003EFE9CD52915E2BE8DB8AFDFC33B5794414EB799EE6218D693DE479C8F3 - 50CE5932A9D863F9957FD7F93CE531A608298FE2BCCC53F19EF2BCA02FE7C38A - FEF2E77636E7EFBFB0B9FC5BBFA739FFD2BFEFF90000002C94B8CFFFB9C7FEA8 - 79F823FFB679EED178BA7F2AD053D40AFC616B651E457A99C758E621E5F93CC9 - F350CE594251BCD11DE5DF773E4F793ED6228AF4721C169314FF6BE7E75F7A61 - F3CAEFF86F9AF32FF9AEDE1C0000E6DB735FF9E3E6F31FFA57CD738FE5857F5E - BC97F35A5E7EBE1651AC97632D4239863C0FE59C2515051CDD52FE9DE7F394E7 - 635B44919EC632CFA3ADC81F5EFCE7F30B0E5EDE5C7EF8079BBD179CE8CD0100 - 60BE3CFFD4FB9A2F9FFC57CDE30F7EB1378B827C58D19FCF477D2E8F28D2CB3C - C6B608E518F23C94739658146D7453FE775F9E07314F6B791E05791AD37ACAFB - C5FADA3C8FBCC01FBFF8CF4323000080791285FFC327FF75F3D4830FF766A938 - CF232FE88715FBC30AFF8828D2CB31E5218D693DE47992CFCB6374402AECE8A6 - F2EF3F9F479EE6B53C4514E7E558E6296A85FD78C57F1E1A0100006CA7D1857F - 8A6145FFB0B58828D0CB795A4B798AD096873C0FE59C8E88228D6E2BCF817C9E - F27C6C8B28CEDBC6B698BCF8CF239E1170F91BFEBE87050200B0E5BEF670BF0F - FF51718FFFA818A709504614E8F998F26111CA31E47928E774481468509E07F9 - 3CE5F9984788823CCDCB3C4539CF63B2C2BF8C68045CF6FA1B9A975DFE035E1F - 0800C054C5EBFC9E7EF8779B47FEFACF262CFCF318A7E88F88E23CCFD33CCF43 - 9AA708E518F23C94733A268A3208E5B9509BA7B55A9E228AF232CFC78D44D920 - 68FB6FED685EF9C61B9B975D71A2396FDFD1DE1C000036E68567EF689EFEC2FB - 9ACFFFF9077BB3289C5361BE5591FE37F2B1CC5384B63C1935A783A29082A476 - 3EE46B29CFC761D12FCA57F334AFE56DD1B63BA0F6B3AB6B171C7C45F3F26FFA - EEE6BC971DB52B000080B1C4D5FE179EBEA3F9D25FFD61F3D4D79EE89F17E5D3 - 8CFCBF99F218CBBC2D4239863C4F6A6B7450144C502ACF8B7C9EF27C2CF314A9 - 28AFE529CAF9B8D1F673F9FF567FED956F3C6657000000AD56AFF6DFDE9BD58A - F2B4362CC6FD5C44FED9FC7F2745398F08659E8F21CF4339A7E3A248829AF2DC - A8CDD35A3EB6452ACAF37C6DA15E9FB745DBE7F2F5B5FF1BE75F7A4173D9EB8F - 352F7DC57735BBCF7B756F0D0080AE7AF1854F37CF7CF18F9B47FEFAF6E6B9C7 - 9EEAAD94C5788C655E8B8D1C8FB5F27F6354847C4C79326A0E2B8511B429CF8F - B6793E96798A548897F3DA98476D6DDCF5324FF31D2BB7081CF8C663CD4B2E3D - A1190000D01151F47FF5B1F735A73E71FB608B7F14C9A900AF8D655E46DBB172 - BDEDBF9BAFD72294793E26A3E6B0220A2218A53C4FF279CA6BE3A8280BF334CF - C772BD6D5EAED73E5F1EEBAF5D7CD5E5CD25D7DCD09C77E1B7B84D000060C9C4 - F6FE179EFC68F395FBFFAC79FCA1786F7F14C711B5C23C8DC3F2B6B5619FC9C7 - 5A1ED298D62342DB18F23C947358230A20184779AEB4CDF3B1CCDBA22CCA6B63 - 8A7C5E1ECBD76A9F1B36F6236E13B8F41B0F352F7DF9D166F74BBEC503040100 - 164C3CC8EFC5AF7EB479E64B77348F7DE2EEC1F6FE288C539405796D1C968F7B - ACFC4CBE3E2C4299E763326A0EEB44D103E3AA9D2FF95ACA6B638A90CF23F222 - BC96E7E3B03C9FD73E336CCC6375EDE2AB5ED15CF8F5879A975CFC2DCDEEF3BF - 5943000060CEAC14FCCF7DACF9EAE31F6D9EFCECDDCDE30FA5ADFD11B5823B2F - CEDBC661793EAF7DA636A628E711A1B616F2E3499E27B53558278A1C985479DE - B4CDF3B1CCF3B5E145F8FA623DC6CDACC5386EBE365243E0BC0B5EDDEC79E9B7 - 787E0000C08CC57DFCA79FF968F3C2539FAE14FC65E405F7A83C1FDBD66AEBB5 - B1CCF3B590C6B41ECA3C1F935173182A8A1AD888DAB953AEA5C239C9E7291F15 - B5C27C9231E56DF351F9A8689A975F7FA8D977C96B9A3DFB5EB3B24320760A00 - 00B07971653FAEF09F7EF653CDB35FF954F3A53BEF1E1C89C2779C682BC8CBBC - 6D9E8F6D9FC93F57E6A322E47928E7A19C87DA1A0CD52F6060E3CA73A86D3E6C - 1C27C62DDC47CD6B63990F5B2B23AC5F8B9D027B0FBCA279D9D77D4BB363D74B - 9B3D2F794DB363F7D7B9850000A01005FEB917BFDC9CFEEAA79A73679E699EFE - F2479BE74F7D7170653FA482384528D7CAA815E1B522BD1C533E6A9E8FE5FA38 - 11F23CE4EBB95173185B2A6060336AE751B996E6B53145C8E76D5116E6B542BE - 1C471D4B517E3ED43E17D2F1DAB1325F1D579A0397BDBCF76FF78E950641E837 - 09E27682FE67769EF7EA66676F0D006011A5A2BEEF5CAFB8FFF44A711FA2C06F - 769C6B9E7FE44B45915F8E659EAF45B11DCA63693D2FC66B85795A2BC7718F95 - F93811CABC3626E53CD4D6606CA930816928CFA7DAF9156BF97A3EAFE5A3A22C - CEDBE6F97A5B5E9BE711C7421A6B9F8908653E6C4CCA79A8AD0100CCB3710AD7 - 341F36967919218AF034D63E13511E6B2BE253DE767CD85A5B8461793E26E53C - D4D660628A0BA66D9C2236CDF3F5C8F3F532CFD74615E9C3D6CAE3A3E69344A8 - CDD398F250CE9372ADF619008079366E419BAFE7F37C2CD7371265C13E6C3EEA - B365C4F150AE87B63CE4EBB95173D814C5055B6592E2365F8F3C5FAFE551A487 - B4966258F15E3BD6B61686FDB7CA08C3D6C2A83137EE1A00C03CA915ABC3D686 - 8D653E6CAD2D52715E2BE227590BB563211DCFD7DAF290AFE7CA79A8ADC1A628 - 2AD86AE314B3699EAF475EAEA7B5DA7C9C18A7B89FA4011046AD85723D298FE7 - 6A6BB951C70100B6DAA8027558519B1F8BBC5C4F6BB579DB5A19C38AF714E37C - A62D426D9EC69487F27852CE436D0DA64211C1AC94E7DAB0A2373F16796D9ED6 - CA792AE0F3F55AE4857E1A6B9FAB45A8AD478461793E86DA5AAE6D1D00605EB5 - 15B0B522B85C8B71585E46A8ADD7222FF6D358FB5C1E217DBE5C2FE7A136CFC7 - 5CB956FB0C4C95E28259AA9D6FC3D6F263E55A8CC3F232C2B8CD81511126591B - 3686B6BCCD389F01009885718AD6FC33B57CD8984718676DD208B5223F8F302C - CFC7505B4BC65D83A95348B01D6AE7DDB0B5FC58B91663DB5A6D9ED646350342 - 6D3D220C5B0B6D79C8D793B61C006091D58AE290F2722D5F1F960F5B4B116AEB - 11A1ADE80F6DF3D03686DA5A32EE1A6C198506DBA976FE0D5B2B8FC53C5FCBE7 - A3F269AF8571F290AFE746CD0100164559D8B6CDF3F5C8F3F571F369AF85B63C - D4E6499E27E3AEC1965360300F6AE7E1A8B55A3E6C1C37AFAD85FC58B916CABC - 1C531ECAE3B971D70000E6D1A405707E2CF2723D1F87E5B5B5901F2BD7C2B07C - D8186A6BB9DA7ADB6761261416CC93B6F37158515C1E8B79BE366C3ECDBC1CDB - 8E85DA5A32EE1A00C03C1AB7E84D6BF9B1722DC6DA5A1AA79D8751F390E6E57A - A8AD85B67598298505F3A8EDBC1C551CD7F272AD6D5E1BDBF2721C762C1F436D - 2D29D76A9F010058046D45732EADE5C7CAB5DA38EEB1DAF134A63CD4E6F918DA - F2A4B616DAD6615B283098676DE7E738EBB57CD85A6D4C79C8E7A3C6107939CF - C764D41C0060D1954570DB3C5F8FBC9C8F1A531EF2F9A8310C5B0B799E9B741D - B695628345D176AE8E5A2F8FD7D6C7591B3586713E136A3F5333EC1800C03C1B - 56000F2BACD3BC6D0CA33E538E61DCB5D0B69E4CBA0E734381C1A2693B67C759 - 2F3F93E6E3AC4F632DE47932EE1A00C022A915C4A3D66AF9B4D6C2A8F5501E4B - 265D87B9A3C86091B59DBFE3AEB7CD37B3DE968761C772C38E01002C9261C5F1 - B0A2BBED58CADB3E3FE97A52CE9349D761AE293458061B2DA6F363B5CFA5B549 - 8EE5F3613F176AC7C7B1D19F030098B68D16C2F9CFD5FE1BC38EA7F9B09F1B76 - 2CD48E271B3D06734F21C1B219764E4F72ACF6D97C6DB3C793DA1A00C0321B55 - 9C27F9DA668F87DA67928D1E8385A2F860990D3BBF479DFBE5F1B6CF6FF473A1 - EDB30000CB6E9C823D29D737FBB964D8F1513F0B0B490142578C3AD737727CD8 - CF4CFAF9361BF9190080EDB491E2B9F6339316E8A3FE77377B1C169EE2822E1A - E7BCDFCC67A6F5DF07005866E314DC6D9FD9CCCFE614FD74CAAEC1085D36EB82 - 5DF10F00D037AA009FA44057F0C3081A00B0DEB805BA421E006073365A908FFB - 730A7EC8286060B449BF27BE570000D3316901AFE08721142AB0319BF9EEF8DE - 0100F46DA66057ECC3841422305DBE530000D3A5D0872951ACC06CF9CE0100AC - A5C0070000000000000000000000000000000000000000000000000000000000 + 80CED831E881D970CE0100AC756ED0035B4C3202D3E59C0200982E05029812C9 + 0A6CCC66CE1DE71D0040DF66927B850198904404469BF43C715E01004CC7A449 + BEA2000C215181F5C63D2F367AFE38EF0000FA369AB08FFB750A02909188C078 + E7C124E7CAA8CF3AEF0000FA4625E89324F0E37C5641804E9388D045D34AF8DB + 3E33AD7F1F0060996D26619F56B2AF2040A74842E88A516B7D23C7877DCDA49F + 6FB391AF0100D84E1B49AA6B5F33ECDF99F4F361B3C761E1492E58669326E8B9 + F278DBE737FAB9D0F6590080653749025FCE6FF673C9B0E3A3BE161692048465 + 336C4D4F72ACF6D97C6EB3C793DA1C00C032AB25D7A3E6367B3CD43E936CF418 + 2C14C907CB60D83A1EF758ED73696E9263F978D8D785DAF1716CF4EB0000A66D + A3C971FE75B57F63D8F1341EF675C38E85DAF164A3C760EE492458646DEB77DC + F9B6F166E6DBE230EC586ED831008045326E325D7EAEED588ADB3E3FE97C528E + 9349E761AE493458346D6B769CF9F233693CCEFC34E6421E27E3CE01002C925A + 923C6AAE164F6B2E8C9A0FE5B164D279983B920C1645DB5A1D355F1EAFCD8F33 + 37AA0FE37C26D4BEA666D831008079362C291E966CA7715B1F467DA6ECC3B873 + A16D3E99741EE686048379D6B63EC799AFC5C3E66A7D8A433E1ED58788CB71DE + 27A3C600008BAE2DC14ED2389F8FB81C8FEA531CF2F1A83E0C9B0B799C9B741E + B695648379D4B62E6BF3F95C2D2EE7DAC6B5BE2D2EFB61C7F23ED4E69272AEF6 + 190080455026C0B58438CDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2A436 + 17DAE6615B483098276DEB7158B25C1E8B713E376C3CCDB8ECDB8E35CD15470F + 35E71D38B412EFBDE0D84ABF63C745CDAEBDAFFFF2FF8FD8B9A317EFBAA83F00 + 005834679F6E5E3E776F3FEEFD1974F6857B9B73E79E5E19BEF0C53B57FA171F + 7FB8F9CCDD0FAFC47D2959CEFBDA5CEAA71D8751E390C6E57CA8CD85B67998A9 + D5A404B64F6D1D8E9AABC5C3FA71E3DA5CC88F9573616D7CC5D1AB5692FC48F0 + 5792FBF35EDFFBB57F55B36BF75583CF000010CEBEF448EFAFA7479AB32FF68B + 045120E817071EE91DCD93ED61716D2EE4C7CAB9302C1ED687B63819770E6626 + 252CB01D6AEB6FD85C792CC6F95C3E1E154F6FEE2BFFD6B166EFF9AF6F76ECFE + DA95047FE7EE6F191C030060335E7EE94F570A04E75EFAEBE68567EF6D3EF59F + 62F7404AA2A3CF5B98C65C688B43390EF9674BE3CEC1964B490CCC526DDD0D9B + CB8F9573D1B7CDD5C6696EE7A02F8FA516D6CF5F71E45073C155DFD2ECDCF3B5 + CDEEBDDFD2ECD8F5FADE3C0000B372EEECBDCD4B2FFC69F3F299BF6EBEF8C89F + 369F3915B71144425DB6509B8F165E1EF4B563B571EA6B73496D2E19770EB64C + 4A7460166AEB6DD85C7EAC9C8B7E585CB6302AE95FDF22E13FFFCA63CDEEFDDF + DAECD8F97A5BF80100E6CCCA0E8197EF6D5E7AEE3DCDB39FBE734841A0AD85B6 + 62406A61589CF7A136978C3B075317490ECC42B9D66A6B2FCDE5C722AE8DD35C + 391E37C94F9FCBFB1DCD2B5F737173E9EB8E357B7A097F6CE597F003002C9628 + 08C4AD03679E7B4FF3C4FD77365FF8C453BDD948B053929FF7313FAC855A7120 + 94E3501BE77DAE9CAB7D06A62A1221D84AB53556CEA5713E1F71399FE66AE371 + DADA643FB5B8CA7FE135B7363BCFFB9666F779DF1A1F00006049BCF4E27B9A97 + 5FFCD3E69907FFA8B23B60926240D9426D9CFA1487F278528E436D0EA6221220 + D80AB5B555CEA5713E1F713E5F8B53229FE6525B9BD8AF6D95A4FFEADB9A3DFB + BFC37DFC00001D11CF0F38F3DCBF6D9E79E8DD2DC5807C9CB7DAB150EE0E086D + 71C8E773E538D4E6605322198269AAADA9722E8DF3F988F3F932CEE7C64FF4F3 + B9D8DE7FF0BADB9ABD177DBFA41F00A0E3A218F0C2D3BFDE9CBEEFDDC56D02D1 + E76D54612094F3A12D0EF97CAE1C87DA1C6C482447302DE57AAAADAF949427F9 + B8168F6A65C2BF7EFCDABF7D6BB3F7C2EF6C76ED39D91B0300C05A67CFBCB779 + E1997FD37CFC3FFE516F5426FCA3C6C35A688B43394ECAB9DA6760629120C166 + D5D6513997C6B53EB5908FDBDAB0A4BF1F5F7EF8EAE6E2D7FCDF9B9DE77DAB07 + F901003096950708BEF89EE6A94FFC5AF3E83D0FF56622F1CE13FE8D1603426D + 5CEB93721C6A7330B648986033CA35D4361ED68FD3D627F9B5F8B5DF7A5BB3F7 + 9237B9DA0F00C0A6ACEC0A78F2779B8FBFE7DDBD515B1160587160580BA3FA64 + D418C61649136C446DED947329314FF2718A47B55AB2BFB6BFE4AB2E695EF5F5 + DFD9ECDAF7FDAEF603003055B12BE0ECF3BFDE7CEE2FFF4DF3E4279FECCD4402 + 9E92FDB22FE3512DE47128C7A11C87DA1C0C1549144CAA5C376DE3BC2FE37C2E + 4FF2531B95F8EF6C2E3F7CA8B9F835DFD9ECD9FBFD4DB3EBA2DE1C00006C91B3 + 4F37675EF8F5E6B3A7DED13CF9C978686024FA931602622E94F3A18CF33E1935 + 86A122998271D5D64B3E97E25A9F5AC8C7D16AC97E1EAF4FFC2FF99AB734BBF7 + 7E476F0C0000B3F5D20BFFB679F2A33FDF3C7A4FBC4A3092FAB2009027FF6D71 + 6AA136AEF5218F93DA1CAC1349158CA35C2B6DE3BC2FE3B6564BF4CBBE97F87F + C3D5CD25D7FE88C41F0080B9B0520878E0179A473F1C0F0C8CE4BE2C00B4F5C3 + 5A28E3BC4F468D619D48AE6094729DE4E314D7FA512D25F82996F80300B078C6 + 2B04E4C97F1E0F6BA1AD0F791CCA31AC114916B429D747DB38EFCB38B53CD9CF + C7F5A43F5A3CDCEFD5477FA4D9B3EFFB7B630000986F679EFFF5E6B377FFC2E0 + 618129E94FC97E5B9F5A398E16CA38EF93516358110917D4946BA3364E7379DF + D652829FC7EB93FE18AF24FE47DEECE17E00002C9E350F0BCCDF1A905A1AE77D + 19D75AC8FB1427A3C6B0927C41A95C17F938C5795FC6A9A504BF16AF26FCF9F8 + 6BFEABEF6CF65CFC23CDAE9D57F6C60000B098CEBEFCE9E6CC53BFD07CF45DFF + A6374AC97F9EF8E7E334578B530B651C521FF23894633A2E922F486AEB219F4B + 71DE0F6B29C14F7199F0AFC657DEF875CD2557FE4FCDCEF3DED81B0300C07278 + F9C53F6B9EFCF4FFBBF9F49FFC558C062D12F3B6388D53DCD642D9873C4E6A73 + 7450246010CAB5501BA7B95A9C5A4AECF3786DB29F37F7F90300D005EDCF0748 + 2D92F4B22FE3D4425B9C8C1AD341919441B90EF2718AF33E6F2125F8D1CA38B5 + 72BCB379EDB7DEDAECBFF4EDEEF30700A01BCE3EDD3CF7C48F371F7FCF1FF506 + 29F14F2D12F4729CE6F238A4716AA1EC431E87724CC7445246B7956B201FA738 + EFDB5A9EE497FDDA16AFF5BBF475FFC2767F00003A296E0B78E2FE7F54BC3630 + 6F91A8B7F56D2D947DC8E3508EE9905D839E6E8A043D978F23CE5B4AE86BF365 + 8B7595FABCED6EAEFDBB3FD05C74E5FFD6ECD8F3DADE180000BA67C7AEAB9AFD + 07DFD45CF2552F358F3F704F9ACD5A487DA8CDE56A9F4D468DE9103FFCEE1AF5 + 4B22CDE57124F5A94FF3298EBE8C57DBE55F7F4D73E9756F77D51F0000322BBB + 01EEFBF1E6D1BF7C3046951657ECCB38FA1487D4A7F990C7493E2E8FD1017155 + 966E49897B52C6F9F17C9C27F7A94F2DD6511EE76D77F335FFD57735171DFADF + 5DF5070080427F37C07734175FFD44F3C447EF4BB3594B6A71D9E76AC7CAB8F6 + 752C313FF06E297FDEE52F80B2AFB548F2CBBEDEE209FF577CD3BF6876ED39D9 + 1B030000C39C3DF3DEE6337FF18F86BC2920B5B87A5FF6B516CA3EE47128C72C + A948E0E886F2679D8F531C7D6A21C591D097714AF4539CEF02D8D95CF3376E6C + CE7FF5DB9B5D3BAFEC8D010080B19C7DBA79FA73FF8FE6C1FFFC27BD419EF49F + 1DF491ACA7B914475FC621C5F938C9E3508E594291B4B1FC2249CFE5E388CB16 + F2E43ECDAF26F8AB2DDFEEDF6FD7FDBD1F6DF61FF8E7CDCE1D5EEF07000013D9 + B9B7D97BE1773497BE666773FAFE3FEB4DE47FA3A73E691B471F097D7E7CDCAF + 6589F9212FBF612776C4699CE25A8B443FF5EDED92AF7C6573E537FDB207FD01 + 00C014C403023FFD173FD43CF9A92FC468448B843FF56D2DE471C8E3508E5922 + 91D4B1BCCA9F6F3E8E388D535CB648ECCBBE6C71D57F6773F5B1AF6B2EBEE6FF + EC0D5DF5070080A939FB74F3D483FF4DF3D09D7FD51B44829F6E05285B24EE65 + 5F6B218F431E8772CC9288E48DE514097B2E1F479CC6292E5B24F7A94F897ED9 + 76AFF4F194FF0BAEF8F5DEC7F6F6C60000C0D4F4FEC67EC52BFF9BE6E2439F69 + 9EF8E8477A13F1377AC8FF764F7349392E8DFAFCA8AF67414512C7F219760247 + 9CC6292E5B4AFA6B6D6D11E0FA37FD5C73DE05FF7D2F060000B6CAEE7D279B03 + AFBBBA397DEF7F1ACCA4BFDD6BDAE673E567468D59027EA8CB67D8891B711AA7 + 386F91E0A73E8F23D94F73FDF1255F794973D5B7FC76B363D7F5BD310000300B + E7CE7EA479E44FBFBB79F253F1AAC0F2768071DE1490B790C7218F43396681D9 + 01B05C2261CFE5E388D338C5A9A5C43E8FFB89FEDAE4BF3F8EFBFD0F7CFD6F37 + 3B77BDA6370600006665C7CECB9A0BAEFABBCDBE0BFFBC79EA91D331D33FB022 + FD7D5F6A9B0FE5FCA8310B4C0160790C3B51234EE314A716897D1ED75A2A04F4 + 93FF78D8DFCE5D97F5C60000C0ACC5EBB65F71D1DF695E71E1ED83224088BFE7 + 4769FB4C393F6ACC825200580EC34ED088D338C5A945729FFAB6B69AFC7FF5DF + F6B03F0000980B8387035E74D5A3CD131FCB1F0ED8261D6FFB5C393F6ACC0252 + 00587CC34ECC88D338C5A945725FF6795B4DFC631CC9FFBE4B7FB617030000F3 + 62CFBE938322C0BDBD51FC5D1F525F1AF778326ACC825100586CC34EC888D338 + C5A9E5497FEAF39627FFFD27FDEFBDD093FE0100601E451160FD1B02DAA4636D + 9F29E7478D59200A008B6BD88918711AA738B53CE94F7D2DF1EF8FAF7FD3BF68 + 76EFFDF65E0C0000CCAB9DBBAF6F0EBCEE50A50890FADCB063A19C1F35664128 + 002CAEFCA42BE3344E716A79D29FFAD45693FED44BFE01006071CCB608C00252 + 00584CF9C957C6699CE2D422A92FFBD424FF0000B00C66570468FB1AE69802C0 + E2693BE9224EE314A716497DD9A79627FFD1764BFE01006081AD1601DE379849 + 221728A5B9DAB150CEE7E3B6AF614E29002C96B6932DE2344E716A79D29FFAD4 + CAE43FAEFCBF5DF20F00000B6EFD4E80247282529AAB1D0BE57C3E6EFB1AE690 + 02C0E2683BC9224EE314A79627FDA94F4DF20F0000CB4C11808202C062683BD9 + F2BED66A897F4AFA532FF907008065355911601C6D5FB7D17F8F195200580CF9 + C994E2BCAFB548F0539F37C93F000074C9E44580B6F9241D1FF539E68C02C0FC + CB4FAA32CE5B88C43E8DF3A43F6F29F18F787773EDB7FD4873DEBEEFEBC50000 + C0B28A22C025AFDDD93C7EDF9FF746E77A2DE510E318F6F97C7E927F936DA000 + 30DFDA4EA688D33812F9D4A7F994EC972D4FFE77355FFDB7BFB379C5C56FEDC5 + 0000C0B2DB7DDE1B9B8BAEFA4CF3C4C73E3298C9738C61E273A908502B06E4E3 + 71FF4DB68102C0FC6A3B89224EE31447429FC7B5B63EF9DF77E9CFF6620000A0 + 2BF6EC3BB9C92240527E5D3E1EF7DF64C61400E653DBC9147D19A79612FD3C4E + 097F8AFBED8A6FF9BAE6A257FF7F7AD37B7B630000A04BF69CF72DCDEE0B3ED0 + 3CF3C8E9C14CA996E8E773493A5633EC18DB4401603EE5274B8AF3BE6C65E29F + 27FDA9EFB7577FDDD5CDC16B7FB7175ED81B0300009DB3736FB3FFE2BFD3CB14 + DED57CF1F3CF0C2647897CA34D3A36EC33CC010580F9939F34655C6B91E0A7BE + 6C6B0B00175FF3CAE6F26FFCB566C7AE2B7B630000A0B3A20870D91B9B179E79 + 57F3C2532F0C264789BC6394FC33E37C9E198AE490F9D176B2449CC679DFD6D6 + 27FFD1AEFCA67FDE4BFEAFEFC5000040D7456E1039429E33ACCD256AB9466A21 + EF531CDA62B659FC60991FB51325FA32CE4FC688CB969FBCBB57FA6BFFDE5B9A + 3DFBFF6FBD180000A06FE7EED73497BC6667F3F8FD7FD61B457E51BBD7BFA6FC + 6C8C99730A00F3233F61529CF7652B93FEBCA50240BF7DD5895B9BFD97FE935E + 0C0000B0D6EEF3BEB939FF2BEE6F9EFCE4270633E3682B1444AE92F7218FD946 + 0A00F3A1EDE488B8D622C94F7D9EF4E7C97FC4BB9B436FFCBAE6A22B7FA937F4 + C47F0000A0EEBC7DB7347BCFFF40F3F4A7E3CD0091DC47BE912B13FEF2784DFE + 99713ECF165300980FE964284F90348E643EF531177DD9CA02C0AEE6E2AB5FD9 + 1CF8BA5F6A76EEF6D03F000060889D7B9BDD171E6DCE4CF450C024150C6A8583 + 72CC365200D87EF90991E2E8CB3892FB3CCE5B4AFAF37877F39ABFF53F37BBF7 + DEDC8B01000086DBB9EB6073FEABBEA239FD91F7F546B52DFEB5B910394A7E2C + C6356DF3CC8802C0F6CA4F8032AEB532F14F2D25FDABEDAB6F7B53B3F7A21FEE + C5000000E3D9B9FBFAE6A22B3FD33CF1B1FB0633E3682B0C2491CB2479CC8C29 + 006CAFB4F8CB13228D23B94FE31497897FEA57DBE5DFFCF5CDC597FF7CEF90FB + FE010080C9ECD9FBC666D7FE3B9A2F7EFAB1C14CA94CF853FE92C4F172AE1CB3 + 0D2279647BD44E80984BF3795FB6BC0890B77E01E092AFFC5F7ADD85BD180000 + 6042BD5C6225A7F8F245C65AEE11AD96AB84BC4F71AE36C70CC40F93D9CB177C + 19D75AED64CB4FC678D77F7FFCBA6FFB1F9B3DAF38D18B01000036269E07F0CA + D75EDC3C7EDFED8399905FF9AF6DFB772BC09C5300D81EB5851F7D8A23A94FE3 + 14E7897FEAD7C657FF17C79AF30F7ADF3F0000B079BBCE3BDCBCE2D2BF689E7A + F0D3839951497FCA67923856CEB18D227964B6F21320C56D73658B9F57EA53EB + 17012E3AF4CAE6822B629B0E0000C074448E11B9469E7BACB63C47295B487D18 + 36C78CC40F8BED512EF618E72DA4B83CC1D6B7CBBFF1879B5D3BBDEF1F000098 + 9EC83122D7A8E520FD56E62BD1428AF3B9A41C332351C16176F2859EE2FC84C8 + 4F9AF2645ABBDD7FB5ED1E6CFDFFC7BD18000060BAFAB7027C70702B40DB7DFE + 1BBD15A06D9E2D100925B3912FECDA224F73D19771590C586D171DBAA4B9E08A + 7FD68B010000B646E41C917BD47292B5394BB450C6A57CAE769C2D103F24B64F + 3A29F216A2AF9D5065DB65EB3F0000B0E5566F05483B93CB56CB6142F465639B + C40F86AD972FF214D7167F9ACB5B7E12E5AD97FC7FF3D736E79DFFDFF6620000 + 80AD15B947E420ED458068B59C2697CFE5C7CACFB105E207C4ECD416753A0186 + B57422E527D6CEE692AFB4F51F0000989D4BAEFEC9DEFF5C9B97ACCD5946B552 + 6D8E2D12951BB656BEA0539C2FFE1497274F59558BF16AFBEABFF3FDCDDEFD7F + BF17030000CCC6CEDD5736175DF3C5E689074E0D66423CE42FB5248F433E4EB9 + 50A96D9E2989C492D9A82DE698CB5BC8C7790160B55D74D52B9B7D17FC3F7B31 + 0000C06C452E1239492D57E9B73CA709F938CDE56A736C81F8E1B075DA16779A + 4F716AB593269FEBB7CBDFD04BFE775DD88B01000066AC978BACE424955C6578 + 6E935AC8E35C6D8E29891F065B6FD8C24E0BBF6CF909B3DABEE2FAAB3DF80F00 + 00D8569193446E52CB59FAAD96E3440BA9CFD5E698B2F8C1B035DA1675BEE8CB + 38B5FCA44971BF1DF85A0FFE030000B65F3F37599BAFACCF67F216DAE25C6D8E + 29881F0A5B6BD8824E0B3E6FF989924E9C7E3B74CBB734BBF77E532F060000D8 + 5E919B448E52E62DF5DC266F21F5B9DA1C53143F10A6AF6D31E78BBD8CF3569E + 3CFDF88257FF0FBD1E0000603EF47394F5B9CBEAB86CA12DCED5E6D8A4F8A1B0 + 75862DE4B4D0F3569E24AB27CF6B6FFD8E66F79EEB7A310000C07C881C257295 + 3C77599FD3E4E3D442EA73B539A6247E184C57DB22CE177919474B27463A69D6 + B67D977AED1F0000307FFAB94A3D8F599BEBA416DAE25C6D8E4D881F045B63D8 + 024E0B3CB5FCC458DF5E7BEBB7373B765ED18B010000E64BE42A91B3D472997E + CB739EBC85D4E76A734C41FC10989EB6C59B2FEE326E6BAB278CABFF0000C03C + 5BBF0BA096E3E42DB4C5B9DA1C1B143F18A66FD8C24D0B3BB57472E427CB6A73 + F51F0000987776012C84F801301D6D8B365FD465DCD6564F1257FF01008045D0 + CF5DD6E633C35B688B73B53936400160FA862DD8B4A0534B27453A41D63657FF + 010080456117C0DC8B6F3E9BD7B658F3C55CC66D6DF50471F51F000058249E05 + 30D7E207C2D62A1772D9F29363B51DBAF98DAEFE0300000B257298C8656A394E + BFD572A26821F56C91F801303DF9C21D16B7B5D513E38257FD77BD1E000060B1 + F47399D5DCA69EFBE42D0C8B9992F861B039C316647E2C2DE2D4D289909F18FD + 76D5375DDFECDEFB4DBD18000060B1442E13394D2DD7599B0BE52DC9E3D2B063 + 8C21BEF14CC7A8855A6BF9C25F8D2F38F40F7A3D0000C062EAE734C3F39EF5AD + CDB0634C400160736A0B315FC0790B292E177D1AEF6C2EBAEAE266CFBEBFD78B + 0100001653E43491DBE4B94E3D078A16F263792BD5E618537CD3D95A69E1B62D + F8BCDFD9BCEA70BC3603000060B1F5739B7E9E53CF8152CBC76CA1F846B37969 + A1E68BB6B680D35C6AF909D06F7B2FFADE5E0F0000B0D8FAB9CD6AAEB33607CA + 5B2E9F2B633629BEF96CCCB005582ED8B6969F083B9A43377FB357FF0100004B + A1FF4AC06F8E68D0D6E63FED2DA4BE66D831865000D8BCDAE22B176E6D9C2FFC + FE8970FE657FBFD70300002C877E8E5326FE791C525C8E4BB5392610DF78A623 + 2DD27C51E673D1D2422F17FFCEE6C22B3DFC0F0000582E91E344AE93F29EE1B9 + 516A496D8E4D886F36931B6701E68B356FE5A2EFB7AFF8DABFD5EB010000964B + 3FD759CD7DEAB951D94619E73314E21BCEC6A545972FD23C4ED25CDED62EF6BD + AFF4F03F000060F9F4739DF65C68B5E5F2B93266831400A6AB5CA06D2D2DF8E8 + 7736977DEDA166D7EED7F562000080E512B94EE43C29FF599B130D6B21F54C41 + 7CD399CCB80BB0B670EBED92ABFF66AF070000584EFD9CA79E0FF55B28C7A38C + FB3906140036AE5CA4218F933457B654FDDAD9ECB9E8DB7A3D0000C072EAE73C + AB39503D478A96CBE7CA980D886F3CD3512ECCB6B676C15FF6B557D9FE0F0000 + 2CB5FE6D0057F5A27A5ED4DE42EAD9240580C98CBBF06A0B365ABEC0FB0BFE92 + 6B4EF47A000080E5D6CF7DCAC43F8F438AD37894713F474F7CB3995CB938431E + 27314E0B3A5FD8AB6DCF85DEFD0F00002CBF7EEEB33E275A9F33E5D267421933 + 210580E9281764DE42DEC7F7BCBFB02FBDCEF67F0000A01B22F7891CA8CC8BFA + F2BE6C21F56C8202C0F8C65D70B5851A2D2DEED5F181D7D8FE0F000074473F07 + 5A9F1BADC6213F368E713FD7790A0093AB2DAEDAE24C73ED6DF7FE6FEAF50000 + 00DDD0CF81EAF9D1DA96ABCD85DA1C4328006C5C5A84F9A2CBE76A6D6DA56BF7 + DEBFD1EB010000BAA19F03B5E748F596D4E6988002C0F4E48B312DC8F6B9AFFC + 2F6DFF070000BAA79F0BADCF9146CFB1490A00E3D9C8822B176CB4F87EF7DB9E + 8BBFB9D7030000744B3F175ACD8DEAB9D3A436F2359D13DF6CC6971655BE2853 + 5C1BB7B73DAF7843AF070000E8967E2E54CF93D6B7D0360EA9670C0A009B532E + BA5ABFBE5D78C5455EFF0700007452E4429113D572A57E0BA37A364001607A62 + 21A616F27E6D3B709DEDFF00004077F573A2F5B9525FDEE7F36C9202C068C316 + 5BDB624CF3F5B6E742AFFF030000BAAB9F13D5F3A5D5566A9B4F861DA3470160 + 7C6931D5165D9A1BA7ED74FF3F0000D069FD9C28F2D15ACED4D672F95C798C16 + 0A001B575B6C6911E62DAC1DBBFF1F0000E8B2D59C686DAEB4769CCF8714E773 + 4C4001603ACA8599C45C5ED5DAD95C75DCFDFF000000FDDC686DBED4EF4BE938 + 9BA400307D6971E68B7435DE7FA9FBFF0100005673A35AEE94CF31250A00C30D + 5B70E5824CE3616D67B36BAFEDFF000000FDDC28DF0130AC25E5B834EC58E729 + 008C272DA2DA62CBE76A9F4B717FBC6B8F02000000C06A6EB436675A1FA73EC5 + 49ED730CA100B031B54556CE45BFB65D70F9C5CD8E9D57F4620000806E8BDC28 + 72A4326FEAB750F6A136C7981400362F165EBE08DBC63B9A4B5EE3EA3F000040 + D2CF91D6E64D7D6D6336410160E3CAC5575B9C6BDBDE8BAEEBF5000000847E8E + 54CF9FFAF23829C78C4901A0DDB045552EC6FCB3B563FDB6679F1D00000000C9 + CEF3E216E9F5B9535FEAC3B063A561C73A4D0160B47C818DB3C8DA3EB7A3D9B9 + FBCA410C0000C09EBD69074029CFAB6AC793713F478F02C0E46A8BAB9C8B7E7D + DBB9F3DA5E0F000040E8E748F5FCA9AFEC436D8E3128006C4E2CB87CF1B58DE3 + 0D0017363B765D1807000000E8891C2972A5327FEA6B1BB3410A00D3575FA497 + BCC603000100004AFD5C697D0EB53A664A140036A65C88E5025DDFEFDA7DD120 + 06000020E9E74AEDB9D46ACB9563C6A00050376C31A5636911B67D76EDF1BD17 + 7903000000406935575A9B43AD571E6FFB5C1876ACB3140086CB17D6388B2B7D + 2EFF6C7FBC7377BCDE02000080B5F2670024699CE6F263A5713FD7790A0093A9 + 2DAA722EEF57630500000080F576BF227600D4F3A87A1F6A738CA000B071B1D0 + DA165B3AB6FA991D2B552D000000EAD6E751EB0D3BC6080A00D3317A91EE3C2F + DE6F090000406ED779DFD8FB9FEDB9D4F05C8B0928004C57BE38F3060000C070 + B55C2A1A53A20030B97201960B73FDF1835F73E520060000A0D4CF996AB956EA + 53CB9563465000D89CB605B77681BEE2320F0004000068B39A33ADCDA5D66B9B + 670C0A00EB0D5B50E958DB82AC7FEDB9A1FF26000040B7B5E74C6D79579A1F96 + 6B0D3BD6490A009B376CE1C5DC8E66F79E0BFA43000000D6E9E74CFDFC69BD61 + 391713500018AD6D11E6F2E3E9F3696E47B3F7C2EB0631000000A57ECEB49A43 + ADCDA9421ED7949FA74201A05DB9786A8B69D4672C40000080F16D24C792878D + 490160726931B52DAA984F0D000080C98CCAA9D2BC9C6B420A001B532EB4618B + 130000808DABE55BF2AF0D5000D8BC510BCFC2040000184D6EB5C51400B6567F + 81EE3AEF752B3D000000157BAE180492FC2DA400305DF9625D8D77ECF21A4000 + 008036BB775F3E88423DAF62D31400A6272DCCE82D58000080C99479541ACBA9 + A64401000000003A40016073F2AA548D4A150000C0F846E55772AC4D50000000 + 00800E5000984C5BB529CDE7C755A60000002657CBABDAF22B79D7041400A62F + 1660B108CF5994000000ADD6E54C95BC8ACD5200000000800E5000000000800E + 5000000000800E5000000000800E5000D8B8711F48E1C115000000A3C9B1B698 + 0200000000748002000000007480020000000074800200000000748002000000 + 0074800200000000748002000000007480020000000074800200000000748002 + 0000000074800200000000748002000000007480020000000074800200000000 + 7480020000000074800200000000748002000000007480020000000074800200 + 0000007480020000000074800200000000748002000000007480020000000074 + 8002000000007480020000000074800200000000748002000000007480020000 + 0000748002000000007480020000000074800200000000748002000000007480 + 0200000000748002000000007480020000000074800200000000748002000000 + 0074800200000000748002000000007480020000000074800200000000748002 + 0000000074800200000000748002000000007480020000000074800200000000 + 7480020000000074800200000000748002000000007480020000000074800200 + 000000748002000000007480020000000074C08E41CFAAF43DC9FBD4A26092FA + 5D599FDAEE4ADBD3BCFE4DBFDAECDA7B432F066875ECA65B9A83070F0E46CCC2 + 73CF3DD73C70DF479A871F7A703003006C8BB32FDCD5DCFBBB3FD08BCEF4DA4B + 9576366B2F67FDB9C138FAD442D9D393925C56A5EF49DEA7A600004CDDFEFDFB + 9B1FFD89B73687AEBE6630C3AC4511E0977EF1E7570A0200C036500098894860 + 01D846DFF5DDDF2BF9DF66D75E777DF30FDEFC43831100C072520000D866876F + F8C641C4763AD2FB39C46E0C008065A50000B0CD249DF3E3F00D6F18440000CB + 47010000068E1CB51B0300585E0A00003010B7011C3878D9600400B05C140000 + 20134500008065A40000009963C76F1E440000CB4501000032F14A46B7010000 + CB480100000A274EDE3A8800009687020000148E781D2000B084140000B6516C + 3767FE1C3878D0CF0600583A0A0000DB68DFFEFD83887973E2E46D8308006039 + 28000040C561AF030400968C0200C036F2B4F9F9B57FFFFEE688220000B04414 + 0000B6D1C183070711F3E8C8510F0304009687020000B43876D3CD2B3B010000 + 96810200C036BAF675D70F22E6D561AF04040096840200000C71E4A8E7000000 + CB410100601B5DE55DF3732F1E04E8618D00C032500000D846EE2F5F0CDE0600 + 002C030500806D72ED75EEFF5F14C78EDF3C88000016970200C03671F57F711C + BAFA1AB70100000B4F0100609B4452C9E2B8F126BB000080C5A60000B04DAE3A + A400B0488E1DBF651001002C260500806D72E0E0C141C422889F975D1B00C022 + 530000D80671FFBF6472F178182000B0C8140000B6C1E11BDE30885824C76E72 + 1B0000B0B8140000B6C191A3DE2BBF8862E7C6911BFCEC0080C5A40000306392 + C8C576E4A8DD1B00C0625200009831DBFF17DBE11BBE71A5880300B068140000 + 66CCF6FFC516C9BF220E00B08814000066C8F6FFE5A08803002C220500801972 + E578394411C76D0000C0A25100009821578E9787570202008B46010060866CFF + 5F1EC78EDF3C88000016830200C08C48FE97CBA1ABAF690E1CBC6C300200987F + 0A000033E2FDF1CB4751070058240A00003312EF8F67B99C3879DB200200987F + 0A000033E0A9F1CBE9C0C1832BB70200002C0205008019B0FD7F7979182000B0 + 28140000B6585CF93F76932471591DB941710700580C0A00005BECB00471A9C5 + 6D001E0608002C020500802D76E4A8E470D9B9C5030058040A00005B28B6FFBB + 3ABCFCBCE1010058040A00005BC8F6FF6EE83FE7E196C10800603E2900006CA1 + 13276F1D442C3BB77A0000F34E0100608B1C38789977C47748DCEA113B010000 + E6950200C01671EF7FF7B8E5030098670A00005BE4D871EFFEEF1AB77C0000F3 + 4C0100600BD8FEDF4DF1338F9F3D00C03C520000D80237DEE4EA7F57B9F50300 + 98570A00005BE0D871AF84EBAA13276F1B440000F345010060CAFADBC00F0E46 + 744DFCECDDFE0100CC2305008029F3F03FAC0100601E2900004CD911AF82EB3C + 6B000098470A00005364FB3F21D6C0B5D75D3F180100CC0705008029F2003892 + 1B3D08120098330A00005374D82BE018B016008079A300003025F1FEF7FDFBF7 + 0F46745DAC8558130000F3420100604A8E1CF5E037D63AE6360000608E280000 + 4C892DDF94EC0A0100E6890200C0141CBBE916891E5587BD12100098130A0000 + 5370E4A8ABFFD4DD78FCE6410400B0BD14000036A9EB0F7B7BEEB9E79A3B3F70 + FB6044E9DAEBAE6F0E1CBC6C300200D83E0A00009BD4F52DDE0FDCF791E67DEF + 7DF760448DB7010000F34001006093BABEFDFF91871F6C1E7EE8C1959D00D41D + 731B0000300714000036C1BBDE9BE6FEFB3EB2D2DF73D787567AD63B74F5352B + 0D00603B2900006C423CFDBFEBE2168070FFFDFD9E3ABB000080EDA60000B009 + 5D4FEA62EB7F72CF5D1F1C44D41CF13A4000609B2900006C503CD9BDEBDBBA1F + 79E8A141D47F1B405E1060AD03070FAEBC11000060BB2800006C9027BBAFDFF6 + 7FCFDD9E0330CC8DC7DD3202006C1F0500800D724F77EC00587BC5FF9407010E + 7558D10800D8460A00001B60FB7F7DCBBFD7010EE7AD1100C076520000D88013 + 276F1D44DD959EFE5FF23AC0E18E1CF5304000607B2800006C8027BA37CD230F + D71FF8E77580C31DBBE9E6959D000000B3A6000030A1D8FA1F4F74EFBAFB5B76 + 00B4ED0C60D561052400601B2800004CC8C3FFFADA12FDC74F3FE67580231C39 + EA390000C0EC2900004CC8F6FFD157F9ED02182E1E04180F9204009825050080 + 09F41337DBFF1F18719FFFA9BB3D0870146F030000664D010060029EE0DED776 + FF7F123B00BC0E7038B7920000B3A600003081C3AEDAAE18678BBFDB0086EB3F + 4CD26D0000C0ECEC1AF4ACDA51E96B2D8A27A91FD6763597BDFEBF6E76EEBEBC + 17030B2CB66CDF78D32D83517745627FE71DB70F46ED2EBEE492E66BBFFE1B06 + 23DAFCF55F7D781001CC5EBC96F4AB5EFBD52B05C9D4A240F94D6F3CD6BCEEBA + EBD7B4987FE9CC99E6E9A79E1A7C354CD1B9B38F368FDDFBEF7BD1CB2DED5C4B + 0BA967844860592B7D4FF23EB548E8531FC593D4A7B6BBD2F634AF7FD3AF36BB + F6DED08B8105F67D6FFEA19577B877DD7FF877EF6CFEE0F7DF3918B58B3F227F + E6ED3F3F1851F3F8E9D3CD4FFEF88F0C4600D31749FBBE5E921F09FCBE7DFB57 + C6E1DADE78A34EDDF5A1E637DFF1CB6EF562BACEBE705773EFEFFE402F3AD36B + 2F55DAD9AC454120F591FC97058250F6F4A4249755E97B92F7A929004047C515 + 92B7BDFD1756FAAEFBB99F7DDBD8DBFB7FA6F73DF3D0C4E1FEE94FBFD56B1381 + A988A43E12FC4387AE69AEBAFAEA2F27FB5B218A00BFF48B8ABC4C9102C04C44 + 020BC008876F7883E47F60927BFB4FDDF5C141449B13276F1B440093895BD3BE + EBBBBFA7F9B19F786BF3CBBFFE5B2B7D8C63B7DA5626FF21FEDB5BFDDF00A64F + 0100600C478E7AF85F98F4C17EA35E1788074B02E38B5BAB4E7CEB6D5F4EF8FF + E10FBF6565BC99EDFC9BB15DFF5D60E3D2367756A5EF49DEA7E61600E8A0B8F2 + FFF3FFF25706A36E1BF7FEFF5CFC91CA70B18D36B6D34272ECA65B9A1BBD2A72 + E53919A7EEFE60A7CF8FB8CA1EAF0D3D72C31BE6EE96AA8DFCFF0468E5168099 + 48492EABD2F724EF535300800E8A3FC4BFEFCD3F381875DB46EE578F2B55AE12 + 0D77E7076E6F7EE31DBF3C18D175714537B671B32A7EEFFCE63B7EA533CFCB88 + 2BFDB1C53E6E119AE7E7A8280030550A003311092C0043D8FEDF174F7BDEC81F + DFA7EE76657B94B80DC03326483C1762BDB80AFEA33FF1D6A5BFE73C92FED8D6 + 1F6F5089229087A802D3A600003044BA0AC3E4F7FF271BFDBA2E89E43F1E3409 + 41D25717E749140196AD5816FFF7FCDD6FFBF695B7A644F2EFFFE7005B490100 + 60087F88ADDAE895FCD83510F7F1329C9D26305A24CBDFF5DDDF3B182DB62830 + 7FDF9B7F68E519337FE7EF7DBBC20F30130A000043C48397E8DBCC957CBB0046 + 8B62D3B25DD964639C2FC3C52BEE16F95C49897F6CF38FFF5B0066490100A045 + FC91E61DC77D7105FFF1D38F0D46938BA778335A3C7012182D1E94B86824FEC0 + 3C5000006861FBFFAA53776D2E817745733C769C101EB8DFF932CADF5CA00725 + C66E05893F302F1400005A7812F7AACD2624F106014580D162C7495C2504868B + A47ADE8BB4F1BF633CDCEF6D6FFF05893F30371400002AFA8998073225A7EEDA + FCABFCBC0E703C374A143AEF7EC5B2B11C393ABF6FCE88DB7922F18F87FB79B6 + 07304F1400002A6CC55E358DE43FD801309E63C73D0700C671780E77005C7BDD + F5CD4FFD93B735DFF7E61F94F80373490100A0E28877B27FD9B4EE47F63AC0F1 + C4CE130F9FEC36E7C97822C19E977325FE7789FBFC7FEC27DEEAFC05E69A0200 + 40C1F6FFB5A6B50320D805301E3B50BA6D336FDCE89AB8E2BEDDE28D04EEF307 + 168502004041F2B56AB3AFFF2B791DE078BC0E10C673EDEBB6AF0010C5E2D8EE + FF5DDFFD3DB6FB030B430100A020F95AB5D9D7FF95EC00184F24135E43D96DCE + 95F16CD776FB78BA7F24FFB6FB038B460100201349972B39ABEEBCE3F641341D + F13AC069DE52B0CCE6F909E7302FE276AD59BE3A335DF58FA7FB032C22050080 + 8CA46B5524EBF1E0BE699BD64305975D3CE15C31AABBE2FC633C87AEBE7A106D + ADB8D7DF557F60D129000064E6F1B552DBE59E2DBA526F07C07822F93FEC6D14 + 9DF5C8C3D32FBE2DABAD4EC8E35C8CA7FBC7BDFE008B4E010060C0F6FFB5B6EA + 817DF150C1ADD859B08C8E1C55908251AE3AB4750580F8FF0BF184FF7978DB00 + C0342800000CD8FEBF6AABEFD5F780B3F1284A75975B00C6B7553B00E28AFF3F + FCE1B7380781A5A20000D0137FE07987F3AAAD4ED0A7FD70C165E636806EB24B + 667CF120C0694A5BFEE39E7F8065A30000D023C95AEBD4DD5B7B9F7E24378F9F + 3E3D1831CC8993B70E22A0CDB4B6E8C76E025BFE8165A60000D0E35EEBB5EEB9 + 6B6BEEFFCFB90D603C9190CCF23567B088A6B14DFFD84DB7AC3CE5DF967F6099 + 2900009D177FECC5BDD6F4C5BDFFB3B8FF78AB1E32B88CACCFEEB14366329B7D + 0E40DCEFFF7D6FFEC1C10860792900009D67FBFF5A5BBDFD3F9955A161199C38 + E95EE4AE89B76530BE030736B64B260AC0F1A03FF7FB035DA10000749E7BACD7 + 9AE5D67CB7018C271E72B6D5EF3A8745B691070146F2FFA33FF1563B6C804E51 + 00003A2DEEAD9658ADEA3F9C6F76571E67B5DB60191C3BEE2D15302DF17B3F92 + 7FBFFF81AE5100003ACD959FB566FD7ABE593C6C70591C71AB0AB49AE4A9FD92 + 7FA0CB1400804E735575ADB82F7F96E21900B3FE6F2EAAD8E2AC60D52DB12387 + E94AC9BF27FD035DA500007496EDFF6BC553C7B7E3C1636E0318DF91A3760174 + C9F31E923955927F000500A0C36EBCC9D5FFDCA96DDA8EEF4180E33B6C0700B4 + 1A56D08DDD33927F000500A0C38E1DBF651011667DFF7F12BB0E6C751E4F242F + C76EB26EA1665F4B721FC97FBCEA4FF20FA0000074545C29DAC86BA39655DC8B + BF9D49F876151F16D191A37601C0B8E277FD3F78F30F0D46002800009DE4E17F + 6BDDB3CD0FE2F320C0F1C5D54C57326134F7FC03ACA70000749257AAAD75EAEE + ED7D1D9FDB002673D8FA8575F2670048FE01EA140080CEB1FD7FBD79B802EF36 + 80F19D3879EB20029294EC4BFE01DA2900009D73E2E46D8388302FDBEFBD0D60 + 7CFD22D6658311CBEA81FB9D13938AA4FF1FBCF90725FF002D140080CEF12AB5 + B5E6E53DFC710BC0E3A74F0F468C12CF020056EDDBB77FE5CA7F7E2B00006B29 + 00009DE2016AEBDD73D7F6DEFF9F3B3547FFBBCC3B0FB284B54E7CEB6D927F80 + 111400804E3972D4C3D37271D53D5E01382F3C07607C91E84876008049280000 + 9D62FBFF5AF39670BB0D603276010000935000003AE3D84DB7D8FE5F98C7F7EF + BB0D607C5E6709004C420100E88C23475DFDCFC595F678FFFEBCF1E4F3F1C5EB + 2CAFBDEEFAC1080060380500A013E2CABFA7A6AF35AF57DA6357C23C3D9760DE + DD78FC96410400309C0200D009876D955E679E1FB877CF1CDE9A30AF3CD70200 + 18970200D009B6FFAF1557D8E3817BF3EAD4DD9E03302EBB5B0080712900004B + 4F82B4DEBC5F619FC78713CEB3636E030000C6A000002CBD78FA3F6B2DC21576 + 4580F14581CB1B2E008051140080A5E75DE9EB2D42727DEA6E05804978CEC5F2 + 99E7DB7400584C0A00C0523B70F0B2E6D0D5D70C468445B9B27ECF9CBEA5605E + DDA8D0B574BC0D038069530000969A7BFFD75B942BEB91FC3C70DF47062346B9 + F6BAEB570A5E00006D140080A566FBFF7A8B7465DD6D009351F0020086510000 + 9696EDFFEBC53DC58BB4ADD8830027A3E005000CA300002CAD13276F1D442477 + DE71FB205A0C8F9F7ECC83D02610052FB70100006D140080A575C453D1D759C4 + 2BEAF7B80D60220A5F00401B05006029F5AF841E1C8C088F9F3EBD72457DD1B8 + 0D60320A5F00401B05006029B9177ABD530BFA5ABDB805208A178C270A5F9E7D + B11C9EF71A4000A64C0100584AAE82AEB768F7FFE716B578B15D4E9CBC6D10B1 + C83CFF028069530000964EBC0ACDF6FFB5E20AFA2227135E073899C35E070800 + 542800004BE7C85157FF4B0FDCF79141B498E27FFF457A7DE176DBBF7FFF4A21 + 0C0020A700002C1D573FD73B75F7E26FA1BFC7C30027A210060094140080A512 + 573DE3EA27ABE2CAF9323C497F198A18B374ECA69B9D0B00C01A0A00C05271D5 + 73BD65B972EE7580933BEC61980040460100581A71B5D3F6FFF5EEBF7FB1EFFF + CF29024CE6C851E70300B04A0100581A71B5D396E7F5EE59A257E8791BC064FA + 6FC4B86C300200BA4E0100581AAE76AE1757CC97E9E9F9CB54CC98156F030000 + 120500602978ED59DDB25D315F96071ACED2B1E3370F2216D1C30F3D38880060 + F3140080A5E0616775F1FEFC65E33680C91CBAFA1AB7012CB0E79768070F00DB + 4F0100580AB6FFAF17570E1F3FFDD860B43CDC0630B913276F1D440040972900 + 000B2FAE6EDAFEBFDE9D77DC3E88964BDC06605BF4648ED8210300F42800000B + 4FF25FB7CCF7CA2F6B7163AB1C387870E5560080695AA687CC42572800000BCF + 43CED65BD6EDFFC9323EDB60AB394F8069F35056583C0A00C0428BEDFFAE6CAE + B7EC0972BFC0717A30621CC76EBA6510016CDE6FBCE35796BAD00CCB6AC7A067 + 55FA9EE47D6A513049FDAEAC4F6D77A5ED695EFFA65F6D76EDBDA117035376E2 + 5B6F6BBEEBBBBF673022F9A73FFDD6A5BF4F3E7EEEF1F3677CBFF48B3FEF8ADD + 82F9B19F786B73ED75D70F4630BEF8FF01F95B241EB87F6385E103072E5BB98D + 28AC145F1F3FBDF27B44F2CFD49D7DE1AEE6DEDFFD815E74A6D75EAAB4B3597B + 39EBCF657D6AA1ECE949492EABD2F724EF5353008039F3336FFF852FFF61425F + 5C19FFC91FFF91C16879C5B31FFEE10FBF6530621C777EE0F6E637DEF1CB8311 + 8B4001809AB8F7FE915E32BE92E43FDF7F306ACCC5EF7F89390B4B0160265292 + CBAAF43DC9FBD41400608EC4D6FF9FFA276F1B8C48DEF79E7737BFF3DBBF3518 + 2DB79FFF97BFD2ECDFBF7F3062944810DEFAE33FE2C15D0B440180B8A52B12FC + 871F7E6825B9F70C14969602C04C44020BB0903CD4AC6EA3DB3C17913F842713 + C592C35E0908732B12FDFE4E9D5F59B995EB87BEFF7B9A9FFBD9B7AD1475EFFC + C0FBFDCE03364D01005858DE6D5ED7A53F104FDDED7EF6491D39EAB599302F22 + E18F5D5BF17C8EB7FC773FB892F4C76D3A91ECC731806953000016526CFF77EF + FF7A91FC77697BF73D777D701031AE787682DB26607BC43DFA71853F4FF8E3EA + 7E3C54CFAD39C02C2800000BC9F6FFBAAE5D118F3F986D899D9C5702C2ECC495 + FCFFF0EFDEB992ECC7035AE30ABF841FD82E0A00C04292C0D4753119761BC0E4 + 14D0606B45D21F57F67FF2C7DFB292F8FFC1EFBFD3967E602E2800000BC716E6 + BAD85ADAC53F30BDD77E72FD5B682E1B8C806988DFC179D21FF7F67B251F306F + 1400808573E4A887FFD574752B7CFC81EDCADAE46EBCC92E00D8ACD8C61F897E + DADE2FE907E69D0200B0700EDFE029E635A7EEEEEE03F1EE711BC0C48E1D771B + 0D6C54145CE3557DF120BFB8EAAF08092C0A050060A1D8FEDFAECB0FC3731BC0 + E4E22D1A712B00309EB8DA1F4FF08F2DFEF16EFE78551FC0A2510000168AEDFF + 7591FC77F989D271F52DEEBF65321E0608A3A57BFBDF3A7882BF2DFEC0225300 + 0016465CF93FE6BEE52A4FC28F5D00DDBD0562A3BC4D03DA45E21FDBFCD3BDFD + 5EDB072C03050060611CBEC1D5FF365DDEFE9FDC79C7ED83887145512D6EAB01 + 56E589BF6DFEC0B251000016C691A312959AF863D503A8FAB701B8423739B7D5 + 409FC41FE80205006021B852D9CED6F755F77818E0C4BC5583AE93F8035DA200 + 002C04DBFFDB3D70BFEDFF49975F85B851FD676B781600DD23F107BA48010058 + 08274EDE3A88C8C59677AFC05B15DF0BB7014CCEED357449FC8EF80FFFEE9DCD + 3FFDE99F94F8039DA30000CCBD03072FF3BEF2161EFEB79EDB002617B7D7C44E + 0058765124FCA73FFDD6E60F7EFF9D8A85402729000073CFBDFFEDBCFE6F3DB7 + 016C8CDB6C5866B1DDFFE77EF66DCD2FFDE2CFF762EFF107BA4B0100987BC78E + 7BF77F9B7B3C00701DB7016C8CDB6C5856777EE0F695EDFE764C0128000073CE + F6FF765E7BD7CE6D00938BF32CCE375816F1FB311EF2F71BEFF865BF2B010614 + 0080B976E34DAEFEB7B9F38EDB071125B7016C8CDB6D581691F0FFAF3FFB360F + F9032828000073EDD871AF276BE3E9FFED6CF5DD9813276F1B44B0B86277543C + E82F7A00D6520000E6567F4BF2C1C1885CFC61EB4156EDE2EA9F02C9E4E27C73 + CB0D8BEE37DFF12B7E3F02B4500000E69687FFB573857BB43BEFB0F577239C77 + 2C3A57FE01DA29000073EB88D792B572FFFF68DE06B031CE3B00585E0A00C05C + B2FDBF5DBCCFDA15AEF1781BC0E4E2BCF3304000584E0A00C05CF230B276A7BC + FB7F6CDE06B031478EDA050000CB480100984B875D816C75EA6E57B5C7E53680 + 8D71FE01C072520000E64E6C3FDEBF7FFF60442E92590F009C8CDB002617E79F + DB000060F928000073C7F6E37692D9C9B90D60638E1DBF65100100CB42010098 + 3BB61FB793CC4ECE6D001B63270E002C1F050060AE1CBBE91649478B48622399 + 6572764E6CCC61AF040480A5A20000CC9523475DFD6F2389DD383B2736E6C6E3 + 370F2200601928000073C383C78693C46E9CDB0036E6DAEBAE6F0E1CBC6C3002 + 00169D020030376C376E67FBFFE6D941B1318A7200B03C140080B961FB7F3BC9 + EBE6D941B131C7DC0600004B430100980BB6FF0F2779DDBC07EEFBC820621287 + AEBE66A501008B4F0100980BF1F47FEA6CFF9F0EDFC78DB30B00009683020030 + 172418ED6CFF9F9E5377FB5E6EC411CFE70080A5A000006CBB78CAB82DC6ED6C + FF9F9E7BEEF2BDDC8803070FAEBC110000586C0A00C0B673EF7F3BDBD6A72BBE + 9F9E05B031371E779B0E002C3A050060DBD9FEDFCEF6FFE9731BC0C61C56A803 + 8085A700006C2BDBFF87FB933BDE3F8898163B2A36C69B3A0060F1290000DBEA + C4C95B0711A5C74F9FB65D7D0B3C7EFAB195EF2D933BE636000058680A00C0B6 + F274F176A73CB06ECBF8DE6E4CEC00889D0000C062520000B64D6CFD8FA78B53 + 77E71DB70F22A6CD730036EEB0A21D002C2C050060DB78F85FBBD8A2FEF0430F + 0E464C5BDC5A116F046072478E7A0E00002CAA1D839E55E97B92F7A945C124F5 + BBB23EB5DD95B6A779FD9B7EB5D9B5F7865E0C647EE6EDBF6007408B3B3F70BB + 07006EB1EFFAEEEFF100CA0DFAC91F7FCBCAB314D87A3FF6136F6DAEBDEEFAC1 + 8871FCD0F77FCF200216CAD917EE6AEEFDDD1FE845677AEDA54A3B9BB597B3FE + 5CD6A716CA9E9E94E4B22A7D4FF23E3505009892B897F81FFEF05B06236091FC + CE6FFF56F3BEF7BC7B30622B29004C4E0100169402C04C44020B3073478EBA8F + 181695DB77006031290000DBE2B0F789C3C2EA3FC0F3B2C1080058140A00C0CC + 7995182CBE13276F1D4400C0A250000066CEF67F587C47BC0E1000168E020030 + 5371E5DFF67F587CF1060F6F510080C5A20000CCD4E11BDE60FB3F2C8913276F + 1B4400C02250000066EAC85157FF6159D8CD03008B4501009899B8F21F0F0004 + 9683731A00168B02003033B1FD1F582E1EEA09008B4301009819DBFF61F91CBB + E966CFF5008005A10000CCC4818397D92A0C4BCAEE1E00580C0A00C04C48FE61 + 79D9DD03008B410100988963C76F1E44C0B289025FECF20100E69B0200B0E522 + 313874F5358311B08CECF20180F9A700006C3989012C3FBB7C0060FE2900005B + EEC4C9DB0611B0AC62978FDB000060BE2900005BAA9F141C1C8C806576E34D76 + 0100C03C530000B6946DC1D01DC78EDF3288008079A400006CA923DE0F0E9D11 + BB7D3CF01300E6970200B0656CFF87EEB1EB0700E6970200B0652402D03DC76E + 721B0000CC2B050060CB4804A07BF6EFDFEFD59F0030A71400802D1109402402 + 40F71C39EAD91F00308F1400802D210180EE3AAC00080073490100D812910000 + DD14C9FF616F000180B9A300004C9DEDFFC091A38A8000306F140080A9B3FD1F + 50080480F9A300004C55FCC17FEC26AFFF03BC090400E68D02003055EEFB0592 + 63C7150301609E28000053E5BE5F203974F535CD8183970D4600C076530000A6 + 26B6FFC77DBF0089DF0900303F140080A9B1FD1F289D3879DB200200B69B0200 + 3035274EDE3A8800FA0E1C3CB8722B0000B0FD140080A988FB7CFD910FD47818 + 2000CC070500602ADCE70BB439E2F62000980B0A00C054B8C207B489DB001409 + 0160FB2900009B66FB3F30CA91A3760100C07653000036EDC69B5CFD07863B6C + 0700006C3B050060D38E1DBF651001D4EDDFBFBF397693DF1500B09D1400804D + 89ADFF717F2FC028478EDA050000DB490100D8140FFF03C6150F028C9D0000C0 + F650000036C5EBBD80491CF63B0300B68D0200B061B6FF03933A71F2D6410400 + CC9A0200B061274EDE368800C6D32F1C5E36180100B3A400006C98D77A011B11 + CF020000664F0100D8100FF30236CAEE2100D81E0A00C0861C39EA415EC0C6C4 + B343E256000060B61400800DB1FD1FD80CAF100580D95300002676ECA65B6CFF + 0736C52B440160F6140080891D39EAEA3FB039711BC0B5D75D3F180100B3A000 + 004C24AEFC7B8237300D371EBF65100100B3A000004CE4B06DBBC09478960800 + CC9602003011DBFF8169B1A30800664B0100189B3FD681693BE6360000981905 + 00606CF1F47F80698AA2A2B78A00C06C28000063F3DE6E602B78B60800CC8602 + 00309603072F6B0E5D7DCD6004303D372A2E02C04C2800006371EF3FB055AEBD + EEFA95222300B0B5140080B1D8FE0F6C25454600D87A0A00C048B6FF035B4D91 + 1100B69E020030D28993B70E2280AD114546854600D85A0A00C048473CA11B98 + 01BB0000606B29000043C515B903070F0E46005B47B11100B696020030942B72 + C0AC44B131DE0800006C0D0500602857E48059BAF1F82D83080098360500A055 + BC96CBF67F60960E7B1D20006C190500A0D591A3AEFE03B3B57FFFFE95E22300 + 307D0A00402B57E280EDA0F808005B430100A88A2B7071250E60D68EDD74B3DF + 3F00B005760C7A56A5EF49DEA7160593D4EFCAFAD47657DA9EE6F56FFAD566D7 + DE1B7A312C8CEF7BF30FADFC11CE680FDCF791E6E77EF66D83115D164FB0FFB1 + 9F78EB60C466FCC63B7EA5B9F303EF1F8CBA2BD69337234CE687BEFF7B0611B0 + 50CEBE705773EFEFFE402F3AD36B2F55DAD9ACBD9CF5E7B23EB550F6F4D80100 + AC1357DE6CFF1FDFA9BB3F3488E8BA28063D7EFAF460C4661C39EA7710004C9B + 0200B0CEE11BDE60FBED044EDDA500C0AA53777D7010B119FDB7905C36180100 + D3A00000ACE3CADBF81E7EE8C1E6F1D38F0D46D03477DE71FB2062B3BC0D0000 + A64B010058C32BB82623D9A3D42F0AB90D601A8E1DF71C120098260500608DD8 + FECFF86CFFA7C66D00D371E8EA6BDC06000053A40000AC61FBFFF86CFFA78D9D + 21D373E2E4AD830800D82C0500E0CBE24A9BEDFFE3BBC7D3FF69E13680E93962 + 5712004C8D0200F06592FFC9D8FECF306E03988E03070FAEDC0A00006C9E0200 + F0651EB835BEB8BA1B5779A1CDFBDEFB478388CD3A71F2B64104006C860200B0 + 22B6FFBBCA363E577719259E0FA148341D87ED4E0280A950000056D8FE3F190F + 79631CD6C974783D29004C870200B0C216DBF1D9FECFB83C27627A8E1CF53040 + 00D82C050060F0AEED838311A3D8FECFB8DC06303D711B40EC040000364E0100 + F0F0BF09D9D6CD24AC97E988E4FFB0570202C0A6280000DEB33D81E79E7BCE15 + 5D26E23680E93972D473000060331400A0E36CFF9FCC3D923926E43680E98907 + 01BA0D0000364E01003ACEF6FFC99CBADBFDFF4CEE7DEFFDA341C4661DBBE996 + 4104004C4A01003ACE1FD3E38BEDFFB673B311F77870E4D4285A02C0C6290040 + 87D94E3B19DBFFD928C5A3E9E9DFB674D96004004C4201003ACC7BB52763FB3F + 9B71EA6E058069B9F126BB000060231400A0C3E2BDDA8CC7155C36CB6D00D373 + ECB85B970060231400A0A36CFF9FCC03F77D6410C1C628224D4FBCB9246E0500 + 0026A300001D65FBFF646CDF661AACA3E9F1304000989C020074505CF93FE61E + DA89D8BECD345847D3E30D260030390500E8A0C337B8FA3F89D8B61DDBB761B3 + DC06303D51C88C5B990080F1290040071D39EA8FE649D8B6CD34DD79C7FB0711 + 9BE5562600988C0200748CAB6693B36D9B69B2A3647AE24D261E660A00E35300 + 808EB1FD7F329235B6C23D6E03988A48FEFD4E0380F1290040C79C3879EB2062 + 1CB6FFB3154EDD6D57C9B4B8A50900C6A700001D72E0E065DE9D3DA107EEFBC8 + 2082E9B1B3647AE29626B70100C0781400A043DCFB3F99871F7AB079FCF46383 + 114C97DB00A6C76D0000301E0500E89063C7BDFB7F1277DE71FB2082E9731BC0 + F4B8B50900C6A300001D61FBFFE4BCAF9DADE43680E989DF6DF13B0E00184E01 + 003AE2C69B5CFD9F84EDFFCC82DB00A6C72D4E00309A020074C4B1E3B70C22C6 + 61FB3FB3F0BEF7BE7B10B159274EDE36880080360A00D001FDEDB1070723C661 + FB3FB3D0DF69727A306233E2779CDB9C0060380500E8000FFF9B4C2464B6FF33 + 2BA7EEF230C069F1BB0E00865300800E38E21559139190314B6E37991EBFEB00 + 603805005872B6FF4F4E42C62CB90D607AE2779D870102403B050058721E8C35 + 9948C422218359B2EB647A8E1CB50B0000DA2800C0923BEC6AD84424626C07BB + 4EA6C7EF3C0068A700004B2CB6C2EEDFBF7F30621C1231B683DB00A6277EE71D + BBC96B4F01A04601009698ADB093B1FD9FEDF4BEF7BE7B10B159478EDA050000 + 350A00B0C46C859D8CEDFF6CA753777D6810B159763F01409D02002CA9D802EB + 0FE0C93C70FF470611CCDEE3A71FB303658A0E7B252000ACA300004BCA16D8C9 + 3CF7DC73AEC0B2ED3C83627A4E9CBC751001008902002CA1B8F2EF5DD893B947 + F2CF1C50849A9E43575FD31C3878D96004000405005842B6BE4EEED4DDEEFF67 + FBB90D60BA144201602D05005842B6FF4FC6F67FE689DB00A6E7D8F19B071100 + 10140060C9D8FE3F39DBFF99278A51D313B701440300FA140060C9C4D3FF998C + EDFFCC93B80DE081FBBC91625AEC020080550A00B064FCB13B39C916F3E64FDC + 063035473C130500BE4C010096483CF1DA76D7C9C476EB780600CC937BEEB22B + 655A0E1C3CD85C7BDDF5831100749B02002C11F7FE4FEED4DDEEB766FE7830E5 + 74DD78DCAD51001014006089D8FE3F39575A99578A53D37358711400562800C0 + 92B0FD7F72B6FF33CF14A7A6C7DB5100A04F010096C48993B70E22C6E50A2BF3 + CC6D00D375CC6D0000A00000CBC293AE27E70A2BF34E916A7A620740EC040080 + 2E53008025105BFFE349D78C2F5EFD67FB3FF34E916ABA0E2B9402D0710A00B0 + 043CFC6F72AEACB208A24875E7076E1F8CD8AC1BFDAE04A0E314006009D8FE3F + 39F756B3284EDD6D17C0B45C7BDDF52B0F4C0580AE5200800517F7B5DAFE3F99 + 871F7AB079FCF4638311CC376FAB982E6F0300A0CB140060C11D39EAEAFFA4EE + BCC3966A16CB3D76AC4C8D5BA600E83205005870875DCD9A98EDFF2C1AB7014C + 4FFFA1A96E0300A09B1400608179ADD5E46CFF6711B90D60BA4E9CBC75100140 + B72800C002B3FD7F72F778FA3F0BCA6D00D3E3C1A900749502002CA8B8F26FFB + FFE46CFF6751B90D607AE2C1A9712B0000748D02002CA8C337BCC1F6FF093D7E + FAF4CA2D00B088DC06305D274EDE368800A03B140060411D39EAEAFFA44EDDE5 + 0A2A8BEDCE0FBC7F10B159765001D0450A00B080E2CABF77594FCEEBFF5874D6 + F0F4F83D0A40172900C0028AEDFF4CC6F67F9641FF2D16A7072336CB835401E8 + 1A05005840B6FF4FCEF67F9685B53C3DC76EBAD9B35400E81405005830070E5E + 66DBEA06D83ACDB2B096A7CB8E2A00BA440100168CE47F72F1E474DBFF59166E + 03982E3BAA00E81205005830C78EDF3C8818D73DDEFDCF92711BC0F444513576 + 560140172800C002893F520F5D7DCD60C4B84EDD2D5962B9B80D60BAECAC02A0 + 2B14006081F8237572B1FDFF941D002C99B80DC06D2DD3636715005DA100000B + E4C4C9DB0611E3B2FD9F656517C0F4C4CE2AB70100D0050A00B020FA7FA01E1C + 8C1897EDFF2C2B3B5BA6EBC4C95B0711002C2F05005810B6A84ECEF67F96D9E3 + A71F731BC0141DF13A40003A40010016843F4E27F7C07D1F1944B09CDC06303D + B1C3CA43560158760A00B000E2DE54DBFF2777EA6E57FF596E76B84C979D5600 + 2C3B0500580092FF8DB9C7BBD259726E03982E3B0016DFE3A74F0F22006A1400 + 80A5145746E31900B0ECDC06303DF3F82600BFC72613453100DA2900C00278DE + 1F8013893F987FE7B77F6B3082E576E707DE2F499C92E79E7B7610CD8F3BEF78 + FF20621C7600000CA700000B20B6F8DAE63B9E94FCBB0A4457C49AFF5F7FF66D + 8A0053F0C8430F0DA2F911BB99EEFC805D1EE3FA837FF7CE410440CDAE41CFAA + 1D95BED6A27892FA616D5773D9EBFFEB66E7EECB7B316CD85FFFD55FAE6C4F7D + F5E5570C6628C51FCABFF98E5F69FEFA2F3F3C98816E78FAA9A79A7BFFEAC32B + BF1FE6711BFB228824FB777EFB5F3767CE9C19CCCC8F78A0E98EDE5F1C575D7D + 4DB367CF9EC12CB92892FFEAFFFE2F9B4714CB61719D3BFB68F3D8BDFFBE17BD + DCD2CEB5B4907A46880496B5D2F724EF538B843EF5513C497D6ABB2B6D4FF3FA + 37FD6AB36BEF0DBD18A6221E54B56FFFFEC188E0957FD0B7BFF7BB211245C613 + B7582DD20E2BBFFFD7F3FB1F96C4D917EE6AEEFDDD1FE84551897DA9D2CE662D + 0A02A98FE4BF2C1084B2A72725B9AC4ADF93BC4F4D0100000060DA1400662212 + 5800000060C92900000000400728000000004007280000000040072800000000 + 4007280000000040072800000000400728000000004007280000000040072800 + 0000004007280000000040072800000000400728000000004007280000000040 + 0728000000004007280000000040072800000000400728000000004007280000 + 0000400728000000004007280000000040072800000000400728000000004007 + 2800000000400728000000004007280000000040072800000000400728000000 + 0040072800000000400728000000004007280000000040072800000000400728 + 0000000040072800000000400728000000004007280000000040072800000000 + 4007280000000040072800000000400728000000004007280000000040072800 + 0000004007280000000040072800000000400728000000004007280000000040 + 0728000000004007280000000040072800000000400728000000004007280000 + 0000400728000000004007280000000040072800000000400728000000004007 + 2800000000400728000000004007280000000040072800000000400728000000 + 0040072800000000400728000000004007280000000040072800000000400728 + 0000000040072800000000400728000000004007280000000040072800000000 + 4007280000000040072800000000400728000000004007280000000040072800 + 0000004007280000000040072800000000400728000000004007280000000040 + 0728000000004007280000000040072800000000400728000000004007280000 + 0000400728000000004007280000000040072800000000400728000000004007 + 2800000000400728000000004007280000000040072800000000400728000000 + 004007280000000040072800000000400728006CDCB9413FCAB89F030000E832 + 39D61653009885732F3F338800000028C9996642016016CE7CE9814104000040 + 49CE34130A00000000D0010A00000000D0010A00D3170FA4281E4AE1DB0C0000 + D06E5DCE54C9ABD82C99E964DA16609ACF8F5BAC00000093ABE5556DF995BC6B + 020A00B370E6E9FB07110000002539D34C28006C4E549B86559CFAC75E7AF18B + 2B3D000000EBADE64CA3F2AB61C7194101000000003A4001607A5225AAAC4A9D + 6BBE74FA338318000080523F675A9B47AD8EF37936410160BACA05DBF7F8C71E + 1D4400000094D6E64CF5BC8A4D5300D85A69B15AB4000000EDE44E33A000B079 + A31668FFF8CB673EBAD2030000B0EAEC0B770DA2F1722B364C016063CA8517E3 + 618BF15C73EEE56706310000006B0DCFA7D61F1FF6795A28004C2E2DB4B60597 + 16E7DAE367CF780E00000040E9EC971E1844493DA75A95E6DB8ED34201A05DB9 + 986A8B6BD46756C7675F5200000000289D3DF7C54114C6CFB1568DF3197A1400 + 468BC5336A01E5C7D3E7D35C3F7EF1E9B2AA050000403F575A9F43AD8E431ED7 + 949FA7420160F3D222AB2DB6D545F8D219CF0000000028ADE64AABF9D35A69AE + 768C092800AC376C51E50BAFF6B9B6AF3DD73CF5493B000000004AFD5CA93D97 + 5A2FCFC7DABE2E0C3BD6490A009BD3B6A0D2825C3DFEECE79E6ECEADB9B70500 + 00A0DB22478A5C69D5FA5C6AADB679C6A00030B972C1950BB4ED78D3BCFCA25D + 00000000C96A8E94E754491AA7636DC7199302C074E50B336FE19C5701020000 + 645E7CE1A3BDFFB99A33D51B53A200301DA31667FFD84B5F8AC50D00004038F7 + 625C241D9D4BB51F67020A001B37EE225DFDCCF34FDD3F88000000589B23D5F3 + A8B5861D63040580C9A485962FB8722EEFD7C64F7DC20E00000080A49F23ADCF + 9DFADAFA509B63040580E1F245356C61959FCB3FBB3AF7ECE79F6ECE790E0000 + 00C04A6E1439529E33AD2AE7F263A5713FD7790A0075A31657EA53ABA91D3FD7 + 9C396B17000000403F375A9B2FADCFA172E5F1B6CF8561C73A4B016063CAC594 + 16619AAFF5FDF8650F02040000C872A3D57CA9DEE7C79372CC181400A6AF5CA0 + F9F85CF3ECE90FC524000040A7F573A3B5F9525F39664A14003667D822CDC7AB + 739FF93305000000807E6E343C7FAA8FD9200580C9E58B2F29E7A26F6F2F9F71 + 1B000000D05DFD9CA89E2FADB650F6A136C718140046CB17D7B00536EA7369FE + 5CF3C2F377ADCC00000074513F275ACD91D6CBE76BC793713F478F0240BB518B + 2CF5A925B563796B9A17BFA00000000074D76A4E54CB99A285D48761C74AC38E + 759A02C0C6958BAA5C8CEDEDF1071400000080EEEAE744F57C69B5853C4ECA31 + 635200D8BCDAE2AC8D57E79EFDFCD39E030000007452E4429113E539D2DA16DA + C66C8202C0C6E48B3029E7A22FDBCB5F8E3D07000000E8A2B5F7FFAFE6486B5B + 28FB509B634C0A00E3C91759B9D0F2B9DAE752BC76EC390000004017F573A1F5 + 39D2FA71A8CD25B5CF318402C070C31651BED8421A0F6BABD5AD873EF07FF57A + 0000806EE9E742EB73A4E12D29C7A561C73A4F0160FAD282CC17662D3ED7BCF8 + ECFB5766000000BAA09F03ADE6447DB5389F634A1400A6A36D71C65C5ED18A78 + 75FCD27377F77A0000806EE8E740F5FC68352EA5E36C9202C0C6A505982FC4B4 + 30F316EAE32F7CCC6D0000004077F473A0F5B9517D9CCF8714E7734C4001607C + F9622B175C9A1BA7AD56B99EF8C467BC0E100000E884C87D22072AF3A2F15B2E + 9F2B8FD1420160B4618B295F74B9343FBA7DE9C977F57A000080E5D6CF7DEA79 + 51BD95DAE69361C7E85100989EB418D3A2CBFB5AEB57BBBEF0310F0204000096 + 5F3FF759CD85EA2DE47D3ECF2629006C4E6D8196FDB0F6B2DB00000080A5B7BA + FD7F9C6DFF6154CF0628004C265F74655C1B8FD35E761B000000B0D4FA39CFA4 + F7FC470B6DE3907AC6A000309E8D2CAAB428F3160B3E6FFD79B701000000CB6C + 75FB7F7B5EB4B64D6A235FD3390A00D3535BB0E3CC791B000000B0BCD63EFDBF + 6C61DC3936490160E36A8B319FABB5B2BAB55AF57AF6B17FD3EB010000964B3F + D759CD7DD6E744F9B8D692DA1C135000985C6DB1D516619A1BAF3DF6D77FDCEB + 010000964B3FD7A9E741ED2D579B0BB53986500018DFB88B2B2DCEF4F9140FAF + 743DFBF9679A179FF98FBD1800006039448E13B94E9EFB0CCF8D427E6C1CE37E + AEF31400A6A3B650530B791F8B3B2DF014F7DB339FFDC35E0F0000B01CFA39CE + DABC677D5E14F2BE6C21F56C8202C0C6E48BB0162731CE1778FA4CBD7DE6CFEF + 6ACE9DFD6C2F060000586C91DB448E53E63DEB5B9933E5D267421933210580C9 + 8CBBC8D2C2CC1767B4BC081071DEFAF3CF3FF13BBD1E000060B1F5739BE1F9CF + DA38A4388D4719F773F428004C4F6DC1D65AB9E0D7CE3F7AB7DB00000080C5D7 + CF6D86E73FEBE7CB1652CF2629006C5CBE186B7192E6CA9616FCDAF6DC634F7B + 18200000B0D022A789DCA696F3F45B2D478A96CBE7CA980D500098DCB88B2D2D + D07C918ED79EF8A4DB00000080C5D5CF69EAF94EBD85723CCAB89F63400160BA + 6A0BB7D652C5ABAC82F5DB637F797F73E6F953BD18000060B1442E13394D2DD7 + E9B73C271AD642EA99020580CDC917652D4ED25CDE862FF8A71EFEB55E0F0000 + B058FAB94C3DCFE9B7B65C2897CF95311BA400B031E32CBAB448CB962FF688EB + EDD1BFF850F3B257020200000B247298C865CAFC666DABE546651B659CCF5050 + 00989EDA62CDE7A2A5055E2EFA7A7BF67376010000008BA39FC3D4F39B7E1B96 + 1BA596D4E6D8040580CDAB2DC67C91A6B81C978B7F7DFBD47FFE43BB00000080 + 8510B94BE430655EB3DA6AB9504871392ED5E6988002C0C60D5B7CE5C26D6BE5 + 89B0BED9050000002C827EEE52CF6BFA6D74FED36F21F535C38E318402C074E4 + 8BB41627692EB5B4F8D389B0BE7DEA3FBFCB2E00000060AEF5AFFEBF2BA2212D + CF81F296CBE7CA984D5200D87A69D1960BBD3C01A2AFB7673FFBEBBD1E000060 + 3EF573967A3ED36FB51C28B57CCC165200D89CDA024D0BB76C21C56D0B3EFAF5 + ED537FEC59000000C07C5AB9FADFCB59CA3C66B50DCB81A285FC58DE4AB539C6 + A400303DC31662BE80F3962FFA325EDBEC02000000E651FBD5FFB65C27C5656B + 33EC18135000D8BC71176A5AD4A9A5859F4E8EBCAD9F5FD90570E663BD180000 + 603E448E52BFFA3F2AD7893E6F491E97861D630C0A00D3951664BE886B715B2B + 4F8EB5ED894FFE62AF070000980FFD1CA59EBFACB65AEE93B7302C664A1400B6 + 5EB988CB563B41A2AD3FF6E85F7CA839F3FCA95E0C0000B0BD2237891CA5CC5B + 46E739B51652CF165100988EDA422D177219B7B5DA49B2DA3E7FF7CFF47A0000 + 80EDD5CF4DEA79CB6AABE53C790B6D71AE36C7841400A66FD8624D8B39B57442 + 9427497B7BE2939F69BEF4D4EFF662000080ED113949E426B59CA5BDE53950DE + 42EA73B539364101607ADA166CBEA0CBB8AD9527C8DAF6E93F7B4773EEDC177B + 310000C06C452E1239492D57599FCF0C6BA12DCED5E6D8000580AD316CD1A645 + 9D5A79928C6ECF3DF674F3EC635E0B080000CC5EE4229193D47295F696E73E79 + 0BA9CFD5E6D8240580E96A5BB8F9C22EE3B6569E30A99D5DE93FF9DEDFF15A40 + 000060A62207895C24CF4DEAAD96E3E42DB4C5B9DA1C1BA400B075862DDEB4B8 + 534B274879D20C6F9FBBF79FF57A000080D9E8E720F5FCA4BDE5394FDE42EA73 + B539A6400160FADA1670BEC0CB385A7E62B4B5B515B6D37FF580070202000033 + 11B947E420794E327C1740B43CD7492DB4C5B9DA1C9BA000B0B5862DE2B4C8F3 + 569E18F989533FB13EFDA7BFD6BC7CF6B3BD180000606B44CE11B947998FF45B + 99AB94394D3E4E2DA43E579B634A760D7AA66F47D127F938FF4CDE428AA34893 + 1FCB5BD39C79EE4CB3FB159F68F61FBC6D650C0000306D8F7FF4A79A2F7CEC93 + BD2825FBD1E72D25FF791CC97CEA530B6D71AE36C72629006C9D7E82DE97E2D5 + C47DFDF1F25819972DF4E32F7EE6B3CDC5D75CD4EC7EC5EBFBD300000053125B + FF1FFCE3DFEB4529C14F497E8AF3A43FE248DED33825F8790BA9CFD5E69822B7 + 006C9DB6059D2FF8324E2D3F59529CB7F2048B5B017EDDAD000000C054F5B7FE + C72BC8EB79C8FA56E633790B6D71AE36C714D801B0B5D295FAB0F6AA7D5F793C + 6FA19C2BE7433F762B000000306DFDADFF9FEA4591F0A716C97D19A7A43FB594 + DC972DA43E579B63CA1400B65E9EA8E7C619E75F5BB6B076FCC5CF7CAEB9F89A + 0BDD0A0000006C5A7FEBFFEFF7A232E92F13FFD4A7C43FC5F95CDE421EE76A73 + 4C8902C0D64BC97A2813F75C3E571E4FE37CBE366E9A271EF86073E9EB6E6976 + EDBE74650C000030A9332F7CBC79E0F7DFDA8B6AC97E6A29C1CFE36891C4A73E + A4643FB5526D8E2DA000301B6B93F45529812F8FE79F2B8FE72DAC8F77EDF848 + B3FF2BFE66B363C779FD69000080319D7BF98BCDE37FFD53CDB38F9DEE8DF264 + BF8C53C21F7124F1691C2D4FF8CB04BF36176A734C9102C06CA4043DD412F7A4 + 3C967FA69CCB5B588D9F7DEC0BCDBE034F367B2FBA69650C000030AE673EFDF3 + CDA7FFE24F7BD1B0C43FF5798B043EF56DAD549B638B2800CC4E4AD44319AF26 + EF7DA3E6D27CDEAF9D7BEAC18F37177FE515CDEEBD5FBD3206000018E54B4FFF + 51F389F7FC5A2FAA25FCC392FFD4CA84BF4CF0F3B9FC58F939B68002C0ECA404 + 3DE471A9762C4FEEF3166A7D3FFED2131F6E2E3CF446CF03000000468AFBFE1F + F9C03F69CE3CF77C6F14C97C4AFAC749FE23812FC721FAB2B14D1400662B25E9 + 617DC2DE7EBCEC6B2DAC8DCF3CF762B373C77DCDF99E070000000C11F7FD9FFE + EBFFB179F2C14FF74691C0E7097F9EF4D70A0091D4A73E25F8655CCAE76AC7D9 + 020A00B39727EBB9721C52429F1FCBE76AF361B57FF6B1279AF32E7CA4D9F7CA + BF399803000058EBC94FFECFCDA3777DA81745229F27FFA94F2DC6B59612FE68 + E538E471AE36C716510098BD3269CFFB5CED583E576B493EDED13CFDC8C3CD45 + 57EC6AF6EC3F3C98030000E87BFEF4BF6A3EB5F2BEFF48DCDB92FEB6E43F12F8 + 3C4E097D8AF3B9A41C33230A00DBA34CD6539FC7493997F7E55CA87FEE898FDF + D35CFA9AAF69769D77757F1A0000E8BC335FBCA379E00F7FAE1745029F27FD79 + E29FC729D98F16897CEACB16521F86CD31230A00DBA396B027E538F493F8F55F + 97C6E5F17AFFDCE31FF45040000060453CF4EFA1DB7F6AF0D0BF5AA25F26FCE5 + 385A24F1A995E390C76C330580ED9392F39027EAF97CC88F25B5B910E3B6CFF7 + 1F0A78F6D90F36175E759B870202004087C543FF1EFDB3B734CF3CFA586F1489 + 7B2A00D492FF7C3EB548EAF3B84CF8D33897CFD58EB3C51400B6572D590F6D49 + 7CDE877CAE361FF2CF34CD979E7AB679F9E50F3517BCEA6F28020000400745F2 + FFD97B7EB479E2639FEA8D52729F12FCB6B8D6F2643FB590F729CED5E6980105 + 80EDD596B487721C622E6FC9B0F924C53B9AE71E7BA2D977E0C966EF45370DE6 + 000080AE8827FE7FF6EEBB7A514AF0F316897D1ED75A4AEC532BE7421E873C66 + 9B28006CBF7A92BE763E94E3DCA8CFAF8F9F7AF0E3CDBE4B1F6BF65E747C650C + 00002CBFA71FF9E7CDC31FF84FBD284FFA53B25F8BD3B8AD95097F2DD1CFE76A + C799110580F99012F4B6243EFA3851F271DE42792C698FA30870D1153BBD1E10 + 00003A205EF7F7C9F7FD4E2F8AC4BD96EC9771D952825FB63816224E7D8A73B5 + 39664801603EB425E9218D877D26E49FAB7D4D583F1FAF07BCF82B2F6F76EFFD + EAC10C0000B06CBEF4F41F351F7BD72FF6A25AB29FB7349F92FEB69692FC94D4 + E77D8A431EB3CD1400E6479EACB725F0B93896B7D2A8B9D5F88907FEA4B9E4AB + AE6876EF7DED6006000058162F3CF39EE6A37FF0BFF4A23CD17FA918E72D12FC + 3C2E13FE68B5B968B97C5C1E631B2800CC975A821E7D3E1FCA7129FF9AB20FEB + E3C7EFBF4311000000964C24FF0FFCFB7FD68B6A897D19E7FDB09692F994F4D7 + 12FDDA1CDB4C0160BEB425E9218DA38F13281F97622E9F6FFB4CD28F15010000 + 6079AC4DFEA3E557FDCB1D0091D8A7BEAD451E925A8C434AEED33C734C0160FE + 0C4BDCD3B8F699E8534BF238D7FE1945000000587CEB93FF3CC92FE3BCA5F932 + E12F5BC8FB1487B6986DA600309F6A097A5B321FDA8EE55F9BB7D2DA39450000 + 00585CF5E43F5AEDAAFFB82D12F9D4972D978FCB636C330580F95426E969DC96 + C087DAB1B6CFE6EA9F5104000080C5D39EFCA784BF369F5A9EF0A79692FC3C4E + 2D49713EC71C5200985F79623E2AB12F3F9B5AAE3697D4E67728020000C00259 + 4DFE2359AF25F8B527FFE7C97E6A79929FC6219F0F795C6A9B671B2900CCB73C + 31AF25F4A98F93AB96C4D7B47DAE3EAF08000000F3EFB9A7DED97CEC0F7EAE17 + 95097E6A6DC97F1ED75A4AF2230E29B14FF3495BCC1C5100987F79625E26E969 + 1C7D9C64F5247EBDFCEB52DFFEF55104D8F7CAC79ABD171F1FCC000000F3E2E9 + 87DFDE7CF2BDFF472FCA93FBBC45F21F097CC4659FE25A8B1C215AC42125F669 + 3E698B99330A008B214FCCCBE43D19354ECAAF8F3E4ED2BC5FEFA9073FAE0800 + 0000732692FF07DFFFAE5E9492F9B2A5E4BFAD08506B9117E42D94E3241F97C7 + 98330A008BA14CCAF3E47D98B6E3B57F2F4ED6BC5F2F8A002F9FBDB3B9E0557F + A3D9B1E3BCC12C0000306BE75EFE62F3D9533FDC3CFAC13FED8DF2843F6FB5E4 + 3FB5344E497F6A910FA4BED642D9B320140016479E9497713D615F9DAF1D2FE7 + 621C2770DEAFF7DC635F685E7EF983CDBE83DFDCECDC75C1601600009895332F + 7CBCF9FC5FFD4FCDE97B3FDA1BE5497DDE264DFE230718D6923CCEB5CD334714 + 00164B9E94D712F89A345F3B5EFB37F213378DD7F6510478F6B3EF6D2E3CF4CD + CDAEDD97F6E60000805988E4FFC1FFFCA3CDD30F7DA6374A497C99EC475F26FB + E538FAD4E26FFDB2CF5BC8E3D01633C71400164F9EB4E77128C7499AAF1D1FF7 + DF58EBA5E75F6C4EDFFB87CD255F75B937040000C00CC46BFEEEFFBDFF57EF6F + F1E77BA33CA96F6B91CCD7C6D1A716C97BD9E72DE471688B99730A008B294FD2 + C74DE0D37CED783E37D909FCF8FD7FD2EC7BE5E73D1C100000B6503CECEF13EF + F9CD5E9427F4E3B448EACB3EB5F8DBBFECF316F238B4C52C000580C59527ED65 + 525F4BF2439AAF1D1F762C1727797C66F5648F87039E5D7938E07FE9E1800000 + 3045F1B0BF474FFDF7CDA31FFCB3DEA84CEC6BF7F7E72D1DCBFBD4E2EFF9B2CF + 5BC8E3D016B3201400165799A88F1A2769BE76BCED589CDC31D77E923FFFD813 + CD338FBEABB9E88AD7373BF7BC6A300B00006CD44BCF7DB8F9E4FFEF879BA71F + FA746F14497A9EDCE72D8E95C58014E77D6AF1777DD9E72DE471C863169402C0 + 622B13F551E324CDB71D0FF9B1886B277CCCAD1E5B792EC07DEF692EB8726773 + DEFEC32B730000C0E49E7DFC5F371FFD0F3FDBFB1BFB4BBD519ED4B75DF5CFE7 + CA386FF1B77BD9E72DE471C8E3508E59100A008BAF4CE2478D9334DF763C573B + C1DBE7BEF0B10F373BF7FC65B3F792C35E150800001378E9CCE79AC71FF8C7CD + C3B7BFBB37AA25F4E3CCE57DDEE2EFF5B2CF5BC8E390C7A11CB340140096C356 + 1701CAE3B5937EED2F892F3EFAB9E6D9CFFEA7E6C22BAE6E76ED393498070000 + DA9C79EE4F9A07FFF8279B273FF1A9DE284FE4CBB83657C6658BBFD7CB3E6F21 + 8F431E8772CC825100581EA392FEB6247F54F25F1AF60B21ACCEBDF4FC0BCDE9 + FBFEAF95B704EC3EFF70B373A70704020040E9EC4BCF365FFCF4FFD67CFC8FFE + BF8357FC45825E4BEC6B7329CEFB5A8BBFD3A3E5716A218F431E8772CC025200 + 582EB32A028461BF1C429A3BB7F2968033CFFC7173FE655FED01810000908907 + FD3DFAE7FF43F3B90FDFDD1BD512FABCE573E5E7A26F6BF1B779B43C4E2DE471 + C8E3508E59500A00CB67A34580501E4B27FAB0AF69FB45B136FED253CFAE3C20 + F0FCAF78AED9F58AEBED060000A0D3E2AAFFB39F7B47F3B1FFF80BBDBF959F8E + 995E8B043D25F879CBE7539CF7A9A571FC2D9EE6521C7DD9421E873C0EE59805 + A600B09C36530418A5ED6BDB7E69A4B8DF3FF9C98FD80D000040A7A5ABFE9F3D + F5E7BD519EB8E7FDA838B5721C2DFEF6CEE35A0B791CF238946316DC661241E6 + DBB0A43FE2344E71D976667D5B8B02521EA77119D7FA9DCD95C76E6E2EBEFA1F + 35BB769FDF1B0300C0728BABFE4F3DF42F9A4FDF797B6F9412F4B6E43E1FD78E + A5B8D622714F7DAD853C0E791CCA314B209231965724F0B951E3527EBCF60BA0 + ED9744D987F573CF3CF250F3C5CFFE61B3EFD2BDCD9E7DD70F66010060F93CFF + C4EF350FDDFED3CD130F3CD01BA5443D25F629A1CFC7F95CAD2F5BFC9D5DF6B5 + 16F238E47128C72C090580E5B7D922C0B8F25F26791F22AE8F5F7AFEC5E6898F + 7DB017DCD9BCE2E2ABDD160000C05289EDFE8FFDE53F6E1EBEF3DDBDBF7DBFD4 + 9B49C97D6A91ACD7C6B57E588BBFAF53DFD6421E873C0EE5982532ADE48FF936 + 2CE98F388DF338B6E9A73ECDF7B7EEAF8D535BDDDABF763CAA5F1B5F73CBADCD + FE577D6FB3FB3C8500000016D74B2F7EAE79EE73FFBA79F0FD7FD41BA524BD96 + D0B725FBF9676AE36891ACE7711A87D4A7F990C7218F433966C9A4648FE557FE + ACF3718AA34F2DA43892F3324EC97B8AF384BE1C0F4BFACBAFDBD9EC3B705173 + F9377E47F38A57FE7DCF07000060A1C47DFE5FFAC2EF358F7EE8DF36CF3F1E4F + F74F097A6AB5047FD85C1947925EC6D1977148713E4EF23894639650246F7447 + F9F3CEC729CEFB5A8B24BDEC87B54992FFB5E37D975ED45CF92DFF6DB3EF95DF + D61B0300C07C7BFE0BBFDF7CFA4FFF55F3FC1379E29F27EFE5B816979FAFB548 + D6CBBED642D9873C0EE5982515091CDD52FECCF3718AF3BEAD45929EFA32CE5B + 5B923F3CF9CFC7175E7D7973F991EF6DF65E78B237060080F9F2C233EF6D3E7F + EA5F354F3EF4D9DE2812F261497F3E1EF5B9BC45925EC6D1B7B550F6218F4339 + 668945D24637E53FFB721DC438CDE57124E4A94FF329EE27EB6BE3BCE509FEF8 + C97FDE14020000982791F83F7AEA5F37CF3CF4686F9492F3BCE509FDB0647F58 + E21F2D92F4B24F71487D9A0F799CE4E3F2181D90123BBAA9FCF9E7E388D3B816 + A716C979D997716AB5C47EBCE43F6F0A0100006CA7D1897F6AC392FE6173D122 + 412FC7692EC5A985B638E47128C774442469745BB906F2718AF3BEAD4572DED6 + B7B5C993FFBCC533022E7FC3DFF7B0400000B6DC971FEEF7C1DF2BEEF11FD5C6 + 2902942D12F4BC4FF1B016CA3EE47128C77448246850AE837C9CE2BCCF5B8884 + 3C8DCB38B5729CB7C912FFB24521E0E0EB6F6C2EB8FC7BBC3E100080A98AD7F9 + 7DF1D1DF6A4EDFFB271326FE791B27E98F16C9791EA7711E87344E2D947DC8E3 + 508EE99848CA20946BA1364E73B538B548CACB38EF37D2CA0241DBBFB5A3B9F2 + 8D3735E75F71B2D9BBFF586F0C00001BF3C2737736CF7EE6BDCDA7FFEC03BD51 + 24CE2931DFAA96FE1B795FC6A985B6381935A683229182A4B61EF2B914E7FDB0 + D64FCA57E334AEC56DAD6D7740ED6B57E72EBCFAD5CDABBEEEDB9B3DE71FB32B + 000080B1C4D5FE33CFDED97CEEAFDED93CF3E527FAE749F9345BFE6FA638FA32 + 6E6BA1EC431E27B5393A2812262895EB221FA738EFCB38B59494D7E2D4CAF1B8 + ADEDEBF2FF567FEECA371EB72B00008056AB57FBEFE88D6A49799A1BD6C6FD5C + B4FCB3F97F27B5721C2D9471DE873C0EE5988E8B24096ACAB5511BA7B9BC6F6B + 2929CFE3B5897A7DDCD6DA3E97CFAFFD6FECBBF4C2E6B2AF3DDE9CFFEA6F6B76 + 9FF79ADE1C00005DF5D28B9F689EFDECEF378FFDF51DCDF34F3CD39B2993F1E8 + CBB8D636723CE6CAFFC6A816F23EC5C9A831AC2446D0A65C1F6DE3BC2FE3D452 + 225E8E6B7DDE6A73E3CE97711AEF58B945E0E0D71C6F5E71E949C50000808E88 + A4FF4B4FBCB739FDD13B065BFC23494E0978AD2FE3B2B51D2BE7DBFEDD7CBED6 + 4219E77D326A0C2B22218251CA75928F535CEB47B532314FE3BC2FE7DBC6E57C + EDF3E5B1FEDC25872E6F5E79ED8DCD9E8BBEC16D0200004B26B6F79F79FAC3CD + 171EF893E6C987E3BDFD911C47AB25E6A91F16B7CD0DFB4CDED7E290FA341F2D + B4F5218F4339863522018271946BA56D9CF765DCD6CAA4BCD6A7968FCB63F95C + ED73C3FA7E8BDB042EFD9AC3CDF9AF3AD6ECDAFB0D1E200800B060E2417E675F + F870F3ECE7EE6C9EF8E83D83EDFD9118A75626E4B57E583CEEB1F233F9FCB016 + CA38EF9351635827921E18576DBDE47329AEF5A9857C1C2D4FC26B71DE0F8BF3 + 71ED33C3FABCADCE5D72E8D5CD455F79B879C5C5DFD0ECDAF7F50A0200007366 + 25E17FFE2F9B2F3DF5E1E6E94FDDD33CF970DADA1FAD9670E7C9795B3F2CCEC7 + B5CFD4FAD4CA71B4509B0BF9F1248F93DA1CAC13490E4CAA5C376DE3BC2FE37C + 6E7812BE3E598F7E3373D18F1BAF6DA92070DE85AF69F69C1F3B043C3F000060 + 96E23EFE33CF7EB879F1994F5412FEB2E509F7A838EFDBE66AF3B5BE8CF3B990 + FA341FCA38EF935163182A921AD888DADA29E752E29CE4E3148F6AB5C47C923E + C56DE351F1A8D634AFBAE170B3FF95AF6DF6EC7B6DB3EBBC5735BBF77DFDCA3C + 00009BF3D2F37FD99C8D77F33FFFF1E6B92F7CBCF9DC5DF70C8E44E23B4E6B4B + C8CBB86D9CF76D9FC93F57C6A35AC8E3508E43390EB53918AA9FC0C0C6956BA8 + 6D3CAC1FA78D9BB88F1AD7FA321E3657B6B07E2E760AEC3DF8EAE682AFF88666 + C7AEF39B3DAF786DD3ECFA0AB710000014620B7F73F6F3CD992F7DBC3977F6D9 + E68B9FFF70F3C2E9CF0EAEEC879410A716CAB9B2D592F05A925EF6291E35CEFB + 727E9C16F238E4F3B95163185B4A6060336AEBA89C4BE35A9F5AC8C76DAD4CCC + 6B897CD98F3A965AF9F950FB5C48C76BC7CA78B55F290E5CF6AADEEFEE1D2B05 + 82B05224D8FB9A5ED0FFCC8E3DAF6976ED3E7F250600583429A95F71EE5C73E6 + 854FAC24F72112FC66C7B9E685C73E5724F9655FC6F95C24DBA13C96E6F364BC + 9698A7B9B21FF758198FD34219D7FAA41C87DA1C8C2D2526300DE57AAAADAF98 + CBE7F3712D1ED5CAE4BC6D9CCFB7C5B571DEE258487DED33D142190FEB93721C + 6A730000F36C9CC4358D87F5655CB6104978EA6B9F89561E6B4BE253DC767CD8 + 5C5B0BC3E2BC4FCA71A8CDC1C424174CDB38496C1AE7F311E7F3659CCF8D4AD2 + 87CD95C7478D2769A1364E7D8A43394ECAB9DA670000E6D9B8096D3E9F8FF3BE + 9CDF482B13F661E3519F2D5B1C0FE57C688B433E9F1B35864D915CB05526496E + F3F988F3F95A1C497A4873A90D4BDE6BC7DAE6C2B07FAB6C61D85C18D5E7C69D + 03009827B56475D8DCB0BE8C87CDB5B5949CD792F849E642ED5848C7F3B9B638 + E4F3B9721C6A73B029920AB6DA38C96C1AE7F31197F369AE361EA78D93DC4F52 + 0008A3E642399F94C773B5B9DCA8E300005B6D54823A2CA9CD8F455CCEA7B9DA + B86DAE6CC392F7D4C6F94C5B0BB571EA531CCAE349390EB539980A4904B352AE + B561496F7E2CE2DA38CD95E394C0E7F3B59627FAA9AF7DAED6426D3E5A1816E7 + 7DA8CDE5DAE60100E6555B025B4B82CBB9E887C5650BB5F95ACB93FDD4D73E97 + B7903E5FCE97E3501BE77DAE9CAB7D06A64A72C12CD5D6DBB0B9FC583917FDB0 + B86C61DCE2C0A81626991BD687B6B8CD389F010098857192D6FC33B578589FB7 + 30CEDCA42DD492FCBC856171DE87DA5C32EE1C4C9D4482ED505B77C3E6F263E5 + 5CF46D73B5719A1B550C08B5F96861D85C688B433E9FB4C500008BAC96148714 + 9773F9FCB078D85C6AA1361F2DB425FDA16D1CDAFA509B4BC69D832D23D1603B + D5D6DFB0B9F2588CF3B97C3C2A9EF65C18270EF97C6ED41800605194896DDB38 + 9F8F389F1F379EF65C688B436D9CE47132EE1C6C390906F3A0B60E47CDD5E261 + FDB8716D2EE4C7CAB950C6659FE2501ECF8D3B0700308F264D80F3631197F379 + 3F2CAECD85FC58391786C5C3FA509BCBD5E6DB3E0B3321B1609EB4ADC7614971 + 792CC6F9DCB0F134E3B26F3B166A73C9B8730000F368DCA437CDE5C7CAB9E86B + 73A99F761C468D431A97F3A13617DAE661A62416CCA3B675392A39AEC5E55CDB + B8D6B7C5653FEC58DE87DA5C52CED53E0300B008DA92E65C9ACB8F9573B57EDC + 63B5E3A94F71A88DF33EB4C5496D2EB4CDC3B6906030CFDAD6E738F3B578D85C + AD4F71C8C7A3FA107139CEFB64D4180060D1954970DB389F8FB81C8FEA531CF2 + F1A83E0C9B0B799C9B741EB695648345D1B65647CD97C76BF3E3CC8DEAC3389F + 09B5AFA919760C00609E0D4B808725D669DCD687519F29FB30EE5C689B4F269D + 87B921C160D1B4ADD971E6CBCFA4F138F3D3980B799C8C3B0700B0486A09F1A8 + B95A3CADB9306A3E94C79249E761EE483258646DEB77DCF9B6F166E6DBE230EC + 586ED831008045322C391E9674B71D4B71DBE7279D4FCA7132E93CCC358906CB + 60A3C9747EACF6B93437C9B17C3CECEB42EDF83836FA750000D3B6D14438FFBA + DABF31EC781A0FFBBA61C742ED78B2D16330F724122C9B616B7A9263B5CFE673 + 9B3D9ED4E6000096D9A8E43CC9E7367B3CD43E936CF4182C14C907CB6CD8FA1E + B5F6CBE36D9FDFE8E742DB67010096DD38097B52CE6FF673C9B0E3A3BE161692 + 0484AE18B5D637727CD8D74CFAF9361BF91A0080EDB491E4B9F6359326E8A3FE + BB9B3D0E0B4F7241178DB3EE37F39969FDFB0000CB6C9C84BBED339BF9DA9CA4 + 9F4ED935E8A1CB669DB04BFE0100FA4625E09324E8127E18410100D61B374197 + C803006CCE4613F271BF4EC20F19090C8C36E979E2BC0200988E491378093F0C + 2151818DD9CCB9E3BC0300E8DB4CC22ED98709494460BA9C530000D325D18729 + 91ACC06C39E70000D692E0030000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1776,8 +1777,8 @@ object AboutForm: TAboutForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000060DB35CDFF1FBFD8662D22A241D30000000049454E44AE42 - 6082} + 0000000000000000000000000000000000B0ED9AE6FF0F2CAC6529D1D042CA00 + 00000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512@2x.png' diff --git a/src/AboutUnit.pas b/src/AboutUnit.pas index 4ba7be7..eb8b765 100644 --- a/src/AboutUnit.pas +++ b/src/AboutUnit.pas @@ -44,6 +44,9 @@ interface FMX.Layouts, FMX.Ani, FMX.Effects, + + AErenderLauncher.IO, + {$IFDEF MSWINDOWS} FMX.Platform.Win, Winapi.ShellAPI, Winapi.Windows; {$ENDIF MSWINDOWS} @@ -131,12 +134,7 @@ procedure TAboutForm.Image1DblClick(Sender: TObject); procedure TAboutForm.WebsiteLabelClick(Sender: TObject); begin - {$IFDEF MSWINDOWS} - ShellExecute(0, 'open', PWideChar('http://aerenderlauncher.com'), nil, nil, SW_SHOW); - {$ENDIF MSWINDOWS} - {$IFDEF MACOS} - _system(PAnsiChar('open ' + AnsiString('"' + 'http://aerenderlauncher.com' + '"'))); - {$ENDIF MACOS} + Open('http://aerenderlauncher.com'); end; procedure TAboutForm.LogoRotationAnimFinish(Sender: TObject); From 1023b063916b72217a2d21802c6531121c89fc5a Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Mon, 30 Nov 2020 14:06:44 +1000 Subject: [PATCH 03/29] Defined program-wide const DEBUG_MODE Started implementing new "task" workflow --- src/MainUnit.fmx | 1 + src/MainUnit.pas | 508 ++++++++++++++++++++++++----------------------- 2 files changed, 258 insertions(+), 251 deletions(-) diff --git a/src/MainUnit.fmx b/src/MainUnit.fmx index 8506719..80a7e5a 100644 --- a/src/MainUnit.fmx +++ b/src/MainUnit.fmx @@ -18513,6 +18513,7 @@ object MainForm: TMainForm object compCount: TSpinBox Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Right + StyleLookup = 'spinboxstyle' Cursor = crIBeam Min = 2.000000000000000000 Value = 2.000000000000000000 diff --git a/src/MainUnit.pas b/src/MainUnit.pas index 19a3040..9ddec61 100644 --- a/src/MainUnit.pas +++ b/src/MainUnit.pas @@ -27,6 +27,8 @@ interface +{$DEFINE DEBUG_MODE} + uses {$REGION ' System Namespaces '} System.SysUtils, @@ -41,6 +43,7 @@ interface System.Threading, System.Rtti, System.Bindings.Outputs, + System.Math, System.Notification, System.ImageList, System.Net.URLClient, @@ -94,8 +97,11 @@ interface {$ENDREGION} {$REGION ' Additional Liraries '} - MathExpParser, - AErenderLauncherLocalization, + AErenderLauncher.MathExpParser, + AErenderLauncher.Localization, + AErenderLauncher.IO, + AErenderLauncher.Rendering, + AErenderLauncher.Math, {$ENDREGION} {$REGION ' Windows Only Libraries '}{$IFDEF MSWINDOWS} @@ -405,15 +411,11 @@ RenderSetting = record procedure LoadConfiguration(Path: String); procedure LoadLegacyConfiguration(Path: String); procedure SaveConfiguration(Path: String); - function Open(Path: String): Integer; - function Execute(Path: String): Integer; - function BackgroundExecute(Path: String): Integer; procedure ChangeLanguage(LanguageCode: Integer); procedure InitLanguage(PATH: String); const - APPVERSION = 'v0.8.5-beta'; - //APPVERSION_DEMO = 'v0.8.5-beta'; + APPVERSION = 'v0.8.6-beta'; AERL_REPO_RELEASES = 'https://api.github.com/repos/lilystilson/aerender-launcher/releases'; PLATFORMPATHSEPARATOR = {$IFDEF MSWINDOWS}'\'{$ENDIF MSWINDOWS} {$IFDEF MACOS}'/'{$ENDIF MACOS}; @@ -434,7 +436,7 @@ RenderSetting = record RenderSettings: TArray; OMCount: Cardinal; //TempOutputModule: OutputModule; (* Temporary Output Module used from import *) - TMathParser: MathExpParser.TExpressionParser; (* Mathematical parser for frames calculation *) + TMathParser: TExpressionParser; (* Mathematical parser for frames calculation *) FHandleDragDirectly: Boolean = False; (* For implementation of DragDrop functional *) PARAMSTART: Boolean = False; isRendering: Boolean = False; @@ -758,7 +760,7 @@ procedure LoadLegacyConfiguration(Path: String); LANG := 0; STYLE := RootNode.ChildNodes['style'].Text.ToInteger(); - AERPATH := RootNode.ChildNodes['aerender'].Text; + AErenderPath := RootNode.ChildNodes['aerender'].Text; ONRENDERSTART := RootNode.ChildNodes['onRenderStart'].Text.ToInteger(); DEFPRGPATH := RootNode.ChildNodes['defprgpath'].Text; DEFOUTPATH := RootNode.ChildNodes['defoutpath'].Text; @@ -777,6 +779,7 @@ procedure LoadLegacyConfiguration(Path: String); MainForm.soundCheckbox.IsChecked := RootNode.ChildNodes['sound'].Text.ToBoolean(); MainForm.threadedRender.IsChecked := RootNode.ChildNodes['thread'].Text.ToBoolean(); MainForm.customCheckbox.IsChecked := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); + MainForm.customProp.Enabled := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); MainForm.customProp.Text := RootNode.ChildNodes['prop'].Text; MainForm.memUsageTrackBar.Value := RootNode.ChildNodes['memoryLimit'].Text.ToSingle(); @@ -809,7 +812,7 @@ procedure LoadConfiguration(Path: String); LANG := RootNode.ChildNodes['lang'].Text.ToInteger(); STYLE := RootNode.ChildNodes['style'].Text.ToInteger(); - AERPATH := RootNode.ChildNodes['aerender'].Text; + AErenderPath := RootNode.ChildNodes['aerender'].Text; ONRENDERSTART := RootNode.ChildNodes['onRenderStart'].Text.ToInteger(); DEFPRGPATH := RootNode.ChildNodes['defprgpath'].Text; DEFOUTPATH := RootNode.ChildNodes['defoutpath'].Text; @@ -828,6 +831,7 @@ procedure LoadConfiguration(Path: String); MainForm.soundCheckbox.IsChecked := RootNode.ChildNodes['sound'].Text.ToBoolean(); MainForm.threadedRender.IsChecked := RootNode.ChildNodes['thread'].Text.ToBoolean(); MainForm.customCheckbox.IsChecked := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); + MainForm.customProp.Enabled := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); MainForm.customProp.Text := RootNode.ChildNodes['prop'].Text; MainForm.memUsageTrackBar.Value := RootNode.ChildNodes['memoryLimit'].Text.ToSingle(); @@ -874,7 +878,7 @@ procedure SaveConfiguration(Path: String); RootNode.AddChild('lang').Text := LANG.ToString; RootNode.AddChild('style').Text := STYLE.ToString; - RootNode.AddChild('aerender').Text := AERPATH; + RootNode.AddChild('aerender').Text := AErenderPath; RootNode.AddChild('onRenderStart').Text := ONRENDERSTART.ToString; RootNode.AddChild('defprgpath').Text := DEFPRGPATH; RootNode.AddChild('defoutpath').Text := DEFOUTPATH; @@ -926,38 +930,6 @@ procedure SaveConfiguration(Path: String); Config.SaveToFile(Path); end; -function Open(Path: String): Integer; -begin - {$IFDEF MSWINDOWS} - Result := ShellExecute(0, 'open', PWideChar(Path), nil, nil, SW_SHOW); - {$ENDIF MSWINDOWS} - {$IFDEF MACOS} - Result := _system(PAnsiChar('open ' + AnsiString('"' + Path + '"'))); - {$ENDIF MACOS} -end; - -function Execute(Path: String): Integer; -begin - {$IFDEF MSWINDOWS} - Result := ShellExecute(0, 'OPEN', PWideChar(Path), '', '', SW_SHOWNORMAL) - {$ENDIF MSWINDOWS} - {$IFDEF MACOS} - _system(PAnsiChar('chmox +x ' + AnsiString('"' + Path + '"'))); - Result := _system(PAnsiChar('command ' + AnsiString('"' + Path + '"'))); - {$ENDIF MACOS} -end; - -function BackgroundExecute(Path: String): Integer; -begin - {$IFDEF MSWINDOWS} - Result := ShellExecute(0, 'OPEN', PWideChar(Path), '', '', SW_HIDE) - {$ENDIF MSWINDOWS} - {$IFDEF MACOS} - _system(PAnsiChar('chmox +x ' + AnsiString('"' + Path + '"'))); - Result := _system(PAnsiChar('command ' + AnsiString('"' + Path + '" & disown'))); - {$ENDIF MACOS} -end; - function GetOMIndex(AOutputModule: OutputModule): Integer; begin Result := -1; @@ -1380,24 +1352,22 @@ procedure TMainForm.FormCreate(Sender: TObject); var CFG: TextFile; begin - {$IFDEF MSWINDOWS}DwmCompositionEnabled();{$ENDIF MSWINDOWS} + {$IFDEF MSWINDOWS}DwmCompositionEnabled();{$ENDIF} FormatSettings := TFormatSettings.Invariant; MainForm.Width := 600; - MainForm.Height := {$IFDEF MSWINDOWS}450{$ENDIF MSWINDOWS} {$IFDEF MACOS}430{$ENDIF MACOS}; - //MainForm.Caption := 'AErender Launcher (' + APPVERSION_DEMO + ')'; + MainForm.Height := {$IFDEF MSWINDOWS}450{$ELSE MACOS}430{$ENDIF}; MainForm.Caption := 'AErender Launcher (' + APPVERSION + ')'; - APPFOLDER := {$IFDEF MSWINDOWS}'C:\ProgramData\AErender\'{$ENDIF MSWINDOWS} - {$IFDEF MACOS}GetEnvironmentVariable('HOME') + '/Documents/AErender/'{$ENDIF MACOS}; + APPFOLDER := {$IFDEF MSWINDOWS}'C:\ProgramData\AErender\' + {$ELSE MACOS}GetEnvironmentVariable('HOME') + '/Documents/AErender/'{$ENDIF}; {$IFDEF MSWINDOWS} FreeAndNil(launcherItem); exitItem.ShortCut := TextToShortCut('Alt+F4'); exportConfigItem.ShortCut := TextToShortCut('Ctrl+E'); importConfigItem.ShortCut := TextToShortCut('Ctrl+I'); - {$ENDIF MSWINDOWS} - {$IFDEF MACOS} + {$ELSE MACOS} FreeAndNil(editItem); FreeAndNil(exitItem); - {$ENDIF MACOS} + {$ENDIF} if DirectoryExists(APPFOLDER) then AssignFile(CFG, APPFOLDER + 'AErenderConfiguration.xml') @@ -1416,14 +1386,15 @@ procedure TMainForm.FormCreate(Sender: TObject); LoadLegacyConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); except on Exception do begin - if (TDialogServiceSync.MessageDialog(('Configuration file is corrupted! Press OK to renew configuration file. Application will be restarted.' + #13#10 + - {$IFDEF MSWINDOWS}'C:\ProgramData\AErender\AErenderConfiguration.xml'{$ENDIF MSWINDOWS} - {$IFDEF MACOS}'~/Documents/AErender/AErenderConfiguration.xml'{$ENDIF MACOS}), + if (TDialogServiceSync.MessageDialog( + ('Configuration file is corrupted! Press OK to renew configuration file. Application will be restarted.' + #13#10 + + {$IFDEF MSWINDOWS}'C:\ProgramData\AErender\AErenderConfiguration.xml' + {$ELSE MACOS}'~/Documents/AErender/AErenderConfiguration.xml'{$ENDIF}), TMsgDlgType.mtError, mbOKCancel, TMsgDlgBtn.mbOK, 0) = 1) then begin System.SysUtils.DeleteFile(APPFOLDER + 'AErenderConfiguration.xml'); - {$IFDEF MSWINDOWS}ShellExecute(0, 'OPEN', PChar(ParamStr(0)), '', '', SW_SHOWNORMAL);{$ENDIF MSWINDOWS} - {$IFDEF MACOS}_system(PAnsiChar('open -a "' + AnsiString(ParamStr(0)) + '" & disown'));{$ENDIF MACOS} + {$IFDEF MSWINDOWS}ShellExecute(0, 'OPEN', PChar(ParamStr(0)), '', '', SW_SHOWNORMAL); + {$ELSE MACOS}_system(PAnsiChar('open -a "' + AnsiString(ParamStr(0)) + '" & disown'));{$ENDIF} end; Halt; end; @@ -1451,6 +1422,8 @@ procedure TMainForm.FormCreate(Sender: TObject); threadsCount.OnValidate := threadsCount.OnValidateEvent; threadsCount.OnValidating := threadsCount.OnValidatingEvent; + + //ShowMessage(AErenderPath); end; procedure TMainForm.FormResize(Sender: TObject); @@ -1617,7 +1590,7 @@ exec = record end; var threads, comps, emptyComps: Integer; - PATH, logPath{, prgPath}: String; + PATH, logPath: String; execFile: array [1..128] of exec; // Notification: TNotification; @@ -1652,203 +1625,236 @@ exec = record end else begin - if threadsSwitch.IsChecked then - begin - threads := threadsCount.Text.ToInteger; - SetLength (LogFiles, threads); - end - else - begin - threads := 1; - if Length(LogFiles) = 0 then - SetLength (LogFiles, threads); - end; + var Compositions: TArray; if compSwitch.IsChecked then - begin - comps := StrToInt(compCount.Value.ToString); - SetLength (LogFiles, comps); - end + SetLength(Compositions, StrToInt(compCount.Value.ToString)) else - begin - comps := 1; - if Length(LogFiles) = 0 then - SetLength (LogFiles, comps); - end; + SetLength(Compositions, 1); + for var i := 0 to High(Compositions) do begin + if compSwitch.IsChecked then + Compositions[i].CompName := compGrid.Cells[0, i] + else + Compositions[i].CompName := compName.Text; + Compositions[i].Frames := TFrameSpan.Create(IfThenElse(inFrame.Text = '', -1, StrToInt(inFrame.Text)), IfThenElse(outFrame.Text = '', -1, StrToInt(outFrame.Text))); // yeet + Compositions[i].Split := IfThenElse(threadsSwitch.IsChecked = True, StrToInt(threadsCount.Text), 0); // double yeet + end; - for var j := 0 to comps-1 do - for var i := 1 to threads do - begin - /// Script compiling section - - // Clear the string - execFile[i].script := ''; - - // Add encoding header to ensure that our CMD on Windows will use UTF-8 - {$IFDEF MSWINDOWS} - execFile[i].script := 'chcp 65001' + #13#10; - {$ENDIF MSWINDOWS} - - // Make console output data from it if progress display is enabled - // Made by using default in Shell and Bash ( command ) > data/output/path.log - // Open bracket here - if SettingsForm.HandleCheckBox.IsChecked then - execFile[i].script := execFile[i].script + '('; - - // Ensure that logs paths won't comflict with each other - if comps = 1 then - logPath := APPFOLDER + compName.Text + '_' + i.ToString - else - logPath := APPFOLDER + compGrid.Cells[0, j] + '_' + i.ToString; - - // Add Pass output path to temporary wariable - PATH := outputPath.Text; - - // Create folder if '[projectName]/' or '[projectName]\' is used - // Because aerender won't do it for you - if outputPath.Text.Contains('[projectName]' + PLATFORMPATHSEPARATOR) then - begin - PATH := StringReplace(PATH, '[projectName]', ExtractFileName(projectPath.Text), [rfReplaceAll, rfIgnoreCase]); - if not DirectoryExists(ExtractFilePath(PATH)) then - CreateDir(ExtractFilePath(PATH)); - end; - - // Adjust file output path if split render is enabled - // because they can conflict - if threadsSwitch.IsChecked then - begin - var FilePath: String := ExtractFilePath(PATH); - var FileName: String := StringReplace(ExtractFileName(PATH), ExtractFileExt(PATH), '', [rfReplaceAll, rfIgnoreCase]); - var FileExt: String := ExtractFileExt(PATH); - PATH := FilePath + FileName + '_' + i.ToString + FileExt; - end; - - // Adjust file output path if multi comp render is enabled - // because they can conflict - if compSwitch.IsChecked then - if not outputPath.Text.Contains('[compName]') then - begin - var FilePath: String := ExtractFilePath(PATH); - var FileName: String := StringReplace(ExtractFileName(PATH), ExtractFileExt(PATH), '', [rfReplaceAll, rfIgnoreCase]); - var FileExt: String := ExtractFileExt(PATH); - PATH := FilePath + FileName + '_' + compGrid.Cells[0, j] + FileExt; - end; - - /// Begin executable compiling section - // Add aerender path to script - execFile[i].script := execFile[i].script + '"' + AERPATH + '" ' + '-project "' + projectPath.Text + '" -output "' + PATH + '" '; - - // Add comp name to script - if compSwitch.IsChecked then - execFile[i].script := execFile[i].script + '-comp "' + compGrid.Cells[0, j] + '" ' - else - execFile[i].script := execFile[i].script + '-comp "' + compName.Text + '" '; - - // Add start and end ranges to script - if threadsSwitch.IsChecked then - begin - execFile[i].script := execFile[i].script + '-s "' + threadsGrid.Cells[0, i-1] + '" '; - execFile[i].script := execFile[i].script + '-e "' + threadsGrid.Cells[1, i-1] + '" '; - end - else - begin - if not inFrame.Text.IsEmpty then - execFile[i].script := execFile[i].script + '-s "' + inFrame.Text + '" '; - if not outFrame.Text.IsEmpty then - execFile[i].script := execFile[i].script + '-e "' + outFrame.Text + '" '; - end; - - // Add sound flag to script - if soundCheckbox.IsChecked then - execFile[i].script := execFile[i].script + '-sound ON '; - - // Add multiprocessing flag to script - if threadedRender.IsChecked then - execFile[i].script := execFile[i].script + '-mp '; - - // Add missing footage flag to script - if missingFilesCheckbox.IsChecked then - execFile[i].script := execFile[i].script + '-continueOnMissingFootage '; - - // Add output module flag to script - if outputModuleBox.ItemIndex <> -1 then - execFile[i].script := execFile[i].script + '-OMtemplate "' + OutputModules[outputModuleBox.ItemIndex].Module + '" '; - - if renderSettingsBox.ItemIndex <> -1 then - execFile[i].script := execFile[i].script + '-RStemplate "' + RenderSettings[outputModuleBox.ItemIndex].Setting + '" '; - - // Add memory usage flags to script - execFile[i].script := execFile[i].script + '-mem_usage "' + Trunc(memUsageTrackBar.Value).ToString + '" "' + Trunc(cacheUsageTrackBar.Value).ToString + '" '; - - // Add whatever user typed parameters to script - if customCheckbox.IsChecked then - execFile[i].script := execFile[i].script + customProp.Text; - - if SettingsForm.HandleCheckBox.IsChecked then - begin - execFile[i].script := execFile[i].script + ') > "' + logPath + '.log"'; - - if threadsSwitch.IsChecked then - LogFiles[i-1] := logPath + '.log' - else - LogFiles[j] := logPath + '.log'; - end; - - //File section - {$IFDEF MSWINDOWS} - if compSwitch.IsChecked then - AssignFile (execFile[i].F, 'C:\ProgramData\AErender\aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.bat', CP_UTF8) - else - AssignFile (execFile[i].F, 'C:\ProgramData\AErender\aerender' + i.ToString + '.bat', CP_UTF8); - Rewrite (execFile[i].F); - Writeln (execFile[i].F, execFile[i].script); - //Writeln (execFile[i].F, '@PAUSE'); - CloseFile (execFile[i].F); - if SettingsForm.HandleCheckBox.IsChecked then - if compSwitch.IsChecked then - ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.bat'), '', '', SW_HIDE) - else - ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'), '', '', SW_HIDE) - else - if compSwitch.IsChecked then - ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.bat'), '', '', SW_SHOWNORMAL) - else - ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'), '', '', SW_SHOWNORMAL) - //Execute('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'); - {$ENDIF MSWINOWS} - {$IFDEF MACOS} - if compSwitch.IsChecked then - AssignFile (execFile[i].F, GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command', CP_UTF8) - else - AssignFile (execFile[i].F, GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command', CP_UTF8); - Rewrite (execFile[i].F); - Writeln (execFile[i].F, execFile[i].script); - //Writeln (execFile[i].F, 'read -p "Press any key to continue..."'); - CloseFile (execFile[i].F); - if SettingsForm.HandleCheckBox.IsChecked then - if compSwitch.IsChecked then - begin - _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command"'))); - _system(PAnsiChar('command "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command" & disown'))); - end - else - begin - _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'))); - _system(PAnsiChar('command "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command" & disown'))); - end - else - if compSwitch.IsChecked then - begin - _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command"'))); - _system(PAnsiChar('open "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command"'))); - end - else - begin - _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'))); - _system(PAnsiChar('open "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'))); - //Execute(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'); - end - {$ENDIF MACOS} - end; + var Task: TRenderTask := TRenderTask.Create( + projectPath.Text, + outputPath.Text, + outputModuleBox.Items[outputModuleBox.ItemIndex], + renderSettingsBox.Items[renderSettingsBox.ItemIndex], + missingFilesCheckbox.IsChecked, + soundCheckbox.IsChecked, + threadedRender.IsChecked, + IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''), // triple yeet + cacheUsageTrackBar.Value, + memUsageTrackBar.Value, + Compositions + ); + + RenderTasks.Add(Task); + {$IFDEF DEBUG_MODE} + ShowMessage(Format('Length: %d%sTask[0]: %s', [Length(RenderTasks.ToArray), #13#10, RenderTasks.Items[0].ToString])); + {$ENDIF} + RenderTasks.Remove(Task); +// if threadsSwitch.IsChecked then +// begin +// threads := threadsCount.Text.ToInteger; +// SetLength (LogFiles, threads); +// end +// else +// begin +// threads := 1; +// if Length(LogFiles) = 0 then +// SetLength (LogFiles, threads); +// end; +// if compSwitch.IsChecked then +// begin +// comps := StrToInt(compCount.Value.ToString); +// SetLength (LogFiles, comps); +// end +// else +// begin +// comps := 1; +// if Length(LogFiles) = 0 then +// SetLength (LogFiles, comps); +// end; +// +// for var j := 0 to comps-1 do +// for var i := 1 to threads do +// begin +// /// Script compiling section +// +// // Clear the string +// execFile[i].script := ''; +// +// // Add encoding header to ensure that our CMD on Windows will use UTF-8 +// {$IFDEF MSWINDOWS} +// execFile[i].script := 'chcp 65001' + #13#10; +// {$ENDIF MSWINDOWS} +// +// // Make console output data from it if progress display is enabled +// // Made by using default in Shell and Bash ( command ) > data/output/path.log +// // Open bracket here +// if SettingsForm.HandleCheckBox.IsChecked then +// execFile[i].script := execFile[i].script + '('; +// +// // Ensure that logs paths won't comflict with each other +// if comps = 1 then +// logPath := APPFOLDER + compName.Text + '_' + i.ToString +// else +// logPath := APPFOLDER + compGrid.Cells[0, j] + '_' + i.ToString; +// +// // Add Pass output path to temporary wariable +// PATH := outputPath.Text; +// +// // Create folder if '[projectName]/' or '[projectName]\' is used +// // Because aerender won't do it for you +// if outputPath.Text.Contains('[projectName]' + PLATFORMPATHSEPARATOR) then +// begin +// PATH := StringReplace(PATH, '[projectName]', ExtractFileName(projectPath.Text), [rfReplaceAll, rfIgnoreCase]); +// if not DirectoryExists(ExtractFilePath(PATH)) then +// CreateDir(ExtractFilePath(PATH)); +// end; +// +// // Adjust file output path if split render is enabled +// // because they can conflict +// if threadsSwitch.IsChecked then +// begin +// var FilePath: String := ExtractFilePath(PATH); +// var FileName: String := StringReplace(ExtractFileName(PATH), ExtractFileExt(PATH), '', [rfReplaceAll, rfIgnoreCase]); +// var FileExt: String := ExtractFileExt(PATH); +// PATH := FilePath + FileName + '_' + i.ToString + FileExt; +// end; +// +// // Adjust file output path if multi comp render is enabled +// // because they can conflict +// if compSwitch.IsChecked then +// if not outputPath.Text.Contains('[compName]') then +// begin +// var FilePath: String := ExtractFilePath(PATH); +// var FileName: String := StringReplace(ExtractFileName(PATH), ExtractFileExt(PATH), '', [rfReplaceAll, rfIgnoreCase]); +// var FileExt: String := ExtractFileExt(PATH); +// PATH := FilePath + FileName + '_' + compGrid.Cells[0, j] + FileExt; +// end; +// +// /// Begin executable compiling section +// // Add aerender path to script +// execFile[i].script := execFile[i].script + '"' + AERPATH + '" ' + '-project "' + projectPath.Text + '" -output "' + PATH + '" '; +// +// // Add comp name to script +// if compSwitch.IsChecked then +// execFile[i].script := execFile[i].script + '-comp "' + compGrid.Cells[0, j] + '" ' +// else +// execFile[i].script := execFile[i].script + '-comp "' + compName.Text + '" '; +// +// // Add start and end ranges to script +// if threadsSwitch.IsChecked then +// begin +// execFile[i].script := execFile[i].script + '-s "' + threadsGrid.Cells[0, i-1] + '" '; +// execFile[i].script := execFile[i].script + '-e "' + threadsGrid.Cells[1, i-1] + '" '; +// end +// else +// begin +// if not inFrame.Text.IsEmpty then +// execFile[i].script := execFile[i].script + '-s "' + inFrame.Text + '" '; +// if not outFrame.Text.IsEmpty then +// execFile[i].script := execFile[i].script + '-e "' + outFrame.Text + '" '; +// end; +// +// // Add sound flag to script +// if soundCheckbox.IsChecked then +// execFile[i].script := execFile[i].script + '-sound ON '; +// +// // Add multiprocessing flag to script +// if threadedRender.IsChecked then +// execFile[i].script := execFile[i].script + '-mp '; +// +// // Add missing footage flag to script +// if missingFilesCheckbox.IsChecked then +// execFile[i].script := execFile[i].script + '-continueOnMissingFootage '; +// +// // Add output module flag to script +// if outputModuleBox.ItemIndex <> -1 then +// execFile[i].script := execFile[i].script + '-OMtemplate "' + OutputModules[outputModuleBox.ItemIndex].Module + '" '; +// +// if renderSettingsBox.ItemIndex <> -1 then +// execFile[i].script := execFile[i].script + '-RStemplate "' + RenderSettings[renderSettingsBox.ItemIndex].Setting + '" '; +// +// // Add memory usage flags to script +// execFile[i].script := execFile[i].script + '-mem_usage "' + Trunc(memUsageTrackBar.Value).ToString + '" "' + Trunc(cacheUsageTrackBar.Value).ToString + '" '; +// +// // Add whatever user typed parameters to script +// if customCheckbox.IsChecked then +// execFile[i].script := execFile[i].script + customProp.Text; +// +// if SettingsForm.HandleCheckBox.IsChecked then +// begin +// execFile[i].script := execFile[i].script + ') > "' + logPath + '.log"'; +// +// if threadsSwitch.IsChecked then +// LogFiles[i-1] := logPath + '.log' +// else +// LogFiles[j] := logPath + '.log'; +// end; +// +// //File section +// {$IFDEF MSWINDOWS} +// if compSwitch.IsChecked then +// AssignFile (execFile[i].F, 'C:\ProgramData\AErender\aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.bat', CP_UTF8) +// else +// AssignFile (execFile[i].F, 'C:\ProgramData\AErender\aerender' + i.ToString + '.bat', CP_UTF8); +// Rewrite (execFile[i].F); +// Writeln (execFile[i].F, execFile[i].script); +// //Writeln (execFile[i].F, '@PAUSE'); +// CloseFile (execFile[i].F); +// if SettingsForm.HandleCheckBox.IsChecked then +// if compSwitch.IsChecked then +// ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.bat'), '', '', SW_HIDE) +// else +// ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'), '', '', SW_HIDE) +// else +// if compSwitch.IsChecked then +// ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.bat'), '', '', SW_SHOWNORMAL) +// else +// ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'), '', '', SW_SHOWNORMAL) +// //Execute('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'); +// {$ENDIF MSWINOWS} +// {$IFDEF MACOS} +// if compSwitch.IsChecked then +// AssignFile (execFile[i].F, GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command', CP_UTF8) +// else +// AssignFile (execFile[i].F, GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command', CP_UTF8); +// Rewrite (execFile[i].F); +// Writeln (execFile[i].F, execFile[i].script); +// //Writeln (execFile[i].F, 'read -p "Press any key to continue..."'); +// CloseFile (execFile[i].F); +// if SettingsForm.HandleCheckBox.IsChecked then +// if compSwitch.IsChecked then +// begin +// _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command"'))); +// _system(PAnsiChar('command "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command" & disown'))); +// end +// else +// begin +// _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'))); +// _system(PAnsiChar('command "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command" & disown'))); +// end +// else +// if compSwitch.IsChecked then +// begin +// _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command"'))); +// _system(PAnsiChar('open "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command"'))); +// end +// else +// begin +// _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'))); +// _system(PAnsiChar('open "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'))); +// //Execute(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'); +// end +// {$ENDIF MACOS} +// end; // Wait untill aerender launches Sleep (200); if SettingsForm.HandleCheckBox.IsChecked then From c154a9c0b182c8b9a78d0e1f885d1ae9de69b5ef Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Mon, 30 Nov 2020 14:08:43 +1000 Subject: [PATCH 04/29] Updated error messages. Added libraries --- src/RenderingUnit.fmx | 4 ++-- src/RenderingUnit.pas | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/RenderingUnit.fmx b/src/RenderingUnit.fmx index 300e18a..1fb2ed1 100644 --- a/src/RenderingUnit.fmx +++ b/src/RenderingUnit.fmx @@ -44,7 +44,7 @@ object RenderingForm: TRenderingForm Margins.Right = 10.000000000000000000 Position.X = 5.000000000000000000 Position.Y = 86.000000000000000000 - Size.Width = 98.000000000000000000 + Size.Width = 97.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False TextSettings.WordWrap = False @@ -198,7 +198,7 @@ object RenderingForm: TRenderingForm StyledSettings = [Family, FontColor] Margins.Left = 20.000000000000000000 Position.X = 20.000000000000000000 - Size.Width = 148.000000000000000000 + Size.Width = 147.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 16.000000000000000000 diff --git a/src/RenderingUnit.pas b/src/RenderingUnit.pas index 5c03c37..8fb2916 100644 --- a/src/RenderingUnit.pas +++ b/src/RenderingUnit.pas @@ -51,7 +51,7 @@ interface FMX.BufferedLayout, FMX.BehaviorManager, - AErenderDataParser, + AErenderLauncher.AerenderParser, {$IFDEF MSWINDOWS} System.Notification, FMX.TaskBar, FMX.Platform.Win, Winapi.Windows, Winapi.TlHelp32; @@ -376,7 +376,7 @@ procedure TRenderingForm.renderingTimerTimer(Sender: TObject); TRenderData = record // Непосредственно тип LogFile: TStringList; // Сюда считываем лог //Data: TStringList; // Не ебу, нахуй это нужно, но почему-то я его тут обозначил. Далее в коде оно нигде не использовалось. - Stream: TStream; // Поток, даннве из котрого будут передаваться в переменную LogFile + Stream: TStream; // Поток, данные из котрого будут передаваться в переменную LogFile State: Integer; // Обозначим для состояния рендеринга три цифры: -1 (ошибка), 0 (завершён), 1 (рендерится) end; var @@ -479,7 +479,7 @@ TRenderData = record // Непосредственно тип RenderGroups[i].RenderingProgress.Value := RenderGroups[i].RenderingProgress.Max; end; // RU: Проверяем, была ошибка или нет - if RenderGroups[i].LogMemo.Text.Contains('aerender ERROR') or RenderGroups[i].LogMemo.Text.Contains('aerender Error') then begin + if RenderGroups[i].LogMemo.Text.Contains('ERROR:') or RenderGroups[i].LogMemo.Text.Contains('USAGE:') then begin Render[i].State := -1; RenderGroups[i].WaitProgress.Visible := False; RenderGroups[i].WaitProgress.Enabled := False; From 6f72c5859989f61025157f95166c21185c4a6116 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Mon, 30 Nov 2020 14:08:53 +1000 Subject: [PATCH 05/29] Updated project --- src/AErender_Launcher.dpr | 11 ++++++--- src/AErender_Launcher.dproj | 47 +++++++++++++++++++----------------- src/AErender_Launcher.res | Bin 135784 -> 135784 bytes 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/AErender_Launcher.dpr b/src/AErender_Launcher.dpr index 35adf59..0c1f80b 100644 --- a/src/AErender_Launcher.dpr +++ b/src/AErender_Launcher.dpr @@ -48,10 +48,13 @@ uses {$IFDEF MSWINDOWS} FMX.Taskbar in 'lib\FMX.Taskbar.pas', {$ENDIF MSWINDOWS} - MathExpParser in 'MathExpParser.pas', - AErenderDataParser in '..\..\AErender Parser\AErenderDataParser.pas', - AErenderLauncherLocalization in 'lib\AErenderLauncherLocalization.pas', - MacApi.Dialogs in 'lib\MacApi.Dialogs.pas'; + AErenderLauncher.Localization in 'lib\AErenderLauncher.Localization.pas', + AErenderLauncher.AerenderParser in 'lib\AErenderLauncher.AerenderParser.pas', + AErenderLauncher.MathExpParser in 'lib\AErenderLauncher.MathExpParser.pas', + AErenderLauncher.Rendering in 'lib\AErenderLauncher.Rendering.pas', + AErenderLauncher.IO in 'lib\AErenderLauncher.IO.pas', + AErenderLauncher.Math in 'lib\AErenderLauncher.Math.pas', + System.Types.Nullable in 'lib\System.Types.Nullable.pas'; {$R *.res} diff --git a/src/AErender_Launcher.dproj b/src/AErender_Launcher.dproj index 2f07a0d..b73baa8 100644 --- a/src/AErender_Launcher.dproj +++ b/src/AErender_Launcher.dproj @@ -5,7 +5,7 @@ Beta FMX AErender_Launcher.dpr - Win32 + Win64 {C2DB1030-533B-41FD-8468-632CB85028C7} 19.0 4099 @@ -16,13 +16,13 @@ true ..\icons\platform\Launcher2020.icns true - 5 + 6 8 0 (None) true Debug - CFBundleVersion=0.8.5;NSHighResolutionCapable=true;NSLocationUsageDescription=;CFBundleShortVersionString=0.8.5;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Not used;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used + CFBundleVersion=0.8.6;NSHighResolutionCapable=true;NSLocationUsageDescription=;CFBundleShortVersionString=0.8.6;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Not used;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used ..\icons\platform\Launcher2020.ico /usr/X11/bin/xterm -e "%debuggee%" @@ -172,12 +172,12 @@ ..\icons\png\resized_uwp\icon_uwp_44.png true true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.5.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.5.0;Comments= + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.6.0;Comments= 1033 0 8 true - 5 + 6 ..\icons\platform\Launcher2020.icns @@ -187,12 +187,12 @@ ..\icons\png\resized_uwp\icon_uwp_44.png true true - FileVersion=0.8.5.0;ProductVersion=0.8.5.0 + FileVersion=0.8.6.0;ProductVersion=0.8.6.0 1033 0 8 true - 5 + 6 true @@ -209,7 +209,7 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico ..\(None) - 5 + 6 true 0 8 @@ -223,12 +223,12 @@ 1 true true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.5.1;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.5.0;Comments= + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.1;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.5.0;Comments= 1033 0 8 true - 5 + 6 Debug @@ -297,9 +297,9 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico ..\(None) - 5 + 6 true - CFBundleVersion=0.8.5;NSHighResolutionCapable=true;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Data saving;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used;CFBundleShortVersionString=0.8.5 + CFBundleVersion=0.8.6;NSHighResolutionCapable=true;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Data saving;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used;CFBundleShortVersionString=0.8.6 0 8 @@ -308,16 +308,16 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico true - 23 + 25 true true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.5.23;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.0;Comments=;PrivateBuild=v0.8.0-beta + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.25;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.0;Comments=;PrivateBuild=v0.8.0-beta 1033 0 8 true true - 5 + 6 PerMonitorV2 @@ -327,14 +327,14 @@ ..\icons\platform\Launcher2020.ico $(BDS)\bin\default_app.manifest true - 7 + 10 true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.5.7;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.5;Comments=;PrivateBuild=v0.8.5-beta + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.10;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.6;Comments=;PrivateBuild=v0.8.6-beta 1033 0 8 true - 5 + 6 ..\icons\platform\Launcher2020.icns @@ -401,10 +401,13 @@ - - - - + + + + + + + ResourceItem RCDATA diff --git a/src/AErender_Launcher.res b/src/AErender_Launcher.res index f552737a652d899ad1dc0d67eba8f59daa49f9cd..09bb594d167f686d829acb886a78bd3e9ea0e50d 100644 GIT binary patch delta 63 zcmaE{gyY2$jtM1#Tnuas91I}9#$XR5nKrg^GqRg8=rI^F7)+kdc$3j=av_s0qgnHO QruO+vjN9ikF`eWG0K#w%&j0`b delta 63 zcmaE{gyY2$jtM1#;tZ?|91IX(52Uy^wsJGFn==6p3Zoa(O_~RlP;q{^L(cE O`Am%4=QA;# Date: Mon, 30 Nov 2020 14:09:24 +1000 Subject: [PATCH 06/29] Added some new settings to customize --- src/SettingsUnit.fmx | 627 ++++++++++++++++++++++++++----------------- src/SettingsUnit.pas | 11 + 2 files changed, 395 insertions(+), 243 deletions(-) diff --git a/src/SettingsUnit.fmx b/src/SettingsUnit.fmx index 6dd63b9..9e983b9 100644 --- a/src/SettingsUnit.fmx +++ b/src/SettingsUnit.fmx @@ -5,8 +5,8 @@ object SettingsForm: TSettingsForm BorderIcons = [biSystemMenu] BorderStyle = SizeToolWin Caption = 'AErender Launcher Settings' - ClientHeight = 438 - ClientWidth = 552 + ClientHeight = 547 + ClientWidth = 574 Position = MainFormCenter Quality = HighQuality StyleBook = MainForm.AERModernStyle @@ -20,18 +20,18 @@ object SettingsForm: TSettingsForm DesignerMasterStyle = 0 object settingsFormLayout: TLayout Align = Contents - Size.Width = 552.000000000000000000 - Size.Height = 438.000000000000000000 + Size.Width = 574.000000000000000000 + Size.Height = 547.000000000000000000 Size.PlatformDefault = False TabOrder = 7 object OpenDialog1: TOpenDialog Filter = 'After Effects Render Engine|aerender.exe' Left = 24 - Top = 408 + Top = 488 end object SettingsToolbar: TToolBar PopupMenu = hiddenS - Size.Width = 552.000000000000000000 + Size.Width = 574.000000000000000000 Size.Height = 33.000000000000000000 Size.PlatformDefault = False TabOrder = 1 @@ -65,138 +65,6 @@ object SettingsForm: TSettingsForm Visible = False end end - object aerenderPathLayout: TLayout - Align = Top - Position.Y = 33.000000000000000000 - Size.Width = 552.000000000000000000 - Size.Height = 55.000000000000000000 - Size.PlatformDefault = False - TabOrder = 2 - object aerenderPathLabel: TLabel - Align = Top - StyledSettings = [Family, Size, FontColor] - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 5.000000000000000000 - Size.Width = 542.000000000000000000 - Size.Height = 17.000000000000000000 - Size.PlatformDefault = False - TextSettings.Font.StyleExt = {00070000000000000004000000} - TextSettings.HorzAlign = Center - Text = 'Aerender module path' - TabOrder = 0 - end - object aerenderPath: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Client - TabOrder = 1 - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 486.000000000000000000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - end - object aerenderPathSelect: TButton - Align = Right - Hint = 'Choose aerender path' - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 496.000000000000000000 - Position.Y = 27.000000000000000000 - Size.Width = 23.000000000000000000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - TabOrder = 3 - Text = '...' - OnClick = aerenderPathSelectClick - end - object refreshAerender: TButton - Align = Right - StyledSettings = [Size, FontColor] - Hint = 'Detect aerender automatically' - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 524.000000000000000000 - Position.Y = 27.000000000000000000 - Size.Width = 23.000000000000000000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - TabOrder = 2 - TextSettings.Font.Family = 'Segoe MDL2 Assets' - OnClick = refreshAerenderClick - object RefreshIcon: TPath - Align = Contents - Data.Path = { - 81000000000000009A198742A470FD3F02000000B99E92423433634002000000 - 152E9D42295CBF400200000071BDA642C2F51441020000000B57B0428FC24941 - 020000009A99B842EB51844102000000E27ABF42D7A3A841020000006766C642 - 48E1CC410200000071BDCB42C2F5F441020000007C94CF425C8F104202000000 - 4961D3421E85264202000000CE4CD5421E853D4202000000CE4CD54266665542 - 02000000CE4CD542C2F56842020000002005D44247E17B42020000000180D142 - 3D0A874202000000E2FACE42D7239042020000004961CB42D7A3984202000000 - 90C2C6425C8FA04202000000D823C242A470A842020000009A99BC4214AEAF42 - 02000000B91EB642142EB64202000000B99EAF42F5A8BC42020000006766A842 - 3333C242020000000180A042EBD1C642020000007C949842A370CB4202000000 - 7C1490423D0ACF4202000000E2FA86425C8FD1420200000091C27B427B14D442 - 020000000CD76842295CD54202000000B0475542295CD5420200000054B84142 - 295CD54202000000CFCC2E427B14D442020000009C991C425C8FD14202000000 - 69660A423D0ACF4202000000D2CCF241A470CB4202000000BD1ED341EBD1C642 - 020000009E99B3413333C24202000000DCA39641F5A8BC4202000000B7477941 - 142EB64202000000AD70454114AEAF4202000000C11E1941C275A84202000000 - FE51E8405C8FA0420200000079669E40D7A3984202000000BE994940D7239042 - 02000000D0EBF13F5C0F8742020000004448213F00007C420200000080B123BC - 7A1469420200000080B123BC295C55420200000080B123BCC3F5414202000000 - 4448213F3E0A2F42020000002C7BF43F14AE1C4202000000C9704D40EB510A42 - 02000000C147A140703DF24102000000B770ED400AD7D14102000000E0A31C41 - 1E85B1410200000052E14A417B14944102000000DCA380413D0A734102000000 - 8AEB9B4185EB3D410200000057B8BA41D6A3104102000000D2CCDC41A270D540 - 01000000C31E5541A270D54001000000C31E5541000080B501000000C5F51F42 - 000080B501000000C5F51F42285CD54101000000B0470542285CD54101000000 - B0470542275C334102000000FA28EA41646652410200000056B8CC41AC477941 - 020000006A66B241703D944102000000743D984114AEAB410200000093C28141 - FFFFC54102000000783D5E41285CE34102000000CAF53841EB51004202000000 - E87A1C41B81E104202000000F35108417A14214202000000D2F5E840FFFF3142 - 02000000DCCCD440A370434202000000DCCCD440285C554202000000DCCCD440 - A3706642020000007666E64084EB764202000000C01E0541856B834202000000 - 5AB816410A578B4202000000FE283041AEC7924202000000E97A504152B89942 - 02000000CAF57041B89EA0420200000089EB8B4166E6A6420200000056B8A241 - D7A3AC42020000009E99B941EB51B24202000000D1CCD2413333B74202000000 - 6A66EE418F42BB42020000007D140542CC4CBF42020000004AE11342E17AC242 - 0200000054B8234214AEC44202000000E37A334285EBC642020000007D144442 - 1E05C84202000000B04755421E05C842020000002B5C66421E05C84202000000 - 0CD7764284EBC642020000004961834214AEC44202000000CE4C8B42E17AC242 - 0200000072BD9242CC4CBF420200000016AE99428F42BB42020000007C94A042 - 3333B742020000002ADCA6420A57B242020000009B99AC42D7A3AC4202000000 - AF47B24285EBA64202000000F728B742B89EA042020000005338BB4252B89942 - 020000009042BF42AEC7924202000000A570C24248618B4202000000D8A3C442 - C37583420200000049E1C642F728774202000000E2FAC7425D8F664202000000 - E2FAC7422A5C554202000000E2FAC7422085404202000000EC51C642E27A2C42 - 02000000A5F0C242B91E1942020000005D8FBF420BD70542020000002ADCBA42 - 5E8FE84102000000EDD1B44249E1C84102000000B0C7AE423433A94102000000 - 5E8FA7420CD78D410200000035339F42C5F56C41020000000CD796425E8F3E41 - 020000009B998D42E47A1C41020000003F8A8342733D0641010000009B198742 - 0829FC3F030000009A198742A470FD3F} - Fill.Color = claWhite - HitTest = False - Margins.Left = 4.000000000000000000 - Margins.Top = 4.000000000000000000 - Margins.Right = 4.000000000000000000 - Margins.Bottom = 4.000000000000000000 - Size.Width = 15.000000000000000000 - Size.Height = 15.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - Stroke.Thickness = 0.500000000000000000 - WrapMode = Fit - end - end - end object BehaviourExpander: TExpander Align = Top StyledSettings = [Family, Size, FontColor] @@ -206,9 +74,9 @@ object SettingsForm: TSettingsForm Margins.Right = 5.000000000000000000 Margins.Bottom = 10.000000000000000000 Position.X = 5.000000000000000000 - Position.Y = 268.000000000000000000 + Position.Y = 341.000000000000000000 ShowCheck = False - Size.Width = 542.000000000000000000 + Size.Width = 564.000000000000000000 Size.Height = 130.000000000000000000 Size.PlatformDefault = False Text = 'Behaviour' @@ -216,7 +84,7 @@ object SettingsForm: TSettingsForm ContentSize = '105' object Layout2: TLayout Align = Top - Size.Width = 542.000000000000000000 + Size.Width = 564.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -226,7 +94,7 @@ object SettingsForm: TSettingsForm IsChecked = True Margins.Left = 10.000000000000000000 Margins.Right = 10.000000000000000000 - Size.Width = 522.000000000000000000 + Size.Width = 544.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -237,7 +105,7 @@ object SettingsForm: TSettingsForm object Layout3: TLayout Align = Top Position.Y = 32.000000000000000000 - Size.Width = 542.000000000000000000 + Size.Width = 564.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 1 @@ -246,7 +114,7 @@ object SettingsForm: TSettingsForm IsChecked = True Margins.Left = 10.000000000000000000 Margins.Right = 10.000000000000000000 - Size.Width = 522.000000000000000000 + Size.Width = 544.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -257,7 +125,7 @@ object SettingsForm: TSettingsForm object onRenderStartLayout: TLayout Align = Top Position.Y = 64.000000000000000000 - Size.Width = 542.000000000000000000 + Size.Width = 564.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 2 @@ -271,7 +139,7 @@ object SettingsForm: TSettingsForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 367.000000000000000000 + Size.Width = 389.000000000000000000 Size.Height = 22.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -289,92 +157,6 @@ object SettingsForm: TSettingsForm end end end - object defaultOutputLayout: TLayout - Align = Top - Position.Y = 120.000000000000000000 - Size.Width = 552.000000000000000000 - Size.Height = 32.000000000000000000 - Size.PlatformDefault = False - TabOrder = 4 - object defOutPathLabel: TLabel - Align = Left - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 - Size.Width = 160.000000000000000000 - Size.Height = 32.000000000000000000 - Size.PlatformDefault = False - Text = 'Default output directory' - TabOrder = 0 - end - object defaultOutputPath: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Client - TabOrder = 1 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 349.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - end - object Button3: TButton - Align = Right - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 524.000000000000000000 - Position.Y = 5.000000000000000000 - Size.Width = 23.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - TabOrder = 2 - Text = '...' - OnClick = Button3Click - end - end - object defaultProjectsLayout: TLayout - Align = Top - Position.Y = 88.000000000000000000 - Size.Width = 552.000000000000000000 - Size.Height = 32.000000000000000000 - Size.PlatformDefault = False - TabOrder = 5 - object defProjPathLabel: TLabel - Align = Left - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 - Size.Width = 160.000000000000000000 - Size.Height = 32.000000000000000000 - Size.PlatformDefault = False - Text = 'Default projects directory' - TabOrder = 0 - end - object defaultProjectsPath: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Client - TabOrder = 1 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 349.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - end - object Button2: TButton - Align = Right - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 524.000000000000000000 - Position.Y = 5.000000000000000000 - Size.Width = 23.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - TabOrder = 2 - Text = '...' - OnClick = Button2Click - end - end object UIExpander: TExpander Align = Top StyledSettings = [Family, Size, FontColor] @@ -383,17 +165,17 @@ object SettingsForm: TSettingsForm Margins.Top = 10.000000000000000000 Margins.Right = 5.000000000000000000 Position.X = 5.000000000000000000 - Position.Y = 162.000000000000000000 + Position.Y = 235.000000000000000000 ShowCheck = False - Size.Width = 542.000000000000000000 + Size.Width = 564.000000000000000000 Size.Height = 96.000000000000000000 Size.PlatformDefault = False Text = 'User Interface' - TabOrder = 6 + TabOrder = 4 ContentSize = '71' object styleLayout: TLayout Align = Top - Size.Width = 542.000000000000000000 + Size.Width = 564.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -407,7 +189,7 @@ object SettingsForm: TSettingsForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 367.000000000000000000 + Size.Width = 389.000000000000000000 Size.Height = 22.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -552,7 +334,7 @@ object SettingsForm: TSettingsForm object langLayout: TLayout Align = Top Position.Y = 32.000000000000000000 - Size.Width = 542.000000000000000000 + Size.Width = 564.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 2 @@ -565,7 +347,7 @@ object SettingsForm: TSettingsForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 367.000000000000000000 + Size.Width = 389.000000000000000000 Size.Height = 22.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -599,9 +381,9 @@ object SettingsForm: TSettingsForm end end object StatusBar1: TStatusBar - Position.Y = 406.000000000000000000 + Position.Y = 515.000000000000000000 ShowSizeGrip = True - Size.Width = 552.000000000000000000 + Size.Width = 574.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -612,10 +394,369 @@ object SettingsForm: TSettingsForm OnClick = Button1Click end end + object RenderingExpander: TExpander + Align = Top + StyledSettings = [Family, Size, FontColor] + TextSettings.Font.StyleExt = {00070000000000000004000000} + Margins.Left = 5.000000000000000000 + Margins.Top = 10.000000000000000000 + Margins.Right = 5.000000000000000000 + Position.X = 5.000000000000000000 + Position.Y = 43.000000000000000000 + ShowCheck = False + Size.Width = 564.000000000000000000 + Size.Height = 182.000000000000000000 + Size.PlatformDefault = False + Text = 'Rendering' + TabOrder = 2 + ContentSize = '157' + object aerenderPathLayout: TLayout + Align = Top + Size.Width = 564.000000000000000000 + Size.Height = 55.000000000000000000 + Size.PlatformDefault = False + object aerenderPathLabel: TLabel + Align = Top + StyledSettings = [Family, Size, FontColor] + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Position.X = 5.000000000000000000 + Position.Y = 5.000000000000000000 + Size.Width = 554.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.StyleExt = {00070000000000000004000000} + TextSettings.HorzAlign = Center + Text = 'Aerender module path' + end + object aerenderPath: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 498.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + end + object aerenderPathSelect: TButton + Align = Right + Hint = 'Choose aerender path' + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 508.000000000000000000 + Position.Y = 27.000000000000000000 + Size.Width = 23.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + Text = '...' + OnClick = aerenderPathSelectClick + end + object refreshAerender: TButton + Align = Right + StyledSettings = [Size, FontColor] + Hint = 'Detect aerender automatically' + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 536.000000000000000000 + Position.Y = 27.000000000000000000 + Size.Width = 23.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Family = 'Segoe MDL2 Assets' + OnClick = refreshAerenderClick + object RefreshIcon: TPath + Align = Contents + Data.Path = { + 81000000000000009A198742A470FD3F02000000B99E92423433634002000000 + 152E9D42295CBF400200000071BDA642C2F51441020000000B57B0428FC24941 + 020000009A99B842EB51844102000000E27ABF42D7A3A841020000006766C642 + 48E1CC410200000071BDCB42C2F5F441020000007C94CF425C8F104202000000 + 4961D3421E85264202000000CE4CD5421E853D4202000000CE4CD54266665542 + 02000000CE4CD542C2F56842020000002005D44247E17B42020000000180D142 + 3D0A874202000000E2FACE42D7239042020000004961CB42D7A3984202000000 + 90C2C6425C8FA04202000000D823C242A470A842020000009A99BC4214AEAF42 + 02000000B91EB642142EB64202000000B99EAF42F5A8BC42020000006766A842 + 3333C242020000000180A042EBD1C642020000007C949842A370CB4202000000 + 7C1490423D0ACF4202000000E2FA86425C8FD1420200000091C27B427B14D442 + 020000000CD76842295CD54202000000B0475542295CD5420200000054B84142 + 295CD54202000000CFCC2E427B14D442020000009C991C425C8FD14202000000 + 69660A423D0ACF4202000000D2CCF241A470CB4202000000BD1ED341EBD1C642 + 020000009E99B3413333C24202000000DCA39641F5A8BC4202000000B7477941 + 142EB64202000000AD70454114AEAF4202000000C11E1941C275A84202000000 + FE51E8405C8FA0420200000079669E40D7A3984202000000BE994940D7239042 + 02000000D0EBF13F5C0F8742020000004448213F00007C420200000080B123BC + 7A1469420200000080B123BC295C55420200000080B123BCC3F5414202000000 + 4448213F3E0A2F42020000002C7BF43F14AE1C4202000000C9704D40EB510A42 + 02000000C147A140703DF24102000000B770ED400AD7D14102000000E0A31C41 + 1E85B1410200000052E14A417B14944102000000DCA380413D0A734102000000 + 8AEB9B4185EB3D410200000057B8BA41D6A3104102000000D2CCDC41A270D540 + 01000000C31E5541A270D54001000000C31E5541000080B501000000C5F51F42 + 000080B501000000C5F51F42285CD54101000000B0470542285CD54101000000 + B0470542275C334102000000FA28EA41646652410200000056B8CC41AC477941 + 020000006A66B241703D944102000000743D984114AEAB410200000093C28141 + FFFFC54102000000783D5E41285CE34102000000CAF53841EB51004202000000 + E87A1C41B81E104202000000F35108417A14214202000000D2F5E840FFFF3142 + 02000000DCCCD440A370434202000000DCCCD440285C554202000000DCCCD440 + A3706642020000007666E64084EB764202000000C01E0541856B834202000000 + 5AB816410A578B4202000000FE283041AEC7924202000000E97A504152B89942 + 02000000CAF57041B89EA0420200000089EB8B4166E6A6420200000056B8A241 + D7A3AC42020000009E99B941EB51B24202000000D1CCD2413333B74202000000 + 6A66EE418F42BB42020000007D140542CC4CBF42020000004AE11342E17AC242 + 0200000054B8234214AEC44202000000E37A334285EBC642020000007D144442 + 1E05C84202000000B04755421E05C842020000002B5C66421E05C84202000000 + 0CD7764284EBC642020000004961834214AEC44202000000CE4C8B42E17AC242 + 0200000072BD9242CC4CBF420200000016AE99428F42BB42020000007C94A042 + 3333B742020000002ADCA6420A57B242020000009B99AC42D7A3AC4202000000 + AF47B24285EBA64202000000F728B742B89EA042020000005338BB4252B89942 + 020000009042BF42AEC7924202000000A570C24248618B4202000000D8A3C442 + C37583420200000049E1C642F728774202000000E2FAC7425D8F664202000000 + E2FAC7422A5C554202000000E2FAC7422085404202000000EC51C642E27A2C42 + 02000000A5F0C242B91E1942020000005D8FBF420BD70542020000002ADCBA42 + 5E8FE84102000000EDD1B44249E1C84102000000B0C7AE423433A94102000000 + 5E8FA7420CD78D410200000035339F42C5F56C41020000000CD796425E8F3E41 + 020000009B998D42E47A1C41020000003F8A8342733D0641010000009B198742 + 0829FC3F030000009A198742A470FD3F} + Fill.Color = claWhite + HitTest = False + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 15.000000000000000000 + Size.Height = 15.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + Stroke.Thickness = 0.500000000000000000 + WrapMode = Fit + end + end + end + object defaultProjectsLayout: TLayout + Align = Top + Position.Y = 55.000000000000000000 + Size.Width = 564.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + object defProjPathLabel: TLabel + Align = Left + Margins.Left = 10.000000000000000000 + Position.X = 10.000000000000000000 + Size.Width = 160.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + Text = 'Default projects directory' + end + object defaultProjectsPath: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 361.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + object Button2: TButton + Align = Right + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 536.000000000000000000 + Position.Y = 5.000000000000000000 + Size.Width = 23.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Text = '...' + OnClick = Button2Click + end + end + object defaultOutputLayout: TLayout + Align = Top + Position.Y = 87.000000000000000000 + Size.Width = 564.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + object defOutPathLabel: TLabel + Align = Left + Margins.Left = 10.000000000000000000 + Position.X = 10.000000000000000000 + Size.Width = 160.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + Text = 'Default output directory' + end + object defaultOutputPath: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 361.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + object Button3: TButton + Align = Right + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 536.000000000000000000 + Position.Y = 5.000000000000000000 + Size.Width = 23.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Text = '...' + OnClick = Button3Click + end + end + object GridPanelLayout2: TGridPanelLayout + Align = Top + Position.Y = 119.000000000000000000 + Size.Width = 564.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + ColumnCollection = < + item + Value = 64.999999999999960000 + end + item + Value = 35.000000000000040000 + end> + ControlCollection = < + item + Column = 0 + Control = Layout1 + Row = 0 + end + item + Column = 1 + Control = Layout4 + Row = 0 + end> + RowCollection = < + item + Value = 100.000000000000000000 + end + item + SizeStyle = Auto + end> + object Layout1: TLayout + Align = Client + Size.Width = 366.600006103515600000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + object renderingModeLabel: TLabel + Align = Left + Anchors = [] + Margins.Left = 10.000000000000000000 + Position.X = 10.000000000000000000 + Size.Width = 160.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + Text = 'Multi rendering mode' + end + object GridPanelLayout3: TGridPanelLayout + Align = Client + Size.Width = 196.600006103515600000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + ColumnCollection = < + item + Value = 29.999999999999960000 + end + item + Value = 70.000000000000040000 + end> + ControlCollection = < + item + Column = 0 + Control = allAtOnce + Row = 0 + end + item + Column = 1 + Control = SpeedButton2 + Row = 0 + end> + RowCollection = < + item + Value = 100.000000000000000000 + end + item + SizeStyle = Auto + end> + object allAtOnce: TSpeedButton + StaysPressed = True + Align = Client + GroupName = 'renderingMode' + Size.Width = 58.980003356933590000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + Text = 'All at once' + end + object SpeedButton2: TSpeedButton + StaysPressed = True + Align = Client + GroupName = 'renderingMode' + IsPressed = True + Size.Width = 137.619995117187500000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + Text = 'Limit simultaneous threads' + end + end + end + object Layout4: TLayout + Align = Client + Size.Width = 197.399993896484400000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + object Label1: TLabel + Align = Left + Anchors = [] + AutoSize = True + Margins.Left = 10.000000000000000000 + Position.X = 10.000000000000000000 + Size.Width = 41.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.WordWrap = False + Text = 'Limit to' + end + object Edit1: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Left + KeyboardType = DecimalNumberPad + Position.X = 59.000000000000000000 + Position.Y = 6.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Top = 6.000000000000000000 + Margins.Bottom = 6.000000000000000000 + Size.Width = 70.000000000000000000 + Size.Height = 20.000000000000000000 + Size.PlatformDefault = False + end + object Label2: TLabel + Align = Left + Margins.Left = 8.000000000000000000 + Position.X = 137.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + Text = 'threads' + end + end + end + end end object hiddenS: TPopupMenu - Left = 80 - Top = 408 + Left = 88 + Top = 488 object opSettingsLabel: TMenuItem Enabled = False Text = 'Optional Settings' diff --git a/src/SettingsUnit.pas b/src/SettingsUnit.pas index aba3d39..66d1025 100644 --- a/src/SettingsUnit.pas +++ b/src/SettingsUnit.pas @@ -116,6 +116,17 @@ TSettingsForm = class(TForm) resetLanucher: TMenuItem; opSettingsLabel: TMenuItem; separatorItem5: TMenuItem; + RenderingExpander: TExpander; + renderingModeLabel: TLabel; + GridPanelLayout2: TGridPanelLayout; + Layout1: TLayout; + GridPanelLayout3: TGridPanelLayout; + allAtOnce: TSpeedButton; + SpeedButton2: TSpeedButton; + Layout4: TLayout; + Label1: TLabel; + Edit1: TEdit; + Label2: TLabel; procedure langBoxChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure aerenderPathSelectClick(Sender: TObject); From 7324bc34fe2179ebc9acf13a6ff49d6d3a01a5cb Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 29 Dec 2020 00:01:33 +1000 Subject: [PATCH 07/29] UX/UI Updates --- src/AErender_Launcher.dpr | 1 + src/AErender_Launcher.dproj | 1 + src/ImportUnit.fmx | 28 +- src/MainUnit.fmx | 16638 +++++++++------- src/MainUnit.pas | 249 +- src/OutputModuleEditorUnit.fmx | 130 +- .../AERFMXStyleMacOSAnimated.style | 887 +- .../AERFMXStyleWindowsAnimated.style | 62 +- styles/AErender Modern/AERFMXStyleMacOS.style | 230 + .../AErender Modern/AERFMXStyleWindows.style | 208 + 10 files changed, 10419 insertions(+), 8015 deletions(-) diff --git a/src/AErender_Launcher.dpr b/src/AErender_Launcher.dpr index 0c1f80b..593de63 100644 --- a/src/AErender_Launcher.dpr +++ b/src/AErender_Launcher.dpr @@ -33,6 +33,7 @@ uses FMX.Forms, FMX.Graphics in 'lib\FMX.Graphics.pas', FMX.Ani in 'lib\FMX.Ani.pas', + FMX.CompLabel in 'lib\Components\TCompLabel\Package\FMX.CompLabel.pas', SplashScreenUnit in 'SplashScreenUnit.pas' {SplashScreenForm}, MainUnit in 'MainUnit.pas' {MainForm}, SettingsUnit in 'SettingsUnit.pas' {SettingsForm}, diff --git a/src/AErender_Launcher.dproj b/src/AErender_Launcher.dproj index b73baa8..3e095d0 100644 --- a/src/AErender_Launcher.dproj +++ b/src/AErender_Launcher.dproj @@ -372,6 +372,7 @@ +
SplashScreenForm
diff --git a/src/ImportUnit.fmx b/src/ImportUnit.fmx index a50d7aa..8f878b4 100644 --- a/src/ImportUnit.fmx +++ b/src/ImportUnit.fmx @@ -17,7 +17,7 @@ object ImportForm: TImportForm object topLayout: TLayout Align = Top Size.Width = 640.000000000000000000 - Size.Height = 33.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 3 object importLabel: TLabel @@ -25,7 +25,7 @@ object ImportForm: TImportForm StyledSettings = [Family, FontColor] Margins.Left = 20.000000000000000000 Size.Width = 322.000000000000000000 - Size.Height = 33.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 14.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} @@ -43,13 +43,13 @@ object ImportForm: TImportForm Margins.Right = 10.000000000000000000 Margins.Bottom = 5.000000000000000000 Size.Width = 288.000000000000000000 - Size.Height = 23.000000000000000000 + Size.Height = 22.000000000000000000 Size.PlatformDefault = False end end object projectPathLayout: TLayout Align = Top - Position.Y = 33.000000000000000000 + Position.Y = 32.000000000000000000 Size.Width = 640.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False @@ -84,7 +84,7 @@ object ImportForm: TImportForm Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 Size.Width = 326.000000000000000000 - Size.Height = 335.000000000000000000 + Size.Height = 336.000000000000000000 Size.PlatformDefault = False Text = 'Compositions' TabOrder = 5 @@ -94,7 +94,7 @@ object ImportForm: TImportForm Margins.Right = 10.000000000000000000 Margins.Bottom = 10.000000000000000000 Position.X = 10.000000000000000000 - Position.Y = 298.000000000000000000 + Position.Y = 299.000000000000000000 Size.Width = 306.000000000000000000 Size.Height = 27.000000000000000000 Size.PlatformDefault = False @@ -148,7 +148,7 @@ object ImportForm: TImportForm object BufferedLayout1: TBufferedLayout Align = Client Size.Width = 326.000000000000000000 - Size.Height = 298.000000000000000000 + Size.Height = 299.000000000000000000 Size.PlatformDefault = False object compositions: TListBox Align = Client @@ -157,7 +157,7 @@ object ImportForm: TImportForm Margins.Right = 10.000000000000000000 Margins.Bottom = 5.000000000000000000 Size.Width = 306.000000000000000000 - Size.Height = 273.000000000000000000 + Size.Height = 274.000000000000000000 Size.PlatformDefault = False DisableFocusEffect = True DefaultItemStyles.ItemStyle = '' @@ -166,17 +166,17 @@ object ImportForm: TImportForm ShowCheckboxes = True OnChange = compositionsChange OnChangeCheck = compositionsChangeCheck - Viewport.Width = 306.000000000000000000 - Viewport.Height = 273.000000000000000000 + Viewport.Width = 302.000000000000000000 + Viewport.Height = 270.000000000000000000 end end end object compImportLayout: TLayout Align = Right Position.X = 336.000000000000000000 - Position.Y = 65.000000000000000000 + Position.Y = 64.000000000000000000 Size.Width = 304.000000000000000000 - Size.Height = 345.000000000000000000 + Size.Height = 346.000000000000000000 Size.PlatformDefault = False TabOrder = 7 object compProp: TGroupBox @@ -185,7 +185,7 @@ object ImportForm: TImportForm Margins.Top = 5.000000000000000000 Margins.Right = 10.000000000000000000 Size.Width = 289.000000000000000000 - Size.Height = 213.000000000000000000 + Size.Height = 214.000000000000000000 Size.PlatformDefault = False Text = 'Composition Properties' TabOrder = 0 @@ -262,7 +262,7 @@ object ImportForm: TImportForm Margins.Right = 10.000000000000000000 Margins.Bottom = 5.000000000000000000 Position.X = 5.000000000000000000 - Position.Y = 218.000000000000000000 + Position.Y = 219.000000000000000000 Size.Width = 289.000000000000000000 Size.Height = 122.000000000000000000 Size.PlatformDefault = False diff --git a/src/MainUnit.fmx b/src/MainUnit.fmx index 80a7e5a..a2d1bd8 100644 --- a/src/MainUnit.fmx +++ b/src/MainUnit.fmx @@ -2,8 +2,8 @@ object MainForm: TMainForm Left = 0 Top = 0 Caption = 'AErender Launcher BETA' - ClientHeight = 561 - ClientWidth = 701 + ClientHeight = 671 + ClientWidth = 1212 Position = MainFormCenter Quality = HighQuality SystemStatusBar.BackgroundColor = claViolet @@ -7494,490 +7494,494 @@ object MainForm: TMainForm Platform = 'Windows' ResourcesBin = { 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 - AF00060B627574746F6E7374796C6503C5040609656469747374796C6503AE05 - 060A6C6162656C7374796C65032001060D67726F7570626F787374796C65038E - 02060D747261636B6261727374796C65038C07060D636865636B626F78737479 - 6C6503930506147363726F6C6C62617268747261636B7374796C65033B010614 + AF00060B627574746F6E7374796C6503BA040609656469747374796C6503A305 + 060A6C6162656C7374796C65031501060D67726F7570626F787374796C650383 + 02060D747261636B6261727374796C65038107060D636865636B626F78737479 + 6C6503880506147363726F6C6C62617268747261636B7374796C65033B010614 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 - 6172626F74746F6D627574746F6E032D0406137363726F6C6C6261726C656674 - 627574746F6E03440406147363726F6C6C6261727269676874627574746F6E03 - 450406127363726F6C6C626172746F70627574746F6E034304060E7363726F6C - 6C6261727374796C65036304060A7468756D627374796C65033B02060B737769 - 7463687374796C6503DC01060D636F6D626F626F787374796C65030108060E63 - 6F6D626F656469747374796C65038D09060F746162636F6E74726F6C7374796C - 6503A701060B746162646F747374796C65035901060C7461626974656D737479 - 6C6503EF04060D7468756D626261727374796C65034F03060C6C697374626F78 - 7374796C6503AD07060D6C697374626F78666F6F746572038B0106106C697374 - 626F786974656D7374796C6503260306126C697374626F78706C61696E686561 - 6465720346020609677269647374796C65039008060F6865616465726974656D - 7374796C6503CE03061970726F67726573736261726D696E696572726F727374 - 796C65036103061170726F677265737363656C6C7374796C6503A50206106D65 - 6E756261726974656D7374796C6503300B060C6D656E756261727374796C6503 - 6C02060D6D656E756974656D7374796C6503540B06126D656E75736570617261 - 746F727374796C6503E501060D6D656E75766965777374796C65039102060E69 - 6D61676563656C6C7374796C65033D01060E706F70757063656C6C7374796C65 - 03D103060D7465787463656C6C7374796C6503A60106096D656D6F7374796C65 - 03E707060E6C696E6B6C6162656C7374796C65035003060E7374617475736261 - 727374796C6503E401060C7370696E626F787374796C65032908060D73697A65 - 677269707374796C6503FB04060C746F6F6C6261727374796C6503CA00061570 - 726F67726573736261726572726F727374796C65036F04060F64726F70746172 - 6765747374796C65037304061464726F707461726765746669656C647374796C - 6503940E060C706F706F7665727374796C65033502060D706F707570626F7873 - 74796C65033D0606147374617475736261726E6F677269707374796C6503D400 - 0613736D616C6C7363726F6C6C6261727374796C6503AE01060D73706C697474 - 65727374796C65036B040610636C6F7365627574746F6E7374796C6503710406 - 0E6D6178627574746F6E7374796C65030104060E726573627574746F6E737479 - 6C65031A04060E6D696E627574746F6E7374796C65031904060F746F6F6C7769 - 6E646F777374796C6503BD0D061177696E646F77626F726465727374796C6503 - 55100610726164696F627574746F6E7374796C6503B9050618756C63656E7465 - 72726164696F627574746F6E7374796C65035D050617756C7269676874726164 - 696F627574746F6E7374796C650360050616756C6C656674726164696F627574 - 746F6E7374796C65035B05061070726F67726573736261727374796C65036A04 - 060D657870616E6465727374796C650371060613657870616E64657262757474 - 6F6E7374796C650381020615657870616E646572636865636B626F787374796C - 6503DB05060E6C6162656C66696C6C7374796C6503C3010613636F6D626F6564 - 69746572726F727374796C65039209061E70726F6772657373626172696E6465 - 7465726D696E61626C657374796C650384040611616E69696E64696361746F72 + 6172626F74746F6D627574746F6E03220406137363726F6C6C6261726C656674 + 627574746F6E03390406147363726F6C6C6261727269676874627574746F6E03 + 3A0406127363726F6C6C626172746F70627574746F6E033804060E7363726F6C + 6C6261727374796C65035804060A7468756D627374796C65033B02060B737769 + 7463687374796C6503D101060D636F6D626F626F787374796C6503F607060E63 + 6F6D626F656469747374796C65038209060F746162636F6E74726F6C7374796C + 65039C01060B746162646F747374796C65035001060C7461626974656D737479 + 6C6503E404060D7468756D626261727374796C65034F03060C6C697374626F78 + 7374796C6503A207060D6C697374626F78666F6F74657203800106106C697374 + 626F786974656D7374796C65031B0306126C697374626F78706C61696E686561 + 646572033B020609677269647374796C65038508060F6865616465726974656D + 7374796C6503C303061970726F67726573736261726D696E696572726F727374 + 796C65035603061170726F677265737363656C6C7374796C65039A0206106D65 + 6E756261726974656D7374796C6503250B060C6D656E756261727374796C6503 + 6C02060D6D656E756974656D7374796C6503490B06126D656E75736570617261 + 746F727374796C6503DA01060D6D656E75766965777374796C65039102060E69 + 6D61676563656C6C7374796C65033201060E706F70757063656C6C7374796C65 + 03C603060D7465787463656C6C7374796C65039B0106096D656D6F7374796C65 + 03DC07060E6C696E6B6C6162656C7374796C65034503060E7374617475736261 + 727374796C6503E401060C7370696E626F787374796C65031E08060D73697A65 + 677269707374796C6503F004060C746F6F6C6261727374796C6503CA00061570 + 726F67726573736261726572726F727374796C65036404060F64726F70746172 + 6765747374796C65036804061464726F707461726765746669656C647374796C + 6503890E060C706F706F7665727374796C65032A02060D706F707570626F7873 + 74796C6503320606147374617475736261726E6F677269707374796C6503D400 + 0613736D616C6C7363726F6C6C6261727374796C6503A301060D73706C697474 + 65727374796C650360040610636C6F7365627574746F6E7374796C6503660406 + 0E6D6178627574746F6E7374796C6503F603060E726573627574746F6E737479 + 6C65030F04060E6D696E627574746F6E7374796C65030E04060F746F6F6C7769 + 6E646F777374796C6503B20D061177696E646F77626F726465727374796C6503 + 4A100610726164696F627574746F6E7374796C6503AE050618756C63656E7465 + 72726164696F627574746F6E7374796C650352050617756C7269676874726164 + 696F627574746F6E7374796C650355050616756C6C656674726164696F627574 + 746F6E7374796C65035005061070726F67726573736261727374796C65035F04 + 060D657870616E6465727374796C650366060613657870616E64657262757474 + 6F6E7374796C650376020615657870616E646572636865636B626F787374796C + 6503D005060E6C6162656C66696C6C7374796C6503B8010613636F6D626F6564 + 69746572726F727374796C65038709061E70726F6772657373626172696E6465 + 7465726D696E61626C657374796C650379040611616E69696E64696361746F72 7374796C6503BA010615616E69696E64696361746F72686F727A7374796C6503 8A02060A70616E656C7374796C65031E01060E6C6F67627574746F6E7374796C - 65039507061470726F67726573736261726D696E697374796C65035C03005450 - 46300A5452656374616E676C6500095374796C654E616D65060F6261636B6772 - 6F756E647374796C6505416C69676E070643656E7465720A46696C6C2E436F6C - 6F7207097846463244324432440A53697A652E57696474680500000000000000 - 9407400B53697A652E4865696768740500000000000080D206401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E650756697369626C650800005450463007544C61796F757400095374796C65 - 4E616D65060B627574746F6E7374796C6505416C69676E070643656E7465720A - 53697A652E57696474680500000000000000C805400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508085461624F726465720202000A5452656374616E67 - 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 - 06436C69656E740C436C69704368696C6472656E090A436C6970506172656E74 - 090A46696C6C2E436F6C6F720709784646323032303230074869745465737408 - 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E - 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646343034303430 - 0754726967676572063049734D6F7573654F7665723D747275653B4973507265 - 737365643D66616C73653B4973466F63757365643D66616C73650E5472696767 - 6572496E7665727365063149734D6F7573654F7665723D66616C73653B497350 - 7265737365643D66616C73653B4973466F63757365643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F - 6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463430343034300953746F7056616C7565070978 - 46463137353739430754726967676572062F4973507265737365643D74727565 - 3B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C73 - 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 - 627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C756507097846463241383245320953746F7056616C - 756507097846463137353739430754726967676572062E497350726573736564 - 3D747275653B49734D6F7573654F7665723D747275653B4973466F6375736564 - 3D747275650E54726967676572496E7665727365062F4973507265737365643D - 66616C73653B49734D6F7573654F7665723D747275653B4973466F6375736564 - 3D7472756500000005545465787400095374796C654E616D6506047465787405 - 416C69676E0706436C69656E7413456E61626C6544726167486967686C696768 - 74080748697454657374080A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 - 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 - 5374796C654E616D650609656469747374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000000000C805400B53697A652E4865 - 696768740500000000000000C803401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F726465720203000C5442727573 - 684F626A65637400095374796C654E616D65060A666F726567726F756E640000 - 0C5442727573684F626A65637400095374796C654E616D65060973656C656374 - 696F6E0B42727573682E436F6C6F72070978393632413832453200000B54466F - 6E744F626A65637400095374796C654E616D650604666F6E7409466F6E742E53 - 697A650500000000000000D0024000000A5452656374616E676C650009537479 - 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E - 74730A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A53697A652E57696474680500000000000000C805400B53697A652E486569 - 6768740500000000000000C803401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F720709784646313531353135000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650614656469745374 - 726F6B65416E696D6174696F6E31084475726174696F6E050000000000000000 - 00000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A5374 - 61727456616C756507097846463135313531350953746F7056616C7565070978 - 46463241383245320754726967676572060E4973466F63757365643D74727565 - 0E54726967676572496E7665727365060F4973466F63757365643D66616C7365 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061465 - 6469745374726F6B65416E696D6174696F6E32084475726174696F6E05000000 - 0000000000000007496E7665727365090C50726F70657274794E616D65060C53 - 74726F6B652E436F6C6F720A537461727456616C756507097846463135313531 - 350953746F7056616C7565070978464634433443344307547269676765720621 - 49734D6F7573654F7665723D747275653B4973466F63757365643D66616C7365 - 3B0E54726967676572496E7665727365062249734D6F7573654F7665723D6661 - 6C73653B4973466F63757365643D66616C73653B00000007544C61796F757400 - 095374796C654E616D650607627574746F6E7305416C69676E07055269676874 - 064C6F636B6564090B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E526967687405000000000000008000400E4D617267696E73 - 2E426F74746F6D05000000000000008000400A506F736974696F6E2E58050000 - 0000000000C004400A506F736974696F6E2E5905000000000000008000400A53 - 697A652E57696474680500000000000000C804400B53697A652E486569676874 - 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 - 08000007544C61796F757400095374796C654E616D650607636F6E74656E7405 - 416C69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C65 - 667405000000000000008001400B4D617267696E732E546F7005000000000000 - 008000400D4D617267696E732E526967687405000000000000008000400E4D61 - 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 - 74680500000000000000A804400B53697A652E48656967687405000000000000 - 00A803401453697A652E506C6174666F726D44656661756C7408000006544C61 - 62656C00095374796C654E616D65060670726F6D7074064C6F636B656409074F - 706163697479050000000000000080FE3F165465787453657474696E67732E46 - 6F6E74436F6C6F720708636C6157686974650454657874060454657874000000 - 5450463007544C61796F757400095374796C654E616D65060A6C6162656C7374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000C805400B53697A652E4865696768740500000000000000C803401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F7264657202040005545465787400095374796C654E616D65060474657874 - 05416C69676E0708436F6E74656E74730748697454657374080A53697A652E57 - 696474680500000000000000C805400B53697A652E4865696768740500000000 - 000000C803401453697A652E506C6174666F726D44656661756C740816546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 - 5450463007544C61796F757400095374796C654E616D65060D67726F7570626F - 787374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 00000000000000F004400B53697A652E4865696768740500000000000000C804 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F726465720205000A5452656374616E676C6500095374796C654E61 - 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946 - 696C6C2E4B696E6407044E6F6E650748697454657374080C4D617267696E732E - 4C6566740500000000000000C000400B4D617267696E732E546F700500000000 - 0000009002400D4D617267696E732E52696768740500000000000000C000400E - 4D617267696E732E426F74746F6D0500000000000000C000400A53697A652E57 - 696474680500000000000000D804400B53697A652E4865696768740500000000 - 0000009804401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F720709784646313531353135000554546578740009537479 - 6C654E616D65060474657874084175746F53697A65090A436C6970506172656E - 74090748697454657374080C4D617267696E732E4C6566740500000000000000 - A002400A506F736974696F6E2E5805000000000060559502400A506F73697469 - 6F6E2E590500000000004055D501C00A53697A652E5769647468050000000000 - 00B8C703400B53697A652E4865696768740500000000000060FF02401453697A - 652E506C6174666F726D44656661756C7408165465787453657474696E67732E - 466F6E74436F6C6F720708636C615768697465155465787453657474696E6773 - 2E576F72645772617008000000005450463007544C61796F757400095374796C - 654E616D65060D747261636B6261727374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000000000C805400B53697A652E4865 - 696768740500000000000000C805401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F7264657202060B466978656448 - 65696768740211000A5452656374616E676C6500095374796C654E616D650606 - 68747261636B05416C69676E070A5665727443656E7465720A46696C6C2E436F - 6C6F7207097846463135313531350748697454657374080A506F736974696F6E - 2E590500000000000000BC04400A53697A652E57696474680500000000000000 - C805400B53697A652E4865696768740500000000000000A001401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000A5452656374616E676C6500095374796C654E616D65060A6261636B67 - 726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407 - 044E6F6E65064C6F636B6564090748697454657374080C4D617267696E732E4C - 6566740500000000000000C001400B4D617267696E732E546F70050000000000 - 000080FF3F0D4D617267696E732E52696768740500000000000000C001400E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 - 6474680500000000000000B005400B53697A652E486569676874050000000000 - 0000C000401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C - 654E616D650609686967686C6967687405416C69676E07044C6566740A46696C - 6C2E436F6C6F7207097846463241383245320748697454657374080C50616464 - 696E672E4C6566740500000000000000A002400A53697A652E57696474680500 - 000000000000F003400B53697A652E4865696768740500000000000000A00140 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E6500000B54476C6F774566666563740008536F66746E657373 - 050000000000CDCCCCFC3F09476C6F77436F6C6F720709784646324138324532 - 074F706163697479050000000000000080FF3F07456E61626C6564080000000A - 5452656374616E676C6500095374796C654E616D65060676747261636B05416C - 69676E070A486F727A43656E7465720A46696C6C2E436F6C6F72070978464631 - 35313531350748697454657374080A506F736974696F6E2E5805000000000000 - 00BC04400A53697A652E57696474680500000000000000A001400B53697A652E - 4865696768740500000000000000C805401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374 - 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 - 676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65064C6F63 - 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 - 0000C001400B4D617267696E732E546F70050000000000000080FF3F0D4D6172 - 67696E732E52696768740500000000000000C001400E4D617267696E732E426F - 74746F6D050000000000000080FF3F0A53697A652E5769647468050000000000 - 00000000000B53697A652E4865696768740500000000000000C405401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6500000A5452656374616E676C6500095374796C654E616D6506096869 - 67686C6967687405416C69676E0703546F700A46696C6C2E436F6C6F72070978 - 46463241383245320748697454657374080A53697A652E576964746805000000 - 00000000A001400B53697A652E4865696768740500000000000000F003401453 + 65038A07061470726F67726573736261726D696E697374796C65035103061B74 + 72656576696577657870616E646572627574746F6E7374796C65037E02061174 + 726565766965776974656D7374796C65031305060D7472656576696577737479 + 6C650336070619616374696F6E746F6F6C627574746F6E6D756C746976696577 + 033F07060E616464627574746F6E7374796C650337070617696E666F746F6F6C + 627574746F6E6D756C74697669657703B40D061B6F7267616E697A65746F6F6C + 627574746F6E6D756C74697669657703F906061B73657474696E6773746F6F6C + 627574746F6E6D756C746976696577038813061172656D6F7665627574746F6E + 7374796C6503DA060614706F7075706261636B67726F756E647374796C6503BA + 0000545046300A5452656374616E676C6500095374796C654E616D65060F6261 + 636B67726F756E647374796C6505416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463244324432440A53697A652E576964746805000000 + 000000009407400B53697A652E4865696768740500000000000080D206401453 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6500000B54476C6F774566666563740008536F66746E6573730500 - 00000000CDCCCCFC3F09476C6F77436F6C6F720709784646324138324532074F - 706163697479050000000000000080FF3F07456E61626C656408000000065454 - 68756D6200095374796C654E616D650606687468756D62064C6F636B6564090A - 506F736974696F6E2E580500000000003033AB03400A506F736974696F6E2E59 - 050000000000FFFFA304400A53697A652E57696474680500000000000000F002 - 400B53697A652E4865696768740500000000000000F002401453697A652E506C - 6174666F726D44656661756C74080B5374796C654C6F6F6B7570060D7468756D - 626261727374796C65000006545468756D6200095374796C654E616D65060676 - 7468756D62064C6F636B6564090A506F736974696F6E2E58050000000000CBCC - A804400A506F736974696F6E2E590500000000009899B103400A53697A652E57 - 696474680500000000000000F002400B53697A652E4865696768740500000000 - 000000F002401453697A652E506C6174666F726D44656661756C74080B537479 - 6C654C6F6F6B7570060D7468756D626261727374796C65000000545046300754 - 4C61796F757400095374796C654E616D65060D636865636B626F787374796C65 - 05416C69676E070643656E7465720A53697A652E5769647468050000000000AC - AA8006400B53697A652E48656967687405000000000058559904401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 - 64657202070007544C61796F75740005416C69676E07044C6566740A53697A65 - 2E576964746805000000000000009003400B53697A652E486569676874050000 - 00000058559904401453697A652E506C6174666F726D44656661756C7408000A - 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464632 - 30323032300748697454657374080A53697A652E576964746805000000000000 - 00F002400B53697A652E4865696768740500000000000000F002401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 784646313531353135000A5452656374616E676C6500095374796C654E616D65 - 060A52656374616E676C653105416C69676E0706436C69656E740A46696C6C2E - 436F6C6F720709784646324138324532074869745465737408074F7061636974 - 7905000000000000000000000C4D617267696E732E4C65667405000000000000 - 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 - 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D05000000000000008000400A53697A652E576964746805000000000000 - 00B002400B53697A652E4865696768740500000000000000B002401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D6506 - 1B6368656368626F7856697362696C697479416E696D6174696F6E3108447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D6506074F - 7061636974790A537461727456616C756505000000000000000000000953746F - 7056616C75650500000000000000C805400754726967676572060E4973436865 - 636B65643D747275650E54726967676572496E7665727365060F497343686563 - 6B65643D66616C73650000000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650618636865636B626F785374726F6B65416E696D6174696F6E + 07044E6F6E650756697369626C650800005450463007544C61796F7574000953 + 74796C654E616D65060B627574746F6E7374796C6505416C69676E070643656E + 7465720A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E74 + 0C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 696474680500000000000000C805400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E 31084475726174696F6E05000000000000000000000C50726F70657274794E61 - 6D65060C5374726F6B652E436F6C6F720A537461727456616C75650709784646 - 3135313531350953746F7056616C756507097846463241383245320754726967 - 676572060E4973436865636B65643D747275650E54726967676572496E766572 - 7365060F4973436865636B65643D66616C736500000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650617636865636B626F78436F6C6F7241 - 6E696D6174696F6E31084475726174696F6E05000000000000000000000C5072 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 + 323032300953746F7056616C7565070978464634303430343007547269676765 + 72063049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C73653B4973466F63757365643D66616C73650E54726967676572496E766572 + 7365063149734D6F7573654F7665723D66616C73653B4973507265737365643D + 66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 + 6E696D6174696F6E32084475726174696F6E05000000000000000000000C5072 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463230323032300953746F7056616C756507097846463430343034 - 300754726967676572061049734D6F7573654F7665723D747275650E54726967 - 676572496E7665727365061149734D6F7573654F7665723D66616C7365000000 + 6507097846463430343034300953746F7056616C756507097846463137353739 + 430754726967676572062F4973507265737365643D747275653B49734D6F7573 + 654F7665723D747275653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E33084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463241383245320953746F7056616C75650709784646 + 3137353739430754726967676572062E4973507265737365643D747275653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 + 726967676572496E7665727365062F4973507265737365643D66616C73653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650000 0005545465787400095374796C654E616D6506047465787405416C69676E0706 - 436C69656E740A53697A652E57696474680500000000005855DD05400B53697A - 652E48656967687405000000000058559904401453697A652E506C6174666F72 - 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 - 0708636C615768697465000000545046300A5452656374616E676C6500095374 - 796C654E616D6506147363726F6C6C62617268747261636B7374796C6505416C - 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463135313531 - 350748697454657374080A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 56697369626C65080006545468756D6200095374796C654E616D650605746875 - 6D62064C6F636B6564090A53697A652E57696474680500000000000000800340 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D62 - 7374796C65000000545046300A5452656374616E676C6500095374796C654E61 - 6D6506147363726F6C6C62617276747261636B7374796C6505416C69676E0706 - 43656E7465720A46696C6C2E436F6C6F72070978464631353135313507486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669736962 - 6C65080006545468756D6200095374796C654E616D6506057468756D62064C6F - 636B6564090A53697A652E57696474680500000000000000C804400B53697A65 - 2E48656967687405000000000000008003401453697A652E506C6174666F726D - 44656661756C74080B5374796C654C6F6F6B7570060A7468756D627374796C65 - 0000005450463007544C61796F757400095374796C654E616D6506157363726F - 6C6C626172626F74746F6D627574746F6E05416C69676E070643656E74657207 - 56697369626C6508085461624F726465720208000A5452656374616E676C6500 - 095374796C654E616D65060A6261636B67726F756E6405416C69676E0706436C - 69656E740C436C69704368696C6472656E090A436C6970506172656E74090A46 - 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 - 7A652E57696474680500000000000000C804400B53697A652E48656967687405 - 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D61 - 74696F6E31084475726174696F6E05000000000000000000000C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463230323032300953746F7056616C75650709784646343034303430075472 - 6967676572062049734D6F7573654F7665723D747275653B4973507265737365 - 643D66616C73650E54726967676572496E7665727365062149734D6F7573654F - 7665723D66616C73653B4973507265737365643D66616C736500000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F - 6C6F72416E696D6174696F6E32084475726174696F6E05000000000000000000 - 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463430343034300953746F7056616C7565070978464631 - 37353739430754726967676572061F4973507265737365643D747275653B4973 - 4D6F7573654F7665723D747275650E54726967676572496E7665727365062049 - 73507265737365643D66616C73653B49734D6F7573654F7665723D7472756500 - 000007544C61796F757400095374796C654E616D6506074C61796F7574310541 - 6C69676E070643656E7465720A53697A652E57696474680500000000000000A0 - 02400B53697A652E4865696768740500000000000000C001401453697A652E50 - 6C6174666F726D44656661756C74080005545061746800095374796C654E616D - 650605506174683105416C69676E0706436C69656E7409446174612E50617468 - 0A3400000004000000000000000000C8420000C84201000000000096430000C8 - 42010000000000484300009643030000000000C8420000C8420A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080A53697A652E576964 - 74680500000000000000A002400B53697A652E48656967687405000000000000 - 00C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000000005450463007544C61796F757400095374 - 796C654E616D6506137363726F6C6C6261726C656674627574746F6E05416C69 - 676E070643656E7465720756697369626C6508085461624F726465720209000A - 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E0706436C69656E740C436C69704368696C6472656E090A436C - 6970506172656E74090A46696C6C2E436F6C6F72070978464632303230323007 - 48697454657374080A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F - 6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463230323032300953746F7056616C7565070978 - 46463430343034300754726967676572062049734D6F7573654F7665723D7472 - 75653B4973507265737365643D66616C73650E54726967676572496E76657273 - 65062149734D6F7573654F7665723D66616C73653B4973507265737365643D66 - 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F - 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463430343034300953746F70 - 56616C756507097846463137353739430754726967676572061F497350726573 - 7365643D747275653B49734D6F7573654F7665723D747275650E547269676765 - 72496E766572736506204973507265737365643D66616C73653B49734D6F7573 - 654F7665723D7472756500000007544C61796F757400095374796C654E616D65 - 06074C61796F75743105416C69676E070643656E7465720A53697A652E576964 - 74680500000000000000A002400B53697A652E48656967687405000000000000 - 00C001401453697A652E506C6174666F726D44656661756C7408000554506174 - 6800095374796C654E616D650605506174683105416C69676E0706436C69656E - 7409446174612E506174680A3400000004000000000000000000C8420000C842 - 01000000000096430000C842010000000000484300009643030000000000C842 - 0000C8420A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080D526F746174696F6E416E676C650500000000000000B405400A53697A65 - 2E57696474680500000000000000A002400B53697A652E486569676874050000 - 0000000000C001401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 - 00095374796C654E616D6506147363726F6C6C6261727269676874627574746F - 6E05416C69676E070643656E7465720756697369626C6508085461624F726465 - 72020A000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0706436C69656E740C436C69704368696C647265 - 6E090A436C6970506172656E74090A46696C6C2E436F6C6F7207097846463230 - 323032300748697454657374080A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000C804401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 - 627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C756507097846463230323032300953746F7056616C - 756507097846463430343034300754726967676572062049734D6F7573654F76 - 65723D747275653B4973507265737365643D66616C73650E5472696767657249 - 6E7665727365062149734D6F7573654F7665723D66616C73653B497350726573 - 7365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E32084475 - 726174696F6E05000000000000000000000C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646343034303430 - 0953746F7056616C756507097846463137353739430754726967676572061F49 - 73507265737365643D747275653B49734D6F7573654F7665723D747275650E54 - 726967676572496E766572736506204973507265737365643D66616C73653B49 - 734D6F7573654F7665723D7472756500000007544C61796F757400095374796C - 654E616D6506074C61796F75743105416C69676E070643656E7465720A53697A - 652E57696474680500000000000000A002400B53697A652E4865696768740500 - 000000000000C001401453697A652E506C6174666F726D44656661756C740800 - 05545061746800095374796C654E616D650605506174683105416C69676E0706 - 436C69656E7409446174612E506174680A3400000004000000000000000000C8 - 420000C84201000000000096430000C842010000000000484300009643030000 - 000000C8420000C8420A46696C6C2E436F6C6F720708636C6157686974650748 - 697454657374080D526F746174696F6E416E676C650500000000000000B405C0 - 0A53697A652E57696474680500000000000000A002400B53697A652E48656967 - 68740500000000000000C001401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C - 61796F757400095374796C654E616D6506127363726F6C6C626172746F706275 - 74746F6E05416C69676E070643656E7465720756697369626C6508085461624F - 72646572020B000A5452656374616E676C6500095374796C654E616D65060A62 - 61636B67726F756E6405416C69676E0706436C69656E740C436C69704368696C - 6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F7207097846 + 436C69656E7413456E61626C6544726167486967686C69676874080748697454 + 657374080A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C7408165465787453657474696E67732E466F6E74436F6C6F720708 + 636C6157686974650000005450463007544C61796F757400095374796C654E61 + 6D650609656469747374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000C805400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508000C5442727573684F626A65637400095374796C654E616D65 + 060A666F726567726F756E6400000C5442727573684F626A6563740009537479 + 6C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72070978 + 393632413832453200000B54466F6E744F626A65637400095374796C654E616D + 650604666F6E7409466F6E742E53697A650500000000000000D0024000000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650614656469745374726F6B65416E696D6174696F6E3108447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060C53 + 74726F6B652E436F6C6F720A537461727456616C756507097846463135313531 + 350953746F7056616C756507097846463241383245320754726967676572060E + 4973466F63757365643D747275650E54726967676572496E7665727365060F49 + 73466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650614656469745374726F6B65416E696D6174696F6E + 32084475726174696F6E050000000000000000000007496E7665727365090C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463135313531350953746F7056616C756507097846463443 + 344334430754726967676572062149734D6F7573654F7665723D747275653B49 + 73466F63757365643D66616C73653B0E54726967676572496E76657273650622 + 49734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C73 + 653B00000007544C61796F757400095374796C654E616D650607627574746F6E + 7305416C69676E07055269676874064C6F636B6564090B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 + 0A506F736974696F6E2E580500000000000000C004400A506F736974696F6E2E + 5905000000000000008000400A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000A803401453697A652E50 + 6C6174666F726D44656661756C7408000007544C61796F757400095374796C65 + 4E616D650607636F6E74656E7405416C69676E0706436C69656E74064C6F636B + 6564090C4D617267696E732E4C65667405000000000000008001400B4D617267 + 696E732E546F7005000000000000008000400D4D617267696E732E5269676874 + 05000000000000008000400E4D617267696E732E426F74746F6D050000000000 + 00008000400A53697A652E57696474680500000000000000A804400B53697A65 + 2E4865696768740500000000000000A803401453697A652E506C6174666F726D + 44656661756C7408000006544C6162656C00095374796C654E616D6506067072 + 6F6D7074064C6F636B656409074F706163697479050000000000000080FE3F16 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 04546578740604546578740000005450463007544C61796F757400095374796C + 654E616D65060A6C6162656C7374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000000C805400B53697A652E4865696768 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 74080756697369626C65080005545465787400095374796C654E616D65060474 + 65787405416C69676E0708436F6E74656E74730748697454657374080A53697A + 652E57696474680500000000000000C805400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 0000005450463007544C61796F757400095374796C654E616D65060D67726F75 + 70626F787374796C6505416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000F004400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E64 + 07044E6F6E650748697454657374080C4D617267696E732E4C65667405000000 + 00000000C000400B4D617267696E732E546F7005000000000000009002400D4D + 617267696E732E52696768740500000000000000C000400E4D617267696E732E + 426F74746F6D0500000000000000C000400A53697A652E576964746805000000 + 00000000D804400B53697A652E48656967687405000000000000009804401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350005545465787400095374796C654E616D650604 + 74657874084175746F53697A65090A436C6970506172656E7409074869745465 + 7374080C4D617267696E732E4C6566740500000000000000A002400A506F7369 + 74696F6E2E5805000000000060559502400A506F736974696F6E2E5905000000 + 00004055D501C00A53697A652E576964746805000000000000B8C703400B5369 + 7A652E4865696768740500000000000060FF02401453697A652E506C6174666F + 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F + 720708636C615768697465155465787453657474696E67732E576F7264577261 + 7008000000005450463007544C61796F757400095374796C654E616D65060D74 + 7261636B6261727374796C6505416C69676E070643656E7465720A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C805401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C65080B46697865644865696768740211000A5452656374616E676C65 + 00095374796C654E616D65060668747261636B05416C69676E070A5665727443 + 656E7465720A46696C6C2E436F6C6F7207097846463135313531350748697454 + 657374080A506F736974696F6E2E590500000000000000BC04400A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000A001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730946696C6C2E4B696E6407044E6F6E65064C6F636B656409074869745465 + 7374080C4D617267696E732E4C6566740500000000000000C001400B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 0500000000000000C001400E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A53697A652E57696474680500000000000000B005400B53697A65 + 2E4865696768740500000000000000C000401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265 + 6374616E676C6500095374796C654E616D650609686967686C6967687405416C + 69676E07044C6566740A46696C6C2E436F6C6F72070978464632413832453207 + 48697454657374080C50616464696E672E4C6566740500000000000000A00240 + 0A53697A652E57696474680500000000000000F003400B53697A652E48656967 + 68740500000000000000A001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666 + 6563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C + 6F720709784646324138324532074F706163697479050000000000000080FF3F + 07456E61626C6564080000000A5452656374616E676C6500095374796C654E61 + 6D65060676747261636B05416C69676E070A486F727A43656E7465720A46696C + 6C2E436F6C6F7207097846463135313531350748697454657374080A506F7369 + 74696F6E2E580500000000000000BC04400A53697A652E576964746805000000 + 00000000A001400B53697A652E4865696768740500000000000000C805401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000A5452656374616E676C6500095374796C654E616D65060A62 + 61636B67726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B + 696E6407044E6F6E65064C6F636B6564090748697454657374080C4D61726769 + 6E732E4C6566740500000000000000C001400B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E52696768740500000000000000C0 + 01400E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A + 652E576964746805000000000000000000000B53697A652E4865696768740500 + 000000000000C405401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009 + 5374796C654E616D650609686967686C6967687405416C69676E0703546F700A + 46696C6C2E436F6C6F7207097846463241383245320748697454657374080A53 + 697A652E57696474680500000000000000A001400B53697A652E486569676874 + 0500000000000000F003401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F774566666563 + 740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F72 + 0709784646324138324532074F706163697479050000000000000080FF3F0745 + 6E61626C65640800000006545468756D6200095374796C654E616D6506066874 + 68756D62064C6F636B6564090A506F736974696F6E2E580500000000003033AB + 03400A506F736974696F6E2E59050000000000FFFFA304400A53697A652E5769 + 6474680500000000000000F002400B53697A652E486569676874050000000000 + 0000F002401453697A652E506C6174666F726D44656661756C74080B5374796C + 654C6F6F6B7570060D7468756D626261727374796C65000006545468756D6200 + 095374796C654E616D650606767468756D62064C6F636B6564090A506F736974 + 696F6E2E58050000000000CBCCA804400A506F736974696F6E2E590500000000 + 009899B103400A53697A652E57696474680500000000000000F002400B53697A + 652E4865696768740500000000000000F002401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B7570060D7468756D6262617273 + 74796C650000005450463007544C61796F757400095374796C654E616D65060D + 636865636B626F787374796C6505416C69676E070643656E7465720A53697A65 + 2E5769647468050000000000ACAA8006400B53697A652E486569676874050000 + 00000058559904401453697A652E506C6174666F726D44656661756C74080756 + 697369626C65080007544C61796F75740005416C69676E07044C6566740A5369 + 7A652E576964746805000000000000009003400B53697A652E48656967687405 + 000000000058559904401453697A652E506C6174666F726D44656661756C7408 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 463230323032300748697454657374080A53697A652E57696474680500000000 - 000000C804400B53697A652E4865696768740500000000000000C80440145369 + 000000F002400B53697A652E4865696768740500000000000000F00240145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653105416C69676E0706436C69656E740A46696C + 6C2E436F6C6F720709784646324138324532074869745465737408074F706163 + 69747905000000000000000000000C4D617267696E732E4C6566740500000000 + 0000008000400B4D617267696E732E546F7005000000000000008000400D4D61 + 7267696E732E526967687405000000000000008000400E4D617267696E732E42 + 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 + 000000B002400B53697A652E4865696768740500000000000000B00240145369 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F - 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463230323032300953746F70 - 56616C756507097846463430343034300754726967676572062049734D6F7573 - 654F7665723D747275653B4973507265737365643D66616C73650E5472696767 - 6572496E7665727365062149734D6F7573654F7665723D66616C73653B497350 - 7265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E32 - 084475726174696F6E05000000000000000000000C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646343034 - 3034300953746F7056616C756507097846463137353739430754726967676572 - 061F4973507265737365643D747275653B49734D6F7573654F7665723D747275 - 650E54726967676572496E766572736506204973507265737365643D66616C73 - 653B49734D6F7573654F7665723D7472756500000007544C61796F7574000953 - 74796C654E616D6506074C61796F75743105416C69676E070643656E7465720A - 53697A652E57696474680500000000000000A002400B53697A652E4865696768 - 740500000000000000C001401453697A652E506C6174666F726D44656661756C - 74080005545061746800095374796C654E616D650605506174683105416C6967 - 6E0706436C69656E7409446174612E506174680A340000000400000000000000 - 0000C8420000C84201000000000096430000C842010000000000484300009643 - 030000000000C8420000C8420A46696C6C2E436F6C6F720708636C6157686974 - 650748697454657374080D526F746174696F6E416E676C650500000000000000 - B406400A53697A652E57696474680500000000000000A002400B53697A652E48 + 044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D + 65061B6368656368626F7856697362696C697479416E696D6174696F6E310844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 074F7061636974790A537461727456616C756505000000000000000000000953 + 746F7056616C75650500000000000000C805400754726967676572060E497343 + 6865636B65643D747275650E54726967676572496E7665727365060F49734368 + 65636B65643D66616C73650000000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650618636865636B626F785374726F6B65416E696D617469 + 6F6E31084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565070978 + 46463135313531350953746F7056616C75650709784646324138324532075472 + 6967676572060E4973436865636B65643D747275650E54726967676572496E76 + 65727365060F4973436865636B65643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650617636865636B626F78436F6C6F + 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572061049734D6F7573654F7665723D747275650E5472 + 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 0706436C69656E740A53697A652E57696474680500000000005855DD05400B53 + 697A652E48656967687405000000000058559904401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C615768697465000000545046300A5452656374616E676C650009 + 5374796C654E616D6506147363726F6C6C62617268747261636B7374796C6505 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646313531 + 3531350748697454657374080A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650756697369626C65080006545468756D6200095374796C654E616D65060574 + 68756D62064C6F636B6564090A53697A652E5769647468050000000000000080 + 03400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060A746875 + 6D627374796C65000000545046300A5452656374616E676C6500095374796C65 + 4E616D6506147363726F6C6C62617276747261636B7374796C6505416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463135313531350748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507566973 + 69626C65080006545468756D6200095374796C654E616D6506057468756D6206 + 4C6F636B6564090A53697A652E57696474680500000000000000C804400B5369 + 7A652E48656967687405000000000000008003401453697A652E506C6174666F + 726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D62737479 + 6C650000005450463007544C61796F757400095374796C654E616D6506157363 + 726F6C6C626172626F74746F6D627574746F6E05416C69676E070643656E7465 + 720756697369626C6508000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C6970 + 4368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206204973 + 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 + 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 + 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E32084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464631373537394307547269 + 67676572061F4973507265737365643D747275653B49734D6F7573654F766572 + 3D747275650E54726967676572496E766572736506204973507265737365643D + 66616C73653B49734D6F7573654F7665723D7472756500000007544C61796F75 + 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E + 7465720A53697A652E57696474680500000000000000A002400B53697A652E48 65696768740500000000000000C001401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054504630 - 07544C61796F757400095374796C654E616D65060E7363726F6C6C6261727374 - 796C6505416C69676E070643656E7465720756697369626C6508085461624F72 - 646572020C000754427574746F6E00095374796C654E616D65060A6C65667462 - 7574746F6E05416C69676E07044C656674064C6F636B6564090A506F73697469 - 6F6E2E5905000000000000008003400A53697A652E5769647468050000000000 - 00008003400B53697A652E48656967687405000000000000009003401453697A - 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75700613 - 7363726F6C6C6261726C656674627574746F6E00000754427574746F6E000953 - 74796C654E616D65060B7269676874627574746F6E05416C69676E0705526967 - 6874064C6F636B6564090A506F736974696F6E2E580500000000000000880440 - 0A506F736974696F6E2E5905000000000000008003400A53697A652E57696474 - 6805000000000000008003400B53697A652E4865696768740500000000000000 - 9003401453697A652E506C6174666F726D44656661756C74080B5374796C654C - 6F6F6B757006147363726F6C6C6261727269676874627574746F6E0000075442 - 7574746F6E00095374796C654E616D65060C626F74746F6D627574746F6E0541 - 6C69676E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E5905 - 000000000000008804400A53697A652E57696474680500000000000000C80440 - 0B53697A652E48656967687405000000000000008003401453697A652E506C61 - 74666F726D44656661756C74080B5374796C654C6F6F6B757006157363726F6C - 6C626172626F74746F6D627574746F6E00000654547261636B00095374796C65 - 4E616D65060668747261636B05416C69676E0706436C69656E74064C6F636B65 - 64090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E - 576964746805000000000000009003400B53697A652E48656967687405000000 + 6661756C74080005545061746800095374796C654E616D650605506174683105 + 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 + 000000000000C8420000C84201000000000096430000C8420100000000004843 + 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000000005450463007544C61796F757400095374796C654E616D650613 + 7363726F6C6C6261726C656674627574746F6E05416C69676E070643656E7465 + 720756697369626C6508000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C6970 + 4368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206204973 + 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 + 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 + 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E32084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464631373537394307547269 + 67676572061F4973507265737365643D747275653B49734D6F7573654F766572 + 3D747275650E54726967676572496E766572736506204973507265737365643D + 66616C73653B49734D6F7573654F7665723D7472756500000007544C61796F75 + 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E + 7465720A53697A652E57696474680500000000000000A002400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080005545061746800095374796C654E616D650605506174683105 + 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 + 000000000000C8420000C84201000000000096430000C8420100000000004843 + 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080D526F746174696F6E416E676C6505000000 + 00000000B405400A53697A652E57696474680500000000000000A002400B5369 + 7A652E4865696768740500000000000000C001401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000 + 5450463007544C61796F757400095374796C654E616D6506147363726F6C6C62 + 61727269676874627574746F6E05416C69676E070643656E7465720756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846463137353739430754726967676572061F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E + 54726967676572496E766572736506204973507265737365643D66616C73653B + 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0005545061746800095374796C654E616D650605506174683105416C69676E07 + 06436C69656E7409446174612E506174680A3400000004000000000000000000 + C8420000C84201000000000096430000C8420100000000004843000096430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080D526F746174696F6E416E676C650500000000000000B405 + C00A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 + 4C61796F757400095374796C654E616D6506127363726F6C6C626172746F7062 + 7574746F6E05416C69676E070643656E7465720756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A436C6970 + 506172656E74090A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463230323032300953746F7056616C75650709784646 + 3430343034300754726967676572062049734D6F7573654F7665723D74727565 + 3B4973507265737365643D66616C73650E54726967676572496E766572736506 + 2149734D6F7573654F7665723D66616C73653B4973507265737365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463430343034300953746F705661 + 6C756507097846463137353739430754726967676572061F4973507265737365 + 643D747275653B49734D6F7573654F7665723D747275650E5472696767657249 + 6E766572736506204973507265737365643D66616C73653B49734D6F7573654F + 7665723D7472756500000007544C61796F757400095374796C654E616D650607 + 4C61796F75743105416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080005545061746800 + 095374796C654E616D650605506174683105416C69676E0706436C69656E7409 + 446174612E506174680A3400000004000000000000000000C8420000C8420100 + 0000000096430000C842010000000000484300009643030000000000C8420000 + C8420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0D526F746174696F6E416E676C650500000000000000B406400A53697A652E57 + 696474680500000000000000A002400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 + 5374796C654E616D65060E7363726F6C6C6261727374796C6505416C69676E07 + 0643656E7465720756697369626C6508000754427574746F6E00095374796C65 + 4E616D65060A6C656674627574746F6E05416C69676E07044C656674064C6F63 + 6B6564090A506F736974696F6E2E5905000000000000008003400A53697A652E + 576964746805000000000000008003400B53697A652E48656967687405000000 000000009003401453697A652E506C6174666F726D44656661756C74080B5374 - 796C654C6F6F6B757006147363726F6C6C62617268747261636B7374796C6500 - 000654547261636B00095374796C654E616D65060676747261636B05416C6967 - 6E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A48 - 6F72697A6F6E74616C0A53697A652E576964746805000000000000009003400B - 53697A652E48656967687405000000000000009003401453697A652E506C6174 - 666F726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C - 62617276747261636B7374796C6500000754427574746F6E00095374796C654E - 616D650609746F70627574746F6E05416C69676E0703546F700A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 0000008003401453697A652E506C6174666F726D44656661756C74080B537479 - 6C654C6F6F6B757006127363726F6C6C626172746F70627574746F6E00000054 - 5046300A5452656374616E676C6500095374796C654E616D65060A7468756D62 - 7374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F720709 - 7846463444344434440748697454657374080A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000C8044014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E650756697369626C6508000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F - 6E31084475726174696F6E05000000000000000000000C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464634 - 44344434440953746F7056616C75650709784646313735373943075472696767 - 6572060E4973507265737365643D747275650E54726967676572496E76657273 - 65060F4973507265737365643D66616C736500000F54436F6C6F72416E696D61 - 74696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E31 - 5374796C65084475726174696F6E05000000000000000000000C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463444344434440953746F7056616C75650707636C61477261790754726967 - 676572061049734D6F7573654F7665723D747275650E54726967676572496E76 - 65727365061149734D6F7573654F7665723D66616C7365000000545046300D54 - 5377697463684F626A65637400095374796C654E616D65060B73776974636873 - 74796C6505416C69676E070643656E746572044B696E64070C466164696E6754 - 7261636B730A53697A652E57696474680500000000000000C805400B53697A65 - 2E4865696768740500000000000000C803401453697A652E506C6174666F726D - 44656661756C7408085461624F72646572020D12547261636B696E675468756D + 796C654C6F6F6B757006137363726F6C6C6261726C656674627574746F6E0000 + 0754427574746F6E00095374796C654E616D65060B7269676874627574746F6E + 05416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E58 + 05000000000000008804400A506F736974696F6E2E5905000000000000008003 + 400A53697A652E576964746805000000000000008003400B53697A652E486569 + 67687405000000000000009003401453697A652E506C6174666F726D44656661 + 756C74080B5374796C654C6F6F6B757006147363726F6C6C6261727269676874 + 627574746F6E00000754427574746F6E00095374796C654E616D65060C626F74 + 746F6D627574746F6E05416C69676E0706426F74746F6D064C6F636B6564090A + 506F736974696F6E2E5905000000000000008804400A53697A652E5769647468 + 0500000000000000C804400B53697A652E486569676874050000000000000080 + 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B757006157363726F6C6C626172626F74746F6D627574746F6E0000065454 + 7261636B00095374796C654E616D65060668747261636B05416C69676E070643 + 6C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A + 6F6E74616C0A53697A652E576964746805000000000000009003400B53697A65 + 2E48656967687405000000000000009003401453697A652E506C6174666F726D + 44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C62617268 + 747261636B7374796C6500000654547261636B00095374796C654E616D650606 + 76747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269 + 656E746174696F6E070A486F72697A6F6E74616C0A53697A652E576964746805 + 000000000000009003400B53697A652E48656967687405000000000000009003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B757006147363726F6C6C62617276747261636B7374796C6500000754427574 + 746F6E00095374796C654E616D650609746F70627574746F6E05416C69676E07 + 03546F700A53697A652E57696474680500000000000000C804400B53697A652E + 48656967687405000000000000008003401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B757006127363726F6C6C626172746F + 70627574746F6E000000545046300A5452656374616E676C6500095374796C65 + 4E616D65060A7468756D627374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463444344434440748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D6506147468756D62436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463444344434440953746F7056616C7565070978464631 + 37353739430754726967676572060E4973507265737365643D747275650E5472 + 6967676572496E7665727365060F4973507265737365643D66616C736500000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F + 72416E696D6174696F6E315374796C65084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463444344434440953746F7056616C7565070763 + 6C61477261790754726967676572061049734D6F7573654F7665723D74727565 + 0E54726967676572496E7665727365061149734D6F7573654F7665723D66616C + 7365000000545046300D545377697463684F626A65637400095374796C654E61 + 6D65060B7377697463687374796C6505416C69676E070643656E746572044B69 + 6E64070C466164696E67547261636B730A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C740812547261636B696E675468756D 625363616C65050000000000000080FF3F0756697369626C65080A46696C6C2E 436F6C6F7207097846463230323032300C46696C6C4F6E2E436F6C6F72070978 46463137353739430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F @@ -7991,238 +7995,236 @@ object MainForm: TMainForm 757400095374796C654E616D65060D636F6D626F626F787374796C6505416C69 676E070643656E7465720A53697A652E57696474680500000000000000C80540 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 0E000C5442727573684F626A65637400095374796C654E616D65060A666F7265 - 67726F756E6400000B54466F6E744F626A65637400095374796C654E616D6506 - 04666F6E7409466F6E742E53697A650500000000000000D00240000007544C61 - 796F757400095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E74730A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C7408000A5452656374616E676C6500095374796C - 654E616D65060A52656374616E676C653105416C69676E0706436C69656E740A - 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 - 697A652E57696474680500000000000000C805400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E650007544C61796F757400095374 - 796C654E616D650611427574746F6E5374796C654F626A65637405416C69676E - 070846697452696768740B4D617267696E732E546F70050000000000000080FF - 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 - 6E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805 - 00000000005ED99705400A506F736974696F6E2E59050000000000000080FF3F - 0A53697A652E5769647468050000000000889AB803400B53697A652E48656967 - 68740500000000000000B803401453697A652E506C6174666F726D4465666175 - 6C74080007544C61796F757400095374796C654E616D6506074C61796F757431 - 05416C69676E070643656E7465720C4D617267696E732E4C6566740500000000 - 00000080FF3F0A53697A652E57696474680500000000000000A002400B53697A - 652E4865696768740500000000000000C001401453697A652E506C6174666F72 - 6D44656661756C74080005545061746800095374796C654E616D650605506174 - 683105416C69676E0706436C69656E7409446174612E506174680A3400000004 - 000000000000000000C8420000C84201000000000096430000C8420100000000 - 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 - 636C6157686974650748697454657374080A53697A652E576964746805000000 - 00000000A002400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000000000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646343034303430075472696767657206304973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73653B49 - 73466F63757365643D66616C73650E54726967676572496E7665727365063149 - 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 - 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E32084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463430343034300953746F7056616C7565070978464631373537394307547269 - 67676572062F4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D66616C736500000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 - 6E696D6174696F6E33084475726174696F6E05000000000000000000000C5072 - 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463241383245320953746F7056616C756507097846463137353739 - 430754726967676572062E4973507265737365643D747275653B49734D6F7573 - 654F7665723D747275653B4973466F63757365643D747275650E547269676765 - 72496E7665727365062F4973507265737365643D66616C73653B49734D6F7573 - 654F7665723D747275653B4973466F63757365643D747275650000000007544C - 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 - 06436C69656E74064C6F636B6564090C4D617267696E732E4C65667405000000 - 000000008000400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E52696768740500000000000000D803400E4D617267696E732E - 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 000000008E05400B53697A652E4865696768740500000000000000A803401453 - 697A652E506C6174666F726D44656661756C74080000005450463007544C6179 - 6F757400095374796C654E616D65060E636F6D626F656469747374796C650541 - 6C69676E070643656E7465720A53697A652E57696474680500000000000000C8 - 05400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 720210000C5442727573684F626A65637400095374796C654E616D65060A666F - 726567726F756E6400000B54466F6E744F626A65637400095374796C654E616D - 650604666F6E7409466F6E742E53697A650500000000000000D0024000000754 - 4C61796F757400095374796C654E616D65060A6261636B67726F756E6405416C - 69676E0708436F6E74656E74730A53697A652E57696474680500000000000000 - C805400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653105416C69676E0706436C69656E - 740A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 74666F726D44656661756C74080756697369626C6508000C5442727573684F62 + 6A65637400095374796C654E616D65060A666F726567726F756E6400000B5446 + 6F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E742E + 53697A650500000000000000D00240000007544C61796F757400095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F720709784646323032303230000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E - 696D6174696F6E315374796C65084475726174696F6E05000000000000000000 - 0007496E7665727365090C50726F70657274794E616D65060C5374726F6B652E - 436F6C6F720A537461727456616C756507097846463230323032300953746F70 - 56616C756507097846463430343034300754726967676572062049734D6F7573 - 654F7665723D747275653B4973466F63757365643D66616C73650E5472696767 - 6572496E7665727365062149734D6F7573654F7665723D66616C73653B497346 - 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 - 4475726174696F6E050000000000000000000007496E7665727365090C50726F - 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C - 756507097846463430343034300953746F7056616C7565070978464632413832 - 45320754726967676572061F49734D6F7573654F7665723D747275653B497346 - 6F63757365643D747275650E54726967676572496E7665727365062049734D6F - 7573654F7665723D747275653B4973466F63757365643D66616C736500000754 - 4C61796F757400095374796C654E616D6506056172726F7705416C69676E0708 - 46697452696768740B4D617267696E732E546F70050000000000000080FF3F0D - 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000 - 0000005ED99705400A506F736974696F6E2E59050000000000000080FF3F0A53 - 697A652E5769647468050000000000889AB803400B53697A652E486569676874 - 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 - 08000A5452656374616E676C6500095374796C654E616D65060A52656374616E - 676C653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 - 097846463330333033300748697454657374080A53697A652E57696474680500 - 00000000889AB803400B53697A652E4865696768740500000000000000B80340 + 6C7408000A5452656374616E676C6500095374796C654E616D65060A52656374 + 616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C65 - 4E616D650614436F6C6F72416E696D6174696F6E315374796C65084475726174 - 696F6E050000000000000000000007496E7665727365090C50726F7065727479 - 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 - 3330333033300953746F7056616C756507097846463430343034300754726967 - 676572062049734D6F7573654F7665723D747275653B4973466F63757365643D - 66616C73650E54726967676572496E7665727365062149734D6F7573654F7665 - 723D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 - 74696F6E325374796C65084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463430343034300953746F7056616C7565070978464631373537 - 39430754726967676572061F4973466F63757365643D747275653B49734D6F75 - 73654F7665723D7472756500000007544C61796F757400095374796C654E616D - 6506074C61796F75743105416C69676E070643656E7465720C4D617267696E73 - 2E4C656674050000000000000080FF3F0A53697A652E57696474680500000000 - 000000A002400B53697A652E4865696768740500000000000000C00140145369 - 7A652E506C6174666F726D44656661756C74080005545061746800095374796C - 654E616D650605506174683105416C69676E0706436C69656E7409446174612E - 506174680A3400000004000000000000000000C8420000C84201000000000096 - 430000C842010000000000484300009643030000000000C8420000C8420A4669 - 6C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A65 + 6E6407044E6F6E650007544C61796F757400095374796C654E616D6506114275 + 74746F6E5374796C654F626A65637405416C69676E070846697452696768740B + 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 + 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 + 00000000000080FF3F0A506F736974696F6E2E580500000000005ED99705400A + 506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769647468 + 050000000000889AB803400B53697A652E4865696768740500000000000000B8 + 03401453697A652E506C6174666F726D44656661756C74080007544C61796F75 + 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E + 7465720C4D617267696E732E4C656674050000000000000080FF3F0A53697A65 2E57696474680500000000000000A002400B53697A652E486569676874050000 - 0000000000C001401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E650000000000000C5442727573684F626A - 65637400095374796C654E616D65060973656C656374696F6E0B42727573682E - 436F6C6F720709783936324138324532000007544C61796F757400095374796C - 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D6172 - 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 - 05000000000000008000400D4D617267696E732E526967687405000000000000 - 00F003400E4D617267696E732E426F74746F6D05000000000000008000400A53 - 697A652E576964746805000000000000008805400B53697A652E486569676874 - 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 - 080000005450463007544C61796F757400095374796C654E616D65060F746162 - 636F6E74726F6C7374796C6505416C69676E070643656E7465720A53697A652E - 576964746805000000000000008E06400B53697A652E48656967687405000000 - 0000FFFFC905401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F726465720211000A5452656374616E676C65000953 - 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 - 656E74730A46696C6C2E436F6C6F720709784646333033303330064C6F636B65 - 64090748697454657374080C50616464696E672E4C6566740500000000000000 - 8000400B50616464696E672E546F7005000000000000008000400D5061646469 - 6E672E526967687405000000000000008000400E50616464696E672E426F7474 - 6F6D05000000000000008000400A53697A652E57696474680500000000000000 - 8E06400B53697A652E486569676874050000000000FFFFC905401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 4646313531353135000000545046300A5452656374616E676C6500095374796C - 654E616D65060B746162646F747374796C6505416C69676E070643656E746572 - 0A46696C6C2E436F6C6F7207097846463135313531350748697454657374080A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F54 - 436F6C6F72416E696D6174696F6E00084475726174696F6E05000000000018B7 - D1F23F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463135313531350953746F7056616C756507097846 - 463241383245320754726967676572060F497353656C65637465643D74727565 - 0E54726967676572496E76657273650610497353656C65637465643D66616C73 - 650000005450463007544C61796F757400095374796C654E616D65060C746162 - 6974656D7374796C6505416C69676E070643656E7465720A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C6508085461624F726465720212000A5452656374616E676C6500095374796C - 654E616D650603746F7005416C69676E0708436F6E74656E74730C436C697043 - 68696C6472656E0907436F726E6572730B07546F704C65667408546F70526967 - 6874000A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 - 090748697454657374080553696465730B03546F70044C656674055269676874 - 000A53697A652E57696474680500000000000000C804400B53697A652E486569 + 0000000000C001401453697A652E506C6174666F726D44656661756C74080005 + 545061746800095374796C654E616D650605506174683105416C69676E070643 + 6C69656E7409446174612E506174680A3400000004000000000000000000C842 + 0000C84201000000000096430000C84201000000000048430000964303000000 + 0000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465074869 + 7454657374080A53697A652E57696474680500000000000000A002400B53697A + 652E4865696768740500000000000000C001401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 + 6F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463430343034300754726967676572063049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C73653B4973466F63757365643D6661 + 6C73650E54726967676572496E7665727365063149734D6F7573654F7665723D + 66616C73653B4973507265737365643D66616C73653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3208447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463430343034300953746F + 7056616C756507097846463137353739430754726967676572062F4973507265 + 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E330844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 + 320953746F7056616C756507097846463137353739430754726967676572062E + 4973507265737365643D747275653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D747275650E54726967676572496E7665727365062F49 + 73507265737365643D66616C73653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D747275650000000007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E74064C6F63 + 6B6564090C4D617267696E732E4C65667405000000000000008000400B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 740500000000000000D803400E4D617267696E732E426F74746F6D0500000000 + 0000008000400A53697A652E576964746805000000000000008E05400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C74080000005450463007544C61796F757400095374796C654E + 616D65060E636F6D626F656469747374796C6505416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000C805400B53697A652E486569 6768740500000000000000C803401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313500065447 - 6C79706800095374796C654E616D65060A676C7970687374796C650C4D617267 - 696E732E4C65667405000000000000008001400D4D617267696E732E52696768 - 7405000000000000008001C005416C69676E07044C6566740A53697A652E5769 - 64746805000000000000008003400B53697A652E486569676874050000000000 - 00008003401453697A652E506C6174666F726D44656661756C74080000055454 - 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 - 6E74064C6F636B6564090748697454657374080C4D617267696E732E4C656674 - 0500000000000000C000400B4D617267696E732E546F700500000000000000C0 - 00400D4D617267696E732E52696768740500000000000000C000400E4D617267 - 696E732E426F74746F6D0500000000000000C000400A53697A652E5769647468 - 0500000000000000B004400B53697A652E486569676874050000000000000098 - 03401453697A652E506C6174666F726D44656661756C74081654657874536574 - 74696E67732E466F6E74436F6C6F720708636C61576869746515546578745365 - 7474696E67732E576F7264577261700800000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650612746162436F6C6F72416E696D6174696F6E - 310D416E696D6174696F6E547970650705496E4F7574084475726174696F6E05 - 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463230323032300953746F705661 - 6C756507097846463430343034300754726967676572062149734D6F7573654F - 7665723D747275653B497353656C65637465643D66616C73650E547269676765 - 72496E7665727365062249734D6F7573654F7665723D66616C73653B49735365 - 6C65637465643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650612746162436F6C6F72416E696D6174696F6E32084475 - 726174696F6E05000000000000000000000C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 - 0953746F7056616C756507097846463241383245320754726967676572060F49 - 7353656C65637465643D747275650E54726967676572496E7665727365061049 - 7353656C65637465643D66616C736500000000545046300A5452656374616E67 - 6C6500095374796C654E616D65060D7468756D626261727374796C6505416C69 - 676E070643656E7465720A46696C6C2E436F6C6F720709784646324138324532 - 0748697454657374080A53697A652E57696474680500000000000000A003400B - 53697A652E4865696768740500000000000000A003401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 313531350756697369626C6508000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E3108 + 756C74080756697369626C6508000C5442727573684F626A6563740009537479 + 6C654E616D65060A666F726567726F756E6400000B54466F6E744F626A656374 + 00095374796C654E616D650604666F6E7409466F6E742E53697A650500000000 + 000000D00240000007544C61796F757400095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E74730A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C + 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 + 3032303230000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E + 050000000000000000000007496E7665727365090C50726F70657274794E616D + 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646343034303430075472696767 + 6572062049734D6F7573654F7665723D747275653B4973466F63757365643D66 + 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 + 696F6E325374796C65084475726174696F6E050000000000000000000007496E + 7665727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F + 720A537461727456616C756507097846463430343034300953746F7056616C75 + 6507097846463241383245320754726967676572061F49734D6F7573654F7665 + 723D747275653B4973466F63757365643D747275650E54726967676572496E76 + 65727365062049734D6F7573654F7665723D747275653B4973466F6375736564 + 3D66616C7365000007544C61796F757400095374796C654E616D650605617272 + 6F7705416C69676E070846697452696768740B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F73 + 6974696F6E2E580500000000005ED99705400A506F736974696F6E2E59050000 + 000000000080FF3F0A53697A652E5769647468050000000000889AB803400B53 + 697A652E4865696768740500000000000000B803401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653105416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F7207097846463330333033300748697454657374080A5369 + 7A652E5769647468050000000000889AB803400B53697A652E48656967687405 + 00000000000000B803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 + 74796C65084475726174696F6E050000000000000000000007496E7665727365 + 090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463330333033300953746F7056616C7565070978464634 + 30343034300754726967676572062049734D6F7573654F7665723D747275653B + 4973466F63757365643D66616C73650E54726967676572496E76657273650621 + 49734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 + 436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463430343034300953746F7056616C75 + 6507097846463137353739430754726967676572061F4973466F63757365643D + 747275653B49734D6F7573654F7665723D7472756500000007544C61796F7574 + 00095374796C654E616D6506074C61796F75743105416C69676E070643656E74 + 65720C4D617267696E732E4C656674050000000000000080FF3F0A53697A652E + 57696474680500000000000000A002400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C7408000554 + 5061746800095374796C654E616D650605506174683105416C69676E0706436C + 69656E7409446174612E506174680A3400000004000000000000000000C84200 + 00C84201000000000096430000C8420100000000004843000096430300000000 + 00C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080A53697A652E57696474680500000000000000A002400B53697A65 + 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000000000 + 0C5442727573684F626A65637400095374796C654E616D65060973656C656374 + 696F6E0B42727573682E436F6C6F720709783936324138324532000007544C61 + 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0706 + 436C69656E740C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 6768740500000000000000F003400E4D617267696E732E426F74746F6D050000 + 00000000008000400A53697A652E576964746805000000000000008805400B53 + 697A652E4865696768740500000000000000A803401453697A652E506C617466 + 6F726D44656661756C74080000005450463007544C61796F757400095374796C + 654E616D65060F746162636F6E74726F6C7374796C6505416C69676E07064365 + 6E7465720A53697A652E576964746805000000000000008E06400B53697A652E + 486569676874050000000000FFFFC905401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646333033303330064C6F636B6564 + 090748697454657374080C50616464696E672E4C656674050000000000000080 + 00400B50616464696E672E546F7005000000000000008000400D50616464696E + 672E526967687405000000000000008000400E50616464696E672E426F74746F + 6D05000000000000008000400A53697A652E576964746805000000000000008E + 06400B53697A652E486569676874050000000000FFFFC905401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000000545046300A5452656374616E676C6500095374796C65 + 4E616D65060B746162646F747374796C6505416C69676E070643656E7465720A + 46696C6C2E436F6C6F7207097846463135313531350748697454657374080A53 + 697A652E576964746805000000000000008005400B53697A652E486569676874 + 05000000000000008001401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D61 + 74696F6E00084475726174696F6E05000000000018B7D1F23F0C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463135313531350953746F7056616C75650709784646324138324532075472 + 6967676572060F497353656C65637465643D747275650E54726967676572496E + 76657273650610497353656C65637465643D66616C7365000000545046300754 + 4C61796F757400095374796C654E616D65060C7461626974656D7374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 + 616E676C6500095374796C654E616D650603746F7005416C69676E0708436F6E + 74656E74730C436C69704368696C6472656E0907436F726E6572730B07546F70 + 4C65667408546F705269676874000A46696C6C2E436F6C6F7207097846463230 + 32303230064C6F636B6564090748697454657374080553696465730B03546F70 + 044C656674055269676874000A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C803401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000654476C79706800095374796C654E616D65060A676C7970 + 687374796C650C4D617267696E732E4C65667405000000000000008001400D4D + 617267696E732E526967687405000000000000008001C005416C69676E07044C + 6566740A53697A652E576964746805000000000000008003400B53697A652E48 + 656967687405000000000000008003401453697A652E506C6174666F726D4465 + 6661756C7408000005545465787400095374796C654E616D6506047465787405 + 416C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D + 617267696E732E4C6566740500000000000000C000400B4D617267696E732E54 + 6F700500000000000000C000400D4D617267696E732E52696768740500000000 + 000000C000400E4D617267696E732E426F74746F6D0500000000000000C00040 + 0A53697A652E57696474680500000000000000B004400B53697A652E48656967 + 687405000000000000009803401453697A652E506C6174666F726D4465666175 + 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 + 68697465155465787453657474696E67732E576F7264577261700800000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650612746162436F6C + 6F72416E696D6174696F6E310D416E696D6174696F6E547970650705496E4F75 + 74084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 + 323032300953746F7056616C7565070978464634303430343007547269676765 + 72062149734D6F7573654F7665723D747275653B497353656C65637465643D66 + 616C73650E54726967676572496E7665727365062249734D6F7573654F766572 + 3D66616C73653B497353656C65637465643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650612746162436F6C6F72416E + 696D6174696F6E32084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646324138324532 + 0754726967676572060F497353656C65637465643D747275650E547269676765 + 72496E76657273650610497353656C65637465643D66616C7365000000005450 + 46300A5452656374616E676C6500095374796C654E616D65060D7468756D6262 + 61727374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463241383245320748697454657374080A53697A652E576964746805 + 00000000000000A003400B53697A652E4865696768740500000000000000A003 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F7207097846463135313531350756697369626C6508000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463241383245320953746F7056616C7565070978464631373537 + 39430754726967676572061F4973507265737365643D747275653B49734D6F75 + 73654F7665723D747275650E54726967676572496E7665727365061049735072 + 65737365643D66616C73653B00000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E3208 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632413832 - 45320953746F7056616C75650709784646313735373943075472696767657206 - 1F4973507265737365643D747275653B49734D6F7573654F7665723D74727565 - 0E54726967676572496E766572736506104973507265737365643D66616C7365 - 3B00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 - 7468756D62436F6C6F72416E696D6174696F6E32084475726174696F6E050000 - 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463241383245320953746F7056616C75 - 6507097846463430394246460754726967676572062049734D6F7573654F7665 - 723D747275653B4973507265737365643D66616C73650E54726967676572496E - 7665727365062149734D6F7573654F7665723D66616C73653B49735072657373 - 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D6506157468756D625374726F6B65416E696D6174696F6E3108447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060C53 - 74726F6B652E436F6C6F720A537461727456616C756507097846463135313531 - 350953746F7056616C756507097846463137353739430754726967676572061F - 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E - 54726967676572496E7665727365060F4973507265737365643D66616C736500 - 00005450463007544C61796F757400095374796C654E616D65060C6C69737462 - 6F787374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 050000000000FFFFE905400B53697A652E486569676874050000000000000083 - 06401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08085461624F726465720213000C5442727573684F626A65637400095374796C + 45320953746F7056616C75650709784646343039424646075472696767657206 + 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 650E54726967676572496E7665727365062149734D6F7573654F7665723D6661 + 6C73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D6506157468756D625374726F6B65416E69 + 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75 + 6507097846463135313531350953746F7056616C756507097846463137353739 + 430754726967676572061F4973507265737365643D747275653B49734D6F7573 + 654F7665723D747275650E54726967676572496E7665727365060F4973507265 + 737365643D66616C73650000005450463007544C61796F757400095374796C65 + 4E616D65060C6C697374626F787374796C6505416C69676E070643656E746572 + 0A53697A652E5769647468050000000000FFFFE905400B53697A652E48656967 + 687405000000000000008306401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508000C5442727573684F626A65637400095374796C 654E616D650618416C7465726E6174696E67526F774261636B67726F756E640B 42727573682E436F6C6F72070978464632433243324300000A5452656374616E 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E @@ -8283,333 +8285,319 @@ object MainForm: TMainForm 6C654E616D65060D6C697374626F78666F6F74657205416C69676E070643656E 7465720A53697A652E576964746805000000000000009205400B53697A652E48 65696768740500000000000000D003401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F726465720214000554546578 - 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 - 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 000000000000A001400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E52696768740500000000000000A001400E4D617267696E - 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 - 000000000000FC04400B53697A652E4865696768740500000000000000B00340 - 1453697A652E506C6174666F726D44656661756C740816546578745365747469 - 6E67732E466F6E74436F6C6F720708636C615768697465000000545046300754 - 4C61796F757400095374796C654E616D6506106C697374626F786974656D7374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000D605400B53697A652E4865696768740500000000000000C003401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F726465720215000654476C79706800095374796C654E616D65060A676C79 - 70687374796C650C4D617267696E732E4C65667405000000000000008000400B - 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 - 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 - 00000000000080FF3F05416C69676E07044C6566740A53697A652E5769647468 - 05000000000000008003400B53697A652E486569676874050000000000000080 - 03401453697A652E506C6174666F726D44656661756C74080000055454657874 - 00095374796C654E616D6506047465787405416C69676E0706436C69656E7407 - 48697454657374080C4D617267696E732E4C6566740500000000000000C00040 - 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E - 52696768740500000000000000C000400E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F0A53697A652E57696474680500000000000000CA0540 - 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 - 74666F726D44656661756C7408165465787453657474696E67732E466F6E7443 - 6F6C6F720708636C615768697465155465787453657474696E67732E576F7264 - 5772617008165465787453657474696E67732E486F727A416C69676E07074C65 - 6164696E6700000954436865636B426F7800095374796C654E616D6506056368 - 65636B05416C69676E07084D6F73744C6566740843616E466F63757308124469 - 7361626C65466F637573456666656374090A53697A652E576964746805000000 - 00000000A003400B53697A652E4865696768740500000000000000C003401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508000000 - 5450463007544C61796F757400095374796C654E616D6506126C697374626F78 - 706C61696E68656164657205416C69676E070643656E7465720A53697A652E57 - 6964746805000000000000009205400B53697A652E4865696768740500000000 - 000000D003401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F726465720216000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646324432443244064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000000000920540 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 3531353135000005545465787400095374796C654E616D650604746578740541 - 6C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D61 - 7267696E732E4C6566740500000000000000A001400B4D617267696E732E546F - 7005000000000000008000400D4D617267696E732E5269676874050000000000 - 0000A001400E4D617267696E732E426F74746F6D05000000000000008000400A - 53697A652E57696474680500000000000000FC04400B53697A652E4865696768 - 740500000000000000B003401453697A652E506C6174666F726D44656661756C - 7408165465787453657474696E67732E466F6E74436F6C6F720708636C615768 - 6974650000005450463007544C61796F757400095374796C654E616D65060967 - 7269647374796C6505416C69676E070643656E7465720A53697A652E57696474 - 68050000000000FFFFE905400B53697A652E4865696768740500000000000000 - 8306401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F726465720217000C5442727573684F626A6563740009537479 - 6C654E616D650618416C7465726E6174696E67526F774261636B67726F756E64 - 0B42727573682E436F6C6F72070978333237383738373800000C544272757368 - 4F626A65637400095374796C654E616D6506086C696E6566696C6C0B42727573 - 682E436F6C6F72070978464631353135313500000A5452656374616E676C6500 - 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 - 6B6564090748697454657374080C50616464696E672E4C656674050000000000 - 00008000400B50616464696E672E546F7005000000000000008000400D506164 - 64696E672E526967687405000000000000008000400E50616464696E672E426F - 74746F6D05000000000000008000400A53697A652E5769647468050000000000 - FFFFE905400B53697A652E48656967687405000000000000008306401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 0978464631353135313500075448656164657200095374796C654E616D650606 - 6865616465720553696465730B03546F70044C65667406426F74746F6D055269 - 6768740005416C69676E0703546F700748697454657374080A506F736974696F - 6E2E5805000000000000008000400A506F736974696F6E2E5905000000000000 - 008000400A53697A652E5769647468050000000000FFFFE105400B53697A652E - 4865696768740500000000000000A803401453697A652E506C6174666F726D44 - 656661756C7408000007544C61796F757400095374796C654E616D650607636F - 6E74656E7405416C69676E0706436C69656E740C436C69704368696C6472656E - 090A53697A652E5769647468050000000000FFFFC105400B53697A652E486569 + 6661756C74080756697369626C65080005545465787400095374796C654E616D + 6506047465787405416C69676E0706436C69656E74064C6F636B656409074869 + 7454657374080C4D617267696E732E4C6566740500000000000000A001400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 6768740500000000000000A001400E4D617267696E732E426F74746F6D050000 + 00000000008000400A53697A652E57696474680500000000000000FC04400B53 + 697A652E4865696768740500000000000000B003401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C6157686974650000005450463007544C61796F75740009537479 + 6C654E616D6506106C697374626F786974656D7374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000D605400B53697A + 652E4865696768740500000000000000C003401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508000654476C79706800095374796C + 654E616D65060A676C7970687374796C650C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F70050000000000000080FF3F + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E + 732E426F74746F6D050000000000000080FF3F05416C69676E07044C6566740A + 53697A652E576964746805000000000000008003400B53697A652E4865696768 + 7405000000000000008003401453697A652E506C6174666F726D44656661756C + 7408000005545465787400095374796C654E616D6506047465787405416C6967 + 6E0706436C69656E740748697454657374080C4D617267696E732E4C65667405 + 00000000000000C000400B4D617267696E732E546F70050000000000000080FF + 3F0D4D617267696E732E52696768740500000000000000C000400E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F0A53697A652E576964746805 + 00000000000000CA05400B53697A652E4865696768740500000000000000B003 + 401453697A652E506C6174666F726D44656661756C7408165465787453657474 + 696E67732E466F6E74436F6C6F720708636C6157686974651554657874536574 + 74696E67732E576F72645772617008165465787453657474696E67732E486F72 + 7A416C69676E07074C656164696E6700000954436865636B426F780009537479 + 6C654E616D650605636865636B05416C69676E07084D6F73744C656674084361 + 6E466F637573081244697361626C65466F637573456666656374090A53697A65 + 2E57696474680500000000000000A003400B53697A652E486569676874050000 + 0000000000C003401453697A652E506C6174666F726D44656661756C74080756 + 697369626C65080000005450463007544C61796F757400095374796C654E616D + 6506126C697374626F78706C61696E68656164657205416C69676E070643656E + 7465720A53697A652E576964746805000000000000009205400B53697A652E48 + 65696768740500000000000000D003401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F720709784646324432443244064C6F636B656409 + 0748697454657374080A53697A652E576964746805000000000000009205400B + 53697A652E4865696768740500000000000000D003401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 31353135000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E74064C6F636B6564090748697454657374080C4D6172 + 67696E732E4C6566740500000000000000A001400B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 00A001400E4D617267696E732E426F74746F6D05000000000000008000400A53 + 697A652E57696474680500000000000000FC04400B53697A652E486569676874 + 0500000000000000B003401453697A652E506C6174666F726D44656661756C74 + 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 74650000005450463007544C61796F757400095374796C654E616D6506096772 + 69647374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 050000000000FFFFE905400B53697A652E486569676874050000000000000083 + 06401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08000C5442727573684F626A65637400095374796C654E616D650618416C7465 + 726E6174696E67526F774261636B67726F756E640B42727573682E436F6C6F72 + 070978333237383738373800000C5442727573684F626A65637400095374796C + 654E616D6506086C696E6566696C6C0B42727573682E436F6C6F720709784646 + 31353135313500000A5452656374616E676C6500095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 + 080C50616464696E672E4C65667405000000000000008000400B50616464696E + 672E546F7005000000000000008000400D50616464696E672E52696768740500 + 0000000000008000400E50616464696E672E426F74746F6D0500000000000000 + 8000400A53697A652E5769647468050000000000FFFFE905400B53697A652E48 + 656967687405000000000000008306401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350007 + 5448656164657200095374796C654E616D650606686561646572055369646573 + 0B03546F70044C65667406426F74746F6D0552696768740005416C69676E0703 + 546F700748697454657374080A506F736974696F6E2E58050000000000000080 + 00400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 + 647468050000000000FFFFE105400B53697A652E486569676874050000000000 + 0000A803401453697A652E506C6174666F726D44656661756C7408000007544C + 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 + 06436C69656E740C436C69704368696C6472656E090A53697A652E5769647468 + 050000000000FFFFC105400B53697A652E4865696768740500000000000000B4 + 05401453697A652E506C6174666F726D44656661756C7408000A545265637461 + 6E676C6500095374796C654E616D65060973656C656374696F6E0A46696C6C2E + 436F6C6F7207097846463241383245320748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009537479 + 6C654E616D650605666F6375730A46696C6C2E436F6C6F720709784146324138 + 3245320748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6507595261646975730500000000000000C000400000000A545363726F6C + 6C42617200095374796C654E616D65060A767363726F6C6C62617205416C6967 + 6E070552696768740B536D616C6C4368616E676505000000000000000000000B + 4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E2E58 + 050000000000FFFFC505400A506F736974696F6E2E590500000000000000B803 + 400A53697A652E576964746805000000000000008003400B53697A652E486569 6768740500000000000000B405401453697A652E506C6174666F726D44656661 - 756C7408000A5452656374616E676C6500095374796C654E616D65060973656C - 656374696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265 - 6374616E676C6500095374796C654E616D650605666F6375730A46696C6C2E43 - 6F6C6F7207097841463241383245320748697454657374080C4D617267696E73 - 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 - 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F - 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E + 756C740800000A545363726F6C6C42617200095374796C654E616D65060A6873 + 63726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E + 676505000000000000000000000B4F7269656E746174696F6E070A486F72697A + 6F6E74616C0A506F736974696F6E2E5805000000000000008000400A506F7369 + 74696F6E2E590500000000000000E205400A53697A652E576964746805000000 + 0000FFFFE105400B53697A652E48656967687405000000000000008003401453 + 697A652E506C6174666F726D44656661756C740800000F54536D616C6C536372 + 6F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C62 + 617205416C69676E070552696768740B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E0708566572746963616C0C4D6172 + 67696E732E4C65667405000000000000008000400A506F736974696F6E2E5805 + 00000000000000C605400A506F736974696F6E2E590500000000000000800040 + 0A53697A652E576964746805000000000000008002400B53697A652E48656967 + 687405000000000000008002401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C650800000F54536D616C6C5363726F6C6C4261720009 + 5374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E + 0706426F74746F6D0B536D616C6C4368616E676505000000000000000000000B + 4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E + 546F7005000000000000008000400A506F736974696F6E2E5805000000000000 + 008000400A506F736974696F6E2E590500000000000000E205400A53697A652E + 576964746805000000000000009606400B53697A652E48656967687405000000 + 000000008002401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508000000005450463007544C61796F757400095374796C654E616D + 65060F6865616465726974656D7374796C6505416C69676E070643656E746572 + 0A53697A652E576964746805000000000000009205400B53697A652E48656967 + 68740500000000000000D003401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646344334433443064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000000009205400B53697A + 652E4865696768740500000000000000D003401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061568 + 6561646572436F6C6F72416E696D6174696F6E31084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463443344334430953746F7056616C75 + 6507097846463241383245320754726967676572060E4973507265737365643D + 747275650E54726967676572496E7665727365060F4973507265737365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 6506166865616465725374726F6B65416E696D6174696F6E3108447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060C5374726F + 6B652E436F6C6F720A537461727456616C756507097846463135313531350953 + 746F7056616C756507097846463241383245320754726967676572060E497350 + 7265737365643D747275650E54726967676572496E7665727365060F49735072 + 65737365643D66616C736500000005545465787400095374796C654E616D6506 + 047465787405416C69676E0706436C69656E74064C6F636B6564090748697454 + 657374080C4D617267696E732E4C6566740500000000000000A001400B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 740500000000000000A001400E4D617267696E732E426F74746F6D0500000000 + 0000008000400A53697A652E57696474680500000000000000FC04400B53697A + 652E4865696768740500000000000000B003401453697A652E506C6174666F72 + 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 + 0708636C6157686974650000005450463007544C61796F757400095374796C65 + 4E616D65061970726F67726573736261726D696E696572726F727374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000003333 + 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 + 616E676C6500095374796C654E616D65060668747261636B05416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 33338505400B53697A652E4865696768740500000000009999E104401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000A5452656374616E676C6500095374796C654E616D65060A68696E + 64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F720709 + 784646453232413241064C6F636B6564090748697454657374080A53697A652E 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6507595261646975730500000000000000C0 - 00400000000A545363726F6C6C42617200095374796C654E616D65060A767363 - 726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E6765 - 05000000000000000000000B4F7269656E746174696F6E070856657274696361 - 6C0A506F736974696F6E2E58050000000000FFFFC505400A506F736974696F6E - 2E590500000000000000B803400A53697A652E57696474680500000000000000 - 8003400B53697A652E4865696768740500000000000000B405401453697A652E - 506C6174666F726D44656661756C740800000A545363726F6C6C426172000953 - 74796C654E616D65060A687363726F6C6C62617205416C69676E0706426F7474 - 6F6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E74 - 6174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E5805000000 - 000000008000400A506F736974696F6E2E590500000000000000E205400A5369 - 7A652E5769647468050000000000FFFFE105400B53697A652E48656967687405 - 000000000000008003401453697A652E506C6174666F726D44656661756C7408 - 00000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F76 - 736D616C6C7363726F6C6C62617205416C69676E070552696768740B536D616C - 6C4368616E676505000000000000000000000B4F7269656E746174696F6E0708 - 566572746963616C0C4D617267696E732E4C6566740500000000000000800040 - 0A506F736974696F6E2E580500000000000000C605400A506F736974696F6E2E - 5905000000000000008000400A53697A652E5769647468050000000000000080 - 02400B53697A652E48656967687405000000000000008002401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C650800000F54536D616C - 6C5363726F6C6C42617200095374796C654E616D65060F68736D616C6C736372 - 6F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E6765 - 05000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E - 74616C0B4D617267696E732E546F7005000000000000008000400A506F736974 - 696F6E2E5805000000000000008000400A506F736974696F6E2E590500000000 - 000000E205400A53697A652E576964746805000000000000009606400B53697A - 652E48656967687405000000000000008002401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508000000005450463007544C61796F - 757400095374796C654E616D65060F6865616465726974656D7374796C650541 - 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 - 05400B53697A652E4865696768740500000000000000D003401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 720218000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F - 720709784646344334433443064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000000009205400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F720709784646313531353135000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650615686561646572436F6C6F - 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C - 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463443344334430953746F7056616C75650709784646324138 - 3245320754726967676572060E4973507265737365643D747275650E54726967 - 676572496E7665727365060F4973507265737365643D66616C736500000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650616686561646572 - 5374726F6B65416E696D6174696F6E31084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A - 537461727456616C756507097846463135313531350953746F7056616C756507 - 097846463241383245320754726967676572060E4973507265737365643D7472 - 75650E54726967676572496E7665727365060F4973507265737365643D66616C - 736500000005545465787400095374796C654E616D6506047465787405416C69 - 676E0706436C69656E74064C6F636B6564090748697454657374080C4D617267 - 696E732E4C6566740500000000000000A001400B4D617267696E732E546F7005 + 00009999E104401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E650000000A5452656374616E676C65000953 + 74796C654E616D65060676747261636B05416C69676E0708436F6E74656E7473 + 0A46696C6C2E436F6C6F720709784646343034303430064C6F636B6564090748 + 697454657374080A53697A652E576964746805000000000033338505400B5369 + 7A652E4865696768740500000000009999E104401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A5452 + 656374616E676C6500095374796C654E616D65060A76696E64696361746F7205 + 416C69676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646453232 + 413241064C6F636B6564090748697454657374080A506F736974696F6E2E5905 + 000000000099998D04400A53697A652E57696474680500000000003333850540 + 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0000005450463007544C61796F757400095374796C654E616D65061170726F67 + 7265737363656C6C7374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000F805400B53697A652E486569676874050000 + 0000000000FC05401453697A652E506C6174666F726D44656661756C74080756 + 697369626C65080007544C61796F757400095374796C654E616D650606687472 + 61636B05416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267 + 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 000000000000008000400D4D617267696E732E52696768740500000000000000 - A001400E4D617267696E732E426F74746F6D05000000000000008000400A5369 - 7A652E57696474680500000000000000FC04400B53697A652E48656967687405 - 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 650000005450463007544C61796F757400095374796C654E616D65061970726F - 67726573736261726D696E696572726F727374796C6505416C69676E07064365 - 6E7465720A53697A652E576964746805000000000033338505400B53697A652E - 4865696768740500000000009999E104401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F72646572021A000A545265 - 6374616E676C6500095374796C654E616D65060668747261636B05416C69676E - 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430 - 064C6F636B6564090748697454657374080A53697A652E576964746805000000 - 000033338505400B53697A652E4865696768740500000000009999E104401453 + 8000400E4D617267696E732E426F74746F6D05000000000000008000400A5369 + 7A652E57696474680500000000000000F005400B53697A652E48656967687405 + 00000000000000F405401453697A652E506C6174666F726D44656661756C7408 + 000A5452656374616E676C6500095374796C654E616D65060A68696E64696361 + 746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B6564090748697454657374080C4D617267696E732E4C + 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F + 6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000000000 + 0080FF3F0A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000F005401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046 + 3007544C61796F757400095374796C654E616D6506106D656E75626172697465 + 6D7374796C6505416C69676E070643656E7465720C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 6805000000000000009205400B53697A652E4865696768740500000000000000 + D003401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508000A5452656374616E676C650005416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646324138324532074869745465737408074F + 70616369747905000000000017B7D1F13F0A53697A652E576964746805000000 + 000000009205400B53697A652E4865696768740500000000000000D003401453 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000A5452656374616E676C6500095374796C654E616D65060A68 - 696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72 - 0709784646453232413241064C6F636B6564090748697454657374080A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000009999E104401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E650000000A5452656374616E676C6500 - 095374796C654E616D65060676747261636B05416C69676E0708436F6E74656E - 74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B656409 - 0748697454657374080A53697A652E576964746805000000000033338505400B - 53697A652E4865696768740500000000009999E104401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A - 5452656374616E676C6500095374796C654E616D65060A76696E64696361746F - 7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464645 - 3232413241064C6F636B6564090748697454657374080A506F736974696F6E2E - 5905000000000099998D04400A53697A652E5769647468050000000000333385 - 05400B53697A652E4865696768740500000000000000A803401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 65000000005450463007544C61796F757400095374796C654E616D6506117072 - 6F677265737363656C6C7374796C6505416C69676E070643656E7465720A5369 - 7A652E57696474680500000000000000F805400B53697A652E48656967687405 - 00000000000000FC05401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F72646572021B0007544C61796F7574000953 - 74796C654E616D65060668747261636B05416C69676E0708436F6E74656E7473 - 064C6F636B6564090C4D617267696E732E4C6566740500000000000000800040 + 07044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F + 6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F70616369 + 74790A537461727456616C756505000000000000000000000953746F7056616C + 7565050000000000000080FF3F0754726967676572060F497353656C65637465 + 643D747275650E54726967676572496E76657273650610497353656C65637465 + 643D66616C73650000000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646324138324532074869745465737408074F706163 + 69747905000000000017B7D1F13F0A53697A652E576964746805000000000000 + 009205400B53697A652E4865696768740500000000000000D003401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E0500 + 0000000018B7D1F23F0C50726F70657274794E616D6506074F7061636974790A + 537461727456616C756505000000000000000000000953746F7056616C756505 + 0000000000000080FF3F0754726967676572061049734D6F7573654F7665723D + 747275650E54726967676572496E7665727365061149734D6F7573654F766572 + 3D66616C736500000007544C61796F757400095374796C654E616D650605676C + 79706805416C69676E07044C6566740A53697A652E5769647468050000000000 + 0000C803400B53697A652E4865696768740500000000000000D003401453697A + 652E506C6174666F726D44656661756C74080007544C61796F75740009537479 + 6C654E616D650609636865636B6D61726B05416C69676E0708436F6E74656E74 + 73074F7061636974790500000000006F1283F53F0A53697A652E576964746805 + 00000000000000C803400B53697A652E4865696768740500000000000000D003 + 401453697A652E506C6174666F726D44656661756C7408000554506174680005 + 416C69676E070643656E74657209446174612E506174680A5800000007000000 + 0000000056D9524391AE2C43010000009276664365021643010000009F398343 + 2B7C3C43010000009E9AA64382D2B442010000006F1CB04375A4D14201000000 + 26DF8243263F67430300000056D9524391AE2C430A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080A53697A652E5769647468050000 + 0000000000B002400B53697A652E4865696768740500000000000000B0024014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6500000F54466C6F6174416E696D6174696F6E00084475726174 + 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061 + 636974790A537461727456616C756505000000000000000000000953746F7056 + 616C7565050000000000000080FF3F0754726967676572060E4973436865636B + 65643D747275650E54726967676572496E7665727365060F4973436865636B65 + 643D66616C73650000000654476C79706800095374796C654E616D65060A676C + 7970687374796C650C4D617267696E732E4C656674050000000000000080FF3F 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 - 000000000000008000400A53697A652E57696474680500000000000000F00540 - 0B53697A652E4865696768740500000000000000F405401453697A652E506C61 - 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 - 4E616D65060A68696E64696361746F7205416C69676E07044C6566740A46696C - 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 - 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 - 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 - 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 - 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 - 74696F6E2E59050000000000000080FF3F0A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000F005401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000000005450463007544C61796F757400095374796C654E616D - 6506106D656E756261726974656D7374796C6505416C69676E070643656E7465 - 720C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E - 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 - 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 - 80FF3F0A53697A652E576964746805000000000000009205400B53697A652E48 - 65696768740500000000000000D003401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F72646572021C000A54526563 - 74616E676C650005416C69676E0708436F6E74656E74730A46696C6C2E436F6C - 6F720709784646324138324532074869745465737408074F7061636974790500 - 0000000017B7D1F13F0A53697A652E576964746805000000000000009205400B - 53697A652E4865696768740500000000000000D003401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F - 54466C6F6174416E696D6174696F6E00084475726174696F6E05000000000018 - B7D1F23F0C50726F70657274794E616D6506074F7061636974790A5374617274 - 56616C756505000000000000000000000953746F7056616C7565050000000000 - 000080FF3F0754726967676572060F497353656C65637465643D747275650E54 - 726967676572496E76657273650610497353656C65637465643D66616C736500 - 00000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 - 6F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 - 09784646324138324532074869745465737408074F7061636974790500000000 - 0017B7D1F13F0A53697A652E576964746805000000000000009205400B53697A - 652E4865696768740500000000000000D003401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C - 6F6174416E696D6174696F6E00084475726174696F6E05000000000018B7D1F2 - 3F0C50726F70657274794E616D6506074F7061636974790A537461727456616C - 756505000000000000000000000953746F7056616C7565050000000000000080 - FF3F0754726967676572061049734D6F7573654F7665723D747275650E547269 - 67676572496E7665727365061149734D6F7573654F7665723D66616C73650000 - 0007544C61796F757400095374796C654E616D650605676C79706805416C6967 - 6E07044C6566740A53697A652E57696474680500000000000000C803400B5369 - 7A652E4865696768740500000000000000D003401453697A652E506C6174666F - 726D44656661756C74080007544C61796F757400095374796C654E616D650609 - 636865636B6D61726B05416C69676E0708436F6E74656E7473074F7061636974 - 790500000000006F1283F53F0A53697A652E57696474680500000000000000C8 - 03400B53697A652E4865696768740500000000000000D003401453697A652E50 - 6C6174666F726D44656661756C7408000554506174680005416C69676E070643 - 656E74657209446174612E506174680A58000000070000000000000056D95243 - 91AE2C43010000009276664365021643010000009F3983432B7C3C4301000000 - 9E9AA64382D2B442010000006F1CB04375A4D1420100000026DF8243263F6743 - 0300000056D9524391AE2C430A46696C6C2E436F6C6F720708636C6157686974 - 650748697454657374080A53697A652E57696474680500000000000000B00240 - 0B53697A652E4865696768740500000000000000B002401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 000F54466C6F6174416E696D6174696F6E00084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A537461 - 727456616C756505000000000000000000000953746F7056616C756505000000 - 0000000080FF3F0754726967676572060E4973436865636B65643D747275650E - 54726967676572496E7665727365060F4973436865636B65643D66616C736500 - 00000654476C79706800095374796C654E616D65060A676C7970687374796C65 - 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 0000000000C000400E4D617267696E732E426F74746F6D050000000000000080 - FF3F05416C69676E070552696768740A53697A652E5769647468050000000000 - 00008003400B53697A652E48656967687405000000000000008003401453697A - 652E506C6174666F726D44656661756C740800000654496D6167650009537479 - 6C654E616D6506066269746D61700E4D756C74695265734269746D61700E0100 - 0005416C69676E0708436F6E74656E74730C4D617267696E732E4C6566740500 - 0000000000008000400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E526967687405000000000000008000400E4D617267696E - 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 - 000000000000A803400B53697A652E4865696768740500000000000000B00340 - 1453697A652E506C6174666F726D44656661756C740800000005545465787400 - 095374796C654E616D6506047465787405416C69676E07044C656674064C6F63 - 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 - 00008002400D4D617267696E732E526967687405000000000000008002400A50 - 6F736974696F6E2E5805000000000000008404400A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000D003 - 401453697A652E506C6174666F726D44656661756C7408165465787453657474 - 696E67732E466F6E74436F6C6F720708636C6157686974651654657874536574 - 74696E67732E486F727A416C69676E07074C656164696E670000055454657874 - 00095374796C654E616D65060873686F727463757405416C69676E0705526967 - 6874064C6F636B6564090748697454657374080C4D617267696E732E4C656674 - 0500000000000000C002400D4D617267696E732E526967687405000000000000 - 00C001400A506F736974696F6E2E580500000000000000C000C00A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000D003401453697A652E506C6174666F726D44656661756C7408165465 - 787453657474696E67732E466F6E74436F6C6F720708636C6157686974651654 - 65787453657474696E67732E486F727A416C69676E07074C656164696E670000 - 07544C61796F757400095374796C654E616D6506077375626D61726B05416C69 - 676E070552696768740A506F736974696F6E2E580500000000000000D404400A - 53697A652E57696474680500000000000000A003400B53697A652E4865696768 - 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 7408000554506174680005416C69676E070643656E74657209446174612E5061 - 74680A3400000004000000000000000000000000000000010000000000000000 - 00803F010000000000803F0000003F0300000000000000000000000A46696C6C - 2E436F6C6F720708636C615768697465064C6F636B6564090748697454657374 - 080A53697A652E57696474680500000000000000E001400B53697A652E486569 - 67687405000000000000008002401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300A54 - 52656374616E676C6500095374796C654E616D65060C6D656E75626172737479 - 6C6505416C69676E070643656E7465720C436C69704368696C6472656E090946 - 696C6C2E4B696E6407044E6F6E650748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650756697369626C6508000A5452656374616E676C - 650005416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646 - 3230323032300748697454657374080C4D617267696E732E4C65667405000000 - 0000000080FFBF0B4D617267696E732E546F70050000000000000080FFBF0D4D - 617267696E732E5269676874050000000000000080FFBF0A53697A652E576964 - 74680500000000000000D004400B53697A652E48656967687405000000000000 - 00CC04401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F720709784646313531353135000007544C61796F757400095374 - 796C654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D - 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 - 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 - 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F - 0A53697A652E57696474680500000000000000C004400B53697A652E48656967 - 68740500000000000000C004401453697A652E506C6174666F726D4465666175 - 6C74080000005450463007544C61796F757400095374796C654E616D65060D6D - 656E756974656D7374796C6505416C69676E070643656E7465720C4D61726769 - 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 - FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A - 652E576964746805000000000000009205400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F72646572021D000A5452656374616E676C6500 - 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 - 324138324532074869745465737408074F70616369747905000000000017B7D1 - F13F0A53697A652E576964746805000000000000009205400B53697A652E4865 + 52696768740500000000000000C000400E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F05416C69676E070552696768740A53697A652E576964 + 746805000000000000008003400B53697A652E48656967687405000000000000 + 008003401453697A652E506C6174666F726D44656661756C740800000654496D + 61676500095374796C654E616D6506066269746D61700E4D756C746952657342 + 69746D61700E01000005416C69676E0708436F6E74656E74730C4D617267696E + 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 + 00000000008000400D4D617267696E732E526967687405000000000000008000 + 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 + 2E57696474680500000000000000A803400B53697A652E486569676874050000 + 0000000000B003401453697A652E506C6174666F726D44656661756C74080000 + 0005545465787400095374796C654E616D6506047465787405416C69676E0704 + 4C656674064C6F636B6564090748697454657374080C4D617267696E732E4C65 + 667405000000000000008002400D4D617267696E732E52696768740500000000 + 0000008002400A506F736974696F6E2E5805000000000000008404400A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 + 000005545465787400095374796C654E616D65060873686F727463757405416C + 69676E07055269676874064C6F636B6564090748697454657374080C4D617267 + 696E732E4C6566740500000000000000C002400D4D617267696E732E52696768 + 740500000000000000C001400A506F736974696F6E2E580500000000000000C0 + 00C00A53697A652E57696474680500000000000000C804400B53697A652E4865 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 - 6E696D6174696F6E00084475726174696F6E05000000000018B7D1F23F0C5072 - 6F70657274794E616D6506074F7061636974790A537461727456616C75650500 - 0000000000000000000953746F7056616C7565050000000000000080FF3F0754 - 726967676572060F497353656C65637465643D747275650E5472696767657249 - 6E76657273650610497353656C65637465643D66616C73650000000A54526563 - 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 615768697465165465787453657474696E67732E486F727A416C69676E07074C + 656164696E67000007544C61796F757400095374796C654E616D650607737562 + 6D61726B05416C69676E070552696768740A506F736974696F6E2E5805000000 + 00000000D404400A53697A652E57696474680500000000000000A003400B5369 + 7A652E4865696768740500000000000000D003401453697A652E506C6174666F + 726D44656661756C7408000554506174680005416C69676E070643656E746572 + 09446174612E506174680A340000000400000000000000000000000000000001 + 000000000000000000803F010000000000803F0000003F030000000000000000 + 0000000A46696C6C2E436F6C6F720708636C615768697465064C6F636B656409 + 0748697454657374080A53697A652E57696474680500000000000000E001400B + 53697A652E48656967687405000000000000008002401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0000545046300A5452656374616E676C6500095374796C654E616D65060C6D65 + 6E756261727374796C6505416C69676E070643656E7465720C436C6970436869 + 6C6472656E090946696C6C2E4B696E6407044E6F6E650748697454657374080A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000A54 + 52656374616E676C650005416C69676E0706436C69656E740A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080C4D617267696E732E + 4C656674050000000000000080FFBF0B4D617267696E732E546F700500000000 + 00000080FFBF0D4D617267696E732E5269676874050000000000000080FFBF0A + 53697A652E57696474680500000000000000D004400B53697A652E4865696768 + 740500000000000000CC04401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000007544C61 + 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0706 + 436C69656E740C4D617267696E732E4C656674050000000000000080FF3F0B4D + 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 + 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A53697A652E57696474680500000000000000C004400B53 + 697A652E4865696768740500000000000000C004401453697A652E506C617466 + 6F726D44656661756C74080000005450463007544C61796F757400095374796C + 654E616D65060D6D656E756974656D7374796C6505416C69676E070643656E74 + 65720C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A53697A652E576964746805000000000000009205400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000A5452656374616E676C650005416C 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138 324532074869745465737408074F70616369747905000000000017B7D1F13F0A 53697A652E576964746805000000000000009205400B53697A652E4865696768 @@ -8618,465 +8606,487 @@ object MainForm: TMainForm 6174696F6E00084475726174696F6E05000000000018B7D1F23F0C50726F7065 7274794E616D6506074F7061636974790A537461727456616C75650500000000 0000000000000953746F7056616C7565050000000000000080FF3F0754726967 - 676572061049734D6F7573654F7665723D747275650E54726967676572496E76 - 65727365061149734D6F7573654F7665723D66616C736500000007544C61796F - 757400095374796C654E616D650605676C79706805416C69676E07044C656674 - 0A53697A652E57696474680500000000000000C803400B53697A652E48656967 - 68740500000000000000D003401453697A652E506C6174666F726D4465666175 - 6C74080007544C61796F757400095374796C654E616D650609636865636B6D61 - 726B05416C69676E0708436F6E74656E7473074F706163697479050000000000 - 6F1283F53F0A53697A652E57696474680500000000000000C803400B53697A65 - 2E4865696768740500000000000000D003401453697A652E506C6174666F726D - 44656661756C7408000554506174680005416C69676E070643656E7465720944 - 6174612E506174680A58000000070000000000000056D9524391AE2C43010000 - 009276664365021643010000009F3983432B7C3C43010000009E9AA64382D2B4 - 42010000006F1CB04375A4D1420100000026DF8243263F67430300000056D952 - 4391AE2C430A46696C6C2E436F6C6F720708636C615768697465074869745465 - 7374080A53697A652E57696474680500000000000000B002400B53697A652E48 - 65696768740500000000000000B002401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F61 - 74416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C - 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 - 05000000000000000000000953746F7056616C7565050000000000000080FF3F - 0754726967676572060E4973436865636B65643D747275650E54726967676572 - 496E7665727365060F4973436865636B65643D66616C73650000000654476C79 - 706800095374796C654E616D65060A676C7970687374796C650C4D617267696E - 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 - 00000000008000400D4D617267696E732E52696768740500000000000000C000 - 400E4D617267696E732E426F74746F6D050000000000000080FF3F05416C6967 - 6E07044C6566740A53697A652E576964746805000000000000008003400B5369 - 7A652E48656967687405000000000000008003401453697A652E506C6174666F - 726D44656661756C740800000654496D61676500095374796C654E616D650606 - 6269746D61700E4D756C74695265734269746D61700E01000005416C69676E07 - 044C6566740C4D617267696E732E4C65667405000000000000008000400B4D61 - 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 - 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 - 000000008000400A506F736974696F6E2E5805000000000000008000400A506F + 676572060F497353656C65637465643D747275650E54726967676572496E7665 + 7273650610497353656C65637465643D66616C73650000000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138324532 + 074869745465737408074F70616369747905000000000017B7D1F13F0A53697A + 652E576964746805000000000000009205400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 + 6F6E00084475726174696F6E05000000000018B7D1F23F0C50726F7065727479 + 4E616D6506074F7061636974790A537461727456616C75650500000000000000 + 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 + 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 + 65061149734D6F7573654F7665723D66616C736500000007544C61796F757400 + 095374796C654E616D650605676C79706805416C69676E07044C6566740A5369 + 7A652E57696474680500000000000000C803400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 0007544C61796F757400095374796C654E616D650609636865636B6D61726B05 + 416C69676E0708436F6E74656E7473074F7061636974790500000000006F1283 + F53F0A53697A652E57696474680500000000000000C803400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C7408000554506174680005416C69676E070643656E7465720944617461 + 2E506174680A58000000070000000000000056D9524391AE2C43010000009276 + 664365021643010000009F3983432B7C3C43010000009E9AA64382D2B4420100 + 00006F1CB04375A4D1420100000026DF8243263F67430300000056D9524391AE + 2C430A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0A53697A652E57696474680500000000000000B002400B53697A652E48656967 + 68740500000000000000B002401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E + 696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572060E4973436865636B65643D747275650E54726967676572496E76 + 65727365060F4973436865636B65643D66616C73650000000654476C79706800 + 095374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C + 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 + 00008000400D4D617267696E732E52696768740500000000000000C000400E4D + 617267696E732E426F74746F6D050000000000000080FF3F05416C69676E0704 + 4C6566740A53697A652E576964746805000000000000008003400B53697A652E + 48656967687405000000000000008003401453697A652E506C6174666F726D44 + 656661756C740800000654496D61676500095374796C654E616D650606626974 + 6D61700E4D756C74695265734269746D61700E01000005416C69676E07044C65 + 66740C4D617267696E732E4C65667405000000000000008000400B4D61726769 + 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 + 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 + 008000400A506F736974696F6E2E5805000000000000008000400A506F736974 + 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 + 000000A803400B53697A652E4865696768740500000000000000B00340145369 + 7A652E506C6174666F726D44656661756C740800000005545465787400095374 + 796C654E616D6506047465787405416C69676E07044C656674064C6F636B6564 + 090748697454657374080C4D617267696E732E4C656674050000000000000080 + 02400D4D617267696E732E526967687405000000000000008002400A506F7369 + 74696F6E2E5805000000000000008404400A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F720708636C615768697465165465787453657474696E + 67732E486F727A416C69676E07074C656164696E670000055454657874000953 + 74796C654E616D65060873686F727463757405416C69676E0705526967687406 + 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 + 0000000000C002400D4D617267696E732E52696768740500000000000000C001 + 400A506F736974696F6E2E580500000000000000C000C00A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974651654657874 + 53657474696E67732E486F727A416C69676E07074C656164696E67000007544C + 61796F757400095374796C654E616D6506077375626D61726B05416C69676E07 + 0552696768740A506F736974696F6E2E580500000000000000D404400A53697A + 652E57696474680500000000000000A003400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C740800 + 0554506174680005416C69676E070643656E74657209446174612E506174680A + 340000000400000000000000000000000000000001000000000000000000803F + 010000000000803F0000003F0300000000000000000000000A46696C6C2E436F + 6C6F720708636C615768697465064C6F636B6564090748697454657374080A53 + 697A652E57696474680500000000000000E001400B53697A652E486569676874 + 05000000000000008002401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C6179 + 6F757400095374796C654E616D6506126D656E75736570617261746F72737479 + 6C6505416C69676E070643656E7465720C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000C8044014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080005 + 544C696E650005416C69676E0703546F70084C696E65547970650703546F700C + 4D617267696E732E4C6566740500000000000000C000400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 00000000C000400A506F736974696F6E2E580500000000000000C000400A506F 736974696F6E2E5905000000000000008000400A53697A652E57696474680500 - 000000000000A803400B53697A652E4865696768740500000000000000B00340 - 1453697A652E506C6174666F726D44656661756C740800000005545465787400 - 095374796C654E616D6506047465787405416C69676E07044C656674064C6F63 - 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 - 00008002400D4D617267696E732E526967687405000000000000008002400A50 - 6F736974696F6E2E5805000000000000008404400A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000D003 - 401453697A652E506C6174666F726D44656661756C7408165465787453657474 - 696E67732E466F6E74436F6C6F720708636C6157686974651654657874536574 - 74696E67732E486F727A416C69676E07074C656164696E670000055454657874 - 00095374796C654E616D65060873686F727463757405416C69676E0705526967 - 6874064C6F636B6564090748697454657374080C4D617267696E732E4C656674 - 0500000000000000C002400D4D617267696E732E526967687405000000000000 - 00C001400A506F736974696F6E2E580500000000000000C000C00A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000D003401453697A652E506C6174666F726D44656661756C7408165465 - 787453657474696E67732E466F6E74436F6C6F720708636C6157686974651654 - 65787453657474696E67732E486F727A416C69676E07074C656164696E670000 - 07544C61796F757400095374796C654E616D6506077375626D61726B05416C69 - 676E070552696768740A506F736974696F6E2E580500000000000000D404400A - 53697A652E57696474680500000000000000A003400B53697A652E4865696768 - 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 7408000554506174680005416C69676E070643656E74657209446174612E5061 - 74680A3400000004000000000000000000000000000000010000000000000000 - 00803F010000000000803F0000003F0300000000000000000000000A46696C6C - 2E436F6C6F720708636C615768697465064C6F636B6564090748697454657374 - 080A53697A652E57696474680500000000000000E001400B53697A652E486569 - 67687405000000000000008002401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 - 4C61796F757400095374796C654E616D6506126D656E75736570617261746F72 - 7374796C6505416C69676E070643656E7465720C4D617267696E732E4C656674 - 050000000000000080FF3F0B4D617267696E732E546F70050000000000000080 - FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267 - 696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08085461624F72646572021E0005544C696E650005416C69676E0703546F7008 - 4C696E65547970650703546F700C4D617267696E732E4C656674050000000000 - 0000C000400B4D617267696E732E546F7005000000000000008000400D4D6172 - 67696E732E52696768740500000000000000C000400A506F736974696F6E2E58 - 0500000000000000C000400A506F736974696F6E2E5905000000000000008000 - 400A53697A652E57696474680500000000000000B004400B53697A652E486569 - 676874050000000000000080FF3F1453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313500000054 - 5046300A5452656374616E676C6500095374796C654E616D65060D6D656E7576 - 6965777374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F - 7207097846463230323032300A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000000000C804401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 463135313531350756697369626C6508000A5452656374616E676C650005416C - 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 - 300748697454657374080A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 3531353135000D54536861646F77456666656374000844697374616E63650500 - 000000000000C0004009446972656374696F6E0500000000000000B405400853 - 6F66746E657373050000000000000080FE3F074F706163697479050000000000 - 000080FE3F0B536861646F77436F6C6F720708636C61426C61636B0000000754 - 4C61796F757400095374796C654E616D650607636F6E74656E7405416C69676E - 0706436C69656E740C4D617267696E732E4C656674050000000000000080FF3F - 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E - 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F0A53697A652E57696474680500000000000000C00440 - 0B53697A652E4865696768740500000000000000C004401453697A652E506C61 - 74666F726D44656661756C74080000005450463007544C61796F757400095374 - 796C654E616D65060E696D61676563656C6C7374796C6505416C69676E070643 - 656E7465720756697369626C6508085461624F72646572021F000654496D6167 - 6500095374796C654E616D650605696D6167650E4D756C74695265734269746D - 61700E01000005416C69676E0706436C69656E74064C6F636B65640907486974 - 54657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D61 - 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 - 6874050000000000000080FF3F0E4D617267696E732E426F74746F6D05000000 - 0000000080FF3F0A53697A652E57696474680500000000000000C004400B5369 - 7A652E4865696768740500000000000000C004401453697A652E506C6174666F - 726D44656661756C74080000005450463007544C61796F757400095374796C65 - 4E616D65060E706F70757063656C6C7374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000000000BB06400B53697A652E4865 - 696768740500000000000000AE04401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F7264657202200007544C61796F - 75740005416C69676E070552696768740A506F736974696F6E2E580500000000 - 000000AC06400A53697A652E57696474680500000000000000F002400B53697A - 652E4865696768740500000000000000AE04401453697A652E506C6174666F72 - 6D44656661756C7408000554506174680005416C69676E070643656E74657209 - 446174612E506174680A400000000500000000000000000000000000803F0100 - 00000000803F0000803F010000000000003F0000000001000000000000000000 - 803F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 - 6974650748697454657374080B4D617267696E732E546F700500000000000000 - E001C00A53697A652E576964746805000000000000008002400B53697A652E48 - 656967687405000000000000008001401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000055450617468 - 0005416C69676E070643656E74657209446174612E506174680A340000000400 - 0000000000000000000000000000010000000000803F00000000010000000000 - 003F0000803F0300000000000000000000000A46696C6C2E436F6C6F72070863 - 6C6157686974650748697454657374080B4D617267696E732E546F7005000000 - 00000000C001400A53697A652E576964746805000000000000008002400B5369 - 7A652E48656967687405000000000000008001401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000005 - 545465787400095374796C654E616D6506047465787405416C69676E0706436C - 69656E74064C6F636B6564090748697454657374080C4D617267696E732E4C65 - 66740500000000000000A001400B4D617267696E732E546F7005000000000000 - 008000400D4D617267696E732E52696768740500000000000000A001400E4D61 - 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 - 74680500000000000000A206400B53697A652E48656967687405000000000000 - 009E04401453697A652E506C6174666F726D44656661756C7408165465787453 - 657474696E67732E466F6E74436F6C6F720708636C6157686974650000005450 - 463007544C61796F757400095374796C654E616D65060D7465787463656C6C73 - 74796C6505416C69676E070643656E7465720756697369626C6508085461624F - 7264657202210007544C61796F757400095374796C654E616D650607636F6E74 - 656E7405416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267 - 696E732E4C65667405000000000000008001400B4D617267696E732E546F7005 - 000000000000008001400D4D617267696E732E52696768740500000000000000 - 8001400E4D617267696E732E426F74746F6D05000000000000008001400A5369 - 7A652E57696474680500000000000000A804400B53697A652E48656967687405 - 00000000000000A804401453697A652E506C6174666F726D44656661756C7408 - 00000C5442727573684F626A65637400095374796C654E616D65060A666F7265 - 67726F756E6400000C5442727573684F626A65637400095374796C654E616D65 - 060973656C656374696F6E0B42727573682E436F6C6F72070978393632413832 - 453200000B54466F6E744F626A65637400095374796C654E616D650604666F6E - 740000005450463007544C61796F757400095374796C654E616D6506096D656D - 6F7374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 0000000000CCCC8806400B53697A652E4865696768740500000000006666F405 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F726465720222000C5442727573684F626A65637400095374796C65 - 4E616D65060A666F726567726F756E6400000C5442727573684F626A65637400 - 095374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F - 72070978374634343735394400000B54466F6E744F626A65637400095374796C - 654E616D650604666F6E7400000A5452656374616E676C6500095374796C654E - 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 - 697A652E5769647468050000000000CCCC8806400B53697A652E486569676874 - 0500000000006666F405401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F - 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C - 69656E740C4D617267696E732E4C65667405000000000000008000400B4D6172 - 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 - 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 - 0000008000400A53697A652E57696474680500000000009899E905400B53697A - 652E4865696768740500000000006666CC05401453697A652E506C6174666F72 - 6D44656661756C740800000A545363726F6C6C42617200095374796C654E616D - 65060A687363726F6C6C62617205416C69676E0706426F74746F6D0643757273 - 6F72070763724172726F770B536D616C6C4368616E6765050000000000000000 - 00000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974 - 696F6E2E590500000000006666D405400A53697A652E57696474680500000000 - 00CCCC8806400B53697A652E4865696768740500000000000000800340145369 - 7A652E506C6174666F726D44656661756C740800000A545363726F6C6C426172 - 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 - 6967687406437572736F72070763724172726F770B536D616C6C4368616E6765 - 05000000000000000000000B4F7269656E746174696F6E070856657274696361 - 6C0A506F736974696F6E2E580500000000009899F105400A53697A652E576964 - 746805000000000000008003400B53697A652E48656967687405000000000066 - 66D405401453697A652E506C6174666F726D44656661756C7408000007544C61 - 796F75740005416C69676E0706436C69656E740A53697A652E57696474680500 - 000000009899F105400B53697A652E4865696768740500000000006666D40540 - 1453697A652E506C6174666F726D44656661756C7408000F54536D616C6C5363 - 726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C - 62617205416C69676E0705526967687406437572736F72070763724172726F77 - 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 - 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 - 00008000400A53697A652E576964746805000000000000008002400B53697A65 - 2E48656967687405000000000000008002401453697A652E506C6174666F726D - 44656661756C74080756697369626C650800000F54536D616C6C5363726F6C6C - 42617200095374796C654E616D65060F68736D616C6C7363726F6C6C62617205 - 416C69676E0706426F74746F6D06437572736F72070763724172726F770B536D - 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E - 070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000000000 - 8000400A53697A652E576964746805000000000000009606400B53697A652E48 - 656967687405000000000000008002401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C65080000000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D6506146D656D6F5374726F6B65416E696D617469 - 6F6E31084475726174696F6E050000000000000000000007496E766572736509 - 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 - 7456616C756507097846463135313531350953746F7056616C75650709784646 - 3430343034300754726967676572062049734D6F7573654F7665723D74727565 - 3B4973466F63757365643D66616C73650E54726967676572496E766572736506 - 2149734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C - 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 146D656D6F5374726F6B65416E696D6174696F6E32084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D65060C5374726F6B652E43 - 6F6C6F720A537461727456616C756507097846463430343034300953746F7056 - 616C756507097846463241383245320754726967676572060E4973466F637573 - 65643D747275650E54726967676572496E7665727365060F4973466F63757365 - 643D66616C7365000000005450463007544C61796F757400095374796C654E61 - 6D65060E6C696E6B6C6162656C7374796C6505416C69676E070643656E746572 - 0A53697A652E5769647468050000000000CCCC8006400B53697A652E48656967 - 68740500000000009A998104401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508085461624F726465720223000554546578740009 - 5374796C654E616D6506047465787405416C69676E0708436F6E74656E747307 - 48697454657374080A53697A652E5769647468050000000000CCCC8006400B53 - 697A652E4865696768740500000000009A998104401453697A652E506C617466 - 6F726D44656661756C74081A5465787453657474696E67732E466F6E742E5374 - 796C654578740A0D000000040400000000000000040000001654657874536574 - 74696E67732E466F6E74436F6C6F72070D636C61446F64676572626C7565000F + 000000000000B004400B53697A652E486569676874050000000000000080FF3F + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F720709784646313531353135000000545046300A5452656374616E676C65 + 00095374796C654E616D65060D6D656E75766965777374796C6505416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463230323032300A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350756697369626C + 6508000A5452656374616E676C650005416C69676E0706436C69656E740A4669 + 6C6C2E436F6C6F7207097846463230323032300748697454657374080A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135000D54536861646F77 + 456666656374000844697374616E63650500000000000000C000400944697265 + 6374696F6E0500000000000000B4054008536F66746E65737305000000000000 + 0080FE3F074F706163697479050000000000000080FE3F0B536861646F77436F + 6C6F720708636C61426C61636B00000007544C61796F757400095374796C654E + 616D650607636F6E74656E7405416C69676E0706436C69656E740C4D61726769 + 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A + 652E57696474680500000000000000C004400B53697A652E4865696768740500 + 000000000000C004401453697A652E506C6174666F726D44656661756C740800 + 00005450463007544C61796F757400095374796C654E616D65060E696D616765 + 63656C6C7374796C6505416C69676E070643656E7465720756697369626C6508 + 000654496D61676500095374796C654E616D650605696D6167650E4D756C7469 + 5265734269746D61700E01000005416C69676E0706436C69656E74064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 + 00C004400B53697A652E4865696768740500000000000000C004401453697A65 + 2E506C6174666F726D44656661756C74080000005450463007544C61796F7574 + 00095374796C654E616D65060E706F70757063656C6C7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000BB06400B + 53697A652E4865696768740500000000000000AE04401453697A652E506C6174 + 666F726D44656661756C74080756697369626C65080007544C61796F75740005 + 416C69676E070552696768740A506F736974696F6E2E580500000000000000AC + 06400A53697A652E57696474680500000000000000F002400B53697A652E4865 + 696768740500000000000000AE04401453697A652E506C6174666F726D446566 + 61756C7408000554506174680005416C69676E070643656E7465720944617461 + 2E506174680A400000000500000000000000000000000000803F010000000000 + 803F0000803F010000000000003F0000000001000000000000000000803F0300 + 000000000000000000000A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080B4D617267696E732E546F700500000000000000E001C00A + 53697A652E576964746805000000000000008002400B53697A652E4865696768 + 7405000000000000008001401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000554506174680005416C + 69676E070643656E74657209446174612E506174680A34000000040000000000 + 00000000000000000000010000000000803F00000000010000000000003F0000 + 803F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080B4D617267696E732E546F700500000000000000 + C001400A53697A652E576964746805000000000000008002400B53697A652E48 + 656967687405000000000000008001401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000554546578 + 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 000000000000A001400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E52696768740500000000000000A001400E4D617267696E + 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 + 000000000000A206400B53697A652E48656967687405000000000000009E0440 + 1453697A652E506C6174666F726D44656661756C740816546578745365747469 + 6E67732E466F6E74436F6C6F720708636C615768697465000000545046300754 + 4C61796F757400095374796C654E616D65060D7465787463656C6C7374796C65 + 05416C69676E070643656E7465720756697369626C65080007544C61796F7574 + 00095374796C654E616D650607636F6E74656E7405416C69676E0708436F6E74 + 656E7473064C6F636B6564090C4D617267696E732E4C65667405000000000000 + 008001400B4D617267696E732E546F7005000000000000008001400D4D617267 + 696E732E526967687405000000000000008001400E4D617267696E732E426F74 + 746F6D05000000000000008001400A53697A652E576964746805000000000000 + 00A804400B53697A652E4865696768740500000000000000A804401453697A65 + 2E506C6174666F726D44656661756C740800000C5442727573684F626A656374 + 00095374796C654E616D65060A666F726567726F756E6400000C544272757368 + 4F626A65637400095374796C654E616D65060973656C656374696F6E0B427275 + 73682E436F6C6F72070978393632413832453200000B54466F6E744F626A6563 + 7400095374796C654E616D650604666F6E740000005450463007544C61796F75 + 7400095374796C654E616D6506096D656D6F7374796C6505416C69676E070643 + 656E7465720A53697A652E5769647468050000000000CCCC8806400B53697A65 + 2E4865696768740500000000006666F405401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508000C5442727573684F626A65637400 + 095374796C654E616D65060A666F726567726F756E6400000C5442727573684F + 626A65637400095374796C654E616D65060973656C656374696F6E0B42727573 + 682E436F6C6F72070978374634343735394400000B54466F6E744F626A656374 + 00095374796C654E616D650604666F6E7400000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080A53697A652E5769647468050000000000CCCC8806400B53697A652E + 4865696768740500000000006666F405401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 + 676E0706436C69656E740C4D617267696E732E4C656674050000000000000080 + 00400B4D617267696E732E546F7005000000000000008000400D4D617267696E + 732E526967687405000000000000008000400E4D617267696E732E426F74746F + 6D05000000000000008000400A53697A652E57696474680500000000009899E9 + 05400B53697A652E4865696768740500000000006666CC05401453697A652E50 + 6C6174666F726D44656661756C740800000A545363726F6C6C42617200095374 + 796C654E616D65060A687363726F6C6C62617205416C69676E0706426F74746F + 6D06437572736F72070763724172726F770B536D616C6C4368616E6765050000 + 00000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C + 0A506F736974696F6E2E590500000000006666D405400A53697A652E57696474 + 68050000000000CCCC8806400B53697A652E4865696768740500000000000000 + 8003401453697A652E506C6174666F726D44656661756C740800000A54536372 + 6F6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C + 69676E0705526967687406437572736F72070763724172726F770B536D616C6C + 4368616E676505000000000000000000000B4F7269656E746174696F6E070856 + 6572746963616C0A506F736974696F6E2E580500000000009899F105400A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 00000000006666D405401453697A652E506C6174666F726D44656661756C7408 + 000007544C61796F75740005416C69676E0706436C69656E740A53697A652E57 + 696474680500000000009899F105400B53697A652E4865696768740500000000 + 006666D405401453697A652E506C6174666F726D44656661756C7408000F5453 + 6D616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C + 7363726F6C6C62617205416C69676E0705526967687406437572736F72070763 + 724172726F770B536D616C6C4368616E676505000000000000000000000B4F72 + 69656E746174696F6E0708566572746963616C0C4D617267696E732E4C656674 + 05000000000000008000400A53697A652E576964746805000000000000008002 + 400B53697A652E48656967687405000000000000008002401453697A652E506C + 6174666F726D44656661756C74080756697369626C650800000F54536D616C6C + 5363726F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F + 6C6C62617205416C69676E0706426F74746F6D06437572736F72070763724172 + 726F770B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F700500 + 0000000000008000400A53697A652E576964746805000000000000009606400B + 53697A652E48656967687405000000000000008002401453697A652E506C6174 + 666F726D44656661756C74080756697369626C65080000000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D6506146D656D6F5374726F6B6541 + 6E696D6174696F6E31084475726174696F6E050000000000000000000007496E + 7665727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F + 720A537461727456616C756507097846463135313531350953746F7056616C75 + 6507097846463430343034300754726967676572062049734D6F7573654F7665 + 723D747275653B4973466F63757365643D66616C73650E54726967676572496E + 7665727365062149734D6F7573654F7665723D66616C73653B4973466F637573 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D6506146D656D6F5374726F6B65416E696D6174696F6E320844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D65060C5374 + 726F6B652E436F6C6F720A537461727456616C75650709784646343034303430 + 0953746F7056616C756507097846463241383245320754726967676572060E49 + 73466F63757365643D747275650E54726967676572496E7665727365060F4973 + 466F63757365643D66616C7365000000005450463007544C61796F7574000953 + 74796C654E616D65060E6C696E6B6C6162656C7374796C6505416C69676E0706 + 43656E7465720A53697A652E5769647468050000000000CCCC8006400B53697A + 652E4865696768740500000000009A998104401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C65080005545465787400095374796C65 + 4E616D6506047465787405416C69676E0708436F6E74656E7473074869745465 + 7374080A53697A652E5769647468050000000000CCCC8006400B53697A652E48 + 65696768740500000000009A998104401453697A652E506C6174666F726D4465 + 6661756C74081A5465787453657474696E67732E466F6E742E5374796C654578 + 740A0D00000004040000000000000004000000165465787453657474696E6773 + 2E466F6E74436F6C6F72070D636C61446F64676572626C7565000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D + 6174696F6E315374796C65084475726174696F6E050000000000000000000007 + 496E7665727365090C50726F70657274794E616D650616546578745365747469 + 6E67732E466F6E74436F6C6F720A537461727456616C7565070D636C61446F64 + 676572626C75650953746F7056616C7565070E636C6144656570736B79626C75 + 650754726967676572063049734D6F7573654F7665723D747275653B49735072 + 65737365643D66616C73653B4973466F63757365643D66616C73650E54726967 + 676572496E7665727365063149734D6F7573654F7665723D66616C73653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C736500000F 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F - 72416E696D6174696F6E315374796C65084475726174696F6E05000000000000 - 0000000007496E7665727365090C50726F70657274794E616D65061654657874 - 53657474696E67732E466F6E74436F6C6F720A537461727456616C7565070D63 - 6C61446F64676572626C75650953746F7056616C7565070E636C614465657073 - 6B79626C75650754726967676572063049734D6F7573654F7665723D74727565 - 3B4973507265737365643D66616C73653B4973466F63757365643D66616C7365 - 0E54726967676572496E7665727365063149734D6F7573654F7665723D66616C - 73653B4973507265737365643D66616C73653B4973466F63757365643D66616C - 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 14436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D6506165465787453657474 - 696E67732E466F6E74436F6C6F720A537461727456616C7565070E636C614465 - 6570736B79626C75650953746F7056616C756507097846463137353739430754 - 726967676572062F4973507265737365643D747275653B49734D6F7573654F76 - 65723D747275653B4973466F63757365643D66616C736500000000545046300A - 5452656374616E676C6500095374796C654E616D65060E737461747573626172 - 7374796C6505416C69676E070643656E7465720C436C69704368696C6472656E - 090A46696C6C2E436F6C6F720709784646323532353235074869745465737408 - 0553696465730B03546F70000A53697A652E57696474680500000000000000F0 - 04400B53697A652E4865696768740500000000000000C804401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 463135313531350756697369626C65080007544C61796F757400095374796C65 - 4E616D6506074C61796F75743105416C69676E070552696768740A506F736974 - 696F6E2E5805000000000000008C04400A53697A652E57696474680500000000 - 000000C803400B53697A652E4865696768740500000000000000C80440145369 - 7A652E506C6174666F726D44656661756C740800095453697A65477269700009 - 5374796C654E616D65060973697A65677267697005416C69676E0706426F7474 - 6F6D0A506F736974696F6E2E590500000000000000C803400A53697A652E5769 - 6474680500000000000000C803400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C74080000000054 - 50463007544C61796F757400095374796C654E616D65060C7370696E626F7873 - 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 - 0000006666E005400B53697A652E4865696768740500000000000000A8034014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F726465720224000A5452656374616E676C6500095374796C654E616D65 - 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F7207097846463230323032300A53697A652E5769647468050000 - 0000006666E005400B53697A652E4865696768740500000000000000A8034014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F720709784646313531353135000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 - 4475726174696F6E050000000000000000000007496E7665727365090C50726F - 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C - 756507097846463135313531350953746F7056616C7565070978464634303430 - 34300754726967676572061049734D6F7573654F7665723D747275650E547269 - 67676572496E7665727365061149734D6F7573654F7665723D66616C73650000 - 000C5442727573684F626A65637400095374796C654E616D65060A666F726567 - 726F756E640B42727573682E436F6C6F72070978464645414541454100000C54 - 42727573684F626A65637400095374796C654E616D65060973656C656374696F - 6E0B42727573682E436F6C6F720709783936324138324532000007544C61796F - 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C - 69656E74064C6F636B6564090C4D617267696E732E4C65667405000000000000 + 72416E696D6174696F6E325374796C65084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D6506165465787453657474696E67732E + 466F6E74436F6C6F720A537461727456616C7565070E636C6144656570736B79 + 626C75650953746F7056616C7565070978464631373537394307547269676765 + 72062F4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 75653B4973466F63757365643D66616C736500000000545046300A5452656374 + 616E676C6500095374796C654E616D65060E7374617475736261727374796C65 + 05416C69676E070643656E7465720C436C69704368696C6472656E090A46696C + 6C2E436F6C6F7207097846463235323532350748697454657374080553696465 + 730B03546F70000A53697A652E57696474680500000000000000F004400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350756697369626C65080007544C61796F757400095374796C654E616D6506 + 074C61796F75743105416C69676E070552696768740A506F736974696F6E2E58 + 05000000000000008C04400A53697A652E57696474680500000000000000C803 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C740800095453697A654772697000095374796C65 + 4E616D65060973697A65677267697005416C69676E0706426F74746F6D0A506F + 736974696F6E2E590500000000000000C803400A53697A652E57696474680500 + 000000000000C803400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C740800000000545046300754 + 4C61796F757400095374796C654E616D65060C7370696E626F787374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000006666 + E005400B53697A652E4865696768740500000000000000A803401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 + 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 + 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230 + 32300A53697A652E57696474680500000000006666E005400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E315374796C65084475726174696F6E0500000000000000 + 00000007496E7665727365090C50726F70657274794E616D65060C5374726F6B + 652E436F6C6F720A537461727456616C75650709784646313531353135095374 + 6F7056616C756507097846463430343034300754726967676572061049734D6F + 7573654F7665723D747275650E54726967676572496E7665727365061149734D + 6F7573654F7665723D66616C73650000000C5442727573684F626A6563740009 + 5374796C654E616D65060A666F726567726F756E640B42727573682E436F6C6F + 72070978464645414541454100000C5442727573684F626A6563740009537479 + 6C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72070978 + 3936324138324532000007544C61796F757400095374796C654E616D65060763 + 6F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D6172 + 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 008000400E4D617267696E732E426F74746F6D05000000000000008000400A53 + 697A652E576964746805000000000070668405400B53697A652E486569676874 + 05000000000000008803401453697A652E506C6174666F726D44656661756C74 + 0800000754427574746F6E00095374796C654E616D65060B6D696E7573627574 + 746F6E05416C69676E07074669744C6566740843616E466F6375730806437572 + 736F72070763724172726F770C4D617267696E732E4C65667405000000000000 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D05000000000000008000400A53697A652E576964746805000000000070 - 668405400B53697A652E48656967687405000000000000008803401453697A65 - 2E506C6174666F726D44656661756C740800000754427574746F6E0009537479 - 6C654E616D65060B6D696E7573627574746F6E05416C69676E07074669744C65 - 66740843616E466F6375730806437572736F72070763724172726F770C4D6172 + 746F6D05000000000000008000400A506F736974696F6E2E5805000000000000 + 008000400A506F736974696F6E2E5905000000000000008000400A53697A652E + 5769647468050000000000E8FF8703400B53697A652E48656967687405000000 + 000000008803401453697A652E506C6174666F726D44656661756C74080B5374 + 796C654C6F6F6B7570060B627574746F6E7374796C6500055450617468000541 + 6C69676E0706436C69656E7409446174612E506174680A400000000500000000 + 0000000000803F00000000010000000000803F0000803F010000000000000000 + 00003F010000000000803F00000000030000000000803F000000000A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080C4D617267696E + 732E4C6566740500000000000000C001400B4D617267696E732E546F70050000 + 0000000000C001400D4D617267696E732E52696768740500000000000000C001 + 400E4D617267696E732E426F74746F6D0500000000000000C001400A53697A65 + 2E5769647468050000000000A0FF9F01400B53697A652E486569676874050000 + 0000000000A001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650000000754427574746F6E0009537479 + 6C654E616D65060A706C7573627574746F6E05416C69676E0708466974526967 + 68740843616E466F6375730806437572736F72070763724172726F770C4D6172 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 05000000000000008000400D4D617267696E732E526967687405000000000000 008000400E4D617267696E732E426F74746F6D05000000000000008000400A50 - 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 - 000000000000008000400A53697A652E5769647468050000000000E8FF870340 + 6F736974696F6E2E580500000000006A66BA05400A506F736974696F6E2E5905 + 000000000000008000400A53697A652E5769647468050000000000F0FF870340 0B53697A652E48656967687405000000000000008803401453697A652E506C61 74666F726D44656661756C74080B5374796C654C6F6F6B7570060B627574746F 6E7374796C65000554506174680005416C69676E0706436C69656E7409446174 - 612E506174680A4000000005000000000000000000803F000000000100000000 - 00803F0000803F01000000000000000000003F010000000000803F0000000003 - 0000000000803F000000000A46696C6C2E436F6C6F720708636C615768697465 - 0748697454657374080C4D617267696E732E4C6566740500000000000000C001 - 400B4D617267696E732E546F700500000000000000C001400D4D617267696E73 - 2E52696768740500000000000000C001400E4D617267696E732E426F74746F6D - 0500000000000000C001400A53697A652E5769647468050000000000A0FF9F01 - 400B53697A652E4865696768740500000000000000A001401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 0000000754427574746F6E00095374796C654E616D65060A706C757362757474 - 6F6E05416C69676E070846697452696768740843616E466F6375730806437572 - 736F72070763724172726F770C4D617267696E732E4C65667405000000000000 - 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 - 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D05000000000000008000400A506F736974696F6E2E580500000000006A - 66BA05400A506F736974696F6E2E5905000000000000008000400A53697A652E - 5769647468050000000000F0FF8703400B53697A652E48656967687405000000 - 000000008803401453697A652E506C6174666F726D44656661756C74080B5374 - 796C654C6F6F6B7570060B627574746F6E7374796C6500055450617468000541 - 6C69676E0706436C69656E7409446174612E506174680A340000000400000000 - 000000000000000000000001000000000000000000803F010000000000803F00 - 00003F0300000000000000000000000A46696C6C2E436F6C6F720708636C6157 - 686974650748697454657374080C4D617267696E732E4C656674050000000000 - 0000C001400B4D617267696E732E546F700500000000000000C001400D4D6172 - 67696E732E52696768740500000000000000C001400E4D617267696E732E426F - 74746F6D0500000000000000C001400A53697A652E5769647468050000000000 - C0FF9F01400B53697A652E4865696768740500000000000000A001401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000000005450463007544C61796F757400095374796C654E616D6506 - 0D73697A65677269707374796C6505416C69676E070643656E7465720A53697A - 652E57696474680500000000000000C803400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F726465720225000A5452656374616E676C6500 - 095374796C654E616D65060A52656374616E676C653105416C69676E07064365 - 6E7465720A46696C6C2E436F6C6F7207097846463630363036300A53697A652E - 57696474680500000000000000A000400B53697A652E48656967687405000000 - 00000000A000401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653205416C69676E070643656E7465 - 720A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E - 4C6566740500000000000000A002400A53697A652E5769647468050000000000 - 0000A000400B53697A652E4865696768740500000000000000A000401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6500000A5452656374616E676C6500095374796C654E616D65060A5265 - 6374616E676C653305416C69676E070643656E7465720A46696C6C2E436F6C6F - 7207097846463630363036300C4D617267696E732E4C65667405000000000000 - 00A002400B4D617267696E732E546F700500000000000000A002400A53697A65 - 2E57696474680500000000000000A000400B53697A652E486569676874050000 - 0000000000A000401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65000953 - 74796C654E616D65060A52656374616E676C653405416C69676E070643656E74 - 65720A46696C6C2E436F6C6F7207097846463630363036300B4D617267696E73 - 2E546F700500000000000000A002400A53697A652E5769647468050000000000 - 0000A000400B53697A652E4865696768740500000000000000A000401453697A + 612E506174680A34000000040000000000000000000000000000000100000000 + 0000000000803F010000000000803F0000003F0300000000000000000000000A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D61 + 7267696E732E4C6566740500000000000000C001400B4D617267696E732E546F + 700500000000000000C001400D4D617267696E732E5269676874050000000000 + 0000C001400E4D617267696E732E426F74746F6D0500000000000000C001400A + 53697A652E5769647468050000000000C0FF9F01400B53697A652E4865696768 + 740500000000000000A001401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61 + 796F757400095374796C654E616D65060D73697A65677269707374796C650541 + 6C69676E070643656E7465720A53697A652E57696474680500000000000000C8 + 03400B53697A652E4865696768740500000000000000C803401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F7207097846463630363036300A + 53697A652E57696474680500000000000000A000400B53697A652E4865696768 + 740500000000000000A000401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C + 6500095374796C654E616D65060A52656374616E676C653205416C69676E0706 + 43656E7465720A46696C6C2E436F6C6F7207097846463630363036300C4D6172 + 67696E732E4C6566740500000000000000A002400A53697A652E576964746805 + 00000000000000A000400B53697A652E4865696768740500000000000000A000 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653305416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463630363036300C4D617267696E732E4C6566740500 + 000000000000A002400B4D617267696E732E546F700500000000000000A00240 + 0A53697A652E57696474680500000000000000A000400B53697A652E48656967 + 68740500000000000000A000401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E67 + 6C6500095374796C654E616D65060A52656374616E676C653405416C69676E07 + 0643656E7465720A46696C6C2E436F6C6F7207097846463630363036300B4D61 + 7267696E732E546F700500000000000000A002400A53697A652E576964746805 + 00000000000000A000400B53697A652E4865696768740500000000000000A000 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653505416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463630363036300B4D617267696E732E546F70050000 + 0000000000A002400D4D617267696E732E52696768740500000000000000A002 + 400A53697A652E57696474680500000000000000A000400B53697A652E486569 + 6768740500000000000000A000401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E + 676C6500095374796C654E616D65060A52656374616E676C653605416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463630363036300C4D + 617267696E732E4C6566740500000000000000A002400E4D617267696E732E42 + 6F74746F6D0500000000000000A002400A53697A652E57696474680500000000 + 000000A000400B53697A652E4865696768740500000000000000A00040145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000000545046300A5452656374616E676C6500095374796C654E61 + 6D65060C746F6F6C6261727374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F720709784646323532353235074869745465737408055369 + 6465730B06426F74746F6D000A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 463135313531350756697369626C650800005450463007544C61796F75740009 + 5374796C654E616D65061570726F67726573736261726572726F727374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000033 + 338505400B53697A652E4865696768740500000000009999E104401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508000A54526563 + 74616E676C6500095374796C654E616D65060668747261636B05416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230323006 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000A5452656374616E676C6500095374796C654E61 + 6D65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E + 436F6C6F720709784646453232413241064C6F636B6564090748697454657374 + 080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73697469 + 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000009999D904401453697A 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6500000A5452656374616E676C6500095374796C654E616D65060A5265 - 6374616E676C653505416C69676E070643656E7465720A46696C6C2E436F6C6F - 7207097846463630363036300B4D617267696E732E546F700500000000000000 - A002400D4D617267696E732E52696768740500000000000000A002400A53697A - 652E57696474680500000000000000A000400B53697A652E4865696768740500 - 000000000000A000401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009 - 5374796C654E616D65060A52656374616E676C653605416C69676E070643656E - 7465720A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E - 732E4C6566740500000000000000A002400E4D617267696E732E426F74746F6D - 0500000000000000A002400A53697A652E57696474680500000000000000A000 - 400B53697A652E4865696768740500000000000000A000401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 000000545046300A5452656374616E676C6500095374796C654E616D65060C74 - 6F6F6C6261727374796C6505416C69676E070643656E7465720A46696C6C2E43 - 6F6C6F7207097846463235323532350748697454657374080553696465730B06 - 426F74746F6D000A53697A652E57696474680500000000000000C804400B5369 - 7A652E4865696768740500000000000000C804401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 31350756697369626C650800005450463007544C61796F757400095374796C65 - 4E616D65061570726F67726573736261726572726F727374796C6505416C6967 - 6E070643656E7465720A53697A652E576964746805000000000033338505400B - 53697A652E4865696768740500000000009999E104401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F726465720226 - 000A5452656374616E676C6500095374796C654E616D65060668747261636B05 - 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 - 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 - 6805000000000033338505400B53697A652E4865696768740500000000009999 - E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646313531353135000A5452656374616E676C65000953 - 74796C654E616D65060A68696E64696361746F7205416C69676E07044C656674 - 0A46696C6C2E436F6C6F720709784646453232413241064C6F636B6564090748 - 697454657374080C4D617267696E732E4C656674050000000000000080FF3F0B - 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 - 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 - 00000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A - 506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000009999D9 - 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E650000000A5452656374616E676C6500095374796C654E - 616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646323032303230064C6F636B65640907486974546573 - 74080A53697A652E576964746805000000000033338505400B53697A652E4865 - 696768740500000000009999E104401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000A54 - 52656374616E676C6500095374796C654E616D65060A76696E64696361746F72 - 05416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846464532 - 32413241064C6F636B6564090748697454657374080C4D617267696E732E4C65 - 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 - 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 - 7267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E - 2E58050000000000000080FF3F0A506F736974696F6E2E590500000000009999 - 8904400A53697A652E576964746805000000000033338105400B53697A652E48 - 65696768740500000000000000A803401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054504630 - 07544C61796F757400095374796C654E616D65060F64726F7074617267657473 - 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 - 000000ACAAD905400B53697A652E4865696768740500000000000000CF054014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F726465720227000A5452656374616E676C650005416C69676E0708436F - 6E74656E74730946696C6C2E4B696E6407044E6F6E650748697454657374080A - 53697A652E5769647468050000000000ACAAD905400B53697A652E4865696768 - 740500000000000000CF05401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F720708636C615768697465105374726F6B65 - 2E546869636B6E65737305000000000000008001400B5374726F6B652E446173 - 6807044461736807585261646975730500000000000000C00240075952616469 - 75730500000000000000C002400005545465787400095374796C654E616D6506 - 047465787405416C69676E0706426F74746F6D0748697454657374080C4D6172 - 67696E732E4C6566740500000000000000A002400D4D617267696E732E526967 - 68740500000000000000A002400A506F736974696F6E2E580500000000000000 - A002400A506F736974696F6E2E590500000000000000D604400A53697A652E57 - 69647468050000000000ACAAB105400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C740816546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 - 1254466C6F61744B6579416E696D6174696F6E00084475726174696F6E050000 - 000000999999FE3F044B6579730E010001034B6579050000000000000080FE3F - 0556616C75650500000000000000A003C00001034B6579050000000000000080 - FF3F0000044C6F6F70090C50726F70657274794E616D65060B50616464696E67 - 2E546F7010537461727446726F6D43757272656E74080754726967676572060F - 4973447261674F7665723D7472756500000554506174680005416C69676E0706 - 43656E74657209446174612E506174680AC4000000100000000000000008EC83 - 43F087A4430100000008EC8343083CFB430200000035BE7143504DF943020000 - 0012835C43A8E6F54302000000F0674943F803F1430100000008EC8343FC0116 - 440100000008EC8343FC5116440100000000408443FC5116440100000010689A - 43FC412B4401000000081CD043F803F14302000000915DC64321E0F543020000 - 00919DBB439643F94302000000087CB043F833FB4301000000087CB043F087A4 - 430100000008EC8343F087A4430300000000000000000000000A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000001 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650000005450463007544C61796F75740009537479 - 6C654E616D65061464726F707461726765746669656C647374796C6505416C69 - 676E070643656E7465720A53697A652E576964746805000000000000A08A0740 - 0B53697A652E4865696768740500000000000000B204401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 28000A5452656374616E676C6500095374796C654E616D65060A52656374616E - 676C653105416C69676E0706436C69656E740946696C6C2E4B696E6407044E6F - 6E650748697454657374080A53697A652E576964746805000000000000A08A07 - 400B53697A652E4865696768740500000000000000B204401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 3241383245320005545465787400095374796C654E616D650604746578740541 - 6C69676E0706436C69656E740748697454657374080A53697A652E5769647468 - 05000000000000809A05400B53697A652E4865696768740500000000000000B2 - 04401453697A652E506C6174666F726D44656661756C74081654657874536574 - 74696E67732E466F6E74436F6C6F720708636C615768697465000007544C6179 - 6F757400095374796C654E616D6506074C61796F75743105416C69676E07044C - 6566740A53697A652E57696474680500000000000000C805400B53697A652E48 - 65696768740500000000000000B204401453697A652E506C6174666F726D4465 - 6661756C74080005545061746800095374796C654E616D650605506174683105 + 4E6F6E650000000A5452656374616E676C6500095374796C654E616D65060676 + 747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646323032303230064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000033338505400B53697A652E4865696768740500 + 000000009999E104401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135000A5452656374616E + 676C6500095374796C654E616D65060A76696E64696361746F7205416C69676E + 0706426F74746F6D0A46696C6C2E436F6C6F720709784646453232413241064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000 + 0000000080FF3F0A506F736974696F6E2E5905000000000099998904400A5369 + 7A652E576964746805000000000033338105400B53697A652E48656967687405 + 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F + 757400095374796C654E616D65060F64726F707461726765747374796C650541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000ACAAD9 + 05400B53697A652E4865696768740500000000000000CF05401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C650005416C69676E0708436F6E74656E74730946696C6C2E4B696E6407 + 044E6F6E650748697454657374080A53697A652E5769647468050000000000AC + AAD905400B53697A652E4865696768740500000000000000CF05401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720708 + 636C615768697465105374726F6B652E546869636B6E65737305000000000000 + 008001400B5374726F6B652E4461736807044461736807585261646975730500 + 000000000000C0024007595261646975730500000000000000C0024000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706426F7474 + 6F6D0748697454657374080C4D617267696E732E4C6566740500000000000000 + A002400D4D617267696E732E52696768740500000000000000A002400A506F73 + 6974696F6E2E580500000000000000A002400A506F736974696F6E2E59050000 + 0000000000D604400A53697A652E5769647468050000000000ACAAB105400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C6157686974650000001254466C6F61744B6579416E696D617469 + 6F6E00084475726174696F6E050000000000999999FE3F044B6579730E010001 + 034B6579050000000000000080FE3F0556616C75650500000000000000A003C0 + 0001034B6579050000000000000080FF3F0000044C6F6F70090C50726F706572 + 74794E616D65060B50616464696E672E546F7010537461727446726F6D437572 + 72656E74080754726967676572060F4973447261674F7665723D747275650000 + 0554506174680005416C69676E070643656E74657209446174612E506174680A + C4000000100000000000000008EC8343F087A4430100000008EC8343083CFB43 + 0200000035BE7143504DF9430200000012835C43A8E6F54302000000F0674943 + F803F1430100000008EC8343FC0116440100000008EC8343FC51164401000000 + 00408443FC5116440100000010689A43FC412B4401000000081CD043F803F143 + 02000000915DC64321E0F54302000000919DBB439643F94302000000087CB043 + F833FB4301000000087CB043F087A4430100000008EC8343F087A44303000000 + 00000000000000000A46696C6C2E436F6C6F720708636C615768697465074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000100C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000005450 + 463007544C61796F757400095374796C654E616D65061464726F707461726765 + 746669656C647374796C6505416C69676E070643656E7465720A53697A652E57 + 6964746805000000000000A08A07400B53697A652E4865696768740500000000 + 000000B204401453697A652E506C6174666F726D44656661756C740807566973 + 69626C6508000A5452656374616E676C6500095374796C654E616D65060A5265 + 6374616E676C653105416C69676E0706436C69656E740946696C6C2E4B696E64 + 07044E6F6E650748697454657374080A53697A652E5769647468050000000000 + 00A08A07400B53697A652E4865696768740500000000000000B204401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 097846463241383245320005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E740748697454657374080A53697A652E57 + 6964746805000000000000809A05400B53697A652E4865696768740500000000 + 000000B204401453697A652E506C6174666F726D44656661756C740816546578 + 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000007 + 544C61796F757400095374796C654E616D6506074C61796F75743105416C6967 + 6E07044C6566740A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000B204401453697A652E506C6174666F + 726D44656661756C74080005545061746800095374796C654E616D6506055061 + 74683105416C69676E070643656E74657209446174612E506174680A24010000 + 180000000000000073B8AC43C14A7843010000006D2717435849DD4302000000 + 86CB0A431078E343020000009683ED421078E34302000000DACED4425849DD43 + 020000009A19BC42081CD743020000009A19BC424C17CD4302000000DACED442 + 1DEAC64301000000B4288B4385EB61430100000068D1D4426811584202000000 + 281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D1441 + 02000000A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743 + D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB514302000000 + 9F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1439C046A43 + 02000000FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43 + C14A78430A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080A53697A652E57696474680500000000000000F002400B53697A652E4865 + 696768740500000000000000F002401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465 + 0703466974000005545061746800095374796C654E616D650605506174683205 416C69676E070643656E74657209446174612E506174680A2401000018000000 0000000073B8AC43C14A7843010000006D2717435849DD430200000086CB0A43 1078E343020000009683ED421078E34302000000DACED4425849DD4302000000 @@ -9087,258 +9097,206 @@ object MainForm: TMainForm 0100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143 F1D25943020000009F5AB14343EB614302000000A05AB1439C046A4302000000 FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A7843 - 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A53 - 697A652E57696474680500000000000000F002400B53697A652E486569676874 - 0500000000000000F002401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 - 74000005545061746800095374796C654E616D650605506174683205416C6967 - 6E070643656E74657209446174612E506174680A240100001800000000000000 - 73B8AC43C14A7843010000006D2717435849DD430200000086CB0A431078E343 - 020000009683ED421078E34302000000DACED4425849DD43020000009A19BC42 - 081CD743020000009A19BC424C17CD4302000000DACED4421DEAC64301000000 - B4288B4385EB61430100000068D1D4426811584202000000281CBC42CAA12642 - 02000000281CBC42E6FBAC410200000068D1D442D04D144102000000A886ED42 - 9CC245C002000000CCCC0A439CC245C002000000B4281743D04D144101000000 - 16B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D25943 - 020000009F5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43 - 711D72430200000073B8AC43C14A78430300000073B8AC43C14A78430A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080C4D61726769 - 6E732E4C6566740500000000000000A004400A53697A652E5769647468050000 - 0000000000F002400B53697A652E4865696768740500000000000000F0024014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E6508577261704D6F646507034669740000055450617468000953 - 74796C654E616D650605506174683305416C69676E070643656E746572094461 - 74612E506174680A24010000180000000000000073B8AC43C14A784301000000 - 6D2717435849DD430200000086CB0A431078E343020000009683ED421078E343 - 02000000DACED4425849DD43020000009A19BC42081CD743020000009A19BC42 - 4C17CD4302000000DACED4421DEAC64301000000B4288B4385EB614301000000 - 68D1D4426811584202000000281CBC42CAA1264202000000281CBC42E6FBAC41 - 0200000068D1D442D04D144102000000A886ED429CC245C002000000CCCC0A43 - 9CC245C002000000B4281743D04D14410100000016B9AC43918D4B4302000000 - BECFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB6143 - 02000000A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43 - C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080D4D617267696E732E526967687405000000 - 00000000A004400A53697A652E57696474680500000000000000F002400B5369 - 7A652E4865696768740500000000000000F002401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261 - 704D6F6465070346697400000007544C61796F757400095374796C654E616D65 - 06074C61796F75743205416C69676E070552696768740A506F736974696F6E2E - 580500000000000040B106400A53697A652E57696474680500000000000000C8 - 05400B53697A652E4865696768740500000000000000B204401453697A652E50 - 6C6174666F726D44656661756C74080005545061746800095374796C654E616D - 650605506174683105416C69676E070643656E74657209446174612E50617468 - 0A24010000180000000000000073B8AC43C14A7843010000006D2717435849DD - 430200000086CB0A431078E343020000009683ED421078E34302000000DACED4 - 425849DD43020000009A19BC42081CD743020000009A19BC424C17CD43020000 - 00DACED4421DEAC64301000000B4288B4385EB61430100000068D1D442681158 - 4202000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D4 - 42D04D144102000000A886ED429CC245C002000000CCCC0A439CC245C0020000 - 00B4281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB51 - 43020000009F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1 - 439C046A4302000000FACEAF43711D72430200000073B8AC43C14A7843030000 - 0073B8AC43C14A78430A46696C6C2E436F6C6F720708636C6157686974650748 - 697454657374080D526F746174696F6E416E676C650500000000000000B40640 - 0A53697A652E57696474680500000000000000F002400B53697A652E48656967 - 68740500000000000000F002401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F64650703 - 466974000005545061746800095374796C654E616D650605506174683205416C - 69676E070643656E74657209446174612E506174680A24010000180000000000 - 000073B8AC43C14A7843010000006D2717435849DD430200000086CB0A431078 - E343020000009683ED421078E34302000000DACED4425849DD43020000009A19 - BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEAC6430100 - 0000B4288B4385EB61430100000068D1D4426811584202000000281CBC42CAA1 - 264202000000281CBC42E6FBAC410200000068D1D442D04D144102000000A886 - ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D14410100 - 000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D2 - 5943020000009F5AB14343EB614302000000A05AB1439C046A4302000000FACE - AF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A78430A46 - 696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D6172 - 67696E732E4C6566740500000000000000A004400D526F746174696F6E416E67 - 6C650500000000000000B406400A53697A652E57696474680500000000000000 - F002400B53697A652E4865696768740500000000000000F002401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E6508577261704D6F64650703466974000005545061746800095374796C654E - 616D650605506174683305416C69676E070643656E74657209446174612E5061 - 74680A24010000180000000000000073B8AC43C14A7843010000006D27174358 - 49DD430200000086CB0A431078E343020000009683ED421078E34302000000DA - CED4425849DD43020000009A19BC42081CD743020000009A19BC424C17CD4302 - 000000DACED4421DEAC64301000000B4288B4385EB61430100000068D1D44268 - 11584202000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068 - D1D442D04D144102000000A886ED429CC245C002000000CCCC0A439CC245C002 - 000000B4281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5 - BB5143020000009F5AB143F1D25943020000009F5AB14343EB614302000000A0 - 5AB1439C046A4302000000FACEAF43711D72430200000073B8AC43C14A784303 - 00000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C615768697465 - 0748697454657374080D4D617267696E732E52696768740500000000000000A0 - 04400D526F746174696F6E416E676C650500000000000000B406400A53697A65 - 2E57696474680500000000000000F002400B53697A652E486569676874050000 - 0000000000F002401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669740000 - 0000005450463007544C61796F757400095374796C654E616D65060C706F706F - 7665727374796C6505416C69676E070643656E7465720756697369626C650808 - 5461624F726465720229000A5452656374616E676C6500095374796C654E616D - 650602626705416C69676E0706436C69656E740A46696C6C2E436F6C6F720709 - 7846463230323032300748697454657374080A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000C8044014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F7207097846463135313531350007544C61796F757400095374796C654E616D - 650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E73 - 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 - 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F - 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E - 57696474680500000000000000C004400B53697A652E48656967687405000000 - 00000000C004401453697A652E506C6174666F726D44656661756C740800000D - 54536861646F77456666656374000844697374616E63650500000000000000C0 - 004009446972656374696F6E0500000000000000B4054008536F66746E657373 - 050000000000000080FE3F074F706163697479050000000000000080FE3F0B53 - 6861646F77436F6C6F720708636C61426C61636B000000005450463007544C61 - 796F757400095374796C654E616D65060D706F707570626F787374796C650541 - 6C69676E070643656E7465720A53697A652E57696474680500000000000080C4 - 06400B53697A652E4865696768740500000000000000D404401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 72022A000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F - 7207097846463230323032300748697454657374080A53697A652E5769647468 - 0500000000000080C406400B53697A652E4865696768740500000000000000D4 - 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646343034303430075472696767657206204973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 - 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 - 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E325374 - 796C65084475726174696F6E05000000000000000000000C50726F7065727479 - 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 - 3430343034300953746F7056616C756507097846463241383245320754726967 - 676572062049734D6F7573654F7665723D747275653B4973507265737365643D - 747275653B0E54726967676572496E7665727365062049734D6F7573654F7665 - 723D747275653B4973507265737365643D66616C736500000007544C61796F75 - 740005416C69676E070552696768740A506F736974696F6E2E58050000000000 - 0080B506400A53697A652E57696474680500000000000000F002400B53697A65 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D + 617267696E732E4C6566740500000000000000A004400A53697A652E57696474 + 680500000000000000F002400B53697A652E4865696768740500000000000000 + F002401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6508577261704D6F6465070346697400000554506174 + 6800095374796C654E616D650605506174683305416C69676E070643656E7465 + 7209446174612E506174680A24010000180000000000000073B8AC43C14A7843 + 010000006D2717435849DD430200000086CB0A431078E343020000009683ED42 + 1078E34302000000DACED4425849DD43020000009A19BC42081CD74302000000 + 9A19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385EB6143 + 0100000068D1D4426811584202000000281CBC42CAA1264202000000281CBC42 + E6FBAC410200000068D1D442D04D144102000000A886ED429CC245C002000000 + CCCC0A439CC245C002000000B4281743D04D14410100000016B9AC43918D4B43 + 02000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB143 + 43EB614302000000A05AB1439C046A4302000000FACEAF43711D724302000000 + 73B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080D4D617267696E732E5269676874 + 0500000000000000A004400A53697A652E57696474680500000000000000F002 + 400B53697A652E4865696768740500000000000000F002401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 08577261704D6F6465070346697400000007544C61796F757400095374796C65 + 4E616D6506074C61796F75743205416C69676E070552696768740A506F736974 + 696F6E2E580500000000000040B106400A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000B20440145369 + 7A652E506C6174666F726D44656661756C74080005545061746800095374796C + 654E616D650605506174683105416C69676E070643656E74657209446174612E + 506174680A24010000180000000000000073B8AC43C14A7843010000006D2717 + 435849DD430200000086CB0A431078E343020000009683ED421078E343020000 + 00DACED4425849DD43020000009A19BC42081CD743020000009A19BC424C17CD + 4302000000DACED4421DEAC64301000000B4288B4385EB61430100000068D1D4 + 426811584202000000281CBC42CAA1264202000000281CBC42E6FBAC41020000 + 0068D1D442D04D144102000000A886ED429CC245C002000000CCCC0A439CC245 + C002000000B4281743D04D14410100000016B9AC43918D4B4302000000BECFAF + 43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB6143020000 + 00A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43C14A78 + 430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C61576869 + 74650748697454657374080D526F746174696F6E416E676C6505000000000000 + 00B406400A53697A652E57696474680500000000000000F002400B53697A652E + 4865696768740500000000000000F002401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F + 64650703466974000005545061746800095374796C654E616D65060550617468 + 3205416C69676E070643656E74657209446174612E506174680A240100001800 + 00000000000073B8AC43C14A7843010000006D2717435849DD430200000086CB + 0A431078E343020000009683ED421078E34302000000DACED4425849DD430200 + 00009A19BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEA + C64301000000B4288B4385EB61430100000068D1D4426811584202000000281C + BC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D14410200 + 0000A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D + 14410100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5A + B143F1D25943020000009F5AB14343EB614302000000A05AB1439C046A430200 + 0000FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A + 78430A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0C4D617267696E732E4C6566740500000000000000A004400D526F746174696F + 6E416E676C650500000000000000B406400A53697A652E576964746805000000 + 00000000F002400B53697A652E4865696768740500000000000000F002401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6508577261704D6F64650703466974000005545061746800095374 + 796C654E616D650605506174683305416C69676E070643656E74657209446174 + 612E506174680A24010000180000000000000073B8AC43C14A7843010000006D + 2717435849DD430200000086CB0A431078E343020000009683ED421078E34302 + 000000DACED4425849DD43020000009A19BC42081CD743020000009A19BC424C + 17CD4302000000DACED4421DEAC64301000000B4288B4385EB61430100000068 + D1D4426811584202000000281CBC42CAA1264202000000281CBC42E6FBAC4102 + 00000068D1D442D04D144102000000A886ED429CC245C002000000CCCC0A439C + C245C002000000B4281743D04D14410100000016B9AC43918D4B4302000000BE + CFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB614302 + 000000A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43C1 + 4A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080D4D617267696E732E52696768740500000000 + 000000A004400D526F746174696F6E416E676C650500000000000000B406400A + 53697A652E57696474680500000000000000F002400B53697A652E4865696768 + 740500000000000000F002401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346 + 697400000000005450463007544C61796F757400095374796C654E616D65060C + 706F706F7665727374796C6505416C69676E070643656E746572075669736962 + 6C6508000A5452656374616E676C6500095374796C654E616D65060262670541 + 6C69676E0706436C69656E740A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 3135313531350007544C61796F757400095374796C654E616D650607636F6E74 + 656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566740500 + 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F + 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E + 732E426F74746F6D050000000000000080FF3F0A53697A652E57696474680500 + 000000000000C004400B53697A652E4865696768740500000000000000C00440 + 1453697A652E506C6174666F726D44656661756C740800000D54536861646F77 + 456666656374000844697374616E63650500000000000000C000400944697265 + 6374696F6E0500000000000000B4054008536F66746E65737305000000000000 + 0080FE3F074F706163697479050000000000000080FE3F0B536861646F77436F + 6C6F720708636C61426C61636B000000005450463007544C61796F7574000953 + 74796C654E616D65060D706F707570626F787374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000000080C406400B53697A65 2E4865696768740500000000000000D404401453697A652E506C6174666F726D - 44656661756C7408000554506174680005416C69676E070643656E7465720944 - 6174612E506174680A400000000500000000000000000000000000803F010000 - 000000803F0000803F010000000000003F000000000100000000000000000080 - 3F0300000000000000000000000A46696C6C2E436F6C6F720708636C61576869 - 74650748697454657374080B4D617267696E732E546F700500000000000000E0 - 01C00A53697A652E576964746805000000000000008002400B53697A652E4865 - 6967687405000000000000008001401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000005545061746800 - 05416C69676E070643656E74657209446174612E506174680A34000000040000 - 00000000000000000000000000010000000000803F0000000001000000000000 - 3F0000803F0300000000000000000000000A46696C6C2E436F6C6F720708636C - 6157686974650748697454657374080B4D617267696E732E546F700500000000 - 000000C001400A53697A652E576964746805000000000000008002400B53697A - 652E48656967687405000000000000008001401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000554 - 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 - 656E740748697454657374080C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 - 80B306400B53697A652E4865696768740500000000000000CC04401453697A65 - 2E506C6174666F726D44656661756C7408165465787453657474696E67732E46 - 6F6E74436F6C6F720708636C615768697465000000545046300A545265637461 - 6E676C6500095374796C654E616D6506147374617475736261726E6F67726970 - 7374796C6505416C69676E070643656E7465720C436C69704368696C6472656E - 090A46696C6C2E436F6C6F7207097846463235323532350553696465730B0354 - 6F70000A53697A652E57696474680500000000000000F004400B53697A652E48 + 44656661756C74080756697369626C6508000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A53697A652E57696474680500000000000080C406400B53697A652E48 + 65696768740500000000000000D404401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572062049734D6F7573654F7665723D747275653B497350 + 7265737365643D66616C73650E54726967676572496E7665727365062149734D + 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463430343034300953746F7056616C75650709 + 7846463241383245320754726967676572062049734D6F7573654F7665723D74 + 7275653B4973507265737365643D747275653B0E54726967676572496E766572 + 7365062049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C736500000007544C61796F75740005416C69676E070552696768740A506F + 736974696F6E2E580500000000000080B506400A53697A652E57696474680500 + 000000000000F002400B53697A652E4865696768740500000000000000D40440 + 1453697A652E506C6174666F726D44656661756C740800055450617468000541 + 6C69676E070643656E74657209446174612E506174680A400000000500000000 + 000000000000000000803F010000000000803F0000803F010000000000003F00 + 00000001000000000000000000803F0300000000000000000000000A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080B4D617267696E + 732E546F700500000000000000E001C00A53697A652E57696474680500000000 + 0000008002400B53697A652E4865696768740500000000000000800140145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E6500000554506174680005416C69676E070643656E74657209446174 + 612E506174680A34000000040000000000000000000000000000000100000000 + 00803F00000000010000000000003F0000803F0300000000000000000000000A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080B4D61 + 7267696E732E546F700500000000000000C001400A53697A652E576964746805 + 000000000000008002400B53697A652E48656967687405000000000000008001 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000005545465787400095374796C654E616D65060474 + 65787405416C69676E0706436C69656E740748697454657374080C4D61726769 + 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A + 652E57696474680500000000000080B306400B53697A652E4865696768740500 + 000000000000CC04401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 000000545046300A5452656374616E676C6500095374796C654E616D65061473 + 74617475736261726E6F677269707374796C6505416C69676E070643656E7465 + 720C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978464632 + 35323532350553696465730B03546F70000A53697A652E576964746805000000 + 00000000F004400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350756697369626C650800005450463007544C6179 + 6F757400095374796C654E616D650613736D616C6C7363726F6C6C6261727374 + 796C6505416C69676E070643656E7465720756697369626C6508000654547261 + 636B00095374796C654E616D65060668747261636B05416C69676E0706436C69 + 656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E + 74616C0A53697A652E57696474680500000000000000C804400B53697A652E48 65696768740500000000000000C804401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350756 - 697369626C650800005450463007544C61796F757400095374796C654E616D65 - 0613736D616C6C7363726F6C6C6261727374796C6505416C69676E070643656E - 7465720756697369626C6508085461624F72646572022B000654547261636B00 - 095374796C654E616D65060668747261636B05416C69676E0706436C69656E74 - 064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C74080B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B - 7374796C6500000654547261636B00095374796C654E616D6506067674726163 - 6B05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E746174 - 696F6E070A486F72697A6F6E74616C0A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C804401453697A - 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75700614 - 7363726F6C6C62617276747261636B7374796C650000005450463007544C6179 - 6F757400095374796C654E616D65060D73706C69747465727374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000A904 - 400B53697A652E4865696768740500000000000080C105401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 022C000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F720709 - 7846463330333033300748697454657374080553696465730B044C6566740552 - 69676874000A53697A652E57696474680500000000000000A904400B53697A65 - 2E4865696768740500000000000080C105401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 000007544C61796F757400095374796C654E616D6506064C61796F757405416C - 69676E0706436C69656E740A53697A652E57696474680500000000000000A904 - 400B53697A652E4865696768740500000000000080C105401453697A652E506C - 6174666F726D44656661756C74080007544C61796F757400095374796C654E61 - 6D6506046772697005416C69676E070A5665727443656E746572064C6F636B65 - 64090A506F736974696F6E2E5905000000000000008004400A53697A652E5769 - 6474680500000000000000A904400B53697A652E486569676874050000000000 - 00008004401453697A652E506C6174666F726D44656661756C74080007544369 - 72636C6500095374796C654E616D650607436972636C653305416C69676E0706 - 43656E7465720A46696C6C2E436F6C6F72070978464634303430343007486974 - 54657374080E4D617267696E732E426F74746F6D0500000000000000A003400A - 53697A652E57696474680500000000000000E001400B53697A652E4865696768 - 740500000000000000E001401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F720709784646313531353135000007544369 - 72636C6500095374796C654E616D650607436972636C653205416C69676E0706 - 43656E7465720A46696C6C2E436F6C6F72070978464634303430343007486974 - 54657374080B4D617267696E732E546F700500000000000000A003400A53697A - 652E57696474680500000000000000E001400B53697A652E4865696768740500 - 000000000000E001401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F72070978464631353135313500000754436972636C - 6500095374796C654E616D650607436972636C653105416C69676E070643656E - 7465720A46696C6C2E436F6C6F72070978464634303430343007486974546573 - 74080A53697A652E57696474680500000000000000E001400B53697A652E4865 - 696768740500000000000000E001401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000000 - 00005450463007544C61796F757400095374796C654E616D650610636C6F7365 - 627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C803401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F72646572022D000A5452656374616E676C6500095374 - 796C654E616D65060B636C6F7365627574746F6E05416C69676E0706436C6965 - 6E740A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C803401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 - 6F6E315374796C65084475726174696F6E05000000000000000000000C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646464636313537 - 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 - 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 - 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 - 416E696D6174696F6E325374796C65084475726174696F6E0500000000000000 - 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846464646363135370953746F7056616C756507097846 - 464532344634350754726967676572061F49734D6F7573654F7665723D747275 - 653B4973507265737365643D747275650E54726967676572496E766572736506 - 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 - 6500000005545061746800095374796C654E616D650605506174683105416C69 - 676E070643656E74657209446174612E506174680AC400000010000000000000 - 000000A0C00000704101000000000070410000A0C001000000000048420000F0 - 41010000000000AA420000A0C0010000000000D242000070410100000000008C - 4200004842010000000000D2420000B442010000000000AA420000DC42020000 - 003BDF34429E6F8C4202000000FE547D427FAAB0420200000000004842000096 - 4201000000000070410000DC42010000000000A0C00000B442010000000000F0 - 4100005C42010000000000A0C000007041030000000000A0C0000070410A4669 - 6C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A65 - 2E57696474680500000000000000A002400B53697A652E486569676874050000 - 0000000000A002401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 - 095374796C654E616D65060E6D6178627574746F6E7374796C6505416C69676E - 070643656E7465720A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572022E00 - 0A5452656374616E676C6500095374796C654E616D6506096D6178627574746F + 6661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172687472 + 61636B7374796C6500000654547261636B00095374796C654E616D6506067674 + 7261636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E + 746174696F6E070A486F72697A6F6E74616C0A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000C8044014 + 53697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75 + 7006147363726F6C6C62617276747261636B7374796C65000000545046300754 + 4C61796F757400095374796C654E616D65060D73706C69747465727374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00A904400B53697A652E4865696768740500000000000080C105401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C + 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463330333033 + 300748697454657374080553696465730B044C656674055269676874000A5369 + 7A652E57696474680500000000000000A904400B53697A652E48656967687405 + 00000000000080C105401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F720709784646313531353135000007544C61796F + 757400095374796C654E616D6506064C61796F757405416C69676E0706436C69 + 656E740A53697A652E57696474680500000000000000A904400B53697A652E48 + 65696768740500000000000080C105401453697A652E506C6174666F726D4465 + 6661756C74080007544C61796F757400095374796C654E616D65060467726970 + 05416C69676E070A5665727443656E746572064C6F636B6564090A506F736974 + 696F6E2E5905000000000000008004400A53697A652E57696474680500000000 + 000000A904400B53697A652E4865696768740500000000000000800440145369 + 7A652E506C6174666F726D44656661756C7408000754436972636C6500095374 + 796C654E616D650607436972636C653305416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463430343034300748697454657374080E4D61 + 7267696E732E426F74746F6D0500000000000000A003400A53697A652E576964 + 74680500000000000000E001400B53697A652E48656967687405000000000000 + 00E001401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F72070978464631353135313500000754436972636C6500095374 + 796C654E616D650607436972636C653205416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463430343034300748697454657374080B4D61 + 7267696E732E546F700500000000000000A003400A53697A652E576964746805 + 00000000000000E001400B53697A652E4865696768740500000000000000E001 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F72070978464631353135313500000754436972636C6500095374796C65 + 4E616D650607436972636C653105416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463430343034300748697454657374080A53697A652E + 57696474680500000000000000E001400B53697A652E48656967687405000000 + 00000000E001401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F7207097846463135313531350000000000545046300754 + 4C61796F757400095374796C654E616D650610636C6F7365627574746F6E7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000A54 + 52656374616E676C6500095374796C654E616D65060B636C6F7365627574746F 6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F72070978464632 30323032300748697454657374080A53697A652E576964746805000000000000 00C804400B53697A652E4865696768740500000000000000C803401453697A65 @@ -9347,215 +9305,276 @@ object MainForm: TMainForm 14436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E0500 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C 6F720A537461727456616C756507097846463230323032300953746F7056616C - 756507097846463241383245320754726967676572062049734D6F7573654F76 + 756507097846464646363135370754726967676572062049734D6F7573654F76 65723D747275653B4973507265737365643D66616C73650E5472696767657249 6E7665727365062149734D6F7573654F7665723D66616C73653B497350726573 7365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009537479 6C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508447572 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632413832453209 - 53746F7056616C756507097846463137353739430754726967676572061F4973 + 696C6C2E436F6C6F720A537461727456616C7565070978464646463631353709 + 53746F7056616C756507097846464532344634350754726967676572061F4973 4D6F7573654F7665723D747275653B4973507265737365643D747275650E5472 6967676572496E7665727365062049734D6F7573654F7665723D747275653B49 73507265737365643D66616C736500000005545061746800095374796C654E61 6D650605506174683105416C69676E070643656E74657209446174612E506174 - 680A5800000007000000000000000000C8420000C8420100000000002F440000 - C8420100000000002F4400002F44010000000080094400800944010000000080 - 094400007A430100000000007A4300007A43030000000000C8420000C8420A46 - 696C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A - 652E57696474680500000000000000A002400B53697A652E4865696768740500 - 000000000000A002401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F7574 - 00095374796C654E616D65060E726573627574746F6E7374796C6505416C6967 - 6E070643656E7465720A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000000000C803401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F72646572022F - 000A5452656374616E676C6500095374796C654E616D65060972657362757474 - 6F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646 - 3230323032300748697454657374080A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05 - 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463230323032300953746F705661 - 6C756507097846463241383245320754726967676572062049734D6F7573654F - 7665723D747275653B4973507265737365643D66616C73650E54726967676572 - 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 - 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65084475 - 726174696F6E05000000000000000000000C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646324138324532 - 0953746F7056616C756507097846463137353739430754726967676572061F49 - 734D6F7573654F7665723D747275653B4973507265737365643D747275650E54 - 726967676572496E7665727365062049734D6F7573654F7665723D747275653B - 4973507265737365643D66616C736500000005545061746800095374796C654E - 616D650605506174683105416C69676E070643656E74657209446174612E5061 - 74680A5800000007000000000000000000C8420000C8420100000000002F4400 - 00C8420100000000002F4400002F440100000000800944008009440100000000 - 80094400007A430100000000007A4300007A43030000000000C8420000C8420A - 46696C6C2E436F6C6F720708636C6157686974650748697454657374080D526F - 746174696F6E416E676C650500000000000000B406400A53697A652E57696474 - 680500000000000000A002400B53697A652E4865696768740500000000000000 - A002401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E650000005450463007544C61796F757400095374796C - 654E616D65060E6D696E627574746F6E7374796C6505416C69676E070643656E - 7465720A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000000000C803401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F726465720230000A54526563 - 74616E676C6500095374796C654E616D6506096D696E627574746F6E05416C69 - 676E0706436C69656E740A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000000000C803401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F - 72416E696D6174696F6E315374796C65084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463230323032300953746F7056616C7565070978 - 46463241383245320754726967676572062049734D6F7573654F7665723D7472 - 75653B4973507265737365643D66616C73650E54726967676572496E76657273 - 65062149734D6F7573654F7665723D66616C73653B4973507265737365643D66 - 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E + 680AC400000010000000000000000000A0C00000704101000000000070410000 + A0C001000000000048420000F041010000000000AA420000A0C0010000000000 + D242000070410100000000008C4200004842010000000000D2420000B4420100 + 00000000AA420000DC42020000003BDF34429E6F8C4202000000FE547D427FAA + B04202000000000048420000964201000000000070410000DC42010000000000 + A0C00000B442010000000000F04100005C42010000000000A0C0000070410300 + 00000000A0C0000070410A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080A53697A652E57696474680500000000000000A002400B53 + 697A652E4865696768740500000000000000A002401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 5450463007544C61796F757400095374796C654E616D65060E6D617862757474 + 6F6E7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08000A5452656374616E676C6500095374796C654E616D6506096D6178627574 + 746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846 + 463230323032300748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 - 616C756507097846463137353739430754726967676572061F49734D6F757365 - 4F7665723D747275653B4973507265737365643D747275650E54726967676572 - 496E7665727365062049734D6F7573654F7665723D747275653B497350726573 - 7365643D66616C736500000005545061746800095374796C654E616D65060550 - 6174683105416C69676E070643656E74657209446174612E506174680A400000 - 00050000000000000000002F44008009440100000000002F4400002F44010000 - 000000C84200002F44010000000000C842008009440300000000002F44008009 - 440A46696C6C2E436F6C6F720708636C6157686974650748697454657374080B - 4D617267696E732E546F700500000000000000A002400D526F746174696F6E41 - 6E676C650500000000000000B406400A53697A652E5769647468050000000000 - 0000A002400B53697A652E4865696768740500000000000000C000401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E650000005450463007544C61796F757400095374796C654E616D65060F - 746F6F6C77696E646F777374796C6505416C69676E070643656E7465720A5369 - 7A652E576964746805000000000056D5AF07400B53697A652E48656967687405 - 00000000000000B306401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F726465720231000A5452656374616E676C65 - 00095374796C654E616D6506046D61736B05416C69676E0708436F6E74656E74 - 730A46696C6C2E436F6C6F7207097846463130313031300A53697A652E576964 - 746805000000000056D5AF07400B53697A652E48656967687405000000000000 - 00B306401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650756697369626C6508000007544C61796F757400 - 095374796C654E616D6506046C65667405416C69676E07084D6F73744C656674 - 064C6F636B6564090A506F736974696F6E2E590500000000000000C803400A53 - 697A652E57696474680500000000000000A001400B53697A652E486569676874 - 05000000000000009A06401453697A652E506C6174666F726D44656661756C74 - 08000A5452656374616E676C650005416C69676E07084D6F73744C6566740A46 - 696C6C2E436F6C6F720709784646323032303230074869745465737408055369 - 6465730B044C656674055269676874000A53697A652E57696474680500000000 - 000000A001400B53697A652E4865696768740500000000000000950640145369 - 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 070978464631353135313500000A5452656374616E676C6500095374796C654E - 616D65060A52656374616E676C653105416C69676E070A4D6F7374426F74746F - 6D13456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F - 7207097846463230323032300748697454657374080A506F736974696F6E2E59 - 05000000000000009506400553696465730B044C65667406426F74746F6D000A + 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 + 616C756507097846463241383245320754726967676572062049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 + 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 + 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614436F6C6F72416E696D6174696F6E325374796C650844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 + 320953746F7056616C756507097846463137353739430754726967676572061F + 49734D6F7573654F7665723D747275653B4973507265737365643D747275650E + 54726967676572496E7665727365062049734D6F7573654F7665723D74727565 + 3B4973507265737365643D66616C736500000005545061746800095374796C65 + 4E616D650605506174683105416C69676E070643656E74657209446174612E50 + 6174680A5800000007000000000000000000C8420000C8420100000000002F44 + 0000C8420100000000002F4400002F4401000000008009440080094401000000 + 0080094400007A430100000000007A4300007A43030000000000C8420000C842 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A53 + 697A652E57696474680500000000000000A002400B53697A652E486569676874 + 0500000000000000A002401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F + 757400095374796C654E616D65060E726573627574746F6E7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000A5452656374616E + 676C6500095374796C654E616D650609726573627574746F6E05416C69676E07 + 06436C69656E740A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E315374796C65084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463230323032300953746F7056616C7565070978464632 + 41383245320754726967676572062049734D6F7573654F7665723D747275653B + 4973507265737365643D66616C73650E54726967676572496E76657273650621 + 49734D6F7573654F7665723D66616C73653B4973507265737365643D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 + 436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463241383245320953746F7056616C75 + 6507097846463137353739430754726967676572061F49734D6F7573654F7665 + 723D747275653B4973507265737365643D747275650E54726967676572496E76 + 65727365062049734D6F7573654F7665723D747275653B497350726573736564 + 3D66616C736500000005545061746800095374796C654E616D65060550617468 + 3105416C69676E070643656E74657209446174612E506174680A580000000700 + 0000000000000000C8420000C8420100000000002F440000C842010000000000 + 2F4400002F44010000000080094400800944010000000080094400007A430100 + 000000007A4300007A43030000000000C8420000C8420A46696C6C2E436F6C6F + 720708636C6157686974650748697454657374080D526F746174696F6E416E67 + 6C650500000000000000B406400A53697A652E57696474680500000000000000 + A002400B53697A652E4865696768740500000000000000A002401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E650000005450463007544C61796F757400095374796C654E616D65060E6D69 + 6E627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508000A5452656374616E676C6500095374796C654E616D6506096D + 696E627574746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F + 7207097846463230323032300748697454657374080A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646324138324532075472696767657206204973 + 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 + 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 + 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E325374 + 796C65084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3241383245320953746F7056616C756507097846463137353739430754726967 + 676572061F49734D6F7573654F7665723D747275653B4973507265737365643D + 747275650E54726967676572496E7665727365062049734D6F7573654F766572 + 3D747275653B4973507265737365643D66616C73650000000554506174680009 + 5374796C654E616D650605506174683105416C69676E070643656E7465720944 + 6174612E506174680A40000000050000000000000000002F4400800944010000 + 0000002F4400002F44010000000000C84200002F44010000000000C842008009 + 440300000000002F44008009440A46696C6C2E436F6C6F720708636C61576869 + 74650748697454657374080B4D617267696E732E546F700500000000000000A0 + 02400D526F746174696F6E416E676C650500000000000000B406400A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000C000401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 + 095374796C654E616D65060F746F6F6C77696E646F777374796C6505416C6967 + 6E070643656E7465720A53697A652E576964746805000000000056D5AF07400B + 53697A652E4865696768740500000000000000B306401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508000A5452656374616E676C + 6500095374796C654E616D6506046D61736B05416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F7207097846463130313031300A53697A652E5769 + 64746805000000000056D5AF07400B53697A652E486569676874050000000000 + 0000B306401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650756697369626C6508000007544C61796F7574 + 00095374796C654E616D6506046C65667405416C69676E07084D6F73744C6566 + 74064C6F636B6564090A506F736974696F6E2E590500000000000000C803400A 53697A652E57696474680500000000000000A001400B53697A652E4865696768 + 7405000000000000009A06401453697A652E506C6174666F726D44656661756C + 7408000A5452656374616E676C650005416C69676E07084D6F73744C6566740A + 46696C6C2E436F6C6F7207097846463230323032300748697454657374080553 + 696465730B044C656674055269676874000A53697A652E576964746805000000 + 00000000A001400B53697A652E48656967687405000000000000009506401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 72070978464631353135313500000A5452656374616E676C6500095374796C65 + 4E616D65060A52656374616E676C653105416C69676E070A4D6F7374426F7474 + 6F6D13456E61626C6544726167486967686C69676874080A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080A506F736974696F6E2E + 5905000000000000009506400553696465730B044C65667406426F74746F6D00 + 0A53697A652E57696474680500000000000000A001400B53697A652E48656967 + 68740500000000000000A001401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C61 + 796F757400095374796C654E616D6506074C61796F75743305416C69676E0709 + 4D6F737452696768740A506F736974696F6E2E5805000000000000008001400A + 53697A652E5769647468050000000000000080FF3F0B53697A652E4865696768 740500000000000000A001401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F7207097846463135313531350007544C6179 - 6F757400095374796C654E616D6506074C61796F75743305416C69676E07094D - 6F737452696768740A506F736974696F6E2E5805000000000000008001400A53 - 697A652E5769647468050000000000000080FF3F0B53697A652E486569676874 - 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 - 08000A5452656374616E676C6500095374796C654E616D65060A52656374616E - 676C653105416C69676E0703546F700A46696C6C2E436F6C6F72070978464631 - 35313531350748697454657374080A53697A652E576964746805000000000000 - 0080FF3F0B53697A652E486569676874050000000000000080FF3F1453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000000000007544C61796F757400095374796C654E616D650605726967 - 687405416C69676E07094D6F73745269676874064C6F636B6564090A506F7369 - 74696F6E2E580500000000005655AD07400A506F736974696F6E2E5905000000 - 00000000C803400A53697A652E57696474680500000000000000A001400B5369 - 7A652E48656967687405000000000000009A06401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C650005416C69676E07094D - 6F737452696768740A46696C6C2E436F6C6F7207097846463230323032300748 - 697454657374080553696465730B044C656674055269676874000A53697A652E - 57696474680500000000000000A001400B53697A652E48656967687405000000 - 000000009506401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F72070978464631353135313500000A5452656374616E67 + 7408000A5452656374616E676C6500095374796C654E616D65060A5265637461 + 6E676C653105416C69676E0703546F700A46696C6C2E436F6C6F720709784646 + 3135313531350748697454657374080A53697A652E5769647468050000000000 + 000080FF3F0B53697A652E486569676874050000000000000080FF3F1453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000000000007544C61796F757400095374796C654E616D6506057269 + 67687405416C69676E07094D6F73745269676874064C6F636B6564090A506F73 + 6974696F6E2E580500000000005655AD07400A506F736974696F6E2E59050000 + 0000000000C803400A53697A652E57696474680500000000000000A001400B53 + 697A652E48656967687405000000000000009A06401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C650005416C69676E0709 + 4D6F737452696768740A46696C6C2E436F6C6F72070978464632303230323007 + 48697454657374080553696465730B044C656674055269676874000A53697A65 + 2E57696474680500000000000000A001400B53697A652E486569676874050000 + 00000000009506401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F72070978464631353135313500000A5452656374616E + 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E + 070A4D6F7374426F74746F6D13456E61626C6544726167486967686C69676874 + 080A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0A506F736974696F6E2E5905000000000000009506400553696465730B06426F + 74746F6D055269676874000A53697A652E57696474680500000000000000A001 + 400B53697A652E4865696768740500000000000000A001401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 3135313531350007544C61796F757400095374796C654E616D6506074C61796F + 75743305416C69676E07084D6F73744C6566740A53697A652E57696474680500 + 00000000000080FF3F0B53697A652E4865696768740500000000000000A00140 + 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 6C6500095374796C654E616D65060A52656374616E676C653105416C69676E07 - 0A4D6F7374426F74746F6D13456E61626C6544726167486967686C6967687408 - 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080A - 506F736974696F6E2E5905000000000000009506400553696465730B06426F74 - 746F6D055269676874000A53697A652E57696474680500000000000000A00140 - 0B53697A652E4865696768740500000000000000A001401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 35313531350007544C61796F757400095374796C654E616D6506074C61796F75 - 743305416C69676E07084D6F73744C6566740A53697A652E5769647468050000 - 000000000080FF3F0B53697A652E4865696768740500000000000000A0014014 - 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C - 6500095374796C654E616D65060A52656374616E676C653105416C69676E0703 - 546F700A46696C6C2E436F6C6F72070978464631353135313507486974546573 - 74080A53697A652E5769647468050000000000000080FF3F0B53697A652E4865 - 69676874050000000000000080FF3F1453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000000000A545265 - 6374616E676C650005416C69676E07074D6F7374546F700A46696C6C2E436F6C - 6F720709784646323032303230064C6F636B6564090748697454657374080A53 - 697A652E576964746805000000000056D5AF07400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F - 757400095374796C654E616D65060763617074696F6E05416C69676E0708436F - 6E74656E7473064C6F636B6564090748697454657374090A53697A652E576964 - 746805000000000056D5AF07400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C7408000007544C61 - 796F75740005416C69676E0706436C69656E74064C6F636B6564090C4D617267 - 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 - 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 - 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A5369 - 7A652E576964746805000000000056D5AE07400B53697A652E48656967687405 - 00000000000000B803401453697A652E506C6174666F726D44656661756C7408 - 0007544C61796F75740005416C69676E07044C656674064C6F636B6564090A53 - 697A652E576964746805000000000000009002400B53697A652E486569676874 + 03546F700A46696C6C2E436F6C6F720709784646313531353135074869745465 + 7374080A53697A652E5769647468050000000000000080FF3F0B53697A652E48 + 6569676874050000000000000080FF3F1453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000000A5452 + 656374616E676C650005416C69676E07074D6F7374546F700A46696C6C2E436F + 6C6F720709784646323032303230064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000056D5AF07400B53697A652E4865696768 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F7207097846463135313531350007544C6179 + 6F757400095374796C654E616D65060763617074696F6E05416C69676E070843 + 6F6E74656E7473064C6F636B6564090748697454657374090A53697A652E5769 + 64746805000000000056D5AF07400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C7408000007544C + 61796F75740005416C69676E0706436C69656E74064C6F636B6564090C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 + 697A652E576964746805000000000056D5AE07400B53697A652E486569676874 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 - 08000007544C61796F757400095374796C654E616D65060773797362746E7305 - 416C69676E0706436C69656E74064C6F636B6564090A53697A652E5769647468 - 0500000000005655AA07400B53697A652E4865696768740500000000000000B8 - 03401453697A652E506C6174666F726D44656661756C7408000C545370656564 - 427574746F6E00095374796C654E616D650605636C6F736505416C69676E0705 - 5269676874064C6F636B6564090A506F736974696F6E2E5805000000000056D5 - 9D07400A53697A652E57696474680500000000000000C803400B53697A652E48 - 65696768740500000000000000B803401453697A652E506C6174666F726D4465 - 6661756C74080B5374796C654C6F6F6B75700610636C6F7365627574746F6E73 - 74796C65000005545465787400095374796C654E616D6506057469746C650541 - 6C69676E0706436C69656E74064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000056D59D07400B53697A652E48656967687405 - 00000000000000B803401453697A652E506C6174666F726D44656661756C7408 - 045465787406055469746C65165465787453657474696E67732E466F6E74436F - 6C6F720708636C615768697465000000000007544C61796F757400095374796C - 654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F636B - 6564090748697454657374090A53697A652E576964746805000000000056D5AA - 07400B53697A652E48656967687405000000000000009506401453697A652E50 - 6C6174666F726D44656661756C7408000007544C61796F757400095374796C65 - 4E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F636B65 - 64090A506F736974696F6E2E580500000000000000A001400A506F736974696F - 6E2E590500000000000000AE06400A53697A652E576964746805000000000056 - D5AA07400B53697A652E4865696768740500000000000000A001401453697A65 - 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 - 74796C654E616D6506047265637405416C69676E0706426F74746F6D0A46696C - 6C2E436F6C6F7207097846463230323032300553696465730B03546F7006426F - 74746F6D000A53697A652E576964746805000000000056D5AA07400B53697A65 - 2E4865696768740500000000000000A001401453697A652E506C6174666F726D + 080007544C61796F75740005416C69676E07044C656674064C6F636B6564090A + 53697A652E576964746805000000000000009002400B53697A652E4865696768 + 740500000000000000B803401453697A652E506C6174666F726D44656661756C + 7408000007544C61796F757400095374796C654E616D65060773797362746E73 + 05416C69676E0706436C69656E74064C6F636B6564090A53697A652E57696474 + 680500000000005655AA07400B53697A652E4865696768740500000000000000 + B803401453697A652E506C6174666F726D44656661756C7408000C5453706565 + 64427574746F6E00095374796C654E616D650605636C6F736505416C69676E07 + 055269676874064C6F636B6564090A506F736974696F6E2E5805000000000056 + D59D07400A53697A652E57696474680500000000000000C803400B53697A652E + 4865696768740500000000000000B803401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B75700610636C6F7365627574746F6E + 7374796C65000005545465787400095374796C654E616D6506057469746C6505 + 416C69676E0706436C69656E74064C6F636B6564090748697454657374080A53 + 697A652E576964746805000000000056D59D07400B53697A652E486569676874 + 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 + 08045465787406055469746C65165465787453657474696E67732E466F6E7443 + 6F6C6F720708636C615768697465000000000007544C61796F75740009537479 + 6C654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F63 + 6B6564090748697454657374090A53697A652E576964746805000000000056D5 + AA07400B53697A652E48656967687405000000000000009506401453697A652E + 506C6174666F726D44656661756C7408000007544C61796F757400095374796C + 654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F636B + 6564090A506F736974696F6E2E580500000000000000A001400A506F73697469 + 6F6E2E590500000000000000AE06400A53697A652E5769647468050000000000 + 56D5AA07400B53697A652E4865696768740500000000000000A001401453697A + 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 + 5374796C654E616D6506047265637405416C69676E0706426F74746F6D0A4669 + 6C6C2E436F6C6F7207097846463230323032300553696465730B03546F700642 + 6F74746F6D000A53697A652E576964746805000000000056D5AA07400B53697A + 652E4865696768740500000000000000A001401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000000005450463007544C61796F757400095374796C654E616D6506117769 + 6E646F77626F726465727374796C6505416C69676E070643656E7465720A5369 + 7A652E576964746805000000000056D5AF07400B53697A652E48656967687405 + 00000000000000B306401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508000A5452656374616E676C6500095374796C654E616D65 + 06046D61736B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 7207097846463130313031300A53697A652E576964746805000000000056D5AF + 07400B53697A652E4865696768740500000000000000B306401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650756697369626C6508000007544C61796F757400095374796C654E616D6506 + 046C65667405416C69676E07084D6F73744C656674064C6F636B6564090A506F + 736974696F6E2E590500000000000000F003400A53697A652E57696474680500 + 000000000000A001400B53697A652E4865696768740500000000000000950640 + 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 + 6C650005416C69676E07084D6F73744C6566740A46696C6C2E436F6C6F720709 + 7846463230323032300748697454657374080553696465730B044C6566740552 + 69676874000A53697A652E57696474680500000000000000A001400B53697A65 + 2E48656967687405000000000000009006401453697A652E506C6174666F726D 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 000000005450463007544C61796F757400095374796C654E616D65061177696E - 646F77626F726465727374796C6505416C69676E070643656E7465720A53697A - 652E576964746805000000000056D5AF07400B53697A652E4865696768740500 - 000000000000B306401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F726465720232000A5452656374616E676C6500 - 095374796C654E616D6506046D61736B05416C69676E0708436F6E74656E7473 - 0A46696C6C2E436F6C6F7207097846463130313031300A53697A652E57696474 - 6805000000000056D5AF07400B53697A652E4865696768740500000000000000 - B306401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E650756697369626C6508000007544C61796F75740009 - 5374796C654E616D6506046C65667405416C69676E07084D6F73744C65667406 - 4C6F636B6564090A506F736974696F6E2E590500000000000000F003400A5369 - 7A652E57696474680500000000000000A001400B53697A652E48656967687405 - 000000000000009506401453697A652E506C6174666F726D44656661756C7408 - 000A5452656374616E676C650005416C69676E07084D6F73744C6566740A4669 + 00000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653105416C69676E070A4D6F7374426F74746F6D13456E61626C65447261 + 67486967686C69676874080A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A506F736974696F6E2E590500000000000000900640 + 0553696465730B044C65667406426F74746F6D000A53697A652E576964746805 + 00000000000000A001400B53697A652E4865696768740500000000000000A001 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F7207097846463135313531350007544C61796F757400095374796C654E + 616D6506074C61796F75743305416C69676E07094D6F737452696768740A506F + 736974696F6E2E5805000000000000008001400A53697A652E57696474680500 + 00000000000080FF3F0B53697A652E4865696768740500000000000000A00140 + 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 + 6C6500095374796C654E616D65060A52656374616E676C653105416C69676E07 + 03546F700A46696C6C2E436F6C6F720709784646313531353135074869745465 + 7374080A53697A652E5769647468050000000000000080FF3F0B53697A652E48 + 6569676874050000000000000080FF3F1453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000000000007544C + 61796F757400095374796C654E616D650605726967687405416C69676E07094D + 6F73745269676874064C6F636B6564090A506F736974696F6E2E580500000000 + 005655AD07400A506F736974696F6E2E590500000000000000F003400A53697A + 652E57696474680500000000000000A001400B53697A652E4865696768740500 + 0000000000009506401453697A652E506C6174666F726D44656661756C740800 + 0A5452656374616E676C650005416C69676E07094D6F737452696768740A4669 6C6C2E436F6C6F72070978464632303230323007486974546573740805536964 65730B044C656674055269676874000A53697A652E5769647468050000000000 0000A001400B53697A652E48656967687405000000000000009006401453697A @@ -9564,165 +9583,137 @@ object MainForm: TMainForm 6D65060A52656374616E676C653105416C69676E070A4D6F7374426F74746F6D 13456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F72 07097846463230323032300748697454657374080A506F736974696F6E2E5905 - 000000000000009006400553696465730B044C65667406426F74746F6D000A53 - 697A652E57696474680500000000000000A001400B53697A652E486569676874 - 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F - 757400095374796C654E616D6506074C61796F75743305416C69676E07094D6F - 737452696768740A506F736974696F6E2E5805000000000000008001400A5369 - 7A652E5769647468050000000000000080FF3F0B53697A652E48656967687405 - 00000000000000A001401453697A652E506C6174666F726D44656661756C7408 - 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 - 6C653105416C69676E0703546F700A46696C6C2E436F6C6F7207097846463135 - 313531350748697454657374080A53697A652E57696474680500000000000000 - 80FF3F0B53697A652E486569676874050000000000000080FF3F1453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000000000007544C61796F757400095374796C654E616D65060572696768 - 7405416C69676E07094D6F73745269676874064C6F636B6564090A506F736974 - 696F6E2E580500000000005655AD07400A506F736974696F6E2E590500000000 - 000000F003400A53697A652E57696474680500000000000000A001400B53697A - 652E48656967687405000000000000009506401453697A652E506C6174666F72 - 6D44656661756C7408000A5452656374616E676C650005416C69676E07094D6F - 737452696768740A46696C6C2E436F6C6F720709784646323032303230074869 - 7454657374080553696465730B044C656674055269676874000A53697A652E57 - 696474680500000000000000A001400B53697A652E4865696768740500000000 - 0000009006401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F72070978464631353135313500000A5452656374616E676C - 6500095374796C654E616D65060A52656374616E676C653105416C69676E070A - 4D6F7374426F74746F6D13456E61626C6544726167486967686C69676874080A - 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A50 - 6F736974696F6E2E5905000000000000009006400553696465730B06426F7474 - 6F6D055269676874000A53697A652E57696474680500000000000000A001400B - 53697A652E4865696768740500000000000000A001401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 313531350007544C61796F757400095374796C654E616D6506074C61796F7574 - 3305416C69676E07084D6F73744C6566740A53697A652E576964746805000000 - 0000000080FF3F0B53697A652E4865696768740500000000000000A001401453 - 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 - 00095374796C654E616D65060A52656374616E676C653105416C69676E070354 - 6F700A46696C6C2E436F6C6F7207097846463135313531350748697454657374 - 080A53697A652E5769647468050000000000000080FF3F0B53697A652E486569 - 676874050000000000000080FF3F1453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000000A54526563 - 74616E676C650005416C69676E07074D6F7374546F700A46696C6C2E436F6C6F - 720709784646323032303230064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000056D5AF07400B53697A652E48656967687405 - 00000000000000F003401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F75 - 7400095374796C654E616D65060763617074696F6E05416C69676E0708436F6E - 74656E7473064C6F636B6564090748697454657374090A53697A652E57696474 - 6805000000000056D5AF07400B53697A652E4865696768740500000000000000 - F003401453697A652E506C6174666F726D44656661756C7408000007544C6179 - 6F75740005416C69676E0706436C69656E74064C6F636B6564090C4D61726769 - 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 - FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A - 652E576964746805000000000056D5AE07400B53697A652E4865696768740500 + 000000000000009006400553696465730B06426F74746F6D055269676874000A + 53697A652E57696474680500000000000000A001400B53697A652E4865696768 + 740500000000000000A001401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F7207097846463135313531350007544C6179 + 6F757400095374796C654E616D6506074C61796F75743305416C69676E07084D + 6F73744C6566740A53697A652E5769647468050000000000000080FF3F0B5369 + 7A652E4865696768740500000000000000A001401453697A652E506C6174666F + 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F + 6C6F7207097846463135313531350748697454657374080A53697A652E576964 + 7468050000000000000080FF3F0B53697A652E48656967687405000000000000 + 0080FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6500000000000A5452656374616E676C650005416C + 69676E07074D6F7374546F700A46696C6C2E436F6C6F72070978464632303230 + 3230064C6F636B6564090748697454657374080A53697A652E57696474680500 + 0000000056D5AF07400B53697A652E4865696768740500000000000000F00340 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F7207097846463135313531350007544C61796F757400095374796C654E61 + 6D65060763617074696F6E05416C69676E0708436F6E74656E7473064C6F636B + 6564090748697454657374090A53697A652E576964746805000000000056D5AF + 07400B53697A652E4865696768740500000000000000F003401453697A652E50 + 6C6174666F726D44656661756C7408000007544C61796F75740005416C69676E + 0706436C69656E74064C6F636B6564090C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 + 00000056D5AE07400B53697A652E4865696768740500000000000000E0034014 + 53697A652E506C6174666F726D44656661756C74080007544C61796F75740005 + 416C69676E07044C656674064C6F636B6564090A53697A652E57696474680500 + 0000000000009002400B53697A652E4865696768740500000000000000E00340 + 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 + 00095374796C654E616D65060469636F6E064C6F636B6564090A506F73697469 + 6F6E2E5805000000000000009002400A506F736974696F6E2E59050000000000 + 0000E001400A53697A652E57696474680500000000000000C803400B53697A65 + 2E4865696768740500000000000000A803401453697A652E506C6174666F726D + 44656661756C7408000007544C61796F757400095374796C654E616D65060773 + 797362746E7305416C69676E0706436C69656E74064C6F636B6564090A53697A + 652E57696474680500000000005655AA07400B53697A652E4865696768740500 000000000000E003401453697A652E506C6174666F726D44656661756C740800 - 07544C61796F75740005416C69676E07044C656674064C6F636B6564090A5369 - 7A652E576964746805000000000000009002400B53697A652E48656967687405 - 00000000000000E003401453697A652E506C6174666F726D44656661756C7408 - 000007544C61796F757400095374796C654E616D65060469636F6E064C6F636B - 6564090A506F736974696F6E2E5805000000000000009002400A506F73697469 - 6F6E2E590500000000000000E001400A53697A652E5769647468050000000000 - 0000C803400B53697A652E4865696768740500000000000000A803401453697A - 652E506C6174666F726D44656661756C7408000007544C61796F757400095374 - 796C654E616D65060773797362746E7305416C69676E0706436C69656E74064C - 6F636B6564090A53697A652E57696474680500000000005655AA07400B53697A - 652E4865696768740500000000000000E003401453697A652E506C6174666F72 - 6D44656661756C7408000C545370656564427574746F6E00095374796C654E61 - 6D650605636C6F736505416C69676E07055269676874064C6F636B6564090A50 - 6F736974696F6E2E5805000000000056559107400A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000E003 - 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F - 6B75700610636C6F7365627574746F6E7374796C6500000C5453706565644275 - 74746F6E00095374796C654E616D6506036D617805416C69676E070552696768 - 74064C6F636B6564090A506F736974696F6E2E5805000000000056558207400A - 53697A652E57696474680500000000000000F003400B53697A652E4865696768 + 0C545370656564427574746F6E00095374796C654E616D650605636C6F736505 + 416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E5805 + 000000000056559107400A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000E003401453697A652E506C61 + 74666F726D44656661756C74080B5374796C654C6F6F6B75700610636C6F7365 + 627574746F6E7374796C6500000C545370656564427574746F6E00095374796C + 654E616D6506036D617805416C69676E07055269676874064C6F636B6564090A + 506F736974696F6E2E5805000000000056558207400A53697A652E5769647468 + 0500000000000000F003400B53697A652E4865696768740500000000000000E0 + 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B7570060E6D6178627574746F6E7374796C6500000C545370656564427574 + 746F6E00095374796C654E616D65060372657305416C69676E07055269676874 + 064C6F636B6564090A506F736974696F6E2E58050000000000ACAAE606400A53 + 697A652E57696474680500000000000000F003400B53697A652E486569676874 + 0500000000000000E003401453697A652E506C6174666F726D44656661756C74 + 080B5374796C654C6F6F6B7570060E726573627574746F6E7374796C6500000C + 545370656564427574746F6E00095374796C654E616D6506036D696E05416C69 + 676E07055269676874064C6F636B6564090A506F736974696F6E2E5805000000 + 0000ACAAC806400A53697A652E57696474680500000000000000F003400B5369 + 7A652E4865696768740500000000000000E003401453697A652E506C6174666F + 726D44656661756C74080B5374796C654C6F6F6B7570060E6D696E627574746F + 6E7374796C65000005545465787400095374796C654E616D6506057469746C65 + 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080A + 53697A652E5769647468050000000000ACAAC806400B53697A652E4865696768 740500000000000000E003401453697A652E506C6174666F726D44656661756C - 74080B5374796C654C6F6F6B7570060E6D6178627574746F6E7374796C650000 - 0C545370656564427574746F6E00095374796C654E616D65060372657305416C - 69676E07055269676874064C6F636B6564090A506F736974696F6E2E58050000 - 000000ACAAE606400A53697A652E57696474680500000000000000F003400B53 - 697A652E4865696768740500000000000000E003401453697A652E506C617466 - 6F726D44656661756C74080B5374796C654C6F6F6B7570060E72657362757474 - 6F6E7374796C6500000C545370656564427574746F6E00095374796C654E616D - 6506036D696E05416C69676E07055269676874064C6F636B6564090A506F7369 - 74696F6E2E58050000000000ACAAC806400A53697A652E576964746805000000 - 00000000F003400B53697A652E4865696768740500000000000000E003401453 - 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 - 060E6D696E627574746F6E7374796C65000005545465787400095374796C654E - 616D6506057469746C6505416C69676E0706436C69656E74064C6F636B656409 - 0748697454657374080A53697A652E5769647468050000000000ACAAC806400B - 53697A652E4865696768740500000000000000E003401453697A652E506C6174 - 666F726D44656661756C7408045465787406055469746C651654657874536574 - 74696E67732E466F6E74436F6C6F720708636C61576869746500000000000754 - 4C61796F757400095374796C654E616D650606636C69656E7405416C69676E07 - 06436C69656E74064C6F636B6564090748697454657374090A53697A652E5769 - 64746805000000000056D5AA07400B53697A652E486569676874050000000000 - 00009006401453697A652E506C6174666F726D44656661756C7408000007544C - 61796F757400095374796C654E616D650606626F74746F6D05416C69676E0706 - 426F74746F6D064C6F636B6564090A506F736974696F6E2E5805000000000000 - 00A001400A506F736974696F6E2E590500000000000000AE06400A53697A652E - 576964746805000000000056D5AA07400B53697A652E48656967687405000000 - 00000000A001401453697A652E506C6174666F726D44656661756C7408000A54 - 52656374616E676C6500095374796C654E616D6506047265637405416C69676E - 0706426F74746F6D0A46696C6C2E436F6C6F7207097846463230323032300748 - 697454657374080553696465730B03546F7006426F74746F6D000A53697A652E - 576964746805000000000056D5AA07400B53697A652E48656967687405000000 - 00000000A001401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F720709784646313531353135000000005450463007544C - 61796F757400095374796C654E616D650610726164696F627574746F6E737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 000000F205400B53697A652E4865696768740500000000000000A80340145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F7264657202340007544C61796F75740005416C69676E07044C6566740A5369 - 7A652E57696474680500000000000000A803400B53697A652E48656967687405 - 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 - 000854456C6C6970736500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464632 - 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 - 680500000000000000F002400B53697A652E4865696768740500000000000000 - F002401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646313531353135000854456C6C697073650009537479 - 6C654E616D650609636865636B6D61726B05416C69676E0706436C69656E740A - 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 - 745465737408074F70616369747905000000000000000000000C4D617267696E - 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 - 00000000008000400D4D617267696E732E526967687405000000000000008000 - 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 - 2E57696474680500000000000000B002400B53697A652E486569676874050000 - 0000000000B002401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F - 6E00095374796C654E616D65061A6F706163697479436865636B6D61726B416E - 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F - 70657274794E616D6506074F7061636974790A537461727456616C7565050000 - 00000000000000000953746F7056616C7565050000000000000080FF3F075472 - 6967676572060E4973436865636B65643D747275650E54726967676572496E76 - 65727365060F4973436865636B65643D66616C73650000000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D65061A726164696F627574746F6E - 436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000000000 - 00000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463230323032300953746F70 - 56616C756507097846463430343034300754726967676572061049734D6F7573 - 654F7665723D747275650E54726967676572496E7665727365061149734D6F75 - 73654F7665723D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 - 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 - 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 - 313531350953746F7056616C7565070978464632413832453207547269676765 - 72060E4973436865636B65643D747275650E54726967676572496E7665727365 - 060F4973436865636B65643D66616C7365000000000554546578740009537479 - 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 - 64090748697454657374080A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000A803401453697A652E506C - 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 - 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 - 5374796C654E616D650618756C63656E746572726164696F627574746F6E7374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00005655FB05400B53697A652E4865696768740500000000000000A004401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F7264657202360007544C61796F75740005416C69676E0706426F74746F6D + 7408045465787406055469746C65165465787453657474696E67732E466F6E74 + 436F6C6F720708636C615768697465000000000007544C61796F757400095374 + 796C654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F + 636B6564090748697454657374090A53697A652E576964746805000000000056 + D5AA07400B53697A652E48656967687405000000000000009006401453697A65 + 2E506C6174666F726D44656661756C7408000007544C61796F75740009537479 + 6C654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F63 + 6B6564090A506F736974696F6E2E580500000000000000A001400A506F736974 + 696F6E2E590500000000000000AE06400A53697A652E57696474680500000000 + 0056D5AA07400B53697A652E4865696768740500000000000000A00140145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D6506047265637405416C69676E0706426F74746F6D0A46 + 696C6C2E436F6C6F720709784646323032303230074869745465737408055369 + 6465730B03546F7006426F74746F6D000A53697A652E57696474680500000000 + 0056D5AA07400B53697A652E4865696768740500000000000000A00140145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000000005450463007544C61796F75740009537479 + 6C654E616D650610726164696F627574746F6E7374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000F205400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C65080007544C61796F75740005416C69 + 676E07044C6566740A53697A652E57696474680500000000000000A803400B53 + 697A652E4865696768740500000000000000A803401453697A652E506C617466 + 6F726D44656661756C7408000854456C6C6970736500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E070643656E7465720A46696C6C2E + 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 + 080A53697A652E57696474680500000000000000F002400B53697A652E486569 + 6768740500000000000000F002401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313500085445 + 6C6C6970736500095374796C654E616D650609636865636B6D61726B05416C69 + 676E0706436C69656E740A46696C6C2E436F6C6F720709784646324138324532 + 064C6F636B656409074869745465737408074F70616369747905000000000000 + 000000000C4D617267696E732E4C65667405000000000000008000400B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 + 0000008000400A53697A652E57696474680500000000000000B002400B53697A + 652E4865696768740500000000000000B002401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C + 6F6174416E696D6174696F6E00095374796C654E616D65061A6F706163697479 + 436865636B6D61726B416E696D6174696F6E31084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D6506074F7061636974790A5374 + 61727456616C756505000000000000000000000953746F7056616C7565050000 + 000000000080FF3F0754726967676572060E4973436865636B65643D74727565 + 0E54726967676572496E7665727365060F4973436865636B65643D66616C7365 + 0000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061A + 726164696F627574746F6E436F6C6F72416E696D6174696F6E31084475726174 + 696F6E050000000000000000000007496E7665727365090C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3230323032300953746F7056616C756507097846463430343034300754726967 + 676572061049734D6F7573654F7665723D747275650E54726967676572496E76 + 65727365061149734D6F7573654F7665723D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463135313531350953746F7056616C756507097846463241 + 383245320754726967676572060E4973436865636B65643D747275650E547269 + 67676572496E7665727365060F4973436865636B65643D66616C736500000000 + 05545465787400095374796C654E616D6506047465787405416C69676E070643 + 6C69656E74064C6F636B6564090748697454657374080A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + A803401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 + 3007544C61796F757400095374796C654E616D650618756C63656E7465727261 + 64696F627574746F6E7374796C6505416C69676E070643656E7465720A53697A + 652E57696474680500000000005655FB05400B53697A652E4865696768740500 + 000000000000A004401453697A652E506C6174666F726D44656661756C740807 + 56697369626C65080007544C61796F75740005416C69676E0706426F74746F6D 0A506F736974696F6E2E5905000000000000008804400A53697A652E57696474 680500000000005655FB05400B53697A652E4865696768740500000000000000 C001401453697A652E506C6174666F726D44656661756C7408000A5452656374 @@ -9764,421 +9755,857 @@ object MainForm: TMainForm 6C654E616D650617756C7269676874726164696F627574746F6E7374796C6505 416C69676E070643656E7465720A53697A652E57696474680500000000005655 FB05400B53697A652E4865696768740500000000000000A004401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 - 657202380007544C61796F75740005416C69676E0706426F74746F6D0A506F73 - 6974696F6E2E5905000000000000008804400A53697A652E5769647468050000 - 0000005655FB05400B53697A652E4865696768740500000000000000C0014014 - 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C - 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 - 436F6E74656E747307436F726E6572730B08546F7052696768740B426F74746F - 6D5269676874000A46696C6C2E436F6C6F720709784646323032303230064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000056 - 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 784646313531353135000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E - 696D6174696F6E31084475726174696F6E050000000000000000000007496E76 - 65727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463230323032300953746F7056616C75650709 - 7846463430343034300754726967676572061049734D6F7573654F7665723D74 - 7275650E54726967676572496E7665727365061149734D6F7573654F7665723D - 66616C736500000A5452656374616E676C6500095374796C654E616D65060963 - 6865636B6D61726B05416C69676E0708436F6E74656E747307436F726E657273 - 0B08546F7052696768740B426F74746F6D5269676874000A46696C6C2E436F6C - 6F720709784646324138324532064C6F636B656409074869745465737408074F - 70616369747905000000000000000000000C4D617267696E732E4C6566740500 - 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F - 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E - 732E426F74746F6D050000000000000080FF3F0A53697A652E57696474680500 - 000000005655F705400B53697A652E4865696768740500000000000000800140 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C65 - 4E616D65061A636865636B6D61726B4F706163697479416E696D6174696F6E31 - 084475726174696F6E05000000000000000000000C50726F70657274794E616D - 6506074F7061636974790A537461727456616C75650500000000000000000000 - 0953746F7056616C7565050000000000000080FF3F0754726967676572060E49 - 73436865636B65643D747275650E54726967676572496E7665727365060F4973 - 436865636B65643D66616C7365000000000005545465787400095374796C654E - 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 - 48697454657374080A53697A652E57696474680500000000005655FB05400B53 - 697A652E48656967687405000000000000008804401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C6157686974650000005450463007544C61796F75740009537479 - 6C654E616D650616756C6C656674726164696F627574746F6E7374796C650541 - 6C69676E070643656E7465720A53697A652E57696474680500000000005655FB - 05400B53697A652E4865696768740500000000000000A004401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 72023A0007544C61796F75740005416C69676E0706426F74746F6D0A506F7369 - 74696F6E2E5905000000000000008804400A53697A652E576964746805000000 - 00005655FB05400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 - 6F6E74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C - 656674000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 - 64090748697454657374080A53697A652E57696474680500000000005655FB05 - 400B53697A652E4865696768740500000000000000C001401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 313531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E696D61 - 74696F6E31084475726174696F6E050000000000000000000007496E76657273 - 65090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 - 7456616C756507097846463230323032300953746F7056616C75650709784646 - 3430343034300754726967676572061049734D6F7573654F7665723D74727565 - 0E54726967676572496E7665727365061149734D6F7573654F7665723D66616C - 736500000A5452656374616E676C6500095374796C654E616D65060963686563 - 6B6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B0754 - 6F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978 - 4646324138324532064C6F636B656409074869745465737408074F7061636974 - 7905000000000000000000000C4D617267696E732E4C65667405000000000000 + 506C6174666F726D44656661756C74080756697369626C65080007544C61796F + 75740005416C69676E0706426F74746F6D0A506F736974696F6E2E5905000000 + 000000008804400A53697A652E57696474680500000000005655FB05400B5369 + 7A652E4865696768740500000000000000C001401453697A652E506C6174666F + 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E747307436F + 726E6572730B08546F7052696768740B426F74746F6D5269676874000A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080A53697A652E57696474680500000000005655FB05400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D6506216261636B + 67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E31084475 + 726174696F6E050000000000000000000007496E7665727365090C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572061049734D6F7573654F7665723D747275650E54726967676572 + 496E7665727365061149734D6F7573654F7665723D66616C736500000A545265 + 6374616E676C6500095374796C654E616D650609636865636B6D61726B05416C + 69676E0708436F6E74656E747307436F726E6572730B08546F7052696768740B + 426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632413832 + 4532064C6F636B656409074869745465737408074F7061636974790500000000 + 0000000000000C4D617267696E732E4C656674050000000000000080FF3F0B4D + 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 + 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A53697A652E57696474680500000000005655F705400B53 + 697A652E48656967687405000000000000008001401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 + 466C6F6174416E696D6174696F6E00095374796C654E616D65061A636865636B + 6D61726B4F706163697479416E696D6174696F6E31084475726174696F6E0500 + 0000000000000000000C50726F70657274794E616D6506074F7061636974790A + 537461727456616C756505000000000000000000000953746F7056616C756505 + 0000000000000080FF3F0754726967676572060E4973436865636B65643D7472 + 75650E54726967676572496E7665727365060F4973436865636B65643D66616C + 7365000000000005545465787400095374796C654E616D650604746578740541 + 6C69676E0706436C69656E74064C6F636B6564090748697454657374080A5369 + 7A652E57696474680500000000005655FB05400B53697A652E48656967687405 + 000000000000008804401453697A652E506C6174666F726D44656661756C7408 + 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 + 650000005450463007544C61796F757400095374796C654E616D650616756C6C + 656674726164696F627574746F6E7374796C6505416C69676E070643656E7465 + 720A53697A652E57696474680500000000005655FB05400B53697A652E486569 + 6768740500000000000000A004401453697A652E506C6174666F726D44656661 + 756C74080756697369626C65080007544C61796F75740005416C69676E070642 + 6F74746F6D0A506F736974696F6E2E5905000000000000008804400A53697A65 + 2E57696474680500000000005655FB05400B53697A652E486569676874050000 + 0000000000C001401453697A652E506C6174666F726D44656661756C7408000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0708436F6E74656E747307436F726E6572730B07546F704C65 + 66740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846463230 + 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 + 0500000000005655FB05400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F720709784646313531353135000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D6506216261636B67726F756E64556C427574746F6E + 436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000000000 + 00000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463230323032300953746F70 + 56616C756507097846463430343034300754726967676572061049734D6F7573 + 654F7665723D747275650E54726967676572496E7665727365061149734D6F75 + 73654F7665723D66616C736500000A5452656374616E676C6500095374796C65 + 4E616D650609636865636B6D61726B05416C69676E0708436F6E74656E747307 + 436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C + 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 + 737408074F70616369747905000000000000000000000C4D617267696E732E4C + 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 + 6474680500000000005655F705400B53697A652E486569676874050000000000 + 00008001401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0009 + 5374796C654E616D65061A636865636B6D61726B4F706163697479416E696D61 + 74696F6E31084475726174696F6E05000000000000000000000C50726F706572 + 74794E616D6506074F7061636974790A537461727456616C7565050000000000 + 00000000000953746F7056616C7565050000000000000080FF3F075472696767 + 6572060E4973436865636B65643D747275650E54726967676572496E76657273 + 65060F4973436865636B65643D66616C73650000000000055454657874000953 + 74796C654E616D6506047465787405416C69676E0706436C69656E74064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000005655 + FB05400B53697A652E48656967687405000000000000008804401453697A652E + 506C6174666F726D44656661756C7408165465787453657474696E67732E466F + 6E74436F6C6F720708636C6157686974650000005450463007544C61796F7574 + 00095374796C654E616D65061070726F67726573736261727374796C6505416C + 69676E070643656E7465720A53697A652E576964746805000000000033338505 + 400B53697A652E4865696768740500000000009999E104401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000A5452656374616E + 676C6500095374796C654E616D65060668747261636B05416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000003333 + 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 4646313531353135000A5452656374616E676C6500095374796C654E616D6506 + 0A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C + 6F720709784646324138324532064C6F636B6564090748697454657374080C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 + 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F + 0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E + 59050000000000000080FF3F0A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000009999D904401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650000000A5452656374616E676C6500095374796C654E616D65060676747261 + 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646323032303230064C6F636B6564090748697454657374080A53697A652E57 + 6964746805000000000033338505400B53697A652E4865696768740500000000 + 009999E104401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000A5452656374616E676C65 + 00095374796C654E616D65060A76696E64696361746F7205416C69676E070642 + 6F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000056 - 55F705400B53697A652E48656967687405000000000000008001401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D6506 - 1A636865636B6D61726B4F706163697479416E696D6174696F6E310844757261 - 74696F6E05000000000000000000000C50726F70657274794E616D6506074F70 - 61636974790A537461727456616C756505000000000000000000000953746F70 - 56616C7565050000000000000080FF3F0754726967676572060E497343686563 - 6B65643D747275650E54726967676572496E7665727365060F4973436865636B - 65643D66616C7365000000000005545465787400095374796C654E616D650604 - 7465787405416C69676E0706436C69656E74064C6F636B656409074869745465 - 7374080A53697A652E57696474680500000000005655FB05400B53697A652E48 - 656967687405000000000000008804401453697A652E506C6174666F726D4465 - 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 - 6C6157686974650000005450463007544C61796F757400095374796C654E616D - 65061070726F67726573736261727374796C6505416C69676E070643656E7465 - 720A53697A652E576964746805000000000033338505400B53697A652E486569 - 6768740500000000009999E104401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508085461624F72646572023D000A545265637461 - 6E676C6500095374796C654E616D65060668747261636B05416C69676E070843 - 6F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000033 - 338505400B53697A652E4865696768740500000000009999E104401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 784646313531353135000A5452656374616E676C6500095374796C654E616D65 - 060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F - 6C6F720709784646324138324532064C6F636B6564090748697454657374080C - 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E - 2E59050000000000000080FF3F0A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000009999D904401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E650000000A5452656374616E676C6500095374796C654E616D650606767472 - 61636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 - 784646323032303230064C6F636B6564090748697454657374080A53697A652E - 576964746805000000000033338505400B53697A652E48656967687405000000 - 00009999E104401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F720709784646313531353135000A5452656374616E676C - 6500095374796C654E616D65060A76696E64696361746F7205416C69676E0706 - 426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F63 - 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 - 000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D6172 - 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F - 74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000000000 - 000080FF3F0A506F736974696F6E2E5905000000000099998904400A53697A65 - 2E576964746805000000000033338105400B53697A652E486569676874050000 - 0000000000A803401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 - 00095374796C654E616D65060D657870616E6465727374796C6505416C69676E - 070643656E7465720A53697A652E576964746805000000000000C08407400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572023F00 - 0A5452656374616E676C6500095374796C654E616D65060B626772656374616E - 676C6505416C69676E0708436F6E74656E74730C436C69704368696C6472656E - 090A46696C6C2E436F6C6F720709784646324432443244064C6F636B65640907 - 48697454657374080A53697A652E576964746805000000000000C08407400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 3531350007544C61796F757400095374796C654E616D6506074C61796F757433 - 05416C69676E0703546F700A53697A652E576964746805000000000000C08407 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C74080007544C61796F757400095374796C654E61 - 6D6506074C61796F75743405416C69676E0708436F6E74656E74730A53697A65 - 2E576964746805000000000000C08407400B53697A652E486569676874050000 - 0000000000C803401453697A652E506C6174666F726D44656661756C7408000A - 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 - 3205416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 - 46323532353235064C6F636B6564090748697454657374080A53697A652E5769 - 64746805000000000000C08407400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C74080C5374726F - 6B652E436F6C6F72070978464631353135313500000A5452656374616E676C65 - 00095374796C654E616D65060A52656374616E676C653105416C69676E070843 - 6F6E74656E74730A46696C6C2E436F6C6F720709784646313531353135064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000000 - C08407400B53697A652E4865696768740500000000000000C803401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D6506 - 14466C6F6174416E696D6174696F6E315374796C65084475726174696F6E0500 - 00000000CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263756C61 - 720C50726F70657274794E616D6506075363616C652E580A537461727456616C - 7565050000000000000080FF3F0953746F7056616C7565050000000000000000 - 00000754726967676572060F4973457870616E6465643D747275650E54726967 - 676572496E766572736506104973457870616E6465643D66616C736500000000 - 07544C61796F757400095374796C654E616D6506074C61796F75743305416C69 - 676E0708436F6E74656E74730A53697A652E576964746805000000000000C084 + 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 + 0080FF3F0A506F736974696F6E2E5905000000000099998904400A53697A652E + 576964746805000000000033338105400B53697A652E48656967687405000000 + 00000000A803401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 + 095374796C654E616D65060D657870616E6465727374796C6505416C69676E07 + 0643656E7465720A53697A652E576964746805000000000000C08407400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508000A5452656374616E676C6500 + 095374796C654E616D65060B626772656374616E676C6505416C69676E070843 + 6F6E74656E74730C436C69704368696C6472656E090A46696C6C2E436F6C6F72 + 0709784646324432443244064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000000C08407400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F7207097846463135313531350007544C61796F7574 + 00095374796C654E616D6506074C61796F75743305416C69676E0703546F700A + 53697A652E576964746805000000000000C08407400B53697A652E4865696768 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 74080007544C61796F757400095374796C654E616D6506074C61796F75743405 + 416C69676E0708436F6E74656E74730A53697A652E5769647468050000000000 + 00C08407400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 + 5374796C654E616D65060A52656374616E676C653205416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F720709784646323532353235064C6F636B + 6564090748697454657374080A53697A652E576964746805000000000000C084 07400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C74080005545465787400095374796C654E616D - 6506047465787405416C69676E07044C656674084175746F53697A65090A436C - 6970506172656E7409064C6F636B6564090748697454657374080C4D61726769 - 6E732E4C6566740500000000000000A002400A506F736974696F6E2E58050000 - 0000000000A002400A53697A652E576964746805000000000000B8C703400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C615768697465165465787453657474696E67732E486F727A416C - 69676E07074C656164696E670000000F54457870616E646572427574746F6E00 - 095374796C654E616D650606627574746F6E05416C69676E0705526967687406 - 4C6F636B6564090A506F736974696F6E2E580500000000000080F506400A5369 - 7A652E57696474680500000000000000A003400B53697A652E48656967687405 - 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 - 00000000005450463007544C61796F757400095374796C654E616D6506136578 - 70616E646572627574746F6E7374796C6505416C69676E070643656E7465720B - 4D617267696E732E546F70050000000000000080FF3F0A53697A652E57696474 - 680500000000000000B003400B53697A652E4865696768740500000000000000 - B003401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F7264657202410005545061746800095374796C654E616D6506 - 05506174683105416C69676E070643656E74657209446174612E506174680A34 - 00000004000000000000000000C8420000C84201000000000096430000C84201 - 0000000000484300009643030000000000C8420000C8420A46696C6C2E436F6C - 6F720708636C6157686974650748697454657374080D526F746174696F6E416E - 676C650500000000000000B405400A53697A652E576964746805000000000000 - 00A002400B53697A652E4865696768740500000000000000C001401453697A65 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 4631353135313500000A5452656374616E676C6500095374796C654E616D6506 + 0A52656374616E676C653105416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646313531353135064C6F636B65640907486974546573 + 74080A53697A652E576964746805000000000000C08407400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 + 6E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D6174 + 696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0D496E + 746572706F6C6174696F6E070843697263756C61720C50726F70657274794E61 + 6D6506075363616C652E580A537461727456616C7565050000000000000080FF + 3F0953746F7056616C756505000000000000000000000754726967676572060F + 4973457870616E6465643D747275650E54726967676572496E76657273650610 + 4973457870616E6465643D66616C73650000000007544C61796F757400095374 + 796C654E616D6506074C61796F75743305416C69676E0708436F6E74656E7473 + 0A53697A652E576964746805000000000000C08407400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080005545465787400095374796C654E616D6506047465787405416C6967 + 6E07044C656674084175746F53697A65090A436C6970506172656E7409064C6F + 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 + 000000A002400A506F736974696F6E2E580500000000000000A002400A53697A + 652E576964746805000000000000B8C703400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 + 0000000F54457870616E646572427574746F6E00095374796C654E616D650606 + 627574746F6E05416C69676E07055269676874064C6F636B6564090A506F7369 + 74696F6E2E580500000000000080F506400A53697A652E576964746805000000 + 00000000A003400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C740800000000005450463007544C + 61796F757400095374796C654E616D650613657870616E646572627574746F6E + 7374796C6505416C69676E070643656E7465720B4D617267696E732E546F7005 + 0000000000000080FF3F0A53697A652E57696474680500000000000000B00340 + 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 + 74666F726D44656661756C74080756697369626C650800055450617468000953 + 74796C654E616D650605506174683105416C69676E070643656E746572094461 + 74612E506174680A3400000004000000000000000000C8420000C84201000000 + 000096430000C842010000000000484300009643030000000000C8420000C842 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D52 + 6F746174696F6E416E676C650500000000000000B405400A53697A652E576964 + 74680500000000000000A002400B53697A652E48656967687405000000000000 + 00C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000953 + 74796C654E616D650614466C6F6174416E696D6174696F6E315374796C650844 + 75726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E + 070843697263756C61720C50726F70657274794E616D65060D526F746174696F + 6E416E676C650A537461727456616C75650500000000000000B405400953746F + 7056616C756505000000000000000000000754726967676572060F4973457870 + 616E6465643D747275650E54726967676572496E766572736506104973457870 + 616E6465643D66616C7365000000005450463007544C61796F75740009537479 + 6C654E616D650615657870616E646572636865636B626F787374796C6505416C + 69676E070643656E7465720A53697A652E576964746805000000000000008406 + 400B53697A652E48656967687405000000000000008404401453697A652E506C + 6174666F726D44656661756C74080756697369626C65080007544C61796F7574 + 0005416C69676E07044C6566740A53697A652E57696474680500000000000000 + C003400B53697A652E48656967687405000000000000008404401453697A652E + 506C6174666F726D44656661756C7408000554506174680005416C69676E0706 + 436C69656E7409446174612E506174680AD80100002700000000000000FEC8BA + 4402E79244020000002592AD4402E79244020000006D5BA544FEB09E44020000 + 006D5BA544FEB09E440200000093A4A4446A0C9F44020000004A80AC44FC79AA + 4402000000046EBA44FC79AA44020000004A00C844FC79AA44020000000080CF + 44FEB09E44020000000080CF44FEB09E44020000000080CF44FEB09E44020000 + 004C5BC84402E7924402000000FEC8BA4402E7924400000000FE88BA44FE3097 + 4402000000B876BF44FE309744020000000277C344EEA09A44020000000277C3 + 4404DE9E44020000000277C344121BA34402000000B876BF44008CA644020000 + 00FE88BA44008CA644020000004C9BB544008CA64402000000009CB144121BA3 + 4402000000009CB14404DE9E4402000000009CB144EEA09A44020000004C9BB5 + 44FE30974402000000FE88BA44FE309744000000000080BA44045E9B44020000 + 00146EB844045E9B440200000000C0B64454F79C440200000000C0B64400F09E + 440200000000C0B644ACE8A04402000000146EB844FC81A244020000000080BA + 44FC81A24402000000EC91BC44FC81A244020000000040BE44ACE8A044020000 + 000040BE4400F09E44020000000040BE4454F79C4402000000EC91BC44045E9B + 44020000000080BA44045E9B440A46696C6C2E436F6C6F720709783630303030 + 3030300748697454657374080C4D617267696E732E4C65667405000000000000 + 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 + 696E732E526967687405000000000000008000400E4D617267696E732E426F74 + 746F6D05000000000000008000400A53697A652E576964746805000000000000 + 00A003400B53697A652E4865696768740500000000000000E803401453697A65 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D6506 - 14466C6F6174416E696D6174696F6E315374796C65084475726174696F6E0500 - 00000000CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263756C61 - 720C50726F70657274794E616D65060D526F746174696F6E416E676C650A5374 - 61727456616C75650500000000000000B405400953746F7056616C7565050000 - 00000000000000000754726967676572060F4973457870616E6465643D747275 - 650E54726967676572496E766572736506104973457870616E6465643D66616C - 7365000000005450463007544C61796F757400095374796C654E616D65061565 - 7870616E646572636865636B626F787374796C6505416C69676E070643656E74 - 65720A53697A652E576964746805000000000000008406400B53697A652E4865 - 6967687405000000000000008404401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F7264657202430007544C61796F - 75740005416C69676E07044C6566740A53697A652E5769647468050000000000 - 0000C003400B53697A652E48656967687405000000000000008404401453697A - 652E506C6174666F726D44656661756C7408000554506174680005416C69676E - 0706436C69656E7409446174612E506174680AD80100002700000000000000FE - C8BA4402E79244020000002592AD4402E79244020000006D5BA544FEB09E4402 - 0000006D5BA544FEB09E440200000093A4A4446A0C9F44020000004A80AC44FC - 79AA4402000000046EBA44FC79AA44020000004A00C844FC79AA440200000000 - 80CF44FEB09E44020000000080CF44FEB09E44020000000080CF44FEB09E4402 - 0000004C5BC84402E7924402000000FEC8BA4402E7924400000000FE88BA44FE - 30974402000000B876BF44FE309744020000000277C344EEA09A440200000002 - 77C34404DE9E44020000000277C344121BA34402000000B876BF44008CA64402 - 000000FE88BA44008CA644020000004C9BB544008CA64402000000009CB14412 - 1BA34402000000009CB14404DE9E4402000000009CB144EEA09A44020000004C - 9BB544FE30974402000000FE88BA44FE309744000000000080BA44045E9B4402 - 000000146EB844045E9B440200000000C0B64454F79C440200000000C0B64400 - F09E440200000000C0B644ACE8A04402000000146EB844FC81A2440200000000 - 80BA44FC81A24402000000EC91BC44FC81A244020000000040BE44ACE8A04402 - 0000000040BE4400F09E44020000000040BE4454F79C4402000000EC91BC4404 - 5E9B44020000000080BA44045E9B440A46696C6C2E436F6C6F72070978363030 - 30303030300748697454657374080C4D617267696E732E4C6566740500000000 - 0000008000400B4D617267696E732E546F7005000000000000008000400D4D61 - 7267696E732E526967687405000000000000008000400E4D617267696E732E42 - 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 - 000000A003400B53697A652E4865696768740500000000000000E80340145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E6508577261704D6F64650703466974000F54436F6C6F72416E696D61 + 6F6E6508577261704D6F64650703466974000F54436F6C6F72416E696D617469 + 6F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709783630 + 3030303030300953746F7056616C75650708636C61426C61636B075472696767 + 6572060E4973436865636B65643D7472756500000F54436F6C6F72416E696D61 74696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 36303030303030300953746F7056616C75650708636C61426C61636B07547269 - 67676572060E4973436865636B65643D7472756500000F54436F6C6F72416E69 - 6D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 08636C61426C61636B0953746F7056616C756507097836303030303030300754 - 726967676572060F4973436865636B65643D66616C7365000000000554546578 - 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 - 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 0000000000008002400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E5269676874050000000000000080FF3F0A53697A652E57 - 696474680500000000000000C605400B53697A652E4865696768740500000000 - 000000F803401453697A652E506C6174666F726D44656661756C740816546578 - 7453657474696E67732E466F6E74436F6C6F7207097846464545454545451654 - 65787453657474696E67732E486F727A416C69676E07074C656164696E670000 - 005450463007544C61796F757400095374796C654E616D65060E6C6162656C66 - 696C6C7374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000C805400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F726465720246000A5452656374616E676C6500095374796C65 - 4E616D65060A52656374616E676C653105416C69676E0708436F6E74656E7473 - 0A46696C6C2E436F6C6F7207097846463135313531350A53697A652E57696474 - 680500000000000000C805400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E65000005545465787400095374796C654E616D650604 - 7465787405416C69676E0708436F6E74656E74730748697454657374080A5369 - 7A652E57696474680500000000000000C805400B53697A652E48656967687405 - 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 650000005450463007544C61796F757400095374796C654E616D650613636F6D - 626F656469746572726F727374796C6505416C69676E070643656E7465720A53 - 697A652E57696474680500000000000000C805400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508085461624F72646572020F000C5442727573684F626A - 65637400095374796C654E616D65060A666F726567726F756E6400000B54466F - 6E744F626A65637400095374796C654E616D650604666F6E7409466F6E742E53 - 697A650500000000000000D00240000007544C61796F757400095374796C654E - 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A - 53697A652E57696474680500000000000000C805400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 7408000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F720709 - 7846463230323032300748697454657374080A53697A652E5769647468050000 - 0000000000C805400B53697A652E4865696768740500000000000000C8034014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F720709784646323032303230000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 - 4475726174696F6E050000000000000000000007496E7665727365090C50726F - 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C - 756507097846463230323032300953746F7056616C7565070978464634303430 - 34300754726967676572062049734D6F7573654F7665723D747275653B497346 - 6F63757365643D66616C73650E54726967676572496E7665727365062149734D - 6F7573654F7665723D66616C73653B4973466F63757365643D66616C73650000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C - 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 - 000000000007496E7665727365090C50726F70657274794E616D65060C537472 - 6F6B652E436F6C6F720A537461727456616C7565070978464634303430343009 - 53746F7056616C756507097846464532324132410754726967676572061F4973 - 4D6F7573654F7665723D747275653B4973466F63757365643D747275650E5472 - 6967676572496E7665727365062049734D6F7573654F7665723D747275653B49 - 73466F63757365643D66616C7365000007544C61796F757400095374796C654E - 616D6506056172726F7705416C69676E070846697452696768740B4D61726769 - 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 - 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 - 0080FF3F0A506F736974696F6E2E580500000000005ED99705400A506F736974 - 696F6E2E59050000000000000080FF3F0A53697A652E57696474680500000000 - 00889AB803400B53697A652E4865696768740500000000000000B80340145369 - 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 - 095374796C654E616D65060A52656374616E676C653105416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F72070978464633303330333007486974 - 54657374080A53697A652E5769647468050000000000889AB803400B53697A65 - 2E4865696768740500000000000000B803401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E69 - 6D6174696F6E315374796C65084475726174696F6E0500000000000000000000 - 07496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C756507097846463330333033300953746F7056616C - 756507097846463430343034300754726967676572062049734D6F7573654F76 - 65723D747275653B4973466F63757365643D66616C73650E5472696767657249 - 6E7665727365062149734D6F7573654F7665723D66616C73653B4973466F6375 - 7365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464634303430343009 - 53746F7056616C756507097846463943313731370754726967676572061F4973 - 466F63757365643D747275653B49734D6F7573654F7665723D74727565000000 - 07544C61796F757400095374796C654E616D6506074C61796F75743105416C69 - 676E070643656E7465720C4D617267696E732E4C656674050000000000000080 - FF3F0A53697A652E57696474680500000000000000A002400B53697A652E4865 - 696768740500000000000000C001401453697A652E506C6174666F726D446566 - 61756C74080005545061746800095374796C654E616D65060550617468310541 - 6C69676E0706436C69656E7409446174612E506174680A340000000400000000 - 0000000000C8420000C84201000000000096430000C842010000000000484300 - 009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C6157 - 686974650748697454657374080A53697A652E57696474680500000000000000 - A002400B53697A652E4865696768740500000000000000C001401453697A652E + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070863 + 6C61426C61636B0953746F7056616C7565070978363030303030303007547269 + 67676572060F4973436865636B65643D66616C73650000000005545465787400 + 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 000000008002400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E5269676874050000000000000080FF3F0A53697A652E576964 + 74680500000000000000C605400B53697A652E48656967687405000000000000 + 00F803401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F72070978464645454545454516546578 + 7453657474696E67732E486F727A416C69676E07074C656164696E6700000054 + 50463007544C61796F757400095374796C654E616D65060E6C6162656C66696C + 6C7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 + 6C653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 7846463135313531350A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 05545465787400095374796C654E616D6506047465787405416C69676E070843 + 6F6E74656E74730748697454657374080A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D650613636F6D626F656469746572726F727374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000C54 + 42727573684F626A65637400095374796C654E616D65060A666F726567726F75 + 6E6400000B54466F6E744F626A65637400095374796C654E616D650604666F6E + 7409466F6E742E53697A650500000000000000D00240000007544C61796F7574 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653105416C69676E0706436C69656E740A46696C6C + 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F720709784646323032303230000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F + 6E315374796C65084475726174696F6E050000000000000000000007496E7665 + 727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A + 537461727456616C756507097846463230323032300953746F7056616C756507 + 097846463430343034300754726967676572062049734D6F7573654F7665723D + 747275653B4973466F63757365643D66616C73650E54726967676572496E7665 + 727365062149734D6F7573654F7665723D66616C73653B4973466F6375736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614436F6C6F72416E696D6174696F6E325374796C6508447572617469 + 6F6E050000000000000000000007496E7665727365090C50726F70657274794E + 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464645323241324107547269 + 67676572061F49734D6F7573654F7665723D747275653B4973466F6375736564 + 3D747275650E54726967676572496E7665727365062049734D6F7573654F7665 + 723D747275653B4973466F63757365643D66616C7365000007544C61796F7574 + 00095374796C654E616D6506056172726F7705416C69676E0708466974526967 + 68740B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A506F736974696F6E2E580500000000005ED997 + 05400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769 + 647468050000000000889AB803400B53697A652E486569676874050000000000 + 0000B803401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060A52656374616E676C65310541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463330 + 333033300748697454657374080A53697A652E5769647468050000000000889A + B803400B53697A652E4865696768740500000000000000B803401453697A652E 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E650000000000000C5442727573684F626A65637400095374796C654E616D65 - 060973656C656374696F6E0B42727573682E436F6C6F72070978393632413832 - 4532000007544C61796F757400095374796C654E616D650607636F6E74656E74 - 05416C69676E0706436C69656E740C4D617267696E732E4C6566740500000000 - 0000008000400B4D617267696E732E546F7005000000000000008000400D4D61 - 7267696E732E52696768740500000000000000F003400E4D617267696E732E42 - 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 - 0000008805400B53697A652E4865696768740500000000000000A80340145369 - 7A652E506C6174666F726D44656661756C74080000005450463007544C61796F - 757400095374796C654E616D65061E70726F6772657373626172696E64657465 - 726D696E61626C657374796C6505416C69676E070643656E7465720A53697A65 + 6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 + 436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E050000 + 000000000000000007496E7665727365090C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646333033303330 + 0953746F7056616C756507097846463430343034300754726967676572062049 + 734D6F7573654F7665723D747275653B4973466F63757365643D66616C73650E + 54726967676572496E7665727365062149734D6F7573654F7665723D66616C73 + 653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3253 + 74796C65084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464639433137313707547269 + 67676572061F4973466F63757365643D747275653B49734D6F7573654F766572 + 3D7472756500000007544C61796F757400095374796C654E616D6506074C6179 + 6F75743105416C69676E070643656E7465720C4D617267696E732E4C65667405 + 0000000000000080FF3F0A53697A652E57696474680500000000000000A00240 + 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 + 74666F726D44656661756C74080005545061746800095374796C654E616D6506 + 05506174683105416C69676E0706436C69656E7409446174612E506174680A34 + 00000004000000000000000000C8420000C84201000000000096430000C84201 + 0000000000484300009643030000000000C8420000C8420A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E650000000000000C5442727573684F626A656374000953 + 74796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F7207 + 09783936324138324532000007544C61796F757400095374796C654E616D6506 + 07636F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E4C + 65667405000000000000008000400B4D617267696E732E546F70050000000000 + 00008000400D4D617267696E732E52696768740500000000000000F003400E4D + 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 + 64746805000000000000008805400B53697A652E486569676874050000000000 + 0000A803401453697A652E506C6174666F726D44656661756C74080000005450 + 463007544C61796F757400095374796C654E616D65061E70726F677265737362 + 6172696E64657465726D696E61626C657374796C6505416C69676E070643656E + 7465720A53697A652E5769647468050000000000ABAAB006400B53697A652E48 + 65696768740500000000000000C003401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000A5452656374616E676C650009537479 + 6C654E616D65060676747261636B05416C69676E0708436F6E74656E74730745 + 6E61626C6564080A46696C6C2E436F6C6F720709784646323032303230064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000000 + 00E006400B53697A652E48656967687405000000000000009404401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 7846463135313531350756697369626C6508000A5452656374616E676C650009 + 5374796C654E616D65060A76696E64696361746F7205416C69676E0706426F74 + 746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564 + 090748697454657374080C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A506F736974696F6E2E58050000000000000080 + FF3F0A506F736974696F6E2E590500000000000000F002400A53697A652E5769 + 6474680500000000000000DE06400B53697A652E486569676874050000000000 + 0000A803401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6500000007544C61796F757400095374796C654E + 616D65060668747261636B05416C69676E0708436F6E74656E74730A53697A65 2E5769647468050000000000ABAAB006400B53697A652E486569676874050000 - 0000000000C003401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F72646572023C000A5452656374616E676C650009 - 5374796C654E616D65060676747261636B05416C69676E0708436F6E74656E74 - 7307456E61626C6564080A46696C6C2E436F6C6F720709784646323032303230 - 064C6F636B6564090748697454657374080A53697A652E576964746805000000 - 00000000E006400B53697A652E48656967687405000000000000009404401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 7207097846463135313531350756697369626C6508000A5452656374616E676C - 6500095374796C654E616D65060A76696E64696361746F7205416C69676E0706 - 426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F63 - 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 - 000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D6172 - 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F - 74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000000000 - 000080FF3F0A506F736974696F6E2E590500000000000000F002400A53697A65 - 2E57696474680500000000000000DE06400B53697A652E486569676874050000 + 0000000000C003401453697A652E506C6174666F726D44656661756C7408000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0708436F6E74656E74730C436C69704368696C6472656E090A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 7454657374080A53697A652E5769647468050000000000ABAAB006400B53697A + 652E4865696768740500000000000000C003401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 + 6F6C6F72416E696D6174696F6E315374796C6507456E61626C65640908447572 + 6174696F6E0500000000000000800140044C6F6F70090C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646324138324532075472696767 + 6572060E497356697369626C653D7472756500000000005450463007544C6179 + 6F757400095374796C654E616D650611616E69696E64696361746F727374796C + 6505416C69676E070643656E7465720756697369626C65080004544172630009 + 5374796C654E616D65060341726305416C69676E0708436F6E74656E74730748 + 697454657374080D526F746174696F6E416E676C650500000000000000B40740 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F720708636C615768697465105374726F6B + 652E546869636B6E657373050000000000000080004008456E64416E676C6505 + 00000000000000B405C0000F54466C6F6174416E696D6174696F6E0009537479 + 6C654E616D650603616E6907456E61626C656409084475726174696F6E050000 + 000000000080FF3F044C6F6F70090C50726F70657274794E616D65060D526F74 + 6174696F6E416E676C650A537461727456616C75650500000000000000000000 + 0953746F7056616C75650500000000000000B407400754726967676572060E49 + 7356697369626C653D74727565000000005450463007544C61796F7574000953 + 74796C654E616D650615616E69696E64696361746F72686F727A7374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000040 + C006400B53697A652E48656967687405000000000000008000401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 + 616E676C6500095374796C654E616D65060A52656374616E676C653105416C69 + 676E0706436C69656E740C436C69704368696C6472656E090A46696C6C2E436F + 6C6F7207097846463430343034300A53697A652E576964746805000000000000 + 40C006400B53697A652E48656967687405000000000000008000401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650005544C696E6500095374796C654E616D6506054C696E6531084C696E + 65547970650706426F74746F6D0A53697A652E57696474680500000000000000 + A00B400B53697A652E48656967687405000000000000008000401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 4646324138324532105374726F6B652E546869636B6E65737305000000000000 + 008002400B5374726F6B652E44617368070444617368000F54466C6F6174416E + 696D6174696F6E00095374796C654E616D650603616E6907456E61626C656409 + 084475726174696F6E0500000000000000800340044C6F6F70090C50726F7065 + 7274794E616D65060A506F736974696F6E2E580A537461727456616C75650500 + 000000000000C808C00953746F7056616C756505000000000000000000000754 + 726967676572060E497356697369626C653D7472756500000000005450463007 + 544C61796F757400095374796C654E616D65060A70616E656C7374796C650541 + 6C69676E070643656E7465720A53697A652E57696474680500000000000000C0 + 06400B53697A652E4865696768740500000000000000A406401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 + 300A53697A652E57696474680500000000000000C006400B53697A652E486569 + 6768740500000000000000A406401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C + 61796F757400095374796C654E616D65060E6C6F67627574746F6E7374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00C005400B53697A652E4865696768740500000000000000C005401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0706436C69656E740C436C69704368696C6472656E090A436C69705061 + 72656E74090A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080A53697A652E57696474680500000000000000C005400B53697A652E + 4865696768740500000000000000C005401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E31084475726174696F6E0500000000000000000000 + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463230323032300953746F7056616C756507097846463430 + 343034300754726967676572063049734D6F7573654F7665723D747275653B49 + 73507265737365643D66616C73653B4973466F63757365643D66616C73650E54 + 726967676572496E7665727365063149734D6F7573654F7665723D66616C7365 + 3B4973507265737365643D66616C73653B4973466F63757365643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562 + 7574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463430343034300953746F7056616C75 + 6507097846463137353739430754726967676572062F4973507265737365643D + 747275653B49734D6F7573654F7665723D747275653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3308447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463241383245320953746F + 7056616C756507097846463137353739430754726967676572062E4973507265 + 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D747275650E54726967676572496E7665727365062F497350726573 + 7365643D66616C73653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D74727565000005545061746800095374796C654E616D6506055061 + 74683105416C69676E0706436C69656E7409446174612E506174680A5C020000 + 32000000000000000000A841CDCCCC40010000000000A8410000C04101000000 + 0000C03F0000C041010000000000C03F00000000010000009A99694100000000 + 010000000000A841CDCCCC40030000000000A841CDCCCC400000000000009C41 + 0000F04001000000000058410000F04001000000000058410000C03F01000000 + 000040400000C03F01000000000040400000B4410100000000009C410000B441 + 0100000000009C410000F0400300000000009C410000F0400000000000004041 + 0000F04001000000000090400000F04001000000000090400000C04001000000 + 000040410000C04001000000000040410000F04003000000000040410000F040 + 0000000000009040000010410100000000009041000010410100000000009041 + 0000284101000000000090400000284101000000000090400000104103000000 + 0000904000001041000000000000904000004041010000000000904100004041 + 0100000000009041000058410100000000009040000058410100000000009040 + 0000404103000000000090400000404100000000000090400000704101000000 + 0000904100007041010000000000904100008441010000000000904000008441 + 0100000000009040000070410300000000009040000070410000000000009040 + 00009041010000000000904100009041010000000000904100009C4101000000 + 0000904000009C41010000000000904000009041030000000000904000009041 + 00000000000070410000C04001000000333393410000C0400100000000007041 + 6666264001000000000070410000C04003000000000070410000C0400A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080C4D61726769 + 6E732E4C6566740500000000000000A002400B4D617267696E732E546F700500 + 000000000000A002400D4D617267696E732E52696768740500000000000000A0 + 02400E4D617267696E732E426F74746F6D0500000000000000A002400A53697A + 652E576964746805000000000000009805400B53697A652E4865696768740500 + 0000000000009805401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400 + 0000005450463007544C61796F757400095374796C654E616D65061470726F67 + 726573736261726D696E697374796C6505416C69676E070643656E7465720A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508000A5452656374616E676C6500095374796C654E616D + 65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E43 + 6F6C6F720709784646343034303430064C6F636B656409074869745465737408 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000009999E104401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C + 6500095374796C654E616D65060A68696E64696361746F7205416C69676E0704 + 4C6566740A46696C6C2E436F6C6F720709784646324138324532064C6F636B65 + 64090748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000009999E104401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0000000A5452656374616E676C6500095374796C654E616D6506067674726163 + 6B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 + 46343034303430064C6F636B6564090748697454657374080A53697A652E5769 + 64746805000000000033338505400B53697A652E486569676874050000000000 + 9999E104401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C65 + 4E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46 + 696C6C2E436F6C6F720709784646324138324532064C6F636B65640907486974 + 54657374080A506F736974696F6E2E5905000000000099998D04400A53697A65 + 2E576964746805000000000033338505400B53697A652E486569676874050000 0000000000A803401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6500000007544C61796F75740009537479 - 6C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A53 - 697A652E5769647468050000000000ABAAB006400B53697A652E486569676874 - 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 - 08000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 - 6F756E6405416C69676E0708436F6E74656E74730C436C69704368696C647265 - 6E090A46696C6C2E436F6C6F720709784646324138324532064C6F636B656409 - 0748697454657374080A53697A652E5769647468050000000000ABAAB006400B - 53697A652E4865696768740500000000000000C003401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 31353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0614436F6C6F72416E696D6174696F6E315374796C6507456E61626C65640908 - 4475726174696F6E0500000000000000800140044C6F6F70090C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463230323032300953746F7056616C75650709784646324138324532075472 - 6967676572060E497356697369626C653D747275650000000000545046300754 - 4C61796F757400095374796C654E616D650611616E69696E64696361746F7273 - 74796C6505416C69676E070643656E7465720756697369626C65080004544172 - 6300095374796C654E616D65060341726305416C69676E0708436F6E74656E74 - 730748697454657374080D526F746174696F6E416E676C650500000000000000 - B407400A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000000000C804401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F720708636C615768697465105374 - 726F6B652E546869636B6E657373050000000000000080004008456E64416E67 - 6C650500000000000000B405C0000F54466C6F6174416E696D6174696F6E0009 - 5374796C654E616D650603616E6907456E61626C656409084475726174696F6E - 050000000000000080FF3F044C6F6F70090C50726F70657274794E616D65060D - 526F746174696F6E416E676C650A537461727456616C75650500000000000000 - 0000000953746F7056616C75650500000000000000B407400754726967676572 - 060E497356697369626C653D74727565000000005450463007544C61796F7574 - 00095374796C654E616D650615616E69696E64696361746F72686F727A737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 000040C006400B53697A652E4865696768740500000000000000800040145369 - 7A652E506C6174666F726D44656661756C74080756697369626C6508000A5452 - 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 - 416C69676E0706436C69656E740C436C69704368696C6472656E090A46696C6C - 2E436F6C6F7207097846463430343034300A53697A652E576964746805000000 - 00000040C006400B53697A652E48656967687405000000000000008000401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E650005544C696E6500095374796C654E616D6506054C696E653108 - 4C696E65547970650706426F74746F6D0A53697A652E57696474680500000000 - 000000A00B400B53697A652E4865696768740500000000000000800040145369 - 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 0709784646324138324532105374726F6B652E546869636B6E65737305000000 - 000000008002400B5374726F6B652E44617368070444617368000F54466C6F61 - 74416E696D6174696F6E00095374796C654E616D650603616E6907456E61626C - 656409084475726174696F6E0500000000000000800340044C6F6F70090C5072 - 6F70657274794E616D65060A506F736974696F6E2E580A537461727456616C75 - 650500000000000000C808C00953746F7056616C756505000000000000000000 - 000754726967676572060E497356697369626C653D7472756500000000005450 - 463007544C61796F757400095374796C654E616D65060A70616E656C7374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 0000C006400B53697A652E4865696768740500000000000000A406401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508000A545265 - 6374616E676C6500095374796C654E616D65060A6261636B67726F756E640541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230 - 323032300A53697A652E57696474680500000000000000C006400B53697A652E - 4865696768740500000000000000A406401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054504630 - 07544C61796F757400095374796C654E616D65060E6C6F67627574746F6E7374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000C005400B53697A652E4865696768740500000000000000C005401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F726465720201000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0706436C69656E740C436C69704368 - 696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F720709 - 7846463230323032300748697454657374080A53697A652E5769647468050000 - 0000000000C005400B53697A652E4865696768740500000000000000C0054014 + 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 + 00095374796C654E616D65061B7472656576696577657870616E646572627574 + 746F6E7374796C6505416C69676E070643656E7465720B4D617267696E732E54 + 6F70050000000000000080FF3F0A53697A652E57696474680500000000000000 + B003400B53697A652E4865696768740500000000000000B003401453697A652E + 506C6174666F726D44656661756C74080756697369626C650800055450617468 + 00095374796C654E616D650605506174683105416C69676E070643656E746572 + 09446174612E506174680A3400000004000000000000000000C8420000C84201 + 000000000096430000C842010000000000484300009643030000000000C84200 + 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 + 080D526F746174696F6E416E676C650500000000000000B405C00A53697A652E + 57696474680500000000000000A002400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E + 00095374796C654E616D650614466C6F6174416E696D6174696F6E315374796C + 65084475726174696F6E05000000000000000000000D496E746572706F6C6174 + 696F6E070843697263756C61720C50726F70657274794E616D65060D526F7461 + 74696F6E416E676C650A537461727456616C75650500000000000000B405C009 + 53746F7056616C756505000000000000000000000754726967676572060F4973 + 457870616E6465643D747275650E54726967676572496E766572736506104973 + 457870616E6465643D66616C736500000000545046300A5452656374616E676C + 6500095374796C654E616D65061174726565766965776974656D7374796C6505 + 416C69676E070643656E7465720946696C6C2E4B696E6407044E6F6E65074869 + 7454657374080553696465730B06426F74746F6D000A53697A652E5769647468 + 0500000000000000AE05400B53697A652E4865696768740500000000000000A0 + 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F7207097846463135313531350756697369626C6508000C5453706565 + 64427574746F6E00095374796C654E616D650606627574746F6E05416C69676E + 07044C6566740A53697A652E57696474680500000000000000A003400B53697A + 652E4865696768740500000000000000A004401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B7570061B747265657669657765 + 7870616E646572627574746F6E7374796C65000007544C61796F75740005416C + 69676E0708436F6E74656E74730C4D617267696E732E4C656674050000000000 + 0000A003400A53697A652E576964746805000000000000008605400B53697A65 + 2E4865696768740500000000000000A004401453697A652E506C6174666F726D + 44656661756C7408000954436865636B426F7800095374796C654E616D650605 + 636865636B05416C69676E07044C6566740843616E466F637573081244697361 + 626C65466F637573456666656374090A53697A652E5769647468050000000000 + 0000A003400B53697A652E4865696768740500000000000000A004401453697A + 652E506C6174666F726D44656661756C740800000654476C7970680009537479 + 6C654E616D65060A676C7970687374796C650C4D617267696E732E4C65667405 + 000000000000008000400B4D617267696E732E546F70050000000000000080FF + 3F0D4D617267696E732E526967687405000000000000008000400E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F05416C69676E07044C656674 + 0A506F736974696F6E2E580500000000000000B003400A506F736974696F6E2E + 59050000000000000080FF3F0A53697A652E5769647468050000000000000080 + 03400B53697A652E48656967687405000000000000009804401453697A652E50 + 6C6174666F726D44656661756C7408000005545465787400095374796C654E61 + 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 + 697454657374080A53697A652E57696474680500000000000000BC04400B5369 + 7A652E4865696768740500000000000000A004401453697A652E506C6174666F + 726D44656661756C74080454657874060454657874165465787453657474696E + 67732E466F6E74436F6C6F720708636C61576869746515546578745365747469 + 6E67732E576F72645772617008165465787453657474696E67732E486F727A41 + 6C69676E07074C656164696E670000000A5452656374616E676C650005416C69 + 676E07074669744C6566740946696C6C2E4B696E6407044E6F6E650748697454 + 657374080E4D617267696E732E426F74746F6D050000000000000080FF3F0553 + 696465730B044C656674000A53697A652E5769647468050000000000986F8905 + 400B53697A652E48656967687405000000000000009C04401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 324138324532105374726F6B652E546869636B6E657373050000000000000080 + 00400000005450463007544C61796F757400095374796C654E616D65060D7472 + 6565766965777374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000E106400B53697A652E4865696768740500000000 + 0000808107401453697A652E506C6174666F726D44656661756C740807566973 + 69626C6508000C5442727573684F626A65637400095374796C654E616D650618 + 416C7465726E6174696E67526F774261636B67726F756E640B42727573682E43 + 6F6C6F72070978304646464646464600000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 + 090748697454657374080C50616464696E672E4C656674050000000000000080 + FF3F0D50616464696E672E5269676874050000000000000080FF3F0A53697A65 + 2E57696474680500000000000000E106400B53697A652E486569676874050000 + 00000000808107401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F7207097846463135313531350007544C61796F757400 + 095374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E + 740C436C69704368696C6472656E090B4D617267696E732E546F700500000000 + 00000080FF3F0A53697A652E57696474680500000000000000CD06400B53697A + 652E4865696768740500000000000000F006401453697A652E506C6174666F72 + 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 + 060973656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245 + 320748697454657374080A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000A5452656374616E676C6500095374796C654E616D650610666F6375736564 + 73656C656374696F6E0A46696C6C2E436F6C6F72070978464632413832453207 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374 + 726F6B652E446173680703446F740000000A545363726F6C6C42617200095374 + 796C654E616D65060A767363726F6C6C62617205416C69676E07055269676874 + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 + 00008000400A506F736974696F6E2E580500000000000000D006400A53697A65 + 2E576964746805000000000000008003400B53697A652E486569676874050000 + 0000000000F106401453697A652E506C6174666F726D44656661756C74080000 + 0A545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C62 + 617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505000000 + 000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B + 4D617267696E732E546F7005000000000000008000400A506F736974696F6E2E + 58050000000000000080FF3F0A506F736974696F6E2E590500000000000000F3 + 06400A53697A652E57696474680500000000000000DF06400B53697A652E4865 + 6967687405000000000000008003401453697A652E506C6174666F726D446566 + 61756C740800000F54536D616C6C5363726F6C6C42617200095374796C654E61 + 6D65060F76736D616C6C7363726F6C6C62617205416C69676E07055269676874 + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 + 00008000400A506F736974696F6E2E580500000000000000C605400A506F7369 + 74696F6E2E5905000000000000008000400A53697A652E576964746805000000 + 000000008002400B53697A652E48656967687405000000000000008002401453 + 697A652E506C6174666F726D44656661756C74080756697369626C650800000F + 54536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D61 + 6C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C43 + 68616E676505000000000000000000000B4F7269656E746174696F6E070A486F + 72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A + 506F736974696F6E2E5805000000000000008000400A506F736974696F6E2E59 + 0500000000000000E205400A53697A652E576964746805000000000000009606 + 400B53697A652E48656967687405000000000000008002401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000000005450463007 + 544C61796F757400095374796C654E616D650619616374696F6E746F6F6C6275 + 74746F6E6D756C74697669657705416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000C805400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F72646572027C0B46697865644865696768740232 + 000654476C79706800095374796C654E616D65060A676C7970687374796C650C + 4D617267696E732E4C65667405000000000000009002400B4D617267696E732E + 546F7005000000000000009002400E4D617267696E732E426F74746F6D050000 + 000000000090024005416C69676E07044C6566740A506F736974696F6E2E5805 + 000000000000009002400A506F736974696F6E2E590500000000000000900240 + 0A53697A652E576964746805000000000000008004400B53697A652E48656967 + 687405000000000000008004401453697A652E506C6174666F726D4465666175 + 6C740800000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080C4D617267696E732E4C6566740500000000 + 000000C804C00A53697A652E57696474680500000000000000C805400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463230323032300953746F7056616C75650709784646 + 3430343034300754726967676572063049734D6F7573654F7665723D74727565 + 3B4973507265737365643D66616C73653B4973466F63757365643D66616C7365 + 0E54726967676572496E7665727365063149734D6F7573654F7665723D66616C + 73653B4973507265737365643D66616C73653B4973466F63757365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463241383245320953746F705661 + 6C756507097846463137353739430754726967676572062E4973507265737365 + 643D747275653B49734D6F7573654F7665723D747275653B4973466F63757365 + 643D747275650E54726967676572496E7665727365062F497350726573736564 + 3D66616C73653B49734D6F7573654F7665723D747275653B4973466F63757365 + 643D7472756500000005545465787400095374796C654E616D65060474657874 + 05416C69676E0706436C69656E740748697454657374080A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F720708636C615768697465000007544C + 61796F757400095374796C654E616D6506074C61796F75743205416C69676E07 + 044C6566740A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080005545061746800095374796C654E616D65060469636F6E + 05416C69676E070643656E74657209446174612E506174680A18010000170000 + 00000000000000C03F0000C03F01000000000000000000000001000000000040 + 4000000000010000000000C03F0000C03F030000000000C03F0000C03F000000 + 0000009040000000000100000000004041000000000100000000004041CDCC4C + 3F0100000000009040CDCC4C3F01000000000090400000000003000000000090 + 4000000000000000000000904033337340010000000000904000004040010000 + 0000004041000040400100000000004041333373400100000000009040333373 + 4003000000000090403333734000000000000090409A99D94001000000000090 + 400000C04001000000000040410000C04001000000000040419A99D940010000 + 00000090409A99D94003000000000090409A99D9400A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080A53697A652E57696474680500 + 000000000000D003400B53697A652E4865696768740500000000000000E00340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6508577261704D6F6465070346697400000000545046300754 + 4C61796F757400095374796C654E616D65060E616464627574746F6E7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C003401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 72646572027E0B46697865644865696768740218000654476C79706800095374 + 796C654E616D65060A676C7970687374796C650C4D617267696E732E4C656674 + 05000000000000009002400B4D617267696E732E546F70050000000000000090 + 02400E4D617267696E732E426F74746F6D050000000000000090024005416C69 + 676E07044C6566740A506F736974696F6E2E5805000000000000009002400A50 + 6F736974696F6E2E5905000000000000009002400A53697A652E576964746805 + 000000000000008004400B53697A652E48656967687405000000000000008004 + 401453697A652E506C6174666F726D44656661756C740800000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080C4D617267696E732E4C6566740500000000000000C003C00A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C003401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F + 6E31084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646343034303430075472696767 + 6572063049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73653B4973466F63757365643D66616C73650E54726967676572496E7665 + 727365063149734D6F7573654F7665723D66616C73653B497350726573736564 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E33084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463241383245320953746F7056616C7565070978464631373537 + 39430754726967676572062E4973507265737365643D747275653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D747275650E5472696767 + 6572496E7665727365062F4973507265737365643D66616C73653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D74727565000000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E740748697454657374080A53697A652E576964746805000000000000009805 + 400B53697A652E4865696768740500000000000000C003401453697A652E506C + 6174666F726D44656661756C7408045465787406045465787416546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000007544C61 + 796F757400095374796C654E616D6506074C61796F75743205416C69676E0704 + 4C6566740A53697A652E57696474680500000000000000C003400B53697A652E + 4865696768740500000000000000C003401453697A652E506C6174666F726D44 + 656661756C74080005545061746800095374796C654E616D65060469636F6E05 + 416C69676E0708436F6E74656E747309446174612E506174680AAC0000000E00 + 000000000000CDCC34410000C040010000000000C0400000C040010000000000 + C040CDCC3441010000009A99A940CDCC3441010000009A99A9400000C0400100 + 0000000000000000C04001000000000000009A99A940010000009A99A9409A99 + A940010000009A99A94000000000010000000000C04000000000010000000000 + C0409A99A94001000000CDCC34419A99A94001000000CDCC34410000C0400300 + 0000CDCC34410000C0400A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080C4D617267696E732E4C6566740500000000000000800140 + 0B4D617267696E732E546F7005000000000000008001400D4D617267696E732E + 526967687405000000000000008001400E4D617267696E732E426F74746F6D05 + 000000000000008001400A53697A652E57696474680500000000000000800340 + 0B53697A652E48656967687405000000000000008003401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508 + 577261704D6F64650703466974000000005450463007544C61796F7574000953 + 74796C654E616D650617696E666F746F6F6C627574746F6E6D756C7469766965 + 7705416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 72646572027B0B46697865644865696768740232000654476C79706800095374 + 796C654E616D65060A676C7970687374796C650C4D617267696E732E4C656674 + 05000000000000009002400B4D617267696E732E546F70050000000000000090 + 02400E4D617267696E732E426F74746F6D050000000000000090024005416C69 + 676E07044C6566740A506F736974696F6E2E5805000000000000009002400A50 + 6F736974696F6E2E5905000000000000009002400A53697A652E576964746805 + 000000000000008004400B53697A652E48656967687405000000000000008004 + 401453697A652E506C6174666F726D44656661756C740800000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080C4D617267696E732E4C6566740500000000000000C804C00A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F + 6E31084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646343034303430075472696767 + 6572063049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73653B4973466F63757365643D66616C73650E54726967676572496E7665 + 727365063149734D6F7573654F7665723D66616C73653B497350726573736564 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E33084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463241383245320953746F7056616C7565070978464631373537 + 39430754726967676572062E4973507265737365643D747275653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D747275650E5472696767 + 6572496E7665727365062F4973507265737365643D66616C73653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D74727565000000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E740748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C7408045465787406045465787416546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000007544C61 + 796F757400095374796C654E616D6506074C61796F75743205416C69676E0704 + 4C6566740A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080005545061746800095374796C654E616D65060469636F6E05 + 416C69676E070643656E74657209446174612E506174680A84070000A0000000 + 000000009A9987429A99074302000000010076429A9907430200000001005E42 + CDCC064302000000343347423433054302000000010030429A99034302000000 + 67661A42CE4C01430200000067660642CECCFC4202000000CECCE4410100F742 + 020000000100C041CECCEF420200000034339F419B99E74202000000CECC7C41 + 6866DF4202000000353343413533D64202000000CECC14413533CC4202000000 + 9A99C9400000C24202000000000080403333B742020000009A991940CDCCAB42 + 02000000CDCC4C3F3333A0420200000000000000333394420200000000000000 + 9A99874202000000000000000100764202000000CDCC4C3F01005E4202000000 + 9A991940CECC4642020000000000804000003042020000009A99C94066661A42 + 020000003333134166660642020000009A994141CCCCE4410200000033337B41 + FFFFBF410200000066669E4132339F41020000003333BF41CACC7C4102000000 + 0000E441313343410200000000000642CACC14410200000066661A429A99C940 + 02000000000030420000804002000000333347429A9919400200000000005E42 + CDCC4C3F020000006666764200000000020000009A9987420000000002000000 + 3433944200000000020000003433A042CDCC4C3F02000000CDCCAB429A991940 + 020000003333B74200008040020000000000C2429A99C940020000003333CC42 + 33331341020000003333D6429A994141020000006666DF4233337B4102000000 + 9999E74266669E4102000000CCCCEF423333BF4102000000FFFFF6420000E441 + 02000000CCCCFC420000064202000000CC4C014300001A420200000099990343 + 9A992F420200000033330543CDCC464202000000CDCC064300005E4202000000 + 999907430000764202000000999907439A998742020000009999074334339442 + 02000000CCCC06433433A0420200000033330543CDCCAB420200000099990343 + 6766B74202000000CD4C01433333C24202000000CCCCFC423433CC4202000000 + FFFFF6423433D64202000000CCCCEF426766DF42020000009999E7429A99E742 + 020000006666DF42CDCCEF42020000003333D6420000F742020000003333CC42 + CDCCFC42020000003333C242CD4C0143020000006666B7429A99034302000000 + CCCCAB4233330543020000003333A042CDCC064302000000333394429A990743 + 020000009A9987429A990743030000009A9987429A990743000000009A998742 + 00001041020000009A9979420000104102000000CECC644233331B4102000000 + CECC50429A99314102000000CECC3C42000048410200000001002A4200006841 + 02000000CECC184200008841020000003433074200009C41020000003633EF41 + CDCCB441020000006966D2419A99D141020000009C99B5416766EE4102000000 + 9C999D41CDCC064202000000D0CC88416666184202000000A099694100002A42 + 02000000A099494166663C42020000003A333341CCCC50420200000033331B41 + 33336542020000000000104100007A4202000000000010419A99874202000000 + 00001041343392420200000033331B41CDCC9C42020000009A993141CDCCA642 + 0200000000004841CDCCB04202000000000068413333BA420200000000008841 + 0000C3420200000000009C41CDCCCB4202000000CDCCB4419A99D34202000000 + 9A99D141CDCCDA42020000006766EE410000E24202000000CDCC06420000E842 + 02000000666618423333ED420200000000002A423333F2420200000066663C42 + 3333F64202000000666650420000F9420200000066666442CDCCFB4202000000 + 333379423333FD4202000000666687423333FD4202000000333392423333FD42 + 0200000099999C42CDCCFB42020000009999A6420000F942020000009999B042 + 3333F64202000000FFFFB9423333F24202000000CCCCC2423333ED4202000000 + 9999CB423333E842020000006666D3420000E242020000009999DA42CDCCDA42 + 02000000CCCCE1429A99D34202000000CCCCE742CDCCCB4202000000FFFFEC42 + 0000C34202000000FFFFF1423333BA4202000000FFFFF5420000B14202000000 + CCCCF8420000A742020000009999FB4200009D4202000000FFFFFC429A999242 + 02000000FFFFFC42CDCC874202000000FFFFFC4200007A42020000009999FB42 + 3433654202000000CCCCF8423433514202000000FFFFF54234333D4202000000 + FFFFF14267662A4202000000FFFFEC42CECC184202000000FFFFE74234330742 + 02000000CCCCE1423633EF41020000009999DA426966D241020000006666D342 + 9C99B541020000009999CB429C999D4102000000CCCCC242D0CC884102000000 + FFFFB942A099694102000000CCCCB042A0994941020000009999A6423A333341 + 02000000CDCC9C4233331B41020000006666924200001041020000009A998742 + 00001041030000009A998742000010410000000033337D42CDCC104201000000 + 9A999042CDCC1042010000009A999042CDCC34420100000034337D42CDCC3442 + 0100000034337D42CDCC10420300000033337D42CDCC10420000000033337D42 + 33335942010000009A99904233335942010000009A9990420000C74201000000 + 34337D420000C7420100000034337D42333359420300000033337D4233335942 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A53 + 697A652E57696474680500000000000000D003400B53697A652E486569676874 + 0500000000000000E003401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 + 74000000005450463007544C61796F757400095374796C654E616D65061B6F72 + 67616E697A65746F6F6C627574746F6E6D756C74697669657705416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F7264657202790B46 + 697865644865696768740232000654476C79706800095374796C654E616D6506 + 0A676C7970687374796C650C4D617267696E732E4C6566740500000000000000 + 9002400B4D617267696E732E546F7005000000000000009002400E4D61726769 + 6E732E426F74746F6D050000000000000090024005416C69676E07044C656674 + 0A506F736974696F6E2E5805000000000000009002400A506F736974696F6E2E + 5905000000000000009002400A53697A652E5769647468050000000000000080 + 04400B53697A652E48656967687405000000000000008004401453697A652E50 + 6C6174666F726D44656661756C740800000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E + 740C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C + 2E436F6C6F7207097846463230323032300748697454657374080C4D61726769 + 6E732E4C6566740500000000000000C804C00A53697A652E5769647468050000 + 0000000000C805400B53697A652E4865696768740500000000000000C8044014 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E 6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E 616D650615627574746F6E436F6C6F72416E696D6174696F6E31084475726174 @@ -10190,74 +10617,250 @@ object MainForm: TMainForm 6F7573654F7665723D66616C73653B4973507265737365643D66616C73653B49 73466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F - 6E32084475726174696F6E05000000000000000000000C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464634 - 30343034300953746F7056616C75650709784646313735373943075472696767 - 6572062F4973507265737365643D747275653B49734D6F7573654F7665723D74 - 7275653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 - 6D6174696F6E33084475726174696F6E05000000000000000000000C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463241383245320953746F7056616C7565070978464631373537394307 - 54726967676572062E4973507265737365643D747275653B49734D6F7573654F - 7665723D747275653B4973466F63757365643D747275650E5472696767657249 - 6E7665727365062F4973507265737365643D66616C73653B49734D6F7573654F - 7665723D747275653B4973466F63757365643D74727565000005545061746800 - 095374796C654E616D650605506174683105416C69676E0706436C69656E7409 - 446174612E506174680A5C02000032000000000000000000A841CDCCCC400100 - 00000000A8410000C041010000000000C03F0000C041010000000000C03F0000 - 0000010000009A99694100000000010000000000A841CDCCCC40030000000000 - A841CDCCCC400000000000009C410000F04001000000000058410000F0400100 - 0000000058410000C03F01000000000040400000C03F01000000000040400000 - B4410100000000009C410000B4410100000000009C410000F040030000000000 - 9C410000F04000000000000040410000F04001000000000090400000F0400100 - 0000000090400000C04001000000000040410000C04001000000000040410000 - F04003000000000040410000F040000000000000904000001041010000000000 - 9041000010410100000000009041000028410100000000009040000028410100 - 0000000090400000104103000000000090400000104100000000000090400000 - 4041010000000000904100004041010000000000904100005841010000000000 - 9040000058410100000000009040000040410300000000009040000040410000 - 0000000090400000704101000000000090410000704101000000000090410000 - 8441010000000000904000008441010000000000904000007041030000000000 - 9040000070410000000000009040000090410100000000009041000090410100 - 00000000904100009C41010000000000904000009C4101000000000090400000 - 904103000000000090400000904100000000000070410000C040010000003333 - 93410000C04001000000000070416666264001000000000070410000C0400300 - 0000000070410000C0400A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080C4D617267696E732E4C6566740500000000000000A00240 - 0B4D617267696E732E546F700500000000000000A002400D4D617267696E732E - 52696768740500000000000000A002400E4D617267696E732E426F74746F6D05 - 00000000000000A002400A53697A652E57696474680500000000000000980540 - 0B53697A652E48656967687405000000000000009805401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508 - 577261704D6F64650703466974000000005450463007544C61796F7574000953 - 74796C654E616D65061470726F67726573736261726D696E697374796C650541 - 6C69676E070643656E7465720A53697A652E5769647468050000000000333385 - 05400B53697A652E4865696768740500000000009999E104401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 720219000A5452656374616E676C6500095374796C654E616D65060668747261 - 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 - 4646343034303430064C6F636B6564090748697454657374080A53697A652E57 - 6964746805000000000033338505400B53697A652E4865696768740500000000 - 009999E104401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C - 654E616D65060A68696E64696361746F7205416C69676E07044C6566740A4669 - 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 - 657374080A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000009999E104401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A545265 - 6374616E676C6500095374796C654E616D65060676747261636B05416C69676E - 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430 - 064C6F636B6564090748697454657374080A53697A652E576964746805000000 - 000033338505400B53697A652E4865696768740500000000009999E104401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000A5452656374616E676C6500095374796C654E616D65060A76 - 696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C - 6F720709784646324138324532064C6F636B6564090748697454657374080A50 - 6F736974696F6E2E5905000000000099998D04400A53697A652E576964746805 - 000000000033338505400B53697A652E4865696768740500000000000000A803 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6500000000} + 6E33084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 41383245320953746F7056616C75650709784646313735373943075472696767 + 6572062E4973507265737365643D747275653B49734D6F7573654F7665723D74 + 7275653B4973466F63757365643D747275650E54726967676572496E76657273 + 65062F4973507265737365643D66616C73653B49734D6F7573654F7665723D74 + 7275653B4973466F63757365643D747275650000000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C615768697465000007544C61796F757400095374796C654E616D6506074C61 + 796F75743205416C69676E07044C6566740A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C7408000554506174680009537479 + 6C654E616D65060469636F6E05416C69676E070643656E74657209446174612E + 506174680AD000000011000000000000009A99E9409A99C94001000000666666 + 4066661E4101000000000000009A99C940010000000000003F9A99B940010000 + 00CDCC4C409A99094101000000CDCC4C40000000000100000000008040000000 + 00010000000000804000000841010000006666D6406666B640010000009A99E9 + 409A99C940030000009A99E9409A99C940000000009A99993E00004041010000 + 009A99993E33333341010000000000E04033333341010000000000E040000040 + 41010000009A99993E00004041030000009A99993E000040410A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080A53697A652E576964 + 74680500000000000000D003400B53697A652E48656967687405000000000000 + 00E003401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6508577261704D6F64650703466974000000005450 + 463007544C61796F757400095374796C654E616D65061B73657474696E677374 + 6F6F6C627574746F6E6D756C74697669657705416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F72646572027A0B4669786564486569 + 6768740232000654476C79706800095374796C654E616D65060A676C79706873 + 74796C650C4D617267696E732E4C65667405000000000000009002400B4D6172 + 67696E732E546F7005000000000000009002400E4D617267696E732E426F7474 + 6F6D050000000000000090024005416C69676E07044C6566740A506F73697469 + 6F6E2E5805000000000000009002400A506F736974696F6E2E59050000000000 + 00009002400A53697A652E576964746805000000000000008004400B53697A65 + 2E48656967687405000000000000008004401453697A652E506C6174666F726D + 44656661756C740800000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0706436C69656E740C436C697043 + 68696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080C4D617267696E732E4C656674 + 0500000000000000C804C00A53697A652E57696474680500000000000000C805 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463230323032300953746F7056616C7565 + 07097846463430343034300754726967676572063049734D6F7573654F766572 + 3D747275653B4973507265737365643D66616C73653B4973466F63757365643D + 66616C73650E54726967676572496E7665727365063149734D6F7573654F7665 + 723D66616C73653B4973507265737365643D66616C73653B4973466F63757365 + 643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E330844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463241383245320953 + 746F7056616C756507097846463137353739430754726967676572062E497350 + 7265737365643D747275653B49734D6F7573654F7665723D747275653B497346 + 6F63757365643D747275650E54726967676572496E7665727365062F49735072 + 65737365643D66616C73653B49734D6F7573654F7665723D747275653B497346 + 6F63757365643D7472756500000005545465787400095374796C654E616D6506 + 047465787405416C69676E0706436C69656E740748697454657374080A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C740804 + 54657874060454657874165465787453657474696E67732E466F6E74436F6C6F + 720708636C615768697465000007544C61796F757400095374796C654E616D65 + 06074C61796F75743205416C69676E07044C6566740A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080005545061746800 + 095374796C654E616D65060469636F6E05416C69676E070643656E7465720944 + 6174612E506174680A540D00001C01000000000000333351423333E741020000 + 0033335142CDCCE84102000000333351426666EA4102000000333351423333EB + 410200000033335142CDCCEC4102000000333351426666EE4102000000333351 + 423333EF410200000033335142CDCCF04102000000333351426666F241020000 + 00333351423333F3410200000033335142CDCCF44102000000333351426666F6 + 4102000000333351423333F7410100000099996F4266660E4201000000CDCC5C + 4200003C420100000000003A4200003442020000000000384200003642020000 + 000000364200003842020000000000344200003A420100000000003C42CDCC5C + 4201000000CDCC0E429A996F42010000000000F84133335142020000006666F6 + 413333514202000000CDCCF44133335142020000000000F44133335142020000 + 006666F2413333514202000000CDCCF04133335142020000000000F041333351 + 42020000006666EE413333514202000000CDCCEC4133335142020000000000EC + 4133335142020000006666EA413333514202000000CDCCE84133335142020000 + 000000E84133335142010000006666C24199996F4201000000FFFF4F41CCCC5C + 4201000000FFFF6F41FFFF394202000000FFFF6741FFFF374202000000FFFF5F + 41FFFF354202000000FFFF5741FFFF33420100000098999940FFFF3B42010000 + 0000000000CDCC0E42010000003333F3400000F841020000003333F3406666F6 + 41020000003333F340CDCCF441020000003333F3400000F441020000003333F3 + 406666F241020000003333F340CDCCF041020000003333F3400000F041020000 + 003333F3406666EE41020000003333F340CDCCEC41020000003333F3400000EC + 41020000003333F3406666EA41020000003333F340CDCCE841020000003333F3 + 400000E8410100000000000000CDCCC0410100000066669640CDCC4C41010000 + 0066665641CDCC6C410200000066665E41CDCC64410200000066666641CDCC5C + 410200000066666E41CDCC54410100000066664E413433934001000000CDCCC0 + 4100000000010000006666E6413333F340020000000000E8413333F340020000 + 009999E9413333F340020000006666EA413333F340020000000000EC413333F3 + 40020000009999ED413333F340020000006666EE413333F340020000000000F0 + 413333F340020000009999F1413333F340020000006666F2413333F340020000 + 000000F4413333F340020000009999F5413333F340020000006666F6413333F3 + 4001000000CDCC0E42000000000100000000003C426666964001000000000034 + 4266665641020000000000364266665E41020000000000384266666641020000 + 0000003A4266666E4101000000CDCC5C4266664E41010000009A996F429A99C1 + 4101000000333351423333E74103000000333351423333E74100000000333343 + 42CDCC02420200000033334342CDCC004202000000999943426766FE41020000 + 00999943426766FA4102000000999943426766F64102000000FFFF43423433F3 + 4102000000FFFF43423433EF4102000000FFFF43423433EB4102000000FFFF43 + 420100E84102000000999943420100E44102000000999943420100E041020000 + 0033334342CECCDC410200000033334342CECCD84101000000CDCC5E426866B6 + 4101000000CDCC54429B99854101000000CDCC3442CECC944102000000676632 + 4234338F4102000000000030429B9989410200000033332D4201008441020000 + 0066662A42CECC7C4102000000000028423533734102000000CDCC24429C9969 + 410100000067662C423833D34001000000010014423833834001000000676602 + 4202003041020000006766004202003041020000009B99FD4168662E41020000 + 009B99F94168662E41020000009B99F54168662E41020000006866F241CECC2C + 41020000006866EE41CECC2C41020000006866EA41CECC2C41020000003533E7 + 41CECC2C41020000003533E34168662E41020000003533DF4168662E41020000 + 000200DC4102003041020000000200D84102003041010000009C99B541373383 + 4001000000CFCC84413733D34001000000020094419C9969410200000068668E + 413633734102000000CFCC8841CFCC7C41020000003533834101008441020000 + 0036337B419A998941020000009D99714167668E410200000004006841CECC94 + 41010000000800D0409B99854101000000080080406866B641010000006A662E + 419B99D941020000006A662E419B99DD4102000000D0CC2C41CECCE041020000 + 00D0CC2C41CECCE44102000000D0CC2C41CECCE8410200000036332B410100EC + 410200000036332B410100F0410200000036332B410100F4410200000036332B + 413433F74102000000D0CC2C413433FB4102000000D0CC2C413433FF41020000 + 006A662E4134330142020000006A662E41343303420100000007008040676614 + 42010000000700D040CDCC2C42010000000400684133332542020000009E9971 + 41000028420200000037337B41CDCC2A42020000003533834199992D42020000 + 00CECC884165663042020000009B998D41CCCC32420200000002009441333335 + 4201000000CFCC844133335542010000009C99B54133335F4201000000CFCCD8 + 419999434202000000CFCCDC4199994342020000000200E041FFFF4342020000 + 000200E441FFFF4342020000000200E841FFFF4342020000003533EB41656644 + 42020000003533EF4165664442020000003533F34165664442020000006866F6 + 4165664442020000006866FA41FFFF4342020000006866FE41FFFF4342020000 + 00CECC00429999434202000000CECC024299994342010000000100144233335F + 420100000067662C423333554201000000CDCC244233333542020000009A9927 + 42CDCC32420200000067662A42666630420200000033332D4299992D42020000 + 00FFFF2F42CCCC2A4202000000666632426666284202000000CDCC3442333325 + 4201000000CDCC5442CDCC2C4201000000CDCC5E426766144201000000333343 + 42CDCC02420300000033334342CDCC0242000000003333EF4133339741020000 + 003333FB4133339741020000009A9903429999994102000000CDCC084266669E + 410200000000000E423333A34102000000CDCC12429999A94102000000CDCC16 + 429999B14102000000CDCC1A429999B9410200000000001E423333C341020000 + 00676620429999CD4102000000CDCC2242FFFFD7410200000001002442FFFFE3 + 4102000000010024420000F04102000000010024420100FC4102000000CECC22 + 42000004420200000067662042333309420200000001001E4266660E42020000 + 00CDCC1A423333134202000000CDCC16423333174202000000CDCC124233331B + 420200000000000E4266661E4202000000CDCC0842CDCC2042020000009A9903 + 4233332342020000003433FB4167662442020000003433EF4167662442020000 + 003433E34167662442020000003433D7413433234202000000CECCCC41CDCC20 + 42020000006866C24167661E4202000000CECCB84133331B4202000000CECCB0 + 413333174202000000CECCA84133331342020000006866A24166660E42020000 + 009B999D413333094202000000CECC98410000044202000000686696410000FC + 4102000000686696410000F04102000000686696410000E44102000000CECC98 + 410000D841020000009B999D419A99CD41020000006866A2413433C341020000 + 00CECCA8419A99B94102000000CECCB0419A99B14102000000CECCB8419A99A9 + 41020000006866C2413433A34102000000CECCCC4167669E41020000000000D8 + 419A999941020000003333E34133339741020000003333EF4133339741030000 + 003333EF4133339741000000003333EF41CDCC1642020000000000F841CDCC16 + 42020000000000004200001642020000009A9903426766144202000000343307 + 42CDCC124202000000CDCC0A4267661042020000009A990D429A990D42020000 + 0067661042CDCC0A4202000000CDCC12429A99074202000000676614429A9903 + 4202000000010016420000004202000000CDCC16423433F74102000000CDCC16 + 423433EF4102000000CDCC16426766E64102000000000016426766DE41020000 + 00676614423433D74102000000CDCC12420100D0410200000067661042CECCC8 + 41020000009A990D423433C34102000000CDCC0A429A99BD41020000009A9907 + 42CECCB841020000009A9903429A99B54102000000000000426766B241020000 + 003433F741CDCCB041020000003433EF41CDCCB041020000006766E641CDCCB0 + 41020000006766DE416766B241020000003433D7419A99B541020000000100D0 + 41CDCCB84102000000CECCC8419A99BD41020000003433C3413433C341020000 + 009A99BD41CECCC84102000000CECCB8413433CF41020000009A99B5413433D7 + 41020000006766B2416766DE4102000000CDCCB0413433E74102000000CDCCB0 + 413433EF4102000000CDCCB0410100F841020000006766B24100000042020000 + 009A99B5419A99034202000000CDCCB84134330742020000009A99BD41CDCC0A + 42020000003433C3419A990D4202000000CECCC84167661042020000003433CF + 41CDCC1242020000003433D74167661442020000003333DF4100001642020000 + 003333E741CDCC1642020000003333EF41CDCC1642030000003333EF41CDCC16 + 420A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A + 53697A652E57696474680500000000000000D003400B53697A652E4865696768 + 740500000000000000E003401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346 + 6974000000005450463007544C61796F757400095374796C654E616D65061172 + 656D6F7665627574746F6E7374796C6505416C69676E070643656E7465720A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508085461624F72646572027D0B46697865644865696768 + 740218000654476C79706800095374796C654E616D65060A676C797068737479 + 6C650C4D617267696E732E4C65667405000000000000009002400B4D61726769 + 6E732E546F7005000000000000009002400E4D617267696E732E426F74746F6D + 050000000000000090024005416C69676E07044C6566740A506F736974696F6E + 2E5805000000000000008404400A506F736974696F6E2E590500000000000000 + 9002400A53697A652E576964746805000000000000008004400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C740800000A5452656374616E676C6500095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0706436C69656E740C436C6970436869 + 6C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080C4D617267696E732E4C6566740500 + 000000000000C003C00A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C003401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 + 6F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463430343034300754726967676572063049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C73653B4973466F63757365643D6661 + 6C73650E54726967676572496E7665727365063149734D6F7573654F7665723D + 66616C73653B4973507265737365643D66616C73653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3308447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463241383245320953746F + 7056616C756507097846463137353739430754726967676572062E4973507265 + 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D747275650E54726967676572496E7665727365062F497350726573 + 7365643D66616C73653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D7472756500000005545465787400095374796C654E616D65060474 + 65787405416C69676E0706436C69656E740748697454657374080A53697A652E + 576964746805000000000000009805400B53697A652E48656967687405000000 + 00000000C003401453697A652E506C6174666F726D44656661756C7408045465 + 7874060454657874165465787453657474696E67732E466F6E74436F6C6F7207 + 08636C615768697465000007544C61796F757400095374796C654E616D650607 + 4C61796F75743205416C69676E07044C6566740A53697A652E57696474680500 + 000000000000C003400B53697A652E4865696768740500000000000000C00340 + 1453697A652E506C6174666F726D44656661756C740800055450617468000953 + 74796C654E616D65060469636F6E05416C69676E0708436F6E74656E74730944 + 6174612E506174680A4C000000060000000000000000004041CDCC4C3F010000 + 0000000000CDCC4C3F0100000000000000000000000100000000004041000000 + 000100000000004041CDCC4C3F0300000000004041CDCC4C3F0A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080C4D617267696E732E + 4C65667405000000000000008001400B4D617267696E732E546F700500000000 + 0000008001400D4D617267696E732E526967687405000000000000008001400E + 4D617267696E732E426F74746F6D05000000000000008001400A53697A652E57 + 6964746805000000000000008003400B53697A652E4865696768740500000000 + 0000008003401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400000000 + 545046300A5452656374616E676C6500095374796C654E616D650614706F7075 + 706261636B67726F756E647374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463244324432440A53697A652E576964746805 + 000000000000009407400B53697A652E4865696768740500000000000080D206 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F7207097846463135313531350756697369626C65080000} end item Platform = 'OSX Yosemite' @@ -10301,294 +10904,265 @@ object MainForm: TMainForm 7374796C6503DB05060D657870616E6465727374796C650316070615616E6969 6E64696361746F72686F727A7374796C6503D5020611616E69696E6469636174 6F727374796C6503BA01060A70616E656C7374796C65034401061970726F6772 - 6573736261726D696E696572726F727374796C6503E503060E6C6F6762757474 - 6F6E7374796C6503DA0700545046300A5452656374616E676C6500095374796C - 654E616D65060F6261636B67726F756E647374796C6505416C69676E07064365 - 6E7465720A46696C6C2E436F6C6F7207097846463244324432440A53697A652E - 576964746805000000000000009407400B53697A652E48656967687405000000 - 00000080D206401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E650756697369626C65080000545046300754 - 4C61796F757400095374796C654E616D65060B627574746F6E7374796C650541 - 6C69676E070643656E7465720A53697A652E57696474680500000000000000C8 - 05400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 720202000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0706436C69656E740C436C69704368696C647265 - 6E090A436C6970506172656E74090A46696C6C2E436F6C6F7207097846463230 - 323032300748697454657374080A53697A652E57696474680500000000000000 - C805400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E6507585261646975730500000000000000C000400759526164697573050000 - 0000000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C65 - 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E310844757261 - 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 - 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 - 746F7056616C756507097846463430343034300754726967676572063049734D - 6F7573654F7665723D747275653B4973507265737365643D66616C73653B4973 - 466F63757365643D66616C73650E54726967676572496E766572736506314973 - 4D6F7573654F7665723D66616C73653B4973507265737365643D66616C73653B - 4973466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F + 6573736261726D696E696572726F727374796C6503EE03060E6C6F6762757474 + 6F6E7374796C6503DA07061B7472656576696577657870616E64657262757474 + 6F6E7374796C65037E02060D74726565766965777374796C6503820706117472 + 6565766965776974656D7374796C6503260500545046300A5452656374616E67 + 6C6500095374796C654E616D65060F6261636B67726F756E647374796C650541 + 6C69676E070643656E7465720A46696C6C2E436F6C6F72070978464632443244 + 32440A53697A652E576964746805000000000000009407400B53697A652E4865 + 696768740500000000000080D206401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508 + 00005450463007544C61796F757400095374796C654E616D65060B627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F726465720202000A5452656374616E676C6500095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C69 + 704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F + 7207097846463230323032300748697454657374080A53697A652E5769647468 + 0500000000000000C805400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6507585261646975730500000000000000C00040075952 + 61646975730500000000000000C00040000F54436F6C6F72416E696D6174696F 6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D617469 - 6F6E32084475726174696F6E05000000000000000000000C50726F7065727479 + 6F6E31084475726174696F6E05000000000000000000000C50726F7065727479 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 - 3430343034300953746F7056616C756507097846463137353739430754726967 - 676572062F4973507265737365643D747275653B49734D6F7573654F7665723D - 747275653B4973466F63757365643D66616C736500000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E - 696D6174696F6E33084475726174696F6E05000000000000000000000C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463241383245320953746F7056616C75650709784646313735373943 - 0754726967676572062E4973507265737365643D747275653B49734D6F757365 - 4F7665723D747275653B4973466F63757365643D747275650E54726967676572 - 496E7665727365062F4973507265737365643D66616C73653B49734D6F757365 - 4F7665723D747275653B4973466F63757365643D747275650000000554546578 - 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 - 13456E61626C6544726167486967686C69676874080748697454657374080A53 - 697A652E57696474680500000000000000C805400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 - 74650000005450463007544C61796F757400095374796C654E616D65060D6368 - 65636B626F787374796C6505416C69676E070643656E7465720A53697A652E57 - 69647468050000000000ACAA8006400B53697A652E4865696768740500000000 - 0058559904401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F7264657202030007544C61796F75740005416C69676E - 07044C6566740A53697A652E576964746805000000000000009003400B53697A - 652E48656967687405000000000058559904401453697A652E506C6174666F72 - 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 - 060A6261636B67726F756E6405416C69676E070643656E7465720A46696C6C2E - 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 - 696474680500000000000000F002400B53697A652E4865696768740500000000 - 000000F002401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F720709784646313531353135075852616469757305000000 - 00000000C0004007595261646975730500000000000000C00040000A54526563 - 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C - 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463241383245 - 32074869745465737408074F70616369747905000000000000000000000C4D61 - 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F - 7005000000000000008000400D4D617267696E732E5269676874050000000000 - 00008000400E4D617267696E732E426F74746F6D05000000000000008000400A - 53697A652E57696474680500000000000000B002400B53697A652E4865696768 - 740500000000000000B002401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 00000000C0004007595261646975730500000000000000C00040000F54466C6F - 6174416E696D6174696F6E00095374796C654E616D65061B6368656368626F78 - 56697362696C697479416E696D6174696F6E31084475726174696F6E05000000 - 000000000000000C50726F70657274794E616D6506074F7061636974790A5374 - 61727456616C756505000000000000000000000953746F7056616C7565050000 - 0000000000C805400754726967676572060E4973436865636B65643D74727565 - 0E54726967676572496E7665727365060F4973436865636B65643D66616C7365 - 0000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650618 - 636865636B626F785374726F6B65416E696D6174696F6E31084475726174696F - 6E05000000000000000000000C50726F70657274794E616D65060C5374726F6B - 652E436F6C6F720A537461727456616C75650709784646313531353135095374 - 6F7056616C756507097846463241383245320754726967676572060E49734368 - 65636B65643D747275650E54726967676572496E7665727365060F4973436865 - 636B65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650617636865636B626F78436F6C6F72416E696D6174696F6E31 + 3230323032300953746F7056616C756507097846463430343034300754726967 + 676572063049734D6F7573654F7665723D747275653B4973507265737365643D + 66616C73653B4973466F63757365643D66616C73650E54726967676572496E76 + 65727365063149734D6F7573654F7665723D66616C73653B4973507265737365 + 643D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E32084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463430343034300953746F7056616C75650709784646313735 + 3739430754726967676572062F4973507265737365643D747275653B49734D6F + 7573654F7665723D747275653B4973466F63757365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463241383245320953746F7056616C7565070978 + 46463137353739430754726967676572062E4973507265737365643D74727565 + 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 + 0E54726967676572496E7665727365062F4973507265737365643D66616C7365 + 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 0706436C69656E7413456E61626C6544726167486967686C6967687408074869 + 7454657374080A53697A652E57696474680500000000000000C805400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 + 0708636C6157686974650000005450463007544C61796F757400095374796C65 + 4E616D65060D636865636B626F787374796C6505416C69676E070643656E7465 + 720A53697A652E5769647468050000000000ACAA8006400B53697A652E486569 + 67687405000000000058559904401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F7264657202030007544C61796F75 + 740005416C69676E07044C6566740A53697A652E576964746805000000000000 + 009003400B53697A652E48656967687405000000000058559904401453697A65 + 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E070643656E74 + 65720A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E57696474680500000000000000F002400B53697A652E486569 + 6768740500000000000000F002401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313507585261 + 646975730500000000000000C0004007595261646975730500000000000000C0 + 0040000A5452656374616E676C6500095374796C654E616D65060A5265637461 + 6E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F720709 + 784646324138324532074869745465737408074F706163697479050000000000 + 00000000000C4D617267696E732E4C65667405000000000000008000400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 + 000000008000400A53697A652E57696474680500000000000000B002400B5369 + 7A652E4865696768740500000000000000B002401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 + 646975730500000000000000C0004007595261646975730500000000000000C0 + 0040000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061B + 6368656368626F7856697362696C697479416E696D6174696F6E310844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D6506074F70 + 61636974790A537461727456616C756505000000000000000000000953746F70 + 56616C75650500000000000000C805400754726967676572060E497343686563 + 6B65643D747275650E54726967676572496E7665727365060F4973436865636B + 65643D66616C73650000000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650618636865636B626F785374726F6B65416E696D6174696F6E31 084475726174696F6E05000000000000000000000C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646323032 - 3032300953746F7056616C756507097846463430343034300754726967676572 - 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 - 65061149734D6F7573654F7665723D66616C7365000000000554546578740009 - 5374796C654E616D6506047465787405416C69676E0706436C69656E740A5369 - 7A652E57696474680500000000005855DD05400B53697A652E48656967687405 - 000000000058559904401453697A652E506C6174666F726D44656661756C7408 - 0454657874060454657874165465787453657474696E67732E466F6E74436F6C - 6F720708636C6157686974650000005450463007544C61796F75740009537479 - 6C654E616D650609656469747374796C6505416C69676E070643656E7465720A - 53697A652E57696474680500000000000000C805400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508085461624F726465720204000C5442727573684F62 - 6A65637400095374796C654E616D65060A666F726567726F756E6400000C5442 - 727573684F626A65637400095374796C654E616D65060973656C656374696F6E - 0B42727573682E436F6C6F72070978393632413832453200000B54466F6E744F - 626A65637400095374796C654E616D650604666F6E7409466F6E742E53697A65 - 0500000000000000D0024000000A5452656374616E676C6500095374796C654E - 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 - 697A652E57696474680500000000000000C805400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F72070978464631353135313507585261646975 - 730500000000000000C0004007595261646975730500000000000000C0004000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614656469 - 745374726F6B65416E696D6174696F6E31084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 - 0A537461727456616C756507097846463135313531350953746F7056616C7565 - 07097846463241383245320754726967676572060E4973466F63757365643D74 - 7275650E54726967676572496E7665727365060F4973466F63757365643D6661 - 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0614656469745374726F6B65416E696D6174696F6E32084475726174696F6E05 - 0000000000000000000007496E7665727365090C50726F70657274794E616D65 - 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 - 313531350953746F7056616C7565070978464634433443344307547269676765 - 72062149734D6F7573654F7665723D747275653B4973466F63757365643D6661 - 6C73653B0E54726967676572496E7665727365062249734D6F7573654F766572 - 3D66616C73653B4973466F63757365643D66616C73653B00000007544C61796F - 757400095374796C654E616D650607627574746F6E7305416C69676E07055269 - 676874064C6F636B6564090B4D617267696E732E546F70050000000000000080 - 00400D4D617267696E732E526967687405000000000000008000400E4D617267 - 696E732E426F74746F6D05000000000000008000400A506F736974696F6E2E58 - 0500000000000000C004400A506F736974696F6E2E5905000000000000008000 - 400A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000A803401453697A652E506C6174666F726D44656661 - 756C7408000007544C61796F757400095374796C654E616D650607636F6E7465 - 6E7405416C69676E0706436C69656E74064C6F636B6564090C4D617267696E73 - 2E4C65667405000000000000008001400B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000800040 - 0E4D617267696E732E426F74746F6D05000000000000008000400A53697A652E - 57696474680500000000000000A804400B53697A652E48656967687405000000 - 00000000A803401453697A652E506C6174666F726D44656661756C7408000006 - 544C6162656C00095374796C654E616D65060670726F6D7074064C6F636B6564 - 09074F706163697479050000000000000080FE3F165465787453657474696E67 - 732E466F6E74436F6C6F720708636C6157686974650454657874060454657874 - 0000005450463007544C61796F757400095374796C654E616D65060967726964 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 00000000FFFFE905400B53697A652E4865696768740500000000000000830640 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720205000C5442727573684F626A65637400095374796C654E - 616D650618416C7465726E6174696E67526F774261636B67726F756E640B4272 - 7573682E436F6C6F72070978333237383738373800000C5442727573684F626A - 65637400095374796C654E616D6506086C696E6566696C6C0B42727573682E43 - 6F6C6F72070978464631353135313500000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 - 090748697454657374080C50616464696E672E4C656674050000000000000080 - 00400B50616464696E672E546F7005000000000000008000400D50616464696E - 672E526967687405000000000000008000400E50616464696E672E426F74746F - 6D05000000000000008000400A53697A652E5769647468050000000000FFFFE9 - 05400B53697A652E48656967687405000000000000008306401453697A652E50 + 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464631 + 35313531350953746F7056616C75650709784646324138324532075472696767 + 6572060E4973436865636B65643D747275650E54726967676572496E76657273 + 65060F4973436865636B65643D66616C736500000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650617636865636B626F78436F6C6F72416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646343034303430 + 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 + 6572496E7665727365061149734D6F7573654F7665723D66616C736500000000 + 05545465787400095374796C654E616D6506047465787405416C69676E070643 + 6C69656E740A53697A652E57696474680500000000005855DD05400B53697A65 + 2E48656967687405000000000058559904401453697A652E506C6174666F726D + 44656661756C74080454657874060454657874165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D650609656469747374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F726465720204000C + 5442727573684F626A65637400095374796C654E616D65060A666F726567726F + 756E6400000C5442727573684F626A65637400095374796C654E616D65060973 + 656C656374696F6E0B42727573682E436F6C6F72070978393632413832453200 + 000B54466F6E744F626A65637400095374796C654E616D650604666F6E740946 + 6F6E742E53697A650500000000000000D0024000000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080A53697A652E57696474680500000000000000C805400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 3507585261646975730500000000000000C00040075952616469757305000000 + 00000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614656469745374726F6B65416E696D6174696F6E3108447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060C5374726F + 6B652E436F6C6F720A537461727456616C756507097846463135313531350953 + 746F7056616C756507097846463241383245320754726967676572060E497346 + 6F63757365643D747275650E54726967676572496E7665727365060F4973466F + 63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614656469745374726F6B65416E696D6174696F6E320844 + 75726174696F6E050000000000000000000007496E7665727365090C50726F70 + 657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75 + 6507097846463135313531350953746F7056616C756507097846463443344334 + 430754726967676572062149734D6F7573654F7665723D747275653B4973466F + 63757365643D66616C73653B0E54726967676572496E7665727365062249734D + 6F7573654F7665723D66616C73653B4973466F63757365643D66616C73653B00 + 000007544C61796F757400095374796C654E616D650607627574746F6E730541 + 6C69676E07055269676874064C6F636B6564090B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + 8000400E4D617267696E732E426F74746F6D05000000000000008000400A506F + 736974696F6E2E580500000000000000C004400A506F736974696F6E2E590500 + 0000000000008000400A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000A803401453697A652E506C6174 + 666F726D44656661756C7408000007544C61796F757400095374796C654E616D + 650607636F6E74656E7405416C69676E0706436C69656E74064C6F636B656409 + 0C4D617267696E732E4C65667405000000000000008001400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E57696474680500000000000000A804400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C7408000006544C6162656C00095374796C654E616D65060670726F6D70 + 74064C6F636B656409074F706163697479050000000000000080FE3F16546578 + 7453657474696E67732E466F6E74436F6C6F720708636C615768697465045465 + 78740604546578740000005450463007544C61796F757400095374796C654E61 + 6D650609677269647374796C6505416C69676E070643656E7465720A53697A65 + 2E5769647468050000000000FFFFE905400B53697A652E486569676874050000 + 00000000008306401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F726465720205000C5442727573684F626A656374 + 00095374796C654E616D650618416C7465726E6174696E67526F774261636B67 + 726F756E640B42727573682E436F6C6F72070978333237383738373800000C54 + 42727573684F626A65637400095374796C654E616D6506086C696E6566696C6C + 0B42727573682E436F6C6F72070978464631353135313500000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080C50616464696E672E4C65667405 + 000000000000008000400B50616464696E672E546F7005000000000000008000 + 400D50616464696E672E526967687405000000000000008000400E5061646469 + 6E672E426F74746F6D05000000000000008000400A53697A652E576964746805 + 0000000000FFFFE905400B53697A652E48656967687405000000000000008306 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F72070978464631353135313507585261646975730500000000000000C0 + 004007595261646975730500000000000000C000400007544865616465720009 + 5374796C654E616D6506066865616465720553696465730B03546F70044C6566 + 7406426F74746F6D0552696768740005416C69676E0703546F700A506F736974 + 696F6E2E5805000000000000008000400A506F736974696F6E2E590500000000 + 0000008000400A53697A652E5769647468050000000000FFFFE105400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C7408000007544C61796F757400095374796C654E616D650607 + 636F6E74656E7405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A53697A652E5769647468050000000000FFFFC105400B53697A652E48 + 65696768740500000000000000B405401453697A652E506C6174666F726D4465 + 6661756C7408000A5452656374616E676C6500095374796C654E616D65060973 + 656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 + 646975730500000000000000C0004007595261646975730500000000000000C0 + 004000000A5452656374616E676C6500095374796C654E616D650605666F6375 + 730A46696C6C2E436F6C6F720709784146324138324532074869745465737408 + 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 00000000000000C0004007595261646975730500000000000000C00040000000 + 0A545363726F6C6C42617200095374796C654E616D65060A767363726F6C6C62 + 617205416C69676E070552696768740B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E0708566572746963616C0A506F73 + 6974696F6E2E58050000000000FFFFC505400A506F736974696F6E2E59050000 + 0000000000B803400A53697A652E576964746805000000000000008003400B53 + 697A652E4865696768740500000000000000B405401453697A652E506C617466 + 6F726D44656661756C740800000A545363726F6C6C42617200095374796C654E + 616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D0B536D + 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E + 070A486F72697A6F6E74616C0A506F736974696F6E2E58050000000000000080 + 00400A506F736974696F6E2E590500000000000000E205400A53697A652E5769 + 647468050000000000FFFFE105400B53697A652E486569676874050000000000 + 00008003401453697A652E506C6174666F726D44656661756C740800000F5453 + 6D616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C + 7363726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E + 676505000000000000000000000B4F7269656E746174696F6E07085665727469 + 63616C0C4D617267696E732E4C65667405000000000000008000400A506F7369 + 74696F6E2E580500000000000000C605400A506F736974696F6E2E5905000000 + 000000008000400A53697A652E576964746805000000000000008002400B5369 + 7A652E48656967687405000000000000008002401453697A652E506C6174666F + 726D44656661756C74080756697369626C650800000F54536D616C6C5363726F + 6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C6261 + 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D + 617267696E732E546F7005000000000000008000400A506F736974696F6E2E58 + 05000000000000008000400A506F736974696F6E2E590500000000000000E205 + 400A53697A652E576964746805000000000000009606400B53697A652E486569 + 67687405000000000000008002401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508000000005450463007544C61796F7574000953 + 74796C654E616D65060D67726F7570626F787374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000000000F004400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F726465720206000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E6507 + 48697454657374080C4D617267696E732E4C6566740500000000000000C00040 + 0B4D617267696E732E546F7005000000000000009002400D4D617267696E732E + 52696768740500000000000000C000400E4D617267696E732E426F74746F6D05 + 00000000000000C000400A53697A652E57696474680500000000000000D80440 + 0B53697A652E48656967687405000000000000009804401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 353135313507585261646975730500000000000000C000400759526164697573 + 0500000000000000C000400005545465787400095374796C654E616D65060474 + 657874084175746F53697A65090A436C6970506172656E740907486974546573 + 74080C4D617267696E732E4C6566740500000000000000A002400A506F736974 + 696F6E2E5805000000000060559502400A506F736974696F6E2E590500000000 + 004055D501C00A53697A652E576964746805000000000000B8C703400B53697A + 652E4865696768740500000000000060FF02401453697A652E506C6174666F72 + 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 + 0708636C615768697465155465787453657474696E67732E576F726457726170 + 08000000005450463007544C61796F757400095374796C654E616D65060F6865 + 616465726974656D7374796C6505416C69676E070643656E7465720A53697A65 + 2E576964746805000000000000009205400B53697A652E486569676874050000 + 0000000000D003401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F726465720207000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F720709784646344334433443064C6F636B + 6564090748697454657374080A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 4631353135313507585261646975730500000000000000C00040075952616469 - 75730500000000000000C0004000075448656164657200095374796C654E616D - 6506066865616465720553696465730B03546F70044C65667406426F74746F6D - 0552696768740005416C69676E0703546F700A506F736974696F6E2E58050000 - 00000000008000400A506F736974696F6E2E5905000000000000008000400A53 - 697A652E5769647468050000000000FFFFE105400B53697A652E486569676874 - 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 - 08000007544C61796F757400095374796C654E616D650607636F6E74656E7405 - 416C69676E0706436C69656E740C436C69704368696C6472656E090A53697A65 - 2E5769647468050000000000FFFFC105400B53697A652E486569676874050000 - 0000000000B405401453697A652E506C6174666F726D44656661756C7408000A - 5452656374616E676C6500095374796C654E616D65060973656C656374696F6E - 0A46696C6C2E436F6C6F7207097846463241383245320748697454657374080A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 00000000C0004007595261646975730500000000000000C0004000000A545265 - 6374616E676C6500095374796C654E616D650605666F6375730A46696C6C2E43 - 6F6C6F7207097841463241383245320748697454657374080C4D617267696E73 - 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 - 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F - 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0 - 004007595261646975730500000000000000C000400000000A545363726F6C6C - 42617200095374796C654E616D65060A767363726F6C6C62617205416C69676E - 070552696768740B536D616C6C4368616E676505000000000000000000000B4F - 7269656E746174696F6E0708566572746963616C0A506F736974696F6E2E5805 - 0000000000FFFFC505400A506F736974696F6E2E590500000000000000B80340 - 0A53697A652E576964746805000000000000008003400B53697A652E48656967 - 68740500000000000000B405401453697A652E506C6174666F726D4465666175 - 6C740800000A545363726F6C6C42617200095374796C654E616D65060A687363 - 726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E67 - 6505000000000000000000000B4F7269656E746174696F6E070A486F72697A6F - 6E74616C0A506F736974696F6E2E5805000000000000008000400A506F736974 - 696F6E2E590500000000000000E205400A53697A652E57696474680500000000 - 00FFFFE105400B53697A652E4865696768740500000000000000800340145369 - 7A652E506C6174666F726D44656661756C740800000F54536D616C6C5363726F - 6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C6261 - 7205416C69676E070552696768740B536D616C6C4368616E6765050000000000 - 00000000000B4F7269656E746174696F6E0708566572746963616C0C4D617267 - 696E732E4C65667405000000000000008000400A506F736974696F6E2E580500 - 000000000000C605400A506F736974696F6E2E5905000000000000008000400A - 53697A652E576964746805000000000000008002400B53697A652E4865696768 - 7405000000000000008002401453697A652E506C6174666F726D44656661756C - 74080756697369626C650800000F54536D616C6C5363726F6C6C426172000953 - 74796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E07 - 06426F74746F6D0B536D616C6C4368616E676505000000000000000000000B4F - 7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E54 - 6F7005000000000000008000400A506F736974696F6E2E580500000000000000 - 8000400A506F736974696F6E2E590500000000000000E205400A53697A652E57 - 6964746805000000000000009606400B53697A652E4865696768740500000000 - 0000008002401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508000000005450463007544C61796F757400095374796C654E616D65 - 060D67726F7570626F787374796C6505416C69676E070643656E7465720A5369 - 7A652E57696474680500000000000000F004400B53697A652E48656967687405 - 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F726465720206000A5452656374616E676C65 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 - 6F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869745465737408 - 0C4D617267696E732E4C6566740500000000000000C000400B4D617267696E73 - 2E546F7005000000000000009002400D4D617267696E732E5269676874050000 - 0000000000C000400E4D617267696E732E426F74746F6D0500000000000000C0 - 00400A53697A652E57696474680500000000000000D804400B53697A652E4865 - 6967687405000000000000009804401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135075852 - 61646975730500000000000000C0004007595261646975730500000000000000 - C000400005545465787400095374796C654E616D65060474657874084175746F - 53697A65090A436C6970506172656E74090748697454657374080C4D61726769 - 6E732E4C6566740500000000000000A002400A506F736974696F6E2E58050000 - 00000060559502400A506F736974696F6E2E590500000000004055D501C00A53 - 697A652E576964746805000000000000B8C703400B53697A652E486569676874 - 0500000000000060FF02401453697A652E506C6174666F726D44656661756C74 - 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 - 7465155465787453657474696E67732E576F7264577261700800000000545046 - 3007544C61796F757400095374796C654E616D65060F6865616465726974656D - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 0000000000009205400B53697A652E4865696768740500000000000000D00340 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720207000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 - 6C6C2E436F6C6F720709784646344334433443064C6F636B6564090748697454 - 657374080A53697A652E576964746805000000000000009205400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 - 585261646975730500000000000000C000400759526164697573050000000000 - 0000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650615686561646572436F6C6F72416E696D6174696F6E31084475726174696F - 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463443344334430953746F70 - 56616C756507097846463241383245320754726967676572060E497350726573 - 7365643D747275650E54726967676572496E7665727365060F49735072657373 - 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D6506166865616465725374726F6B65416E696D6174696F6E31084475 - 726174696F6E05000000000000000000000C50726F70657274794E616D65060C - 5374726F6B652E436F6C6F720A537461727456616C7565070978464631353135 - 31350953746F7056616C75650709784646324138324532075472696767657206 - 0E4973507265737365643D747275650E54726967676572496E7665727365060F - 4973507265737365643D66616C736500000005545465787400095374796C654E - 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 - 48697454657374080C4D617267696E732E4C6566740500000000000000A00140 - 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 52696768740500000000000000A001400E4D617267696E732E426F74746F6D05 - 000000000000008000400A53697A652E57696474680500000000000000FC0440 - 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 - 74666F726D44656661756C7408165465787453657474696E67732E466F6E7443 - 6F6C6F720708636C6157686974650000005450463007544C61796F7574000953 - 74796C654E616D65060E696D61676563656C6C7374796C6505416C69676E0706 - 43656E7465720756697369626C6508085461624F726465720208000654496D61 - 676500095374796C654E616D650605696D6167650E4D756C7469526573426974 - 6D61700E01000005416C69676E0706436C69656E74064C6F636B656409074869 - 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D - 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 - 000000000080FF3F0A53697A652E57696474680500000000000000C004400B53 - 697A652E4865696768740500000000000000C004401453697A652E506C617466 - 6F726D44656661756C74080000005450463007544C61796F757400095374796C - 654E616D65060A6C6162656C7374796C6505416C69676E070643656E7465720A - 53697A652E57696474680500000000000000C805400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508085461624F72646572020900055454657874000953 - 74796C654E616D6506047465787405416C69676E0708436F6E74656E74730748 - 697454657374080A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F - 720708636C6157686974650000005450463007544C61796F757400095374796C - 654E616D65060D6C697374626F78666F6F74657205416C69676E070643656E74 - 65720A53697A652E576964746805000000000000009205400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F72646572020A00055454657874 + 75730500000000000000C00040000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650615686561646572436F6C6F72416E696D6174696F6E31 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646344334 + 4334430953746F7056616C756507097846463241383245320754726967676572 + 060E4973507265737365643D747275650E54726967676572496E766572736506 + 0F4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D6506166865616465725374726F6B65416E696D61 + 74696F6E31084475726174696F6E05000000000000000000000C50726F706572 + 74794E616D65060C5374726F6B652E436F6C6F720A537461727456616C756507 + 097846463135313531350953746F7056616C7565070978464632413832453207 + 54726967676572060E4973507265737365643D747275650E5472696767657249 + 6E7665727365060F4973507265737365643D66616C7365000000055454657874 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 0000000000A001400B4D617267696E732E546F7005000000000000008000400D @@ -10597,2869 +11171,1179 @@ object MainForm: TMainForm 0000000000FC04400B53697A652E4865696768740500000000000000B0034014 53697A652E506C6174666F726D44656661756C7408165465787453657474696E 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C - 61796F757400095374796C654E616D6506106C697374626F786974656D737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 000000D605400B53697A652E4865696768740500000000000000C00340145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F72646572020B000654476C79706800095374796C654E616D65060A676C7970 - 687374796C650C4D617267696E732E4C65667405000000000000008000400B4D - 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 - 000000000080FF3F05416C69676E07044C6566740A506F736974696F6E2E5805 - 000000000000008000400A506F736974696F6E2E59050000000000000080FF3F - 0A53697A652E576964746805000000000000008003400B53697A652E48656967 - 68740500000000000000B003401453697A652E506C6174666F726D4465666175 - 6C7408000005545465787400095374796C654E616D6506047465787405416C69 - 676E0706436C69656E740748697454657374080C4D617267696E732E4C656674 - 0500000000000000C000400B4D617267696E732E546F70050000000000000080 - FF3F0D4D617267696E732E52696768740500000000000000C000400E4D617267 - 696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769647468 - 0500000000000000CA05400B53697A652E4865696768740500000000000000B0 - 03401453697A652E506C6174666F726D44656661756C74081654657874536574 - 74696E67732E466F6E74436F6C6F720708636C61576869746515546578745365 - 7474696E67732E576F72645772617008165465787453657474696E67732E486F - 727A416C69676E07074C656164696E6700000954436865636B426F7800095374 - 796C654E616D650605636865636B05416C69676E07084D6F73744C6566740843 - 616E466F637573081244697361626C65466F637573456666656374090A53697A - 652E57696474680500000000000000A003400B53697A652E4865696768740500 - 000000000000C003401453697A652E506C6174666F726D44656661756C740807 - 56697369626C65080000005450463007544C61796F757400095374796C654E61 - 6D6506126C697374626F78706C61696E68656164657205416C69676E07064365 - 6E7465720A53697A652E576964746805000000000000009205400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F72646572020C000A545265 - 6374616E676C6500095374796C654E616D65060A6261636B67726F756E640541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463244 - 32443244064C6F636B6564090748697454657374080A53697A652E5769647468 - 05000000000000009205400B53697A652E4865696768740500000000000000D0 - 03401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313507585261646975730500000000000000 - C0004007595261646975730500000000000000C0004000000554546578740009 - 5374796C654E616D6506047465787405416C69676E0706436C69656E74064C6F + 61796F757400095374796C654E616D65060E696D61676563656C6C7374796C65 + 05416C69676E070643656E7465720756697369626C6508085461624F72646572 + 0208000654496D61676500095374796C654E616D650605696D6167650E4D756C + 74695265734269746D61700E01000005416C69676E0706436C69656E74064C6F 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 - 000000A001400B4D617267696E732E546F7005000000000000008000400D4D61 - 7267696E732E52696768740500000000000000A001400E4D617267696E732E42 - 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 - 000000FC04400B53697A652E4865696768740500000000000000B00340145369 - 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 - 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 - 6F757400095374796C654E616D65060C6C697374626F787374796C6505416C69 - 676E070643656E7465720A53697A652E5769647468050000000000FFFFE90540 - 0B53697A652E48656967687405000000000000008306401453697A652E506C61 + 00000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61 + 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 + 6F74746F6D050000000000000080FF3F0A53697A652E57696474680500000000 + 000000C004400B53697A652E4865696768740500000000000000C00440145369 + 7A652E506C6174666F726D44656661756C74080000005450463007544C61796F + 757400095374796C654E616D65060A6C6162656C7374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F7264657202090005 + 545465787400095374796C654E616D6506047465787405416C69676E0708436F + 6E74656E74730748697454657374080A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C7408165465787453657474696E67732E + 466F6E74436F6C6F720708636C6157686974650000005450463007544C61796F + 757400095374796C654E616D65060D6C697374626F78666F6F74657205416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000920540 + 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 0D000C5442727573684F626A65637400095374796C654E616D650618416C7465 - 726E6174696E67526F774261636B67726F756E640B42727573682E436F6C6F72 - 070978464632433243324300000A5452656374616E676C6500095374796C654E - 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 - 7454657374080C50616464696E672E4C65667405000000000000008000400B50 - 616464696E672E546F7005000000000000008000400D50616464696E672E5269 - 67687405000000000000008000400E50616464696E672E426F74746F6D050000 - 00000000008000400A53697A652E5769647468050000000000FFFFE905400B53 - 697A652E48656967687405000000000000008306401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 35313507585261646975730500000000000000C0004007595261646975730500 - 000000000000C000400007544C61796F757400095374796C654E616D65060763 - 6F6E74656E7405416C69676E0706436C69656E740C436C69704368696C647265 - 6E090A53697A652E5769647468050000000000FFFFC105400B53697A652E4865 - 696768740500000000000000DE05401453697A652E506C6174666F726D446566 - 61756C7408000A5452656374616E676C6500095374796C654E616D6506097365 - 6C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532074869 - 7454657374080A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000000C804401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 - 6975730500000000000000C0004007595261646975730500000000000000C000 - 4000000A5452656374616E676C6500095374796C654E616D650610666F637573 - 656473656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245 - 320748697454657374080A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B - 5374726F6B652E446173680703446F7407585261646975730500000000000000 - C0004007595261646975730500000000000000C000400000000A545363726F6C - 6C42617200095374796C654E616D65060A767363726F6C6C62617205416C6967 - 6E070552696768740B536D616C6C4368616E676505000000000000000000000B - 4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E2E58 - 050000000000FFFFC505400A506F736974696F6E2E5905000000000000008000 - 400A53697A652E576964746805000000000000008003400B53697A652E486569 - 6768740500000000000000DE05401453697A652E506C6174666F726D44656661 - 756C740800000A545363726F6C6C42617200095374796C654E616D65060A6873 - 63726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E - 676505000000000000000000000B4F7269656E746174696F6E070A486F72697A - 6F6E74616C0A506F736974696F6E2E5805000000000000008000400A506F7369 - 74696F6E2E590500000000000000E205400A53697A652E576964746805000000 - 0000FFFFE105400B53697A652E48656967687405000000000000008003401453 - 697A652E506C6174666F726D44656661756C740800000F54536D616C6C536372 - 6F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C62 - 617205416C69676E070552696768740B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E0708566572746963616C0C4D6172 - 67696E732E4C65667405000000000000008000400A506F736974696F6E2E5805 - 00000000000000C605400A506F736974696F6E2E590500000000000000800040 - 0A53697A652E576964746805000000000000008002400B53697A652E48656967 - 687405000000000000008002401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C650800000F54536D616C6C5363726F6C6C4261720009 - 5374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E - 0706426F74746F6D0B536D616C6C4368616E676505000000000000000000000B - 4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E - 546F7005000000000000008000400A506F736974696F6E2E5805000000000000 - 008000400A506F736974696F6E2E590500000000000000E205400A53697A652E - 576964746805000000000000009606400B53697A652E48656967687405000000 - 000000008002401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508000000005450463007544C61796F757400095374796C654E616D - 65060E706F70757063656C6C7374796C6505416C69676E070643656E74657207 - 56697369626C6508085461624F72646572020E0007544C61796F75740005416C - 69676E070552696768740A506F736974696F6E2E5805000000000000008C0440 - 0A53697A652E57696474680500000000000000F002400B53697A652E48656967 - 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C7408000554506174680005416C69676E070643656E74657209446174612E50 - 6174680A400000000500000000000000000000000000803F010000000000803F - 0000803F010000000000003F0000000001000000000000000000803F03000000 - 00000000000000000A46696C6C2E436F6C6F720708636C615768697465074869 - 7454657374080B4D617267696E732E546F700500000000000000E001C00A5369 - 7A652E576964746805000000000000008002400B53697A652E48656967687405 - 000000000000008001401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E6500000554506174680005416C6967 - 6E070643656E74657209446174612E506174680A340000000400000000000000 - 0000000000000000010000000000803F00000000010000000000003F0000803F - 0300000000000000000000000A46696C6C2E436F6C6F720708636C6157686974 - 650748697454657374080B4D617267696E732E546F700500000000000000C001 - 400A53697A652E576964746805000000000000008002400B53697A652E486569 - 67687405000000000000008001401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000005545465787400 - 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 00000000A001400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E52696768740500000000000000A001400E4D617267696E732E - 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 00000000C803400B53697A652E4865696768740500000000000000B804401453 - 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 - 732E466F6E74436F6C6F720708636C6157686974650000005450463007544C61 - 796F757400095374796C654E616D65061070726F67726573736261727374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 33338505400B53697A652E4865696768740500000000009999E104401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 72646572020F000A5452656374616E676C6500095374796C654E616D65060668 - 747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 - 0709784646323032303230064C6F636B6564090748697454657374080A53697A - 652E576964746805000000000033338505400B53697A652E4865696768740500 - 000000009999E104401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646313531353135075852616469757305 - 00000000000000C0004007595261646975730500000000000000C00040000A54 - 52656374616E676C6500095374796C654E616D65060A68696E64696361746F72 - 05416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632413832 - 4532064C6F636B6564090748697454657374080C4D617267696E732E4C656674 - 050000000000000080FF3F0B4D617267696E732E546F70050000000000000080 - FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267 - 696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E58 - 050000000000000080FF3F0A506F736974696F6E2E59050000000000000080FF - 3F0A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000009999D904401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 - 000000000000C0004007595261646975730500000000000000C000400000000A - 5452656374616E676C6500095374796C654E616D65060676747261636B05416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032 - 303230064C6F636B6564090748697454657374080A53697A652E576964746805 - 000000000033338505400B53697A652E4865696768740500000000009999E104 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F72070978464631353135313507585261646975730500000000000000C0 - 004007595261646975730500000000000000C00040000A5452656374616E676C - 6500095374796C654E616D65060A76696E64696361746F7205416C69676E0706 - 426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F63 - 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 - 000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D6172 - 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F - 74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000000000 - 000080FF3F0A506F736974696F6E2E5905000000000099998904400A53697A65 - 2E576964746805000000000033338105400B53697A652E486569676874050000 - 0000000000A803401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 - C0004007595261646975730500000000000000C0004000000000545046300754 - 4C61796F757400095374796C654E616D65061170726F677265737363656C6C73 - 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 - 0000000000F805400B53697A652E4865696768740500000000000000FC054014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F7264657202100007544C61796F757400095374796C654E616D65060668 - 747261636B05416C69676E0708436F6E74656E7473064C6F636B6564090C4D61 - 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F - 7005000000000000008000400D4D617267696E732E5269676874050000000000 - 00008000400E4D617267696E732E426F74746F6D05000000000000008000400A - 53697A652E57696474680500000000000000F005400B53697A652E4865696768 - 740500000000000000F405401453697A652E506C6174666F726D44656661756C - 7408000A5452656374616E676C6500095374796C654E616D65060A68696E6469 - 6361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207097846 - 46324138324532064C6F636B6564090748697454657374080C4D617267696E73 - 2E4C65667405000000000000008000400B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000800040 - 0E4D617267696E732E426F74746F6D05000000000000008000400A506F736974 - 696F6E2E5805000000000000008000400A506F736974696F6E2E590500000000 - 0000008000400A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000000EC05401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 - 6975730500000000000000C0004007595261646975730500000000000000C000 - 4000000000545046300A5452656374616E676C6500095374796C654E616D6506 - 147363726F6C6C62617268747261636B7374796C6505416C69676E070643656E - 7465720A46696C6C2E436F6C6F72070978464631353135313507486974546573 - 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508 - 0006545468756D6200095374796C654E616D6506057468756D62064C6F636B65 - 64090A53697A652E576964746805000000000000008003400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080B5374796C654C6F6F6B7570060A7468756D627374796C65000000 - 5450463007544C61796F757400095374796C654E616D65060E7363726F6C6C62 - 61727374796C6505416C69676E070643656E7465720756697369626C65080854 - 61624F726465720211000754427574746F6E00095374796C654E616D65060A6C - 656674627574746F6E05416C69676E07044C656674064C6F636B6564090A506F - 736974696F6E2E5905000000000000008003400A53697A652E57696474680500 - 0000000000008003400B53697A652E4865696768740500000000000000900340 - 1453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B - 757006137363726F6C6C6261726C656674627574746F6E00000754427574746F - 6E00095374796C654E616D65060B7269676874627574746F6E05416C69676E07 - 055269676874064C6F636B6564090A506F736974696F6E2E5805000000000000 - 008804400A506F736974696F6E2E5905000000000000008003400A53697A652E - 576964746805000000000000008003400B53697A652E48656967687405000000 - 000000009003401453697A652E506C6174666F726D44656661756C74080B5374 - 796C654C6F6F6B757006147363726F6C6C6261727269676874627574746F6E00 - 000754427574746F6E00095374796C654E616D65060C626F74746F6D62757474 - 6F6E05416C69676E0706426F74746F6D064C6F636B6564090A506F736974696F - 6E2E5905000000000000008804400A53697A652E576964746805000000000000 - 00C804400B53697A652E48656967687405000000000000008003401453697A65 - 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570061573 - 63726F6C6C626172626F74746F6D627574746F6E00000654547261636B000953 - 74796C654E616D65060668747261636B05416C69676E0706436C69656E74064C - 6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53 - 697A652E576964746805000000000000009003400B53697A652E486569676874 - 05000000000000009003401453697A652E506C6174666F726D44656661756C74 - 080B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B7374 - 796C6500000654547261636B00095374796C654E616D65060676747261636B05 - 416C69676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F - 6E070A486F72697A6F6E74616C0A53697A652E57696474680500000000000000 - 9003400B53697A652E48656967687405000000000000009003401453697A652E - 506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006147363 - 726F6C6C62617276747261636B7374796C6500000754427574746F6E00095374 - 796C654E616D650609746F70627574746F6E05416C69676E0703546F700A5369 - 7A652E57696474680500000000000000C804400B53697A652E48656967687405 - 000000000000008003401453697A652E506C6174666F726D44656661756C7408 - 0B5374796C654C6F6F6B757006127363726F6C6C626172746F70627574746F6E - 000000545046300A5452656374616E676C6500095374796C654E616D65061473 - 63726F6C6C62617276747261636B7374796C6505416C69676E070643656E7465 - 720A46696C6C2E436F6C6F720709784646313531353135074869745465737408 - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C65080006 - 545468756D6200095374796C654E616D6506057468756D62064C6F636B656409 - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 687405000000000000008003401453697A652E506C6174666F726D4465666175 - 6C74080B5374796C654C6F6F6B7570060A7468756D627374796C650000005450 - 463007544C61796F757400095374796C654E616D65060C7370696E626F787374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00006666E005400B53697A652E4865696768740500000000000000A803401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F726465720212000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F7207097846463230323032300A53697A652E576964746805000000 - 00006666E005400B53697A652E4865696768740500000000000000A803401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 72070978464631353135313507585261646975730500000000000000C0004007 - 595261646975730500000000000000C00040000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 - 74796C65084475726174696F6E050000000000000000000007496E7665727365 - 090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461 - 727456616C756507097846463135313531350953746F7056616C756507097846 - 463430343034300754726967676572061049734D6F7573654F7665723D747275 - 650E54726967676572496E7665727365061149734D6F7573654F7665723D6661 - 6C73650000000C5442727573684F626A65637400095374796C654E616D65060A - 666F726567726F756E640B42727573682E436F6C6F7207097846464541454145 - 4100000C5442727573684F626A65637400095374796C654E616D65060973656C - 656374696F6E0B42727573682E436F6C6F720709783936324138324532000007 - 544C61796F757400095374796C654E616D650607636F6E74656E7405416C6967 - 6E0706436C69656E74064C6F636B6564090C4D617267696E732E4C6566740500 - 0000000000008000400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E526967687405000000000000008000400E4D617267696E - 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 - 0000000070668405400B53697A652E4865696768740500000000000000880340 - 1453697A652E506C6174666F726D44656661756C740800000754427574746F6E - 00095374796C654E616D65060B6D696E7573627574746F6E05416C69676E0707 - 4669744C6566740843616E466F6375730806437572736F72070763724172726F - 770C4D617267696E732E4C65667405000000000000008000400B4D617267696E - 732E546F7005000000000000008000400D4D617267696E732E52696768740500 - 0000000000008000400E4D617267696E732E426F74746F6D0500000000000000 - 8000400A506F736974696F6E2E5805000000000000008000400A506F73697469 - 6F6E2E5905000000000000008000400A53697A652E5769647468050000000000 - E8FF8703400B53697A652E48656967687405000000000000008803401453697A - 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060B - 627574746F6E7374796C65000554506174680005416C69676E0706436C69656E - 7409446174612E506174680A4000000005000000000000000000803F00000000 - 010000000000803F0000803F01000000000000000000003F010000000000803F - 00000000030000000000803F000000000A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080C4D617267696E732E4C6566740500000000 - 000000C001400B4D617267696E732E546F700500000000000000C001400D4D61 - 7267696E732E52696768740500000000000000C001400E4D617267696E732E42 - 6F74746F6D0500000000000000C001400A53697A652E57696474680500000000 - 00A0FF9F01400B53697A652E4865696768740500000000000000A00140145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E650000000754427574746F6E00095374796C654E616D65060A706C75 - 73627574746F6E05416C69676E070846697452696768740843616E466F637573 - 0806437572736F72070763724172726F770C4D617267696E732E4C6566740500 - 0000000000008000400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E526967687405000000000000008000400E4D617267696E - 732E426F74746F6D05000000000000008000400A506F736974696F6E2E580500 - 000000006A66BA05400A506F736974696F6E2E5905000000000000008000400A - 53697A652E5769647468050000000000F0FF8703400B53697A652E4865696768 - 7405000000000000008803401453697A652E506C6174666F726D44656661756C - 74080B5374796C654C6F6F6B7570060B627574746F6E7374796C650005545061 - 74680005416C69676E0706436C69656E7409446174612E506174680A34000000 - 0400000000000000000000000000000001000000000000000000803F01000000 - 0000803F0000003F0300000000000000000000000A46696C6C2E436F6C6F7207 - 08636C6157686974650748697454657374080C4D617267696E732E4C65667405 - 00000000000000C001400B4D617267696E732E546F700500000000000000C001 - 400D4D617267696E732E52696768740500000000000000C001400E4D61726769 - 6E732E426F74746F6D0500000000000000C001400A53697A652E576964746805 - 0000000000C0FF9F01400B53697A652E4865696768740500000000000000A001 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6500000000545046300D545377697463684F626A65637400 - 095374796C654E616D65060B7377697463687374796C6505416C69676E070643 - 656E746572044B696E64070C466164696E67547261636B730A53697A652E5769 - 6474680500000000000000C805400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C7408085461624F - 72646572021312547261636B696E675468756D625363616C6505000000000000 - 0080FF3F0756697369626C65080A46696C6C2E436F6C6F720709784646323032 - 3032300C46696C6C4F6E2E436F6C6F7207097846463137353739430B46696C6C - 4F6E2E4B696E640705536F6C69640B5374726F6B652E4B696E6407044E6F6E65 - 0B5468756D622E436F6C6F7207097846463430343034300D5468756D624F6E2E - 436F6C6F7207097846463241383245320C5468756D624F6E2E4B696E64070553 - 6F6C6964105468756D625374726F6B652E4B696E6407044E6F6E650F5468756D - 625374726F6B652E4361700705526F756E64105468756D625374726F6B652E44 - 6173680706437573746F6D105468756D625374726F6B652E4A6F696E0705526F - 756E64165468756D625374726F6B652E437573746F6D446173680A0800000000 - 000000000000000553686170650709526F756E64526563740000545046300754 - 4C61796F757400095374796C654E616D65060F746162636F6E74726F6C737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 0000008E06400B53697A652E486569676874050000000000FFFFC90540145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F726465720214000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E0708436F6E74656E747307436F726E65 - 72730B08546F7052696768740A426F74746F6D4C6566740B426F74746F6D5269 - 676874000A46696C6C2E436F6C6F720709784646333033303330064C6F636B65 - 64090748697454657374080C50616464696E672E4C6566740500000000000000 - 8000400B50616464696E672E546F7005000000000000008000400D5061646469 - 6E672E526967687405000000000000008000400E50616464696E672E426F7474 - 6F6D05000000000000008000400A53697A652E57696474680500000000000000 - 8E06400B53697A652E486569676874050000000000FFFFC905401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 464631353135313507585261646975730500000000000000C000400759526164 - 6975730500000000000000C00040000000545046300A5452656374616E676C65 - 00095374796C654E616D65060B746162646F747374796C6505416C69676E0706 - 43656E7465720A46696C6C2E436F6C6F72070978464631353135313507486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669736962 - 6C650807585261646975730500000000000000C8034007595261646975730500 - 000000000000C80340000F54436F6C6F72416E696D6174696F6E000844757261 - 74696F6E05000000000018B7D1F23F0C50726F70657274794E616D65060A4669 - 6C6C2E436F6C6F720A537461727456616C756507097846463135313531350953 - 746F7056616C756507097846463241383245320754726967676572060F497353 - 656C65637465643D747275650E54726967676572496E76657273650610497353 - 656C65637465643D66616C73650000005450463007544C61796F757400095374 - 796C654E616D65060C7461626974656D7374796C6505416C69676E070643656E - 7465720A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000000000C803401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F726465720215000A54526563 - 74616E676C6500095374796C654E616D650603746F7005416C69676E0708436F - 6E74656E74730C436C69704368696C6472656E0907436F726E6572730B07546F - 704C65667408546F705269676874000A46696C6C2E436F6C6F72070978464632 - 3032303230064C6F636B6564090748697454657374080553696465730B03546F - 70044C656674055269676874000A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 464631353135313507585261646975730500000000000000C000400759526164 - 6975730500000000000000C00040000654476C79706800095374796C654E616D - 65060A676C7970687374796C650C4D617267696E732E4C656674050000000000 - 00008001400D4D617267696E732E526967687405000000000000008001C00541 - 6C69676E07044C6566740A506F736974696F6E2E580500000000000000800140 - 0A53697A652E576964746805000000000000008003400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C7408000005545465787400095374796C654E616D6506047465787405416C69 - 676E0706436C69656E74064C6F636B6564090748697454657374080C4D617267 + 0A0005545465787400095374796C654E616D6506047465787405416C69676E07 + 06436C69656E74064C6F636B6564090748697454657374080C4D617267696E73 + 2E4C6566740500000000000000A001400B4D617267696E732E546F7005000000 + 000000008000400D4D617267696E732E52696768740500000000000000A00140 + 0E4D617267696E732E426F74746F6D05000000000000008000400A53697A652E + 57696474680500000000000000FC04400B53697A652E48656967687405000000 + 00000000B003401453697A652E506C6174666F726D44656661756C7408165465 + 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 + 005450463007544C61796F757400095374796C654E616D6506106C697374626F + 786974656D7374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000D605400B53697A652E486569676874050000000000 + 0000C003401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F72646572020B000654476C79706800095374796C654E61 + 6D65060A676C7970687374796C650C4D617267696E732E4C6566740500000000 + 0000008000400B4D617267696E732E546F70050000000000000080FF3F0D4D61 + 7267696E732E526967687405000000000000008000400E4D617267696E732E42 + 6F74746F6D050000000000000080FF3F05416C69676E07044C6566740A506F73 + 6974696F6E2E5805000000000000008000400A506F736974696F6E2E59050000 + 000000000080FF3F0A53697A652E576964746805000000000000008003400B53 + 697A652E4865696768740500000000000000B003401453697A652E506C617466 + 6F726D44656661756C7408000005545465787400095374796C654E616D650604 + 7465787405416C69676E0706436C69656E740748697454657374080C4D617267 696E732E4C6566740500000000000000C000400B4D617267696E732E546F7005 - 00000000000000C000400D4D617267696E732E52696768740500000000000000 - C000400E4D617267696E732E426F74746F6D0500000000000000C000400A5369 - 7A652E57696474680500000000000000B004400B53697A652E48656967687405 - 000000000000009803401453697A652E506C6174666F726D44656661756C7408 + 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 + C000400E4D617267696E732E426F74746F6D050000000000000080FF3F0A5369 + 7A652E57696474680500000000000000CA05400B53697A652E48656967687405 + 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 65155465787453657474696E67732E576F7264577261700800000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650612746162436F6C6F7241 - 6E696D6174696F6E310D416E696D6174696F6E547970650705496E4F75740844 - 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463230323032 - 300953746F7056616C7565070978464634303430343007547269676765720621 - 49734D6F7573654F7665723D747275653B497353656C65637465643D66616C73 - 650E54726967676572496E7665727365062249734D6F7573654F7665723D6661 - 6C73653B497353656C65637465643D66616C736500000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D650612746162436F6C6F72416E696D61 - 74696F6E32084475726174696F6E05000000000000000000000C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463230323032300953746F7056616C75650709784646324138324532075472 - 6967676572060F497353656C65637465643D747275650E54726967676572496E - 76657273650610497353656C65637465643D66616C7365000000005450463007 - 544C61796F757400095374796C654E616D65060D7465787463656C6C7374796C - 6505416C69676E070643656E7465720756697369626C6508085461624F726465 - 7202160007544C61796F757400095374796C654E616D650607636F6E74656E74 - 05416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E73 - 2E4C65667405000000000000008001400B4D617267696E732E546F7005000000 - 000000008001400D4D617267696E732E52696768740500000000000000800140 - 0E4D617267696E732E426F74746F6D05000000000000008001400A53697A652E - 57696474680500000000000000A804400B53697A652E48656967687405000000 - 00000000A804401453697A652E506C6174666F726D44656661756C740800000C - 5442727573684F626A65637400095374796C654E616D65060A666F726567726F - 756E6400000C5442727573684F626A65637400095374796C654E616D65060973 - 656C656374696F6E0B42727573682E436F6C6F72070978393632413832453200 - 000B54466F6E744F626A65637400095374796C654E616D650604666F6E740000 - 00545046300754436972636C6500095374796C654E616D65060D7468756D6262 - 61727374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F72 - 07097846463241383245320748697454657374080A53697A652E576964746805 - 00000000000000A003400B53697A652E4865696768740500000000000000A003 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F7207097846463135313531350756697369626C6508000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72 - 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463241383245320953746F7056616C7565070978464631373537 - 39430754726967676572061F4973507265737365643D747275653B49734D6F75 - 73654F7665723D747275650E54726967676572496E7665727365061049735072 - 65737365643D66616C73653B00000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E3208 - 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632413832 - 45320953746F7056616C75650709784646343039424646075472696767657206 - 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 - 650E54726967676572496E7665727365062149734D6F7573654F7665723D6661 - 6C73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D6506157468756D625374726F6B65416E69 - 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 - 657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75 - 6507097846463135313531350953746F7056616C756507097846463137353739 - 430754726967676572061F4973507265737365643D747275653B49734D6F7573 - 654F7665723D747275650E54726967676572496E7665727365060F4973507265 - 737365643D66616C7365000000545046300A5452656374616E676C6500095374 - 796C654E616D65060A7468756D627374796C6505416C69676E070643656E7465 - 720A46696C6C2E436F6C6F720709784646344434443444074869745465737408 - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D6506147468756D - 62436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463444344434440953746F7056616C7565070978 - 46463137353739430754726967676572060E4973507265737365643D74727565 - 0E54726967676572496E7665727365060F4973507265737365643D66616C7365 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 - 6F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05000000 - 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463444344434440953746F7056616C7565 - 0707636C61477261790754726967676572061049734D6F7573654F7665723D74 - 7275650E54726967676572496E7665727365061149734D6F7573654F7665723D - 66616C73650000005450463007544C61796F757400095374796C654E616D6506 - 0D747261636B6261727374796C6505416C69676E070643656E7465720A53697A - 652E57696474680500000000000000C805400B53697A652E4865696768740500 - 000000000000C805401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F7264657202170B466978656448656967687402 - 11000A5452656374616E676C6500095374796C654E616D65060668747261636B - 05416C69676E070A5665727443656E7465720A46696C6C2E436F6C6F72070978 - 46463135313531350748697454657374080A506F736974696F6E2E5905000000 - 00000000BC04400A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000A001401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 - 646975730500000000000000A0004007595261646975730500000000000000A0 - 0040000A5452656374616E676C6500095374796C654E616D65060A6261636B67 - 726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407 - 044E6F6E65064C6F636B6564090748697454657374080C4D617267696E732E4C - 6566740500000000000000C001400B4D617267696E732E546F70050000000000 - 000080FF3F0D4D617267696E732E52696768740500000000000000C001400E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 - 6474680500000000000000B005400B53697A652E486569676874050000000000 - 0000C000401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0FF3F - 07595261646975730500000000000000C0FF3F00000A5452656374616E676C65 - 00095374796C654E616D650609686967686C6967687405416C69676E07044C65 - 66740A46696C6C2E436F6C6F7207097846463241383245320748697454657374 - 080C50616464696E672E4C6566740500000000000000A002400A53697A652E57 - 696474680500000000000000F003400B53697A652E4865696768740500000000 - 000000A001401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000A000 - 4007595261646975730500000000000000A0004000000B54476C6F7745666665 - 63740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F - 720709784646324138324532074F706163697479050000000000000080FF3F07 - 456E61626C6564080000000A5452656374616E676C6500095374796C654E616D - 65060676747261636B05416C69676E070A486F727A43656E7465720A46696C6C - 2E436F6C6F7207097846463135313531350748697454657374080A506F736974 - 696F6E2E580500000000000000BC04400A53697A652E57696474680500000000 - 000000A001400B53697A652E4865696768740500000000000000C80540145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E6507585261646975730500000000000000A000400759526164697573 - 0500000000000000A00040000A5452656374616E676C6500095374796C654E61 - 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946 - 696C6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C - 4D617267696E732E4C6566740500000000000000C001400B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 00000000C001400E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A53697A652E576964746805000000000000000000000B53697A652E486569 - 6768740500000000000000C405401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E - 676C6500095374796C654E616D650609686967686C6967687405416C69676E07 - 03546F700A46696C6C2E436F6C6F720709784646324138324532074869745465 - 7374080A53697A652E57696474680500000000000000A001400B53697A652E48 - 65696768740500000000000000F003401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 - 0500000000000000A0004007595261646975730500000000000000A000400000 - 0B54476C6F774566666563740008536F66746E657373050000000000CDCCCCFC - 3F09476C6F77436F6C6F720709784646324138324532074F7061636974790500 - 00000000000080FF3F07456E61626C65640800000006545468756D6200095374 - 796C654E616D650606687468756D62064C6F636B6564090A506F736974696F6E - 2E580500000000003033AB03400A506F736974696F6E2E59050000000000FFFF - A304400A53697A652E57696474680500000000000000F002400B53697A652E48 - 65696768740500000000000000F002401453697A652E506C6174666F726D4465 - 6661756C74080B5374796C654C6F6F6B7570060D7468756D626261727374796C - 65000006545468756D6200095374796C654E616D650606767468756D62064C6F - 636B6564090A506F736974696F6E2E58050000000000CBCCA804400A506F7369 - 74696F6E2E590500000000009899B103400A53697A652E576964746805000000 - 00000000F002400B53697A652E4865696768740500000000000000F002401453 - 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 - 060D7468756D626261727374796C650000005450463007544C61796F75740009 - 5374796C654E616D6506096D656D6F7374796C6505416C69676E070643656E74 - 65720A53697A652E5769647468050000000000CCCC8806400B53697A652E4865 - 696768740500000000006666F405401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F726465720218000C5442727573 - 684F626A65637400095374796C654E616D65060A666F726567726F756E640000 - 0C5442727573684F626A65637400095374796C654E616D65060973656C656374 - 696F6E0B42727573682E436F6C6F72070978374634343735394400000B54466F - 6E744F626A65637400095374796C654E616D650604666F6E7400000A54526563 - 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032 - 3032300748697454657374080A53697A652E5769647468050000000000CCCC88 - 06400B53697A652E4865696768740500000000006666F405401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 4631353135313507585261646975730500000000000000C00040075952616469 - 75730500000000000000C000400007544C61796F757400095374796C654E616D - 650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E73 - 2E4C65667405000000000000008000400B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000800040 - 0E4D617267696E732E426F74746F6D05000000000000008000400A53697A652E - 57696474680500000000009899E905400B53697A652E48656967687405000000 - 00006666CC05401453697A652E506C6174666F726D44656661756C740800000A - 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 - 7205416C69676E0706426F74746F6D06437572736F72070763724172726F770B - 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 - 6F6E070A486F72697A6F6E74616C0A506F736974696F6E2E5905000000000066 - 66D405400A53697A652E5769647468050000000000CCCC8806400B53697A652E - 48656967687405000000000000008003401453697A652E506C6174666F726D44 - 656661756C740800000A545363726F6C6C42617200095374796C654E616D6506 - 0A767363726F6C6C62617205416C69676E0705526967687406437572736F7207 - 0763724172726F770B536D616C6C4368616E676505000000000000000000000B - 4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E2E58 - 0500000000009899F105400A53697A652E576964746805000000000000008003 - 400B53697A652E4865696768740500000000006666D405401453697A652E506C - 6174666F726D44656661756C7408000007544C61796F75740005416C69676E07 - 06436C69656E740A53697A652E57696474680500000000009899F105400B5369 - 7A652E4865696768740500000000006666D405401453697A652E506C6174666F - 726D44656661756C7408000F54536D616C6C5363726F6C6C4261720009537479 - 6C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E070552 - 6967687406437572736F72070763724172726F770B536D616C6C4368616E6765 - 05000000000000000000000B4F7269656E746174696F6E070856657274696361 - 6C0C4D617267696E732E4C65667405000000000000008000400A53697A652E57 - 6964746805000000000000008002400B53697A652E4865696768740500000000 - 0000008002401453697A652E506C6174666F726D44656661756C740807566973 - 69626C650800000F54536D616C6C5363726F6C6C42617200095374796C654E61 - 6D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F - 6D06437572736F72070763724172726F770B536D616C6C4368616E6765050000 - 00000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C - 0B4D617267696E732E546F7005000000000000008000400A53697A652E576964 - 746805000000000000009606400B53697A652E48656967687405000000000000 - 008002401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C65080000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 6506146D656D6F5374726F6B65416E696D6174696F6E31084475726174696F6E - 050000000000000000000007496E7665727365090C50726F70657274794E616D - 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464631 - 35313531350953746F7056616C75650709784646343034303430075472696767 - 6572062049734D6F7573654F7665723D747275653B4973466F63757365643D66 - 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 - 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D6506146D656D6F5374726F6B6541 - 6E696D6174696F6E32084475726174696F6E05000000000000000000000C5072 - 6F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172745661 - 6C756507097846463430343034300953746F7056616C75650709784646324138 - 3245320754726967676572060E4973466F63757365643D747275650E54726967 - 676572496E7665727365060F4973466F63757365643D66616C73650000000054 - 50463007544C61796F757400095374796C654E616D65060D73697A6567726970 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000C803400B53697A652E4865696768740500000000000000C80340 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720219000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653105416C69676E070643656E7465720A46696C6C - 2E436F6C6F7207097846463630363036300A53697A652E576964746805000000 - 00000000A000400B53697A652E4865696768740500000000000000A000401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6500000A5452656374616E676C6500095374796C654E616D65060A - 52656374616E676C653205416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463630363036300C4D617267696E732E4C6566740500000000 - 000000A002400A53697A652E57696474680500000000000000A000400B53697A - 652E4865696768740500000000000000A000401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452 - 656374616E676C6500095374796C654E616D65060A52656374616E676C653305 - 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646363036 - 3036300C4D617267696E732E4C6566740500000000000000A002400B4D617267 - 696E732E546F700500000000000000A002400A53697A652E5769647468050000 - 0000000000A000400B53697A652E4865696768740500000000000000A0004014 + 65155465787453657474696E67732E576F726457726170081654657874536574 + 74696E67732E486F727A416C69676E07074C656164696E670000095443686563 + 6B426F7800095374796C654E616D650605636865636B05416C69676E07084D6F + 73744C6566740843616E466F637573081244697361626C65466F637573456666 + 656374090A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000C003401453697A652E506C6174666F726D44 + 656661756C74080756697369626C65080000005450463007544C61796F757400 + 095374796C654E616D6506126C697374626F78706C61696E6865616465720541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 72020C000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646324432443244064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000000009205400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350758526164697573 + 0500000000000000C0004007595261646975730500000000000000C000400000 + 05545465787400095374796C654E616D6506047465787405416C69676E070643 + 6C69656E74064C6F636B6564090748697454657374080C4D617267696E732E4C + 6566740500000000000000A001400B4D617267696E732E546F70050000000000 + 00008000400D4D617267696E732E52696768740500000000000000A001400E4D + 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 + 6474680500000000000000FC04400B53697A652E486569676874050000000000 + 0000B003401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746500000054 + 50463007544C61796F757400095374796C654E616D65060C6C697374626F7873 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 000000FFFFE905400B53697A652E486569676874050000000000000083064014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F72646572020D000C5442727573684F626A65637400095374796C654E61 + 6D650618416C7465726E6174696E67526F774261636B67726F756E640B427275 + 73682E436F6C6F72070978464632433243324300000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F + 636B6564090748697454657374080C50616464696E672E4C6566740500000000 + 0000008000400B50616464696E672E546F7005000000000000008000400D5061 + 6464696E672E526967687405000000000000008000400E50616464696E672E42 + 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 + 00FFFFE905400B53697A652E4865696768740500000000000000830640145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 070978464631353135313507585261646975730500000000000000C000400759 + 5261646975730500000000000000C000400007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C436C69 + 704368696C6472656E090A53697A652E5769647468050000000000FFFFC10540 + 0B53697A652E4865696768740500000000000000DE05401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72070978464632 + 41383245320748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6507585261646975730500000000000000C0004007595261646975730500 + 000000000000C0004000000A5452656374616E676C6500095374796C654E616D + 650610666F637573656473656C656374696F6E0A46696C6C2E436F6C6F720709 + 7846463241383245320748697454657374080A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000C8044014 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D6506 - 0A52656374616E676C653405416C69676E070643656E7465720A46696C6C2E43 - 6F6C6F7207097846463630363036300B4D617267696E732E546F700500000000 - 000000A002400A53697A652E57696474680500000000000000A000400B53697A - 652E4865696768740500000000000000A000401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452 - 656374616E676C6500095374796C654E616D65060A52656374616E676C653505 - 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646363036 - 3036300B4D617267696E732E546F700500000000000000A002400D4D61726769 - 6E732E52696768740500000000000000A002400A53697A652E57696474680500 - 000000000000A000400B53697A652E4865696768740500000000000000A00040 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D65 - 060A52656374616E676C653605416C69676E070643656E7465720A46696C6C2E - 436F6C6F7207097846463630363036300C4D617267696E732E4C656674050000 - 0000000000A002400E4D617267696E732E426F74746F6D0500000000000000A0 - 02400A53697A652E57696474680500000000000000A000400B53697A652E4865 - 696768740500000000000000A000401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000545046300A54 - 52656374616E676C6500095374796C654E616D65060E73746174757362617273 - 74796C6505416C69676E070643656E7465720C436C69704368696C6472656E09 - 0A46696C6C2E436F6C6F7207097846463235323532350553696465730B03546F - 70000A53697A652E57696474680500000000000000F004400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135075669 - 7369626C65080007544C61796F757400095374796C654E616D6506074C61796F - 75743105416C69676E070552696768740A506F736974696F6E2E580500000000 - 0000008C04400A53697A652E57696474680500000000000000C803400B53697A - 652E4865696768740500000000000000C804401453697A652E506C6174666F72 - 6D44656661756C740800095453697A654772697000095374796C654E616D6506 - 0973697A65677267697005416C69676E0706426F74746F6D0A506F736974696F - 6E2E590500000000000000C803400A53697A652E576964746805000000000000 - 00C803400B53697A652E4865696768740500000000000000C803401453697A65 - 2E506C6174666F726D44656661756C740800000000545046300A545265637461 - 6E676C6500095374796C654E616D65060C746F6F6C6261727374796C6505416C - 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463235323532 - 350748697454657374080553696465730B06426F74746F6D000A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F7207097846463135313531350756697369626C6508000054 - 50463007544C61796F757400095374796C654E616D65061570726F6772657373 - 6261726572726F727374796C6505416C69676E070643656E7465720A53697A65 - 2E576964746805000000000033338505400B53697A652E486569676874050000 - 0000009999E104401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F72646572021A000A5452656374616E676C650009 - 5374796C654E616D65060668747261636B05416C69676E0708436F6E74656E74 - 730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 - 48697454657374080A53697A652E576964746805000000000033338505400B53 - 697A652E4865696768740500000000009999E104401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 35313507585261646975730500000000000000C0004007595261646975730500 - 000000000000C00040000A5452656374616E676C6500095374796C654E616D65 - 060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F - 6C6F720709784646453232413241064C6F636B6564090748697454657374080C - 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E - 2E59050000000000000080FF3F0A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000009999D904401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E6507585261646975730500000000000000C000400759526164697573050000 - 0000000000C000400000000A5452656374616E676C6500095374796C654E616D - 65060676747261636B05416C69676E0708436F6E74656E74730A46696C6C2E43 - 6F6C6F720709784646323032303230064C6F636B656409074869745465737408 - 0A53697A652E576964746805000000000033338505400B53697A652E48656967 - 68740500000000009999E104401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F7207097846463135313531350758526164 - 6975730500000000000000C0004007595261646975730500000000000000C000 - 40000A5452656374616E676C6500095374796C654E616D65060A76696E646963 - 61746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978 - 4646453232413241064C6F636B6564090748697454657374080C4D617267696E - 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 - 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF - 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F7369 - 74696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000 - 000099998904400A53697A652E576964746805000000000033338105400B5369 - 7A652E4865696768740500000000000000A803401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 - 646975730500000000000000C0004007595261646975730500000000000000C0 - 0040000000005450463007544C61796F757400095374796C654E616D65060E6C - 696E6B6C6162656C7374796C6505416C69676E070643656E7465720A53697A65 - 2E5769647468050000000000CCCC8006400B53697A652E486569676874050000 - 0000009A998104401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F72646572021B0005545465787400095374796C65 - 4E616D6506047465787405416C69676E0708436F6E74656E7473074869745465 - 7374080A53697A652E5769647468050000000000CCCC8006400B53697A652E48 - 65696768740500000000009A998104401453697A652E506C6174666F726D4465 - 6661756C74081A5465787453657474696E67732E466F6E742E5374796C654578 - 740A0D00000004040000000000000004000000165465787453657474696E6773 - 2E466F6E74436F6C6F72070D636C61446F64676572626C7565000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D - 6174696F6E315374796C65084475726174696F6E050000000000000000000007 - 496E7665727365090C50726F70657274794E616D650616546578745365747469 - 6E67732E466F6E74436F6C6F720A537461727456616C7565070D636C61446F64 - 676572626C75650953746F7056616C7565070E636C6144656570736B79626C75 - 650754726967676572063049734D6F7573654F7665723D747275653B49735072 - 65737365643D66616C73653B4973466F63757365643D66616C73650E54726967 - 676572496E7665727365063149734D6F7573654F7665723D66616C73653B4973 - 507265737365643D66616C73653B4973466F63757365643D66616C736500000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F - 72416E696D6174696F6E325374796C65084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D6506165465787453657474696E67732E - 466F6E74436F6C6F720A537461727456616C7565070E636C6144656570736B79 - 626C75650953746F7056616C7565070978464631373537394307547269676765 - 72062F4973507265737365643D747275653B49734D6F7573654F7665723D7472 - 75653B4973466F63757365643D66616C7365000000005450463007544C61796F - 757400095374796C654E616D65060C706F706F7665727374796C6505416C6967 - 6E070643656E7465720756697369626C6508085461624F72646572021C000A54 - 52656374616E676C6500095374796C654E616D650602626705416C69676E0706 - 436C69656E740A46696C6C2E436F6C6F72070978464632303230323007486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 07585261646975730500000000000000C0004007595261646975730500000000 - 000000C000400007544C61796F757400095374796C654E616D650607636F6E74 - 656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566740500 - 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F - 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E - 732E426F74746F6D050000000000000080FF3F0A53697A652E57696474680500 - 000000000000C004400B53697A652E4865696768740500000000000000C00440 - 1453697A652E506C6174666F726D44656661756C740800000D54536861646F77 - 456666656374000844697374616E63650500000000000000C000400944697265 - 6374696F6E0500000000000000B4054008536F66746E65737305000000000000 - 0080FE3F074F706163697479050000000000000080FE3F0B536861646F77436F - 6C6F720708636C61426C61636B000000005450463007544C61796F7574000953 - 74796C654E616D65060D706F707570626F787374796C6505416C69676E070643 - 656E7465720A53697A652E57696474680500000000000080C406400B53697A65 - 2E4865696768740500000000000000D404401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508085461624F72646572021D000A5452 - 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 - 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 - 30323032300748697454657374080A53697A652E576964746805000000000000 - 80C406400B53697A652E4865696768740500000000000000D404401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6507585261646975730500000000000000C0004007595261646975730500 - 000000000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650614436F6C6F72416E696D6174696F6E315374796C650844757261 - 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 - 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 - 746F7056616C756507097846463430343034300754726967676572062049734D - 6F7573654F7665723D747275653B4973507265737365643D66616C73650E5472 - 6967676572496E7665727365062149734D6F7573654F7665723D66616C73653B - 4973507265737365643D66616C736500000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E32537479 - 6C65084475726174696F6E05000000000000000000000C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464634 - 30343034300953746F7056616C75650709784646324138324532075472696767 - 6572062049734D6F7573654F7665723D747275653B4973507265737365643D74 - 7275653B0E54726967676572496E7665727365062049734D6F7573654F766572 - 3D747275653B4973507265737365643D66616C736500000007544C61796F7574 - 0005416C69676E070552696768740A506F736974696F6E2E5805000000000000 - 80B506400A53697A652E57696474680500000000000000F002400B53697A652E - 4865696768740500000000000000D404401453697A652E506C6174666F726D44 - 656661756C7408000554506174680005416C69676E070643656E746572094461 - 74612E506174680A400000000500000000000000000000000000803F01000000 - 0000803F0000803F010000000000003F0000000001000000000000000000803F - 0300000000000000000000000A46696C6C2E436F6C6F720708636C6157686974 - 650748697454657374080B4D617267696E732E546F700500000000000000E001 - C00A53697A652E576964746805000000000000008002400B53697A652E486569 - 67687405000000000000008001401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000554506174680005 - 416C69676E070643656E74657209446174612E506174680A3400000004000000 - 000000000000000000000000010000000000803F00000000010000000000003F + 6407044E6F6E650B5374726F6B652E446173680703446F740758526164697573 + 0500000000000000C0004007595261646975730500000000000000C000400000 + 000A545363726F6C6C42617200095374796C654E616D65060A767363726F6C6C + 62617205416C69676E070552696768740B536D616C6C4368616E676505000000 + 000000000000000B4F7269656E746174696F6E0708566572746963616C0A506F + 736974696F6E2E58050000000000FFFFC505400A506F736974696F6E2E590500 + 0000000000008000400A53697A652E576964746805000000000000008003400B + 53697A652E4865696768740500000000000000DE05401453697A652E506C6174 + 666F726D44656661756C740800000A545363726F6C6C42617200095374796C65 + 4E616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D0B53 + 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F + 6E070A486F72697A6F6E74616C0A506F736974696F6E2E580500000000000000 + 8000400A506F736974696F6E2E590500000000000000E205400A53697A652E57 + 69647468050000000000FFFFE105400B53697A652E4865696768740500000000 + 0000008003401453697A652E506C6174666F726D44656661756C740800000F54 + 536D616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C + 6C7363726F6C6C62617205416C69676E070552696768740B536D616C6C436861 + 6E676505000000000000000000000B4F7269656E746174696F6E070856657274 + 6963616C0C4D617267696E732E4C65667405000000000000008000400A506F73 + 6974696F6E2E580500000000000000C605400A506F736974696F6E2E59050000 + 00000000008000400A53697A652E576964746805000000000000008002400B53 + 697A652E48656967687405000000000000008002401453697A652E506C617466 + 6F726D44656661756C74080756697369626C650800000F54536D616C6C536372 + 6F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C62 + 617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505000000 + 000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B + 4D617267696E732E546F7005000000000000008000400A506F736974696F6E2E + 5805000000000000008000400A506F736974696F6E2E590500000000000000E2 + 05400A53697A652E576964746805000000000000009606400B53697A652E4865 + 6967687405000000000000008002401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508000000005450463007544C61796F75740009 + 5374796C654E616D65060E706F70757063656C6C7374796C6505416C69676E07 + 0643656E7465720756697369626C6508085461624F72646572020E0007544C61 + 796F75740005416C69676E070552696768740A506F736974696F6E2E58050000 + 00000000008C04400A53697A652E57696474680500000000000000F002400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C7408000554506174680005416C69676E070643656E7465 + 7209446174612E506174680A400000000500000000000000000000000000803F + 010000000000803F0000803F010000000000003F000000000100000000000000 0000803F0300000000000000000000000A46696C6C2E436F6C6F720708636C61 57686974650748697454657374080B4D617267696E732E546F70050000000000 - 0000C001400A53697A652E576964746805000000000000008002400B53697A65 + 0000E001C00A53697A652E576964746805000000000000008002400B53697A65 2E48656967687405000000000000008001401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000055454 - 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 - 6E740748697454657374080C4D617267696E732E4C6566740500000000000000 - 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 - 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 - 6F6D050000000000000080FF3F0A53697A652E57696474680500000000000080 - B306400B53697A652E4865696768740500000000000000CC04401453697A652E - 506C6174666F726D44656661756C7408165465787453657474696E67732E466F - 6E74436F6C6F720708636C6157686974650000005450463007544C61796F7574 - 00095374796C654E616D6506157363726F6C6C626172626F74746F6D62757474 - 6F6E05416C69676E070643656E7465720756697369626C6508085461624F7264 - 6572021E000A5452656374616E676C6500095374796C654E616D65060A626163 - 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 - 656E090A436C6970506172656E740907436F726E6572730B07546F704C656674 - 08546F705269676874000A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000005545061 + 74680005416C69676E070643656E74657209446174612E506174680A34000000 + 04000000000000000000000000000000010000000000803F0000000001000000 + 0000003F0000803F0300000000000000000000000A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080B4D617267696E732E546F700500 + 000000000000C001400A53697A652E576964746805000000000000008002400B + 53697A652E48656967687405000000000000008001401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0005545465787400095374796C654E616D6506047465787405416C69676E0706 + 436C69656E74064C6F636B6564090748697454657374080C4D617267696E732E + 4C6566740500000000000000A001400B4D617267696E732E546F700500000000 + 0000008000400D4D617267696E732E52696768740500000000000000A001400E + 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 + 696474680500000000000000C803400B53697A652E4865696768740500000000 + 000000B804401453697A652E506C6174666F726D44656661756C740816546578 + 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 + 5450463007544C61796F757400095374796C654E616D65061070726F67726573 + 736261727374796C6505416C69676E070643656E7465720A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000099 + 99E104401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F72646572020F000A5452656374616E676C6500095374796C + 654E616D65060668747261636B05416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080A53697A652E576964746805000000000033338505400B53697A652E + 4865696768740500000000009999E104401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C00040000A5452656374616E676C6500095374796C654E616D65060A6869 + 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 + 09784646324138324532064C6F636B6564090748697454657374080C4D617267 + 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 + 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 + 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F + 736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500 + 00000000000080FF3F0A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000009999D904401453697A652E506C6174 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758 5261646975730500000000000000C00040075952616469757305000000000000 - 00C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E - 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 - 616C756507097846463430343034300754726967676572062049734D6F757365 - 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 - 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 - 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3208 - 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464634303430 - 34300953746F7056616C75650709784646313735373943075472696767657206 - 1F4973507265737365643D747275653B49734D6F7573654F7665723D74727565 - 0E54726967676572496E766572736506204973507265737365643D66616C7365 - 3B49734D6F7573654F7665723D7472756500000007544C61796F757400095374 - 796C654E616D6506074C61796F75743105416C69676E070643656E7465720A53 - 697A652E57696474680500000000000000A002400B53697A652E486569676874 - 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 - 080005545061746800095374796C654E616D650605506174683105416C69676E - 0706436C69656E7409446174612E506174680A34000000040000000000000000 - 00C8420000C84201000000000096430000C84201000000000048430000964303 - 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 - 0748697454657374080A53697A652E57696474680500000000000000A002400B - 53697A652E4865696768740500000000000000C001401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 00005450463007544C61796F757400095374796C654E616D6506137363726F6C - 6C6261726C656674627574746F6E05416C69676E070643656E74657207566973 - 69626C6508085461624F72646572021F000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E - 740C436C69704368696C6472656E090A436C6970506172656E740907436F726E - 6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E6507585261646975730500000000000000C0004007 - 595261646975730500000000000000C00040000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D61 - 74696F6E31084475726174696F6E05000000000000000000000C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463230323032300953746F7056616C75650709784646343034303430075472 - 6967676572062049734D6F7573654F7665723D747275653B4973507265737365 - 643D66616C73650E54726967676572496E7665727365062149734D6F7573654F - 7665723D66616C73653B4973507265737365643D66616C736500000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F + 00C000400000000A5452656374616E676C6500095374796C654E616D65060676 + 747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646323032303230064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000033338505400B53697A652E4865696768740500 + 000000009999E104401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135075852616469757305 + 00000000000000C0004007595261646975730500000000000000C00040000A54 + 52656374616E676C6500095374796C654E616D65060A76696E64696361746F72 + 05416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846463241 + 38324532064C6F636B6564090748697454657374080C4D617267696E732E4C65 + 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E + 2E58050000000000000080FF3F0A506F736974696F6E2E590500000000009999 + 8904400A53697A652E576964746805000000000033338105400B53697A652E48 + 65696768740500000000000000A803401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 + 0500000000000000C0004007595261646975730500000000000000C000400000 + 00005450463007544C61796F757400095374796C654E616D65061170726F6772 + 65737363656C6C7374796C6505416C69676E070643656E7465720A53697A652E + 57696474680500000000000000F805400B53697A652E48656967687405000000 + 00000000FC05401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F7264657202100007544C61796F757400095374796C + 654E616D65060668747261636B05416C69676E0708436F6E74656E7473064C6F + 636B6564090C4D617267696E732E4C65667405000000000000008000400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 + 000000008000400A53697A652E57696474680500000000000000F005400B5369 + 7A652E4865696768740500000000000000F405401453697A652E506C6174666F + 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D + 65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E43 + 6F6C6F720709784646324138324532064C6F636B656409074869745465737408 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 + 00400A506F736974696F6E2E5805000000000000008000400A506F736974696F + 6E2E5905000000000000008000400A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000EC05401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6507585261646975730500000000000000C0004007595261646975730500 + 000000000000C0004000000000545046300A5452656374616E676C6500095374 + 796C654E616D6506147363726F6C6C62617268747261636B7374796C6505416C + 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463135313531 + 350748697454657374080A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 + 56697369626C65080006545468756D6200095374796C654E616D650605746875 + 6D62064C6F636B6564090A53697A652E57696474680500000000000000800340 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D62 + 7374796C650000005450463007544C61796F757400095374796C654E616D6506 + 0E7363726F6C6C6261727374796C6505416C69676E070643656E746572075669 + 7369626C6508085461624F726465720211000754427574746F6E00095374796C + 654E616D65060A6C656674627574746F6E05416C69676E07044C656674064C6F + 636B6564090A506F736974696F6E2E5905000000000000008003400A53697A65 + 2E576964746805000000000000008003400B53697A652E486569676874050000 + 00000000009003401453697A652E506C6174666F726D44656661756C74080B53 + 74796C654C6F6F6B757006137363726F6C6C6261726C656674627574746F6E00 + 000754427574746F6E00095374796C654E616D65060B7269676874627574746F + 6E05416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E + 5805000000000000008804400A506F736974696F6E2E59050000000000000080 + 03400A53697A652E576964746805000000000000008003400B53697A652E4865 + 6967687405000000000000009003401453697A652E506C6174666F726D446566 + 61756C74080B5374796C654C6F6F6B757006147363726F6C6C62617272696768 + 74627574746F6E00000754427574746F6E00095374796C654E616D65060C626F + 74746F6D627574746F6E05416C69676E0706426F74746F6D064C6F636B656409 + 0A506F736974696F6E2E5905000000000000008804400A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + 8003401453697A652E506C6174666F726D44656661756C74080B5374796C654C + 6F6F6B757006157363726F6C6C626172626F74746F6D627574746F6E00000654 + 547261636B00095374796C654E616D65060668747261636B05416C69676E0706 + 436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F7269 + 7A6F6E74616C0A53697A652E576964746805000000000000009003400B53697A + 652E48656967687405000000000000009003401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172 + 68747261636B7374796C6500000654547261636B00095374796C654E616D6506 + 0676747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F72 + 69656E746174696F6E070A486F72697A6F6E74616C0A53697A652E5769647468 + 05000000000000009003400B53697A652E486569676874050000000000000090 + 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B757006147363726F6C6C62617276747261636B7374796C65000007544275 + 74746F6E00095374796C654E616D650609746F70627574746F6E05416C69676E + 0703546F700A53697A652E57696474680500000000000000C804400B53697A65 + 2E48656967687405000000000000008003401453697A652E506C6174666F726D + 44656661756C74080B5374796C654C6F6F6B757006127363726F6C6C62617274 + 6F70627574746F6E000000545046300A5452656374616E676C6500095374796C + 654E616D6506147363726F6C6C62617276747261636B7374796C6505416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F72070978464631353135313507 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669 + 7369626C65080006545468756D6200095374796C654E616D6506057468756D62 + 064C6F636B6564090A53697A652E57696474680500000000000000C804400B53 + 697A652E48656967687405000000000000008003401453697A652E506C617466 + 6F726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D627374 + 796C650000005450463007544C61796F757400095374796C654E616D65060C73 + 70696E626F787374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000006666E005400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C740807566973 + 69626C6508085461624F726465720212000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A652E57 + 696474680500000000006666E005400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135075852616469757305000000 + 00000000C0004007595261646975730500000000000000C00040000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E69 + 6D6174696F6E315374796C65084475726174696F6E0500000000000000000000 + 07496E7665727365090C50726F70657274794E616D65060C5374726F6B652E43 + 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 + 616C756507097846463430343034300754726967676572061049734D6F757365 + 4F7665723D747275650E54726967676572496E7665727365061149734D6F7573 + 654F7665723D66616C73650000000C5442727573684F626A6563740009537479 + 6C654E616D65060A666F726567726F756E640B42727573682E436F6C6F720709 + 78464645414541454100000C5442727573684F626A65637400095374796C654E + 616D65060973656C656374696F6E0B42727573682E436F6C6F72070978393632 + 4138324532000007544C61796F757400095374796C654E616D650607636F6E74 + 656E7405416C69676E0706436C69656E74064C6F636B6564090C4D617267696E + 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 + 00000000008000400D4D617267696E732E526967687405000000000000008000 + 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 + 2E576964746805000000000070668405400B53697A652E486569676874050000 + 00000000008803401453697A652E506C6174666F726D44656661756C74080000 + 0754427574746F6E00095374796C654E616D65060B6D696E7573627574746F6E + 05416C69676E07074669744C6566740843616E466F6375730806437572736F72 + 070763724172726F770C4D617267696E732E4C65667405000000000000008000 + 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 + 2E526967687405000000000000008000400E4D617267696E732E426F74746F6D + 05000000000000008000400A506F736974696F6E2E5805000000000000008000 + 400A506F736974696F6E2E5905000000000000008000400A53697A652E576964 + 7468050000000000E8FF8703400B53697A652E48656967687405000000000000 + 008803401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B7570060B627574746F6E7374796C65000554506174680005416C6967 + 6E0706436C69656E7409446174612E506174680A400000000500000000000000 + 0000803F00000000010000000000803F0000803F01000000000000000000003F + 010000000000803F00000000030000000000803F000000000A46696C6C2E436F + 6C6F720708636C6157686974650748697454657374080C4D617267696E732E4C + 6566740500000000000000C001400B4D617267696E732E546F70050000000000 + 0000C001400D4D617267696E732E52696768740500000000000000C001400E4D + 617267696E732E426F74746F6D0500000000000000C001400A53697A652E5769 + 647468050000000000A0FF9F01400B53697A652E486569676874050000000000 + 0000A001401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650000000754427574746F6E00095374796C654E + 616D65060A706C7573627574746F6E05416C69676E0708466974526967687408 + 43616E466F6375730806437572736F72070763724172726F770C4D617267696E + 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 + 00000000008000400D4D617267696E732E526967687405000000000000008000 + 400E4D617267696E732E426F74746F6D05000000000000008000400A506F7369 + 74696F6E2E580500000000006A66BA05400A506F736974696F6E2E5905000000 + 000000008000400A53697A652E5769647468050000000000F0FF8703400B5369 + 7A652E48656967687405000000000000008803401453697A652E506C6174666F + 726D44656661756C74080B5374796C654C6F6F6B7570060B627574746F6E7374 + 796C65000554506174680005416C69676E0706436C69656E7409446174612E50 + 6174680A34000000040000000000000000000000000000000100000000000000 + 0000803F010000000000803F0000003F0300000000000000000000000A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080C4D61726769 + 6E732E4C6566740500000000000000C001400B4D617267696E732E546F700500 + 000000000000C001400D4D617267696E732E52696768740500000000000000C0 + 01400E4D617267696E732E426F74746F6D0500000000000000C001400A53697A + 652E5769647468050000000000C0FF9F01400B53697A652E4865696768740500 + 000000000000A001401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6500000000545046300D545377697463 + 684F626A65637400095374796C654E616D65060B7377697463687374796C6505 + 416C69676E070643656E746572044B696E64070C466164696E67547261636B73 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C7408085461624F72646572021312547261636B696E675468756D625363616C + 65050000000000000080FF3F0756697369626C65080A46696C6C2E436F6C6F72 + 07097846463230323032300C46696C6C4F6E2E436F6C6F720709784646313735 + 3739430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F6B652E4B69 + 6E6407044E6F6E650B5468756D622E436F6C6F7207097846463430343034300D + 5468756D624F6E2E436F6C6F7207097846463241383245320C5468756D624F6E + 2E4B696E640705536F6C6964105468756D625374726F6B652E4B696E6407044E + 6F6E650F5468756D625374726F6B652E4361700705526F756E64105468756D62 + 5374726F6B652E446173680706437573746F6D105468756D625374726F6B652E + 4A6F696E0705526F756E64165468756D625374726F6B652E437573746F6D4461 + 73680A0800000000000000000000000553686170650709526F756E6452656374 + 00005450463007544C61796F757400095374796C654E616D65060F746162636F + 6E74726F6C7374796C6505416C69676E070643656E7465720A53697A652E5769 + 64746805000000000000008E06400B53697A652E486569676874050000000000 + FFFFC905401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F726465720214000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 747307436F726E6572730B08546F7052696768740A426F74746F6D4C6566740B + 426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464633303330 + 3330064C6F636B6564090748697454657374080C50616464696E672E4C656674 + 05000000000000008000400B50616464696E672E546F70050000000000000080 + 00400D50616464696E672E526967687405000000000000008000400E50616464 + 696E672E426F74746F6D05000000000000008000400A53697A652E5769647468 + 05000000000000008E06400B53697A652E486569676874050000000000FFFFC9 + 05401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313507585261646975730500000000000000 + C0004007595261646975730500000000000000C00040000000545046300A5452 + 656374616E676C6500095374796C654E616D65060B746162646F747374796C65 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463135 + 313531350748697454657374080A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E650756697369626C650807585261646975730500000000000000C803400759 + 5261646975730500000000000000C80340000F54436F6C6F72416E696D617469 + 6F6E00084475726174696F6E05000000000018B7D1F23F0C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3135313531350953746F7056616C756507097846463241383245320754726967 + 676572060F497353656C65637465643D747275650E54726967676572496E7665 + 7273650610497353656C65637465643D66616C73650000005450463007544C61 + 796F757400095374796C654E616D65060C7461626974656D7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 0215000A5452656374616E676C6500095374796C654E616D650603746F700541 + 6C69676E0708436F6E74656E74730C436C69704368696C6472656E0907436F72 + 6E6572730B07546F704C65667408546F705269676874000A46696C6C2E436F6C + 6F720709784646323032303230064C6F636B6564090748697454657374080553 + 696465730B03546F70044C656674055269676874000A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313507585261646975730500000000000000 + C0004007595261646975730500000000000000C00040000654476C7970680009 + 5374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C65 + 667405000000000000008001400D4D617267696E732E52696768740500000000 + 0000008001C005416C69676E07044C6566740A506F736974696F6E2E58050000 + 00000000008001400A53697A652E576964746805000000000000008003400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C7408000005545465787400095374796C654E616D650604 + 7465787405416C69676E0706436C69656E74064C6F636B656409074869745465 + 7374080C4D617267696E732E4C6566740500000000000000C000400B4D617267 + 696E732E546F700500000000000000C000400D4D617267696E732E5269676874 + 0500000000000000C000400E4D617267696E732E426F74746F6D050000000000 + 0000C000400A53697A652E57696474680500000000000000B004400B53697A65 + 2E48656967687405000000000000009803401453697A652E506C6174666F726D + 44656661756C7408165465787453657474696E67732E466F6E74436F6C6F7207 + 08636C615768697465155465787453657474696E67732E576F72645772617008 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061274 + 6162436F6C6F72416E696D6174696F6E310D416E696D6174696F6E5479706507 + 05496E4F7574084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572062149734D6F7573654F7665723D747275653B497353656C6563 + 7465643D66616C73650E54726967676572496E7665727365062249734D6F7573 + 654F7665723D66616C73653B497353656C65637465643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650612746162436F 6C6F72416E696D6174696F6E32084475726174696F6E05000000000000000000 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463430343034300953746F7056616C7565070978464631 - 37353739430754726967676572061F4973507265737365643D747275653B4973 - 4D6F7573654F7665723D747275650E54726967676572496E7665727365062049 - 73507265737365643D66616C73653B49734D6F7573654F7665723D7472756500 - 000007544C61796F757400095374796C654E616D6506074C61796F7574310541 - 6C69676E070643656E7465720A53697A652E57696474680500000000000000A0 - 02400B53697A652E4865696768740500000000000000C001401453697A652E50 - 6C6174666F726D44656661756C74080005545061746800095374796C654E616D - 650605506174683105416C69676E0706436C69656E7409446174612E50617468 - 0A3400000004000000000000000000C8420000C84201000000000096430000C8 - 42010000000000484300009643030000000000C8420000C8420A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080D526F746174696F6E - 416E676C650500000000000000B405400A53697A652E57696474680500000000 - 000000A002400B53697A652E4865696768740500000000000000C00140145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000000005450463007544C61796F757400095374796C654E616D65 - 06147363726F6C6C6261727269676874627574746F6E05416C69676E07064365 - 6E7465720756697369626C6508085461624F726465720220000A545265637461 + 56616C756507097846463230323032300953746F7056616C7565070978464632 + 41383245320754726967676572060F497353656C65637465643D747275650E54 + 726967676572496E76657273650610497353656C65637465643D66616C736500 + 0000005450463007544C61796F757400095374796C654E616D65060D74657874 + 63656C6C7374796C6505416C69676E070643656E7465720756697369626C6508 + 085461624F7264657202160007544C61796F757400095374796C654E616D6506 + 07636F6E74656E7405416C69676E0708436F6E74656E7473064C6F636B656409 + 0C4D617267696E732E4C65667405000000000000008001400B4D617267696E73 + 2E546F7005000000000000008001400D4D617267696E732E5269676874050000 + 00000000008001400E4D617267696E732E426F74746F6D050000000000000080 + 01400A53697A652E57696474680500000000000000A804400B53697A652E4865 + 696768740500000000000000A804401453697A652E506C6174666F726D446566 + 61756C740800000C5442727573684F626A65637400095374796C654E616D6506 + 0A666F726567726F756E6400000C5442727573684F626A65637400095374796C + 654E616D65060973656C656374696F6E0B42727573682E436F6C6F7207097839 + 3632413832453200000B54466F6E744F626A65637400095374796C654E616D65 + 0604666F6E74000000545046300754436972636C6500095374796C654E616D65 + 060D7468756D626261727374796C6505416C69676E070643656E7465720A4669 + 6C6C2E436F6C6F7207097846463241383245320748697454657374080A53697A + 652E57696474680500000000000000A003400B53697A652E4865696768740500 + 000000000000A003401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F7207097846463135313531350756697369626C6508 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506147468 + 756D62436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 + 0000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463241383245320953746F7056616C756507 + 097846463137353739430754726967676572061F4973507265737365643D7472 + 75653B49734D6F7573654F7665723D747275650E54726967676572496E766572 + 736506104973507265737365643D66616C73653B00000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E69 + 6D6174696F6E32084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463241383245320953746F7056616C7565070978464634303942464607 + 54726967676572062049734D6F7573654F7665723D747275653B497350726573 + 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 + 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D6506157468756D6253 + 74726F6B65416E696D6174696F6E31084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53 + 7461727456616C756507097846463135313531350953746F7056616C75650709 + 7846463137353739430754726967676572061F4973507265737365643D747275 + 653B49734D6F7573654F7665723D747275650E54726967676572496E76657273 + 65060F4973507265737365643D66616C7365000000545046300A545265637461 + 6E676C6500095374796C654E616D65060A7468756D627374796C6505416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F72070978464634443444344407 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669 + 7369626C6508000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D6506147468756D62436F6C6F72416E696D6174696F6E31084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463444344434440953746F70 + 56616C756507097846463137353739430754726967676572060E497350726573 + 7365643D747275650E54726967676572496E7665727365060F49735072657373 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650614436F6C6F72416E696D6174696F6E315374796C650844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463444344434440953 + 746F7056616C75650707636C61477261790754726967676572061049734D6F75 + 73654F7665723D747275650E54726967676572496E7665727365061149734D6F + 7573654F7665723D66616C73650000005450463007544C61796F757400095374 + 796C654E616D65060D747261636B6261727374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C805401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F7264657202170B46697865 + 644865696768740211000A5452656374616E676C6500095374796C654E616D65 + 060668747261636B05416C69676E070A5665727443656E7465720A46696C6C2E + 436F6C6F7207097846463135313531350748697454657374080A506F73697469 + 6F6E2E590500000000000000BC04400A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000A001401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6507585261646975730500000000000000A00040075952616469757305 + 00000000000000A00040000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473094669 + 6C6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C4D + 617267696E732E4C6566740500000000000000C001400B4D617267696E732E54 + 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 + 000000C001400E4D617267696E732E426F74746F6D050000000000000080FF3F + 0A53697A652E57696474680500000000000000B005400B53697A652E48656967 + 68740500000000000000C000401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573050000 + 0000000000C0FF3F07595261646975730500000000000000C0FF3F00000A5452 + 656374616E676C6500095374796C654E616D650609686967686C696768740541 + 6C69676E07044C6566740A46696C6C2E436F6C6F720709784646324138324532 + 0748697454657374080C50616464696E672E4C6566740500000000000000A002 + 400A53697A652E57696474680500000000000000F003400B53697A652E486569 + 6768740500000000000000A001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 000000000000A0004007595261646975730500000000000000A0004000000B54 + 476C6F774566666563740008536F66746E657373050000000000CDCCCCFC3F09 + 476C6F77436F6C6F720709784646324138324532074F70616369747905000000 + 0000000080FF3F07456E61626C6564080000000A5452656374616E676C650009 + 5374796C654E616D65060676747261636B05416C69676E070A486F727A43656E + 7465720A46696C6C2E436F6C6F72070978464631353135313507486974546573 + 74080A506F736974696F6E2E580500000000000000BC04400A53697A652E5769 + 6474680500000000000000A001400B53697A652E486569676874050000000000 + 0000C805401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6507585261646975730500000000000000A00040 + 07595261646975730500000000000000A00040000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F + 6E74656E74730946696C6C2E4B696E6407044E6F6E65064C6F636B6564090748 + 697454657374080C4D617267696E732E4C6566740500000000000000C001400B + 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 + 696768740500000000000000C001400E4D617267696E732E426F74746F6D0500 + 00000000000080FF3F0A53697A652E576964746805000000000000000000000B + 53697A652E4865696768740500000000000000C405401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0A5452656374616E676C6500095374796C654E616D650609686967686C696768 + 7405416C69676E0703546F700A46696C6C2E436F6C6F72070978464632413832 + 45320748697454657374080A53697A652E57696474680500000000000000A001 + 400B53697A652E4865696768740500000000000000F003401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 07585261646975730500000000000000A0004007595261646975730500000000 + 000000A0004000000B54476C6F774566666563740008536F66746E6573730500 + 00000000CDCCCCFC3F09476C6F77436F6C6F720709784646324138324532074F + 706163697479050000000000000080FF3F07456E61626C656408000000065454 + 68756D6200095374796C654E616D650606687468756D62064C6F636B6564090A + 506F736974696F6E2E580500000000003033AB03400A506F736974696F6E2E59 + 050000000000FFFFA304400A53697A652E57696474680500000000000000F002 + 400B53697A652E4865696768740500000000000000F002401453697A652E506C + 6174666F726D44656661756C74080B5374796C654C6F6F6B7570060D7468756D + 626261727374796C65000006545468756D6200095374796C654E616D65060676 + 7468756D62064C6F636B6564090A506F736974696F6E2E58050000000000CBCC + A804400A506F736974696F6E2E590500000000009899B103400A53697A652E57 + 696474680500000000000000F002400B53697A652E4865696768740500000000 + 000000F002401453697A652E506C6174666F726D44656661756C74080B537479 + 6C654C6F6F6B7570060D7468756D626261727374796C65000000545046300754 + 4C61796F757400095374796C654E616D6506096D656D6F7374796C6505416C69 + 676E070643656E7465720A53697A652E5769647468050000000000CCCC880640 + 0B53697A652E4865696768740500000000006666F405401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 18000C5442727573684F626A65637400095374796C654E616D65060A666F7265 + 67726F756E6400000C5442727573684F626A65637400095374796C654E616D65 + 060973656C656374696F6E0B42727573682E436F6C6F72070978374634343735 + 394400000B54466F6E744F626A65637400095374796C654E616D650604666F6E + 7400000A5452656374616E676C6500095374796C654E616D65060A6261636B67 + 726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080A53697A652E576964746805 + 0000000000CCCC8806400B53697A652E4865696768740500000000006666F405 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F72070978464631353135313507585261646975730500000000000000C0 + 004007595261646975730500000000000000C000400007544C61796F75740009 + 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E57696474680500000000009899E905400B53697A652E4865 + 696768740500000000006666CC05401453697A652E506C6174666F726D446566 + 61756C740800000A545363726F6C6C42617200095374796C654E616D65060A68 + 7363726F6C6C62617205416C69676E0706426F74746F6D06437572736F720707 + 63724172726F770B536D616C6C4368616E676505000000000000000000000B4F + 7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E + 590500000000006666D405400A53697A652E5769647468050000000000CCCC88 + 06400B53697A652E48656967687405000000000000008003401453697A652E50 + 6C6174666F726D44656661756C740800000A545363726F6C6C42617200095374 + 796C654E616D65060A767363726F6C6C62617205416C69676E07055269676874 + 06437572736F72070763724172726F770B536D616C6C4368616E676505000000 + 000000000000000B4F7269656E746174696F6E0708566572746963616C0A506F + 736974696F6E2E580500000000009899F105400A53697A652E57696474680500 + 0000000000008003400B53697A652E4865696768740500000000006666D40540 + 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 + 0005416C69676E0706436C69656E740A53697A652E5769647468050000000000 + 9899F105400B53697A652E4865696768740500000000006666D405401453697A + 652E506C6174666F726D44656661756C7408000F54536D616C6C5363726F6C6C + 42617200095374796C654E616D65060F76736D616C6C7363726F6C6C62617205 + 416C69676E0705526967687406437572736F72070763724172726F770B536D61 + 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 + 08566572746963616C0C4D617267696E732E4C65667405000000000000008000 + 400A53697A652E576964746805000000000000008002400B53697A652E486569 + 67687405000000000000008002401453697A652E506C6174666F726D44656661 + 756C74080756697369626C650800000F54536D616C6C5363726F6C6C42617200 + 095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C6967 + 6E0706426F74746F6D06437572736F72070763724172726F770B536D616C6C43 + 68616E676505000000000000000000000B4F7269656E746174696F6E070A486F + 72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A + 53697A652E576964746805000000000000009606400B53697A652E4865696768 + 7405000000000000008002401453697A652E506C6174666F726D44656661756C + 74080756697369626C65080000000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D6506146D656D6F5374726F6B65416E696D6174696F6E3108 + 4475726174696F6E050000000000000000000007496E7665727365090C50726F + 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C + 756507097846463135313531350953746F7056616C7565070978464634303430 + 34300754726967676572062049734D6F7573654F7665723D747275653B497346 + 6F63757365643D66616C73650E54726967676572496E7665727365062149734D + 6F7573654F7665723D66616C73653B4973466F63757365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506146D656D + 6F5374726F6B65416E696D6174696F6E32084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 + 0A537461727456616C756507097846463430343034300953746F7056616C7565 + 07097846463241383245320754726967676572060E4973466F63757365643D74 + 7275650E54726967676572496E7665727365060F4973466F63757365643D6661 + 6C7365000000005450463007544C61796F757400095374796C654E616D65060D + 73697A65677269707374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000C803400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F726465720219000A5452656374616E676C650009 + 5374796C654E616D65060A52656374616E676C653105416C69676E070643656E + 7465720A46696C6C2E436F6C6F7207097846463630363036300A53697A652E57 + 696474680500000000000000A000400B53697A652E4865696768740500000000 + 000000A000401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009537479 + 6C654E616D65060A52656374616E676C653205416C69676E070643656E746572 + 0A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C + 6566740500000000000000A002400A53697A652E576964746805000000000000 + 00A000400B53697A652E4865696768740500000000000000A000401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653305416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463630363036300C4D617267696E732E4C6566740500000000000000 + A002400B4D617267696E732E546F700500000000000000A002400A53697A652E + 57696474680500000000000000A000400B53697A652E48656967687405000000 + 00000000A000401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653405416C69676E070643656E7465 + 720A46696C6C2E436F6C6F7207097846463630363036300B4D617267696E732E + 546F700500000000000000A002400A53697A652E576964746805000000000000 + 00A000400B53697A652E4865696768740500000000000000A000401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653505416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463630363036300B4D617267696E732E546F700500000000000000A0 + 02400D4D617267696E732E52696768740500000000000000A002400A53697A65 + 2E57696474680500000000000000A000400B53697A652E486569676874050000 + 0000000000A000401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65000953 + 74796C654E616D65060A52656374616E676C653605416C69676E070643656E74 + 65720A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E73 + 2E4C6566740500000000000000A002400E4D617267696E732E426F74746F6D05 + 00000000000000A002400A53697A652E57696474680500000000000000A00040 + 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0000545046300A5452656374616E676C6500095374796C654E616D65060E7374 + 617475736261727374796C6505416C69676E070643656E7465720C436C697043 + 68696C6472656E090A46696C6C2E436F6C6F7207097846463235323532350553 + 696465730B03546F70000A53697A652E57696474680500000000000000F00440 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 35313531350756697369626C65080007544C61796F757400095374796C654E61 + 6D6506074C61796F75743105416C69676E070552696768740A506F736974696F + 6E2E5805000000000000008C04400A53697A652E576964746805000000000000 + 00C803400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C740800095453697A654772697000095374 + 796C654E616D65060973697A65677267697005416C69676E0706426F74746F6D + 0A506F736974696F6E2E590500000000000000C803400A53697A652E57696474 + 680500000000000000C803400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C740800000000545046 + 300A5452656374616E676C6500095374796C654E616D65060C746F6F6C626172 + 7374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F720709 + 7846463235323532350748697454657374080553696465730B06426F74746F6D + 000A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313507566973 + 69626C650800005450463007544C61796F757400095374796C654E616D650615 + 70726F67726573736261726572726F727374796C6505416C69676E070643656E + 7465720A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F72646572021A000A54526563 + 74616E676C6500095374796C654E616D65060668747261636B05416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230323006 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 070978464631353135313507585261646975730500000000000000C000400759 + 5261646975730500000000000000C00040000A5452656374616E676C65000953 + 74796C654E616D65060A68696E64696361746F7205416C69676E07044C656674 + 0A46696C6C2E436F6C6F720709784646453232413241064C6F636B6564090748 + 697454657374080C4D617267696E732E4C656674050000000000000080FF3F0B + 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 + 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 + 00000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A + 506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000009999D9 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6507585261646975730500000000000000C00040075952 + 61646975730500000000000000C000400000000A5452656374616E676C650009 + 5374796C654E616D65060676747261636B05416C69676E0708436F6E74656E74 + 730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 + 48697454657374080A53697A652E576964746805000000000033338505400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 35313507585261646975730500000000000000C0004007595261646975730500 + 000000000000C00040000A5452656374616E676C6500095374796C654E616D65 + 060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E + 436F6C6F720709784646453232413241064C6F636B6564090748697454657374 + 080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73697469 + 6F6E2E5905000000000099998904400A53697A652E5769647468050000000000 + 33338105400B53697A652E4865696768740500000000000000A803401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6507585261646975730500000000000000C00040075952616469757305 + 00000000000000C00040000000005450463007544C61796F757400095374796C + 654E616D65060E6C696E6B6C6162656C7374796C6505416C69676E070643656E + 7465720A53697A652E5769647468050000000000CCCC8006400B53697A652E48 + 65696768740500000000009A998104401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F72646572021B000554546578 + 7400095374796C654E616D6506047465787405416C69676E0708436F6E74656E + 74730748697454657374080A53697A652E5769647468050000000000CCCC8006 + 400B53697A652E4865696768740500000000009A998104401453697A652E506C + 6174666F726D44656661756C74081A5465787453657474696E67732E466F6E74 + 2E5374796C654578740A0D000000040400000000000000040000001654657874 + 53657474696E67732E466F6E74436F6C6F72070D636C61446F64676572626C75 + 65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 + 6F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05000000 + 0000000000000007496E7665727365090C50726F70657274794E616D65061654 + 65787453657474696E67732E466F6E74436F6C6F720A537461727456616C7565 + 070D636C61446F64676572626C75650953746F7056616C7565070E636C614465 + 6570736B79626C75650754726967676572063049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C73653B4973466F63757365643D6661 + 6C73650E54726967676572496E7665727365063149734D6F7573654F7665723D + 66616C73653B4973507265737365643D66616C73653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F + 6E05000000000000000000000C50726F70657274794E616D6506165465787453 + 657474696E67732E466F6E74436F6C6F720A537461727456616C7565070E636C + 6144656570736B79626C75650953746F7056616C756507097846463137353739 + 430754726967676572062F4973507265737365643D747275653B49734D6F7573 + 654F7665723D747275653B4973466F63757365643D66616C7365000000005450 + 463007544C61796F757400095374796C654E616D65060C706F706F7665727374 + 796C6505416C69676E070643656E7465720756697369626C6508085461624F72 + 646572021C000A5452656374616E676C6500095374796C654E616D6506026267 + 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 464631353135313507585261646975730500000000000000C000400759526164 + 6975730500000000000000C000400007544C61796F757400095374796C654E61 + 6D650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E + 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 + 2E57696474680500000000000000C004400B53697A652E486569676874050000 + 0000000000C004401453697A652E506C6174666F726D44656661756C74080000 + 0D54536861646F77456666656374000844697374616E63650500000000000000 + C0004009446972656374696F6E0500000000000000B4054008536F66746E6573 + 73050000000000000080FE3F074F706163697479050000000000000080FE3F0B + 536861646F77436F6C6F720708636C61426C61636B000000005450463007544C + 61796F757400095374796C654E616D65060D706F707570626F787374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000080 + C406400B53697A652E4865696768740500000000000000D404401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 6572021D000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080A53697A652E57696474 + 680500000000000080C406400B53697A652E4865696768740500000000000000 + D404401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6507585261646975730500000000000000C000400759 + 5261646975730500000000000000C00040000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374 + 796C65084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3230323032300953746F7056616C756507097846463430343034300754726967 + 676572062049734D6F7573654F7665723D747275653B4973507265737365643D + 66616C73650E54726967676572496E7665727365062149734D6F7573654F7665 + 723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E325374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463430343034300953746F7056616C7565070978464632413832 + 45320754726967676572062049734D6F7573654F7665723D747275653B497350 + 7265737365643D747275653B0E54726967676572496E7665727365062049734D + 6F7573654F7665723D747275653B4973507265737365643D66616C7365000000 + 07544C61796F75740005416C69676E070552696768740A506F736974696F6E2E + 580500000000000080B506400A53697A652E57696474680500000000000000F0 + 02400B53697A652E4865696768740500000000000000D404401453697A652E50 + 6C6174666F726D44656661756C7408000554506174680005416C69676E070643 + 656E74657209446174612E506174680A40000000050000000000000000000000 + 0000803F010000000000803F0000803F010000000000003F0000000001000000 + 000000000000803F0300000000000000000000000A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080B4D617267696E732E546F700500 + 000000000000E001C00A53697A652E576964746805000000000000008002400B + 53697A652E48656967687405000000000000008001401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0554506174680005416C69676E070643656E74657209446174612E506174680A + 3400000004000000000000000000000000000000010000000000803F00000000 + 010000000000003F0000803F0300000000000000000000000A46696C6C2E436F + 6C6F720708636C6157686974650748697454657374080B4D617267696E732E54 + 6F700500000000000000C001400A53697A652E57696474680500000000000000 + 8002400B53697A652E48656967687405000000000000008001401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E6500000005545465787400095374796C654E616D6506047465787405416C69 + 676E0706436C69656E740748697454657374080C4D617267696E732E4C656674 + 050000000000000080FF3F0B4D617267696E732E546F70050000000000000080 + FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267 + 696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769647468 + 0500000000000080B306400B53697A652E4865696768740500000000000000CC + 04401453697A652E506C6174666F726D44656661756C74081654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746500000054504630 + 07544C61796F757400095374796C654E616D6506157363726F6C6C626172626F + 74746F6D627574746F6E05416C69676E070643656E7465720756697369626C65 + 08085461624F72646572021E000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C + 69704368696C6472656E090A436C6970506172656E740907436F726E6572730B + 07546F704C65667408546F705269676874000A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6507585261646975730500000000000000C0004007595261646975 + 730500000000000000C00040000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 + 32300953746F7056616C75650709784646343034303430075472696767657206 + 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 650E54726967676572496E7665727365062149734D6F7573654F7665723D6661 + 6C73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 + 6D6174696F6E32084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463430343034300953746F7056616C7565070978464631373537394307 + 54726967676572061F4973507265737365643D747275653B49734D6F7573654F + 7665723D747275650E54726967676572496E7665727365062049735072657373 + 65643D66616C73653B49734D6F7573654F7665723D7472756500000007544C61 + 796F757400095374796C654E616D6506074C61796F75743105416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000A002400B53697A + 652E4865696768740500000000000000C001401453697A652E506C6174666F72 + 6D44656661756C74080005545061746800095374796C654E616D650605506174 + 683105416C69676E0706436C69656E7409446174612E506174680A3400000004 + 000000000000000000C8420000C84201000000000096430000C8420100000000 + 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080A53697A652E576964746805000000 + 00000000A002400B53697A652E4865696768740500000000000000C001401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000000005450463007544C61796F757400095374796C654E616D + 6506137363726F6C6C6261726C656674627574746F6E05416C69676E07064365 + 6E7465720756697369626C6508085461624F72646572021F000A545265637461 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 - 6E740907436F726E6572730B08546F7052696768740B426F74746F6D52696768 - 74000A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 - 000000000000C0004007595261646975730500000000000000C00040000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E - 436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000000000 - 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463230323032300953746F7056616C756507097846 - 463430343034300754726967676572062049734D6F7573654F7665723D747275 - 653B4973507265737365643D66616C73650E54726967676572496E7665727365 - 062149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 - 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E - 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463430343034300953746F7056 - 616C756507097846463137353739430754726967676572061F49735072657373 - 65643D747275653B49734D6F7573654F7665723D747275650E54726967676572 - 496E766572736506204973507265737365643D66616C73653B49734D6F757365 - 4F7665723D7472756500000007544C61796F757400095374796C654E616D6506 - 074C61796F75743105416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000A002400B53697A652E4865696768740500000000000000 - C001401453697A652E506C6174666F726D44656661756C740800055450617468 - 00095374796C654E616D650605506174683105416C69676E0706436C69656E74 - 09446174612E506174680A3400000004000000000000000000C8420000C84201 - 000000000096430000C842010000000000484300009643030000000000C84200 - 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 - 080D526F746174696F6E416E676C650500000000000000B405C00A53697A652E - 57696474680500000000000000A002400B53697A652E48656967687405000000 - 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 - 095374796C654E616D6506127363726F6C6C626172746F70627574746F6E0541 - 6C69676E070643656E7465720756697369626C6508085461624F726465720221 + 6E740907436F726E6572730B07546F704C6566740A426F74746F6D4C65667400 + 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 + 00000000C0004007595261646975730500000000000000C00040000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463230323032300953746F7056616C7565070978464634 + 30343034300754726967676572062049734D6F7573654F7665723D747275653B + 4973507265737365643D66616C73650E54726967676572496E76657273650621 + 49734D6F7573654F7665723D66616C73653B4973507265737365643D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 + 627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E0500 + 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C + 6F720A537461727456616C756507097846463430343034300953746F7056616C + 756507097846463137353739430754726967676572061F497350726573736564 + 3D747275653B49734D6F7573654F7665723D747275650E54726967676572496E + 766572736506204973507265737365643D66616C73653B49734D6F7573654F76 + 65723D7472756500000007544C61796F757400095374796C654E616D6506074C + 61796F75743105416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000A002400B53697A652E4865696768740500000000000000C001 + 401453697A652E506C6174666F726D44656661756C7408000554506174680009 + 5374796C654E616D650605506174683105416C69676E0706436C69656E740944 + 6174612E506174680A3400000004000000000000000000C8420000C842010000 + 00000096430000C842010000000000484300009643030000000000C8420000C8 + 420A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D + 526F746174696F6E416E676C650500000000000000B405400A53697A652E5769 + 6474680500000000000000A002400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574000953 + 74796C654E616D6506147363726F6C6C6261727269676874627574746F6E0541 + 6C69676E070643656E7465720756697369626C6508085461624F726465720220 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F 756E6405416C69676E0706436C69656E740C436C69704368696C6472656E090A - 436C6970506172656E740907436F726E6572730B07546F704C65667408546F70 - 5269676874000A46696C6C2E436F6C6F72070978464632303230323007486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469 - 75730500000000000000C0004007595261646975730500000000000000C00040 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 - 74746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 - 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463230323032300953746F7056616C7565 - 07097846463430343034300754726967676572062049734D6F7573654F766572 - 3D747275653B4973507265737365643D66616C73650E54726967676572496E76 - 65727365062149734D6F7573654F7665723D66616C73653B4973507265737365 - 643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C65 - 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844757261 - 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 - 6C6C2E436F6C6F720A537461727456616C756507097846463430343034300953 - 746F7056616C756507097846463137353739430754726967676572061F497350 - 7265737365643D747275653B49734D6F7573654F7665723D747275650E547269 - 67676572496E766572736506204973507265737365643D66616C73653B49734D - 6F7573654F7665723D7472756500000007544C61796F757400095374796C654E - 616D6506074C61796F75743105416C69676E070643656E7465720A53697A652E - 57696474680500000000000000A002400B53697A652E48656967687405000000 - 00000000C001401453697A652E506C6174666F726D44656661756C7408000554 - 5061746800095374796C654E616D650605506174683105416C69676E0706436C - 69656E7409446174612E506174680A3400000004000000000000000000C84200 - 00C84201000000000096430000C8420100000000004843000096430300000000 - 00C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507486974 - 54657374080D526F746174696F6E416E676C650500000000000000B406400A53 + 436C6970506172656E740907436F726E6572730B08546F7052696768740B426F + 74746F6D5269676874000A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758 + 5261646975730500000000000000C00040075952616469757305000000000000 + 00C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 + 616C756507097846463430343034300754726967676572062049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 + 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 + 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3208 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464634303430 + 34300953746F7056616C75650709784646313735373943075472696767657206 + 1F4973507265737365643D747275653B49734D6F7573654F7665723D74727565 + 0E54726967676572496E766572736506204973507265737365643D66616C7365 + 3B49734D6F7573654F7665723D7472756500000007544C61796F757400095374 + 796C654E616D6506074C61796F75743105416C69676E070643656E7465720A53 697A652E57696474680500000000000000A002400B53697A652E486569676874 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C6179 - 6F757400095374796C654E616D65060D636F6D626F626F787374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 0222000C5442727573684F626A65637400095374796C654E616D65060A666F72 - 6567726F756E6400000B54466F6E744F626A65637400095374796C654E616D65 - 0604666F6E7409466F6E742E53697A650500000000000000D00240000007544C - 61796F757400095374796C654E616D65060A6261636B67726F756E6405416C69 - 676E0708436F6E74656E74730A53697A652E57696474680500000000000000C8 - 05400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C7408000A5452656374616E676C650009537479 - 6C654E616D65060A52656374616E676C653105416C69676E0706436C69656E74 - 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080A - 53697A652E57696474680500000000000000C805400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 00000000C0004007595261646975730500000000000000C000400007544C6179 - 6F757400095374796C654E616D650611427574746F6E5374796C654F626A6563 - 7405416C69676E070846697452696768740B4D617267696E732E546F70050000 - 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF - 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F7369 - 74696F6E2E580500000000005ED99705400A506F736974696F6E2E5905000000 - 0000000080FF3F0A53697A652E5769647468050000000000889AB803400B5369 - 7A652E4865696768740500000000000000B803401453697A652E506C6174666F - 726D44656661756C74080007544C61796F757400095374796C654E616D650607 - 4C61796F75743105416C69676E070643656E7465720C4D617267696E732E4C65 - 6674050000000000000080FF3F0A53697A652E57696474680500000000000000 - A002400B53697A652E4865696768740500000000000000C001401453697A652E - 506C6174666F726D44656661756C74080005545061746800095374796C654E61 - 6D650605506174683105416C69676E0706436C69656E7409446174612E506174 - 680A3400000004000000000000000000C8420000C84201000000000096430000 - C842010000000000484300009643030000000000C8420000C8420A46696C6C2E - 436F6C6F720708636C6157686974650748697454657374080A53697A652E5769 - 6474680500000000000000A002400B53697A652E486569676874050000000000 - 0000C001401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000000000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E31537479 - 6C65084475726174696F6E05000000000000000000000C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 30323032300953746F7056616C75650709784646343034303430075472696767 - 6572062149734D6F7573654F7665723D747275653B4973507265737365643D66 - 616C73653B0E54726967676572496E7665727365062249734D6F7573654F7665 - 723D66616C73653B4973507265737365643D66616C73653B00000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D - 6174696F6E325374796C65084475726174696F6E05000000000000000000000C - 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463430343034300953746F7056616C75650709784646324138 - 3245320754726967676572062049734D6F7573654F7665723D747275653B4973 - 466F63757365643D747275653B0E54726967676572496E766572736506214973 - 4D6F7573654F7665723D747275653B4973466F63757365643D66616C73653B00 - 00000007544C61796F757400095374796C654E616D650607636F6E74656E7405 - 416C69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C65 - 667405000000000000008000400B4D617267696E732E546F7005000000000000 - 008000400D4D617267696E732E52696768740500000000000000D803400E4D61 - 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 - 746805000000000000008E05400B53697A652E48656967687405000000000000 - 00A803401453697A652E506C6174666F726D44656661756C7408000000545046 - 300A5452656374616E676C6500095374796C654E616D65061473746174757362 - 61726E6F677269707374796C6505416C69676E070643656E7465720C436C6970 - 4368696C6472656E090A46696C6C2E436F6C6F72070978464632353235323505 - 53696465730B03546F70000A53697A652E57696474680500000000000000F004 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 3135313531350756697369626C650800005450463007544C61796F7574000953 - 74796C654E616D650613736D616C6C7363726F6C6C6261727374796C6505416C - 69676E070643656E7465720756697369626C6508085461624F72646572022300 - 0654547261636B00095374796C654E616D65060668747261636B05416C69676E - 0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F - 72697A6F6E74616C0A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C62 - 617268747261636B7374796C6500000654547261636B00095374796C654E616D - 65060676747261636B05416C69676E0706436C69656E74064C6F636B6564090B - 4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374796C65 - 4C6F6F6B757006147363726F6C6C62617276747261636B7374796C6500000054 - 50463007544C61796F757400095374796C654E616D65060D73706C6974746572 + 080005545061746800095374796C654E616D650605506174683105416C69676E + 0706436C69656E7409446174612E506174680A34000000040000000000000000 + 00C8420000C84201000000000096430000C84201000000000048430000964303 + 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080D526F746174696F6E416E676C650500000000000000B4 + 05C00A53697A652E57696474680500000000000000A002400B53697A652E4865 + 696768740500000000000000C001401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007 + 544C61796F757400095374796C654E616D6506127363726F6C6C626172746F70 + 627574746F6E05416C69676E070643656E7465720756697369626C6508085461 + 624F726465720221000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0706436C69656E740C436C69704368 + 696C6472656E090A436C6970506172656E740907436F726E6572730B07546F70 + 4C65667408546F705269676874000A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E6507585261646975730500000000000000C000400759526164697573050000 + 0000000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E310844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 + 746F7056616C756507097846463430343034300754726967676572062049734D + 6F7573654F7665723D747275653B4973507265737365643D66616C73650E5472 + 6967676572496E7665727365062149734D6F7573654F7665723D66616C73653B + 4973507265737365643D66616C736500000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D617469 + 6F6E32084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3430343034300953746F7056616C756507097846463137353739430754726967 + 676572061F4973507265737365643D747275653B49734D6F7573654F7665723D + 747275650E54726967676572496E766572736506204973507265737365643D66 + 616C73653B49734D6F7573654F7665723D7472756500000007544C61796F7574 + 00095374796C654E616D6506074C61796F75743105416C69676E070643656E74 + 65720A53697A652E57696474680500000000000000A002400B53697A652E4865 + 696768740500000000000000C001401453697A652E506C6174666F726D446566 + 61756C74080005545061746800095374796C654E616D65060550617468310541 + 6C69676E0706436C69656E7409446174612E506174680A340000000400000000 + 0000000000C8420000C84201000000000096430000C842010000000000484300 + 009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080D526F746174696F6E416E676C650500000000 + 000000B406400A53697A652E57696474680500000000000000A002400B53697A + 652E4865696768740500000000000000C001401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054 + 50463007544C61796F757400095374796C654E616D65060D636F6D626F626F78 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000A904400B53697A652E4865696768740500000000000080C10540 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F7264657202240007544C61796F757400095374796C654E616D650604 - 6772697005416C69676E0706436C69656E740A53697A652E5769647468050000 - 0000000000A904400B53697A652E4865696768740500000000000080C1054014 - 53697A652E506C6174666F726D44656661756C7408000754436972636C650009 - 5374796C654E616D650607436972636C653105416C69676E070643656E746572 - 0A46696C6C2E436F6C6F7207097846463430343034300A53697A652E57696474 - 680500000000000000E001400B53697A652E4865696768740500000000000000 - E001401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F72070978464631353135313500000754436972636C650009537479 - 6C654E616D650607436972636C653205416C69676E070643656E7465720A4669 - 6C6C2E436F6C6F7207097846463430343034300B4D617267696E732E546F7005 - 00000000000000A003400A53697A652E57696474680500000000000000E00140 - 0B53697A652E4865696768740500000000000000E001401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 353135313500000754436972636C6500095374796C654E616D65060743697263 - 6C653305416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 - 463430343034300E4D617267696E732E426F74746F6D0500000000000000A003 - 400A53697A652E57696474680500000000000000E001400B53697A652E486569 - 6768740500000000000000E001401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313500000000 - 5450463007544C61796F757400095374796C654E616D6506106D656E75626172 - 6974656D7374796C6505416C69676E070643656E7465720C4D617267696E732E - 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 - 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E - 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 - 6964746805000000000000009205400B53697A652E4865696768740500000000 - 000000D003401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F726465720225000A5452656374616E676C650005416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138 - 324532074869745465737408074F70616369747905000000000017B7D1F13F0A - 53697A652E576964746805000000000000009205400B53697A652E4865696768 - 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D - 6174696F6E00084475726174696F6E05000000000018B7D1F23F0C50726F7065 - 7274794E616D6506074F7061636974790A537461727456616C75650500000000 - 0000000000000953746F7056616C7565050000000000000080FF3F0754726967 - 676572060F497353656C65637465643D747275650E54726967676572496E7665 - 7273650610497353656C65637465643D66616C73650000000A5452656374616E - 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E - 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138324532 - 074869745465737408074F70616369747905000000000017B7D1F13F0A53697A - 652E576964746805000000000000009205400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 - 6F6E00084475726174696F6E05000000000018B7D1F23F0C50726F7065727479 - 4E616D6506074F7061636974790A537461727456616C75650500000000000000 - 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 - 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 - 65061149734D6F7573654F7665723D66616C736500000007544C61796F757400 - 095374796C654E616D650605676C79706805416C69676E07044C6566740A5369 - 7A652E57696474680500000000000000C803400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 0007544C61796F757400095374796C654E616D650609636865636B6D61726B05 - 416C69676E0708436F6E74656E7473074F7061636974790500000000006F1283 - F53F0A53697A652E57696474680500000000000000C803400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C7408000554506174680005416C69676E070643656E7465720944617461 - 2E506174680A58000000070000000000000056D9524391AE2C43010000009276 - 664365021643010000009F3983432B7C3C43010000009E9AA64382D2B4420100 - 00006F1CB04375A4D1420100000026DF8243263F67430300000056D9524391AE - 2C430A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0A53697A652E57696474680500000000000000B002400B53697A652E48656967 - 68740500000000000000B002401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E - 696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D6506074F7061636974790A537461727456616C7565050000 - 00000000000000000953746F7056616C7565050000000000000080FF3F075472 - 6967676572060E4973436865636B65643D747275650E54726967676572496E76 - 65727365060F4973436865636B65643D66616C73650000000654476C79706800 - 095374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C - 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E52696768740500000000000000C000400E4D - 617267696E732E426F74746F6D050000000000000080FF3F05416C69676E0705 - 52696768740A506F736974696F6E2E580500000000000000C001400A506F7369 - 74696F6E2E5905000000000000008000400A53697A652E576964746805000000 - 000000008003400B53697A652E4865696768740500000000000000B803401453 - 697A652E506C6174666F726D44656661756C740800000654496D616765000953 - 74796C654E616D6506066269746D61700E4D756C74695265734269746D61700E - 01000005416C69676E0708436F6E74656E74730C4D617267696E732E4C656674 - 05000000000000008000400B4D617267696E732E546F70050000000000000080 - 00400D4D617267696E732E526967687405000000000000008000400E4D617267 - 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 - 0500000000000000A803400B53697A652E4865696768740500000000000000B0 - 03401453697A652E506C6174666F726D44656661756C74080000000554546578 - 7400095374796C654E616D6506047465787405416C69676E07044C656674064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 000000008002400D4D617267696E732E52696768740500000000000000800240 - 0A506F736974696F6E2E5805000000000000008404400A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000000000 - D003401453697A652E506C6174666F726D44656661756C740816546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 - 657474696E67732E486F727A416C69676E07074C656164696E67000005545465 - 787400095374796C654E616D65060873686F727463757405416C69676E070552 - 69676874064C6F636B6564090748697454657374080C4D617267696E732E4C65 - 66740500000000000000C002400D4D617267696E732E52696768740500000000 - 000000C001400A506F736974696F6E2E580500000000000000C000C00A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C740816 - 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 - 000007544C61796F757400095374796C654E616D6506077375626D61726B0541 - 6C69676E070552696768740A506F736974696F6E2E580500000000000000D404 - 400A53697A652E57696474680500000000000000A003400B53697A652E486569 + 5461624F726465720222000C5442727573684F626A65637400095374796C654E + 616D65060A666F726567726F756E6400000B54466F6E744F626A656374000953 + 74796C654E616D650604666F6E7409466F6E742E53697A650500000000000000 + D00240000007544C61796F757400095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0708436F6E74656E74730A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E + 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E + 0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032300748 + 697454657374080A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 + 646975730500000000000000C0004007595261646975730500000000000000C0 + 00400007544C61796F757400095374796C654E616D650611427574746F6E5374 + 796C654F626A65637405416C69676E070846697452696768740B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A506F736974696F6E2E580500000000005ED99705400A506F73697469 + 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 + 889AB803400B53697A652E4865696768740500000000000000B803401453697A + 652E506C6174666F726D44656661756C74080007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720C4D61 + 7267696E732E4C656674050000000000000080FF3F0A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080005545061746800 + 095374796C654E616D650605506174683105416C69676E0706436C69656E7409 + 446174612E506174680A3400000004000000000000000000C8420000C8420100 + 0000000096430000C842010000000000484300009643030000000000C8420000 + C8420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0A53697A652E57696474680500000000000000A002400B53697A652E48656967 + 68740500000000000000C001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572062149734D6F7573654F7665723D747275653B497350 + 7265737365643D66616C73653B0E54726967676572496E766572736506224973 + 4D6F7573654F7665723D66616C73653B4973507265737365643D66616C73653B + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 + 6F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463430343034300953746F7056616C7565 + 07097846463241383245320754726967676572062049734D6F7573654F766572 + 3D747275653B4973466F63757365643D747275653B0E54726967676572496E76 + 65727365062149734D6F7573654F7665723D747275653B4973466F6375736564 + 3D66616C73653B0000000007544C61796F757400095374796C654E616D650607 + 636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D61 + 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F + 7005000000000000008000400D4D617267696E732E5269676874050000000000 + 0000D803400E4D617267696E732E426F74746F6D05000000000000008000400A + 53697A652E576964746805000000000000008E05400B53697A652E4865696768 + 740500000000000000A803401453697A652E506C6174666F726D44656661756C + 7408000000545046300A5452656374616E676C6500095374796C654E616D6506 + 147374617475736261726E6F677269707374796C6505416C69676E070643656E + 7465720C436C69704368696C6472656E090A46696C6C2E436F6C6F7207097846 + 463235323532350553696465730B03546F70000A53697A652E57696474680500 + 000000000000F004400B53697A652E4865696768740500000000000000C80440 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F7207097846463135313531350756697369626C650800005450463007544C + 61796F757400095374796C654E616D650613736D616C6C7363726F6C6C626172 + 7374796C6505416C69676E070643656E7465720756697369626C650808546162 + 4F726465720223000654547261636B00095374796C654E616D65060668747261 + 636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E7461 + 74696F6E070A486F72697A6F6E74616C0A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006 + 147363726F6C6C62617268747261636B7374796C6500000654547261636B0009 + 5374796C654E616D65060676747261636B05416C69676E0706436C69656E7406 + 4C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080B5374796C654C6F6F6B757006147363726F6C6C62617276747261636B73 + 74796C650000005450463007544C61796F757400095374796C654E616D65060D + 73706C69747465727374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000A904400B53697A652E486569676874050000 + 0000000080C105401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F7264657202240007544C61796F75740009537479 + 6C654E616D6506046772697005416C69676E0706436C69656E740A53697A652E + 57696474680500000000000000A904400B53697A652E48656967687405000000 + 00000080C105401453697A652E506C6174666F726D44656661756C7408000754 + 436972636C6500095374796C654E616D650607436972636C653105416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463430343034300A53 + 697A652E57696474680500000000000000E001400B53697A652E486569676874 + 0500000000000000E001401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F72070978464631353135313500000754436972 + 636C6500095374796C654E616D650607436972636C653205416C69676E070643 + 656E7465720A46696C6C2E436F6C6F7207097846463430343034300B4D617267 + 696E732E546F700500000000000000A003400A53697A652E5769647468050000 + 0000000000E001400B53697A652E4865696768740500000000000000E0014014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F72070978464631353135313500000754436972636C6500095374796C654E61 + 6D650607436972636C653305416C69676E070643656E7465720A46696C6C2E43 + 6F6C6F7207097846463430343034300E4D617267696E732E426F74746F6D0500 + 000000000000A003400A53697A652E57696474680500000000000000E001400B + 53697A652E4865696768740500000000000000E001401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 31353135000000005450463007544C61796F757400095374796C654E616D6506 + 106D656E756261726974656D7374796C6505416C69676E070643656E7465720C + 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF + 3F0A53697A652E576964746805000000000000009205400B53697A652E486569 6768740500000000000000D003401453697A652E506C6174666F726D44656661 - 756C7408000554506174680005416C69676E070643656E74657209446174612E - 506174680A340000000400000000000000000000000000000001000000000000 - 000000803F010000000000803F0000003F0300000000000000000000000A4669 - 6C6C2E436F6C6F720708636C615768697465064C6F636B656409074869745465 - 7374080A53697A652E57696474680500000000000000E001400B53697A652E48 - 656967687405000000000000008002401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054504630 - 0A5452656374616E676C6500095374796C654E616D65060C6D656E7562617273 - 74796C6505416C69676E070643656E7465720C436C69704368696C6472656E09 - 0946696C6C2E4B696E6407044E6F6E650748697454657374080A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E650756697369626C6508075852616469757305 - 00000000000000C0004007595261646975730500000000000000C00040000A54 - 52656374616E676C650005416C69676E0706436C69656E740A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080C4D617267696E732E - 4C656674050000000000000080FFBF0B4D617267696E732E546F700500000000 - 00000080FFBF0D4D617267696E732E5269676874050000000000000080FFBF0A - 53697A652E57696474680500000000000000D004400B53697A652E4865696768 - 740500000000000000CC04401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F720709784646313531353135075852616469 - 75730500000000000000C0004007595261646975730500000000000000C00040 - 000007544C61796F757400095374796C654E616D650607636F6E74656E740541 - 6C69676E0706436C69656E740C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 - 00C004400B53697A652E4865696768740500000000000000C004401453697A65 - 2E506C6174666F726D44656661756C74080000005450463007544C61796F7574 - 00095374796C654E616D65060D6D656E756974656D7374796C6505416C69676E - 070643656E7465720C4D617267696E732E4C656674050000000000000080FF3F - 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E - 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F0A53697A652E57696474680500000000000000920540 + 756C74080756697369626C6508085461624F726465720225000A545265637461 + 6E676C650005416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646324138324532074869745465737408074F70616369747905000000 + 000017B7D1F13F0A53697A652E576964746805000000000000009205400B5369 + 7A652E4865696768740500000000000000D003401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5446 + 6C6F6174416E696D6174696F6E00084475726174696F6E05000000000018B7D1 + F23F0C50726F70657274794E616D6506074F7061636974790A53746172745661 + 6C756505000000000000000000000953746F7056616C75650500000000000000 + 80FF3F0754726967676572060F497353656C65637465643D747275650E547269 + 67676572496E76657273650610497353656C65637465643D66616C7365000000 + 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646324138324532074869745465737408074F70616369747905000000000017 + B7D1F13F0A53697A652E576964746805000000000000009205400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F61 + 74416E696D6174696F6E00084475726174696F6E05000000000018B7D1F23F0C + 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 + 05000000000000000000000953746F7056616C7565050000000000000080FF3F + 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 + 6572496E7665727365061149734D6F7573654F7665723D66616C736500000007 + 544C61796F757400095374796C654E616D650605676C79706805416C69676E07 + 044C6566740A53697A652E57696474680500000000000000C803400B53697A65 + 2E4865696768740500000000000000D003401453697A652E506C6174666F726D + 44656661756C74080007544C61796F757400095374796C654E616D6506096368 + 65636B6D61726B05416C69676E0708436F6E74656E7473074F70616369747905 + 00000000006F1283F53F0A53697A652E57696474680500000000000000C80340 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 26000A5452656374616E676C650005416C69676E0708436F6E74656E74730A46 - 696C6C2E436F6C6F720709784646324138324532074869745465737408074F70 - 616369747905000000000017B7D1F13F0A53697A652E57696474680500000000 - 0000009205400B53697A652E4865696768740500000000000000D00340145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E - 05000000000018B7D1F23F0C50726F70657274794E616D6506074F7061636974 - 790A537461727456616C756505000000000000000000000953746F7056616C75 - 65050000000000000080FF3F0754726967676572060F497353656C6563746564 - 3D747275650E54726967676572496E76657273650610497353656C6563746564 - 3D66616C73650000000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646324138324532074869745465737408074F70616369 - 747905000000000000000000000A53697A652E57696474680500000000000000 - 9205400B53697A652E4865696768740500000000000000D003401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E050000 - 00000018B7D1F23F07496E7665727365090C50726F70657274794E616D650607 - 4F7061636974790A537461727456616C75650500000000000000000000095374 - 6F7056616C7565050000000000000080FF3F0754726967676572061049734D6F - 7573654F7665723D747275650E54726967676572496E7665727365061149734D - 6F7573654F7665723D66616C736500000007544C61796F757400095374796C65 - 4E616D650605676C79706805416C69676E07044C6566740A53697A652E576964 - 74680500000000000000C803400B53697A652E48656967687405000000000000 - 00D003401453697A652E506C6174666F726D44656661756C74080007544C6179 - 6F757400095374796C654E616D650609636865636B6D61726B05416C69676E07 - 08436F6E74656E7473074F7061636974790500000000006F1283F53F0A53697A - 652E57696474680500000000000000C803400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C740800 - 0554506174680005416C69676E070643656E74657209446174612E506174680A - 58000000070000000000000056D9524391AE2C43010000009276664365021643 - 010000009F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB043 - 75A4D1420100000026DF8243263F67430300000056D9524391AE2C430A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080A53697A652E - 57696474680500000000000000B002400B53697A652E48656967687405000000 - 00000000B002401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D6174696F - 6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E - 616D6506074F7061636974790A537461727456616C7565050000000000000000 - 00000953746F7056616C7565050000000000000080FF3F075472696767657206 - 0E4973436865636B65643D747275650E54726967676572496E7665727365060F - 4973436865636B65643D66616C73650000000654476C79706800095374796C65 - 4E616D65060A676C7970687374796C650C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E52696768740500000000000000C000400E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F05416C69676E07044C6566740A50 - 6F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905 - 000000000000008000400A53697A652E57696474680500000000000000800340 - 0B53697A652E4865696768740500000000000000B803401453697A652E506C61 - 74666F726D44656661756C740800000654496D61676500095374796C654E616D - 6506066269746D61700E4D756C74695265734269746D61700E01000005416C69 - 676E07044C6566740C4D617267696E732E4C6566740500000000000000800040 - 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 - 000000000000008000400A506F736974696F6E2E580500000000000000800040 - 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 - 680500000000000000A803400B53697A652E4865696768740500000000000000 - B003401453697A652E506C6174666F726D44656661756C740800000005545465 - 787400095374796C654E616D6506047465787405416C69676E07044C65667406 - 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 - 00000000008002400D4D617267696E732E526967687405000000000000008002 - 400A506F736974696F6E2E5805000000000000008404400A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00D003401453697A652E506C6174666F726D44656661756C7408165465787453 - 657474696E67732E466F6E74436F6C6F720708636C6157686974651654657874 - 53657474696E67732E486F727A416C69676E07074C656164696E670000055454 - 65787400095374796C654E616D65060873686F727463757405416C69676E0705 - 5269676874064C6F636B6564090748697454657374080C4D617267696E732E4C - 6566740500000000000000C002400D4D617267696E732E526967687405000000 - 00000000C001400A506F736974696F6E2E580500000000000000C000C00A5369 - 7A652E57696474680500000000000000C804400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 65165465787453657474696E67732E486F727A416C69676E07074C656164696E - 67000007544C61796F757400095374796C654E616D6506077375626D61726B05 - 416C69676E070552696768740A506F736974696F6E2E580500000000000000D4 - 04400A53697A652E57696474680500000000000000A003400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C7408000554506174680005416C69676E070643656E7465720944617461 - 2E506174680A3400000004000000000000000000000000000000010000000000 - 00000000803F010000000000803F0000003F0300000000000000000000000A46 - 696C6C2E436F6C6F720708636C615768697465064C6F636B6564090748697454 - 657374080A53697A652E57696474680500000000000000E001400B53697A652E - 48656967687405000000000000008002401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046 - 3007544C61796F757400095374796C654E616D6506126D656E75736570617261 - 746F727374796C6505416C69676E070643656E7465720C4D617267696E732E4C - 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 - 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000C804401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F7264657202270005544C696E650005416C69676E070354 - 6F70084C696E65547970650703546F700C4D617267696E732E4C656674050000 - 0000000000C000400B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E52696768740500000000000000C000400A506F736974696F - 6E2E580500000000000000C000400A506F736974696F6E2E5905000000000000 - 008000400A53697A652E57696474680500000000000000B004400B53697A652E - 486569676874050000000000000080FF3F1453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 0000545046300A5452656374616E676C6500095374796C654E616D65060D6D65 - 6E75766965777374796C6505416C69676E070643656E7465720A46696C6C2E43 - 6F6C6F7207097846463230323032300A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C804401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 097846463135313531350756697369626C650807585261646975730500000000 - 000000C0004007595261646975730500000000000000C00040000A5452656374 - 616E676C650005416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80440 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F72070978464631353135313507585261646975730500000000000000C000 - 4007595261646975730500000000000000C00040000D54536861646F77456666 - 656374000844697374616E63650500000000000000C000400944697265637469 - 6F6E0500000000000000B4054008536F66746E657373050000000000000080FE - 3F074F706163697479050000000000000080FE3F0B536861646F77436F6C6F72 - 0708636C61426C61636B00000007544C61796F757400095374796C654E616D65 - 0607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E - 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 - 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E - 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 - 696474680500000000000000C004400B53697A652E4865696768740500000000 - 000000C004401453697A652E506C6174666F726D44656661756C740800000054 - 50463007544C61796F757400095374796C654E616D650610726164696F627574 - 746F6E7374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000F205400B53697A652E4865696768740500000000000000 - A803401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F7264657202280007544C61796F75740005416C69676E07044C - 6566740A53697A652E57696474680500000000000000A803400B53697A652E48 - 65696768740500000000000000A803401453697A652E506C6174666F726D4465 - 6661756C7408000854456C6C6970736500095374796C654E616D65060A626163 - 6B67726F756E6405416C69676E070643656E7465720A46696C6C2E436F6C6F72 - 0709784646323032303230064C6F636B6564090748697454657374080A53697A - 652E57696474680500000000000000F002400B53697A652E4865696768740500 - 000000000000F002401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646313531353135000854456C6C697073 - 6500095374796C654E616D650609636865636B6D61726B05416C69676E070643 - 6C69656E740A46696C6C2E436F6C6F720709784646324138324532064C6F636B - 656409074869745465737408074F70616369747905000000000000000000000C - 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E - 546F7005000000000000008000400D4D617267696E732E526967687405000000 - 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 - 400A53697A652E57696474680500000000000000B002400B53697A652E486569 - 6768740500000000000000B002401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E - 696D6174696F6E00095374796C654E616D65061A6F706163697479436865636B - 6D61726B416E696D6174696F6E31084475726174696F6E050000000000000000 - 00000C50726F70657274794E616D6506074F7061636974790A53746172745661 - 6C756505000000000000000000000953746F7056616C75650500000000000000 - 80FF3F0754726967676572060E4973436865636B65643D747275650E54726967 - 676572496E7665727365060F4973436865636B65643D66616C73650000000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D65061A726164696F - 627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500 - 00000000000000000007496E7665727365090C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463230323032 - 300953746F7056616C7565070978464634303430343007547269676765720610 - 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 - 1149734D6F7573654F7665723D66616C736500000F54436F6C6F72416E696D61 - 74696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E31 - 5374796C65084475726174696F6E05000000000000000000000C50726F706572 - 74794E616D65060C5374726F6B652E436F6C6F720A537461727456616C756507 - 097846463135313531350953746F7056616C7565070978464632413832453207 - 54726967676572060E4973436865636B65643D747275650E5472696767657249 - 6E7665727365060F4973436865636B65643D66616C7365000000000554546578 - 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 - 064C6F636B6564090748697454657374080A53697A652E576964746805000000 - 00000000C805400B53697A652E4865696768740500000000000000A803401453 - 697A652E506C6174666F726D44656661756C7408045465787406045465787416 - 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 0000005450463007544C61796F757400095374796C654E616D650618756C6365 - 6E746572726164696F627574746F6E7374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000005655FB05400B53697A652E4865 - 696768740500000000000000A004401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F7264657202290007544C61796F - 75740005416C69676E0706426F74746F6D0A506F736974696F6E2E5905000000 - 000000008804400A53697A652E57696474680500000000005655FB05400B5369 - 7A652E4865696768740500000000000000C001401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0708436F6E74656E747307436F - 726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E - 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 - 080A53697A652E57696474680500000000005655FB05400B53697A652E486569 - 6768740500000000000000C001401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F720709784646313531353135000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D6506216261636B6772 - 6F756E64556C427574746F6E436F6C6F72416E696D6174696F6E310844757261 - 74696F6E050000000000000000000007496E7665727365090C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463230323032300953746F7056616C7565070978464634303430343007547269 - 67676572061049734D6F7573654F7665723D747275650E54726967676572496E - 7665727365061149734D6F7573654F7665723D66616C736500000A5452656374 - 616E676C6500095374796C654E616D650609636865636B6D61726B05416C6967 - 6E0708436F6E74656E747307436F726E6572730B07546F704C6566740A426F74 - 746F6D4C656674000A46696C6C2E436F6C6F720709784646324138324532064C - 6F636B656409074869745465737408074F706163697479050000000000000000 - 00000C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 - 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 - 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 - 0080FF3F0A53697A652E57696474680500000000005655F705400B53697A652E - 48656967687405000000000000008001401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F61 - 74416E696D6174696F6E00095374796C654E616D65061A636865636B6D61726B - 4F706163697479416E696D6174696F6E31084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D6506074F7061636974790A53746172 - 7456616C756505000000000000000000000953746F7056616C75650500000000 - 00000080FF3F0754726967676572060E4973436865636B65643D747275650E54 - 726967676572496E7665727365060F4973436865636B65643D66616C73650000 - 00000005545465787400095374796C654E616D6506047465787405416C69676E - 0706436C69656E74064C6F636B6564090748697454657374080A53697A652E57 - 696474680500000000005655FB05400B53697A652E4865696768740500000000 - 0000008804401453697A652E506C6174666F726D44656661756C740816546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 - 5450463007544C61796F757400095374796C654E616D650616756C6C65667472 - 6164696F627574746F6E7374796C6505416C69676E070643656E7465720A5369 - 7A652E57696474680500000000005655FB05400B53697A652E48656967687405 - 00000000000000A004401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F72646572022A0007544C61796F7574000541 - 6C69676E0706426F74746F6D0A506F736974696F6E2E59050000000000000088 - 04400A53697A652E57696474680500000000005655FB05400B53697A652E4865 - 696768740500000000000000C001401453697A652E506C6174666F726D446566 - 61756C7408000A5452656374616E676C6500095374796C654E616D65060A6261 - 636B67726F756E6405416C69676E0708436F6E74656E747307436F726E657273 - 0B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72 - 0709784646323032303230064C6F636B6564090748697454657374080A53697A - 652E57696474680500000000005655FB05400B53697A652E4865696768740500 - 000000000000C001401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646313531353135075852616469757305 - 00000000000000C0004007595261646975730500000000000000C00040000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D6506216261636B67 - 726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E050000000000000000000007496E7665727365090C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463230323032300953746F7056616C75650709784646343034303430075472 - 6967676572061049734D6F7573654F7665723D747275650E5472696767657249 - 6E7665727365061149734D6F7573654F7665723D66616C736500000A54526563 - 74616E676C6500095374796C654E616D650609636865636B6D61726B05416C69 - 676E0708436F6E74656E747307436F726E6572730B07546F704C6566740A426F - 74746F6D4C656674000A46696C6C2E436F6C6F72070978464632413832453206 - 4C6F636B656409074869745465737408074F7061636974790500000000000000 - 0000000C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 - 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 - 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 - 000080FF3F0A53697A652E57696474680500000000005655F705400B53697A65 - 2E48656967687405000000000000008001401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469 - 7573050000000000000080004007595261646975730500000000000000800040 - 000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A6368 - 65636B6D61726B4F706163697479416E696D6174696F6E31084475726174696F - 6E05000000000000000000000C50726F70657274794E616D6506074F70616369 - 74790A537461727456616C756505000000000000000000000953746F7056616C - 7565050000000000000080FF3F0754726967676572060E4973436865636B6564 - 3D747275650E54726967676572496E7665727365060F4973436865636B65643D - 66616C7365000000000005545465787400095374796C654E616D650604746578 - 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 - 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 - 687405000000000000008804401453697A652E506C6174666F726D4465666175 - 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 - 686974650000005450463007544C61796F757400095374796C654E616D650617 - 756C7269676874726164696F627574746F6E7374796C6505416C69676E070643 - 656E7465720A53697A652E57696474680500000000005655FB05400B53697A65 - 2E4865696768740500000000000000A004401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508085461624F72646572022C0007544C - 61796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E5905 - 000000000000008804400A53697A652E57696474680500000000005655FB0540 - 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 - 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 - 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 - 07436F726E6572730B08546F7052696768740B426F74746F6D5269676874000A - 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 - 7454657374080A53697A652E57696474680500000000005655FB05400B53697A - 652E4865696768740500000000000000C001401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 3507585261646975730500000000000000C00040075952616469757305000000 - 00000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E696D - 6174696F6E31084475726174696F6E050000000000000000000007496E766572 - 7365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463230323032300953746F7056616C756507097846 - 463430343034300754726967676572061049734D6F7573654F7665723D747275 - 650E54726967676572496E7665727365061149734D6F7573654F7665723D6661 - 6C736500000A5452656374616E676C6500095374796C654E616D650609636865 - 636B6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B08 - 546F7052696768740B426F74746F6D5269676874000A46696C6C2E436F6C6F72 - 0709784646324138324532064C6F636B656409074869745465737408074F7061 - 6369747905000000000000000000000C4D617267696E732E4C65667405000000 - 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D - 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E - 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 - 00005655F705400B53697A652E48656967687405000000000000008001401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E650758526164697573050000000000000080004007595261646975 - 730500000000000000800040000F54466C6F6174416E696D6174696F6E000953 - 74796C654E616D65061A636865636B6D61726B4F706163697479416E696D6174 - 696F6E31084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D6506074F7061636974790A537461727456616C756505000000000000 - 000000000953746F7056616C7565050000000000000080FF3F07547269676765 - 72060E4973436865636B65643D747275650E54726967676572496E7665727365 - 060F4973436865636B65643D66616C7365000000000005545465787400095374 - 796C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B - 6564090748697454657374080A53697A652E57696474680500000000005655FB - 05400B53697A652E48656967687405000000000000008804401453697A652E50 - 6C6174666F726D44656661756C74080454657874060454657874165465787453 - 657474696E67732E466F6E74436F6C6F720708636C6157686974650000005450 - 463007544C61796F757400095374796C654E616D65061470726F677265737362 - 61726D696E697374796C6505416C69676E070643656E7465720A53697A652E57 - 6964746805000000000033338505400B53697A652E4865696768740500000000 - 009999E104401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F72646572022E000A5452656374616E676C6500095374 - 796C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F720709784646343034303430064C6F636B656409074869 - 7454657374080A53697A652E576964746805000000000033338505400B53697A - 652E4865696768740500000000009999E104401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 - 6975730500000000000000800040075952616469757305000000000000008000 - 40000A5452656374616E676C6500095374796C654E616D65060A68696E646963 - 61746F7205416C69676E07044C6566740A46696C6C2E436F6C6F720709784646 - 324138324532064C6F636B6564090748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000099 - 99E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650758526164697573050000000000000080004007 - 5952616469757305000000000000008000400000000A5452656374616E676C65 - 00095374796C654E616D65060676747261636B05416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000003333850540 - 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 5852616469757305000000000000008000400759526164697573050000000000 - 0000800040000A5452656374616E676C6500095374796C654E616D65060A7669 - 6E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F - 720709784646324138324532064C6F636B6564090748697454657374080A506F - 736974696F6E2E5905000000000099998D04400A53697A652E57696474680500 - 0000000033338505400B53697A652E4865696768740500000000000000A80340 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65075852616469757305000000000000008000400759526164 - 6975730500000000000000800040000000005450463007544C61796F75740009 - 5374796C654E616D65060E636F6D626F656469747374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F726465720230000C - 5442727573684F626A65637400095374796C654E616D65060A666F726567726F - 756E6400000B54466F6E744F626A65637400095374796C654E616D650604666F - 6E7409466F6E742E53697A650500000000000000D00240000007544C61796F75 - 7400095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 - 436F6E74656E74730A53697A652E57696474680500000000000000C805400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653105416C69676E0706436C69656E740A46696C - 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 - 2E57696474680500000000000000C805400B53697A652E486569676874050000 - 0000000000C803401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F72070978464632303230323007585261646975730500 - 000000000000C0004007595261646975730500000000000000C00040000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 - 6E696D6174696F6E315374796C65084475726174696F6E050000000000000000 - 000007496E7665727365090C50726F70657274794E616D65060C5374726F6B65 - 2E436F6C6F720A537461727456616C756507097846463230323032300953746F - 7056616C756507097846463430343034300754726967676572062049734D6F75 - 73654F7665723D747275653B4973466F63757365643D66616C73650E54726967 - 676572496E7665727365062149734D6F7573654F7665723D66616C73653B4973 - 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65 - 084475726174696F6E050000000000000000000007496E7665727365090C5072 - 6F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172745661 - 6C756507097846463430343034300953746F7056616C75650709784646324138 - 3245320754726967676572061F49734D6F7573654F7665723D747275653B4973 - 466F63757365643D747275650E54726967676572496E7665727365062049734D - 6F7573654F7665723D747275653B4973466F63757365643D66616C7365000007 - 544C61796F757400095374796C654E616D6506056172726F7705416C69676E07 - 0846697452696768740B4D617267696E732E546F70050000000000000080FF3F - 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E - 732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E580500 - 000000005ED99705400A506F736974696F6E2E59050000000000000080FF3F0A - 53697A652E5769647468050000000000889AB803400B53697A652E4865696768 - 740500000000000000B803401453697A652E506C6174666F726D44656661756C - 7408000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653105416C69676E0708436F6E74656E747307436F726E6572730B0854 - 6F7052696768740B426F74746F6D5269676874000A46696C6C2E436F6C6F7207 - 097846463330333033300748697454657374080A53697A652E57696474680500 - 00000000889AB803400B53697A652E4865696768740500000000000000B80340 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E6507585261646975730500000000000000C000400759526164 - 6975730500000000000000C00040000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 - 084475726174696F6E050000000000000000000007496E7665727365090C5072 - 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463330333033300953746F7056616C756507097846463430343034 - 300754726967676572062049734D6F7573654F7665723D747275653B4973466F - 63757365643D66616C73650E54726967676572496E7665727365062149734D6F - 7573654F7665723D66616C73653B4973466F63757365643D66616C736500000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F - 72416E696D6174696F6E325374796C65084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463430343034300953746F7056616C7565070978 - 46463137353739430754726967676572061F4973466F63757365643D74727565 - 3B49734D6F7573654F7665723D7472756500000007544C61796F757400095374 - 796C654E616D6506074C61796F75743105416C69676E070643656E7465720C4D - 617267696E732E4C656674050000000000000080FF3F0A53697A652E57696474 - 680500000000000000A002400B53697A652E4865696768740500000000000000 - C001401453697A652E506C6174666F726D44656661756C740800055450617468 - 00095374796C654E616D650605506174683105416C69676E0706436C69656E74 - 09446174612E506174680A3400000004000000000000000000C8420000C84201 - 000000000096430000C842010000000000484300009643030000000000C84200 - 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 - 080A53697A652E57696474680500000000000000A002400B53697A652E486569 - 6768740500000000000000C001401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E650000000000000C544272 - 7573684F626A65637400095374796C654E616D65060973656C656374696F6E0B - 42727573682E436F6C6F720709783936324138324532000007544C61796F7574 - 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 - 6E740C4D617267696E732E4C65667405000000000000008000400B4D61726769 - 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 - 00000000000000F003400E4D617267696E732E426F74746F6D05000000000000 - 008000400A53697A652E576964746805000000000000008805400B53697A652E - 4865696768740500000000000000A803401453697A652E506C6174666F726D44 - 656661756C74080000005450463007544C61796F757400095374796C654E616D - 650613657870616E646572627574746F6E7374796C6505416C69676E07064365 - 6E7465720B4D617267696E732E546F70050000000000000080FF3F0A53697A65 - 2E57696474680500000000000000B003400B53697A652E486569676874050000 - 0000000000B003401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F7264657202330005545061746800095374796C65 - 4E616D650605506174683105416C69676E070643656E74657209446174612E50 - 6174680A3400000004000000000000000000C8420000C8420100000000009643 - 0000C842010000000000484300009643030000000000C8420000C8420A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080D526F746174 - 696F6E416E676C650500000000000000B405400A53697A652E57696474680500 - 000000000000A002400B53697A652E4865696768740500000000000000C00140 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C65 - 4E616D650614466C6F6174416E696D6174696F6E315374796C65084475726174 - 696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E07084369 - 7263756C61720C50726F70657274794E616D65060D526F746174696F6E416E67 - 6C650A537461727456616C75650500000000000000B405400953746F7056616C - 756505000000000000000000000754726967676572060F4973457870616E6465 - 643D747275650E54726967676572496E766572736506104973457870616E6465 - 643D66616C7365000000005450463007544C61796F757400095374796C654E61 - 6D650615657870616E646572636865636B626F787374796C6505416C69676E07 - 0643656E7465720A53697A652E576964746805000000000000008406400B5369 - 7A652E48656967687405000000000000008404401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F7264657202360007 - 544C61796F75740005416C69676E07044C6566740A53697A652E576964746805 - 00000000000000C003400B53697A652E48656967687405000000000000008404 - 401453697A652E506C6174666F726D44656661756C7408000554506174680005 - 416C69676E0706436C69656E7409446174612E506174680AD801000027000000 - 00000000FEC8BA4402E79244020000002592AD4402E79244020000006D5BA544 - FEB09E44020000006D5BA544FEB09E440200000093A4A4446A0C9F4402000000 - 4A80AC44FC79AA4402000000046EBA44FC79AA44020000004A00C844FC79AA44 - 020000000080CF44FEB09E44020000000080CF44FEB09E44020000000080CF44 - FEB09E44020000004C5BC84402E7924402000000FEC8BA4402E7924400000000 - FE88BA44FE30974402000000B876BF44FE309744020000000277C344EEA09A44 - 020000000277C34404DE9E44020000000277C344121BA34402000000B876BF44 - 008CA64402000000FE88BA44008CA644020000004C9BB544008CA64402000000 - 009CB144121BA34402000000009CB14404DE9E4402000000009CB144EEA09A44 - 020000004C9BB544FE30974402000000FE88BA44FE309744000000000080BA44 - 045E9B4402000000146EB844045E9B440200000000C0B64454F79C4402000000 - 00C0B64400F09E440200000000C0B644ACE8A04402000000146EB844FC81A244 - 020000000080BA44FC81A24402000000EC91BC44FC81A244020000000040BE44 - ACE8A044020000000040BE4400F09E44020000000040BE4454F79C4402000000 - EC91BC44045E9B44020000000080BA44045E9B440A46696C6C2E436F6C6F7207 - 097836303030303030300748697454657374080C4D617267696E732E4C656674 - 05000000000000008000400B4D617267696E732E546F70050000000000000080 - 00400D4D617267696E732E526967687405000000000000008000400E4D617267 - 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 - 0500000000000000A003400B53697A652E4865696768740500000000000000E8 - 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E6508577261704D6F64650703466974000F54436F6C6F72 - 416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097836303030303030300953746F7056616C75650708636C61426C6163 - 6B0754726967676572060E4973436865636B65643D7472756500000F54436F6C - 6F72416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F - 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 - 616C75650708636C61426C61636B0953746F7056616C75650709783630303030 - 3030300754726967676572060F4973436865636B65643D66616C736500000000 - 05545465787400095374796C654E616D6506047465787405416C69676E070643 - 6C69656E74064C6F636B6564090748697454657374080C4D617267696E732E4C - 65667405000000000000008002400B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E5269676874050000000000000080FF3F0A53 - 697A652E57696474680500000000000000C605400B53697A652E486569676874 - 0500000000000000F803401453697A652E506C6174666F726D44656661756C74 - 08165465787453657474696E67732E466F6E74436F6C6F720709784646454545 - 454545165465787453657474696E67732E486F727A416C69676E07074C656164 - 696E670000005450463007544C61796F757400095374796C654E616D65060D65 - 7870616E6465727374796C6505416C69676E070643656E7465720A53697A652E - 576964746805000000000000C08607400B53697A652E48656967687405000000 - 00000000CE05401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F726465720239000A5452656374616E676C65000953 - 74796C654E616D65060B626772656374616E676C6505416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F720709784646324432443244064C6F636B - 6564090748697454657374080A53697A652E576964746805000000000000C086 - 07400B53697A652E4865696768740500000000000000CE05401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 4631353135313507585261646975730500000000000000C00040075952616469 - 75730500000000000000C000400007544C61796F757400095374796C654E616D - 6506074C61796F75743305416C69676E0703546F700A53697A652E5769647468 - 05000000000000C08607400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080007544C61796F75 - 7400095374796C654E616D6506074C61796F75743405416C69676E0708436F6E - 74656E74730A53697A652E576964746805000000000000C08607400B53697A65 - 2E4865696768740500000000000000C803401453697A652E506C6174666F726D - 44656661756C7408000A5452656374616E676C6500095374796C654E616D6506 - 0A52656374616E676C653205416C69676E0708436F6E74656E747307436F726E - 6572730B07546F704C65667408546F705269676874000A46696C6C2E436F6C6F - 720709784646323532353235064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000000C08607400B53697A652E48656967687405 - 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F7207097846463135313531350758526164697573 - 0500000000000000C0004007595261646975730500000000000000C000400000 - 0A5452656374616E676C6500095374796C654E616D65060A52656374616E676C - 653105416C69676E0708436F6E74656E747307436F726E6572730B07546F704C - 65667408546F705269676874000A46696C6C2E436F6C6F720709784646313531 - 353135064C6F636B6564090748697454657374080A53697A652E576964746805 - 000000000000C08607400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6507585261646975730500000000000000C0004007595261 - 646975730500000000000000C00040000F54466C6F6174416E696D6174696F6E - 00095374796C654E616D650614466C6F6174416E696D6174696F6E315374796C - 65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174 - 696F6E070843697263756C61720C50726F70657274794E616D6506075363616C - 652E580A537461727456616C7565050000000000000080FF3F0953746F705661 - 6C756505000000000000000000000754726967676572060F4973457870616E64 - 65643D747275650E54726967676572496E766572736506104973457870616E64 - 65643D66616C73650000000007544C61796F757400095374796C654E616D6506 - 074C61796F75743305416C69676E0708436F6E74656E74730A53697A652E5769 - 64746805000000000000C08607400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C74080005545465 - 787400095374796C654E616D6506047465787405416C69676E07044C65667408 - 4175746F53697A65090A436C6970506172656E7409064C6F636B656409074869 - 7454657374080C4D617267696E732E4C6566740500000000000000A002400A50 - 6F736974696F6E2E580500000000000000A002400A53697A652E576964746805 - 00000000000018D103400B53697A652E4865696768740500000000000060FF02 - 401453697A652E506C6174666F726D44656661756C7408045465787406045465 - 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 - 697465165465787453657474696E67732E486F727A416C69676E07074C656164 - 696E670000000F54457870616E646572427574746F6E00095374796C654E616D - 650606627574746F6E05416C69676E07055269676874064C6F636B6564090A50 - 6F736974696F6E2E580500000000000080F906400A53697A652E576964746805 - 00000000000000A003400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C7408000000000054504630 - 07544C61796F757400095374796C654E616D650615616E69696E64696361746F - 72686F727A7374796C6505416C69676E070643656E7465720A53697A652E5769 - 6474680500000000000040C006400B53697A652E486569676874050000000000 - 00008000401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653105416C69676E0706436C69656E740C436C69704368696C6472 - 656E090A46696C6C2E436F6C6F7207097846463430343034300A53697A652E57 - 696474680500000000000040C006400B53697A652E4865696768740500000000 - 0000008000401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E650758526164697573050000000000000080FF - 3F0759526164697573050000000000000080FF3F0005544C696E650009537479 - 6C654E616D6506054C696E6531084C696E65547970650706426F74746F6D0A53 - 697A652E57696474680500000000000000A00B400B53697A652E486569676874 - 05000000000000008000401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F720709784646324138324532105374726F6B65 - 2E546869636B6E65737305000000000000008002400A5374726F6B652E436170 - 0705526F756E640B5374726F6B652E446173680704446173680B5374726F6B65 - 2E4A6F696E0705526F756E64000F54466C6F6174416E696D6174696F6E000953 - 74796C654E616D650603616E6907456E61626C656409084475726174696F6E05 - 00000000000000800340044C6F6F70090C50726F70657274794E616D65060A50 - 6F736974696F6E2E580A537461727456616C75650500000000000000C808C009 - 53746F7056616C756505000000000000000000000754726967676572060E4973 - 56697369626C653D7472756500000000005450463007544C61796F7574000953 - 74796C654E616D650611616E69696E64696361746F727374796C6505416C6967 - 6E070643656E7465720756697369626C650800045441726300095374796C654E - 616D65060341726305416C69676E0708436F6E74656E74730748697454657374 - 080D526F746174696F6E416E676C650500000000000000B407400A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F720708636C615768697465105374726F6B652E54686963 - 6B6E657373050000000000000080004008456E64416E676C6505000000000000 - 00B405C0000F54466C6F6174416E696D6174696F6E00095374796C654E616D65 - 0603616E6907456E61626C656409084475726174696F6E050000000000000080 - FF3F044C6F6F70090C50726F70657274794E616D65060D526F746174696F6E41 - 6E676C650A537461727456616C756505000000000000000000000953746F7056 - 616C75650500000000000000B407400754726967676572060E49735669736962 - 6C653D74727565000000005450463007544C61796F757400095374796C654E61 - 6D65060A70616E656C7374796C6505416C69676E070643656E7465720A53697A - 652E57696474680500000000000000C006400B53697A652E4865696768740500 - 000000000000A406401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F7207097846463230323032300A53697A652E576964746805000000 - 00000000C006400B53697A652E4865696768740500000000000000A406401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6507585261646975730500000000000000C0004007595261646975 - 730500000000000000C000400000005450463007544C61796F75740009537479 - 6C654E616D65061970726F67726573736261726D696E696572726F727374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 33338505400B53697A652E4865696768740500000000009999E104401453697A - 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 - 5374796C654E616D65060668747261636B05416C69676E0708436F6E74656E74 - 730A46696C6C2E436F6C6F720709784646343034303430064C6F636B65640907 - 48697454657374080A53697A652E576964746805000000000033338505400B53 - 697A652E4865696768740500000000009999E104401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852 - 6164697573050000000000000080004007595261646975730500000000000000 - 800040000A5452656374616E676C6500095374796C654E616D65060A68696E64 - 696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978 - 4646453232413241064C6F636B6564090748697454657374080A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 009999E104401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65075852616469757305000000000000008000 - 40075952616469757305000000000000008000400000000A5452656374616E67 - 6C6500095374796C654E616D65060676747261636B05416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B - 6564090748697454657374080A53697A652E5769647468050000000000333385 - 05400B53697A652E4865696768740500000000009999E104401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 6507585261646975730500000000000000800040075952616469757305000000 - 00000000800040000A5452656374616E676C6500095374796C654E616D65060A - 76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F - 6C6F720709784646453232413241064C6F636B6564090748697454657374080A - 506F736974696F6E2E5905000000000099998D04400A53697A652E5769647468 - 05000000000033338505400B53697A652E4865696768740500000000000000A8 - 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E6507585261646975730500000000000000800040075952 - 61646975730500000000000000800040000000005450463007544C61796F7574 - 00095374796C654E616D65060E6C6F67627574746F6E7374796C6505416C6967 - 6E070643656E7465720A53697A652E57696474680500000000000000C005400B - 53697A652E4865696768740500000000000000C005401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F726465720201 - 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F - 756E6405416C69676E0706436C69656E740C436C69704368696C6472656E090A - 436C6970506172656E740907436F726E6572730B08546F7052696768740B426F - 74746F6D5269676874000A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080A53697A652E57696474680500000000000000C005400B - 53697A652E4865696768740500000000000000C005401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758 - 5261646975730500000000000000C00040075952616469757305000000000000 - 00C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E - 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 - 616C756507097846463430343034300754726967676572063049734D6F757365 - 4F7665723D747275653B4973507265737365643D66616C73653B4973466F6375 - 7365643D66616C73650E54726967676572496E7665727365063149734D6F7573 - 654F7665723D66616C73653B4973507265737365643D66616C73653B4973466F - 63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3208 - 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464634303430 - 34300953746F7056616C75650709784646313735373943075472696767657206 - 2F4973507265737365643D747275653B49734D6F7573654F7665723D74727565 - 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E33084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463241383245320953746F7056616C7565070978464631373537394307547269 - 67676572062E4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D747275650E54726967676572496E7665 - 727365062F4973507265737365643D66616C73653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D74727565000005545061746800095374 - 796C654E616D650605506174683105416C69676E0706436C69656E7409446174 - 612E506174680A5C02000032000000000000000000A841CDCCCC400100000000 - 00A8410000C041010000000000C03F0000C041010000000000C03F0000000001 - 0000009A99694100000000010000000000A841CDCCCC40030000000000A841CD - CCCC400000000000009C410000F04001000000000058410000F0400100000000 - 0058410000C03F01000000000040400000C03F01000000000040400000B44101 - 00000000009C410000B4410100000000009C410000F0400300000000009C4100 - 00F04000000000000040410000F04001000000000090400000F0400100000000 - 0090400000C04001000000000040410000C04001000000000040410000F04003 - 000000000040410000F040000000000000904000001041010000000000904100 - 0010410100000000009041000028410100000000009040000028410100000000 - 0090400000104103000000000090400000104100000000000090400000404101 - 0000000000904100004041010000000000904100005841010000000000904000 - 0058410100000000009040000040410300000000009040000040410000000000 - 0090400000704101000000000090410000704101000000000090410000844101 - 0000000000904000008441010000000000904000007041030000000000904000 - 0070410000000000009040000090410100000000009041000090410100000000 - 00904100009C41010000000000904000009C4101000000000090400000904103 - 000000000090400000904100000000000070410000C040010000003333934100 - 00C04001000000000070416666264001000000000070410000C0400300000000 - 0070410000C0400A46696C6C2E436F6C6F720708636C61576869746507486974 - 54657374080C4D617267696E732E4C6566740500000000000000A002400B4D61 - 7267696E732E546F700500000000000000A002400D4D617267696E732E526967 - 68740500000000000000A002400E4D617267696E732E426F74746F6D05000000 - 00000000A002400A53697A652E576964746805000000000000009805400B5369 - 7A652E48656967687405000000000000009805401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261 - 704D6F6465070346697400000000} - end> - Left = 8 - Top = 408 - end - object AERModernAnimatedStyle: TStyleBook - StyleName = 'AER Modern Smooth Style' - Styles = < - item - ResourcesBin = { - 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 - AF00060B627574746F6E7374796C6503C5040609656469747374796C6503AC05 - 060A6C6162656C7374796C65032001060D67726F7570626F787374796C65038E - 02060D747261636B6261727374796C65038C07060D636865636B626F78737479 - 6C65039E0506147363726F6C6C62617268747261636B7374796C65033B010614 - 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 - 6172626F74746F6D627574746F6E032D0406137363726F6C6C6261726C656674 - 627574746F6E03440406147363726F6C6C6261727269676874627574746F6E03 - 450406127363726F6C6C626172746F70627574746F6E034304060E7363726F6C - 6C6261727374796C65036304060A7468756D627374796C65034402060B737769 - 7463687374796C6503DC01060C7370696E626F787374796C65032908060F7461 - 62636F6E74726F6C7374796C6503A701060B746162646F747374796C65035901 - 060C7461626974656D7374796C6503EF04060D7468756D626261727374796C65 - 034F03060C6C697374626F787374796C6503AD07060D6C697374626F78666F6F - 746572038B0106106C697374626F786974656D7374796C6503260306126C6973 - 74626F78706C61696E6865616465720346020609677269647374796C65038708 - 060F6865616465726974656D7374796C6503CE03061070726F67726573736261 - 727374796C65036A04061170726F677265737363656C6C7374796C6503A50206 - 106D656E756261726974656D7374796C6503300B060C6D656E75626172737479 - 6C65036C02060D6D656E756974656D7374796C65035D0B06126D656E75736570 - 617261746F727374796C6503E501060D6D656E75766965777374796C65039102 - 060E696D61676563656C6C7374796C65033D01060E706F70757063656C6C7374 - 796C65038E03060D7465787463656C6C7374796C6503A60106096D656D6F7374 - 796C6503DE07060E6C696E6B6C6162656C7374796C65035B03060D73697A6567 - 7269707374796C6503FB04060E7374617475736261727374796C6503DB01060C - 746F6F6C6261727374796C6503CA00061570726F67726573736261726572726F - 727374796C65036F040613736D616C6C7363726F6C6C6261727374796C6503AE - 01060D636F6D626F626F787374796C65030108060D73706C6974746572737479 - 6C6503C0030610636C6F7365627574746F6E7374796C65038604060E6D617862 - 7574746F6E7374796C65030104060E6D696E627574746F6E7374796C65031904 - 060E726573627574746F6E7374796C65031A04061177696E646F77626F726465 - 727374796C65035510060F746F6F6C77696E646F777374796C6503BD0D061072 - 6164696F627574746F6E7374796C6503C4050618756C63656E74657272616469 - 6F627574746F6E7374796C650368050616756C6C656674726164696F62757474 - 6F6E7374796C65035B050617756C7269676874726164696F627574746F6E7374 - 796C65036005060E636F6D626F656469747374796C65038D090611616E69696E - 64696361746F727374796C6503BA010613657870616E646572627574746F6E73 - 74796C650381020615657870616E646572636865636B626F787374796C6503DB - 05060A70616E656C7374796C65031E01061970726F67726573736261726D696E - 696572726F727374796C65036103061470726F67726573736261726D696E6973 - 74796C65035C03060D657870616E6465727374796C65037C060615616E69696E - 64696361746F72686F727A7374796C65038A02060E6C6F67627574746F6E7374 - 796C65038A0700545046300A5452656374616E676C6500095374796C654E616D - 65060F6261636B67726F756E647374796C6505416C69676E070643656E746572 - 0A46696C6C2E436F6C6F7207097846463244324432440A53697A652E57696474 - 6805000000000000009407400B53697A652E4865696768740500000000000080 - D206401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E650756697369626C650800005450463007544C61796F - 757400095374796C654E616D65060B627574746F6E7374796C6505416C69676E - 070643656E7465720A53697A652E57696474680500000000000000C805400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572020100 - 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 - 6E6405416C69676E0706436C69656E740C436C69704368696C6472656E090A43 - 6C6970506172656E74090A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080A53697A652E57696474680500000000000000C805400B - 53697A652E4865696768740500000000000000C803401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 - 6F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463230323032300953746F7056616C75650709 - 7846463430343034300754726967676572063049734D6F7573654F7665723D74 - 7275653B4973507265737365643D66616C73653B4973466F63757365643D6661 - 6C73650E54726967676572496E7665727365063149734D6F7573654F7665723D - 66616C73653B4973507265737365643D66616C73653B4973466F63757365643D - 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650615627574746F6E436F6C6F72416E696D6174696F6E3208447572617469 - 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463430343034300953746F - 7056616C756507097846463137353739430754726967676572062F4973507265 - 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 - 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E330844 - 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 - 320953746F7056616C756507097846463137353739430754726967676572062E - 4973507265737365643D747275653B49734D6F7573654F7665723D747275653B - 4973466F63757365643D747275650E54726967676572496E7665727365062F49 - 73507265737365643D66616C73653B49734D6F7573654F7665723D747275653B - 4973466F63757365643D7472756500000005545465787400095374796C654E61 - 6D6506047465787405416C69676E0706436C69656E7413456E61626C65447261 - 67486967686C69676874080748697454657374080A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C7408165465787453657474 - 696E67732E466F6E74436F6C6F720708636C6157686974650000005450463007 - 544C61796F757400095374796C654E616D650609656469747374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 0202000C5442727573684F626A65637400095374796C654E616D65060A666F72 - 6567726F756E6400000C5442727573684F626A65637400095374796C654E616D - 65060973656C656374696F6E0B42727573682E436F6C6F720709783936324138 - 32453200000B54466F6E744F626A65637400095374796C654E616D650604666F - 6E7409466F6E742E53697A650500000000000000D0024000000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 - 300748697454657374080A53697A652E57696474680500000000000000C80540 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 3531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E - 050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D - 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464631 - 35313531350953746F7056616C75650709784646343034303430075472696767 - 6572062049734D6F7573654F7665723D747275653B4973466F63757365643D66 - 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 - 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 - 696F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C5072 - 6F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172745661 - 6C756507097846463135313531350953746F7056616C75650709784646324138 - 3245320754726967676572060E4973466F63757365643D747275650E54726967 - 676572496E7665727365060F4973466F63757365643D66616C73650000000754 - 4C61796F757400095374796C654E616D650607627574746F6E7305416C69676E - 07055269676874064C6F636B6564090B4D617267696E732E546F700500000000 - 0000008000400D4D617267696E732E526967687405000000000000008000400E - 4D617267696E732E426F74746F6D05000000000000008000400A506F73697469 - 6F6E2E580500000000000000C004400A506F736974696F6E2E59050000000000 - 00008000400A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000A803401453697A652E506C6174666F726D - 44656661756C7408000007544C61796F757400095374796C654E616D65060763 - 6F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D6172 - 67696E732E4C65667405000000000000008001400B4D617267696E732E546F70 - 05000000000000008000400D4D617267696E732E526967687405000000000000 - 008000400E4D617267696E732E426F74746F6D05000000000000008000400A53 - 697A652E57696474680500000000000000A804400B53697A652E486569676874 - 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 - 08000006544C6162656C00095374796C654E616D65060670726F6D7074064C6F - 636B656409074F706163697479050000000000000080FE3F1654657874536574 - 74696E67732E466F6E74436F6C6F720708636C61576869746504546578740604 - 546578740000005450463007544C61796F757400095374796C654E616D65060A - 6C6162656C7374796C6505416C69676E070643656E7465720A53697A652E5769 - 6474680500000000000000C805400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F7264657202030005545465787400095374796C654E616D - 6506047465787405416C69676E0708436F6E74656E7473074869745465737408 - 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 - 686974650000005450463007544C61796F757400095374796C654E616D65060D - 67726F7570626F787374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000000000F004400B53697A652E486569676874050000 - 0000000000C804401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F726465720204000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E - 74656E74730946696C6C2E4B696E6407044E6F6E650748697454657374080C4D - 617267696E732E4C6566740500000000000000C000400B4D617267696E732E54 - 6F7005000000000000009002400D4D617267696E732E52696768740500000000 - 000000C000400E4D617267696E732E426F74746F6D0500000000000000C00040 - 0A53697A652E57696474680500000000000000D804400B53697A652E48656967 - 687405000000000000009804401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F7207097846463135313531350005545465 - 787400095374796C654E616D65060474657874084175746F53697A65090A436C - 6970506172656E74090748697454657374080C4D617267696E732E4C65667405 - 00000000000000A002400A506F736974696F6E2E580500000000006055950240 - 0A506F736974696F6E2E590500000000004055D501C00A53697A652E57696474 - 6805000000000000B8C703400B53697A652E4865696768740500000000000060 - FF02401453697A652E506C6174666F726D44656661756C740816546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465155465787453 - 657474696E67732E576F72645772617008000000005450463007544C61796F75 - 7400095374796C654E616D65060D747261636B6261727374796C6505416C6967 - 6E070643656E7465720A53697A652E57696474680500000000000000C805400B - 53697A652E4865696768740500000000000000C805401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F726465720205 - 0B46697865644865696768740211000A5452656374616E676C6500095374796C - 654E616D65060668747261636B05416C69676E070A5665727443656E7465720A - 46696C6C2E436F6C6F7207097846463135313531350748697454657374080A50 - 6F736974696F6E2E590500000000000000BC04400A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000A001 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D65 - 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946696C - 6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C4D61 - 7267696E732E4C6566740500000000000000C001400B4D617267696E732E546F - 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 - 0000C001400E4D617267696E732E426F74746F6D050000000000000080FF3F0A - 53697A652E57696474680500000000000000B005400B53697A652E4865696768 - 740500000000000000C000401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C - 6500095374796C654E616D650609686967686C6967687405416C69676E07044C - 6566740A46696C6C2E436F6C6F72070978464632413832453207486974546573 - 74080C50616464696E672E4C6566740500000000000000A002400A53697A652E - 57696474680500000000000000F003400B53697A652E48656967687405000000 - 00000000A001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666656374000853 - 6F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846 - 46324138324532074F706163697479050000000000000080FF3F07456E61626C - 6564080000000A5452656374616E676C6500095374796C654E616D6506067674 - 7261636B05416C69676E070A486F727A43656E7465720A46696C6C2E436F6C6F - 7207097846463135313531350748697454657374080A506F736974696F6E2E58 - 0500000000000000BC04400A53697A652E57696474680500000000000000A001 - 400B53697A652E4865696768740500000000000000C805401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F - 756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E - 6F6E65064C6F636B6564090748697454657374080C4D617267696E732E4C6566 - 740500000000000000C001400B4D617267696E732E546F700500000000000000 - 80FF3F0D4D617267696E732E52696768740500000000000000C001400E4D6172 - 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 - 6805000000000000000000000B53697A652E4865696768740500000000000000 - C405401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E - 616D650609686967686C6967687405416C69676E0703546F700A46696C6C2E43 - 6F6C6F7207097846463241383245320748697454657374080A53697A652E5769 - 6474680500000000000000A001400B53697A652E486569676874050000000000 - 0000F003401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6500000B54476C6F774566666563740008536F66 - 746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F72070978464632 - 4138324532074F706163697479050000000000000080FF3F07456E61626C6564 - 0800000006545468756D6200095374796C654E616D650606687468756D62064C - 6F636B6564090A506F736974696F6E2E580500000000003033AB03400A506F73 - 6974696F6E2E59050000000000FFFFA304400A53697A652E5769647468050000 - 0000000000F002400B53697A652E4865696768740500000000000000F0024014 - 53697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75 - 70060D7468756D626261727374796C65000006545468756D6200095374796C65 - 4E616D650606767468756D62064C6F636B6564090A506F736974696F6E2E5805 - 0000000000CBCCA804400A506F736974696F6E2E590500000000009899B10340 - 0A53697A652E57696474680500000000000000F002400B53697A652E48656967 - 68740500000000000000F002401453697A652E506C6174666F726D4465666175 - 6C74080B5374796C654C6F6F6B7570060D7468756D626261727374796C650000 - 005450463007544C61796F757400095374796C654E616D65060D636865636B62 - 6F787374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 050000000000ACAA8006400B53697A652E486569676874050000000000585599 - 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08085461624F7264657202060007544C61796F75740005416C69676E07044C65 - 66740A53697A652E576964746805000000000000009003400B53697A652E4865 - 6967687405000000000058559904401453697A652E506C6174666F726D446566 - 61756C7408000A5452656374616E676C6500095374796C654E616D65060A6261 - 636B67726F756E6405416C69676E070643656E7465720A46696C6C2E436F6C6F - 7207097846463230323032300748697454657374080A53697A652E5769647468 - 0500000000000000F002400B53697A652E4865696768740500000000000000F0 - 02401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F720709784646313531353135000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653105416C69676E0706436C69656E - 740A46696C6C2E436F6C6F720709784646324138324532074869745465737408 - 074F70616369747905000000000000000000000C4D617267696E732E4C656674 - 05000000000000008000400B4D617267696E732E546F70050000000000000080 - 00400D4D617267696E732E526967687405000000000000008000400E4D617267 - 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 - 0500000000000000B002400B53697A652E4865696768740500000000000000B0 - 02401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0009537479 - 6C654E616D65061B6368656368626F7856697362696C697479416E696D617469 - 6F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 - 4E616D6506074F7061636974790A537461727456616C75650500000000000000 - 0000000953746F7056616C75650500000000000000C805400754726967676572 - 060E4973436865636B65643D747275650E54726967676572496E766572736506 - 0F4973436865636B65643D66616C73650000000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650618636865636B626F785374726F6B65416E - 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C - 756507097846463135313531350953746F7056616C7565070978464632413832 - 45320754726967676572060E4973436865636B65643D747275650E5472696767 - 6572496E7665727365060F4973436865636B65643D66616C736500000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650617636865636B626F - 78436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD - CCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463230323032300953746F7056616C7565070978 - 46463430343034300754726967676572061049734D6F7573654F7665723D7472 - 75650E54726967676572496E7665727365061149734D6F7573654F7665723D66 - 616C73650000000005545465787400095374796C654E616D6506047465787405 - 416C69676E0706436C69656E740A53697A652E57696474680500000000005855 - DD05400B53697A652E48656967687405000000000058559904401453697A652E - 506C6174666F726D44656661756C740804546578740604546578741654657874 - 53657474696E67732E466F6E74436F6C6F720708636C61576869746500000054 - 5046300A5452656374616E676C6500095374796C654E616D6506147363726F6C - 6C62617268747261636B7374796C6505416C69676E070643656E7465720A4669 - 6C6C2E436F6C6F7207097846463135313531350748697454657374080A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E650756697369626C6508000654546875 - 6D6200095374796C654E616D6506057468756D62064C6F636B6564090A53697A - 652E576964746805000000000000008003400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C74080B - 5374796C654C6F6F6B7570060A7468756D627374796C65000000545046300A54 - 52656374616E676C6500095374796C654E616D6506147363726F6C6C62617276 - 747261636B7374796C6505416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463135313531350748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650756697369626C65080006545468756D62000953 - 74796C654E616D6506057468756D62064C6F636B6564090A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 008003401453697A652E506C6174666F726D44656661756C74080B5374796C65 - 4C6F6F6B7570060A7468756D627374796C650000005450463007544C61796F75 - 7400095374796C654E616D6506157363726F6C6C626172626F74746F6D627574 - 746F6E05416C69676E070643656E7465720756697369626C6508085461624F72 - 6465720207000A5452656374616E676C6500095374796C654E616D65060A6261 - 636B67726F756E6405416C69676E0706436C69656E740C436C69704368696C64 - 72656E090A436C6970506172656E74090A46696C6C2E436F6C6F720709784646 - 3230323032300748697454657374080A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C804401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E - 050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 - 616C756507097846463430343034300754726967676572062049734D6F757365 - 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 - 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 - 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3208 - 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464634303430 - 34300953746F7056616C75650709784646313735373943075472696767657206 - 1F4973507265737365643D747275653B49734D6F7573654F7665723D74727565 - 0E54726967676572496E766572736506204973507265737365643D66616C7365 - 3B49734D6F7573654F7665723D7472756500000007544C61796F757400095374 - 796C654E616D6506074C61796F75743105416C69676E070643656E7465720A53 - 697A652E57696474680500000000000000A002400B53697A652E486569676874 - 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 - 080005545061746800095374796C654E616D650605506174683105416C69676E - 0706436C69656E7409446174612E506174680A34000000040000000000000000 - 00C8420000C84201000000000096430000C84201000000000048430000964303 - 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 - 0748697454657374080A53697A652E57696474680500000000000000A002400B - 53697A652E4865696768740500000000000000C001401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 00005450463007544C61796F757400095374796C654E616D6506137363726F6C - 6C6261726C656674627574746F6E05416C69676E070643656E74657207566973 - 69626C6508085461624F726465720208000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E - 740C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F - 6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 30323032300953746F7056616C75650709784646343034303430075472696767 - 6572062049734D6F7573654F7665723D747275653B4973507265737365643D66 - 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 - 3D66616C73653B4973507265737365643D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 - 416E696D6174696F6E32084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463430343034300953746F7056616C7565070978464631373537 - 39430754726967676572061F4973507265737365643D747275653B49734D6F75 - 73654F7665723D747275650E54726967676572496E7665727365062049735072 - 65737365643D66616C73653B49734D6F7573654F7665723D7472756500000007 - 544C61796F757400095374796C654E616D6506074C61796F75743105416C6967 - 6E070643656E7465720A53697A652E57696474680500000000000000A002400B - 53697A652E4865696768740500000000000000C001401453697A652E506C6174 - 666F726D44656661756C74080005545061746800095374796C654E616D650605 - 506174683105416C69676E0706436C69656E7409446174612E506174680A3400 - 000004000000000000000000C8420000C84201000000000096430000C8420100 - 00000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F - 720708636C6157686974650748697454657374080D526F746174696F6E416E67 - 6C650500000000000000B405400A53697A652E57696474680500000000000000 - A002400B53697A652E4865696768740500000000000000C001401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000000005450463007544C61796F757400095374796C654E616D65061473 - 63726F6C6C6261727269676874627574746F6E05416C69676E070643656E7465 - 720756697369626C6508085461624F726465720209000A5452656374616E676C - 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0706 - 436C69656E740C436C69704368696C6472656E090A436C6970506172656E7409 - 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 - 6D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463230323032300953746F7056616C7565070978464634303430343007 - 54726967676572062049734D6F7573654F7665723D747275653B497350726573 - 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 - 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E - 436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000000000 - 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463430343034300953746F7056616C756507097846 - 463137353739430754726967676572061F4973507265737365643D747275653B - 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 - 204973507265737365643D66616C73653B49734D6F7573654F7665723D747275 - 6500000007544C61796F757400095374796C654E616D6506074C61796F757431 - 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 00A002400B53697A652E4865696768740500000000000000C001401453697A65 - 2E506C6174666F726D44656661756C74080005545061746800095374796C654E - 616D650605506174683105416C69676E0706436C69656E7409446174612E5061 - 74680A3400000004000000000000000000C8420000C842010000000000964300 - 00C842010000000000484300009643030000000000C8420000C8420A46696C6C - 2E436F6C6F720708636C6157686974650748697454657374080D526F74617469 - 6F6E416E676C650500000000000000B405C00A53697A652E5769647468050000 - 0000000000A002400B53697A652E4865696768740500000000000000C0014014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E65000000005450463007544C61796F757400095374796C654E61 - 6D6506127363726F6C6C626172746F70627574746F6E05416C69676E07064365 - 6E7465720756697369626C6508085461624F72646572020A000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 - 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 - 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 - 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463230323032300953746F7056616C7565070978464634303430 - 34300754726967676572062049734D6F7573654F7665723D747275653B497350 - 7265737365643D66616C73650E54726967676572496E7665727365062149734D - 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574 - 746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000 - 0000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097846463430343034300953746F7056616C756507 - 097846463137353739430754726967676572061F4973507265737365643D7472 - 75653B49734D6F7573654F7665723D747275650E54726967676572496E766572 - 736506204973507265737365643D66616C73653B49734D6F7573654F7665723D - 7472756500000007544C61796F757400095374796C654E616D6506074C61796F - 75743105416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000A002400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C7408000554506174680009537479 - 6C654E616D650605506174683105416C69676E0706436C69656E740944617461 - 2E506174680A3400000004000000000000000000C8420000C842010000000000 - 96430000C842010000000000484300009643030000000000C8420000C8420A46 - 696C6C2E436F6C6F720708636C6157686974650748697454657374080D526F74 - 6174696F6E416E676C650500000000000000B406400A53697A652E5769647468 - 0500000000000000A002400B53697A652E4865696768740500000000000000C0 - 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000000005450463007544C61796F757400095374796C - 654E616D65060E7363726F6C6C6261727374796C6505416C69676E070643656E - 7465720756697369626C6508085461624F72646572020B000754427574746F6E - 00095374796C654E616D65060A6C656674627574746F6E05416C69676E07044C - 656674064C6F636B6564090A506F736974696F6E2E5905000000000000008003 - 400A53697A652E576964746805000000000000008003400B53697A652E486569 - 67687405000000000000009003401453697A652E506C6174666F726D44656661 - 756C74080B5374796C654C6F6F6B757006137363726F6C6C6261726C65667462 - 7574746F6E00000754427574746F6E00095374796C654E616D65060B72696768 - 74627574746F6E05416C69676E07055269676874064C6F636B6564090A506F73 - 6974696F6E2E5805000000000000008804400A506F736974696F6E2E59050000 - 00000000008003400A53697A652E576964746805000000000000008003400B53 - 697A652E48656967687405000000000000009003401453697A652E506C617466 - 6F726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C62 - 61727269676874627574746F6E00000754427574746F6E00095374796C654E61 - 6D65060C626F74746F6D627574746F6E05416C69676E0706426F74746F6D064C - 6F636B6564090A506F736974696F6E2E5905000000000000008804400A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 0000000000008003401453697A652E506C6174666F726D44656661756C74080B - 5374796C654C6F6F6B757006157363726F6C6C626172626F74746F6D62757474 - 6F6E00000654547261636B00095374796C654E616D65060668747261636B0541 - 6C69676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E - 070A486F72697A6F6E74616C0A53697A652E5769647468050000000000000090 - 03400B53697A652E48656967687405000000000000009003401453697A652E50 - 6C6174666F726D44656661756C74080B5374796C654C6F6F6B75700614736372 - 6F6C6C62617268747261636B7374796C6500000654547261636B00095374796C - 654E616D65060676747261636B05416C69676E0706436C69656E74064C6F636B - 6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A65 - 2E576964746805000000000000009003400B53697A652E486569676874050000 - 00000000009003401453697A652E506C6174666F726D44656661756C74080B53 - 74796C654C6F6F6B757006147363726F6C6C62617276747261636B7374796C65 - 00000754427574746F6E00095374796C654E616D650609746F70627574746F6E - 05416C69676E0703546F700A53697A652E57696474680500000000000000C804 - 400B53697A652E48656967687405000000000000008003401453697A652E506C - 6174666F726D44656661756C74080B5374796C654C6F6F6B757006127363726F - 6C6C626172746F70627574746F6E000000545046300A5452656374616E676C65 - 00095374796C654E616D65060A7468756D627374796C6505416C69676E070643 - 656E7465720A46696C6C2E436F6C6F7207097846463444344434440748697454 - 657374080A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C - 6508000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 - 7468756D62436F6C6F72416E696D6174696F6E31084475726174696F6E050000 - 000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463444344434440953746F7056616C75 - 6507097846463137353739430754726967676572060E4973507265737365643D - 747275650E54726967676572496E7665727365060F4973507265737365643D66 - 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E - 050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646344434 - 4434440953746F7056616C75650707636C614772617907547269676765720610 - 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 - 1149734D6F7573654F7665723D66616C7365000000545046300D545377697463 - 684F626A65637400095374796C654E616D65060B7377697463687374796C6505 - 416C69676E070643656E746572044B696E64070C466164696E67547261636B73 - 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C7408085461624F72646572020C12547261636B696E675468756D625363616C - 65050000000000000080FF3F0756697369626C65080A46696C6C2E436F6C6F72 - 07097846463230323032300C46696C6C4F6E2E436F6C6F720709784646313735 - 3739430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F6B652E4B69 - 6E6407044E6F6E650B5468756D622E436F6C6F7207097846463430343034300D - 5468756D624F6E2E436F6C6F7207097846463241383245320C5468756D624F6E - 2E4B696E640705536F6C6964105468756D625374726F6B652E4B696E6407044E - 6F6E650F5468756D625374726F6B652E4361700705526F756E64105468756D62 - 5374726F6B652E446173680706437573746F6D105468756D625374726F6B652E - 4A6F696E0705526F756E64165468756D625374726F6B652E437573746F6D4461 - 73680A08000000000000000000000000005450463007544C61796F7574000953 - 74796C654E616D65060C7370696E626F787374796C6505416C69676E07064365 - 6E7465720A53697A652E57696474680500000000006666E005400B53697A652E - 4865696768740500000000000000A803401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F72646572020D000A545265 - 6374616E676C6500095374796C654E616D65060A6261636B67726F756E640541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230 - 323032300A53697A652E57696474680500000000006666E005400B53697A652E - 4865696768740500000000000000A803401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C - 6F72416E696D6174696F6E315374796C65084475726174696F6E050000000000 - CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65060C537472 - 6F6B652E436F6C6F720A537461727456616C7565070978464631353135313509 - 53746F7056616C75650709784646343034303430075472696767657206104973 - 4D6F7573654F7665723D747275650E54726967676572496E7665727365061149 - 734D6F7573654F7665723D66616C73650000000C5442727573684F626A656374 - 00095374796C654E616D65060A666F726567726F756E640B42727573682E436F - 6C6F72070978464645414541454100000C5442727573684F626A656374000953 - 74796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F7207 - 09783936324138324532000007544C61796F757400095374796C654E616D6506 - 07636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D - 617267696E732E4C65667405000000000000008000400B4D617267696E732E54 - 6F7005000000000000008000400D4D617267696E732E52696768740500000000 - 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 - 0A53697A652E576964746805000000000070668405400B53697A652E48656967 - 687405000000000000008803401453697A652E506C6174666F726D4465666175 - 6C740800000754427574746F6E00095374796C654E616D65060B6D696E757362 - 7574746F6E05416C69676E07074669744C6566740843616E466F637573080643 - 7572736F72070763724172726F770C4D617267696E732E4C6566740500000000 - 0000008000400B4D617267696E732E546F7005000000000000008000400D4D61 - 7267696E732E526967687405000000000000008000400E4D617267696E732E42 - 6F74746F6D05000000000000008000400A506F736974696F6E2E580500000000 - 0000008000400A506F736974696F6E2E5905000000000000008000400A53697A - 652E5769647468050000000000E8FF8703400B53697A652E4865696768740500 - 0000000000008803401453697A652E506C6174666F726D44656661756C74080B - 5374796C654C6F6F6B7570060B627574746F6E7374796C650005545061746800 - 05416C69676E0706436C69656E7409446174612E506174680A40000000050000 - 00000000000000803F00000000010000000000803F0000803F01000000000000 - 000000003F010000000000803F00000000030000000000803F000000000A4669 - 6C6C2E436F6C6F720708636C6157686974650748697454657374080C4D617267 - 696E732E4C6566740500000000000000C001400B4D617267696E732E546F7005 - 00000000000000C001400D4D617267696E732E52696768740500000000000000 - C001400E4D617267696E732E426F74746F6D0500000000000000C001400A5369 - 7A652E5769647468050000000000A0FF9F01400B53697A652E48656967687405 - 00000000000000A001401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E650000000754427574746F6E000953 - 74796C654E616D65060A706C7573627574746F6E05416C69676E070846697452 - 696768740843616E466F6375730806437572736F72070763724172726F770C4D - 617267696E732E4C65667405000000000000008000400B4D617267696E732E54 - 6F7005000000000000008000400D4D617267696E732E52696768740500000000 - 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 - 0A506F736974696F6E2E580500000000006A66BA05400A506F736974696F6E2E - 5905000000000000008000400A53697A652E5769647468050000000000F0FF87 - 03400B53697A652E48656967687405000000000000008803401453697A652E50 - 6C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060B627574 - 746F6E7374796C65000554506174680005416C69676E0706436C69656E740944 - 6174612E506174680A3400000004000000000000000000000000000000010000 - 00000000000000803F010000000000803F0000003F0300000000000000000000 - 000A46696C6C2E436F6C6F720708636C6157686974650748697454657374080C - 4D617267696E732E4C6566740500000000000000C001400B4D617267696E732E - 546F700500000000000000C001400D4D617267696E732E526967687405000000 - 00000000C001400E4D617267696E732E426F74746F6D0500000000000000C001 - 400A53697A652E5769647468050000000000C0FF9F01400B53697A652E486569 - 6768740500000000000000A001401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 - 4C61796F757400095374796C654E616D65060F746162636F6E74726F6C737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 0000008E06400B53697A652E486569676874050000000000FFFFC90540145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F72646572020E000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E - 436F6C6F720709784646333033303330064C6F636B6564090748697454657374 - 080C50616464696E672E4C65667405000000000000008000400B50616464696E - 672E546F7005000000000000008000400D50616464696E672E52696768740500 - 0000000000008000400E50616464696E672E426F74746F6D0500000000000000 - 8000400A53697A652E576964746805000000000000008E06400B53697A652E48 - 6569676874050000000000FFFFC905401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350000 - 00545046300A5452656374616E676C6500095374796C654E616D65060B746162 - 646F747374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F - 7207097846463135313531350748697454657374080A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E696D61 - 74696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463135313531350953746F7056616C75650709784646324138324532075472 - 6967676572060F497353656C65637465643D747275650E54726967676572496E - 76657273650610497353656C65637465643D66616C7365000000545046300754 - 4C61796F757400095374796C654E616D65060C7461626974656D7374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 - 6572020F000A5452656374616E676C6500095374796C654E616D650603746F70 - 05416C69676E0708436F6E74656E74730C436C69704368696C6472656E090743 - 6F726E6572730B07546F704C65667408546F705269676874000A46696C6C2E43 - 6F6C6F720709784646323032303230064C6F636B656409074869745465737408 - 0553696465730B03546F70044C656674055269676874000A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F720709784646313531353135000654476C79706800095374796C - 654E616D65060A676C7970687374796C650C4D617267696E732E4C6566740500 - 0000000000008001400D4D617267696E732E5269676874050000000000000080 - 01C005416C69676E07044C6566740A53697A652E576964746805000000000000 - 008003400B53697A652E48656967687405000000000000008003401453697A65 - 2E506C6174666F726D44656661756C7408000005545465787400095374796C65 - 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 - 0748697454657374080C4D617267696E732E4C6566740500000000000000C000 - 400B4D617267696E732E546F700500000000000000C000400D4D617267696E73 - 2E52696768740500000000000000C000400E4D617267696E732E426F74746F6D - 0500000000000000C000400A53697A652E57696474680500000000000000B004 - 400B53697A652E48656967687405000000000000009803401453697A652E506C - 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 - 436F6C6F720708636C615768697465155465787453657474696E67732E576F72 - 64577261700800000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650612746162436F6C6F72416E696D6174696F6E310D416E696D6174696F - 6E547970650705496E4F7574084475726174696F6E050000000000CDCCCCFB3F - 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 - 616C756507097846463230323032300953746F7056616C756507097846463430 - 343034300754726967676572062149734D6F7573654F7665723D747275653B49 - 7353656C65637465643D66616C73650E54726967676572496E76657273650622 - 49734D6F7573654F7665723D66616C73653B497353656C65637465643D66616C - 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 12746162436F6C6F72416E696D6174696F6E32084475726174696F6E05000000 - 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463230323032300953746F7056616C7565 - 07097846463241383245320754726967676572060F497353656C65637465643D - 747275650E54726967676572496E76657273650610497353656C65637465643D - 66616C736500000000545046300A5452656374616E676C6500095374796C654E - 616D65060D7468756D626261727374796C6505416C69676E070643656E746572 - 0A46696C6C2E436F6C6F7207097846463241383245320748697454657374080A - 53697A652E57696474680500000000000000A003400B53697A652E4865696768 - 740500000000000000A003401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F720709784646313531353135075669736962 - 6C6508000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 147468756D62436F6C6F72416E696D6174696F6E31084475726174696F6E0500 - 00000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C756507097846463241383245320953746F7056616C - 756507097846463137353739430754726967676572061F497350726573736564 - 3D747275653B49734D6F7573654F7665723D747275650E54726967676572496E - 766572736506104973507265737365643D66616C73653B00000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72 - 416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463241383245320953746F7056616C7565070978464634303942 - 46460754726967676572062049734D6F7573654F7665723D747275653B497350 - 7265737365643D66616C73650E54726967676572496E7665727365062149734D - 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615746875 - 6D625374726F6B65416E696D6174696F6E31084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F - 720A537461727456616C756507097846463135313531350953746F7056616C75 - 6507097846463137353739430754726967676572061F4973507265737365643D - 747275653B49734D6F7573654F7665723D747275650E54726967676572496E76 - 65727365060F4973507265737365643D66616C73650000005450463007544C61 - 796F757400095374796C654E616D65060C6C697374626F787374796C6505416C - 69676E070643656E7465720A53697A652E5769647468050000000000FFFFE905 - 400B53697A652E48656967687405000000000000008306401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 0210000C5442727573684F626A65637400095374796C654E616D650618416C74 - 65726E6174696E67526F774261636B67726F756E640B42727573682E436F6C6F - 72070978464632433243324300000A5452656374616E676C6500095374796C65 - 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 - 0A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564090748 - 697454657374080C50616464696E672E4C65667405000000000000008000400B - 50616464696E672E546F7005000000000000008000400D50616464696E672E52 - 6967687405000000000000008000400E50616464696E672E426F74746F6D0500 - 0000000000008000400A53697A652E5769647468050000000000FFFFE905400B - 53697A652E48656967687405000000000000008306401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 313531350007544C61796F757400095374796C654E616D650607636F6E74656E - 7405416C69676E0706436C69656E740C436C69704368696C6472656E090A5369 - 7A652E5769647468050000000000FFFFC105400B53697A652E48656967687405 - 00000000000000DE05401453697A652E506C6174666F726D44656661756C7408 - 000A5452656374616E676C6500095374796C654E616D65060973656C65637469 - 6F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454657374 - 080A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E - 676C6500095374796C654E616D650610666F637573656473656C656374696F6E - 0A46696C6C2E436F6C6F7207097846463241383245320748697454657374080A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B652E44617368 - 0703446F740000000A545363726F6C6C42617200095374796C654E616D65060A - 767363726F6C6C62617205416C69676E070552696768740B536D616C6C436861 - 6E676505000000000000000000000B4F7269656E746174696F6E070856657274 - 6963616C0A506F736974696F6E2E58050000000000FFFFC505400A506F736974 - 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 - 0000008003400B53697A652E4865696768740500000000000000DE0540145369 - 7A652E506C6174666F726D44656661756C740800000A545363726F6C6C426172 - 00095374796C654E616D65060A687363726F6C6C62617205416C69676E070642 - 6F74746F6D0B536D616C6C4368616E676505000000000000000000000B4F7269 - 656E746174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E5805 - 000000000000008000400A506F736974696F6E2E590500000000000000E20540 - 0A53697A652E5769647468050000000000FFFFE105400B53697A652E48656967 - 687405000000000000008003401453697A652E506C6174666F726D4465666175 - 6C740800000F54536D616C6C5363726F6C6C42617200095374796C654E616D65 - 060F76736D616C6C7363726F6C6C62617205416C69676E070552696768740B53 - 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F - 6E0708566572746963616C0C4D617267696E732E4C6566740500000000000000 - 8000400A506F736974696F6E2E580500000000000000C605400A506F73697469 - 6F6E2E5905000000000000008000400A53697A652E5769647468050000000000 - 00008002400B53697A652E48656967687405000000000000008002401453697A - 652E506C6174666F726D44656661756C74080756697369626C650800000F5453 - 6D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D616C6C - 7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C436861 - 6E676505000000000000000000000B4F7269656E746174696F6E070A486F7269 - 7A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A506F - 736974696F6E2E5805000000000000008000400A506F736974696F6E2E590500 - 000000000000E205400A53697A652E576964746805000000000000009606400B - 53697A652E48656967687405000000000000008002401453697A652E506C6174 - 666F726D44656661756C74080756697369626C65080000000B54476C6F774566 - 666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F - 6C6F720709784646463639453244074F7061636974790500000000006666E6FE - 3F0754726967676572060E4973466F63757365643D7472756507456E61626C65 - 64080000005450463007544C61796F757400095374796C654E616D65060D6C69 - 7374626F78666F6F74657205416C69676E070643656E7465720A53697A652E57 - 6964746805000000000000009205400B53697A652E4865696768740500000000 - 000000D003401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F7264657202110005545465787400095374796C654E61 - 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 - 697454657374080C4D617267696E732E4C6566740500000000000000A001400B - 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 - 696768740500000000000000A001400E4D617267696E732E426F74746F6D0500 - 0000000000008000400A53697A652E57696474680500000000000000FC04400B - 53697A652E4865696768740500000000000000B003401453697A652E506C6174 - 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F - 6C6F720708636C6157686974650000005450463007544C61796F757400095374 - 796C654E616D6506106C697374626F786974656D7374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000000000D605400B5369 - 7A652E4865696768740500000000000000C003401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F7264657202120006 - 54476C79706800095374796C654E616D65060A676C7970687374796C650C4D61 - 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F - 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 - 00008000400E4D617267696E732E426F74746F6D050000000000000080FF3F05 - 416C69676E07044C6566740A53697A652E576964746805000000000000008003 - 400B53697A652E48656967687405000000000000008003401453697A652E506C - 6174666F726D44656661756C7408000005545465787400095374796C654E616D - 6506047465787405416C69676E0706436C69656E740748697454657374080C4D - 617267696E732E4C6566740500000000000000C000400B4D617267696E732E54 - 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 - 000000C000400E4D617267696E732E426F74746F6D050000000000000080FF3F - 0A53697A652E57696474680500000000000000CA05400B53697A652E48656967 - 68740500000000000000B003401453697A652E506C6174666F726D4465666175 - 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 - 68697465155465787453657474696E67732E576F726457726170081654657874 - 53657474696E67732E486F727A416C69676E07074C656164696E670000095443 - 6865636B426F7800095374796C654E616D650605636865636B05416C69676E07 - 084D6F73744C6566740843616E466F637573081244697361626C65466F637573 - 456666656374090A53697A652E57696474680500000000000000A003400B5369 - 7A652E4865696768740500000000000000C003401453697A652E506C6174666F - 726D44656661756C74080756697369626C65080000005450463007544C61796F - 757400095374796C654E616D6506126C697374626F78706C61696E6865616465 - 7205416C69676E070643656E7465720A53697A652E5769647468050000000000 - 00009205400B53697A652E4865696768740500000000000000D003401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 726465720213000A5452656374616E676C6500095374796C654E616D65060A62 - 61636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E43 - 6F6C6F720709784646324432443244064C6F636B656409074869745465737408 - 0A53697A652E576964746805000000000000009205400B53697A652E48656967 - 68740500000000000000D003401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F7207097846463135313531350000055454 - 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 - 6E74064C6F636B6564090748697454657374080C4D617267696E732E4C656674 - 0500000000000000A001400B4D617267696E732E546F70050000000000000080 - 00400D4D617267696E732E52696768740500000000000000A001400E4D617267 - 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 - 0500000000000000FC04400B53697A652E4865696768740500000000000000B0 - 03401453697A652E506C6174666F726D44656661756C74081654657874536574 - 74696E67732E466F6E74436F6C6F720708636C61576869746500000054504630 - 07544C61796F757400095374796C654E616D650609677269647374796C650541 - 6C69676E070643656E7465720A53697A652E5769647468050000000000FFFFE9 - 05400B53697A652E48656967687405000000000000008306401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 720214000C5442727573684F626A65637400095374796C654E616D650618416C - 7465726E6174696E67526F774261636B67726F756E640B42727573682E436F6C - 6F72070978333237383738373800000C5442727573684F626A65637400095374 - 796C654E616D6506086C696E6566696C6C0B42727573682E436F6C6F72070978 - 464631353135313500000A5452656374616E676C6500095374796C654E616D65 - 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 - 7374080C50616464696E672E4C65667405000000000000008000400B50616464 - 696E672E546F7005000000000000008000400D50616464696E672E5269676874 - 05000000000000008000400E50616464696E672E426F74746F6D050000000000 - 00008000400A53697A652E5769647468050000000000FFFFE905400B53697A65 - 2E48656967687405000000000000008306401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 00075448656164657200095374796C654E616D65060668656164657205536964 - 65730B03546F70044C65667406426F74746F6D0552696768740005416C69676E - 0703546F700A506F736974696F6E2E5805000000000000008000400A506F7369 - 74696F6E2E5905000000000000008000400A53697A652E576964746805000000 - 0000FFFFE105400B53697A652E4865696768740500000000000000A803401453 - 697A652E506C6174666F726D44656661756C7408000007544C61796F75740009 - 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 - 0C436C69704368696C6472656E090A53697A652E5769647468050000000000FF - FFC105400B53697A652E4865696768740500000000000000B405401453697A65 - 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 - 74796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C6F720709 - 7846463241383245320748697454657374080A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000C8044014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D6506 - 05666F6375730A46696C6C2E436F6C6F72070978414632413832453207486974 - 54657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D61 - 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 - 6874050000000000000080FF3F0E4D617267696E732E426F74746F6D05000000 - 0000000080FF3F0A53697A652E57696474680500000000000000C804400B5369 - 7A652E4865696768740500000000000000C804401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507595261 - 646975730500000000000000C000400000000A545363726F6C6C426172000953 - 74796C654E616D65060A767363726F6C6C62617205416C69676E070552696768 - 740B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 - 74696F6E0708566572746963616C0A506F736974696F6E2E58050000000000FF - FFC505400A506F736974696F6E2E590500000000000000B803400A53697A652E - 576964746805000000000000008003400B53697A652E48656967687405000000 - 00000000B405401453697A652E506C6174666F726D44656661756C740800000A - 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 - 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A50 - 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 - 00000000000000E205400A53697A652E5769647468050000000000FFFFE10540 - 0B53697A652E48656967687405000000000000008003401453697A652E506C61 - 74666F726D44656661756C740800000F54536D616C6C5363726F6C6C42617200 - 095374796C654E616D65060F76736D616C6C7363726F6C6C62617205416C6967 - 6E070552696768740B536D616C6C4368616E676505000000000000000000000B - 4F7269656E746174696F6E0708566572746963616C0C4D617267696E732E4C65 - 667405000000000000008000400A506F736974696F6E2E580500000000000000 - C605400A506F736974696F6E2E5905000000000000008000400A53697A652E57 - 6964746805000000000000008002400B53697A652E4865696768740500000000 - 0000008002401453697A652E506C6174666F726D44656661756C740807566973 - 69626C650800000F54536D616C6C5363726F6C6C42617200095374796C654E61 - 6D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F - 6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 - 74696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000 - 000000008000400A506F736974696F6E2E5805000000000000008000400A506F - 736974696F6E2E590500000000000000E205400A53697A652E57696474680500 - 0000000000009606400B53697A652E4865696768740500000000000000800240 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 - 0000005450463007544C61796F757400095374796C654E616D65060F68656164 - 65726974656D7374796C6505416C69676E070643656E7465720A53697A652E57 - 6964746805000000000000009205400B53697A652E4865696768740500000000 - 000000D003401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F726465720215000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646344334433443064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000000000920540 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 3531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650615686561646572436F6C6F72416E696D6174696F6E31084475726174696F - 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463443344334430953746F70 - 56616C756507097846463241383245320754726967676572060E497350726573 - 7365643D747275650E54726967676572496E7665727365060F49735072657373 - 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D6506166865616465725374726F6B65416E696D6174696F6E31084475 - 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060C - 5374726F6B652E436F6C6F720A537461727456616C7565070978464631353135 - 31350953746F7056616C75650709784646324138324532075472696767657206 - 0E4973507265737365643D747275650E54726967676572496E7665727365060F - 4973507265737365643D66616C736500000005545465787400095374796C654E - 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 - 48697454657374080C4D617267696E732E4C6566740500000000000000A00140 - 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 52696768740500000000000000A001400E4D617267696E732E426F74746F6D05 - 000000000000008000400A53697A652E57696474680500000000000000FC0440 - 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 - 74666F726D44656661756C7408165465787453657474696E67732E466F6E7443 - 6F6C6F720708636C6157686974650000005450463007544C61796F7574000953 - 74796C654E616D65061070726F67726573736261727374796C6505416C69676E - 070643656E7465720A53697A652E576964746805000000000033338505400B53 - 697A652E4865696768740500000000009999E104401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572021600 - 0A5452656374616E676C6500095374796C654E616D65060668747261636B0541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230 - 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 - 05000000000033338505400B53697A652E4865696768740500000000009999E1 - 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F720709784646313531353135000A5452656374616E676C6500095374 - 796C654E616D65060A68696E64696361746F7205416C69676E07044C6566740A - 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 - 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D - 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 - 000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A50 - 6F736974696F6E2E59050000000000000080FF3F0A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000009999D904 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E650000000A5452656374616E676C6500095374796C654E61 - 6D65060676747261636B05416C69676E0708436F6E74656E74730A46696C6C2E - 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 - 080A53697A652E576964746805000000000033338505400B53697A652E486569 - 6768740500000000009999E104401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F720709784646313531353135000A5452 - 656374616E676C6500095374796C654E616D65060A76696E64696361746F7205 - 416C69676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646324138 - 324532064C6F636B6564090748697454657374080C4D617267696E732E4C6566 - 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 - 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 - 67696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E - 58050000000000000080FF3F0A506F736974696F6E2E59050000000000999989 - 04400A53697A652E576964746805000000000033338105400B53697A652E4865 - 696768740500000000000000A803401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007 - 544C61796F757400095374796C654E616D65061170726F677265737363656C6C - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000F805400B53697A652E4865696768740500000000000000FC0540 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F7264657202170007544C61796F757400095374796C654E616D650606 - 68747261636B05416C69676E0708436F6E74656E7473064C6F636B6564090C4D - 617267696E732E4C65667405000000000000008000400B4D617267696E732E54 + 74666F726D44656661756C7408000554506174680005416C69676E070643656E + 74657209446174612E506174680A58000000070000000000000056D9524391AE + 2C43010000009276664365021643010000009F3983432B7C3C43010000009E9A + A64382D2B442010000006F1CB04375A4D1420100000026DF8243263F67430300 + 000056D9524391AE2C430A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080A53697A652E57696474680500000000000000B002400B53 + 697A652E4865696768740500000000000000B002401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F + 54466C6F6174416E696D6174696F6E00084475726174696F6E050000000000CD + CCCCFB3F0C50726F70657274794E616D6506074F7061636974790A5374617274 + 56616C756505000000000000000000000953746F7056616C7565050000000000 + 000080FF3F0754726967676572060E4973436865636B65643D747275650E5472 + 6967676572496E7665727365060F4973436865636B65643D66616C7365000000 + 0654476C79706800095374796C654E616D65060A676C7970687374796C650C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 6F7005000000000000008000400D4D617267696E732E52696768740500000000 - 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 - 0A53697A652E57696474680500000000000000F005400B53697A652E48656967 - 68740500000000000000F405401453697A652E506C6174666F726D4465666175 - 6C7408000A5452656374616E676C6500095374796C654E616D65060A68696E64 - 696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978 - 4646324138324532064C6F636B6564090748697454657374080C4D617267696E - 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 - 00000000008000400D4D617267696E732E526967687405000000000000008000 - 400E4D617267696E732E426F74746F6D05000000000000008000400A506F7369 - 74696F6E2E5805000000000000008000400A506F736974696F6E2E5905000000 - 000000008000400A53697A652E57696474680500000000000000C804400B5369 - 7A652E4865696768740500000000000000EC05401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000 - 5450463007544C61796F757400095374796C654E616D6506106D656E75626172 - 6974656D7374796C6505416C69676E070643656E7465720C4D617267696E732E - 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 - 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E - 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 - 6964746805000000000000009205400B53697A652E4865696768740500000000 - 000000D003401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F726465720218000A5452656374616E676C650005416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138 - 324532074869745465737408074F70616369747905000000000017B7D1F13F0A - 53697A652E576964746805000000000000009205400B53697A652E4865696768 - 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D - 6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 - 7274794E616D6506074F7061636974790A537461727456616C75650500000000 - 0000000000000953746F7056616C7565050000000000000080FF3F0754726967 - 676572060F497353656C65637465643D747275650E54726967676572496E7665 - 7273650610497353656C65637465643D66616C73650000000A5452656374616E - 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E - 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138324532 - 074869745465737408074F70616369747905000000000017B7D1F13F0A53697A - 652E576964746805000000000000009205400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 - 6F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 - 4E616D6506074F7061636974790A537461727456616C75650500000000000000 - 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 - 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 - 65061149734D6F7573654F7665723D66616C736500000007544C61796F757400 - 095374796C654E616D650605676C79706805416C69676E07044C6566740A5369 - 7A652E57696474680500000000000000C803400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 0007544C61796F757400095374796C654E616D650609636865636B6D61726B05 - 416C69676E0708436F6E74656E7473074F7061636974790500000000006F1283 - F53F0A53697A652E57696474680500000000000000C803400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C7408000554506174680005416C69676E070643656E7465720944617461 - 2E506174680A58000000070000000000000056D9524391AE2C43010000009276 - 664365021643010000009F3983432B7C3C43010000009E9AA64382D2B4420100 - 00006F1CB04375A4D1420100000026DF8243263F67430300000056D9524391AE - 2C430A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0A53697A652E57696474680500000000000000B002400B53697A652E48656967 - 68740500000000000000B002401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E - 696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D6506074F7061636974790A537461727456616C7565050000 - 00000000000000000953746F7056616C7565050000000000000080FF3F075472 - 6967676572060E4973436865636B65643D747275650E54726967676572496E76 - 65727365060F4973436865636B65643D66616C73650000000654476C79706800 - 095374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C - 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E52696768740500000000000000C000400E4D - 617267696E732E426F74746F6D050000000000000080FF3F05416C69676E0705 - 52696768740A53697A652E576964746805000000000000008003400B53697A65 - 2E48656967687405000000000000008003401453697A652E506C6174666F726D - 44656661756C740800000654496D61676500095374796C654E616D6506066269 - 746D61700E4D756C74695265734269746D61700E01000005416C69676E070843 - 6F6E74656E74730C4D617267696E732E4C65667405000000000000008000400B - 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 - 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 - 0000000000008000400A53697A652E57696474680500000000000000A803400B - 53697A652E4865696768740500000000000000B003401453697A652E506C6174 - 666F726D44656661756C740800000005545465787400095374796C654E616D65 - 06047465787405416C69676E07044C656674064C6F636B656409074869745465 - 7374080C4D617267696E732E4C65667405000000000000008002400D4D617267 - 696E732E526967687405000000000000008002400A506F736974696F6E2E5805 - 000000000000008404400A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C7408165465787453657474696E67732E466F6E7443 - 6F6C6F720708636C615768697465165465787453657474696E67732E486F727A - 416C69676E07074C656164696E67000005545465787400095374796C654E616D - 65060873686F727463757405416C69676E07055269676874064C6F636B656409 - 0748697454657374080C4D617267696E732E4C6566740500000000000000C002 - 400D4D617267696E732E52696768740500000000000000C001400A506F736974 - 696F6E2E580500000000000000C000C00A53697A652E57696474680500000000 - 000000C804400B53697A652E4865696768740500000000000000D00340145369 - 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 - 2E466F6E74436F6C6F720708636C615768697465165465787453657474696E67 - 732E486F727A416C69676E07074C656164696E67000007544C61796F75740009 - 5374796C654E616D6506077375626D61726B05416C69676E070552696768740A - 506F736974696F6E2E580500000000000000D404400A53697A652E5769647468 - 0500000000000000A003400B53697A652E4865696768740500000000000000D0 - 03401453697A652E506C6174666F726D44656661756C74080005545061746800 - 05416C69676E070643656E74657209446174612E506174680A34000000040000 - 0000000000000000000000000001000000000000000000803F01000000000080 - 3F0000003F0300000000000000000000000A46696C6C2E436F6C6F720708636C - 615768697465064C6F636B6564090748697454657374080A53697A652E576964 - 74680500000000000000E001400B53697A652E48656967687405000000000000 - 008002401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E6500000000545046300A5452656374616E676C6500 - 095374796C654E616D65060C6D656E756261727374796C6505416C69676E0706 - 43656E7465720C436C69704368696C6472656E090946696C6C2E4B696E640704 - 4E6F6E650748697454657374080A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000C804401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E650756697369626C6508000A5452656374616E676C650005416C69676E0706 - 436C69656E740A46696C6C2E436F6C6F72070978464632303230323007486974 - 54657374080C4D617267696E732E4C656674050000000000000080FFBF0B4D61 - 7267696E732E546F70050000000000000080FFBF0D4D617267696E732E526967 - 6874050000000000000080FFBF0A53697A652E57696474680500000000000000 - D004400B53697A652E4865696768740500000000000000CC04401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 4646313531353135000007544C61796F757400095374796C654E616D65060763 + 000000C000400E4D617267696E732E426F74746F6D050000000000000080FF3F + 05416C69676E070552696768740A506F736974696F6E2E580500000000000000 + C001400A506F736974696F6E2E5905000000000000008000400A53697A652E57 + 6964746805000000000000008003400B53697A652E4865696768740500000000 + 000000B803401453697A652E506C6174666F726D44656661756C740800000654 + 496D61676500095374796C654E616D6506066269746D61700E4D756C74695265 + 734269746D61700E01000005416C69676E0708436F6E74656E74730C4D617267 + 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + 8000400E4D617267696E732E426F74746F6D05000000000000008000400A5369 + 7A652E57696474680500000000000000A803400B53697A652E48656967687405 + 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 07044C656674064C6F636B6564090748697454657374080C4D617267696E732E + 4C65667405000000000000008002400D4D617267696E732E5269676874050000 + 00000000008002400A506F736974696F6E2E5805000000000000008404400A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 + 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 7465165465787453657474696E67732E486F727A416C69676E07074C65616469 + 6E67000005545465787400095374796C654E616D65060873686F727463757405 + 416C69676E07055269676874064C6F636B6564090748697454657374080C4D61 + 7267696E732E4C6566740500000000000000C002400D4D617267696E732E5269 + 6768740500000000000000C001400A506F736974696F6E2E5805000000000000 + 00C000C00A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C7408165465787453657474696E67732E466F6E74436F6C6F720708 + 636C615768697465165465787453657474696E67732E486F727A416C69676E07 + 074C656164696E67000007544C61796F757400095374796C654E616D65060773 + 75626D61726B05416C69676E070552696768740A506F736974696F6E2E580500 + 000000000000D404400A53697A652E57696474680500000000000000A003400B + 53697A652E4865696768740500000000000000D003401453697A652E506C6174 + 666F726D44656661756C7408000554506174680005416C69676E070643656E74 + 657209446174612E506174680A34000000040000000000000000000000000000 + 0001000000000000000000803F010000000000803F0000003F03000000000000 + 00000000000A46696C6C2E436F6C6F720708636C615768697465064C6F636B65 + 64090748697454657374080A53697A652E57696474680500000000000000E001 + 400B53697A652E48656967687405000000000000008002401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 00000000545046300A5452656374616E676C6500095374796C654E616D65060C + 6D656E756261727374796C6505416C69676E070643656E7465720C436C697043 + 68696C6472656E090946696C6C2E4B696E6407044E6F6E650748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C650807 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C00040000A5452656374616E676C650005416C69676E0706436C69656E74 + 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080C + 4D617267696E732E4C656674050000000000000080FFBF0B4D617267696E732E + 546F70050000000000000080FFBF0D4D617267696E732E526967687405000000 + 0000000080FFBF0A53697A652E57696474680500000000000000D004400B5369 + 7A652E4865696768740500000000000000CC04401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 313507585261646975730500000000000000C000400759526164697573050000 + 0000000000C00040000007544C61796F757400095374796C654E616D65060763 6F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 @@ -13473,1373 +12357,3336 @@ object MainForm: TMainForm 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 00000000009205400B53697A652E4865696768740500000000000000D0034014 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F72646572021A000A5452656374616E676C650005416C69676E0708436F + 61624F726465720226000A5452656374616E676C650005416C69676E0708436F 6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207486974 5465737408074F70616369747905000000000017B7D1F13F0A53697A652E5769 64746805000000000000009205400B53697A652E486569676874050000000000 0000D003401453697A652E506C6174666F726D44656661756C74080B5374726F 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 4475726174696F6E05000000000018B7D1F23F0C50726F70657274794E616D65 06074F7061636974790A537461727456616C7565050000000000000000000009 53746F7056616C7565050000000000000080FF3F0754726967676572060F4973 53656C65637465643D747275650E54726967676572496E766572736506104973 53656C65637465643D66616C73650000000A5452656374616E676C6500095374 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F72070978464632413832453207486974546573 - 7408074F70616369747905000000000000000000000A53697A652E5769647468 - 05000000000000009205400B53697A652E4865696768740500000000000000D0 - 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572 - 6174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F706572 - 74794E616D6506074F7061636974790A537461727456616C7565050000000000 - 00000000000953746F7056616C7565050000000000000080FF3F075472696767 - 6572061049734D6F7573654F7665723D747275650E54726967676572496E7665 - 727365061149734D6F7573654F7665723D66616C736500000007544C61796F75 - 7400095374796C654E616D650605676C79706805416C69676E07044C6566740A - 53697A652E57696474680500000000000000C803400B53697A652E4865696768 - 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 74080007544C61796F757400095374796C654E616D650609636865636B6D6172 - 6B05416C69676E0708436F6E74656E7473074F7061636974790500000000006F - 1283F53F0A53697A652E57696474680500000000000000C803400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C7408000554506174680005416C69676E070643656E746572094461 - 74612E506174680A58000000070000000000000056D9524391AE2C4301000000 - 9276664365021643010000009F3983432B7C3C43010000009E9AA64382D2B442 - 010000006F1CB04375A4D1420100000026DF8243263F67430300000056D95243 - 91AE2C430A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080A53697A652E57696474680500000000000000B002400B53697A652E4865 - 696768740500000000000000B002401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174 - 416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D6506074F7061636974790A537461727456616C756505 - 000000000000000000000953746F7056616C7565050000000000000080FF3F07 - 54726967676572060E4973436865636B65643D747275650E5472696767657249 - 6E7665727365060F4973436865636B65643D66616C73650000000654476C7970 - 6800095374796C654E616D65060A676C7970687374796C650C4D617267696E73 - 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000C00040 - 0E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69676E - 07044C6566740A53697A652E576964746805000000000000008003400B53697A + 6E74730A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 7408074F70616369747905000000000000000000000A53697A652E5769647468 + 05000000000000009205400B53697A652E4865696768740500000000000000D0 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572 + 6174696F6E05000000000018B7D1F23F07496E7665727365090C50726F706572 + 74794E616D6506074F7061636974790A537461727456616C7565050000000000 + 00000000000953746F7056616C7565050000000000000080FF3F075472696767 + 6572061049734D6F7573654F7665723D747275650E54726967676572496E7665 + 727365061149734D6F7573654F7665723D66616C736500000007544C61796F75 + 7400095374796C654E616D650605676C79706805416C69676E07044C6566740A + 53697A652E57696474680500000000000000C803400B53697A652E4865696768 + 740500000000000000D003401453697A652E506C6174666F726D44656661756C + 74080007544C61796F757400095374796C654E616D650609636865636B6D6172 + 6B05416C69676E0708436F6E74656E7473074F7061636974790500000000006F + 1283F53F0A53697A652E57696474680500000000000000C803400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C7408000554506174680005416C69676E070643656E746572094461 + 74612E506174680A58000000070000000000000056D9524391AE2C4301000000 + 9276664365021643010000009F3983432B7C3C43010000009E9AA64382D2B442 + 010000006F1CB04375A4D1420100000026DF8243263F67430300000056D95243 + 91AE2C430A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080A53697A652E57696474680500000000000000B002400B53697A652E4865 + 696768740500000000000000B002401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174 + 416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D6506074F7061636974790A537461727456616C756505 + 000000000000000000000953746F7056616C7565050000000000000080FF3F07 + 54726967676572060E4973436865636B65643D747275650E5472696767657249 + 6E7665727365060F4973436865636B65643D66616C73650000000654476C7970 + 6800095374796C654E616D65060A676C7970687374796C650C4D617267696E73 + 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 + 000000008000400D4D617267696E732E52696768740500000000000000C00040 + 0E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69676E + 07044C6566740A506F736974696F6E2E58050000000000000080FF3F0A506F73 + 6974696F6E2E5905000000000000008000400A53697A652E5769647468050000 + 00000000008003400B53697A652E4865696768740500000000000000B8034014 + 53697A652E506C6174666F726D44656661756C740800000654496D6167650009 + 5374796C654E616D6506066269746D61700E4D756C74695265734269746D6170 + 0E01000005416C69676E07044C6566740C4D617267696E732E4C656674050000 + 00000000008000400B4D617267696E732E546F7005000000000000008000400D + 4D617267696E732E526967687405000000000000008000400E4D617267696E73 + 2E426F74746F6D05000000000000008000400A506F736974696F6E2E58050000 + 00000000008000400A506F736974696F6E2E5905000000000000008000400A53 + 697A652E57696474680500000000000000A803400B53697A652E486569676874 + 0500000000000000B003401453697A652E506C6174666F726D44656661756C74 + 0800000005545465787400095374796C654E616D6506047465787405416C6967 + 6E07044C656674064C6F636B6564090748697454657374080C4D617267696E73 + 2E4C65667405000000000000008002400D4D617267696E732E52696768740500 + 0000000000008002400A506F736974696F6E2E5805000000000000008404400A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000D003401453697A652E506C6174666F726D44656661756C + 7408165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 697465165465787453657474696E67732E486F727A416C69676E07074C656164 + 696E67000005545465787400095374796C654E616D65060873686F7274637574 + 05416C69676E07055269676874064C6F636B6564090748697454657374080C4D + 617267696E732E4C6566740500000000000000C002400D4D617267696E732E52 + 696768740500000000000000C001400A506F736974696F6E2E58050000000000 + 0000C000C00A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000D003401453697A652E506C6174666F726D + 44656661756C7408165465787453657474696E67732E466F6E74436F6C6F7207 + 08636C615768697465165465787453657474696E67732E486F727A416C69676E + 07074C656164696E67000007544C61796F757400095374796C654E616D650607 + 7375626D61726B05416C69676E070552696768740A506F736974696F6E2E5805 + 00000000000000D404400A53697A652E57696474680500000000000000A00340 + 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 + 74666F726D44656661756C7408000554506174680005416C69676E070643656E + 74657209446174612E506174680A340000000400000000000000000000000000 + 000001000000000000000000803F010000000000803F0000003F030000000000 + 0000000000000A46696C6C2E436F6C6F720708636C615768697465064C6F636B + 6564090748697454657374080A53697A652E57696474680500000000000000E0 + 01400B53697A652E48656967687405000000000000008002401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 65000000005450463007544C61796F757400095374796C654E616D6506126D65 + 6E75736570617261746F727374796C6505416C69676E070643656E7465720C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 + 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F7264657202270005544C696E650005 + 416C69676E0703546F70084C696E65547970650703546F700C4D617267696E73 + 2E4C6566740500000000000000C000400B4D617267696E732E546F7005000000 + 000000008000400D4D617267696E732E52696768740500000000000000C00040 + 0A506F736974696F6E2E580500000000000000C000400A506F736974696F6E2E + 5905000000000000008000400A53697A652E57696474680500000000000000B0 + 04400B53697A652E486569676874050000000000000080FF3F1453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000000545046300A5452656374616E676C6500095374796C65 + 4E616D65060D6D656E75766965777374796C6505416C69676E070643656E7465 + 720A46696C6C2E436F6C6F7207097846463230323032300A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350756697369626C65080758526164 + 6975730500000000000000C0004007595261646975730500000000000000C000 + 40000A5452656374616E676C650005416C69676E0706436C69656E740A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F72070978464631353135313507585261646975730500 + 000000000000C0004007595261646975730500000000000000C00040000D5453 + 6861646F77456666656374000844697374616E63650500000000000000C00040 + 09446972656374696F6E0500000000000000B4054008536F66746E6573730500 + 00000000000080FE3F074F706163697479050000000000000080FE3F0B536861 + 646F77436F6C6F720708636C61426C61636B00000007544C61796F7574000953 + 74796C654E616D650607636F6E74656E7405416C69676E0706436C69656E740C + 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF + 3F0A53697A652E57696474680500000000000000C004400B53697A652E486569 + 6768740500000000000000C004401453697A652E506C6174666F726D44656661 + 756C74080000005450463007544C61796F757400095374796C654E616D650610 + 726164696F627574746F6E7374796C6505416C69676E070643656E7465720A53 + 697A652E57696474680500000000000000F205400B53697A652E486569676874 + 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508085461624F7264657202280007544C61796F75740005 + 416C69676E07044C6566740A53697A652E57696474680500000000000000A803 + 400B53697A652E4865696768740500000000000000A803401453697A652E506C + 6174666F726D44656661756C7408000854456C6C6970736500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E070643656E7465720A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080A53697A652E57696474680500000000000000F002400B53697A652E + 4865696768740500000000000000F002401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 0854456C6C6970736500095374796C654E616D650609636865636B6D61726B05 + 416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646324138 + 324532064C6F636B656409074869745465737408074F70616369747905000000 + 000000000000000C4D617267696E732E4C65667405000000000000008000400B + 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 + 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 + 0000000000008000400A53697A652E57696474680500000000000000B002400B + 53697A652E4865696768740500000000000000B002401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F + 54466C6F6174416E696D6174696F6E00095374796C654E616D65061A6F706163 + 697479436865636B6D61726B416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D6506074F706163697479 + 0A537461727456616C756505000000000000000000000953746F7056616C7565 + 050000000000000080FF3F0754726967676572060E4973436865636B65643D74 + 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 + 6C73650000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 65061A726164696F627574746F6E436F6C6F72416E696D6174696F6E31084475 + 726174696F6E050000000000000000000007496E7665727365090C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572061049734D6F7573654F7665723D747275650E54726967676572 + 496E7665727365061149734D6F7573654F7665723D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E315374796C65084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461 + 727456616C756507097846463135313531350953746F7056616C756507097846 + 463241383245320754726967676572060E4973436865636B65643D747275650E + 54726967676572496E7665727365060F4973436865636B65643D66616C736500 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 0706436C69656E74064C6F636B6564090748697454657374080A53697A652E57 + 696474680500000000000000C805400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C740804546578 + 74060454657874165465787453657474696E67732E466F6E74436F6C6F720708 + 636C6157686974650000005450463007544C61796F757400095374796C654E61 + 6D650618756C63656E746572726164696F627574746F6E7374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000005655FB0540 + 0B53697A652E4865696768740500000000000000A004401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 290007544C61796F75740005416C69676E0706426F74746F6D0A506F73697469 + 6F6E2E5905000000000000008804400A53697A652E5769647468050000000000 + 5655FB05400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C6566 + 74000A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 + 0748697454657374080A53697A652E57696474680500000000005655FB05400B + 53697A652E4865696768740500000000000000C001401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 31353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 06216261636B67726F756E64556C427574746F6E436F6C6F72416E696D617469 + 6F6E31084475726174696F6E050000000000000000000007496E766572736509 + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463230323032300953746F7056616C756507097846463430 + 343034300754726967676572061049734D6F7573654F7665723D747275650E54 + 726967676572496E7665727365061149734D6F7573654F7665723D66616C7365 + 00000A5452656374616E676C6500095374796C654E616D650609636865636B6D + 61726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F70 + 4C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F720709784646 + 324138324532064C6F636B656409074869745465737408074F70616369747905 + 000000000000000000000C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E57696474680500000000005655F7 + 05400B53697A652E48656967687405000000000000008001401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A63 + 6865636B6D61726B4F706163697479416E696D6174696F6E3108447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D6506074F706163 + 6974790A537461727456616C756505000000000000000000000953746F705661 + 6C7565050000000000000080FF3F0754726967676572060E4973436865636B65 + 643D747275650E54726967676572496E7665727365060F4973436865636B6564 + 3D66616C7365000000000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080A53697A652E57696474680500000000005655FB05400B53697A652E486569 + 67687405000000000000008804401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 57686974650000005450463007544C61796F757400095374796C654E616D6506 + 16756C6C656674726164696F627574746F6E7374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000005655FB05400B53697A65 + 2E4865696768740500000000000000A004401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F72646572022A0007544C + 61796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E5905 + 000000000000008804400A53697A652E57696474680500000000005655FB0540 + 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 07436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080A53697A652E57696474680500000000005655FB05400B53697A652E + 4865696768740500000000000000C001401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 6506216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174 + 696F6E31084475726174696F6E050000000000000000000007496E7665727365 + 090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463230323032300953746F7056616C7565070978464634 + 30343034300754726967676572061049734D6F7573654F7665723D747275650E + 54726967676572496E7665727365061149734D6F7573654F7665723D66616C73 + 6500000A5452656374616E676C6500095374796C654E616D650609636865636B + 6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F + 704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846 + 46324138324532064C6F636B656409074869745465737408074F706163697479 + 05000000000000000000000C4D617267696E732E4C6566740500000000000000 + 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 + 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 + 6F6D050000000000000080FF3F0A53697A652E57696474680500000000005655 + F705400B53697A652E48656967687405000000000000008001401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65075852616469757305000000000000008000400759526164697573050000 + 0000000000800040000F54466C6F6174416E696D6174696F6E00095374796C65 + 4E616D65061A636865636B6D61726B4F706163697479416E696D6174696F6E31 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 6506074F7061636974790A537461727456616C75650500000000000000000000 + 0953746F7056616C7565050000000000000080FF3F0754726967676572060E49 + 73436865636B65643D747275650E54726967676572496E7665727365060F4973 + 436865636B65643D66616C7365000000000005545465787400095374796C654E + 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000005655FB05400B53 + 697A652E48656967687405000000000000008804401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C6157686974650000005450463007544C61796F75740009537479 + 6C654E616D650617756C7269676874726164696F627574746F6E7374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000005655 + FB05400B53697A652E4865696768740500000000000000A004401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 6572022C0007544C61796F75740005416C69676E0706426F74746F6D0A506F73 + 6974696F6E2E5905000000000000008804400A53697A652E5769647468050000 + 0000005655FB05400B53697A652E4865696768740500000000000000C0014014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 + 436F6E74656E747307436F726E6572730B08546F7052696768740B426F74746F + 6D5269676874000A46696C6C2E436F6C6F720709784646323032303230064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000056 + 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313507585261646975730500000000000000C0004007595261 + 646975730500000000000000C00040000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D6506216261636B67726F756E64556C427574746F6E43 + 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000000000 + 000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 + 616C756507097846463430343034300754726967676572061049734D6F757365 + 4F7665723D747275650E54726967676572496E7665727365061149734D6F7573 + 654F7665723D66616C736500000A5452656374616E676C6500095374796C654E + 616D650609636865636B6D61726B05416C69676E0708436F6E74656E74730743 + 6F726E6572730B08546F7052696768740B426F74746F6D5269676874000A4669 + 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 + 65737408074F70616369747905000000000000000000000C4D617267696E732E + 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 + 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E + 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 + 696474680500000000005655F705400B53697A652E4865696768740500000000 + 0000008001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65075852616469757305000000000000008000 + 4007595261646975730500000000000000800040000F54466C6F6174416E696D + 6174696F6E00095374796C654E616D65061A636865636B6D61726B4F70616369 + 7479416E696D6174696F6E31084475726174696F6E0500000000000000000000 + 0C50726F70657274794E616D6506074F7061636974790A537461727456616C75 + 6505000000000000000000000953746F7056616C7565050000000000000080FF + 3F0754726967676572060E4973436865636B65643D747275650E547269676765 + 72496E7665727365060F4973436865636B65643D66616C736500000000000554 + 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 + 656E74064C6F636B6564090748697454657374080A53697A652E576964746805 + 00000000005655FB05400B53697A652E48656967687405000000000000008804 + 401453697A652E506C6174666F726D44656661756C7408045465787406045465 + 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 6974650000005450463007544C61796F757400095374796C654E616D65061470 + 726F67726573736261726D696E697374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F72646572022E000A545265637461 + 6E676C6500095374796C654E616D65060668747261636B05416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000033 + 338505400B53697A652E4865696768740500000000009999E104401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650758526164697573050000000000000080004007595261646975730500 + 000000000000800040000A5452656374616E676C6500095374796C654E616D65 + 060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F + 6C6F720709784646324138324532064C6F636B6564090748697454657374080A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000009999E104401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 + 00000000800040075952616469757305000000000000008000400000000A5452 + 656374616E676C6500095374796C654E616D65060676747261636B05416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430343034 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6507585261646975730500000000000000800040075952616469 + 75730500000000000000800040000A5452656374616E676C6500095374796C65 + 4E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46 + 696C6C2E436F6C6F720709784646324138324532064C6F636B65640907486974 + 54657374080A506F736974696F6E2E5905000000000099998D04400A53697A65 + 2E576964746805000000000033338505400B53697A652E486569676874050000 + 0000000000A803401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + 8000400759526164697573050000000000000080004000000000545046300754 + 4C61796F757400095374796C654E616D65060E636F6D626F656469747374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 726465720230000C5442727573684F626A65637400095374796C654E616D6506 + 0A666F726567726F756E6400000B54466F6E744F626A65637400095374796C65 + 4E616D650604666F6E7409466F6E742E53697A650500000000000000D0024000 + 0007544C61796F757400095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E74730A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D65060A52656374616E676C653105416C69676E0706436C + 69656E740A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463230323032300758 + 5261646975730500000000000000C00040075952616469757305000000000000 + 00C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05 + 0000000000000000000007496E7665727365090C50726F70657274794E616D65 + 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463230 + 323032300953746F7056616C7565070978464634303430343007547269676765 + 72062049734D6F7573654F7665723D747275653B4973466F63757365643D6661 + 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D + 66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E325374796C65084475726174696F6E050000000000000000000007496E76 + 65727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 + 0A537461727456616C756507097846463430343034300953746F7056616C7565 + 07097846463241383245320754726967676572061F49734D6F7573654F766572 + 3D747275653B4973466F63757365643D747275650E54726967676572496E7665 + 727365062049734D6F7573654F7665723D747275653B4973466F63757365643D + 66616C7365000007544C61796F757400095374796C654E616D6506056172726F + 7705416C69676E070846697452696768740B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F7369 + 74696F6E2E580500000000005ED99705400A506F736974696F6E2E5905000000 + 0000000080FF3F0A53697A652E5769647468050000000000889AB803400B5369 + 7A652E4865696768740500000000000000B803401453697A652E506C6174666F + 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653105416C69676E0708436F6E74656E747307436F + 726E6572730B08546F7052696768740B426F74746F6D5269676874000A46696C + 6C2E436F6C6F7207097846463330333033300748697454657374080A53697A65 + 2E5769647468050000000000889AB803400B53697A652E486569676874050000 + 0000000000B803401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + C0004007595261646975730500000000000000C00040000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E315374796C65084475726174696F6E050000000000000000000007496E76 + 65727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463330333033300953746F7056616C75650709 + 7846463430343034300754726967676572062049734D6F7573654F7665723D74 + 7275653B4973466F63757365643D66616C73650E54726967676572496E766572 + 7365062149734D6F7573654F7665723D66616C73653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463430343034300953746F70 + 56616C756507097846463137353739430754726967676572061F4973466F6375 + 7365643D747275653B49734D6F7573654F7665723D7472756500000007544C61 + 796F757400095374796C654E616D6506074C61796F75743105416C69676E0706 + 43656E7465720C4D617267696E732E4C656674050000000000000080FF3F0A53 + 697A652E57696474680500000000000000A002400B53697A652E486569676874 + 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 + 080005545061746800095374796C654E616D650605506174683105416C69676E + 0706436C69656E7409446174612E506174680A34000000040000000000000000 + 00C8420000C84201000000000096430000C84201000000000048430000964303 + 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080A53697A652E57696474680500000000000000A002400B + 53697A652E4865696768740500000000000000C001401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 000000000C5442727573684F626A65637400095374796C654E616D6506097365 + 6C656374696F6E0B42727573682E436F6C6F7207097839363241383245320000 + 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 + 676E0706436C69656E740C4D617267696E732E4C656674050000000000000080 + 00400B4D617267696E732E546F7005000000000000008000400D4D617267696E + 732E52696768740500000000000000F003400E4D617267696E732E426F74746F + 6D05000000000000008000400A53697A652E5769647468050000000000000088 + 05400B53697A652E4865696768740500000000000000A803401453697A652E50 + 6C6174666F726D44656661756C74080000005450463007544C61796F75740009 + 5374796C654E616D650613657870616E646572627574746F6E7374796C650541 + 6C69676E070643656E7465720B4D617267696E732E546F700500000000000000 + 80FF3F0A53697A652E57696474680500000000000000B003400B53697A652E48 + 65696768740500000000000000B003401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F726465720233000554506174 + 6800095374796C654E616D650605506174683105416C69676E070643656E7465 + 7209446174612E506174680A3400000004000000000000000000C8420000C842 + 01000000000096430000C842010000000000484300009643030000000000C842 + 0000C8420A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080D526F746174696F6E416E676C650500000000000000B405400A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000C001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D650614466C6F6174416E696D6174696F6E31537479 + 6C65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C61 + 74696F6E070843697263756C61720C50726F70657274794E616D65060D526F74 + 6174696F6E416E676C650A537461727456616C75650500000000000000B40540 + 0953746F7056616C756505000000000000000000000754726967676572060F49 + 73457870616E6465643D747275650E54726967676572496E7665727365061049 + 73457870616E6465643D66616C7365000000005450463007544C61796F757400 + 095374796C654E616D650615657870616E646572636865636B626F787374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 00008406400B53697A652E48656967687405000000000000008404401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 7264657202360007544C61796F75740005416C69676E07044C6566740A53697A + 652E57696474680500000000000000C003400B53697A652E4865696768740500 + 0000000000008404401453697A652E506C6174666F726D44656661756C740800 + 0554506174680005416C69676E0706436C69656E7409446174612E506174680A + D80100002700000000000000FEC8BA4402E79244020000002592AD4402E79244 + 020000006D5BA544FEB09E44020000006D5BA544FEB09E440200000093A4A444 + 6A0C9F44020000004A80AC44FC79AA4402000000046EBA44FC79AA4402000000 + 4A00C844FC79AA44020000000080CF44FEB09E44020000000080CF44FEB09E44 + 020000000080CF44FEB09E44020000004C5BC84402E7924402000000FEC8BA44 + 02E7924400000000FE88BA44FE30974402000000B876BF44FE30974402000000 + 0277C344EEA09A44020000000277C34404DE9E44020000000277C344121BA344 + 02000000B876BF44008CA64402000000FE88BA44008CA644020000004C9BB544 + 008CA64402000000009CB144121BA34402000000009CB14404DE9E4402000000 + 009CB144EEA09A44020000004C9BB544FE30974402000000FE88BA44FE309744 + 000000000080BA44045E9B4402000000146EB844045E9B440200000000C0B644 + 54F79C440200000000C0B64400F09E440200000000C0B644ACE8A04402000000 + 146EB844FC81A244020000000080BA44FC81A24402000000EC91BC44FC81A244 + 020000000040BE44ACE8A044020000000040BE4400F09E44020000000040BE44 + 54F79C4402000000EC91BC44045E9B44020000000080BA44045E9B440A46696C + 6C2E436F6C6F7207097836303030303030300748697454657374080C4D617267 + 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + 8000400E4D617267696E732E426F74746F6D05000000000000008000400A5369 + 7A652E57696474680500000000000000A003400B53697A652E48656967687405 + 00000000000000E803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E6508577261704D6F64650703466974 + 000F54436F6C6F72416E696D6174696F6E00084475726174696F6E0500000000 + 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097836303030303030300953746F7056616C756507 + 08636C61426C61636B0754726967676572060E4973436865636B65643D747275 + 6500000F54436F6C6F72416E696D6174696F6E00084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C75650708636C61426C61636B0953746F7056616C7565 + 07097836303030303030300754726967676572060F4973436865636B65643D66 + 616C73650000000005545465787400095374796C654E616D6506047465787405 + 416C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D + 617267696E732E4C65667405000000000000008002400B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 00000080FF3F0A53697A652E57696474680500000000000000C605400B53697A + 652E4865696768740500000000000000F803401453697A652E506C6174666F72 + 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 + 0709784646454545454545165465787453657474696E67732E486F727A416C69 + 676E07074C656164696E670000005450463007544C61796F757400095374796C + 654E616D65060D657870616E6465727374796C6505416C69676E070643656E74 + 65720A53697A652E576964746805000000000000C08607400B53697A652E4865 + 696768740500000000000000CE05401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508085461624F726465720239000A5452656374 + 616E676C6500095374796C654E616D65060B626772656374616E676C6505416C + 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324432 + 443244064C6F636B6564090748697454657374080A53697A652E576964746805 + 000000000000C08607400B53697A652E4865696768740500000000000000CE05 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F72070978464631353135313507585261646975730500000000000000C0 + 004007595261646975730500000000000000C000400007544C61796F75740009 + 5374796C654E616D6506074C61796F75743305416C69676E0703546F700A5369 + 7A652E576964746805000000000000C08607400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0007544C61796F757400095374796C654E616D6506074C61796F75743405416C + 69676E0708436F6E74656E74730A53697A652E576964746805000000000000C0 + 8607400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653205416C69676E0708436F6E7465 + 6E747307436F726E6572730B07546F704C65667408546F705269676874000A46 + 696C6C2E436F6C6F720709784646323532353235064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000000C08607400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C0004000000A5452656374616E676C6500095374796C654E616D65060A + 52656374616E676C653105416C69676E0708436F6E74656E747307436F726E65 + 72730B07546F704C65667408546F705269676874000A46696C6C2E436F6C6F72 + 0709784646313531353135064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000000C08607400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65075852616469757305000000000000 + 00C0004007595261646975730500000000000000C00040000F54466C6F617441 + 6E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D6174 + 696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0D496E + 746572706F6C6174696F6E070843697263756C61720C50726F70657274794E61 + 6D6506075363616C652E580A537461727456616C7565050000000000000080FF + 3F0953746F7056616C756505000000000000000000000754726967676572060F + 4973457870616E6465643D747275650E54726967676572496E76657273650610 + 4973457870616E6465643D66616C73650000000007544C61796F757400095374 + 796C654E616D6506074C61796F75743305416C69676E0708436F6E74656E7473 + 0A53697A652E576964746805000000000000C08607400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080005545465787400095374796C654E616D6506047465787405416C6967 + 6E07044C656674084175746F53697A65090A436C6970506172656E7409064C6F + 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 + 000000A002400A506F736974696F6E2E580500000000000000A002400A53697A + 652E576964746805000000000000B8C703400B53697A652E4865696768740500 + 000000000060FF02401453697A652E506C6174666F726D44656661756C740804 + 54657874060454657874165465787453657474696E67732E466F6E74436F6C6F + 720708636C615768697465165465787453657474696E67732E486F727A416C69 + 676E07074C656164696E670000000F54457870616E646572427574746F6E0009 + 5374796C654E616D650606627574746F6E05416C69676E07055269676874064C + 6F636B6564090A506F736974696F6E2E580500000000000080F906400A53697A + 652E57696474680500000000000000A003400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C740800 + 000000005450463007544C61796F757400095374796C654E616D650615616E69 + 696E64696361746F72686F727A7374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000040C006400B53697A652E48656967 + 687405000000000000008000401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508000A5452656374616E676C6500095374796C654E + 616D65060A52656374616E676C653105416C69676E0706436C69656E740C436C + 69704368696C6472656E090A46696C6C2E436F6C6F7207097846463430343034 + 300A53697A652E57696474680500000000000040C006400B53697A652E486569 + 67687405000000000000008000401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 00000000000080FF3F0759526164697573050000000000000080FF3F0005544C + 696E6500095374796C654E616D6506054C696E6531084C696E65547970650706 + 426F74746F6D0A53697A652E57696474680500000000000000A00B400B53697A + 652E48656967687405000000000000008000401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463241383245 + 32105374726F6B652E546869636B6E65737305000000000000008002400A5374 + 726F6B652E4361700705526F756E640B5374726F6B652E446173680704446173 + 680B5374726F6B652E4A6F696E0705526F756E64000F54466C6F6174416E696D + 6174696F6E00095374796C654E616D650603616E6907456E61626C6564090844 + 75726174696F6E0500000000000000800340044C6F6F70090C50726F70657274 + 794E616D65060A506F736974696F6E2E580A537461727456616C756505000000 + 00000000C808C00953746F7056616C7565050000000000000000000007547269 + 67676572060E497356697369626C653D7472756500000000005450463007544C + 61796F757400095374796C654E616D650611616E69696E64696361746F727374 + 796C6505416C69676E070643656E7465720756697369626C6508000454417263 + 00095374796C654E616D65060341726305416C69676E0708436F6E74656E7473 + 0748697454657374080D526F746174696F6E416E676C650500000000000000B4 + 07400A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720708636C61576869746510537472 + 6F6B652E546869636B6E657373050000000000000080004008456E64416E676C + 650500000000000000B405C0000F54466C6F6174416E696D6174696F6E000953 + 74796C654E616D650603616E6907456E61626C656409084475726174696F6E05 + 0000000000000080FF3F044C6F6F70090C50726F70657274794E616D65060D52 + 6F746174696F6E416E676C650A537461727456616C7565050000000000000000 + 00000953746F7056616C75650500000000000000B40740075472696767657206 + 0E497356697369626C653D74727565000000005450463007544C61796F757400 + 095374796C654E616D65060A70616E656C7374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C006400B53697A652E + 4865696768740500000000000000A406401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A652E57 + 696474680500000000000000C006400B53697A652E4865696768740500000000 + 000000A406401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C000 + 4007595261646975730500000000000000C000400000005450463007544C6179 + 6F757400095374796C654E616D65061970726F67726573736261726D696E6965 + 72726F727374796C6505416C69676E070643656E7465720A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000099 + 99E104401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508000A5452656374616E676C6500095374796C654E616D65060668747261 + 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646343034303430064C6F636B6564090748697454657374080A53697A652E57 + 6964746805000000000033338505400B53697A652E4865696768740500000000 + 009999E104401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65075852616469757305000000000000008000 + 4007595261646975730500000000000000800040000A5452656374616E676C65 + 00095374796C654E616D65060A68696E64696361746F7205416C69676E07044C + 6566740A46696C6C2E436F6C6F720709784646453232413241064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 + 5852616469757305000000000000008000400759526164697573050000000000 + 00008000400000000A5452656374616E676C6500095374796C654E616D650606 + 76747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646343034303430064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 + 000080004007595261646975730500000000000000800040000A545265637461 + 6E676C6500095374796C654E616D65060A76696E64696361746F7205416C6967 + 6E0706426F74746F6D0A46696C6C2E436F6C6F72070978464645323241324106 + 4C6F636B6564090748697454657374080A506F736974696F6E2E590500000000 + 0099998D04400A53697A652E576964746805000000000033338505400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 + 6975730500000000000000800040075952616469757305000000000000008000 + 40000000005450463007544C61796F757400095374796C654E616D65060E6C6F + 67627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E + 57696474680500000000000000C005400B53697A652E48656967687405000000 + 00000000C005401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F726465720201000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0706436C6965 + 6E740C436C69704368696C6472656E090A436C6970506172656E740907436F72 + 6E6572730B08546F7052696768740B426F74746F6D5269676874000A46696C6C + 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E + 57696474680500000000000000C005400B53697A652E48656967687405000000 + 00000000C005401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0 + 004007595261646975730500000000000000C00040000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646343034303430 + 0754726967676572063049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C73650E5472696767 + 6572496E7665727365063149734D6F7573654F7665723D66616C73653B497350 + 7265737365643D66616C73653B4973466F63757365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463430343034300953746F7056616C7565070978 + 46463137353739430754726967676572062F4973507265737365643D74727565 + 3B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 + 627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E0500 + 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C + 6F720A537461727456616C756507097846463241383245320953746F7056616C + 756507097846463137353739430754726967676572062E497350726573736564 + 3D747275653B49734D6F7573654F7665723D747275653B4973466F6375736564 + 3D747275650E54726967676572496E7665727365062F4973507265737365643D + 66616C73653B49734D6F7573654F7665723D747275653B4973466F6375736564 + 3D74727565000005545061746800095374796C654E616D650605506174683105 + 416C69676E0706436C69656E7409446174612E506174680A5C02000032000000 + 000000000000A841CDCCCC40010000000000A8410000C041010000000000C03F + 0000C041010000000000C03F00000000010000009A9969410000000001000000 + 0000A841CDCCCC40030000000000A841CDCCCC400000000000009C410000F040 + 01000000000058410000F04001000000000058410000C03F0100000000004040 + 0000C03F01000000000040400000B4410100000000009C410000B44101000000 + 00009C410000F0400300000000009C410000F04000000000000040410000F040 + 01000000000090400000F04001000000000090400000C0400100000000004041 + 0000C04001000000000040410000F04003000000000040410000F04000000000 + 0000904000001041010000000000904100001041010000000000904100002841 + 0100000000009040000028410100000000009040000010410300000000009040 + 0000104100000000000090400000404101000000000090410000404101000000 + 0000904100005841010000000000904000005841010000000000904000004041 + 0300000000009040000040410000000000009040000070410100000000009041 + 0000704101000000000090410000844101000000000090400000844101000000 + 0000904000007041030000000000904000007041000000000000904000009041 + 010000000000904100009041010000000000904100009C410100000000009040 + 00009C4101000000000090400000904103000000000090400000904100000000 + 000070410000C04001000000333393410000C040010000000000704166662640 + 01000000000070410000C04003000000000070410000C0400A46696C6C2E436F + 6C6F720708636C6157686974650748697454657374080C4D617267696E732E4C + 6566740500000000000000A002400B4D617267696E732E546F70050000000000 + 0000A002400D4D617267696E732E52696768740500000000000000A002400E4D + 617267696E732E426F74746F6D0500000000000000A002400A53697A652E5769 + 64746805000000000000009805400B53697A652E486569676874050000000000 + 00009805401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6508577261704D6F646507034669740000000054 + 50463007544C61796F757400095374796C654E616D65061B7472656576696577 + 657870616E646572627574746F6E7374796C6505416C69676E070643656E7465 + 720B4D617267696E732E546F70050000000000000080FF3F0A53697A652E5769 + 6474680500000000000000B003400B53697A652E486569676874050000000000 + 0000B003401453697A652E506C6174666F726D44656661756C74080756697369 + 626C65080005545061746800095374796C654E616D650605506174683105416C + 69676E070643656E74657209446174612E506174680A34000000040000000000 + 00000000C8420000C84201000000000096430000C84201000000000048430000 + 9643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080D526F746174696F6E416E676C65050000000000 + 0000B405C00A53697A652E57696474680500000000000000A002400B53697A65 + 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F + 6174416E696D6174696F6E00095374796C654E616D650614466C6F6174416E69 + 6D6174696F6E315374796C65084475726174696F6E0500000000000000000000 + 0D496E746572706F6C6174696F6E070843697263756C61720C50726F70657274 + 794E616D65060D526F746174696F6E416E676C650A537461727456616C756505 + 00000000000000B405C00953746F7056616C7565050000000000000000000007 + 54726967676572060F4973457870616E6465643D747275650E54726967676572 + 496E766572736506104973457870616E6465643D66616C736500000000545046 + 3007544C61796F757400095374796C654E616D65060D74726565766965777374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000E106400B53697A652E48656967687405000000000000808107401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000C54 + 42727573684F626A65637400095374796C654E616D650618416C7465726E6174 + 696E67526F774261636B67726F756E640B42727573682E436F6C6F7207097830 + 4646464646464600000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646323032303230064C6F636B65640907486974546573 + 74080C50616464696E672E4C656674050000000000000080FF3F0D5061646469 + 6E672E5269676874050000000000000080FF3F0A53697A652E57696474680500 + 000000000000E106400B53697A652E4865696768740500000000000080810740 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F7207097846463135313531350007544C61796F757400095374796C654E61 + 6D650607636F6E74656E7405416C69676E0706436C69656E740C436C69704368 + 696C6472656E090B4D617267696E732E546F70050000000000000080FF3F0A53 + 697A652E57696474680500000000000000CD06400B53697A652E486569676874 + 0500000000000000F006401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060973656C656374 + 696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 00000000000000C0004007595261646975730500000000000000C0004000000A + 5452656374616E676C6500095374796C654E616D650610666F63757365647365 + 6C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F + 6B652E446173680703446F7407585261646975730500000000000000C0004007 + 595261646975730500000000000000C000400000000A545363726F6C6C426172 + 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 + 696768740B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E0708566572746963616C0C4D617267696E732E4C6566740500 + 0000000000008000400A506F736974696F6E2E580500000000000000D006400A + 53697A652E576964746805000000000000008003400B53697A652E4865696768 + 740500000000000000F106401453697A652E506C6174666F726D44656661756C + 740800000A545363726F6C6C42617200095374796C654E616D65060A68736372 + 6F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E6765 + 05000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E + 74616C0B4D617267696E732E546F7005000000000000008000400A506F736974 + 696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500000000 + 000000F306400A53697A652E57696474680500000000000000DF06400B53697A 652E48656967687405000000000000008003401453697A652E506C6174666F72 - 6D44656661756C740800000654496D61676500095374796C654E616D65060662 - 69746D61700E4D756C74695265734269746D61700E01000005416C69676E0704 - 4C6566740C4D617267696E732E4C65667405000000000000008000400B4D6172 + 6D44656661756C740800000F54536D616C6C5363726F6C6C4261720009537479 + 6C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E070552 + 696768740B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E0708566572746963616C0C4D617267696E732E4C6566740500 + 0000000000008000400A506F736974696F6E2E580500000000000000C605400A + 506F736974696F6E2E5905000000000000008000400A53697A652E5769647468 + 05000000000000008002400B53697A652E486569676874050000000000000080 + 02401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 0800000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F + 68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D + 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E + 070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000000000 + 8000400A506F736974696F6E2E5805000000000000008000400A506F73697469 + 6F6E2E590500000000000000E205400A53697A652E5769647468050000000000 + 00009606400B53697A652E48656967687405000000000000008002401453697A + 652E506C6174666F726D44656661756C74080756697369626C65080000000054 + 5046300A5452656374616E676C6500095374796C654E616D6506117472656576 + 6965776974656D7374796C6505416C69676E070643656E7465720946696C6C2E + 4B696E6407044E6F6E650748697454657374080553696465730B06426F74746F + 6D000A53697A652E57696474680500000000000000AE05400B53697A652E4865 + 696768740500000000000000A004401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F7207097846463135313531350B5374 + 726F6B652E4A6F696E0705526F756E640756697369626C6508000C5453706565 + 64427574746F6E00095374796C654E616D650606627574746F6E05416C69676E + 07044C6566740A53697A652E57696474680500000000000000A003400B53697A + 652E4865696768740500000000000000A004401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B7570061B747265657669657765 + 7870616E646572627574746F6E7374796C65000007544C61796F75740005416C + 69676E0708436F6E74656E74730C4D617267696E732E4C656674050000000000 + 0000A003400A53697A652E576964746805000000000000008605400B53697A65 + 2E4865696768740500000000000000A004401453697A652E506C6174666F726D + 44656661756C7408000954436865636B426F7800095374796C654E616D650605 + 636865636B05416C69676E07044C6566740843616E466F637573081244697361 + 626C65466F637573456666656374090A53697A652E5769647468050000000000 + 0000A003400B53697A652E4865696768740500000000000000A004401453697A + 652E506C6174666F726D44656661756C740800000654476C7970680009537479 + 6C654E616D65060A676C7970687374796C650C4D617267696E732E4C65667405 + 000000000000008000400B4D617267696E732E546F70050000000000000080FF + 3F0D4D617267696E732E526967687405000000000000008000400E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F05416C69676E07044C656674 + 0A506F736974696F6E2E580500000000000000B003400A506F736974696F6E2E + 59050000000000000080FF3F0A53697A652E5769647468050000000000000080 + 03400B53697A652E48656967687405000000000000009804401453697A652E50 + 6C6174666F726D44656661756C7408000005545465787400095374796C654E61 + 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 + 697454657374080A53697A652E57696474680500000000000000D803400B5369 + 7A652E4865696768740500000000000000A004401453697A652E506C6174666F + 726D44656661756C74080454657874060454657874165465787453657474696E + 67732E466F6E74436F6C6F720708636C61576869746515546578745365747469 + 6E67732E576F72645772617008165465787453657474696E67732E486F727A41 + 6C69676E07074C656164696E670000000A5452656374616E676C650005416C69 + 676E07074669744C6566740946696C6C2E4B696E6407044E6F6E650748697454 + 657374080E4D617267696E732E426F74746F6D050000000000000080FF3F0553 + 696465730B044C656674000A53697A652E576964746805000000000098858905 + 400B53697A652E48656967687405000000000000009C04401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 324138324532105374726F6B652E546869636B6E657373050000000000000080 + 0040000000} + end> + Left = 8 + Top = 408 + end + object AERModernAnimatedStyle: TStyleBook + StyleName = 'AER Modern Smooth Style' + Styles = < + item + ResourcesBin = { + 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 + AF00060B627574746F6E7374796C6503C5040609656469747374796C6503AC05 + 060A6C6162656C7374796C65032001060D67726F7570626F787374796C65038E + 02060D747261636B6261727374796C65038C07060D636865636B626F78737479 + 6C65039E0506147363726F6C6C62617268747261636B7374796C65033B010614 + 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 + 6172626F74746F6D627574746F6E032D0406137363726F6C6C6261726C656674 + 627574746F6E03440406147363726F6C6C6261727269676874627574746F6E03 + 450406127363726F6C6C626172746F70627574746F6E034304060E7363726F6C + 6C6261727374796C65036304060A7468756D627374796C65034402060B737769 + 7463687374796C6503DC01060C7370696E626F787374796C65032908060F7461 + 62636F6E74726F6C7374796C6503A701060B746162646F747374796C65035901 + 060C7461626974656D7374796C6503EF04060D7468756D626261727374796C65 + 034F03060C6C697374626F787374796C6503AD07060D6C697374626F78666F6F + 746572038B0106106C697374626F786974656D7374796C6503260306126C6973 + 74626F78706C61696E6865616465720346020609677269647374796C65038708 + 060F6865616465726974656D7374796C6503CE03061070726F67726573736261 + 727374796C65036A04061170726F677265737363656C6C7374796C6503A50206 + 106D656E756261726974656D7374796C6503300B060C6D656E75626172737479 + 6C65036C02060D6D656E756974656D7374796C65035D0B06126D656E75736570 + 617261746F727374796C6503E501060D6D656E75766965777374796C65039102 + 060E696D61676563656C6C7374796C65033D01060E706F70757063656C6C7374 + 796C65038E03060D7465787463656C6C7374796C6503A60106096D656D6F7374 + 796C6503DE07060E6C696E6B6C6162656C7374796C65035B03060D73697A6567 + 7269707374796C6503FB04060E7374617475736261727374796C6503DB01060C + 746F6F6C6261727374796C6503CA00061570726F67726573736261726572726F + 727374796C65036F040613736D616C6C7363726F6C6C6261727374796C6503AE + 01060D636F6D626F626F787374796C65030108060D73706C6974746572737479 + 6C6503C0030610636C6F7365627574746F6E7374796C65038604060E6D617862 + 7574746F6E7374796C65030104060E6D696E627574746F6E7374796C65031904 + 060E726573627574746F6E7374796C65031A04061177696E646F77626F726465 + 727374796C65035510060F746F6F6C77696E646F777374796C6503BD0D061072 + 6164696F627574746F6E7374796C6503C4050618756C63656E74657272616469 + 6F627574746F6E7374796C650368050616756C6C656674726164696F62757474 + 6F6E7374796C65035B050617756C7269676874726164696F627574746F6E7374 + 796C65036005060E636F6D626F656469747374796C65038D090611616E69696E + 64696361746F727374796C6503BA010613657870616E646572627574746F6E73 + 74796C650381020615657870616E646572636865636B626F787374796C6503DB + 05060A70616E656C7374796C65031E01061970726F67726573736261726D696E + 696572726F727374796C65036103061470726F67726573736261726D696E6973 + 74796C65035C03060D657870616E6465727374796C65037C060615616E69696E + 64696361746F72686F727A7374796C65038A02060E6C6F67627574746F6E7374 + 796C65038A07061B7472656576696577657870616E646572627574746F6E7374 + 796C65037502061174726565766965776974656D7374796C65030A05060D7472 + 6565766965777374796C65032D0700545046300A5452656374616E676C650009 + 5374796C654E616D65060F6261636B67726F756E647374796C6505416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463244324432440A53 + 697A652E576964746805000000000000009407400B53697A652E486569676874 + 0500000000000080D206401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650756697369626C650800005450 + 463007544C61796F757400095374796C654E616D65060B627574746F6E737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 + 4F726465720201000A5452656374616E676C6500095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0706436C69656E740C436C6970436869 + 6C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572617469 + 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463230323032300953746F + 7056616C756507097846463430343034300754726967676572063049734D6F75 + 73654F7665723D747275653B4973507265737365643D66616C73653B4973466F + 63757365643D66616C73650E54726967676572496E7665727365063149734D6F + 7573654F7665723D66616C73653B4973507265737365643D66616C73653B4973 + 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E + 32084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463430 + 343034300953746F7056616C7565070978464631373537394307547269676765 + 72062F4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 75653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E33084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463241383245320953746F7056616C756507097846463137353739430754 + 726967676572062E4973507265737365643D747275653B49734D6F7573654F76 + 65723D747275653B4973466F63757365643D747275650E54726967676572496E + 7665727365062F4973507265737365643D66616C73653B49734D6F7573654F76 + 65723D747275653B4973466F63757365643D7472756500000005545465787400 + 095374796C654E616D6506047465787405416C69676E0706436C69656E741345 + 6E61626C6544726167486967686C69676874080748697454657374080A53697A + 652E57696474680500000000000000C805400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 0000005450463007544C61796F757400095374796C654E616D65060965646974 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F726465720202000C5442727573684F626A65637400095374796C654E + 616D65060A666F726567726F756E6400000C5442727573684F626A6563740009 + 5374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72 + 070978393632413832453200000B54466F6E744F626A65637400095374796C65 + 4E616D650604666F6E7409466F6E742E53697A650500000000000000D0024000 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 7846463230323032300748697454657374080A53697A652E5769647468050000 + 0000000000C805400B53697A652E4865696768740500000000000000C8034014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 + 4475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F + 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C + 756507097846463135313531350953746F7056616C7565070978464634303430 + 34300754726967676572062049734D6F7573654F7665723D747275653B497346 + 6F63757365643D66616C73650E54726967676572496E7665727365062149734D + 6F7573654F7665723D66616C73653B4973466F63757365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 + 0A537461727456616C756507097846463135313531350953746F7056616C7565 + 07097846463241383245320754726967676572060E4973466F63757365643D74 + 7275650E54726967676572496E7665727365060F4973466F63757365643D6661 + 6C736500000007544C61796F757400095374796C654E616D650607627574746F + 6E7305416C69676E07055269676874064C6F636B6564090B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 + 400A506F736974696F6E2E580500000000000000C004400A506F736974696F6E + 2E5905000000000000008000400A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000A803401453697A652E + 506C6174666F726D44656661756C7408000007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E74064C6F63 + 6B6564090C4D617267696E732E4C65667405000000000000008001400B4D6172 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 - 0000008000400A506F736974696F6E2E5805000000000000008000400A506F73 - 6974696F6E2E5905000000000000008000400A53697A652E5769647468050000 - 0000000000A803400B53697A652E4865696768740500000000000000B0034014 - 53697A652E506C6174666F726D44656661756C74080000000554546578740009 - 5374796C654E616D6506047465787405416C69676E07044C656674064C6F636B - 6564090748697454657374080C4D617267696E732E4C65667405000000000000 - 008002400D4D617267696E732E526967687405000000000000008002400A506F - 736974696F6E2E5805000000000000008404400A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000D00340 - 1453697A652E506C6174666F726D44656661756C740816546578745365747469 - 6E67732E466F6E74436F6C6F720708636C615768697465165465787453657474 - 696E67732E486F727A416C69676E07074C656164696E67000005545465787400 - 095374796C654E616D65060873686F727463757405416C69676E070552696768 - 74064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 - 00000000000000C002400D4D617267696E732E52696768740500000000000000 - C001400A506F736974696F6E2E580500000000000000C000C00A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000D003401453697A652E506C6174666F726D44656661756C740816546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465165465 - 787453657474696E67732E486F727A416C69676E07074C656164696E67000007 - 544C61796F757400095374796C654E616D6506077375626D61726B05416C6967 - 6E070552696768740A506F736974696F6E2E580500000000000000D404400A53 - 697A652E57696474680500000000000000A003400B53697A652E486569676874 - 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 - 08000554506174680005416C69676E070643656E74657209446174612E506174 - 680A340000000400000000000000000000000000000001000000000000000000 - 803F010000000000803F0000003F0300000000000000000000000A46696C6C2E - 436F6C6F720708636C615768697465064C6F636B656409074869745465737408 - 0A53697A652E57696474680500000000000000E001400B53697A652E48656967 - 687405000000000000008002401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C - 61796F757400095374796C654E616D6506126D656E75736570617261746F7273 - 74796C6505416C69676E070643656E7465720C4D617267696E732E4C65667405 - 0000000000000080FF3F0B4D617267696E732E546F70050000000000000080FF - 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 - 6E732E426F74746F6D050000000000000080FF3F0A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000C804 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F72646572021C0005544C696E650005416C69676E0703546F70084C - 696E65547970650703546F700C4D617267696E732E4C65667405000000000000 - 00C000400B4D617267696E732E546F7005000000000000008000400D4D617267 - 696E732E52696768740500000000000000C000400A506F736974696F6E2E5805 - 00000000000000C000400A506F736974696F6E2E590500000000000000800040 - 0A53697A652E57696474680500000000000000B004400B53697A652E48656967 - 6874050000000000000080FF3F1453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F7207097846463135313531350000005450 - 46300A5452656374616E676C6500095374796C654E616D65060D6D656E757669 - 65777374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F72 - 07097846463230323032300A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 0000008000400A53697A652E57696474680500000000000000A804400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C7408000006544C6162656C00095374796C654E616D65060670 + 726F6D7074064C6F636B656409074F706163697479050000000000000080FE3F + 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 + 6504546578740604546578740000005450463007544C61796F75740009537479 + 6C654E616D65060A6C6162656C7374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720203000554546578740009 + 5374796C654E616D6506047465787405416C69676E0708436F6E74656E747307 + 48697454657374080A53697A652E57696474680500000000000000C805400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C6157686974650000005450463007544C61796F75740009537479 + 6C654E616D65060D67726F7570626F787374796C6505416C69676E070643656E + 7465720A53697A652E57696474680500000000000000F004400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F726465720204000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869 + 7454657374080C4D617267696E732E4C6566740500000000000000C000400B4D + 617267696E732E546F7005000000000000009002400D4D617267696E732E5269 + 6768740500000000000000C000400E4D617267696E732E426F74746F6D050000 + 0000000000C000400A53697A652E57696474680500000000000000D804400B53 + 697A652E48656967687405000000000000009804401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 3531350005545465787400095374796C654E616D65060474657874084175746F + 53697A65090A436C6970506172656E74090748697454657374080C4D61726769 + 6E732E4C6566740500000000000000A002400A506F736974696F6E2E58050000 + 00000060559502400A506F736974696F6E2E590500000000004055D501C00A53 + 697A652E576964746805000000000000B8C703400B53697A652E486569676874 + 0500000000000060FF02401453697A652E506C6174666F726D44656661756C74 + 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 7465155465787453657474696E67732E576F7264577261700800000000545046 + 3007544C61796F757400095374796C654E616D65060D747261636B6261727374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C805401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F7264657202050B46697865644865696768740211000A5452656374616E67 + 6C6500095374796C654E616D65060668747261636B05416C69676E070A566572 + 7443656E7465720A46696C6C2E436F6C6F720709784646313531353135074869 + 7454657374080A506F736974696F6E2E590500000000000000BC04400A53697A + 652E57696474680500000000000000C805400B53697A652E4865696768740500 + 000000000000A001401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E74730946696C6C2E4B696E6407044E6F6E65064C6F636B65640907486974 + 54657374080C4D617267696E732E4C6566740500000000000000C001400B4D61 + 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 + 68740500000000000000C001400E4D617267696E732E426F74746F6D05000000 + 0000000080FF3F0A53697A652E57696474680500000000000000B005400B5369 + 7A652E4865696768740500000000000000C000401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54 + 52656374616E676C6500095374796C654E616D650609686967686C6967687405 + 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846463241383245 + 320748697454657374080C50616464696E672E4C6566740500000000000000A0 + 02400A53697A652E57696474680500000000000000F003400B53697A652E4865 + 696768740500000000000000A001401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F7745 + 66666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F7743 + 6F6C6F720709784646324138324532074F706163697479050000000000000080 + FF3F07456E61626C6564080000000A5452656374616E676C6500095374796C65 + 4E616D65060676747261636B05416C69676E070A486F727A43656E7465720A46 + 696C6C2E436F6C6F7207097846463135313531350748697454657374080A506F + 736974696F6E2E580500000000000000BC04400A53697A652E57696474680500 + 000000000000A001400B53697A652E4865696768740500000000000000C80540 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730946696C6C + 2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C4D6172 + 67696E732E4C6566740500000000000000C001400B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 00C001400E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 + 697A652E576964746805000000000000000000000B53697A652E486569676874 + 0500000000000000C405401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65 + 00095374796C654E616D650609686967686C6967687405416C69676E0703546F + 700A46696C6C2E436F6C6F720709784646324138324532074869745465737408 + 0A53697A652E57696474680500000000000000A001400B53697A652E48656967 + 68740500000000000000F003401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666 + 6563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C + 6F720709784646324138324532074F706163697479050000000000000080FF3F + 07456E61626C65640800000006545468756D6200095374796C654E616D650606 + 687468756D62064C6F636B6564090A506F736974696F6E2E5805000000000030 + 33AB03400A506F736974696F6E2E59050000000000FFFFA304400A53697A652E + 57696474680500000000000000F002400B53697A652E48656967687405000000 + 00000000F002401453697A652E506C6174666F726D44656661756C74080B5374 + 796C654C6F6F6B7570060D7468756D626261727374796C65000006545468756D + 6200095374796C654E616D650606767468756D62064C6F636B6564090A506F73 + 6974696F6E2E58050000000000CBCCA804400A506F736974696F6E2E59050000 + 0000009899B103400A53697A652E57696474680500000000000000F002400B53 + 697A652E4865696768740500000000000000F002401453697A652E506C617466 + 6F726D44656661756C74080B5374796C654C6F6F6B7570060D7468756D626261 + 727374796C650000005450463007544C61796F757400095374796C654E616D65 + 060D636865636B626F787374796C6505416C69676E070643656E7465720A5369 + 7A652E5769647468050000000000ACAA8006400B53697A652E48656967687405 + 000000000058559904401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F7264657202060007544C61796F7574000541 + 6C69676E07044C6566740A53697A652E57696474680500000000000000900340 + 0B53697A652E48656967687405000000000058559904401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 + 7A652E57696474680500000000000000F002400B53697A652E48656967687405 + 00000000000000F002401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F720709784646313531353135000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 + 6E0706436C69656E740A46696C6C2E436F6C6F72070978464632413832453207 + 4869745465737408074F70616369747905000000000000000000000C4D617267 + 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + 8000400E4D617267696E732E426F74746F6D05000000000000008000400A5369 + 7A652E57696474680500000000000000B002400B53697A652E48656967687405 + 00000000000000B002401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174 + 696F6E00095374796C654E616D65061B6368656368626F7856697362696C6974 + 79416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C + 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 + 05000000000000000000000953746F7056616C75650500000000000000C80540 + 0754726967676572060E4973436865636B65643D747275650E54726967676572 + 496E7665727365060F4973436865636B65643D66616C73650000000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650618636865636B626F78 + 5374726F6B65416E696D6174696F6E31084475726174696F6E050000000000CD + CCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A + 537461727456616C756507097846463135313531350953746F7056616C756507 + 097846463241383245320754726967676572060E4973436865636B65643D7472 + 75650E54726967676572496E7665727365060F4973436865636B65643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 17636865636B626F78436F6C6F72416E696D6174696F6E31084475726174696F + 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463230323032300953746F70 + 56616C756507097846463430343034300754726967676572061049734D6F7573 + 654F7665723D747275650E54726967676572496E7665727365061149734D6F75 + 73654F7665723D66616C73650000000005545465787400095374796C654E616D + 6506047465787405416C69676E0706436C69656E740A53697A652E5769647468 + 0500000000005855DD05400B53697A652E486569676874050000000000585599 + 04401453697A652E506C6174666F726D44656661756C74080454657874060454 + 657874165465787453657474696E67732E466F6E74436F6C6F720708636C6157 + 68697465000000545046300A5452656374616E676C6500095374796C654E616D + 6506147363726F6C6C62617268747261636B7374796C6505416C69676E070643 + 656E7465720A46696C6C2E436F6C6F7207097846463135313531350748697454 + 657374080A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C + 65080006545468756D6200095374796C654E616D6506057468756D62064C6F63 + 6B6564090A53697A652E576964746805000000000000008003400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B7570060A7468756D627374796C6500 + 0000545046300A5452656374616E676C6500095374796C654E616D6506147363 + 726F6C6C62617276747261636B7374796C6505416C69676E070643656E746572 + 0A46696C6C2E436F6C6F7207097846463135313531350748697454657374080A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000654 + 5468756D6200095374796C654E616D6506057468756D62064C6F636B6564090A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 7405000000000000008003401453697A652E506C6174666F726D44656661756C + 74080B5374796C654C6F6F6B7570060A7468756D627374796C65000000545046 + 3007544C61796F757400095374796C654E616D6506157363726F6C6C62617262 + 6F74746F6D627574746F6E05416C69676E070643656E7465720756697369626C + 6508085461624F726465720207000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C43 + 6C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 + 32300953746F7056616C75650709784646343034303430075472696767657206 + 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 650E54726967676572496E7665727365062149734D6F7573654F7665723D6661 + 6C73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 + 6D6174696F6E32084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463430343034300953746F7056616C7565070978464631373537394307 + 54726967676572061F4973507265737365643D747275653B49734D6F7573654F + 7665723D747275650E54726967676572496E7665727365062049735072657373 + 65643D66616C73653B49734D6F7573654F7665723D7472756500000007544C61 + 796F757400095374796C654E616D6506074C61796F75743105416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000A002400B53697A + 652E4865696768740500000000000000C001401453697A652E506C6174666F72 + 6D44656661756C74080005545061746800095374796C654E616D650605506174 + 683105416C69676E0706436C69656E7409446174612E506174680A3400000004 + 000000000000000000C8420000C84201000000000096430000C8420100000000 + 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080A53697A652E576964746805000000 + 00000000A002400B53697A652E4865696768740500000000000000C001401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000000005450463007544C61796F757400095374796C654E616D + 6506137363726F6C6C6261726C656674627574746F6E05416C69676E07064365 + 6E7465720756697369626C6508085461624F726465720208000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572062049734D6F7573654F7665723D747275653B497350 + 7265737365643D66616C73650E54726967676572496E7665727365062149734D + 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574 + 746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000 + 0000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463430343034300953746F7056616C756507 + 097846463137353739430754726967676572061F4973507265737365643D7472 + 75653B49734D6F7573654F7665723D747275650E54726967676572496E766572 + 736506204973507265737365643D66616C73653B49734D6F7573654F7665723D + 7472756500000007544C61796F757400095374796C654E616D6506074C61796F + 75743105416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000A002400B53697A652E4865696768740500000000000000C001401453 + 697A652E506C6174666F726D44656661756C7408000554506174680009537479 + 6C654E616D650605506174683105416C69676E0706436C69656E740944617461 + 2E506174680A3400000004000000000000000000C8420000C842010000000000 + 96430000C842010000000000484300009643030000000000C8420000C8420A46 + 696C6C2E436F6C6F720708636C6157686974650748697454657374080D526F74 + 6174696F6E416E676C650500000000000000B405400A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000000005450463007544C61796F757400095374796C + 654E616D6506147363726F6C6C6261727269676874627574746F6E05416C6967 + 6E070643656E7465720756697369626C6508085461624F726465720209000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0706436C69656E740C436C69704368696C6472656E090A436C69 + 70506172656E74090A46696C6C2E436F6C6F7207097846463230323032300748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E + 436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCC + CCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 463430343034300754726967676572062049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C73650E54726967676572496E7665727365 + 062149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463430343034300953746F7056 + 616C756507097846463137353739430754726967676572061F49735072657373 + 65643D747275653B49734D6F7573654F7665723D747275650E54726967676572 + 496E766572736506204973507265737365643D66616C73653B49734D6F757365 + 4F7665723D7472756500000007544C61796F757400095374796C654E616D6506 + 074C61796F75743105416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000A002400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C740800055450617468 + 00095374796C654E616D650605506174683105416C69676E0706436C69656E74 + 09446174612E506174680A3400000004000000000000000000C8420000C84201 + 000000000096430000C842010000000000484300009643030000000000C84200 + 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 + 080D526F746174696F6E416E676C650500000000000000B405C00A53697A652E + 57696474680500000000000000A002400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 + 095374796C654E616D6506127363726F6C6C626172746F70627574746F6E0541 + 6C69676E070643656E7465720756697369626C6508085461624F72646572020A + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0706436C69656E740C436C69704368696C6472656E090A + 436C6970506172656E74090A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574 + 746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 + 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463230323032300953746F7056616C756507 + 097846463430343034300754726967676572062049734D6F7573654F7665723D + 747275653B4973507265737365643D66616C73650E54726967676572496E7665 + 727365062149734D6F7573654F7665723D66616C73653B497350726573736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650615627574746F6E436F6C6F72416E696D6174696F6E32084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646343034303430095374 + 6F7056616C756507097846463137353739430754726967676572061F49735072 + 65737365643D747275653B49734D6F7573654F7665723D747275650E54726967 + 676572496E766572736506204973507265737365643D66616C73653B49734D6F + 7573654F7665723D7472756500000007544C61796F757400095374796C654E61 + 6D6506074C61796F75743105416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000A002400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C740800055450 + 61746800095374796C654E616D650605506174683105416C69676E0706436C69 + 656E7409446174612E506174680A3400000004000000000000000000C8420000 + C84201000000000096430000C842010000000000484300009643030000000000 + C8420000C8420A46696C6C2E436F6C6F720708636C6157686974650748697454 + 657374080D526F746174696F6E416E676C650500000000000000B406400A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F + 757400095374796C654E616D65060E7363726F6C6C6261727374796C6505416C + 69676E070643656E7465720756697369626C6508085461624F72646572020B00 + 0754427574746F6E00095374796C654E616D65060A6C656674627574746F6E05 + 416C69676E07044C656674064C6F636B6564090A506F736974696F6E2E590500 + 0000000000008003400A53697A652E576964746805000000000000008003400B + 53697A652E48656967687405000000000000009003401453697A652E506C6174 + 666F726D44656661756C74080B5374796C654C6F6F6B757006137363726F6C6C + 6261726C656674627574746F6E00000754427574746F6E00095374796C654E61 + 6D65060B7269676874627574746F6E05416C69676E07055269676874064C6F63 + 6B6564090A506F736974696F6E2E5805000000000000008804400A506F736974 + 696F6E2E5905000000000000008003400A53697A652E57696474680500000000 + 0000008003400B53697A652E4865696768740500000000000000900340145369 + 7A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006 + 147363726F6C6C6261727269676874627574746F6E00000754427574746F6E00 + 095374796C654E616D65060C626F74746F6D627574746F6E05416C69676E0706 + 426F74746F6D064C6F636B6564090A506F736974696F6E2E5905000000000000 + 008804400A53697A652E57696474680500000000000000C804400B53697A652E + 48656967687405000000000000008003401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B757006157363726F6C6C626172626F + 74746F6D627574746F6E00000654547261636B00095374796C654E616D650606 + 68747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269 + 656E746174696F6E070A486F72697A6F6E74616C0A53697A652E576964746805 + 000000000000009003400B53697A652E48656967687405000000000000009003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B757006147363726F6C6C62617268747261636B7374796C6500000654547261 + 636B00095374796C654E616D65060676747261636B05416C69676E0706436C69 + 656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E + 74616C0A53697A652E576964746805000000000000009003400B53697A652E48 + 656967687405000000000000009003401453697A652E506C6174666F726D4465 + 6661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172767472 + 61636B7374796C6500000754427574746F6E00095374796C654E616D65060974 + 6F70627574746F6E05416C69676E0703546F700A53697A652E57696474680500 + 000000000000C804400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B + 757006127363726F6C6C626172746F70627574746F6E000000545046300A5452 + 656374616E676C6500095374796C654E616D65060A7468756D627374796C6505 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646344434 + 4434440748697454657374080A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650756697369626C6508000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D6506147468756D62436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464634443444344409 + 53746F7056616C756507097846463137353739430754726967676572060E4973 + 507265737365643D747275650E54726967676572496E7665727365060F497350 + 7265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 + 4475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463444344434440953746F7056616C75650707636C61477261790754 + 726967676572061049734D6F7573654F7665723D747275650E54726967676572 + 496E7665727365061149734D6F7573654F7665723D66616C7365000000545046 + 300D545377697463684F626A65637400095374796C654E616D65060B73776974 + 63687374796C6505416C69676E070643656E746572044B696E64070C46616469 + 6E67547261636B730A53697A652E57696474680500000000000000C805400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C7408085461624F72646572020C12547261636B696E6754 + 68756D625363616C65050000000000000080FF3F0756697369626C65080A4669 + 6C6C2E436F6C6F7207097846463230323032300C46696C6C4F6E2E436F6C6F72 + 07097846463137353739430B46696C6C4F6E2E4B696E640705536F6C69640B53 + 74726F6B652E4B696E6407044E6F6E650B5468756D622E436F6C6F7207097846 + 463430343034300D5468756D624F6E2E436F6C6F720709784646324138324532 + 0C5468756D624F6E2E4B696E640705536F6C6964105468756D625374726F6B65 + 2E4B696E6407044E6F6E650F5468756D625374726F6B652E4361700705526F75 + 6E64105468756D625374726F6B652E446173680706437573746F6D105468756D + 625374726F6B652E4A6F696E0705526F756E64165468756D625374726F6B652E + 437573746F6D446173680A08000000000000000000000000005450463007544C + 61796F757400095374796C654E616D65060C7370696E626F787374796C650541 + 6C69676E070643656E7465720A53697A652E57696474680500000000006666E0 + 05400B53697A652E4865696768740500000000000000A803401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 72020D000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 7207097846463230323032300A53697A652E57696474680500000000006666E0 + 05400B53697A652E4865696768740500000000000000A803401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 + 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E + 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 + 463135313531350953746F7056616C7565070978464634303430343007547269 + 67676572061049734D6F7573654F7665723D747275650E54726967676572496E + 7665727365061149734D6F7573654F7665723D66616C73650000000C54427275 + 73684F626A65637400095374796C654E616D65060A666F726567726F756E640B + 42727573682E436F6C6F72070978464645414541454100000C5442727573684F + 626A65637400095374796C654E616D65060973656C656374696F6E0B42727573 + 682E436F6C6F720709783936324138324532000007544C61796F757400095374 + 796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74064C + 6F636B6564090C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A53697A652E576964746805000000000070668405400B53 + 697A652E48656967687405000000000000008803401453697A652E506C617466 + 6F726D44656661756C740800000754427574746F6E00095374796C654E616D65 + 060B6D696E7573627574746F6E05416C69676E07074669744C6566740843616E + 466F6375730806437572736F72070763724172726F770C4D617267696E732E4C + 65667405000000000000008000400B4D617267696E732E546F70050000000000 + 00008000400D4D617267696E732E526967687405000000000000008000400E4D + 617267696E732E426F74746F6D05000000000000008000400A506F736974696F + 6E2E5805000000000000008000400A506F736974696F6E2E5905000000000000 + 008000400A53697A652E5769647468050000000000E8FF8703400B53697A652E + 48656967687405000000000000008803401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B7570060B627574746F6E7374796C65 + 000554506174680005416C69676E0706436C69656E7409446174612E50617468 + 0A4000000005000000000000000000803F00000000010000000000803F000080 + 3F01000000000000000000003F010000000000803F0000000003000000000080 + 3F000000000A46696C6C2E436F6C6F720708636C615768697465074869745465 + 7374080C4D617267696E732E4C6566740500000000000000C001400B4D617267 + 696E732E546F700500000000000000C001400D4D617267696E732E5269676874 + 0500000000000000C001400E4D617267696E732E426F74746F6D050000000000 + 0000C001400A53697A652E5769647468050000000000A0FF9F01400B53697A65 + 2E4865696768740500000000000000A001401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000075442 + 7574746F6E00095374796C654E616D65060A706C7573627574746F6E05416C69 + 676E070846697452696768740843616E466F6375730806437572736F72070763 + 724172726F770C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A506F736974696F6E2E580500000000006A66BA05400A50 + 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 + 0000000000F0FF8703400B53697A652E48656967687405000000000000008803 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B7570060B627574746F6E7374796C65000554506174680005416C69676E0706 + 436C69656E7409446174612E506174680A340000000400000000000000000000 + 000000000001000000000000000000803F010000000000803F0000003F030000 + 0000000000000000000A46696C6C2E436F6C6F720708636C6157686974650748 + 697454657374080C4D617267696E732E4C6566740500000000000000C001400B + 4D617267696E732E546F700500000000000000C001400D4D617267696E732E52 + 696768740500000000000000C001400E4D617267696E732E426F74746F6D0500 + 000000000000C001400A53697A652E5769647468050000000000C0FF9F01400B + 53697A652E4865696768740500000000000000A001401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 00005450463007544C61796F757400095374796C654E616D65060F746162636F + 6E74726F6C7374796C6505416C69676E070643656E7465720A53697A652E5769 + 64746805000000000000008E06400B53697A652E486569676874050000000000 + FFFFC905401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F72646572020E000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F720709784646333033303330064C6F636B656409 + 0748697454657374080C50616464696E672E4C65667405000000000000008000 + 400B50616464696E672E546F7005000000000000008000400D50616464696E67 + 2E526967687405000000000000008000400E50616464696E672E426F74746F6D + 05000000000000008000400A53697A652E576964746805000000000000008E06 + 400B53697A652E486569676874050000000000FFFFC905401453697A652E506C 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 3135313531350756697369626C6508000A5452656374616E676C650005416C69 - 676E0706436C69656E740A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000000000C804401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 31353135000D54536861646F77456666656374000844697374616E6365050000 - 0000000000C0004009446972656374696F6E0500000000000000B4044008536F - 66746E657373050000000000000080FE3F074F70616369747905000000000000 - 0080FE3F0B536861646F77436F6C6F720708636C61426C61636B00000007544C - 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 - 06436C69656E740C4D617267696E732E4C656674050000000000000080FF3F0B - 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 - 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 - 00000000000080FF3F0A53697A652E57696474680500000000000000C004400B - 53697A652E4865696768740500000000000000C004401453697A652E506C6174 - 666F726D44656661756C74080000005450463007544C61796F75740009537479 - 6C654E616D65060E696D61676563656C6C7374796C6505416C69676E07064365 - 6E7465720756697369626C6508085461624F72646572021D000654496D616765 - 00095374796C654E616D650605696D6167650E4D756C74695265734269746D61 - 700E01000005416C69676E0706436C69656E74064C6F636B6564090748697454 - 657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 - 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 - 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 - 00000080FF3F0A53697A652E57696474680500000000000000C004400B53697A - 652E4865696768740500000000000000C004401453697A652E506C6174666F72 - 6D44656661756C74080000005450463007544C61796F757400095374796C654E - 616D65060E706F70757063656C6C7374796C6505416C69676E070643656E7465 - 720756697369626C6508085461624F72646572021E0007544C61796F75740005 - 416C69676E070552696768740A506F736974696F6E2E5805000000000000008C - 04400A53697A652E57696474680500000000000000F002400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C7408000554506174680005416C69676E070643656E7465720944617461 - 2E506174680A400000000500000000000000000000000000803F010000000000 - 803F0000803F010000000000003F0000000001000000000000000000803F0300 - 000000000000000000000A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080B4D617267696E732E546F700500000000000000E001C00A - 53697A652E576964746805000000000000008002400B53697A652E4865696768 - 7405000000000000008001401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E6500000554506174680005416C - 69676E070643656E74657209446174612E506174680A34000000040000000000 - 00000000000000000000010000000000803F00000000010000000000003F0000 - 803F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 - 6974650748697454657374080B4D617267696E732E546F700500000000000000 - C001400A53697A652E576964746805000000000000008002400B53697A652E48 - 656967687405000000000000008001401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000554546578 + 313531353135000000545046300A5452656374616E676C6500095374796C654E + 616D65060B746162646F747374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F54436F + 6C6F72416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB + 3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463135313531350953746F7056616C7565070978464632 + 41383245320754726967676572060F497353656C65637465643D747275650E54 + 726967676572496E76657273650610497353656C65637465643D66616C736500 + 00005450463007544C61796F757400095374796C654E616D65060C7461626974 + 656D7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F72646572020F000A5452656374616E676C6500095374796C654E + 616D650603746F7005416C69676E0708436F6E74656E74730C436C6970436869 + 6C6472656E0907436F726E6572730B07546F704C65667408546F705269676874 + 000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 + 48697454657374080553696465730B03546F70044C656674055269676874000A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000654476C79 + 706800095374796C654E616D65060A676C7970687374796C650C4D617267696E + 732E4C65667405000000000000008001400D4D617267696E732E526967687405 + 000000000000008001C005416C69676E07044C6566740A53697A652E57696474 + 6805000000000000008003400B53697A652E4865696768740500000000000000 + 8003401453697A652E506C6174666F726D44656661756C740800000554546578 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 000000000000A001400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E52696768740500000000000000A001400E4D617267696E - 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 - 000000000000C803400B53697A652E4865696768740500000000000000B80440 + 000000000000C000400B4D617267696E732E546F700500000000000000C00040 + 0D4D617267696E732E52696768740500000000000000C000400E4D617267696E + 732E426F74746F6D0500000000000000C000400A53697A652E57696474680500 + 000000000000B004400B53697A652E4865696768740500000000000000980340 1453697A652E506C6174666F726D44656661756C740816546578745365747469 - 6E67732E466F6E74436F6C6F720708636C615768697465000000545046300754 - 4C61796F757400095374796C654E616D65060D7465787463656C6C7374796C65 - 05416C69676E070643656E7465720756697369626C6508085461624F72646572 - 021F0007544C61796F757400095374796C654E616D650607636F6E74656E7405 - 416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E732E - 4C65667405000000000000008001400B4D617267696E732E546F700500000000 - 0000008001400D4D617267696E732E526967687405000000000000008001400E - 4D617267696E732E426F74746F6D05000000000000008001400A53697A652E57 - 696474680500000000000000A804400B53697A652E4865696768740500000000 - 000000A804401453697A652E506C6174666F726D44656661756C740800000C54 - 42727573684F626A65637400095374796C654E616D65060A666F726567726F75 - 6E6400000C5442727573684F626A65637400095374796C654E616D6506097365 - 6C656374696F6E0B42727573682E436F6C6F7207097839363241383245320000 - 0B54466F6E744F626A65637400095374796C654E616D650604666F6E74000000 - 5450463007544C61796F757400095374796C654E616D6506096D656D6F737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 00CCCC8806400B53697A652E4865696768740500000000006666F40540145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F726465720220000C5442727573684F626A65637400095374796C654E616D65 - 060A666F726567726F756E6400000C5442727573684F626A6563740009537479 - 6C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72070978 - 374634343735394400000B54466F6E744F626A65637400095374796C654E616D - 650604666F6E7400000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E - 5769647468050000000000CCCC8806400B53697A652E48656967687405000000 - 00006666F405401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F7207097846463135313531350007544C61796F75740009 - 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 - 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 - 00400A53697A652E57696474680500000000009899E905400B53697A652E4865 - 696768740500000000006666CC05401453697A652E506C6174666F726D446566 + 6E67732E466F6E74436F6C6F720708636C615768697465155465787453657474 + 696E67732E576F7264577261700800000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650612746162436F6C6F72416E696D6174696F6E310D + 416E696D6174696F6E547970650705496E4F7574084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463230323032300953746F7056616C75 + 6507097846463430343034300754726967676572062149734D6F7573654F7665 + 723D747275653B497353656C65637465643D66616C73650E5472696767657249 + 6E7665727365062249734D6F7573654F7665723D66616C73653B497353656C65 + 637465643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650612746162436F6C6F72416E696D6174696F6E320844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 + 746F7056616C756507097846463241383245320754726967676572060F497353 + 656C65637465643D747275650E54726967676572496E76657273650610497353 + 656C65637465643D66616C736500000000545046300A5452656374616E676C65 + 00095374796C654E616D65060D7468756D626261727374796C6505416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463241383245320748 + 697454657374080A53697A652E57696474680500000000000000A003400B5369 + 7A652E4865696768740500000000000000A003401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350756697369626C6508000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E31084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646324138324532 + 0953746F7056616C756507097846463137353739430754726967676572061F49 + 73507265737365643D747275653B49734D6F7573654F7665723D747275650E54 + 726967676572496E766572736506104973507265737365643D66616C73653B00 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506147468 + 756D62436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000 + 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463241383245320953746F7056616C756507 + 097846463430394246460754726967676572062049734D6F7573654F7665723D + 747275653B4973507265737365643D66616C73650E54726967676572496E7665 + 727365062149734D6F7573654F7665723D66616C73653B497350726573736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D6506157468756D625374726F6B65416E696D6174696F6E31084475726174 + 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060C537472 + 6F6B652E436F6C6F720A537461727456616C7565070978464631353135313509 + 53746F7056616C756507097846463137353739430754726967676572061F4973 + 507265737365643D747275653B49734D6F7573654F7665723D747275650E5472 + 6967676572496E7665727365060F4973507265737365643D66616C7365000000 + 5450463007544C61796F757400095374796C654E616D65060C6C697374626F78 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 00000000FFFFE905400B53697A652E4865696768740500000000000000830640 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F726465720210000C5442727573684F626A65637400095374796C654E + 616D650618416C7465726E6174696E67526F774261636B67726F756E640B4272 + 7573682E436F6C6F72070978464632433243324300000A5452656374616E676C + 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C + 6F636B6564090748697454657374080C50616464696E672E4C65667405000000 + 000000008000400B50616464696E672E546F7005000000000000008000400D50 + 616464696E672E526967687405000000000000008000400E50616464696E672E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 0000FFFFE905400B53697A652E48656967687405000000000000008306401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350007544C61796F757400095374796C654E616D65 + 0607636F6E74656E7405416C69676E0706436C69656E740C436C69704368696C + 6472656E090A53697A652E5769647468050000000000FFFFC105400B53697A65 + 2E4865696768740500000000000000DE05401453697A652E506C6174666F726D + 44656661756C7408000A5452656374616E676C6500095374796C654E616D6506 + 0973656C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0A5452656374616E676C6500095374796C654E616D650610666F637573656473 + 656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B537472 + 6F6B652E446173680703446F740000000A545363726F6C6C4261720009537479 + 6C654E616D65060A767363726F6C6C62617205416C69676E070552696768740B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E0708566572746963616C0A506F736974696F6E2E58050000000000FFFFC5 + 05400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 + 64746805000000000000008003400B53697A652E486569676874050000000000 + 0000DE05401453697A652E506C6174666F726D44656661756C740800000A5453 + 63726F6C6C42617200095374796C654E616D65060A687363726F6C6C62617205 + 416C69676E0706426F74746F6D0B536D616C6C4368616E676505000000000000 + 000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F73 + 6974696F6E2E5805000000000000008000400A506F736974696F6E2E59050000 + 0000000000E205400A53697A652E5769647468050000000000FFFFE105400B53 + 697A652E48656967687405000000000000008003401453697A652E506C617466 + 6F726D44656661756C740800000F54536D616C6C5363726F6C6C426172000953 + 74796C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E07 + 0552696768740B536D616C6C4368616E676505000000000000000000000B4F72 + 69656E746174696F6E0708566572746963616C0C4D617267696E732E4C656674 + 05000000000000008000400A506F736974696F6E2E580500000000000000C605 + 400A506F736974696F6E2E5905000000000000008000400A53697A652E576964 + 746805000000000000008002400B53697A652E48656967687405000000000000 + 008002401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C650800000F54536D616C6C5363726F6C6C42617200095374796C654E616D65 + 060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E070A486F72697A6F6E74616C0B4D617267696E732E546F70050000000000 + 00008000400A506F736974696F6E2E5805000000000000008000400A506F7369 + 74696F6E2E590500000000000000E205400A53697A652E576964746805000000 + 000000009606400B53697A652E48656967687405000000000000008002401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000000 + 0B54476C6F774566666563740008536F66746E657373050000000000CDCCCCFC + 3F09476C6F77436F6C6F720709784646463639453244074F7061636974790500 + 000000006666E6FE3F0754726967676572060E4973466F63757365643D747275 + 6507456E61626C6564080000005450463007544C61796F757400095374796C65 + 4E616D65060D6C697374626F78666F6F74657205416C69676E070643656E7465 + 720A53697A652E576964746805000000000000009205400B53697A652E486569 + 6768740500000000000000D003401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F7264657202110005545465787400 + 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 00000000A001400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E52696768740500000000000000A001400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 00000000FC04400B53697A652E4865696768740500000000000000B003401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F720708636C6157686974650000005450463007544C61 + 796F757400095374796C654E616D6506106C697374626F786974656D7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000D605400B53697A652E4865696768740500000000000000C003401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 726465720212000654476C79706800095374796C654E616D65060A676C797068 + 7374796C650C4D617267696E732E4C65667405000000000000008000400B4D61 + 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 + 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 + 0000000080FF3F05416C69676E07044C6566740A53697A652E57696474680500 + 0000000000008003400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000554546578740009 + 5374796C654E616D6506047465787405416C69676E0706436C69656E74074869 + 7454657374080C4D617267696E732E4C6566740500000000000000C000400B4D + 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 + 6768740500000000000000C000400E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A53697A652E57696474680500000000000000CA05400B53 + 697A652E4865696768740500000000000000B003401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C615768697465155465787453657474696E67732E576F72645772 + 617008165465787453657474696E67732E486F727A416C69676E07074C656164 + 696E6700000954436865636B426F7800095374796C654E616D65060563686563 + 6B05416C69676E07084D6F73744C6566740843616E466F637573081244697361 + 626C65466F637573456666656374090A53697A652E5769647468050000000000 + 0000A003400B53697A652E4865696768740500000000000000C003401453697A + 652E506C6174666F726D44656661756C74080756697369626C65080000005450 + 463007544C61796F757400095374796C654E616D6506126C697374626F78706C + 61696E68656164657205416C69676E070643656E7465720A53697A652E576964 + 746805000000000000009205400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F726465720213000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 + 730A46696C6C2E436F6C6F720709784646324432443244064C6F636B65640907 + 48697454657374080A53697A652E576964746805000000000000009205400B53 + 697A652E4865696768740500000000000000D003401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 353135000005545465787400095374796C654E616D6506047465787405416C69 + 676E0706436C69656E74064C6F636B6564090748697454657374080C4D617267 + 696E732E4C6566740500000000000000A001400B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + A001400E4D617267696E732E426F74746F6D05000000000000008000400A5369 + 7A652E57696474680500000000000000FC04400B53697A652E48656967687405 + 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 + 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 + 650000005450463007544C61796F757400095374796C654E616D650609677269 + 647374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 0000000000FFFFE905400B53697A652E48656967687405000000000000008306 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F726465720214000C5442727573684F626A65637400095374796C65 + 4E616D650618416C7465726E6174696E67526F774261636B67726F756E640B42 + 727573682E436F6C6F72070978333237383738373800000C5442727573684F62 + 6A65637400095374796C654E616D6506086C696E6566696C6C0B42727573682E + 436F6C6F72070978464631353135313500000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 + 64090748697454657374080C50616464696E672E4C6566740500000000000000 + 8000400B50616464696E672E546F7005000000000000008000400D5061646469 + 6E672E526967687405000000000000008000400E50616464696E672E426F7474 + 6F6D05000000000000008000400A53697A652E5769647468050000000000FFFF + E905400B53697A652E48656967687405000000000000008306401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 464631353135313500075448656164657200095374796C654E616D6506066865 + 616465720553696465730B03546F70044C65667406426F74746F6D0552696768 + 740005416C69676E0703546F700A506F736974696F6E2E580500000000000000 + 8000400A506F736974696F6E2E5905000000000000008000400A53697A652E57 + 69647468050000000000FFFFE105400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C740800000754 + 4C61796F757400095374796C654E616D650607636F6E74656E7405416C69676E + 0706436C69656E740C436C69704368696C6472656E090A53697A652E57696474 + 68050000000000FFFFC105400B53697A652E4865696768740500000000000000 + B405401453697A652E506C6174666F726D44656661756C7408000A5452656374 + 616E676C6500095374796C654E616D65060973656C656374696F6E0A46696C6C + 2E436F6C6F7207097846463241383245320748697454657374080A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374 + 796C654E616D650605666F6375730A46696C6C2E436F6C6F7207097841463241 + 383245320748697454657374080C4D617267696E732E4C656674050000000000 + 000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D6172 + 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F + 74746F6D050000000000000080FF3F0A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6507595261646975730500000000000000C000400000000A545363726F + 6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C69 + 676E070552696768740B536D616C6C4368616E67650500000000000000000000 + 0B4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E2E + 58050000000000FFFFC505400A506F736974696F6E2E590500000000000000B8 + 03400A53697A652E576964746805000000000000008003400B53697A652E4865 + 696768740500000000000000B405401453697A652E506C6174666F726D446566 61756C740800000A545363726F6C6C42617200095374796C654E616D65060A68 - 7363726F6C6C62617205416C69676E0706426F74746F6D06437572736F720707 - 63724172726F770B536D616C6C4368616E676505000000000000000000000B4F - 7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E - 590500000000006666D405400A53697A652E5769647468050000000000CCCC88 - 06400B53697A652E48656967687405000000000000008003401453697A652E50 - 6C6174666F726D44656661756C740800000A545363726F6C6C42617200095374 - 796C654E616D65060A767363726F6C6C62617205416C69676E07055269676874 - 06437572736F72070763724172726F770B536D616C6C4368616E676505000000 - 000000000000000B4F7269656E746174696F6E0708566572746963616C0A506F - 736974696F6E2E580500000000009899F105400A53697A652E57696474680500 - 0000000000008003400B53697A652E4865696768740500000000006666D40540 - 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 - 0005416C69676E0706436C69656E740A53697A652E5769647468050000000000 - 9899F105400B53697A652E4865696768740500000000006666D405401453697A - 652E506C6174666F726D44656661756C7408000F54536D616C6C5363726F6C6C - 42617200095374796C654E616D65060F76736D616C6C7363726F6C6C62617205 - 416C69676E0705526967687406437572736F72070763724172726F770B536D61 - 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 - 08566572746963616C0C4D617267696E732E4C65667405000000000000008000 + 7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C436861 + 6E676505000000000000000000000B4F7269656E746174696F6E070A486F7269 + 7A6F6E74616C0A506F736974696F6E2E5805000000000000008000400A506F73 + 6974696F6E2E590500000000000000E205400A53697A652E5769647468050000 + 000000FFFFE105400B53697A652E486569676874050000000000000080034014 + 53697A652E506C6174666F726D44656661756C740800000F54536D616C6C5363 + 726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C + 62617205416C69676E070552696768740B536D616C6C4368616E676505000000 + 000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D61 + 7267696E732E4C65667405000000000000008000400A506F736974696F6E2E58 + 0500000000000000C605400A506F736974696F6E2E5905000000000000008000 400A53697A652E576964746805000000000000008002400B53697A652E486569 67687405000000000000008002401453697A652E506C6174666F726D44656661 756C74080756697369626C650800000F54536D616C6C5363726F6C6C42617200 095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C6967 - 6E0706426F74746F6D06437572736F72070763724172726F770B536D616C6C43 - 68616E676505000000000000000000000B4F7269656E746174696F6E070A486F - 72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A - 53697A652E576964746805000000000000009606400B53697A652E4865696768 - 7405000000000000008002401453697A652E506C6174666F726D44656661756C - 74080756697369626C65080000000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D6506146D656D6F5374726F6B65416E696D6174696F6E3108 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 - 313531350953746F7056616C7565070978464634303430343007547269676765 - 72062049734D6F7573654F7665723D747275653B4973466F63757365643D6661 - 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D - 66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D6506146D656D6F5374726F6B65416E - 696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C - 756507097846463430343034300953746F7056616C7565070978464632413832 - 45320754726967676572060E4973466F63757365643D747275650E5472696767 - 6572496E7665727365060F4973466F63757365643D66616C7365000000005450 - 463007544C61796F757400095374796C654E616D65060E6C696E6B6C6162656C - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 00000000CCCC8006400B53697A652E4865696768740500000000009A99810440 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F7264657202210005545465787400095374796C654E616D6506047465 - 787405416C69676E0708436F6E74656E74730748697454657374080A53697A65 - 2E5769647468050000000000CCCC8006400B53697A652E486569676874050000 - 0000009A998104401453697A652E506C6174666F726D44656661756C74080454 - 6578740604546578741A5465787453657474696E67732E466F6E742E5374796C - 654578740A0D0000000404000000000000000400000016546578745365747469 - 6E67732E466F6E74436F6C6F72070D636C61446F64676572626C7565000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 - 6E696D6174696F6E315374796C65084475726174696F6E050000000000CDCCCC - FB3F07496E7665727365090C50726F70657274794E616D650616546578745365 - 7474696E67732E466F6E74436F6C6F720A537461727456616C7565070D636C61 - 446F64676572626C75650953746F7056616C7565070E636C6144656570736B79 - 626C75650754726967676572063049734D6F7573654F7665723D747275653B49 - 73507265737365643D66616C73653B4973466F63757365643D66616C73650E54 - 726967676572496E7665727365063149734D6F7573654F7665723D66616C7365 - 3B4973507265737365643D66616C73653B4973466F63757365643D66616C7365 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 - 6F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05000000 - 0000CDCCCCFB3F0C50726F70657274794E616D6506165465787453657474696E - 67732E466F6E74436F6C6F720A537461727456616C7565070E636C6144656570 - 736B79626C75650953746F7056616C7565070978464631373537394307547269 - 67676572062F4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D66616C7365000000005450463007544C - 61796F757400095374796C654E616D65060D73697A65677269707374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000000000 - C803400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 - 65720222000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653105416C69676E070643656E7465720A46696C6C2E436F6C6F72 - 07097846463630363036300A53697A652E57696474680500000000000000A000 - 400B53697A652E4865696768740500000000000000A000401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 00000A5452656374616E676C6500095374796C654E616D65060A52656374616E - 676C653205416C69676E070643656E7465720A46696C6C2E436F6C6F72070978 - 46463630363036300C4D617267696E732E4C6566740500000000000000A00240 - 0A53697A652E57696474680500000000000000A000400B53697A652E48656967 - 68740500000000000000A000401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E67 - 6C6500095374796C654E616D65060A52656374616E676C653305416C69676E07 - 0643656E7465720A46696C6C2E436F6C6F7207097846463630363036300C4D61 - 7267696E732E4C6566740500000000000000A002400B4D617267696E732E546F - 700500000000000000A002400A53697A652E57696474680500000000000000A0 - 00400B53697A652E4865696768740500000000000000A000401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 6500000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653405416C69676E070643656E7465720A46696C6C2E436F6C6F720709 - 7846463630363036300B4D617267696E732E546F700500000000000000A00240 - 0A53697A652E57696474680500000000000000A000400B53697A652E48656967 - 68740500000000000000A000401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E67 - 6C6500095374796C654E616D65060A52656374616E676C653505416C69676E07 - 0643656E7465720A46696C6C2E436F6C6F7207097846463630363036300B4D61 - 7267696E732E546F700500000000000000A002400D4D617267696E732E526967 - 68740500000000000000A002400A53697A652E57696474680500000000000000 - A000400B53697A652E4865696768740500000000000000A000401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E6500000A5452656374616E676C6500095374796C654E616D65060A52656374 - 616E676C653605416C69676E070643656E7465720A46696C6C2E436F6C6F7207 - 097846463630363036300C4D617267696E732E4C6566740500000000000000A0 - 02400E4D617267696E732E426F74746F6D0500000000000000A002400A53697A - 652E57696474680500000000000000A000400B53697A652E4865696768740500 - 000000000000A000401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000000545046300A5452656374616E - 676C6500095374796C654E616D65060E7374617475736261727374796C650541 - 6C69676E070643656E7465720C436C69704368696C6472656E090A46696C6C2E - 436F6C6F7207097846463235323532350553696465730B03546F70000A53697A - 652E57696474680500000000000000F004400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F7207097846463135313531350756697369626C6508 - 0007544C61796F757400095374796C654E616D6506074C61796F75743105416C - 69676E070552696768740A506F736974696F6E2E5805000000000000008C0440 - 0A53697A652E57696474680500000000000000C803400B53697A652E48656967 - 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C740800095453697A654772697000095374796C654E616D65060973697A6567 - 7267697005416C69676E0706426F74746F6D0A506F736974696F6E2E59050000 - 0000000000C803400A53697A652E57696474680500000000000000C803400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C740800000000545046300A5452656374616E676C650009 - 5374796C654E616D65060C746F6F6C6261727374796C6505416C69676E070643 - 656E7465720A46696C6C2E436F6C6F7207097846463235323532350748697454 - 657374080553696465730B06426F74746F6D000A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80440 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F7207097846463135313531350756697369626C650800005450463007544C - 61796F757400095374796C654E616D65061570726F6772657373626172657272 - 6F727374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 05000000000033338505400B53697A652E4865696768740500000000009999E1 - 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08085461624F726465720223000A5452656374616E676C6500095374796C654E - 616D65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646323032303230064C6F636B65640907486974546573 - 74080A53697A652E576964746805000000000033338505400B53697A652E4865 - 696768740500000000009999E104401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000A54 - 52656374616E676C6500095374796C654E616D65060A68696E64696361746F72 - 05416C69676E07044C6566740A46696C6C2E436F6C6F72070978464645323241 - 3241064C6F636B6564090748697454657374080C4D617267696E732E4C656674 - 050000000000000080FF3F0B4D617267696E732E546F70050000000000000080 - FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267 - 696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E58 - 050000000000000080FF3F0A506F736974696F6E2E59050000000000000080FF - 3F0A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000009999D904401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E650000000A545265637461 - 6E676C6500095374796C654E616D65060676747261636B05416C69676E070843 - 6F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000033 - 338505400B53697A652E4865696768740500000000009999E104401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 784646313531353135000A5452656374616E676C6500095374796C654E616D65 - 060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E - 436F6C6F720709784646453232413241064C6F636B6564090748697454657374 - 080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E - 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 - 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 - 80FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73697469 - 6F6E2E5905000000000099998904400A53697A652E5769647468050000000000 - 33338105400B53697A652E4865696768740500000000000000A803401453697A + 6E0706426F74746F6D0B536D616C6C4368616E67650500000000000000000000 + 0B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E73 + 2E546F7005000000000000008000400A506F736974696F6E2E58050000000000 + 00008000400A506F736974696F6E2E590500000000000000E205400A53697A65 + 2E576964746805000000000000009606400B53697A652E486569676874050000 + 00000000008002401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508000000005450463007544C61796F757400095374796C654E61 + 6D65060F6865616465726974656D7374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000000009205400B53697A652E486569 + 6768740500000000000000D003401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F726465720215000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463443344334 + 43064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000000009205400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650615686561646572436F6C6F72416E696D6174696F6E31 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646344334 + 4334430953746F7056616C756507097846463241383245320754726967676572 + 060E4973507265737365643D747275650E54726967676572496E766572736506 + 0F4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D6506166865616465725374726F6B65416E696D61 + 74696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 + 74794E616D65060C5374726F6B652E436F6C6F720A537461727456616C756507 + 097846463135313531350953746F7056616C7565070978464632413832453207 + 54726967676572060E4973507265737365643D747275650E5472696767657249 + 6E7665727365060F4973507265737365643D66616C7365000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 + 0000000000A001400B4D617267696E732E546F7005000000000000008000400D + 4D617267696E732E52696768740500000000000000A001400E4D617267696E73 + 2E426F74746F6D05000000000000008000400A53697A652E5769647468050000 + 0000000000FC04400B53697A652E4865696768740500000000000000B0034014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E + 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C + 61796F757400095374796C654E616D65061070726F6772657373626172737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 + 4F726465720216000A5452656374616E676C6500095374796C654E616D650606 + 68747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646323032303230064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F720709784646313531353135000A545265637461 + 6E676C6500095374796C654E616D65060A68696E64696361746F7205416C6967 + 6E07044C6566740A46696C6C2E436F6C6F720709784646324138324532064C6F + 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 + 00000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61 + 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 + 6F74746F6D050000000000000080FF3F0A506F736974696F6E2E580500000000 + 00000080FF3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000009999D904401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E650000000A5452656374616E676C6500 + 095374796C654E616D65060676747261636B05416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 + 0748697454657374080A53697A652E576964746805000000000033338505400B + 53697A652E4865696768740500000000009999E104401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 31353135000A5452656374616E676C6500095374796C654E616D65060A76696E + 64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72 + 0709784646324138324532064C6F636B6564090748697454657374080C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A50 + 6F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905 + 000000000099998904400A53697A652E57696474680500000000003333810540 + 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0000005450463007544C61796F757400095374796C654E616D65061170726F67 + 7265737363656C6C7374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000F805400B53697A652E486569676874050000 + 0000000000FC05401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F7264657202170007544C61796F75740009537479 + 6C654E616D65060668747261636B05416C69676E0708436F6E74656E7473064C + 6F636B6564090C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A53697A652E57696474680500000000000000F005400B53 + 697A652E4865696768740500000000000000F405401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 + 6D65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E + 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 + 080C4D617267696E732E4C65667405000000000000008000400B4D617267696E + 732E546F7005000000000000008000400D4D617267696E732E52696768740500 + 0000000000008000400E4D617267696E732E426F74746F6D0500000000000000 + 8000400A506F736974696F6E2E5805000000000000008000400A506F73697469 + 6F6E2E5905000000000000008000400A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000EC05401453697A 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 4E6F6E65000000005450463007544C61796F757400095374796C654E616D6506 - 13736D616C6C7363726F6C6C6261727374796C6505416C69676E070643656E74 - 65720756697369626C6508085461624F726465720224000654547261636B0009 - 5374796C654E616D65060668747261636B05416C69676E0706436C69656E7406 - 4C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B73 - 74796C6500000654547261636B00095374796C654E616D65060676747261636B - 05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E74617469 - 6F6E070A486F72697A6F6E74616C0A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000C804401453697A65 - 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570061473 - 63726F6C6C62617276747261636B7374796C650000005450463007544C61796F - 757400095374796C654E616D65060D636F6D626F626F787374796C6505416C69 - 676E070643656E7465720A53697A652E57696474680500000000000000C80540 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 25000C5442727573684F626A65637400095374796C654E616D65060A666F7265 - 67726F756E6400000B54466F6E744F626A65637400095374796C654E616D6506 - 04666F6E7409466F6E742E53697A650500000000000000D00240000007544C61 - 796F757400095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E74730A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C7408000A5452656374616E676C6500095374796C - 654E616D65060A52656374616E676C653105416C69676E0706436C69656E740A - 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 - 697A652E57696474680500000000000000C805400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E650007544C61796F757400095374 - 796C654E616D650611427574746F6E5374796C654F626A65637405416C69676E - 070846697452696768740B4D617267696E732E546F70050000000000000080FF - 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 - 6E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805 - 00000000005ED99705400A506F736974696F6E2E59050000000000000080FF3F - 0A53697A652E5769647468050000000000889AB803400B53697A652E48656967 - 68740500000000000000B803401453697A652E506C6174666F726D4465666175 - 6C74080007544C61796F757400095374796C654E616D6506074C61796F757431 - 05416C69676E070643656E7465720C4D617267696E732E4C6566740500000000 - 00000080FF3F0A53697A652E57696474680500000000000000A002400B53697A - 652E4865696768740500000000000000C001401453697A652E506C6174666F72 - 6D44656661756C74080005545061746800095374796C654E616D650605506174 - 683105416C69676E0706436C69656E7409446174612E506174680A3400000004 - 000000000000000000C8420000C84201000000000096430000C8420100000000 - 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 - 636C6157686974650748697454657374080A53697A652E576964746805000000 - 00000000A002400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000000000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646343034303430075472696767657206304973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73653B49 - 73466F63757365643D66616C73650E54726967676572496E7665727365063149 - 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 - 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463430343034300953746F7056616C7565070978464631373537394307547269 - 67676572062F4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D66616C736500000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 - 6E696D6174696F6E33084475726174696F6E050000000000CDCCCCFB3F0C5072 - 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463241383245320953746F7056616C756507097846463137353739 - 430754726967676572062E4973507265737365643D747275653B49734D6F7573 - 654F7665723D747275653B4973466F63757365643D747275650E547269676765 - 72496E7665727365062F4973507265737365643D66616C73653B49734D6F7573 - 654F7665723D747275653B4973466F63757365643D747275650000000007544C - 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 - 06436C69656E74064C6F636B6564090C4D617267696E732E4C65667405000000 + 106D656E756261726974656D7374796C6505416C69676E070643656E7465720C + 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF + 3F0A53697A652E576964746805000000000000009205400B53697A652E486569 + 6768740500000000000000D003401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F726465720218000A545265637461 + 6E676C650005416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646324138324532074869745465737408074F70616369747905000000 + 000017B7D1F13F0A53697A652E576964746805000000000000009205400B5369 + 7A652E4865696768740500000000000000D003401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5446 + 6C6F6174416E696D6174696F6E00084475726174696F6E050000000000CDCCCC + FB3F0C50726F70657274794E616D6506074F7061636974790A53746172745661 + 6C756505000000000000000000000953746F7056616C75650500000000000000 + 80FF3F0754726967676572060F497353656C65637465643D747275650E547269 + 67676572496E76657273650610497353656C65637465643D66616C7365000000 + 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646324138324532074869745465737408074F70616369747905000000000017 + B7D1F13F0A53697A652E576964746805000000000000009205400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F61 + 74416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C + 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 + 05000000000000000000000953746F7056616C7565050000000000000080FF3F + 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 + 6572496E7665727365061149734D6F7573654F7665723D66616C736500000007 + 544C61796F757400095374796C654E616D650605676C79706805416C69676E07 + 044C6566740A53697A652E57696474680500000000000000C803400B53697A65 + 2E4865696768740500000000000000D003401453697A652E506C6174666F726D + 44656661756C74080007544C61796F757400095374796C654E616D6506096368 + 65636B6D61726B05416C69676E0708436F6E74656E7473074F70616369747905 + 00000000006F1283F53F0A53697A652E57696474680500000000000000C80340 + 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 + 74666F726D44656661756C7408000554506174680005416C69676E070643656E + 74657209446174612E506174680A58000000070000000000000056D9524391AE + 2C43010000009276664365021643010000009F3983432B7C3C43010000009E9A + A64382D2B442010000006F1CB04375A4D1420100000026DF8243263F67430300 + 000056D9524391AE2C430A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080A53697A652E57696474680500000000000000B002400B53 + 697A652E4865696768740500000000000000B002401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F + 54466C6F6174416E696D6174696F6E00084475726174696F6E050000000000CD + CCCCFB3F0C50726F70657274794E616D6506074F7061636974790A5374617274 + 56616C756505000000000000000000000953746F7056616C7565050000000000 + 000080FF3F0754726967676572060E4973436865636B65643D747275650E5472 + 6967676572496E7665727365060F4973436865636B65643D66616C7365000000 + 0654476C79706800095374796C654E616D65060A676C7970687374796C650C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 000000C000400E4D617267696E732E426F74746F6D050000000000000080FF3F + 05416C69676E070552696768740A53697A652E57696474680500000000000000 + 8003400B53697A652E48656967687405000000000000008003401453697A652E + 506C6174666F726D44656661756C740800000654496D61676500095374796C65 + 4E616D6506066269746D61700E4D756C74695265734269746D61700E01000005 + 416C69676E0708436F6E74656E74730C4D617267696E732E4C65667405000000 000000008000400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E52696768740500000000000000D803400E4D617267696E732E + 617267696E732E526967687405000000000000008000400E4D617267696E732E 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 000000008E05400B53697A652E4865696768740500000000000000A803401453 + 00000000A803400B53697A652E4865696768740500000000000000B003401453 + 697A652E506C6174666F726D44656661756C7408000000055454657874000953 + 74796C654E616D6506047465787405416C69676E07044C656674064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + 8002400D4D617267696E732E526967687405000000000000008002400A506F73 + 6974696F6E2E5805000000000000008404400A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E + 67732E466F6E74436F6C6F720708636C61576869746516546578745365747469 + 6E67732E486F727A416C69676E07074C656164696E6700000554546578740009 + 5374796C654E616D65060873686F727463757405416C69676E07055269676874 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 000000000000C002400D4D617267696E732E52696768740500000000000000C0 + 01400A506F736974696F6E2E580500000000000000C000C00A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 + 7453657474696E67732E486F727A416C69676E07074C656164696E6700000754 + 4C61796F757400095374796C654E616D6506077375626D61726B05416C69676E + 070552696768740A506F736974696F6E2E580500000000000000D404400A5369 + 7A652E57696474680500000000000000A003400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 000554506174680005416C69676E070643656E74657209446174612E50617468 + 0A34000000040000000000000000000000000000000100000000000000000080 + 3F010000000000803F0000003F0300000000000000000000000A46696C6C2E43 + 6F6C6F720708636C615768697465064C6F636B6564090748697454657374080A + 53697A652E57696474680500000000000000E001400B53697A652E4865696768 + 7405000000000000008002401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300A545265 + 6374616E676C6500095374796C654E616D65060C6D656E756261727374796C65 + 05416C69676E070643656E7465720C436C69704368696C6472656E090946696C + 6C2E4B696E6407044E6F6E650748697454657374080A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E650756697369626C6508000A5452656374616E676C6500 + 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080C4D617267696E732E4C656674050000000000 + 000080FFBF0B4D617267696E732E546F70050000000000000080FFBF0D4D6172 + 67696E732E5269676874050000000000000080FFBF0A53697A652E5769647468 + 0500000000000000D004400B53697A652E4865696768740500000000000000CC + 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F720709784646313531353135000007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 + 697A652E57696474680500000000000000C004400B53697A652E486569676874 + 0500000000000000C004401453697A652E506C6174666F726D44656661756C74 + 080000005450463007544C61796F757400095374796C654E616D65060D6D656E + 756974656D7374796C6505416C69676E070643656E7465720C4D617267696E73 + 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 + 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F + 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E + 576964746805000000000000009205400B53697A652E48656967687405000000 + 00000000D003401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F72646572021A000A5452656374616E676C65000541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463241 + 38324532074869745465737408074F70616369747905000000000017B7D1F13F + 0A53697A652E576964746805000000000000009205400B53697A652E48656967 + 68740500000000000000D003401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E69 + 6D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 657274794E616D6506074F7061636974790A537461727456616C756505000000 + 000000000000000953746F7056616C7565050000000000000080FF3F07547269 + 67676572060F497353656C65637465643D747275650E54726967676572496E76 + 657273650610497353656C65637465643D66616C73650000000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463241383245 + 32074869745465737408074F70616369747905000000000000000000000A5369 + 7A652E576964746805000000000000009205400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174 + 696F6E00084475726174696F6E050000000000CDCCCCFB3F07496E7665727365 + 090C50726F70657274794E616D6506074F7061636974790A537461727456616C + 756505000000000000000000000953746F7056616C7565050000000000000080 + FF3F0754726967676572061049734D6F7573654F7665723D747275650E547269 + 67676572496E7665727365061149734D6F7573654F7665723D66616C73650000 + 0007544C61796F757400095374796C654E616D650605676C79706805416C6967 + 6E07044C6566740A53697A652E57696474680500000000000000C803400B5369 + 7A652E4865696768740500000000000000D003401453697A652E506C6174666F + 726D44656661756C74080007544C61796F757400095374796C654E616D650609 + 636865636B6D61726B05416C69676E0708436F6E74656E7473074F7061636974 + 790500000000006F1283F53F0A53697A652E57696474680500000000000000C8 + 03400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C7408000554506174680005416C69676E070643 + 656E74657209446174612E506174680A58000000070000000000000056D95243 + 91AE2C43010000009276664365021643010000009F3983432B7C3C4301000000 + 9E9AA64382D2B442010000006F1CB04375A4D1420100000026DF8243263F6743 + 0300000056D9524391AE2C430A46696C6C2E436F6C6F720708636C6157686974 + 650748697454657374080A53697A652E57696474680500000000000000B00240 + 0B53697A652E4865696768740500000000000000B002401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000F54466C6F6174416E696D6174696F6E00084475726174696F6E0500000000 + 00CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A537461 + 727456616C756505000000000000000000000953746F7056616C756505000000 + 0000000080FF3F0754726967676572060E4973436865636B65643D747275650E + 54726967676572496E7665727365060F4973436865636B65643D66616C736500 + 00000654476C79706800095374796C654E616D65060A676C7970687374796C65 + 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 0000000000C000400E4D617267696E732E426F74746F6D050000000000000080 + FF3F05416C69676E07044C6566740A53697A652E576964746805000000000000 + 008003400B53697A652E48656967687405000000000000008003401453697A65 + 2E506C6174666F726D44656661756C740800000654496D61676500095374796C + 654E616D6506066269746D61700E4D756C74695265734269746D61700E010000 + 05416C69676E07044C6566740C4D617267696E732E4C65667405000000000000 + 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 + 696E732E526967687405000000000000008000400E4D617267696E732E426F74 + 746F6D05000000000000008000400A506F736974696F6E2E5805000000000000 + 008000400A506F736974696F6E2E5905000000000000008000400A53697A652E + 57696474680500000000000000A803400B53697A652E48656967687405000000 + 00000000B003401453697A652E506C6174666F726D44656661756C7408000000 + 05545465787400095374796C654E616D6506047465787405416C69676E07044C + 656674064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 7405000000000000008002400D4D617267696E732E5269676874050000000000 + 00008002400A506F736974696F6E2E5805000000000000008404400A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000D003401453697A652E506C6174666F726D44656661756C74081654 + 65787453657474696E67732E466F6E74436F6C6F720708636C61576869746516 + 5465787453657474696E67732E486F727A416C69676E07074C656164696E6700 + 0005545465787400095374796C654E616D65060873686F727463757405416C69 + 676E07055269676874064C6F636B6564090748697454657374080C4D61726769 + 6E732E4C6566740500000000000000C002400D4D617267696E732E5269676874 + 0500000000000000C001400A506F736974696F6E2E580500000000000000C000 + C00A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000D003401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 5768697465165465787453657474696E67732E486F727A416C69676E07074C65 + 6164696E67000007544C61796F757400095374796C654E616D6506077375626D + 61726B05416C69676E070552696768740A506F736974696F6E2E580500000000 + 000000D404400A53697A652E57696474680500000000000000A003400B53697A + 652E4865696768740500000000000000D003401453697A652E506C6174666F72 + 6D44656661756C7408000554506174680005416C69676E070643656E74657209 + 446174612E506174680A34000000040000000000000000000000000000000100 + 0000000000000000803F010000000000803F0000003F03000000000000000000 + 00000A46696C6C2E436F6C6F720708636C615768697465064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000000000E001400B53 + 697A652E48656967687405000000000000008002401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 005450463007544C61796F757400095374796C654E616D6506126D656E757365 + 70617261746F727374796C6505416C69676E070643656E7465720C4D61726769 + 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508085461624F72646572021C0005544C696E650005416C6967 + 6E0703546F70084C696E65547970650703546F700C4D617267696E732E4C6566 + 740500000000000000C000400B4D617267696E732E546F700500000000000000 + 8000400D4D617267696E732E52696768740500000000000000C000400A506F73 + 6974696F6E2E580500000000000000C000400A506F736974696F6E2E59050000 + 00000000008000400A53697A652E57696474680500000000000000B004400B53 + 697A652E486569676874050000000000000080FF3F1453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 353135000000545046300A5452656374616E676C6500095374796C654E616D65 + 060D6D656E75766965777374796C6505416C69676E070643656E7465720A4669 + 6C6C2E436F6C6F7207097846463230323032300A53697A652E57696474680500 + 000000000000C804400B53697A652E4865696768740500000000000000C80440 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F7207097846463135313531350756697369626C6508000A5452656374616E + 676C650005416C69676E0706436C69656E740A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 720709784646313531353135000D54536861646F774566666563740008446973 + 74616E63650500000000000000C0004009446972656374696F6E050000000000 + 0000B4044008536F66746E657373050000000000000080FE3F074F7061636974 + 79050000000000000080FE3F0B536861646F77436F6C6F720708636C61426C61 + 636B00000007544C61796F757400095374796C654E616D650607636F6E74656E + 7405416C69676E0706436C69656E740C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 + 00000000C004400B53697A652E4865696768740500000000000000C004401453 697A652E506C6174666F726D44656661756C74080000005450463007544C6179 - 6F757400095374796C654E616D65060D73706C69747465727374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000A904 - 400B53697A652E4865696768740500000000000080C105401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 0226000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F720709 - 7846463330333033300748697454657374080553696465730B044C6566740552 - 69676874000A53697A652E57696474680500000000000000A904400B53697A65 - 2E4865696768740500000000000080C105401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 000007544C61796F757400095374796C654E616D6506046772697005416C6967 - 6E0706436C69656E740A53697A652E57696474680500000000000000A904400B - 53697A652E4865696768740500000000000080C105401453697A652E506C6174 - 666F726D44656661756C7408000754436972636C6500095374796C654E616D65 - 0607436972636C653105416C69676E070643656E7465720A46696C6C2E436F6C - 6F7207097846463430343034300A53697A652E57696474680500000000000000 - E001400B53697A652E4865696768740500000000000000E001401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 464631353135313500000754436972636C6500095374796C654E616D65060743 - 6972636C653205416C69676E070643656E7465720A46696C6C2E436F6C6F7207 - 097846463430343034300B4D617267696E732E546F700500000000000000A003 - 400A53697A652E57696474680500000000000000E001400B53697A652E486569 - 6768740500000000000000E001401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313500000754 - 436972636C6500095374796C654E616D650607436972636C653305416C69676E - 070643656E7465720A46696C6C2E436F6C6F7207097846463430343034300E4D - 617267696E732E426F74746F6D0500000000000000A003400A53697A652E5769 - 6474680500000000000000E001400B53697A652E486569676874050000000000 - 0000E001401453697A652E506C6174666F726D44656661756C74080C5374726F - 6B652E436F6C6F720709784646313531353135000000005450463007544C6179 - 6F757400095374796C654E616D650610636C6F7365627574746F6E7374796C65 - 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000C803401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 - 6465720227000A5452656374616E676C6500095374796C654E616D65060B636C - 6F7365627574746F6E05416C69676E0706436C69656E7413456E61626C654472 - 6167486967686C69676874080A46696C6C2E436F6C6F72070978464632303230 - 32300748697454657374080A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6F757400095374796C654E616D65060E696D61676563656C6C7374796C650541 + 6C69676E070643656E7465720756697369626C6508085461624F72646572021D + 000654496D61676500095374796C654E616D650605696D6167650E4D756C7469 + 5265734269746D61700E01000005416C69676E0706436C69656E74064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 + 00C004400B53697A652E4865696768740500000000000000C004401453697A65 + 2E506C6174666F726D44656661756C74080000005450463007544C61796F7574 + 00095374796C654E616D65060E706F70757063656C6C7374796C6505416C6967 + 6E070643656E7465720756697369626C6508085461624F72646572021E000754 + 4C61796F75740005416C69676E070552696768740A506F736974696F6E2E5805 + 000000000000008C04400A53697A652E57696474680500000000000000F00240 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C7408000554506174680005416C69676E070643656E + 74657209446174612E506174680A400000000500000000000000000000000000 + 803F010000000000803F0000803F010000000000003F00000000010000000000 + 00000000803F0300000000000000000000000A46696C6C2E436F6C6F72070863 + 6C6157686974650748697454657374080B4D617267696E732E546F7005000000 + 00000000E001C00A53697A652E576964746805000000000000008002400B5369 + 7A652E48656967687405000000000000008001401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000554 + 506174680005416C69676E070643656E74657209446174612E506174680A3400 + 000004000000000000000000000000000000010000000000803F000000000100 + 00000000003F0000803F0300000000000000000000000A46696C6C2E436F6C6F + 720708636C6157686974650748697454657374080B4D617267696E732E546F70 + 0500000000000000C001400A53697A652E576964746805000000000000008002 + 400B53697A652E48656967687405000000000000008001401453697A652E506C 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F - 6C6F72416E696D6174696F6E315374796C65084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097846463230323032300953746F7056616C756507 - 097846464646363135370754726967676572062049734D6F7573654F7665723D - 747275653B4973507265737365643D66616C73650E54726967676572496E7665 - 727365062149734D6F7573654F7665723D66616C73653B497350726573736564 - 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614436F6C6F72416E696D6174696F6E325374796C6508447572617469 - 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846464646363135370953746F - 7056616C756507097846464532344634350754726967676572061F49734D6F75 - 73654F7665723D747275653B4973507265737365643D747275650E5472696767 - 6572496E7665727365062049734D6F7573654F7665723D747275653B49735072 - 65737365643D66616C736500000005545061746800095374796C654E616D6506 - 05506174683105416C69676E070643656E74657209446174612E506174680AC4 - 00000010000000000000000000A0C00000704101000000000070410000A0C001 - 000000000048420000F041010000000000AA420000A0C0010000000000D24200 - 0070410100000000008C4200004842010000000000D2420000B4420100000000 - 00AA420000DC42020000003BDF34429E6F8C4202000000FE547D427FAAB04202 - 000000000048420000964201000000000070410000DC42010000000000A0C000 - 00B442010000000000F04100005C42010000000000A0C0000070410300000000 - 00A0C0000070410A46696C6C2E436F6C6F720708636C61576869746507486974 - 54657374080A53697A652E57696474680500000000000000A002400B53697A65 - 2E4865696768740500000000000000A002401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000545046 - 3007544C61796F757400095374796C654E616D65060E6D6178627574746F6E73 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 0706436C69656E74064C6F636B6564090748697454657374080C4D617267696E + 732E4C6566740500000000000000A001400B4D617267696E732E546F70050000 + 00000000008000400D4D617267696E732E52696768740500000000000000A001 + 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 + 2E57696474680500000000000000C803400B53697A652E486569676874050000 + 0000000000B804401453697A652E506C6174666F726D44656661756C74081654 + 65787453657474696E67732E466F6E74436F6C6F720708636C61576869746500 + 00005450463007544C61796F757400095374796C654E616D65060D7465787463 + 656C6C7374796C6505416C69676E070643656E7465720756697369626C650808 + 5461624F72646572021F0007544C61796F757400095374796C654E616D650607 + 636F6E74656E7405416C69676E0708436F6E74656E7473064C6F636B6564090C + 4D617267696E732E4C65667405000000000000008001400B4D617267696E732E + 546F7005000000000000008001400D4D617267696E732E526967687405000000 + 000000008001400E4D617267696E732E426F74746F6D05000000000000008001 + 400A53697A652E57696474680500000000000000A804400B53697A652E486569 + 6768740500000000000000A804401453697A652E506C6174666F726D44656661 + 756C740800000C5442727573684F626A65637400095374796C654E616D65060A + 666F726567726F756E6400000C5442727573684F626A65637400095374796C65 + 4E616D65060973656C656374696F6E0B42727573682E436F6C6F720709783936 + 32413832453200000B54466F6E744F626A65637400095374796C654E616D6506 + 04666F6E740000005450463007544C61796F757400095374796C654E616D6506 + 096D656D6F7374796C6505416C69676E070643656E7465720A53697A652E5769 + 647468050000000000CCCC8806400B53697A652E486569676874050000000000 + 6666F405401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F726465720220000C5442727573684F626A656374000953 + 74796C654E616D65060A666F726567726F756E6400000C5442727573684F626A + 65637400095374796C654E616D65060973656C656374696F6E0B42727573682E + 436F6C6F72070978374634343735394400000B54466F6E744F626A6563740009 + 5374796C654E616D650604666F6E7400000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080A53697A652E5769647468050000000000CCCC8806400B53697A652E4865 + 696768740500000000006666F405401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000754 + 4C61796F757400095374796C654E616D650607636F6E74656E7405416C69676E + 0706436C69656E740C4D617267696E732E4C6566740500000000000000800040 + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 + 000000000000008000400A53697A652E57696474680500000000009899E90540 + 0B53697A652E4865696768740500000000006666CC05401453697A652E506C61 + 74666F726D44656661756C740800000A545363726F6C6C42617200095374796C + 654E616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D06 + 437572736F72070763724172726F770B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A50 + 6F736974696F6E2E590500000000006666D405400A53697A652E576964746805 + 0000000000CCCC8806400B53697A652E48656967687405000000000000008003 + 401453697A652E506C6174666F726D44656661756C740800000A545363726F6C + 6C42617200095374796C654E616D65060A767363726F6C6C62617205416C6967 + 6E0705526967687406437572736F72070763724172726F770B536D616C6C4368 + 616E676505000000000000000000000B4F7269656E746174696F6E0708566572 + 746963616C0A506F736974696F6E2E580500000000009899F105400A53697A65 + 2E576964746805000000000000008003400B53697A652E486569676874050000 + 0000006666D405401453697A652E506C6174666F726D44656661756C74080000 + 07544C61796F75740005416C69676E0706436C69656E740A53697A652E576964 + 74680500000000009899F105400B53697A652E48656967687405000000000066 + 66D405401453697A652E506C6174666F726D44656661756C7408000F54536D61 + 6C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C7363 + 726F6C6C62617205416C69676E0705526967687406437572736F720707637241 + 72726F770B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E0708566572746963616C0C4D617267696E732E4C6566740500 + 0000000000008000400A53697A652E576964746805000000000000008002400B + 53697A652E48656967687405000000000000008002401453697A652E506C6174 + 666F726D44656661756C74080756697369626C650800000F54536D616C6C5363 + 726F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C + 62617205416C69676E0706426F74746F6D06437572736F72070763724172726F + 770B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 + 74696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000 + 000000008000400A53697A652E576964746805000000000000009606400B5369 + 7A652E48656967687405000000000000008002401453697A652E506C6174666F + 726D44656661756C74080756697369626C65080000000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D6506146D656D6F5374726F6B65416E69 + 6D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75 + 6507097846463135313531350953746F7056616C756507097846463430343034 + 300754726967676572062049734D6F7573654F7665723D747275653B4973466F + 63757365643D66616C73650E54726967676572496E7665727365062149734D6F + 7573654F7665723D66616C73653B4973466F63757365643D66616C736500000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D6506146D656D6F + 5374726F6B65416E696D6174696F6E32084475726174696F6E050000000000CD + CCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A + 537461727456616C756507097846463430343034300953746F7056616C756507 + 097846463241383245320754726967676572060E4973466F63757365643D7472 + 75650E54726967676572496E7665727365060F4973466F63757365643D66616C + 7365000000005450463007544C61796F757400095374796C654E616D65060E6C + 696E6B6C6162656C7374796C6505416C69676E070643656E7465720A53697A65 + 2E5769647468050000000000CCCC8006400B53697A652E486569676874050000 + 0000009A998104401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F7264657202210005545465787400095374796C65 + 4E616D6506047465787405416C69676E0708436F6E74656E7473074869745465 + 7374080A53697A652E5769647468050000000000CCCC8006400B53697A652E48 + 65696768740500000000009A998104401453697A652E506C6174666F726D4465 + 6661756C740804546578740604546578741A5465787453657474696E67732E46 + 6F6E742E5374796C654578740A0D000000040400000000000000040000001654 + 65787453657474696E67732E466F6E74436F6C6F72070D636C61446F64676572 + 626C7565000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05 + 0000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65 + 06165465787453657474696E67732E466F6E74436F6C6F720A53746172745661 + 6C7565070D636C61446F64676572626C75650953746F7056616C7565070E636C + 6144656570736B79626C75650754726967676572063049734D6F7573654F7665 + 723D747275653B4973507265737365643D66616C73653B4973466F6375736564 + 3D66616C73650E54726967676572496E7665727365063149734D6F7573654F76 + 65723D66616C73653B4973507265737365643D66616C73653B4973466F637573 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650614436F6C6F72416E696D6174696F6E325374796C650844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506165465 + 787453657474696E67732E466F6E74436F6C6F720A537461727456616C756507 + 0E636C6144656570736B79626C75650953746F7056616C756507097846463137 + 353739430754726967676572062F4973507265737365643D747275653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D66616C7365000000 + 005450463007544C61796F757400095374796C654E616D65060D73697A656772 + 69707374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C803400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F726465720222000A5452656374616E676C6500095374796C654E + 616D65060A52656374616E676C653105416C69676E070643656E7465720A4669 + 6C6C2E436F6C6F7207097846463630363036300A53697A652E57696474680500 + 000000000000A000400B53697A652E4865696768740500000000000000A00040 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D65 + 060A52656374616E676C653205416C69676E070643656E7465720A46696C6C2E + 436F6C6F7207097846463630363036300C4D617267696E732E4C656674050000 + 0000000000A002400A53697A652E57696474680500000000000000A000400B53 + 697A652E4865696768740500000000000000A000401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A + 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 + 3305416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464636 + 30363036300C4D617267696E732E4C6566740500000000000000A002400B4D61 + 7267696E732E546F700500000000000000A002400A53697A652E576964746805 + 00000000000000A000400B53697A652E4865696768740500000000000000A000 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653405416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463630363036300B4D617267696E732E546F70050000 + 0000000000A002400A53697A652E57696474680500000000000000A000400B53 + 697A652E4865696768740500000000000000A000401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A + 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 + 3505416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464636 + 30363036300B4D617267696E732E546F700500000000000000A002400D4D6172 + 67696E732E52696768740500000000000000A002400A53697A652E5769647468 + 0500000000000000A000400B53697A652E4865696768740500000000000000A0 + 00401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653605416C69676E070643656E7465720A46696C + 6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C65667405 + 00000000000000A002400E4D617267696E732E426F74746F6D05000000000000 + 00A002400A53697A652E57696474680500000000000000A000400B53697A652E + 4865696768740500000000000000A000401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054504630 + 0A5452656374616E676C6500095374796C654E616D65060E7374617475736261 + 727374796C6505416C69676E070643656E7465720C436C69704368696C647265 + 6E090A46696C6C2E436F6C6F7207097846463235323532350553696465730B03 + 546F70000A53697A652E57696474680500000000000000F004400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 56697369626C65080007544C61796F757400095374796C654E616D6506074C61 + 796F75743105416C69676E070552696768740A506F736974696F6E2E58050000 + 00000000008C04400A53697A652E57696474680500000000000000C803400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C740800095453697A654772697000095374796C654E616D + 65060973697A65677267697005416C69676E0706426F74746F6D0A506F736974 + 696F6E2E590500000000000000C803400A53697A652E57696474680500000000 + 000000C803400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C740800000000545046300A54526563 + 74616E676C6500095374796C654E616D65060C746F6F6C6261727374796C6505 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646323532 + 3532350748697454657374080553696465730B06426F74746F6D000A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F7207097846463135313531350756697369626C650800 + 005450463007544C61796F757400095374796C654E616D65061570726F677265 + 73736261726572726F727374796C6505416C69676E070643656E7465720A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F726465720223000A5452656374616E676C65 + 00095374796C654E616D65060668747261636B05416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000003333850540 + 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 3531353135000A5452656374616E676C6500095374796C654E616D65060A6869 + 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 + 09784646453232413241064C6F636B6564090748697454657374080C4D617267 + 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 + 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 + 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F + 736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500 + 00000000000080FF3F0A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000009999D904401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 000A5452656374616E676C6500095374796C654E616D65060676747261636B05 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 + 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000033338505400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135000A5452656374616E676C65000953 + 74796C654E616D65060A76696E64696361746F7205416C69676E0706426F7474 + 6F6D0A46696C6C2E436F6C6F720709784646453232413241064C6F636B656409 + 0748697454657374080C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A506F736974696F6E2E58050000000000000080FF + 3F0A506F736974696F6E2E5905000000000099998904400A53697A652E576964 + 746805000000000033338105400B53697A652E48656967687405000000000000 + 00A803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000000005450463007544C61796F757400095374 + 796C654E616D650613736D616C6C7363726F6C6C6261727374796C6505416C69 + 676E070643656E7465720756697369626C6508085461624F7264657202240006 + 54547261636B00095374796C654E616D65060668747261636B05416C69676E07 + 06436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C6261 + 7268747261636B7374796C6500000654547261636B00095374796C654E616D65 + 060676747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F + 7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C804401453697A652E506C6174666F726D44656661756C74080B5374796C654C + 6F6F6B757006147363726F6C6C62617276747261636B7374796C650000005450 + 463007544C61796F757400095374796C654E616D65060D636F6D626F626F7873 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000C8034014 + 0000000000C805400B53697A652E4865696768740500000000000000C8034014 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F726465720228000A5452656374616E676C6500095374796C654E616D65 - 06096D6178627574746F6E05416C69676E0706436C69656E740A46696C6C2E43 - 6F6C6F7207097846463230323032300748697454657374080A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 - 32300953746F7056616C75650709784646324138324532075472696767657206 - 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 - 650E54726967676572496E7665727365062149734D6F7573654F7665723D6661 - 6C73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E - 325374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 - 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 - 7846463241383245320953746F7056616C756507097846463137353739430754 - 726967676572061F49734D6F7573654F7665723D747275653B49735072657373 - 65643D747275650E54726967676572496E7665727365062049734D6F7573654F - 7665723D747275653B4973507265737365643D66616C73650000000554506174 - 6800095374796C654E616D650605506174683105416C69676E070643656E7465 - 7209446174612E506174680A5800000007000000000000000000C8420000C842 - 0100000000002F440000C8420100000000002F4400002F440100000000800944 - 00800944010000000080094400007A430100000000007A4300007A4303000000 - 0000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465074869 - 7454657374080A53697A652E57696474680500000000000000A002400B53697A - 652E4865696768740500000000000000A002401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000005450 - 463007544C61796F757400095374796C654E616D65060E6D696E627574746F6E + 61624F726465720225000C5442727573684F626A65637400095374796C654E61 + 6D65060A666F726567726F756E6400000B54466F6E744F626A65637400095374 + 796C654E616D650604666F6E7409466F6E742E53697A650500000000000000D0 + 0240000007544C61796F757400095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 + 6C6500095374796C654E616D65060A52656374616E676C653105416C69676E07 + 06436C69656E740A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080A53697A652E57696474680500000000000000C805400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650007544C61 + 796F757400095374796C654E616D650611427574746F6E5374796C654F626A65 + 637405416C69676E070846697452696768740B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F73 + 6974696F6E2E580500000000005ED99705400A506F736974696F6E2E59050000 + 000000000080FF3F0A53697A652E5769647468050000000000889AB803400B53 + 697A652E4865696768740500000000000000B803401453697A652E506C617466 + 6F726D44656661756C74080007544C61796F757400095374796C654E616D6506 + 074C61796F75743105416C69676E070643656E7465720C4D617267696E732E4C + 656674050000000000000080FF3F0A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080005545061746800095374796C654E + 616D650605506174683105416C69676E0706436C69656E7409446174612E5061 + 74680A3400000004000000000000000000C8420000C842010000000000964300 + 00C842010000000000484300009643030000000000C8420000C8420A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 + 696474680500000000000000A002400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464634303430343007547269 + 67676572063049734D6F7573654F7665723D747275653B497350726573736564 + 3D66616C73653B4973466F63757365643D66616C73650E54726967676572496E + 7665727365063149734D6F7573654F7665723D66616C73653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463430343034300953746F7056616C756507097846463137 + 353739430754726967676572062F4973507265737365643D747275653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D66616C736500000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 + 6F6E436F6C6F72416E696D6174696F6E33084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463241383245320953746F7056616C75650709 + 7846463137353739430754726967676572062E4973507265737365643D747275 + 653B49734D6F7573654F7665723D747275653B4973466F63757365643D747275 + 650E54726967676572496E7665727365062F4973507265737365643D66616C73 + 653B49734D6F7573654F7665723D747275653B4973466F63757365643D747275 + 650000000007544C61796F757400095374796C654E616D650607636F6E74656E + 7405416C69676E0706436C69656E74064C6F636B6564090C4D617267696E732E + 4C65667405000000000000008000400B4D617267696E732E546F700500000000 + 0000008000400D4D617267696E732E52696768740500000000000000D803400E + 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 + 6964746805000000000000008E05400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C740800000054 + 50463007544C61796F757400095374796C654E616D65060D73706C6974746572 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80340 + 000000000000A904400B53697A652E4865696768740500000000000080C10540 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720229000A5452656374616E676C6500095374796C654E616D - 6506096D696E627574746F6E05416C69676E0706436C69656E740A46696C6C2E - 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C803401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 - 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646323032 - 3032300953746F7056616C756507097846463241383245320754726967676572 - 062049734D6F7573654F7665723D747275653B4973507265737365643D66616C - 73650E54726967676572496E7665727365062149734D6F7573654F7665723D66 - 616C73653B4973507265737365643D66616C736500000F54436F6C6F72416E69 + 5461624F726465720226000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653105416C69676E0706436C69656E740A46696C6C + 2E436F6C6F720709784646333033303330074869745465737408055369646573 + 0B044C656674055269676874000A53697A652E57696474680500000000000000 + A904400B53697A652E4865696768740500000000000080C105401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 4646313531353135000007544C61796F757400095374796C654E616D65060467 + 72697005416C69676E0706436C69656E740A53697A652E576964746805000000 + 00000000A904400B53697A652E4865696768740500000000000080C105401453 + 697A652E506C6174666F726D44656661756C7408000754436972636C65000953 + 74796C654E616D650607436972636C653105416C69676E070643656E7465720A + 46696C6C2E436F6C6F7207097846463430343034300A53697A652E5769647468 + 0500000000000000E001400B53697A652E4865696768740500000000000000E0 + 01401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313500000754436972636C6500095374796C + 654E616D650607436972636C653205416C69676E070643656E7465720A46696C + 6C2E436F6C6F7207097846463430343034300B4D617267696E732E546F700500 + 000000000000A003400A53697A652E57696474680500000000000000E001400B + 53697A652E4865696768740500000000000000E001401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 3135313500000754436972636C6500095374796C654E616D650607436972636C + 653305416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 + 3430343034300E4D617267696E732E426F74746F6D0500000000000000A00340 + 0A53697A652E57696474680500000000000000E001400B53697A652E48656967 + 68740500000000000000E001401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F7207097846463135313531350000000054 + 50463007544C61796F757400095374796C654E616D650610636C6F7365627574 + 746F6E7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720227000A5452656374616E676C6500095374796C65 + 4E616D65060B636C6F7365627574746F6E05416C69676E0706436C69656E7413 + 456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000C804400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650614436F6C6F72416E696D6174696F6E315374796C65084475726174 + 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646323032303230095374 + 6F7056616C756507097846464646363135370754726967676572062049734D6F + 7573654F7665723D747275653B4973507265737365643D66616C73650E547269 + 67676572496E7665727365062149734D6F7573654F7665723D66616C73653B49 + 73507265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C + 65084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846464646 + 363135370953746F7056616C7565070978464645323446343507547269676765 + 72061F49734D6F7573654F7665723D747275653B4973507265737365643D7472 + 75650E54726967676572496E7665727365062049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C736500000005545061746800095374 + 796C654E616D650605506174683105416C69676E070643656E74657209446174 + 612E506174680AC400000010000000000000000000A0C0000070410100000000 + 0070410000A0C001000000000048420000F041010000000000AA420000A0C001 + 0000000000D242000070410100000000008C4200004842010000000000D24200 + 00B442010000000000AA420000DC42020000003BDF34429E6F8C4202000000FE + 547D427FAAB04202000000000048420000964201000000000070410000DC4201 + 0000000000A0C00000B442010000000000F04100005C42010000000000A0C000 + 007041030000000000A0C0000070410A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080A53697A652E57696474680500000000000000 + A002400B53697A652E4865696768740500000000000000A002401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E650000005450463007544C61796F757400095374796C654E616D65060E6D61 + 78627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F726465720228000A5452656374616E676C65000953 + 74796C654E616D6506096D6178627574746F6E05416C69676E0706436C69656E + 740A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F - 6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F70 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463241383245320953746F7056616C7565070978464631373537394307 - 54726967676572061F49734D6F7573654F7665723D747275653B497350726573 - 7365643D747275650E54726967676572496E7665727365062049734D6F757365 - 4F7665723D747275653B4973507265737365643D66616C736500000005545061 - 746800095374796C654E616D650605506174683105416C69676E070643656E74 - 657209446174612E506174680A40000000050000000000000000002F44008009 - 440100000000002F4400002F44010000000000C84200002F44010000000000C8 - 42008009440300000000002F44008009440A46696C6C2E436F6C6F720708636C - 6157686974650748697454657374080B4D617267696E732E546F700500000000 - 000000A002400D526F746174696F6E416E676C650500000000000000B406400A - 53697A652E57696474680500000000000000A002400B53697A652E4865696768 - 740500000000000000C000401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C6179 - 6F757400095374796C654E616D65060E726573627574746F6E7374796C650541 - 6C69676E070643656E7465720A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 72022A000A5452656374616E676C6500095374796C654E616D65060972657362 - 7574746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F720709 - 7846463230323032300748697454657374080A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000C8034014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 - 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463230323032300953746F - 7056616C756507097846463241383245320754726967676572062049734D6F75 - 73654F7665723D747275653B4973507265737365643D66616C73650E54726967 - 676572496E7665727365062149734D6F7573654F7665723D66616C73653B4973 - 507265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65 - 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646324138 - 3245320953746F7056616C756507097846463137353739430754726967676572 - 061F49734D6F7573654F7665723D747275653B4973507265737365643D747275 - 650E54726967676572496E7665727365062049734D6F7573654F7665723D7472 - 75653B4973507265737365643D66616C73650000000554506174680009537479 - 6C654E616D650605506174683105416C69676E070643656E7465720944617461 - 2E506174680A5800000007000000000000000000C8420000C842010000000000 - 2F440000C8420100000000002F4400002F440100000000800944008009440100 - 00000080094400007A430100000000007A4300007A43030000000000C8420000 - C8420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0D526F746174696F6E416E676C650500000000000000B406400A53697A652E57 - 696474680500000000000000A002400B53697A652E4865696768740500000000 - 000000A002401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E650000005450463007544C61796F7574000953 - 74796C654E616D65061177696E646F77626F726465727374796C6505416C6967 - 6E070643656E7465720A53697A652E576964746805000000000056D5AF07400B - 53697A652E4865696768740500000000000000B306401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F72646572022B - 000A5452656374616E676C6500095374796C654E616D6506046D61736B05416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646313031 - 3031300A53697A652E576964746805000000000056D5AF07400B53697A652E48 - 65696768740500000000000000B306401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C65 - 08000007544C61796F757400095374796C654E616D6506046C65667405416C69 - 676E07084D6F73744C656674064C6F636B6564090A506F736974696F6E2E5905 - 00000000000000F003400A53697A652E57696474680500000000000000A00140 - 0B53697A652E48656967687405000000000000009506401453697A652E506C61 - 74666F726D44656661756C7408000A5452656374616E676C650005416C69676E - 07084D6F73744C6566740A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080553696465730B044C656674055269676874000A53697A - 652E57696474680500000000000000A001400B53697A652E4865696768740500 - 0000000000009006401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F72070978464631353135313500000A545265637461 - 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 - 6E070A4D6F7374426F74746F6D13456E61626C6544726167486967686C696768 - 74080A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A506F736974696F6E2E5905000000000000009006400553696465730B044C - 65667406426F74746F6D000A53697A652E57696474680500000000000000A001 - 400B53697A652E4865696768740500000000000000A001401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 3135313531350007544C61796F757400095374796C654E616D6506074C61796F - 75743305416C69676E07094D6F737452696768740A506F736974696F6E2E5805 - 000000000000008001400A53697A652E5769647468050000000000000080FF3F - 0B53697A652E4865696768740500000000000000A001401453697A652E506C61 - 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 - 4E616D65060A52656374616E676C653105416C69676E0703546F700A46696C6C - 2E436F6C6F7207097846463135313531350748697454657374080A53697A652E - 5769647468050000000000000080FF3F0B53697A652E48656967687405000000 - 0000000080FF3F1453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000000000007544C61796F757400095374 - 796C654E616D650605726967687405416C69676E07094D6F7374526967687406 - 4C6F636B6564090A506F736974696F6E2E580500000000005655AD07400A506F - 736974696F6E2E590500000000000000F003400A53697A652E57696474680500 - 000000000000A001400B53697A652E4865696768740500000000000000950640 - 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 - 6C650005416C69676E07094D6F737452696768740A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080553696465730B044C65667405 - 5269676874000A53697A652E57696474680500000000000000A001400B53697A - 652E48656967687405000000000000009006401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 3500000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653105416C69676E070A4D6F7374426F74746F6D13456E61626C654472 - 6167486967686C69676874080A46696C6C2E436F6C6F72070978464632303230 - 32300748697454657374080A506F736974696F6E2E5905000000000000009006 - 400553696465730B06426F74746F6D055269676874000A53697A652E57696474 - 680500000000000000A001400B53697A652E4865696768740500000000000000 - A001401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F7207097846463135313531350007544C61796F757400095374796C - 654E616D6506074C61796F75743305416C69676E07084D6F73744C6566740A53 - 697A652E5769647468050000000000000080FF3F0B53697A652E486569676874 - 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 - 08000A5452656374616E676C6500095374796C654E616D65060A52656374616E - 676C653105416C69676E0703546F700A46696C6C2E436F6C6F72070978464631 - 35313531350748697454657374080A53697A652E576964746805000000000000 - 0080FF3F0B53697A652E486569676874050000000000000080FF3F1453697A65 + 097846463230323032300953746F7056616C7565070978464632413832453207 + 54726967676572062049734D6F7573654F7665723D747275653B497350726573 + 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 + 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 + 6E696D6174696F6E325374796C65084475726174696F6E050000000000CDCCCC + FB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463241383245320953746F7056616C75650709784646 + 3137353739430754726967676572061F49734D6F7573654F7665723D74727565 + 3B4973507265737365643D747275650E54726967676572496E76657273650620 + 49734D6F7573654F7665723D747275653B4973507265737365643D66616C7365 + 00000005545061746800095374796C654E616D650605506174683105416C6967 + 6E070643656E74657209446174612E506174680A580000000700000000000000 + 0000C8420000C8420100000000002F440000C8420100000000002F4400002F44 + 010000000080094400800944010000000080094400007A430100000000007A43 + 00007A43030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000A002401453697A65 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6500000000000A5452656374616E676C650005416C69676E07074D6F7374 - 546F700A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 - 090748697454657374080A53697A652E576964746805000000000056D5AF0740 - 0B53697A652E4865696768740500000000000000F003401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 35313531350007544C61796F757400095374796C654E616D6506076361707469 - 6F6E05416C69676E0708436F6E74656E7473064C6F636B656409074869745465 - 7374090A53697A652E576964746805000000000056D5AF07400B53697A652E48 - 65696768740500000000000000F003401453697A652E506C6174666F726D4465 - 6661756C7408000007544C61796F75740005416C69676E0706436C69656E7406 - 4C6F636B6564090C4D617267696E732E4C656674050000000000000080FF3F0B - 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 - 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 - 00000000000080FF3F0A53697A652E576964746805000000000056D5AE07400B + 6F6E650000005450463007544C61796F757400095374796C654E616D65060E6D + 696E627574746F6E7374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F726465720229000A5452656374616E676C650009 + 5374796C654E616D6506096D696E627574746F6E05416C69676E0706436C6965 + 6E740A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646324138324532 + 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E325374796C65084475726174696F6E050000000000CDCC + CCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463241383245320953746F7056616C756507097846 + 463137353739430754726967676572061F49734D6F7573654F7665723D747275 + 653B4973507265737365643D747275650E54726967676572496E766572736506 + 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 6500000005545061746800095374796C654E616D650605506174683105416C69 + 676E070643656E74657209446174612E506174680A4000000005000000000000 + 0000002F44008009440100000000002F4400002F44010000000000C84200002F + 44010000000000C842008009440300000000002F44008009440A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080B4D617267696E732E + 546F700500000000000000A002400D526F746174696F6E416E676C6505000000 + 00000000B406400A53697A652E57696474680500000000000000A002400B5369 + 7A652E4865696768740500000000000000C000401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054 + 50463007544C61796F757400095374796C654E616D65060E726573627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F72646572022A000A5452656374616E676C6500095374796C654E61 + 6D650609726573627574746F6E05416C69676E0706436C69656E740A46696C6C + 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C + 65084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 + 323032300953746F7056616C7565070978464632413832453207547269676765 + 72062049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D + 66616C73653B4973507265737365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463241383245320953746F7056616C75650709784646313735373943 + 0754726967676572061F49734D6F7573654F7665723D747275653B4973507265 + 737365643D747275650E54726967676572496E7665727365062049734D6F7573 + 654F7665723D747275653B4973507265737365643D66616C7365000000055450 + 61746800095374796C654E616D650605506174683105416C69676E070643656E + 74657209446174612E506174680A5800000007000000000000000000C8420000 + C8420100000000002F440000C8420100000000002F4400002F44010000000080 + 094400800944010000000080094400007A430100000000007A4300007A430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080D526F746174696F6E416E676C650500000000000000B406 + 400A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000A002401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C + 61796F757400095374796C654E616D65061177696E646F77626F726465727374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 000056D5AF07400B53697A652E4865696768740500000000000000B306401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F72646572022B000A5452656374616E676C6500095374796C654E616D6506 + 046D61736B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 07097846463130313031300A53697A652E576964746805000000000056D5AF07 + 400B53697A652E4865696768740500000000000000B306401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0756697369626C6508000007544C61796F757400095374796C654E616D650604 + 6C65667405416C69676E07084D6F73744C656674064C6F636B6564090A506F73 + 6974696F6E2E590500000000000000F003400A53697A652E5769647468050000 + 0000000000A001400B53697A652E486569676874050000000000000095064014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 650005416C69676E07084D6F73744C6566740A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080553696465730B044C656674055269 + 676874000A53697A652E57696474680500000000000000A001400B53697A652E + 48656967687405000000000000009006401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 + 6C653105416C69676E070A4D6F7374426F74746F6D13456E61626C6544726167 + 486967686C69676874080A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080A506F736974696F6E2E59050000000000000090064005 + 53696465730B044C65667406426F74746F6D000A53697A652E57696474680500 + 000000000000A001400B53697A652E4865696768740500000000000000A00140 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F7207097846463135313531350007544C61796F757400095374796C654E61 + 6D6506074C61796F75743305416C69676E07094D6F737452696768740A506F73 + 6974696F6E2E5805000000000000008001400A53697A652E5769647468050000 + 000000000080FF3F0B53697A652E4865696768740500000000000000A0014014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 6500095374796C654E616D65060A52656374616E676C653105416C69676E0703 + 546F700A46696C6C2E436F6C6F72070978464631353135313507486974546573 + 74080A53697A652E5769647468050000000000000080FF3F0B53697A652E4865 + 69676874050000000000000080FF3F1453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000000007544C61 + 796F757400095374796C654E616D650605726967687405416C69676E07094D6F + 73745269676874064C6F636B6564090A506F736974696F6E2E58050000000000 + 5655AD07400A506F736974696F6E2E590500000000000000F003400A53697A65 + 2E57696474680500000000000000A001400B53697A652E486569676874050000 + 00000000009506401453697A652E506C6174666F726D44656661756C7408000A + 5452656374616E676C650005416C69676E07094D6F737452696768740A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080553696465 + 730B044C656674055269676874000A53697A652E576964746805000000000000 + 00A001400B53697A652E48656967687405000000000000009006401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653105416C69676E070A4D6F7374426F74746F6D13 + 456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A506F736974696F6E2E590500 + 0000000000009006400553696465730B06426F74746F6D055269676874000A53 + 697A652E57696474680500000000000000A001400B53697A652E486569676874 + 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F + 757400095374796C654E616D6506074C61796F75743305416C69676E07084D6F + 73744C6566740A53697A652E5769647468050000000000000080FF3F0B53697A + 652E4865696768740500000000000000A001401453697A652E506C6174666F72 + 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 + 060A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F6C + 6F7207097846463135313531350748697454657374080A53697A652E57696474 + 68050000000000000080FF3F0B53697A652E4865696768740500000000000000 + 80FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000000000A5452656374616E676C650005416C69 + 676E07074D6F7374546F700A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000056D5AF07400B53697A652E4865696768740500000000000000F0034014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F7207097846463135313531350007544C61796F757400095374796C654E616D + 65060763617074696F6E05416C69676E0708436F6E74656E7473064C6F636B65 + 64090748697454657374090A53697A652E576964746805000000000056D5AF07 + 400B53697A652E4865696768740500000000000000F003401453697A652E506C + 6174666F726D44656661756C7408000007544C61796F75740005416C69676E07 + 06436C69656E74064C6F636B6564090C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 + 000056D5AE07400B53697A652E4865696768740500000000000000E003401453 + 697A652E506C6174666F726D44656661756C74080007544C61796F7574000541 + 6C69676E07044C656674064C6F636B6564090A53697A652E5769647468050000 + 00000000009002400B53697A652E4865696768740500000000000000E0034014 + 53697A652E506C6174666F726D44656661756C7408000007544C61796F757400 + 095374796C654E616D65060469636F6E064C6F636B6564090A506F736974696F + 6E2E5805000000000000009002400A506F736974696F6E2E5905000000000000 + 00E001400A53697A652E57696474680500000000000000C803400B53697A652E + 4865696768740500000000000000A803401453697A652E506C6174666F726D44 + 656661756C7408000007544C61796F757400095374796C654E616D6506077379 + 7362746E7305416C69676E0706436C69656E74064C6F636B6564090A53697A65 + 2E57696474680500000000005655AA07400B53697A652E486569676874050000 + 0000000000E003401453697A652E506C6174666F726D44656661756C7408000C + 545370656564427574746F6E00095374796C654E616D650605636C6F73650541 + 6C69676E07055269676874064C6F636B6564090A506F736974696F6E2E580500 + 0000000056559107400A53697A652E57696474680500000000000000C804400B 53697A652E4865696768740500000000000000E003401453697A652E506C6174 - 666F726D44656661756C74080007544C61796F75740005416C69676E07044C65 - 6674064C6F636B6564090A53697A652E57696474680500000000000000900240 - 0B53697A652E4865696768740500000000000000E003401453697A652E506C61 - 74666F726D44656661756C7408000007544C61796F757400095374796C654E61 - 6D65060469636F6E064C6F636B6564090A506F736974696F6E2E580500000000 - 0000009002400A506F736974696F6E2E590500000000000000E001400A53697A - 652E57696474680500000000000000C803400B53697A652E4865696768740500 - 000000000000A803401453697A652E506C6174666F726D44656661756C740800 - 0007544C61796F757400095374796C654E616D65060773797362746E7305416C - 69676E0706436C69656E74064C6F636B6564090A53697A652E57696474680500 - 000000005655AA07400B53697A652E4865696768740500000000000000E00340 - 1453697A652E506C6174666F726D44656661756C7408000C5453706565644275 - 74746F6E00095374796C654E616D650605636C6F736505416C69676E07055269 - 676874064C6F636B6564090A506F736974696F6E2E5805000000000056559107 - 400A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000E003401453697A652E506C6174666F726D44656661 - 756C74080B5374796C654C6F6F6B75700610636C6F7365627574746F6E737479 - 6C6500000C545370656564427574746F6E00095374796C654E616D6506036D61 - 7805416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E - 5805000000000056558207400A53697A652E57696474680500000000000000F0 - 03400B53697A652E4865696768740500000000000000E003401453697A652E50 - 6C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060E6D6178 - 627574746F6E7374796C6500000C545370656564427574746F6E00095374796C - 654E616D65060372657305416C69676E07055269676874064C6F636B6564090A - 506F736974696F6E2E58050000000000ACAAE606400A53697A652E5769647468 - 0500000000000000F003400B53697A652E4865696768740500000000000000E0 - 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F - 6F6B7570060E726573627574746F6E7374796C6500000C545370656564427574 - 746F6E00095374796C654E616D6506036D696E05416C69676E07055269676874 - 064C6F636B6564090A506F736974696F6E2E58050000000000ACAAC806400A53 - 697A652E57696474680500000000000000F003400B53697A652E486569676874 + 666F726D44656661756C74080B5374796C654C6F6F6B75700610636C6F736562 + 7574746F6E7374796C6500000C545370656564427574746F6E00095374796C65 + 4E616D6506036D617805416C69676E07055269676874064C6F636B6564090A50 + 6F736974696F6E2E5805000000000056558207400A53697A652E576964746805 + 00000000000000F003400B53697A652E4865696768740500000000000000E003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B7570060E6D6178627574746F6E7374796C6500000C54537065656442757474 + 6F6E00095374796C654E616D65060372657305416C69676E0705526967687406 + 4C6F636B6564090A506F736974696F6E2E58050000000000ACAAE606400A5369 + 7A652E57696474680500000000000000F003400B53697A652E48656967687405 + 00000000000000E003401453697A652E506C6174666F726D44656661756C7408 + 0B5374796C654C6F6F6B7570060E726573627574746F6E7374796C6500000C54 + 5370656564427574746F6E00095374796C654E616D6506036D696E05416C6967 + 6E07055269676874064C6F636B6564090A506F736974696F6E2E580500000000 + 00ACAAC806400A53697A652E57696474680500000000000000F003400B53697A + 652E4865696768740500000000000000E003401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B7570060E6D696E627574746F6E + 7374796C65000005545465787400095374796C654E616D6506057469746C6505 + 416C69676E0706436C69656E74064C6F636B6564090748697454657374080A53 + 697A652E5769647468050000000000ACAAC806400B53697A652E486569676874 0500000000000000E003401453697A652E506C6174666F726D44656661756C74 - 080B5374796C654C6F6F6B7570060E6D696E627574746F6E7374796C65000005 - 545465787400095374796C654E616D6506057469746C6505416C69676E070643 - 6C69656E74064C6F636B6564090748697454657374080A53697A652E57696474 - 68050000000000ACAAC806400B53697A652E4865696768740500000000000000 - E003401453697A652E506C6174666F726D44656661756C740804546578740605 - 5469746C65165465787453657474696E67732E466F6E74436F6C6F720708636C - 615768697465000000000007544C61796F757400095374796C654E616D650606 - 636C69656E7405416C69676E0706436C69656E74064C6F636B65640907486974 - 54657374090A53697A652E576964746805000000000056D5AA07400B53697A65 - 2E48656967687405000000000000009006401453697A652E506C6174666F726D - 44656661756C7408000007544C61796F757400095374796C654E616D65060662 - 6F74746F6D05416C69676E0706426F74746F6D064C6F636B6564090A506F7369 - 74696F6E2E580500000000000000A001400A506F736974696F6E2E5905000000 - 00000000AE06400A53697A652E576964746805000000000056D5AA07400B5369 - 7A652E4865696768740500000000000000A001401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 6506047265637405416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72 - 07097846463230323032300748697454657374080553696465730B03546F7006 - 426F74746F6D000A53697A652E576964746805000000000056D5AA07400B5369 - 7A652E4865696768740500000000000000A001401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 3135000000005450463007544C61796F757400095374796C654E616D65060F74 - 6F6F6C77696E646F777374796C6505416C69676E070643656E7465720A53697A - 652E576964746805000000000056D5AF07400B53697A652E4865696768740500 - 000000000000B306401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F72646572022C000A5452656374616E676C6500 - 095374796C654E616D6506046D61736B05416C69676E0708436F6E74656E7473 - 0A46696C6C2E436F6C6F7207097846463130313031300A53697A652E57696474 - 6805000000000056D5AF07400B53697A652E4865696768740500000000000000 - B306401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E650756697369626C6508000007544C61796F75740009 - 5374796C654E616D6506046C65667405416C69676E07084D6F73744C65667406 - 4C6F636B6564090A506F736974696F6E2E590500000000000000C803400A5369 - 7A652E57696474680500000000000000A001400B53697A652E48656967687405 - 000000000000009A06401453697A652E506C6174666F726D44656661756C7408 - 000A5452656374616E676C650005416C69676E07084D6F73744C6566740A4669 + 08045465787406055469746C65165465787453657474696E67732E466F6E7443 + 6F6C6F720708636C615768697465000000000007544C61796F75740009537479 + 6C654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F63 + 6B6564090748697454657374090A53697A652E576964746805000000000056D5 + AA07400B53697A652E48656967687405000000000000009006401453697A652E + 506C6174666F726D44656661756C7408000007544C61796F757400095374796C + 654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F636B + 6564090A506F736974696F6E2E580500000000000000A001400A506F73697469 + 6F6E2E590500000000000000AE06400A53697A652E5769647468050000000000 + 56D5AA07400B53697A652E4865696768740500000000000000A001401453697A + 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 + 5374796C654E616D6506047265637405416C69676E0706426F74746F6D0A4669 6C6C2E436F6C6F72070978464632303230323007486974546573740805536964 - 65730B044C656674055269676874000A53697A652E5769647468050000000000 - 0000A001400B53697A652E48656967687405000000000000009506401453697A + 65730B03546F7006426F74746F6D000A53697A652E5769647468050000000000 + 56D5AA07400B53697A652E4865696768740500000000000000A001401453697A 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 0978464631353135313500000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653105416C69676E070A4D6F7374426F74746F6D - 13456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F72 - 07097846463230323032300748697454657374080A506F736974696F6E2E5905 - 000000000000009506400553696465730B044C65667406426F74746F6D000A53 - 697A652E57696474680500000000000000A001400B53697A652E486569676874 - 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F - 757400095374796C654E616D6506074C61796F75743305416C69676E07094D6F - 737452696768740A506F736974696F6E2E5805000000000000008001400A5369 - 7A652E5769647468050000000000000080FF3F0B53697A652E48656967687405 - 00000000000000A001401453697A652E506C6174666F726D44656661756C7408 - 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 - 6C653105416C69676E0703546F700A46696C6C2E436F6C6F7207097846463135 - 313531350748697454657374080A53697A652E57696474680500000000000000 - 80FF3F0B53697A652E486569676874050000000000000080FF3F1453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000000000007544C61796F757400095374796C654E616D65060572696768 - 7405416C69676E07094D6F73745269676874064C6F636B6564090A506F736974 - 696F6E2E580500000000005655AD07400A506F736974696F6E2E590500000000 - 000000C803400A53697A652E57696474680500000000000000A001400B53697A - 652E48656967687405000000000000009A06401453697A652E506C6174666F72 - 6D44656661756C7408000A5452656374616E676C650005416C69676E07094D6F - 737452696768740A46696C6C2E436F6C6F720709784646323032303230074869 - 7454657374080553696465730B044C656674055269676874000A53697A652E57 - 696474680500000000000000A001400B53697A652E4865696768740500000000 - 0000009506401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F72070978464631353135313500000A5452656374616E676C - 6500095374796C654E616D65060A52656374616E676C653105416C69676E070A - 4D6F7374426F74746F6D13456E61626C6544726167486967686C69676874080A - 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A50 - 6F736974696F6E2E5905000000000000009506400553696465730B06426F7474 - 6F6D055269676874000A53697A652E57696474680500000000000000A001400B - 53697A652E4865696768740500000000000000A001401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 313531350007544C61796F757400095374796C654E616D6506074C61796F7574 - 3305416C69676E07084D6F73744C6566740A53697A652E576964746805000000 - 0000000080FF3F0B53697A652E4865696768740500000000000000A001401453 - 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 - 00095374796C654E616D65060A52656374616E676C653105416C69676E070354 - 6F700A46696C6C2E436F6C6F7207097846463135313531350748697454657374 - 080A53697A652E5769647468050000000000000080FF3F0B53697A652E486569 - 676874050000000000000080FF3F1453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000000A54526563 - 74616E676C650005416C69676E07074D6F7374546F700A46696C6C2E436F6C6F - 720709784646323032303230064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000056D5AF07400B53697A652E48656967687405 - 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F75 - 7400095374796C654E616D65060763617074696F6E05416C69676E0708436F6E - 74656E7473064C6F636B6564090748697454657374090A53697A652E57696474 - 6805000000000056D5AF07400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C7408000007544C6179 - 6F75740005416C69676E0706436C69656E74064C6F636B6564090C4D61726769 - 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 - FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A - 652E576964746805000000000056D5AE07400B53697A652E4865696768740500 - 000000000000B803401453697A652E506C6174666F726D44656661756C740800 - 07544C61796F75740005416C69676E07044C656674064C6F636B6564090A5369 - 7A652E576964746805000000000000009002400B53697A652E48656967687405 - 00000000000000B803401453697A652E506C6174666F726D44656661756C7408 - 000007544C61796F757400095374796C654E616D65060773797362746E730541 - 6C69676E0706436C69656E74064C6F636B6564090A53697A652E576964746805 - 00000000005655AA07400B53697A652E4865696768740500000000000000B803 - 401453697A652E506C6174666F726D44656661756C7408000C54537065656442 - 7574746F6E00095374796C654E616D650605636C6F736505416C69676E070552 - 69676874064C6F636B6564090A506F736974696F6E2E5805000000000056D59D - 07400A53697A652E57696474680500000000000000C803400B53697A652E4865 - 696768740500000000000000B803401453697A652E506C6174666F726D446566 - 61756C74080B5374796C654C6F6F6B75700610636C6F7365627574746F6E7374 - 796C65000005545465787400095374796C654E616D6506057469746C6505416C - 69676E0706436C69656E74064C6F636B6564090748697454657374080A53697A - 652E576964746805000000000056D59D07400B53697A652E4865696768740500 - 000000000000B803401453697A652E506C6174666F726D44656661756C740804 - 5465787406055469746C65165465787453657474696E67732E466F6E74436F6C - 6F720708636C615768697465000000000007544C61796F757400095374796C65 - 4E616D650606636C69656E7405416C69676E0706436C69656E74064C6F636B65 - 64090748697454657374090A53697A652E576964746805000000000056D5AA07 - 400B53697A652E48656967687405000000000000009506401453697A652E506C - 6174666F726D44656661756C7408000007544C61796F757400095374796C654E - 616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F636B6564 - 090A506F736974696F6E2E580500000000000000A001400A506F736974696F6E - 2E590500000000000000AE06400A53697A652E576964746805000000000056D5 - AA07400B53697A652E4865696768740500000000000000A001401453697A652E - 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 - 796C654E616D6506047265637405416C69676E0706426F74746F6D0A46696C6C - 2E436F6C6F7207097846463230323032300553696465730B03546F7006426F74 - 746F6D000A53697A652E576964746805000000000056D5AA07400B53697A652E - 4865696768740500000000000000A001401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 0000005450463007544C61796F757400095374796C654E616D65061072616469 - 6F627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E - 57696474680500000000000000F205400B53697A652E48656967687405000000 - 00000000A803401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F72646572022E0007544C61796F75740005416C6967 - 6E07044C6566740A53697A652E57696474680500000000000000A803400B5369 - 7A652E4865696768740500000000000000A803401453697A652E506C6174666F - 726D44656661756C7408000854456C6C6970736500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E070643656E7465720A46696C6C2E43 - 6F6C6F720709784646323032303230064C6F636B656409074869745465737408 - 0A53697A652E57696474680500000000000000F002400B53697A652E48656967 - 68740500000000000000F002401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F720709784646313531353135000854456C - 6C6970736500095374796C654E616D650609636865636B6D61726B05416C6967 - 6E0706436C69656E740A46696C6C2E436F6C6F72070978464632413832453206 - 4C6F636B656409074869745465737408074F7061636974790500000000000000 - 0000000C4D617267696E732E4C65667405000000000000008000400B4D617267 - 696E732E546F7005000000000000008000400D4D617267696E732E5269676874 - 05000000000000008000400E4D617267696E732E426F74746F6D050000000000 - 00008000400A53697A652E57696474680500000000000000B002400B53697A65 - 2E4865696768740500000000000000B002401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F - 6174416E696D6174696F6E00095374796C654E616D65061A6F70616369747943 - 6865636B6D61726B416E696D6174696F6E31084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A537461 - 727456616C756505000000000000000000000953746F7056616C756505000000 - 0000000080FF3F0754726967676572060E4973436865636B65643D747275650E - 54726967676572496E7665727365060F4973436865636B65643D66616C736500 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061A72 - 6164696F627574746F6E436F6C6F72416E696D6174696F6E3108447572617469 - 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 30323032300953746F7056616C75650709784646343034303430075472696767 - 6572061049734D6F7573654F7665723D747275650E54726967676572496E7665 - 727365061149734D6F7573654F7665723D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 - 696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0C5072 - 6F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172745661 - 6C756507097846463135313531350953746F7056616C75650709784646324138 - 3245320754726967676572060E4973436865636B65643D747275650E54726967 - 676572496E7665727365060F4973436865636B65643D66616C73650000000005 - 545465787400095374796C654E616D6506047465787405416C69676E0706436C - 69656E74064C6F636B6564090748697454657374080A53697A652E5769647468 - 0500000000000000C805400B53697A652E4865696768740500000000000000A8 - 03401453697A652E506C6174666F726D44656661756C74080454657874060454 - 657874165465787453657474696E67732E466F6E74436F6C6F720708636C6157 - 686974650000005450463007544C61796F757400095374796C654E616D650618 - 756C63656E746572726164696F627574746F6E7374796C6505416C69676E0706 - 43656E7465720A53697A652E57696474680500000000005655FB05400B53697A - 652E4865696768740500000000000000A004401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508085461624F726465720230000754 - 4C61796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E59 - 05000000000000008804400A53697A652E57696474680500000000005655FB05 - 400B53697A652E4865696768740500000000000000C001401453697A652E506C - 6174666F726D44656661756C7408000A5452656374616E676C6500095374796C - 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 - 7307436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A46 + 09784646313531353135000000005450463007544C61796F757400095374796C + 654E616D65060F746F6F6C77696E646F777374796C6505416C69676E07064365 + 6E7465720A53697A652E576964746805000000000056D5AF07400B53697A652E + 4865696768740500000000000000B306401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F72646572022C000A545265 + 6374616E676C6500095374796C654E616D6506046D61736B05416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F7207097846463130313031300A53 + 697A652E576964746805000000000056D5AF07400B53697A652E486569676874 + 0500000000000000B306401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650756697369626C650800000754 + 4C61796F757400095374796C654E616D6506046C65667405416C69676E07084D + 6F73744C656674064C6F636B6564090A506F736974696F6E2E59050000000000 + 0000C803400A53697A652E57696474680500000000000000A001400B53697A65 + 2E48656967687405000000000000009A06401453697A652E506C6174666F726D + 44656661756C7408000A5452656374616E676C650005416C69676E07084D6F73 + 744C6566740A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080553696465730B044C656674055269676874000A53697A652E576964 + 74680500000000000000A001400B53697A652E48656967687405000000000000 + 009506401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F72070978464631353135313500000A5452656374616E676C6500 + 095374796C654E616D65060A52656374616E676C653105416C69676E070A4D6F + 7374426F74746F6D13456E61626C6544726167486967686C69676874080A4669 + 6C6C2E436F6C6F7207097846463230323032300748697454657374080A506F73 + 6974696F6E2E5905000000000000009506400553696465730B044C6566740642 + 6F74746F6D000A53697A652E57696474680500000000000000A001400B53697A + 652E4865696768740500000000000000A001401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 350007544C61796F757400095374796C654E616D6506074C61796F7574330541 + 6C69676E07094D6F737452696768740A506F736974696F6E2E58050000000000 + 00008001400A53697A652E5769647468050000000000000080FF3F0B53697A65 + 2E4865696768740500000000000000A001401453697A652E506C6174666F726D + 44656661756C7408000A5452656374616E676C6500095374796C654E616D6506 + 0A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F6C6F + 7207097846463135313531350748697454657374080A53697A652E5769647468 + 050000000000000080FF3F0B53697A652E486569676874050000000000000080 + FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000000000007544C61796F757400095374796C654E61 + 6D650605726967687405416C69676E07094D6F73745269676874064C6F636B65 + 64090A506F736974696F6E2E580500000000005655AD07400A506F736974696F + 6E2E590500000000000000C803400A53697A652E576964746805000000000000 + 00A001400B53697A652E48656967687405000000000000009A06401453697A65 + 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000541 + 6C69676E07094D6F737452696768740A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080553696465730B044C656674055269676874 + 000A53697A652E57696474680500000000000000A001400B53697A652E486569 + 67687405000000000000009506401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313500000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 + 05416C69676E070A4D6F7374426F74746F6D13456E61626C6544726167486967 + 686C69676874080A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080A506F736974696F6E2E59050000000000000095064005536964 + 65730B06426F74746F6D055269676874000A53697A652E576964746805000000 + 00000000A001400B53697A652E4865696768740500000000000000A001401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350007544C61796F757400095374796C654E616D65 + 06074C61796F75743305416C69676E07084D6F73744C6566740A53697A652E57 + 69647468050000000000000080FF3F0B53697A652E4865696768740500000000 + 000000A001401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 + 416C69676E0703546F700A46696C6C2E436F6C6F720709784646313531353135 + 0748697454657374080A53697A652E5769647468050000000000000080FF3F0B + 53697A652E486569676874050000000000000080FF3F1453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0000000A5452656374616E676C650005416C69676E07074D6F7374546F700A46 696C6C2E436F6C6F720709784646323032303230064C6F636B65640907486974 - 54657374080A53697A652E57696474680500000000005655FB05400B53697A65 - 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 54657374080A53697A652E576964746805000000000056D5AF07400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506216261 - 636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E3108 - 4475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646343034303430 - 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 - 6572496E7665727365061149734D6F7573654F7665723D66616C736500000A54 - 52656374616E676C6500095374796C654E616D650609636865636B6D61726B05 - 416C69676E0708436F6E74656E747307436F726E6572730B07546F704C656674 - 0A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978464632413832 - 4532064C6F636B656409074869745465737408074F7061636974790500000000 - 0000000000000C4D617267696E732E4C656674050000000000000080FF3F0B4D - 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 - 000000000080FF3F0A53697A652E57696474680500000000005655F705400B53 - 697A652E48656967687405000000000000008001401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 - 466C6F6174416E696D6174696F6E00095374796C654E616D65061A636865636B - 6D61726B4F706163697479416E696D6174696F6E31084475726174696F6E0500 - 00000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A - 537461727456616C756505000000000000000000000953746F7056616C756505 - 0000000000000080FF3F0754726967676572060E4973436865636B65643D7472 - 75650E54726967676572496E7665727365060F4973436865636B65643D66616C - 7365000000000005545465787400095374796C654E616D650604746578740541 + 0007544C61796F757400095374796C654E616D65060763617074696F6E05416C + 69676E0708436F6E74656E7473064C6F636B6564090748697454657374090A53 + 697A652E576964746805000000000056D5AF07400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 08000007544C61796F75740005416C69676E0706436C69656E74064C6F636B65 + 64090C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A53697A652E576964746805000000000056D5AE07400B53697A652E + 4865696768740500000000000000B803401453697A652E506C6174666F726D44 + 656661756C74080007544C61796F75740005416C69676E07044C656674064C6F + 636B6564090A53697A652E576964746805000000000000009002400B53697A65 + 2E4865696768740500000000000000B803401453697A652E506C6174666F726D + 44656661756C7408000007544C61796F757400095374796C654E616D65060773 + 797362746E7305416C69676E0706436C69656E74064C6F636B6564090A53697A + 652E57696474680500000000005655AA07400B53697A652E4865696768740500 + 000000000000B803401453697A652E506C6174666F726D44656661756C740800 + 0C545370656564427574746F6E00095374796C654E616D650605636C6F736505 + 416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E5805 + 000000000056D59D07400A53697A652E57696474680500000000000000C80340 + 0B53697A652E4865696768740500000000000000B803401453697A652E506C61 + 74666F726D44656661756C74080B5374796C654C6F6F6B75700610636C6F7365 + 627574746F6E7374796C65000005545465787400095374796C654E616D650605 + 7469746C6505416C69676E0706436C69656E74064C6F636B6564090748697454 + 657374080A53697A652E576964746805000000000056D59D07400B53697A652E + 4865696768740500000000000000B803401453697A652E506C6174666F726D44 + 656661756C7408045465787406055469746C65165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C615768697465000000000007544C61796F75 + 7400095374796C654E616D650606636C69656E7405416C69676E0706436C6965 + 6E74064C6F636B6564090748697454657374090A53697A652E57696474680500 + 0000000056D5AA07400B53697A652E4865696768740500000000000000950640 + 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 + 00095374796C654E616D650606626F74746F6D05416C69676E0706426F74746F + 6D064C6F636B6564090A506F736974696F6E2E580500000000000000A001400A + 506F736974696F6E2E590500000000000000AE06400A53697A652E5769647468 + 05000000000056D5AA07400B53697A652E4865696768740500000000000000A0 + 01401453697A652E506C6174666F726D44656661756C7408000A545265637461 + 6E676C6500095374796C654E616D6506047265637405416C69676E0706426F74 + 746F6D0A46696C6C2E436F6C6F7207097846463230323032300553696465730B + 03546F7006426F74746F6D000A53697A652E576964746805000000000056D5AA + 07400B53697A652E4865696768740500000000000000A001401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000000005450463007544C61796F757400095374796C654E61 + 6D650610726164696F627574746F6E7374796C6505416C69676E070643656E74 + 65720A53697A652E57696474680500000000000000F205400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508085461624F72646572022E0007544C61796F + 75740005416C69676E07044C6566740A53697A652E5769647468050000000000 + 0000A803400B53697A652E4865696768740500000000000000A803401453697A + 652E506C6174666F726D44656661756C7408000854456C6C6970736500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E070643656E7465 + 720A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000000000F002400B53 + 697A652E4865696768740500000000000000F002401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 353135000854456C6C6970736500095374796C654E616D650609636865636B6D + 61726B05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846 + 46324138324532064C6F636B656409074869745465737408074F706163697479 + 05000000000000000000000C4D617267696E732E4C6566740500000000000000 + 8000400B4D617267696E732E546F7005000000000000008000400D4D61726769 + 6E732E526967687405000000000000008000400E4D617267696E732E426F7474 + 6F6D05000000000000008000400A53697A652E57696474680500000000000000 + B002400B53697A652E4865696768740500000000000000B002401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A + 6F706163697479436865636B6D61726B416E696D6174696F6E31084475726174 + 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061 + 636974790A537461727456616C756505000000000000000000000953746F7056 + 616C7565050000000000000080FF3F0754726967676572060E4973436865636B + 65643D747275650E54726967676572496E7665727365060F4973436865636B65 + 643D66616C73650000000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D65061A726164696F627574746F6E436F6C6F72416E696D6174696F6E + 31084475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572061049734D6F7573654F7665723D747275650E547269 + 67676572496E7665727365061149734D6F7573654F7665723D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E315374796C65084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 + 0A537461727456616C756507097846463135313531350953746F7056616C7565 + 07097846463241383245320754726967676572060E4973436865636B65643D74 + 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 + 6C73650000000005545465787400095374796C654E616D650604746578740541 6C69676E0706436C69656E74064C6F636B6564090748697454657374080A5369 - 7A652E57696474680500000000005655FB05400B53697A652E48656967687405 - 000000000000008804401453697A652E506C6174666F726D44656661756C7408 + 7A652E57696474680500000000000000C805400B53697A652E48656967687405 + 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 0454657874060454657874165465787453657474696E67732E466F6E74436F6C 6F720708636C6157686974650000005450463007544C61796F75740009537479 - 6C654E616D650616756C6C656674726164696F627574746F6E7374796C650541 - 6C69676E070643656E7465720A53697A652E57696474680500000000005655FB - 05400B53697A652E4865696768740500000000000000A004401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 7202320007544C61796F75740005416C69676E0706426F74746F6D0A506F7369 - 74696F6E2E5905000000000000008804400A53697A652E576964746805000000 - 00005655FB05400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 - 6F6E74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C - 656674000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 - 64090748697454657374080A53697A652E57696474680500000000005655FB05 - 400B53697A652E4865696768740500000000000000C001401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 313531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E696D61 - 74696F6E31084475726174696F6E050000000000CDCCCCFB3F07496E76657273 - 65090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 - 7456616C756507097846463230323032300953746F7056616C75650709784646 - 3430343034300754726967676572061049734D6F7573654F7665723D74727565 - 0E54726967676572496E7665727365061149734D6F7573654F7665723D66616C - 736500000A5452656374616E676C6500095374796C654E616D65060963686563 - 6B6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B0754 - 6F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978 - 4646324138324532064C6F636B656409074869745465737408074F7061636974 - 7905000000000000000000000C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000056 - 55F705400B53697A652E48656967687405000000000000008001401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D6506 - 1A636865636B6D61726B4F706163697479416E696D6174696F6E310844757261 - 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F70 - 61636974790A537461727456616C756505000000000000000000000953746F70 - 56616C7565050000000000000080FF3F0754726967676572060E497343686563 - 6B65643D747275650E54726967676572496E7665727365060F4973436865636B - 65643D66616C7365000000000005545465787400095374796C654E616D650604 - 7465787405416C69676E0706436C69656E74064C6F636B656409074869745465 - 7374080A53697A652E57696474680500000000005655FB05400B53697A652E48 - 656967687405000000000000008804401453697A652E506C6174666F726D4465 - 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 - 6C6157686974650000005450463007544C61796F757400095374796C654E616D - 650617756C7269676874726164696F627574746F6E7374796C6505416C69676E - 070643656E7465720A53697A652E57696474680500000000005655FB05400B53 - 697A652E4865696768740500000000000000A004401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572023400 - 07544C61796F75740005416C69676E0706426F74746F6D0A506F736974696F6E - 2E5905000000000000008804400A53697A652E57696474680500000000005655 + 6C654E616D650618756C63656E746572726164696F627574746F6E7374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000056 + 55FB05400B53697A652E4865696768740500000000000000A004401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 + 64657202300007544C61796F75740005416C69676E0706426F74746F6D0A506F + 736974696F6E2E5905000000000000008804400A53697A652E57696474680500 + 000000005655FB05400B53697A652E4865696768740500000000000000C00140 + 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 08436F6E74656E747307436F726E6572730B07546F704C6566740A426F74746F + 6D4C656674000A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000005655 FB05400B53697A652E4865696768740500000000000000C001401453697A652E - 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E747307436F726E6572730B08546F7052696768740B426F74746F6D52696768 - 74000A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 - 0748697454657374080A53697A652E57696474680500000000005655FB05400B - 53697A652E4865696768740500000000000000C001401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 31353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 06216261636B67726F756E64556C427574746F6E436F6C6F72416E696D617469 - 6F6E31084475726174696F6E050000000000CDCCCCFB3F07496E766572736509 - 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 - 616C756507097846463230323032300953746F7056616C756507097846463430 - 343034300754726967676572061049734D6F7573654F7665723D747275650E54 - 726967676572496E7665727365061149734D6F7573654F7665723D66616C7365 - 00000A5452656374616E676C6500095374796C654E616D650609636865636B6D - 61726B05416C69676E0708436F6E74656E747307436F726E6572730B08546F70 - 52696768740B426F74746F6D5269676874000A46696C6C2E436F6C6F72070978 - 4646324138324532064C6F636B656409074869745465737408074F7061636974 - 7905000000000000000000000C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000056 - 55F705400B53697A652E48656967687405000000000000008001401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D6506 - 1A636865636B6D61726B4F706163697479416E696D6174696F6E310844757261 - 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F70 - 61636974790A537461727456616C756505000000000000000000000953746F70 - 56616C7565050000000000000080FF3F0754726967676572060E497343686563 - 6B65643D747275650E54726967676572496E7665727365060F4973436865636B - 65643D66616C7365000000000005545465787400095374796C654E616D650604 - 7465787405416C69676E0706436C69656E74064C6F636B656409074869745465 - 7374080A53697A652E57696474680500000000005655FB05400B53697A652E48 - 656967687405000000000000008804401453697A652E506C6174666F726D4465 - 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 - 6C6157686974650000005450463007544C61796F757400095374796C654E616D - 65060E636F6D626F656469747374796C6505416C69676E070643656E7465720A - 53697A652E57696474680500000000000000C805400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508085461624F726465720239000C5442727573684F62 - 6A65637400095374796C654E616D65060A666F726567726F756E6400000B5446 - 6F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E742E - 53697A650500000000000000D00240000007544C61796F757400095374796C65 - 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 - 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C7408000A5452656374616E676C6500095374796C654E616D65060A52656374 - 616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080A53697A652E57696474680500 - 000000000000C805400B53697A652E4865696768740500000000000000C80340 + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 4646313531353135000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E69 + 6D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07496E7665 + 727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463230323032300953746F7056616C7565070978 + 46463430343034300754726967676572061049734D6F7573654F7665723D7472 + 75650E54726967676572496E7665727365061149734D6F7573654F7665723D66 + 616C736500000A5452656374616E676C6500095374796C654E616D6506096368 + 65636B6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B + 07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207 + 09784646324138324532064C6F636B656409074869745465737408074F706163 + 69747905000000000000000000000C4D617267696E732E4C6566740500000000 + 00000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61 + 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 + 6F74746F6D050000000000000080FF3F0A53697A652E57696474680500000000 + 005655F705400B53697A652E4865696768740500000000000000800140145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D + 65061A636865636B6D61726B4F706163697479416E696D6174696F6E31084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D650607 + 4F7061636974790A537461727456616C75650500000000000000000000095374 + 6F7056616C7565050000000000000080FF3F0754726967676572060E49734368 + 65636B65643D747275650E54726967676572496E7665727365060F4973436865 + 636B65643D66616C7365000000000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 + 54657374080A53697A652E57696474680500000000005655FB05400B53697A65 + 2E48656967687405000000000000008804401453697A652E506C6174666F726D + 44656661756C74080454657874060454657874165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D650616756C6C656674726164696F627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000005655FB05400B53697A652E4865696768740500000000000000A004 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F7264657202320007544C61796F75740005416C69676E0706426F74 + 746F6D0A506F736974696F6E2E5905000000000000008804400A53697A652E57 + 696474680500000000005655FB05400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0708436F6E74656E747307436F726E6572730B07546F704C656674 + 0A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978464632303230 + 3230064C6F636B6564090748697454657374080A53697A652E57696474680500 + 000000005655FB05400B53697A652E4865696768740500000000000000C00140 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F720709784646323032303230000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 - 084475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C5072 - 6F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172745661 - 6C756507097846463230323032300953746F7056616C75650709784646343034 - 3034300754726967676572062049734D6F7573654F7665723D747275653B4973 - 466F63757365643D66616C73650E54726967676572496E766572736506214973 - 4D6F7573654F7665723D66616C73653B4973466F63757365643D66616C736500 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F - 6C6F72416E696D6174696F6E325374796C65084475726174696F6E0500000000 - 00CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65060C5374 - 726F6B652E436F6C6F720A537461727456616C75650709784646343034303430 - 0953746F7056616C756507097846463241383245320754726967676572061F49 - 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 - 726967676572496E7665727365062049734D6F7573654F7665723D747275653B - 4973466F63757365643D66616C7365000007544C61796F757400095374796C65 - 4E616D6506056172726F7705416C69676E070846697452696768740B4D617267 - 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 - 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 - 000080FF3F0A506F736974696F6E2E580500000000005ED99705400A506F7369 - 74696F6E2E59050000000000000080FF3F0A53697A652E576964746805000000 - 0000889AB803400B53697A652E4865696768740500000000000000B803401453 - 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 - 00095374796C654E616D65060A52656374616E676C653105416C69676E070843 - 6F6E74656E74730A46696C6C2E436F6C6F720709784646333033303330074869 - 7454657374080A53697A652E5769647468050000000000889AB803400B53697A - 652E4865696768740500000000000000B803401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E - 696D6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB + 6C6F720709784646313531353135000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D6506216261636B67726F756E64556C427574746F6E436F + 6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB 3F07496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463330333033300953746F705661 - 6C756507097846463430343034300754726967676572062049734D6F7573654F - 7665723D747275653B4973466F63757365643D66616C73650E54726967676572 - 496E7665727365062149734D6F7573654F7665723D66616C73653B4973466F63 - 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65084475 - 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646343034303430 - 0953746F7056616C756507097846463137353739430754726967676572061F49 - 73466F63757365643D747275653B49734D6F7573654F7665723D747275650000 - 0007544C61796F757400095374796C654E616D6506074C61796F75743105416C - 69676E070643656E7465720C4D617267696E732E4C6566740500000000000000 - 80FF3F0A53697A652E57696474680500000000000000A002400B53697A652E48 - 65696768740500000000000000C001401453697A652E506C6174666F726D4465 - 6661756C74080005545061746800095374796C654E616D650605506174683105 - 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 - 000000000000C8420000C84201000000000096430000C8420100000000004843 - 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080A53697A652E576964746805000000000000 - 00A002400B53697A652E4865696768740500000000000000C001401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E650000000000000C5442727573684F626A65637400095374796C654E616D - 65060973656C656374696F6E0B42727573682E436F6C6F720709783936324138 - 324532000007544C61796F757400095374796C654E616D650607636F6E74656E - 7405416C69676E0706436C69656E740C4D617267696E732E4C65667405000000 - 000000008000400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E52696768740500000000000000F003400E4D617267696E732E - 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 000000008805400B53697A652E4865696768740500000000000000A803401453 - 697A652E506C6174666F726D44656661756C74080000005450463007544C6179 - 6F757400095374796C654E616D650611616E69696E64696361746F727374796C - 6505416C69676E070643656E7465720756697369626C65080004544172630009 - 5374796C654E616D65060341726305416C69676E0708436F6E74656E74730748 - 697454657374080D526F746174696F6E416E676C650500000000000000B40740 - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F720708636C615768697465105374726F6B - 652E546869636B6E657373050000000000000080004008456E64416E676C6505 - 00000000000000B405C0000F54466C6F6174416E696D6174696F6E0009537479 - 6C654E616D650603616E6907456E61626C656409084475726174696F6E050000 - 000000000080FF3F044C6F6F70090C50726F70657274794E616D65060D526F74 - 6174696F6E416E676C650A537461727456616C75650500000000000000000000 - 0953746F7056616C75650500000000000000B407400754726967676572060E49 - 7356697369626C653D74727565000000005450463007544C61796F7574000953 - 74796C654E616D650613657870616E646572627574746F6E7374796C6505416C - 69676E070643656E7465720B4D617267696E732E546F70050000000000000080 - FF3F0A53697A652E57696474680500000000000000B003400B53697A652E4865 - 696768740500000000000000B003401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F72646572023E00055450617468 - 00095374796C654E616D650605506174683105416C69676E070643656E746572 - 09446174612E506174680A3400000004000000000000000000C8420000C84201 - 000000000096430000C842010000000000484300009643030000000000C84200 - 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 - 080D526F746174696F6E416E676C650500000000000000B405400A53697A652E - 57696474680500000000000000A002400B53697A652E48656967687405000000 - 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E - 00095374796C654E616D650614466C6F6174416E696D6174696F6E315374796C - 65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174 - 696F6E070843697263756C61720C50726F70657274794E616D65060D526F7461 - 74696F6E416E676C650A537461727456616C75650500000000000000B4054009 - 53746F7056616C756505000000000000000000000754726967676572060F4973 - 457870616E6465643D747275650E54726967676572496E766572736506104973 - 457870616E6465643D66616C7365000000005450463007544C61796F75740009 - 5374796C654E616D650615657870616E646572636865636B626F787374796C65 - 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 008406400B53697A652E48656967687405000000000000008404401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 - 64657202420007544C61796F75740005416C69676E07044C6566740A53697A65 - 2E57696474680500000000000000C003400B53697A652E486569676874050000 - 00000000008404401453697A652E506C6174666F726D44656661756C74080005 - 54506174680005416C69676E0706436C69656E7409446174612E506174680AD8 - 0100002700000000000000FEC8BA4402E79244020000002592AD4402E7924402 - 0000006D5BA544FEB09E44020000006D5BA544FEB09E440200000093A4A4446A - 0C9F44020000004A80AC44FC79AA4402000000046EBA44FC79AA44020000004A - 00C844FC79AA44020000000080CF44FEB09E44020000000080CF44FEB09E4402 - 0000000080CF44FEB09E44020000004C5BC84402E7924402000000FEC8BA4402 - E7924400000000FE88BA44FE30974402000000B876BF44FE3097440200000002 - 77C344EEA09A44020000000277C34404DE9E44020000000277C344121BA34402 - 000000B876BF44008CA64402000000FE88BA44008CA644020000004C9BB54400 - 8CA64402000000009CB144121BA34402000000009CB14404DE9E440200000000 - 9CB144EEA09A44020000004C9BB544FE30974402000000FE88BA44FE30974400 - 0000000080BA44045E9B4402000000146EB844045E9B440200000000C0B64454 - F79C440200000000C0B64400F09E440200000000C0B644ACE8A0440200000014 - 6EB844FC81A244020000000080BA44FC81A24402000000EC91BC44FC81A24402 - 0000000040BE44ACE8A044020000000040BE4400F09E44020000000040BE4454 - F79C4402000000EC91BC44045E9B44020000000080BA44045E9B440A46696C6C - 2E436F6C6F7207097836303030303030300748697454657374080C4D61726769 - 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 - 0000000000008000400D4D617267696E732E5269676874050000000000000080 - 00400E4D617267696E732E426F74746F6D05000000000000008000400A53697A - 652E57696474680500000000000000A003400B53697A652E4865696768740500 - 000000000000E803401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400 - 0F54436F6C6F72416E696D6174696F6E00084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097836303030303030300953746F7056616C75650708 - 636C61426C61636B0754726967676572060E4973436865636B65643D74727565 - 00000F54436F6C6F72416E696D6174696F6E00084475726174696F6E05000000 - 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C75650708636C61426C61636B0953746F7056616C756507 - 097836303030303030300754726967676572060F4973436865636B65643D6661 - 6C73650000000005545465787400095374796C654E616D650604746578740541 - 6C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D61 - 7267696E732E4C65667405000000000000008002400B4D617267696E732E546F - 7005000000000000008000400D4D617267696E732E5269676874050000000000 - 000080FF3F0A53697A652E57696474680500000000000000C605400B53697A65 - 2E4865696768740500000000000000F803401453697A652E506C6174666F726D - 44656661756C7408165465787453657474696E67732E466F6E74436F6C6F7207 - 09784646454545454545165465787453657474696E67732E486F727A416C6967 - 6E07074C656164696E670000005450463007544C61796F757400095374796C65 - 4E616D65060A70616E656C7374796C6505416C69676E070643656E7465720A53 - 697A652E57696474680500000000000000C006400B53697A652E486569676874 - 0500000000000000A406401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 - 6C6C2E436F6C6F7207097846463230323032300A53697A652E57696474680500 - 000000000000C006400B53697A652E4865696768740500000000000000A40640 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E650000005450463007544C61796F757400095374796C654E61 - 6D65061970726F67726573736261726D696E696572726F727374796C6505416C - 69676E070643656E7465720A53697A652E576964746805000000000033338505 + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572061049734D6F7573654F + 7665723D747275650E54726967676572496E7665727365061149734D6F757365 + 4F7665723D66616C736500000A5452656374616E676C6500095374796C654E61 + 6D650609636865636B6D61726B05416C69676E0708436F6E74656E747307436F + 726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E + 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 + 08074F70616369747905000000000000000000000C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 680500000000005655F705400B53697A652E4865696768740500000000000000 + 8001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374 + 796C654E616D65061A636865636B6D61726B4F706163697479416E696D617469 + 6F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 + 4E616D6506074F7061636974790A537461727456616C75650500000000000000 + 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 + 060E4973436865636B65643D747275650E54726967676572496E766572736506 + 0F4973436865636B65643D66616C736500000000000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 + 64090748697454657374080A53697A652E57696474680500000000005655FB05 + 400B53697A652E48656967687405000000000000008804401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D650617756C7269676874726164696F627574746F6E737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000A00440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 + 4F7264657202340007544C61796F75740005416C69676E0706426F74746F6D0A + 506F736974696F6E2E5905000000000000008804400A53697A652E5769647468 + 0500000000005655FB05400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C7408000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E747307436F726E6572730B08546F7052696768740B426F + 74746F6D5269676874000A46696C6C2E436F6C6F720709784646323032303230 + 064C6F636B6564090748697454657374080A53697A652E576964746805000000 + 00005655FB05400B53697A652E4865696768740500000000000000C001401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 720709784646313531353135000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F + 72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07 + 496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463230323032300953746F7056616C75 + 6507097846463430343034300754726967676572061049734D6F7573654F7665 + 723D747275650E54726967676572496E7665727365061149734D6F7573654F76 + 65723D66616C736500000A5452656374616E676C6500095374796C654E616D65 + 0609636865636B6D61726B05416C69676E0708436F6E74656E747307436F726E + 6572730B08546F7052696768740B426F74746F6D5269676874000A46696C6C2E + 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 + 08074F70616369747905000000000000000000000C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 680500000000005655F705400B53697A652E4865696768740500000000000000 + 8001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374 + 796C654E616D65061A636865636B6D61726B4F706163697479416E696D617469 + 6F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 + 4E616D6506074F7061636974790A537461727456616C75650500000000000000 + 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 + 060E4973436865636B65643D747275650E54726967676572496E766572736506 + 0F4973436865636B65643D66616C736500000000000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 + 64090748697454657374080A53697A652E57696474680500000000005655FB05 + 400B53697A652E48656967687405000000000000008804401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D65060E636F6D626F656469747374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F726465720239000C + 5442727573684F626A65637400095374796C654E616D65060A666F726567726F + 756E6400000B54466F6E744F626A65637400095374796C654E616D650604666F + 6E7409466F6E742E53697A650500000000000000D00240000007544C61796F75 + 7400095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 + 436F6E74656E74730A53697A652E57696474680500000000000000C805400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653105416C69676E0706436C69656E740A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 + 2E57696474680500000000000000C805400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F720709784646323032303230000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F07496E76 + 65727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 + 0A537461727456616C756507097846463230323032300953746F7056616C7565 + 07097846463430343034300754726967676572062049734D6F7573654F766572 + 3D747275653B4973466F63757365643D66616C73650E54726967676572496E76 + 65727365062149734D6F7573654F7665723D66616C73653B4973466F63757365 + 643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650614436F6C6F72416E696D6174696F6E325374796C65084475726174 + 696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065727479 + 4E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565070978 + 46463430343034300953746F7056616C75650709784646324138324532075472 + 6967676572061F49734D6F7573654F7665723D747275653B4973466F63757365 + 643D747275650E54726967676572496E7665727365062049734D6F7573654F76 + 65723D747275653B4973466F63757365643D66616C7365000007544C61796F75 + 7400095374796C654E616D6506056172726F7705416C69676E07084669745269 + 6768740B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 + 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 + 6F6D050000000000000080FF3F0A506F736974696F6E2E580500000000005ED9 + 9705400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E57 + 69647468050000000000889AB803400B53697A652E4865696768740500000000 + 000000B803401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464633 + 30333033300748697454657374080A53697A652E576964746805000000000088 + 9AB803400B53697A652E4865696768740500000000000000B803401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 14436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E0500 + 00000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463330333033 + 300953746F7056616C7565070978464634303430343007547269676765720620 + 49734D6F7573654F7665723D747275653B4973466F63757365643D66616C7365 + 0E54726967676572496E7665727365062149734D6F7573654F7665723D66616C + 73653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E32 + 5374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463430343034300953746F7056616C75650709784646313735373943075472 + 6967676572061F4973466F63757365643D747275653B49734D6F7573654F7665 + 723D7472756500000007544C61796F757400095374796C654E616D6506074C61 + 796F75743105416C69676E070643656E7465720C4D617267696E732E4C656674 + 050000000000000080FF3F0A53697A652E57696474680500000000000000A002 + 400B53697A652E4865696768740500000000000000C001401453697A652E506C + 6174666F726D44656661756C74080005545061746800095374796C654E616D65 + 0605506174683105416C69676E0706436C69656E7409446174612E506174680A + 3400000004000000000000000000C8420000C84201000000000096430000C842 + 010000000000484300009643030000000000C8420000C8420A46696C6C2E436F + 6C6F720708636C6157686974650748697454657374080A53697A652E57696474 + 680500000000000000A002400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E650000000000000C5442727573684F626A6563740009 + 5374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72 + 0709783936324138324532000007544C61796F757400095374796C654E616D65 + 0607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E + 4C65667405000000000000008000400B4D617267696E732E546F700500000000 + 0000008000400D4D617267696E732E52696768740500000000000000F003400E + 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 + 6964746805000000000000008805400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C740800000054 + 50463007544C61796F757400095374796C654E616D650611616E69696E646963 + 61746F727374796C6505416C69676E070643656E7465720756697369626C6508 + 00045441726300095374796C654E616D65060341726305416C69676E0708436F + 6E74656E74730748697454657374080D526F746174696F6E416E676C65050000 + 0000000000B407400A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720708636C61576869 + 7465105374726F6B652E546869636B6E65737305000000000000008000400845 + 6E64416E676C650500000000000000B405C0000F54466C6F6174416E696D6174 + 696F6E00095374796C654E616D650603616E6907456E61626C65640908447572 + 6174696F6E050000000000000080FF3F044C6F6F70090C50726F70657274794E + 616D65060D526F746174696F6E416E676C650A537461727456616C7565050000 + 00000000000000000953746F7056616C75650500000000000000B40740075472 + 6967676572060E497356697369626C653D74727565000000005450463007544C + 61796F757400095374796C654E616D650613657870616E646572627574746F6E + 7374796C6505416C69676E070643656E7465720B4D617267696E732E546F7005 + 0000000000000080FF3F0A53697A652E57696474680500000000000000B00340 + 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 3E0005545061746800095374796C654E616D650605506174683105416C69676E + 070643656E74657209446174612E506174680A34000000040000000000000000 + 00C8420000C84201000000000096430000C84201000000000048430000964303 + 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080D526F746174696F6E416E676C650500000000000000B4 + 05400A53697A652E57696474680500000000000000A002400B53697A652E4865 + 696768740500000000000000C001401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 + 6E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D6174 + 696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0D496E + 746572706F6C6174696F6E070843697263756C61720C50726F70657274794E61 + 6D65060D526F746174696F6E416E676C650A537461727456616C756505000000 + 00000000B405400953746F7056616C7565050000000000000000000007547269 + 67676572060F4973457870616E6465643D747275650E54726967676572496E76 + 6572736506104973457870616E6465643D66616C736500000000545046300754 + 4C61796F757400095374796C654E616D650615657870616E646572636865636B + 626F787374796C6505416C69676E070643656E7465720A53697A652E57696474 + 6805000000000000008406400B53697A652E4865696768740500000000000000 + 8404401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F7264657202420007544C61796F75740005416C69676E07044C + 6566740A53697A652E57696474680500000000000000C003400B53697A652E48 + 656967687405000000000000008404401453697A652E506C6174666F726D4465 + 6661756C7408000554506174680005416C69676E0706436C69656E7409446174 + 612E506174680AD80100002700000000000000FEC8BA4402E792440200000025 + 92AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FEB09E4402 + 00000093A4A4446A0C9F44020000004A80AC44FC79AA4402000000046EBA44FC + 79AA44020000004A00C844FC79AA44020000000080CF44FEB09E440200000000 + 80CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402E7924402 + 000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B876BF44FE + 309744020000000277C344EEA09A44020000000277C34404DE9E440200000002 + 77C344121BA34402000000B876BF44008CA64402000000FE88BA44008CA64402 + 0000004C9BB544008CA64402000000009CB144121BA34402000000009CB14404 + DE9E4402000000009CB144EEA09A44020000004C9BB544FE30974402000000FE + 88BA44FE309744000000000080BA44045E9B4402000000146EB844045E9B4402 + 00000000C0B64454F79C440200000000C0B64400F09E440200000000C0B644AC + E8A04402000000146EB844FC81A244020000000080BA44FC81A24402000000EC + 91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400F09E4402 + 0000000040BE4454F79C4402000000EC91BC44045E9B44020000000080BA4404 + 5E9B440A46696C6C2E436F6C6F72070978363030303030303007486974546573 + 74080C4D617267696E732E4C65667405000000000000008000400B4D61726769 + 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 + 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 + 008000400A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000E803401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F + 64650703466974000F54436F6C6F72416E696D6174696F6E0008447572617469 + 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097836303030303030300953746F + 7056616C75650708636C61426C61636B0754726967676572060E497343686563 + 6B65643D7472756500000F54436F6C6F72416E696D6174696F6E000844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C75650708636C61426C61636B095374 + 6F7056616C756507097836303030303030300754726967676572060F49734368 + 65636B65643D66616C73650000000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 + 54657374080C4D617267696E732E4C65667405000000000000008002400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 6874050000000000000080FF3F0A53697A652E57696474680500000000000000 + C605400B53697A652E4865696768740500000000000000F803401453697A652E + 506C6174666F726D44656661756C7408165465787453657474696E67732E466F + 6E74436F6C6F720709784646454545454545165465787453657474696E67732E + 486F727A416C69676E07074C656164696E670000005450463007544C61796F75 + 7400095374796C654E616D65060A70616E656C7374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000C006400B53697A + 652E4865696768740500000000000000A406401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A65 + 2E57696474680500000000000000C006400B53697A652E486569676874050000 + 0000000000A406401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 + 095374796C654E616D65061970726F67726573736261726D696E696572726F72 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 0000000033338505400B53697A652E4865696768740500000000009999E10440 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F72646572021B000A5452656374616E676C6500095374796C654E616D + 65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E43 + 6F6C6F720709784646343034303430064C6F636B656409074869745465737408 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000009999E104401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C + 6500095374796C654E616D65060A68696E64696361746F7205416C69676E0704 + 4C6566740A46696C6C2E436F6C6F720709784646453232413241064C6F636B65 + 64090748697454657374080A53697A652E57696474680500000000000000C804 400B53697A652E4865696768740500000000009999E104401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 021B000A5452656374616E676C6500095374796C654E616D6506066874726163 + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0000000A5452656374616E676C6500095374796C654E616D6506067674726163 6B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 46343034303430064C6F636B6564090748697454657374080A53697A652E5769 64746805000000000033338505400B53697A652E486569676874050000000000 9999E104401453697A652E506C6174666F726D44656661756C74080B5374726F 6B652E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C65 - 4E616D65060A68696E64696361746F7205416C69676E07044C6566740A46696C - 6C2E436F6C6F720709784646453232413241064C6F636B656409074869745465 - 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000009999E104401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A54526563 - 74616E676C6500095374796C654E616D65060676747261636B05416C69676E07 - 08436F6E74656E74730A46696C6C2E436F6C6F72070978464634303430343006 - 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 - 0033338505400B53697A652E4865696768740500000000009999E10440145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000A5452656374616E676C6500095374796C654E616D65060A7669 - 6E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F - 720709784646453232413241064C6F636B6564090748697454657374080A506F - 736974696F6E2E5905000000000099998D04400A53697A652E57696474680500 - 0000000033338505400B53697A652E4865696768740500000000000000A80340 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65000000005450463007544C61796F757400095374796C654E - 616D65061470726F67726573736261726D696E697374796C6505416C69676E07 - 0643656E7465720A53697A652E576964746805000000000033338505400B5369 + 4E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46 + 696C6C2E436F6C6F720709784646453232413241064C6F636B65640907486974 + 54657374080A506F736974696F6E2E5905000000000099998D04400A53697A65 + 2E576964746805000000000033338505400B53697A652E486569676874050000 + 0000000000A803401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 + 00095374796C654E616D65061470726F67726573736261726D696E697374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 33338505400B53697A652E4865696768740500000000009999E104401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 726465720219000A5452656374616E676C6500095374796C654E616D65060668 + 747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646343034303430064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000033338505400B53697A652E4865696768740500 + 000000009999E104401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C65000953 + 74796C654E616D65060A68696E64696361746F7205416C69676E07044C656674 + 0A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564090748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 7A652E4865696768740500000000009999E104401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F726465720219000A - 5452656374616E676C6500095374796C654E616D65060668747261636B05416C + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A + 5452656374616E676C6500095374796C654E616D65060676747261636B05416C 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646343034 303430064C6F636B6564090748697454657374080A53697A652E576964746805 000000000033338505400B53697A652E4865696768740500000000009999E104 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B 696E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D65 - 060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F - 6C6F720709784646324138324532064C6F636B6564090748697454657374080A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000009999E104401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E650000000A5452656374616E67 - 6C6500095374796C654E616D65060676747261636B05416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B - 6564090748697454657374080A53697A652E5769647468050000000000333385 - 05400B53697A652E4865696768740500000000009999E104401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 65000A5452656374616E676C6500095374796C654E616D65060A76696E646963 - 61746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978 - 4646324138324532064C6F636B6564090748697454657374080A506F73697469 - 6F6E2E5905000000000099998D04400A53697A652E5769647468050000000000 - 33338505400B53697A652E4865696768740500000000000000A803401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000000005450463007544C61796F757400095374796C654E616D6506 - 0D657870616E6465727374796C6505416C69676E070643656E7465720A53697A - 652E576964746805000000000000C08407400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F72646572023D000A5452656374616E676C6500 - 095374796C654E616D65060B626772656374616E676C6505416C69676E070843 - 6F6E74656E74730C436C69704368696C6472656E090A46696C6C2E436F6C6F72 - 0709784646324432443244064C6F636B6564090748697454657374080A53697A - 652E576964746805000000000000C08407400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F7207097846463135313531350007544C61796F7574 - 00095374796C654E616D6506074C61796F75743305416C69676E0703546F700A - 53697A652E576964746805000000000000C08407400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080007544C61796F757400095374796C654E616D6506074C61796F75743405 - 416C69676E0708436F6E74656E74730A53697A652E5769647468050000000000 - 00C08407400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 - 5374796C654E616D65060A52656374616E676C653205416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F720709784646323532353235064C6F636B - 6564090748697454657374080A53697A652E576964746805000000000000C084 - 07400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 4631353135313500000A5452656374616E676C6500095374796C654E616D6506 - 0A52656374616E676C653105416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646313531353135064C6F636B65640907486974546573 - 74080A53697A652E576964746805000000000000C08407400B53697A652E4865 - 696768740500000000000000C803401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 - 6E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D6174 - 696F6E315374796C65084475726174696F6E0500000000009A9999FD3F0D496E - 746572706F6C6174696F6E070843697263756C61720C50726F70657274794E61 - 6D6506075363616C652E580A537461727456616C7565050000000000000080FF - 3F0953746F7056616C756505000000000000000000000754726967676572060F - 4973457870616E6465643D747275650E54726967676572496E76657273650610 - 4973457870616E6465643D66616C73650000000007544C61796F757400095374 - 796C654E616D6506074C61796F75743305416C69676E0708436F6E74656E7473 - 0A53697A652E576964746805000000000000C08407400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080005545465787400095374796C654E616D6506047465787405416C6967 - 6E07044C656674084175746F53697A65090A436C6970506172656E7409064C6F - 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 - 000000A002400A506F736974696F6E2E580500000000000000A002400A53697A - 652E57696474680500000000000018D103400B53697A652E4865696768740500 - 000000000060FF02401453697A652E506C6174666F726D44656661756C740804 - 54657874060454657874165465787453657474696E67732E466F6E74436F6C6F - 720708636C615768697465165465787453657474696E67732E486F727A416C69 - 676E07074C656164696E670000000F54457870616E646572427574746F6E0009 - 5374796C654E616D650606627574746F6E05416C69676E07055269676874064C - 6F636B6564090A506F736974696F6E2E580500000000000080F506400A53697A - 652E57696474680500000000000000A003400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C740800 - 000000005450463007544C61796F757400095374796C654E616D650615616E69 - 696E64696361746F72686F727A7374796C6505416C69676E070643656E746572 - 0A53697A652E57696474680500000000000040C006400B53697A652E48656967 - 687405000000000000008000401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508000A5452656374616E676C6500095374796C654E - 616D65060A52656374616E676C653105416C69676E0706436C69656E740C436C - 69704368696C6472656E090A46696C6C2E436F6C6F7207097846463430343034 - 300A53697A652E57696474680500000000000040C006400B53697A652E486569 - 67687405000000000000008000401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E650005544C696E65000953 - 74796C654E616D6506054C696E6531084C696E65547970650706426F74746F6D - 0A53697A652E57696474680500000000000000A00B400B53697A652E48656967 - 687405000000000000008000401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F720709784646324138324532105374726F - 6B652E546869636B6E65737305000000000000008002400B5374726F6B652E44 - 617368070444617368000F54466C6F6174416E696D6174696F6E00095374796C - 654E616D650603616E6907456E61626C656409084475726174696F6E05000000 - 00000000800340044C6F6F70090C50726F70657274794E616D65060A506F7369 - 74696F6E2E580A537461727456616C75650500000000000000C808C00953746F - 7056616C756505000000000000000000000754726967676572060E4973566973 - 69626C653D7472756500000000005450463007544C61796F757400095374796C - 654E616D65060E6C6F67627574746F6E7374796C6505416C69676E070643656E - 7465720A53697A652E57696474680500000000000000C005400B53697A652E48 - 65696768740500000000000000C005401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508000A5452656374616E676C650009537479 - 6C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E74 - 0C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E - 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 - 696474680500000000000000C005400B53697A652E4865696768740500000000 - 000000C005401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E - 31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 - 323032300953746F7056616C7565070978464634303430343007547269676765 - 72063049734D6F7573654F7665723D747275653B4973507265737365643D6661 - 6C73653B4973466F63757365643D66616C73650E54726967676572496E766572 - 7365063149734D6F7573654F7665723D66616C73653B4973507265737365643D - 66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E + 060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E + 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 + 080A506F736974696F6E2E5905000000000099998D04400A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000000 + 00A803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000000005450463007544C61796F757400095374 + 796C654E616D65060D657870616E6465727374796C6505416C69676E07064365 + 6E7465720A53697A652E576964746805000000000000C08407400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F72646572023D000A545265 + 6374616E676C6500095374796C654E616D65060B626772656374616E676C6505 + 416C69676E0708436F6E74656E74730C436C69704368696C6472656E090A4669 + 6C6C2E436F6C6F720709784646324432443244064C6F636B6564090748697454 + 657374080A53697A652E576964746805000000000000C08407400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 07544C61796F757400095374796C654E616D6506074C61796F75743305416C69 + 676E0703546F700A53697A652E576964746805000000000000C08407400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080007544C61796F757400095374796C654E616D650607 + 4C61796F75743405416C69676E0708436F6E74656E74730A53697A652E576964 + 746805000000000000C08407400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653205416C + 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323532 + 353235064C6F636B6564090748697454657374080A53697A652E576964746805 + 000000000000C08407400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F72070978464631353135313500000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653105416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646313531353135064C6F636B6564 + 090748697454657374080A53697A652E576964746805000000000000C0840740 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54466C6F6174416E696D6174696F6E00095374796C654E616D650614466C6F + 6174416E696D6174696F6E315374796C65084475726174696F6E050000000000 + 9A9999FD3F0D496E746572706F6C6174696F6E070843697263756C61720C5072 + 6F70657274794E616D6506075363616C652E580A537461727456616C75650500 + 00000000000080FF3F0953746F7056616C756505000000000000000000000754 + 726967676572060F4973457870616E6465643D747275650E5472696767657249 + 6E766572736506104973457870616E6465643D66616C73650000000007544C61 + 796F757400095374796C654E616D6506074C61796F75743305416C69676E0708 + 436F6E74656E74730A53697A652E576964746805000000000000C08407400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C74080005545465787400095374796C654E616D65060474 + 65787405416C69676E07044C656674084175746F53697A65090A436C69705061 + 72656E7409064C6F636B6564090748697454657374080C4D617267696E732E4C + 6566740500000000000000A002400A506F736974696F6E2E5805000000000000 + 00A002400A53697A652E576964746805000000000000B8C703400B53697A652E + 4865696768740500000000000060FF02401453697A652E506C6174666F726D44 + 656661756C74080454657874060454657874165465787453657474696E67732E + 466F6E74436F6C6F720708636C615768697465165465787453657474696E6773 + 2E486F727A416C69676E07074C656164696E670000000F54457870616E646572 + 427574746F6E00095374796C654E616D650606627574746F6E05416C69676E07 + 055269676874064C6F636B6564090A506F736974696F6E2E5805000000000000 + 80F506400A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C740800000000005450463007544C61796F757400095374796C654E + 616D650615616E69696E64696361746F72686F727A7374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000040C006400B53 + 697A652E48656967687405000000000000008000401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070643 + 6C69656E740C436C69704368696C6472656E090A46696C6C2E436F6C6F720709 + 7846463430343034300A53697A652E57696474680500000000000040C006400B + 53697A652E48656967687405000000000000008000401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650005 + 544C696E6500095374796C654E616D6506054C696E6531084C696E6554797065 + 0706426F74746F6D0A53697A652E57696474680500000000000000A00B400B53 + 697A652E48656967687405000000000000008000401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646324138 + 324532105374726F6B652E546869636B6E65737305000000000000008002400B + 5374726F6B652E44617368070444617368000F54466C6F6174416E696D617469 + 6F6E00095374796C654E616D650603616E6907456E61626C6564090844757261 + 74696F6E0500000000000000800340044C6F6F70090C50726F70657274794E61 + 6D65060A506F736974696F6E2E580A537461727456616C756505000000000000 + 00C808C00953746F7056616C7565050000000000000000000007547269676765 + 72060E497356697369626C653D7472756500000000005450463007544C61796F + 757400095374796C654E616D65060E6C6F67627574746F6E7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000C005 + 400B53697A652E4865696768740500000000000000C005401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0706436C69656E740C436C69704368696C6472656E090A436C6970506172656E + 74090A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E57696474680500000000000000C005400B53697A652E486569 + 6768740500000000000000C005401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 - 6E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C5072 + 6E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C5072 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463430343034300953746F7056616C756507097846463137353739 - 430754726967676572062F4973507265737365643D747275653B49734D6F7573 - 654F7665723D747275653B4973466F63757365643D66616C736500000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 - 6F6C6F72416E696D6174696F6E33084475726174696F6E050000000000CDCCCC - FB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 - 7456616C756507097846463241383245320953746F7056616C75650709784646 - 3137353739430754726967676572062E4973507265737365643D747275653B49 - 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 - 726967676572496E7665727365062F4973507265737365643D66616C73653B49 - 734D6F7573654F7665723D747275653B4973466F63757365643D747275650000 - 05545061746800095374796C654E616D650605506174683105416C69676E0706 - 436C69656E7409446174612E506174680A5C02000032000000000000000000A8 - 41CDCCCC40010000000000A8410000C041010000000000C03F0000C041010000 - 000000C03F00000000010000009A99694100000000010000000000A841CDCCCC - 40030000000000A841CDCCCC400000000000009C410000F04001000000000058 - 410000F04001000000000058410000C03F01000000000040400000C03F010000 - 00000040400000B4410100000000009C410000B4410100000000009C410000F0 - 400300000000009C410000F04000000000000040410000F04001000000000090 - 400000F04001000000000090400000C04001000000000040410000C040010000 - 00000040410000F04003000000000040410000F0400000000000009040000010 - 4101000000000090410000104101000000000090410000284101000000000090 - 4000002841010000000000904000001041030000000000904000001041000000 - 0000009040000040410100000000009041000040410100000000009041000058 - 4101000000000090400000584101000000000090400000404103000000000090 - 4000004041000000000000904000007041010000000000904100007041010000 - 0000009041000084410100000000009040000084410100000000009040000070 - 4103000000000090400000704100000000000090400000904101000000000090 - 4100009041010000000000904100009C41010000000000904000009C41010000 - 00000090400000904103000000000090400000904100000000000070410000C0 - 4001000000333393410000C04001000000000070416666264001000000000070 - 410000C04003000000000070410000C0400A46696C6C2E436F6C6F720708636C - 6157686974650748697454657374080C4D617267696E732E4C65667405000000 - 00000000A002400B4D617267696E732E546F700500000000000000A002400D4D - 617267696E732E52696768740500000000000000A002400E4D617267696E732E - 426F74746F6D0500000000000000A002400A53697A652E576964746805000000 - 000000009805400B53697A652E48656967687405000000000000009805401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6508577261704D6F6465070346697400000000} + 6507097846463230323032300953746F7056616C756507097846463430343034 + 300754726967676572063049734D6F7573654F7665723D747275653B49735072 + 65737365643D66616C73653B4973466F63757365643D66616C73650E54726967 + 676572496E7665727365063149734D6F7573654F7665723D66616C73653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C736500000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 + 6F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463430343034300953746F7056616C75650709 + 7846463137353739430754726967676572062F4973507265737365643D747275 + 653B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05 + 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463241383245320953746F705661 + 6C756507097846463137353739430754726967676572062E4973507265737365 + 643D747275653B49734D6F7573654F7665723D747275653B4973466F63757365 + 643D747275650E54726967676572496E7665727365062F497350726573736564 + 3D66616C73653B49734D6F7573654F7665723D747275653B4973466F63757365 + 643D74727565000005545061746800095374796C654E616D6506055061746831 + 05416C69676E0706436C69656E7409446174612E506174680A5C020000320000 + 00000000000000A841CDCCCC40010000000000A8410000C041010000000000C0 + 3F0000C041010000000000C03F00000000010000009A99694100000000010000 + 000000A841CDCCCC40030000000000A841CDCCCC400000000000009C410000F0 + 4001000000000058410000F04001000000000058410000C03F01000000000040 + 400000C03F01000000000040400000B4410100000000009C410000B441010000 + 0000009C410000F0400300000000009C410000F04000000000000040410000F0 + 4001000000000090400000F04001000000000090400000C04001000000000040 + 410000C04001000000000040410000F04003000000000040410000F040000000 + 0000009040000010410100000000009041000010410100000000009041000028 + 4101000000000090400000284101000000000090400000104103000000000090 + 4000001041000000000000904000004041010000000000904100004041010000 + 0000009041000058410100000000009040000058410100000000009040000040 + 4103000000000090400000404100000000000090400000704101000000000090 + 4100007041010000000000904100008441010000000000904000008441010000 + 0000009040000070410300000000009040000070410000000000009040000090 + 41010000000000904100009041010000000000904100009C4101000000000090 + 4000009C41010000000000904000009041030000000000904000009041000000 + 00000070410000C04001000000333393410000C0400100000000007041666626 + 4001000000000070410000C04003000000000070410000C0400A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080C4D617267696E732E + 4C6566740500000000000000A002400B4D617267696E732E546F700500000000 + 000000A002400D4D617267696E732E52696768740500000000000000A002400E + 4D617267696E732E426F74746F6D0500000000000000A002400A53697A652E57 + 6964746805000000000000009805400B53697A652E4865696768740500000000 + 0000009805401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400000000 + 5450463007544C61796F757400095374796C654E616D65061B74726565766965 + 77657870616E646572627574746F6E7374796C6505416C69676E070643656E74 + 65720B4D617267696E732E546F70050000000000000080FF3F0A53697A652E57 + 696474680500000000000000B003400B53697A652E4865696768740500000000 + 000000B003401453697A652E506C6174666F726D44656661756C740800055450 + 61746800095374796C654E616D650605506174683105416C69676E070643656E + 74657209446174612E506174680A3400000004000000000000000000C8420000 + C84201000000000096430000C842010000000000484300009643030000000000 + C8420000C8420A46696C6C2E436F6C6F720708636C6157686974650748697454 + 657374080D526F746174696F6E416E676C650500000000000000B405C00A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174 + 696F6E00095374796C654E616D650614466C6F6174416E696D6174696F6E3153 + 74796C65084475726174696F6E05000000000000000000000D496E746572706F + 6C6174696F6E070843697263756C61720C50726F70657274794E616D65060D52 + 6F746174696F6E416E676C650A537461727456616C75650500000000000000B4 + 05C00953746F7056616C75650500000000000000000000075472696767657206 + 0F4973457870616E6465643D747275650E54726967676572496E766572736506 + 104973457870616E6465643D66616C736500000000545046300A545265637461 + 6E676C6500095374796C654E616D65061174726565766965776974656D737479 + 6C6505416C69676E070643656E7465720946696C6C2E4B696E6407044E6F6E65 + 0748697454657374080553696465730B06426F74746F6D000A53697A652E5769 + 6474680500000000000000AE05400B53697A652E486569676874050000000000 + 0000A004401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F720709784646313531353135000C545370656564427574746F + 6E00095374796C654E616D650606627574746F6E05416C69676E07044C656674 + 0A53697A652E57696474680500000000000000A003400B53697A652E48656967 + 68740500000000000000A004401453697A652E506C6174666F726D4465666175 + 6C74080B5374796C654C6F6F6B7570061B7472656576696577657870616E6465 + 72627574746F6E7374796C65000007544C61796F75740005416C69676E070843 + 6F6E74656E74730C4D617267696E732E4C6566740500000000000000A003400A + 53697A652E576964746805000000000000008605400B53697A652E4865696768 + 740500000000000000A004401453697A652E506C6174666F726D44656661756C + 7408000954436865636B426F7800095374796C654E616D650605636865636B05 + 416C69676E07044C6566740843616E466F637573081244697361626C65466F63 + 7573456666656374090A53697A652E57696474680500000000000000A003400B + 53697A652E4865696768740500000000000000A004401453697A652E506C6174 + 666F726D44656661756C740800000654476C79706800095374796C654E616D65 + 060A676C7970687374796C650C4D617267696E732E4C65667405000000000000 + 008000400B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E526967687405000000000000008000400E4D617267696E732E426F74 + 746F6D050000000000000080FF3F05416C69676E07044C6566740A506F736974 + 696F6E2E580500000000000000B003400A506F736974696F6E2E590500000000 + 00000080FF3F0A53697A652E576964746805000000000000008003400B53697A + 652E48656967687405000000000000009804401453697A652E506C6174666F72 + 6D44656661756C7408000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080A53697A652E57696474680500000000000000BC04400B53697A652E486569 + 6768740500000000000000A004401453697A652E506C6174666F726D44656661 + 756C74080454657874060454657874165465787453657474696E67732E466F6E + 74436F6C6F720708636C615768697465155465787453657474696E67732E576F + 72645772617008165465787453657474696E67732E486F727A416C69676E0707 + 4C656164696E670000000A5452656374616E676C650005416C69676E07074669 + 744C6566740946696C6C2E4B696E6407044E6F6E650748697454657374080E4D + 617267696E732E426F74746F6D050000000000000080FF3F0553696465730B04 + 4C656674000A53697A652E5769647468050000000000986F8905400B53697A65 + 2E48656967687405000000000000009C04401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646324138324532 + 105374726F6B652E546869636B6E657373050000000000000080004000000054 + 50463007544C61796F757400095374796C654E616D65060D7472656576696577 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 000000000000E106400B53697A652E4865696768740500000000000080810740 + 1453697A652E506C6174666F726D44656661756C7408000C5442727573684F62 + 6A65637400095374796C654E616D650618416C7465726E6174696E67526F7742 + 61636B67726F756E640B42727573682E436F6C6F720709783046464646464646 + 00000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 09784646323032303230064C6F636B6564090748697454657374080C50616464 + 696E672E4C656674050000000000000080FF3F0D50616464696E672E52696768 + 74050000000000000080FF3F0A53697A652E57696474680500000000000000E1 + 06400B53697A652E48656967687405000000000000808107401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 463135313531350007544C61796F757400095374796C654E616D650607636F6E + 74656E7405416C69676E0706436C69656E740C436C69704368696C6472656E09 + 0B4D617267696E732E546F70050000000000000080FF3F0A53697A652E576964 + 74680500000000000000CD06400B53697A652E48656967687405000000000000 + 00F006401453697A652E506C6174666F726D44656661756C7408000A54526563 + 74616E676C6500095374796C654E616D65060973656C656374696F6E0A46696C + 6C2E436F6C6F7207097846463241383245320748697454657374080A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65000953 + 74796C654E616D650610666F637573656473656C656374696F6E0A46696C6C2E + 436F6C6F7207097846463241383245320748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E650B5374726F6B652E446173680703446F7400 + 00000A545363726F6C6C42617200095374796C654E616D65060A767363726F6C + 6C62617205416C69676E070552696768740B536D616C6C4368616E6765050000 + 00000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D + 617267696E732E4C65667405000000000000008000400A506F736974696F6E2E + 580500000000000000D006400A53697A652E5769647468050000000000000080 + 03400B53697A652E4865696768740500000000000000F106401453697A652E50 + 6C6174666F726D44656661756C740800000A545363726F6C6C42617200095374 + 796C654E616D65060A687363726F6C6C62617205416C69676E0706426F74746F + 6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 + 74696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000 + 000000008000400A506F736974696F6E2E58050000000000000080FF3F0A506F + 736974696F6E2E590500000000000000F306400A53697A652E57696474680500 + 000000000000DF06400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000F54536D616C6C53 + 63726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C + 6C62617205416C69676E070552696768740B536D616C6C4368616E6765050000 + 00000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D + 617267696E732E4C65667405000000000000008000400A506F736974696F6E2E + 580500000000000000C605400A506F736974696F6E2E59050000000000000080 + 00400A53697A652E576964746805000000000000008002400B53697A652E4865 + 6967687405000000000000008002401453697A652E506C6174666F726D446566 + 61756C74080756697369626C650800000F54536D616C6C5363726F6C6C426172 + 00095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69 + 676E0706426F74746F6D0B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E + 732E546F7005000000000000008000400A506F736974696F6E2E580500000000 + 0000008000400A506F736974696F6E2E590500000000000000E205400A53697A + 652E576964746805000000000000009606400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C740807 + 56697369626C650800000000} end item Platform = 'OSX Yosemite' @@ -16944,19 +17791,18 @@ object MainForm: TMainForm end object mainLayout: TLayout Align = Contents - Size.Width = 701.000000000000000000 - Size.Height = 561.000000000000000000 + Size.Width = 1212.000000000000000000 + Size.Height = 671.000000000000000000 Size.PlatformDefault = False TabOrder = 43 object bottomButtonsLayout: TLayout Align = Bottom - Position.Y = 515.000000000000000000 - Size.Width = 701.000000000000000000 - Size.Height = 46.000000000000000000 + Position.Y = 623.000000000000000000 + Size.Width = 1212.000000000000000000 + Size.Height = 48.000000000000000000 Size.PlatformDefault = False object launchButton: TButton Align = Center - ImageIndex = 0 Size.Width = 127.000000000000000000 Size.Height = 30.000000000000000000 Size.PlatformDefault = False @@ -18013,658 +18859,434 @@ object MainForm: TMainForm Visible = False end end - object launcherLayout: TLayout - Align = Client + object UpdateInfo: TStatusBar + Align = MostBottom + Position.Y = 526.000000000000000000 + ShowSizeGrip = False Size.Width = 701.000000000000000000 - Size.Height = 515.000000000000000000 + Size.Height = 35.000000000000000000 Size.PlatformDefault = False - object inputFileLayout: TLayout - Align = Top - Margins.Left = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Size.Width = 691.000000000000000000 - Size.Height = 60.000000000000000000 + StyleLookup = 'statusbarnogripstyle' + Visible = False + object downloadButton: TButton + Align = Client + Margins.Left = 10.000000000000000000 + Margins.Top = 7.000000000000000000 + Margins.Right = 10.000000000000000000 + Margins.Bottom = 7.000000000000000000 + Size.Width = 508.000000000000000000 + Size.Height = 21.000000000000000000 Size.PlatformDefault = False - object InputLabels: TLayout - Align = Left - Size.Width = 113.000000000000000000 - Size.Height = 60.000000000000000000 - Size.PlatformDefault = False - object projectPathLabel: TLabel - Align = Client - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 33.000000000000000000 - Size.Width = 108.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - Text = 'Project file path: ' - end - object outputPathLabel: TLabel - Align = Client - Margins.Top = 33.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 108.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'Label2Style1' - Text = 'Output file path:' - end - end - object pathLayout: TLayout - Align = Client - Size.Width = 465.000000000000000000 - Size.Height = 60.000000000000000000 - Size.PlatformDefault = False - object outputPath: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Client - Margins.Left = 5.000000000000000000 - Margins.Top = 33.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 455.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - end - object projectPath: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Client - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 33.000000000000000000 - Size.Width = 455.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - OnDragOver = projectPathDragOver - OnDragDrop = projectPathDragDrop - end - end - object fileChooseLayout: TLayout - Align = Right - Position.X = 578.000000000000000000 - Size.Width = 113.000000000000000000 - Size.Height = 60.000000000000000000 - Size.PlatformDefault = False - object openFile: TButton - Align = Client - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 33.000000000000000000 - Size.Width = 103.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - Text = 'Choose file...' - OnClick = openFileClick - end - object saveFile: TButton - Align = Client - Margins.Left = 5.000000000000000000 - Margins.Top = 33.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 103.000000000000000000 - Size.Height = 22.000000000000000000 - Size.PlatformDefault = False - Text = 'Choose file...' - OnClick = saveFileClick - end - end + Text = 'Download from GitHub' + OnClick = downloadButtonClick end - object properties: TGroupBox - Align = Top - Margins.Left = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 118.000000000000000000 - Size.Width = 691.000000000000000000 - Size.Height = 149.000000000000000000 + object UpdateLabel: TLabel + Align = Left + AutoSize = True + StyledSettings = [Family, FontColor] + Margins.Left = 10.000000000000000000 + Position.X = 10.000000000000000000 + Size.Width = 163.000000000000000000 + Size.Height = 35.000000000000000000 Size.PlatformDefault = False - Text = 'Properties' - object memUsageLayout: TLayout - Align = Bottom - Position.Y = 120.000000000000000000 - Size.Width = 691.000000000000000000 - Size.Height = 29.000000000000000000 - Size.PlatformDefault = False - object memUsageLabel: TLabel - Align = Left - Margins.Left = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 - Size.Width = 140.000000000000000000 - Size.Height = 24.000000000000000000 - Size.PlatformDefault = False - Text = 'Memory usage limit' - end - object memUsageTrackBar: TTrackBar - Align = Client - CanParentFocus = True - Orientation = Horizontal - Margins.Top = 5.000000000000000000 - Size.Width = 408.000000000000000000 - Size.Height = 17.000000000000000000 - Size.PlatformDefault = False - Value = 100.000000000000000000 - OnChange = memUsageTrackBarChange - end - object memUsageInfo: TLabel - Align = Right - Cursor = crHandPoint - HitTest = True - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 563.000000000000000000 - Size.Width = 113.000000000000000000 - Size.Height = 24.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'linklabelstyle' - TextSettings.FontColor = claWhite - TextSettings.HorzAlign = Trailing - Text = 'Unlimited' - OnClick = memUsageInfoClick - end - object memUsageInfoEdit: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Right - TextSettings.HorzAlign = Trailing - Position.X = 349.000000000000000000 - Enabled = False - Margins.Left = 13.000000000000000000 - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 100.000000000000000000 - Size.Height = 24.000000000000000000 - Size.PlatformDefault = False - Visible = False - KillFocusByReturn = True - OnValidate = memUsageInfoEditValidate - OnExit = memUsageInfoEditExit - end - end - object cacheUsageLayout: TLayout - Align = Bottom - Position.Y = 91.000000000000000000 - Size.Width = 691.000000000000000000 - Size.Height = 29.000000000000000000 - Size.PlatformDefault = False - object cacheUsageLimitLabel: TLabel - Align = Left - Margins.Left = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 - Size.Width = 140.000000000000000000 - Size.Height = 24.000000000000000000 - Size.PlatformDefault = False - Text = 'Cache usage limit' - end - object cacheUsageTrackBar: TTrackBar - Align = Client - CanParentFocus = True - Orientation = Horizontal - Margins.Top = 5.000000000000000000 - Size.Width = 408.000000000000000000 - Size.Height = 17.000000000000000000 - Size.PlatformDefault = False - Value = 100.000000000000000000 - OnChange = cacheUsageTrackBarChange - end - object cacheUsageInfo: TLabel - Align = Right - Cursor = crHandPoint - HitTest = True - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 563.000000000000000000 - Size.Width = 113.000000000000000000 - Size.Height = 24.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'linklabelstyle' - TextSettings.FontColor = claWhite - TextSettings.HorzAlign = Trailing - Text = 'Unlimited' - OnClick = cacheUsageInfoClick - end - object cacheUsageInfoEdit: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Right - TextSettings.HorzAlign = Trailing - Position.X = 357.000000000000000000 - Position.Y = 5.000000000000000000 - Enabled = False - Margins.Left = 13.000000000000000000 - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 100.000000000000000000 - Size.Height = 24.000000000000000000 - Size.PlatformDefault = False - Visible = False - KillFocusByReturn = True - OnValidate = cacheUsageInfoEditValidate - OnExit = cacheUsageInfoEditExit - end - end - object GridPanelLayout3: TGridPanelLayout - Align = Client - Size.Width = 691.000000000000000000 - Size.Height = 91.000000000000000000 - Size.PlatformDefault = False - ColumnCollection = < - item - Value = 50.000000000000000000 - end - item - Value = 50.000000000000000000 - end> - ControlCollection = < - item - Column = 1 - Control = properiesLayout2 - Row = 0 - end - item - Column = 0 - Control = propertiesLayout1 - Row = 0 - end> - RowCollection = < - item - Value = 100.000000000000000000 - end - item - SizeStyle = Auto - end> - object properiesLayout2: TLayout - Align = Client - Anchors = [] - Margins.Top = 10.000000000000000000 - Size.Width = 345.500000000000000000 - Size.Height = 81.000000000000000000 - Size.PlatformDefault = False - object customProp: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Top - Position.X = 10.000000000000000000 - Position.Y = 34.000000000000000000 - Enabled = False - Margins.Left = 10.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 10.000000000000000000 - Size.Width = 325.500000000000000000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - TextPrompt = 'Separate flags with spaces!' - end - object customCheckbox: TCheckBox - Align = Top - Margins.Left = 10.000000000000000000 - Margins.Top = 10.000000000000000000 - Margins.Right = 10.000000000000000000 - Position.X = 10.000000000000000000 - Position.Y = 10.000000000000000000 - Size.Width = 325.500000000000000000 - Size.Height = 19.000000000000000000 - Size.PlatformDefault = False - Text = 'Custom Properies' - end - end - object propertiesLayout1: TLayout - Align = Client - Margins.Top = 10.000000000000000000 - Size.Width = 345.500000000000000000 - Size.Height = 81.000000000000000000 - Size.PlatformDefault = False - object missingFilesCheckbox: TCheckBox - Align = Top - Margins.Left = 15.000000000000000000 - Margins.Top = 10.000000000000000000 - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 - Position.Y = 10.000000000000000000 - Size.Width = 315.500000000000000000 - Size.Height = 19.000000000000000000 - Size.PlatformDefault = False - Text = 'Render with missing files' - end - object threadedRender: TCheckBox - Align = Top - Margins.Left = 15.000000000000000000 - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 - Position.Y = 58.000000000000000000 - Size.Width = 315.500000000000000000 - Size.Height = 19.000000000000000000 - Size.PlatformDefault = False - Text = 'Enable CPU Multithreading' - end - object soundCheckbox: TCheckBox - Align = Top - Margins.Left = 15.000000000000000000 - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 - Position.Y = 34.000000000000000000 - Size.Width = 315.500000000000000000 - Size.Height = 19.000000000000000000 - Size.PlatformDefault = False - Text = 'Play sound when render finishes' - end - end - end + TextSettings.Font.Size = 14.000000000000000000 + TextSettings.Font.StyleExt = {00070000000000000004000000} + TextSettings.WordWrap = False + Text = 'New version is available!' end - object outputModuleLayout: TLayout - Align = Top - EnableDragHighlight = False - Margins.Left = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 60.000000000000000000 - Size.Width = 691.000000000000000000 - Size.Height = 29.000000000000000000 + end + object TasksToolbar: TToolBar + PopupMenu = ToolbarPopupMenu + Size.Width = 1212.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + object Label5: TLabel + Align = Left + StyledSettings = [Family, FontColor] + Margins.Left = 16.000000000000000000 + Position.X = 16.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False - object outputModuleBox: TComboBox - Align = Client - DropDownKind = Custom - Margins.Left = 10.000000000000000000 - Margins.Top = 3.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 3.000000000000000000 - Size.Width = 548.000000000000000000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - OnChange = outputModuleBoxChange - end - object outputModuleLabel: TLabel - Align = Left - Size.Width = 128.000000000000000000 - Size.Height = 29.000000000000000000 - Size.PlatformDefault = False - TextSettings.WordWrap = False - Text = 'Output Module Preset:' - end + TextSettings.Font.Size = 16.000000000000000000 + TextSettings.Font.StyleExt = {00070000000000000004000000} + Text = 'Tasks' end - object renderSettingsLayout: TLayout - Align = Top - EnableDragHighlight = False - Margins.Left = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 89.000000000000000000 - Size.Width = 691.000000000000000000 - Size.Height = 29.000000000000000000 + object RemoveTaskButton: TButton + Align = Right + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 1104.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 104.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False - object renderSettingsBox: TComboBox - Align = Client - DropDownKind = Custom - Margins.Left = 10.000000000000000000 - Margins.Top = 3.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 3.000000000000000000 - Size.Width = 548.000000000000000000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - OnChange = renderSettingsBoxChange - end - object renderSettingsLabel: TLabel - Align = Left - Size.Width = 128.000000000000000000 - Size.Height = 29.000000000000000000 - Size.PlatformDefault = False - TextSettings.WordWrap = False - Text = 'Render Settings:' - end + StyleLookup = 'removebuttonstyle' + Text = 'Remove Task' + TextSettings.Font.Size = 18.000000000000000000 + ParentShowHint = False + ShowHint = False + OnClick = RemoveTaskButtonClick end - object GridPanelLayout1: TGridPanelLayout - Align = Client - Size.Width = 701.000000000000000000 - Size.Height = 243.000000000000000000 + object AddTaskButton: TButton + Align = Right + Hint = 'Settings' + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 1000.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 96.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False - ColumnCollection = < - item - Value = 50.000000000000000000 - end - item - Value = 50.000000000000000000 - end> - ControlCollection = < - item - Column = 0 - Control = compLayout - Row = 0 - end - item - Column = 1 - Control = threadsLayout - Row = 0 - end> - RowCollection = < - item - Value = 100.000000000000000000 - end - item - SizeStyle = Auto - end> - object compLayout: TLayout - Align = Client - Size.Width = 350.500000000000000000 - Size.Height = 243.000000000000000000 - Size.PlatformDefault = False - object compGrid: TStringGrid + StyleLookup = 'addbuttonstyle' + Text = 'New Task' + TextSettings.Font.Size = 18.000000000000000000 + ParentShowHint = False + ShowHint = False + OnClick = AddTaskButtonClick + end + end + object TasksTreeView: TTreeView + Align = Client + Margins.Left = -1.000000000000000000 + Margins.Top = -1.000000000000000000 + Margins.Right = -1.000000000000000000 + Margins.Bottom = -1.000000000000000000 + PopupMenu = TasksPopupMenu + Size.Width = 1214.000000000000000000 + Size.Height = 593.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'treeviewstyle' + OnMouseMove = TasksTreeViewMouseMove + AllowDrag = True + AlternatingRowBackground = True + ItemHeight = 24.000000000000000000 + OnDragChange = TasksTreeViewDragChange + OnKeyDown = TasksTreeViewKeyDown + Viewport.Width = 1212.000000000000000000 + Viewport.Height = 592.000000000000000000 + object TreeViewItem2: TTreeViewItem + StyledSettings = [Family, Size, FontColor] + TextSettings.Font.StyleExt = {00070000000000000004000000} + IsChecked = False + IsExpanded = True + IsSelected = False + Text = 'Project' + object TreeViewItem10: TTreeViewItem + IsChecked = False + IsExpanded = False + IsSelected = False + Text = 'Composition' + object CompLabel1: TCompLabel Align = Client - CanFocus = True - ClipChildren = True - Enabled = False - Locked = True - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 303.000000000000000000 - Size.Height = 231.000000000000000000 - Size.PlatformDefault = False - Visible = False - RowCount = 1 - Options = [Editing, RowLines, RowSelect, Header] - OnEditingDone = compGridEditingDone - Viewport.Width = 299.000000000000000000 - Viewport.Height = 206.000000000000000000 - object StringColumn1: TStringColumn - Header = 'Compositions list' - end - end - object compTopLayout: TLayout - Align = Top - Margins.Left = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Size.Width = 340.500000000000000000 - Size.Height = 40.000000000000000000 - Size.PlatformDefault = False - object compSwitch: TSwitch - Align = Left - IsChecked = False - Margins.Top = 8.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 8.000000000000000000 - Position.Y = 8.000000000000000000 - Size.Width = 50.000000000000000000 - Size.Height = 24.000000000000000000 - Size.PlatformDefault = False - ParentShowHint = False - ShowHint = False - OnSwitch = compSwitchSwitch - end - object compSwitchLabel: TLabel - Align = Client - Margins.Top = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 280.500000000000000000 - Size.Height = 30.000000000000000000 - Size.PlatformDefault = False - Text = 'Single Composition' - end - object compCount: TSpinBox - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Right - StyleLookup = 'spinboxstyle' - Cursor = crIBeam - Min = 2.000000000000000000 - Value = 2.000000000000000000 - Position.X = 208.000000000000000000 - Position.Y = 5.000000000000000000 - Enabled = False - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 74.000000000000000000 - Size.Height = 30.000000000000000000 - Size.PlatformDefault = False - Visible = False - OnChange = compCountChange - end - end - object compName: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Top - Position.X = 5.000000000000000000 - Position.Y = 45.000000000000000000 - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Size.Width = 340.500000000000000000 - Size.Height = 25.000000000000000000 + Size.Width = 1192.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False - TextPrompt = 'Compositon name...' - OnTyping = compNameTyping + InFrame = '3600' + OutFrame = '6310' + Split = '64' end end - object threadsLayout: TLayout + end + end + end + object TasksPopupMenu: TPopupMenu + OnPopup = TasksPopupMenuPopup + Left = 984 + Top = 168 + object MenuItem1: TMenuItem + Text = 'MenuItem1' + end + object MenuItem2: TMenuItem + Text = 'MenuItem2' + end + object MenuItem3: TMenuItem + Text = 'MenuItem3' + end + end + object Popup1: TPopup + ClipChildren = True + Placement = BottomCenter + PlacementTarget = TasksToolbar + Position.X = 272.000000000000000000 + Position.Y = 88.000000000000000000 + Size.Width = 640.000000000000000000 + Size.Height = 384.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'popupbackgroundstyle' + VerticalOffset = -1.000000000000000000 + OnPopup = Popup1Popup + object NewTaskTabControl: TTabControl + Align = Contents + Margins.Left = -2.000000000000000000 + Margins.Top = -2.000000000000000000 + Margins.Right = -2.000000000000000000 + Margins.Bottom = -2.000000000000000000 + Size.Width = 644.000000000000000000 + Size.Height = 388.000000000000000000 + Size.PlatformDefault = False + TabIndex = 0 + TabPosition = Dots + Sizes = ( + 640s + 384s + 640s + 384s) + object NewTaskStepOne: TTabItem + CustomIcon = < + item + end> + IsSelected = True + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + StyleLookup = '' + TabOrder = 0 + Text = 'Basic properties' + object launcherLayout: TLayout Align = Client - Anchors = [] - Size.Width = 350.500000000000000000 - Size.Height = 243.000000000000000000 + Size.Width = 640.000000000000000000 + Size.Height = 351.000000000000000000 Size.PlatformDefault = False - object threadsTopLayout: TLayout + object inputFileLayout: TLayout Align = Top Margins.Left = 5.000000000000000000 Margins.Right = 5.000000000000000000 Position.X = 5.000000000000000000 - Size.Width = 340.500000000000000000 - Size.Height = 40.000000000000000000 + Size.Width = 630.000000000000000000 + Size.Height = 60.000000000000000000 Size.PlatformDefault = False - object threadsSwitch: TSwitch + object InputLabels: TLayout Align = Left - IsChecked = False - Margins.Top = 8.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 8.000000000000000000 - Position.Y = 8.000000000000000000 - Size.Width = 50.000000000000000000 - Size.Height = 24.000000000000000000 + Size.Width = 113.000000000000000000 + Size.Height = 60.000000000000000000 Size.PlatformDefault = False - ParentShowHint = False - ShowHint = False - OnSwitch = threadsSwitchSwitch + object projectPathLabel: TLabel + Align = Client + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 33.000000000000000000 + Size.Width = 108.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Text = 'Project file path: ' + end + object outputPathLabel: TLabel + Align = Client + Margins.Top = 33.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 108.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'Label2Style1' + Text = 'Output file path:' + end end - object threadsSwitchLabel: TLabel + object pathLayout: TLayout Align = Client - Margins.Top = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 280.500000000000000000 - Size.Height = 30.000000000000000000 + Size.Width = 404.000000000000000000 + Size.Height = 60.000000000000000000 Size.PlatformDefault = False - Text = 'Single Render' + object outputPath: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + Margins.Left = 5.000000000000000000 + Margins.Top = 33.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 394.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + object projectPath: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 33.000000000000000000 + Size.Width = 394.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + OnDragOver = projectPathDragOver + OnDragDrop = projectPathDragDrop + end end - object threadsCount: TComboEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] + object fileChooseLayout: TLayout Align = Right - DropDownKind = Custom - ItemHeight = 19.000000000000000000 - Items.Strings = ( - '2' - '4' - '6' - '8' - '12' - '16' - '32' - '64' - '128') - ItemIndex = 0 - Text = '2' - Position.X = 280.500000000000000000 - Position.Y = 8.000000000000000000 - Enabled = False - Margins.Top = 8.000000000000000000 - Margins.Bottom = 8.000000000000000000 - Size.Width = 60.000000000000000000 - Size.Height = 24.000000000000000000 + Position.X = 517.000000000000000000 + Size.Width = 113.000000000000000000 + Size.Height = 60.000000000000000000 Size.PlatformDefault = False - Visible = False - KillFocusByReturn = True - OnChange = threadsCountChange - OnTyping = threadsCountTyping - end - end - object threadsGrid: TStringGrid - Align = Client - CanFocus = True - ClipChildren = True - Enabled = False - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 293.000000000000000000 - Size.Height = 191.000000000000000000 - Size.PlatformDefault = False - Visible = False - RowCount = 2 - Options = [ColLines, RowLines, AutoDisplacement] - Viewport.Width = 289.000000000000000000 - Viewport.Height = 187.000000000000000000 - object StringColumn2: TStringColumn - Header = 'In' - Size.Width = 145.000000000000000000 - end - object StringColumn3: TStringColumn - Header = 'Out' - Size.Width = 143.000000000000000000 + object openFile: TButton + Align = Client + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 33.000000000000000000 + Size.Width = 103.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Text = 'Choose file...' + OnClick = openFileClick + end + object saveFile: TButton + Align = Client + Margins.Left = 5.000000000000000000 + Margins.Top = 33.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 103.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Text = 'Choose file...' + OnClick = saveFileClick + end end end - object calculateButton: TButton + object properties: TGroupBox Align = Top - Enabled = False Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 Position.X = 5.000000000000000000 - Position.Y = 94.000000000000000000 - Size.Width = 293.000000000000000000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - Text = 'Calculate' - Visible = False - OnClick = calculateButtonClick - end - object framesLayout: TLayout - Align = Top - Position.Y = 40.000000000000000000 - Size.Width = 350.500000000000000000 - Size.Height = 33.000000000000000000 + Position.Y = 118.000000000000000000 + Size.Width = 630.000000000000000000 + Size.Height = 149.000000000000000000 Size.PlatformDefault = False - object GridPanelLayout2: TGridPanelLayout + Text = 'Properties' + object memUsageLayout: TLayout + Align = Bottom + Position.Y = 120.000000000000000000 + Size.Width = 630.000000000000000000 + Size.Height = 29.000000000000000000 + Size.PlatformDefault = False + object memUsageLabel: TLabel + Align = Left + Margins.Left = 15.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 15.000000000000000000 + Size.Width = 140.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Text = 'Memory usage limit' + end + object memUsageTrackBar: TTrackBar + Align = Client + CanParentFocus = True + Orientation = Horizontal + Margins.Top = 5.000000000000000000 + Size.Width = 347.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + Value = 100.000000000000000000 + OnChange = memUsageTrackBarChange + end + object memUsageInfo: TLabel + Align = Right + Cursor = crHandPoint + HitTest = True + Margins.Right = 15.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 502.000000000000000000 + Size.Width = 113.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'linklabelstyle' + TextSettings.FontColor = claWhite + TextSettings.HorzAlign = Trailing + Text = 'Unlimited' + OnClick = memUsageInfoClick + end + object memUsageInfoEdit: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Right + TextSettings.HorzAlign = Trailing + Position.X = 349.000000000000000000 + Enabled = False + Margins.Left = 13.000000000000000000 + Margins.Right = 15.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Visible = False + KillFocusByReturn = True + OnValidate = memUsageInfoEditValidate + OnExit = memUsageInfoEditExit + end + end + object cacheUsageLayout: TLayout + Align = Bottom + Position.Y = 91.000000000000000000 + Size.Width = 630.000000000000000000 + Size.Height = 29.000000000000000000 + Size.PlatformDefault = False + object cacheUsageLimitLabel: TLabel + Align = Left + Margins.Left = 15.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 15.000000000000000000 + Size.Width = 140.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Text = 'Cache usage limit' + end + object cacheUsageTrackBar: TTrackBar + Align = Client + CanParentFocus = True + Orientation = Horizontal + Margins.Top = 5.000000000000000000 + Size.Width = 347.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + Value = 100.000000000000000000 + OnChange = cacheUsageTrackBarChange + end + object cacheUsageInfo: TLabel + Align = Right + Cursor = crHandPoint + HitTest = True + Margins.Right = 15.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 502.000000000000000000 + Size.Width = 113.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'linklabelstyle' + TextSettings.FontColor = claWhite + TextSettings.HorzAlign = Trailing + Text = 'Unlimited' + OnClick = cacheUsageInfoClick + end + object cacheUsageInfoEdit: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Right + TextSettings.HorzAlign = Trailing + Position.X = 357.000000000000000000 + Position.Y = 5.000000000000000000 + Enabled = False + Margins.Left = 13.000000000000000000 + Margins.Right = 15.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Visible = False + KillFocusByReturn = True + OnValidate = cacheUsageInfoEditValidate + OnExit = cacheUsageInfoEditExit + end + end + object GridPanelLayout3: TGridPanelLayout Align = Client - Size.Width = 350.500000000000000000 - Size.Height = 33.000000000000000000 + Size.Width = 630.000000000000000000 + Size.Height = 91.000000000000000000 Size.PlatformDefault = False ColumnCollection = < item @@ -18675,13 +19297,13 @@ object MainForm: TMainForm end> ControlCollection = < item - Column = 0 - Control = Layout1 + Column = 1 + Control = properiesLayout2 Row = 0 end item - Column = 1 - Control = Layout2 + Column = 0 + Control = propertiesLayout1 Row = 0 end> RowCollection = < @@ -18691,142 +19313,772 @@ object MainForm: TMainForm item SizeStyle = Auto end> - object Layout1: TLayout + object properiesLayout2: TLayout Align = Client - Size.Width = 175.250000000000000000 - Size.Height = 33.000000000000000000 + Anchors = [] + Margins.Top = 10.000000000000000000 + Size.Width = 315.000000000000000000 + Size.Height = 81.000000000000000000 Size.PlatformDefault = False - object inFrame: TEdit + object customProp: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Top + Position.X = 10.000000000000000000 + Position.Y = 34.000000000000000000 + Enabled = False + Margins.Left = 10.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 10.000000000000000000 + Size.Width = 295.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + TextPrompt = 'Separate flags with spaces!' + end + object customCheckbox: TCheckBox + Align = Top + Margins.Left = 10.000000000000000000 + Margins.Top = 10.000000000000000000 + Margins.Right = 10.000000000000000000 + Position.X = 10.000000000000000000 + Position.Y = 10.000000000000000000 + Size.Width = 295.000000000000000000 + Size.Height = 19.000000000000000000 + Size.PlatformDefault = False + Text = 'Custom Properies' + end + end + object propertiesLayout1: TLayout + Align = Client + Margins.Top = 10.000000000000000000 + Size.Width = 315.000000000000000000 + Size.Height = 81.000000000000000000 + Size.PlatformDefault = False + object missingFilesCheckbox: TCheckBox + Align = Top + Margins.Left = 15.000000000000000000 + Margins.Top = 10.000000000000000000 + Margins.Right = 15.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 15.000000000000000000 + Position.Y = 10.000000000000000000 + Size.Width = 285.000000000000000000 + Size.Height = 19.000000000000000000 + Size.PlatformDefault = False + Text = 'Render with missing files' + end + object threadedRender: TCheckBox + Align = Top + Margins.Left = 15.000000000000000000 + Margins.Right = 15.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 15.000000000000000000 + Position.Y = 58.000000000000000000 + Size.Width = 285.000000000000000000 + Size.Height = 19.000000000000000000 + Size.PlatformDefault = False + Text = 'Enable CPU Multithreading' + end + object soundCheckbox: TCheckBox + Align = Top + Margins.Left = 15.000000000000000000 + Margins.Right = 15.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 15.000000000000000000 + Position.Y = 34.000000000000000000 + Size.Width = 285.000000000000000000 + Size.Height = 19.000000000000000000 + Size.PlatformDefault = False + Text = 'Play sound when render finishes' + end + end + end + end + object outputModuleLayout: TLayout + Align = Top + EnableDragHighlight = False + Margins.Left = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Position.X = 5.000000000000000000 + Position.Y = 60.000000000000000000 + Size.Width = 630.000000000000000000 + Size.Height = 29.000000000000000000 + Size.PlatformDefault = False + object outputModuleBox: TComboBox + Align = Client + DropDownKind = Custom + Margins.Left = 10.000000000000000000 + Margins.Top = 3.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 3.000000000000000000 + Size.Width = 487.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + OnChange = outputModuleBoxChange + end + object outputModuleLabel: TLabel + Align = Left + Size.Width = 128.000000000000000000 + Size.Height = 29.000000000000000000 + Size.PlatformDefault = False + TextSettings.WordWrap = False + Text = 'Output Module Preset:' + end + end + object renderSettingsLayout: TLayout + Align = Top + EnableDragHighlight = False + Margins.Left = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Position.X = 5.000000000000000000 + Position.Y = 89.000000000000000000 + Size.Width = 630.000000000000000000 + Size.Height = 29.000000000000000000 + Size.PlatformDefault = False + object renderSettingsBox: TComboBox + Align = Client + DropDownKind = Custom + Margins.Left = 10.000000000000000000 + Margins.Top = 3.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 3.000000000000000000 + Size.Width = 487.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + OnChange = renderSettingsBoxChange + end + object renderSettingsLabel: TLabel + Align = Left + Size.Width = 128.000000000000000000 + Size.Height = 29.000000000000000000 + Size.PlatformDefault = False + TextSettings.WordWrap = False + Text = 'Render Settings:' + end + end + object GridPanelLayout1: TGridPanelLayout + Align = Client + Size.Width = 640.000000000000000000 + Size.Height = 88.000000000000000000 + Size.PlatformDefault = False + Visible = False + ColumnCollection = < + item + Value = 50.000000000000000000 + end + item + Value = 50.000000000000000000 + end> + ControlCollection = < + item + Column = 0 + Control = compLayout + Row = 0 + end + item + Column = 1 + Control = threadsLayout + Row = 0 + end> + RowCollection = < + item + Value = 100.000000000000000000 + end + item + SizeStyle = Auto + end> + object compLayout: TLayout + Align = Client + Size.Width = 320.000000000000000000 + Size.Height = 88.000000000000000000 + Size.PlatformDefault = False + object compGrid: TStringGrid + Align = Client + CanFocus = True + ClipChildren = True + Enabled = False + Locked = True + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 303.000000000000000000 + Size.Height = 231.000000000000000000 + Size.PlatformDefault = False + Visible = False + RowCount = 1 + Options = [Editing, RowLines, RowSelect, Header] + OnEditingDone = compGridEditingDone + Viewport.Width = 299.000000000000000000 + Viewport.Height = 206.000000000000000000 + object StringColumn1: TStringColumn + Header = 'Compositions list' + end + end + object compTopLayout: TLayout + Align = Top + Margins.Left = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Position.X = 5.000000000000000000 + Size.Width = 310.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + object compSwitch: TSwitch + Align = Left + IsChecked = False + Margins.Top = 8.000000000000000000 + Margins.Right = 10.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + ParentShowHint = False + ShowHint = False + OnSwitch = compSwitchSwitch + end + object compSwitchLabel: TLabel Align = Client - Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 250.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + Text = 'Single Composition' + end + object compCount: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Right + StyleLookup = 'spinboxstyle' + Cursor = crIBeam + Min = 2.000000000000000000 + Value = 2.000000000000000000 + Position.X = 208.000000000000000000 + Position.Y = 5.000000000000000000 + Enabled = False Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 96.250000000000000000 - Size.Height = 23.000000000000000000 + Size.Width = 74.000000000000000000 + Size.Height = 30.000000000000000000 Size.PlatformDefault = False - OnValidate = inFrameValidate + Visible = False + OnChange = compCountChange end - object startFrameLabel: TLabel + end + object compName: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Top + Position.X = 5.000000000000000000 + Position.Y = 45.000000000000000000 + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Size.Width = 310.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + TextPrompt = 'Compositon name...' + OnTyping = compNameTyping + end + end + object threadsLayout: TLayout + Align = Client + Anchors = [] + Size.Width = 320.000000000000000000 + Size.Height = 88.000000000000000000 + Size.PlatformDefault = False + object threadsTopLayout: TLayout + Align = Top + Margins.Left = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Position.X = 5.000000000000000000 + Size.Width = 310.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + object threadsSwitch: TSwitch Align = Left - AutoSize = True - Margins.Left = 5.000000000000000000 - Position.X = 5.000000000000000000 - Size.Width = 64.000000000000000000 - Size.Height = 33.000000000000000000 + IsChecked = False + Margins.Top = 8.000000000000000000 + Margins.Right = 10.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + ParentShowHint = False + ShowHint = False + OnSwitch = threadsSwitchSwitch + end + object threadsSwitchLabel: TLabel + Align = Client + Margins.Top = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 250.000000000000000000 + Size.Height = 30.000000000000000000 Size.PlatformDefault = False - TextSettings.WordWrap = False - Text = 'Start Frame:' + Text = 'Single Render' + end + object threadsCount: TComboEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Right + DropDownKind = Custom + ItemHeight = 19.000000000000000000 + Items.Strings = ( + '2' + '4' + '6' + '8' + '12' + '16' + '32' + '64' + '128') + ItemIndex = 0 + Text = '2' + Position.X = 280.500000000000000000 + Position.Y = 8.000000000000000000 + Enabled = False + Margins.Top = 8.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Size.Width = 60.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Visible = False + KillFocusByReturn = True + OnChange = threadsCountChange + OnTyping = threadsCountTyping end end - object Layout2: TLayout + object threadsGrid: TStringGrid Align = Client - Size.Width = 175.250000000000000000 + CanFocus = True + ClipChildren = True + Enabled = False + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 293.000000000000000000 + Size.Height = 191.000000000000000000 + Size.PlatformDefault = False + Visible = False + RowCount = 2 + Options = [ColLines, RowLines, AutoDisplacement] + Viewport.Width = 289.000000000000000000 + Viewport.Height = 187.000000000000000000 + object StringColumn2: TStringColumn + Header = 'In' + Size.Width = 145.000000000000000000 + end + object StringColumn3: TStringColumn + Header = 'Out' + Size.Width = 143.000000000000000000 + end + end + object calculateButton: TButton + Align = Top + Enabled = False + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 5.000000000000000000 + Position.Y = 94.000000000000000000 + Size.Width = 293.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + Text = 'Calculate' + Visible = False + OnClick = calculateButtonClick + end + object framesLayout: TLayout + Align = Top + Position.Y = 40.000000000000000000 + Size.Width = 320.000000000000000000 Size.Height = 33.000000000000000000 Size.PlatformDefault = False - object endFrameLabel: TLabel - Align = Left - AutoSize = True - Margins.Left = 5.000000000000000000 - Position.X = 5.000000000000000000 - Size.Width = 59.000000000000000000 + object GridPanelLayout2: TGridPanelLayout + Align = Client + Size.Width = 320.000000000000000000 Size.Height = 33.000000000000000000 Size.PlatformDefault = False - TextSettings.WordWrap = False - Text = 'End Frame:' + ColumnCollection = < + item + Value = 50.000000000000000000 + end + item + Value = 50.000000000000000000 + end> + ControlCollection = < + item + Column = 0 + Control = Layout1 + Row = 0 + end + item + Column = 1 + Control = Layout2 + Row = 0 + end> + RowCollection = < + item + Value = 100.000000000000000000 + end + item + SizeStyle = Auto + end> + object Layout1: TLayout + Align = Client + Size.Width = 160.000000000000000000 + Size.Height = 33.000000000000000000 + Size.PlatformDefault = False + object inFrame: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 81.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + OnValidate = inFrameValidate + end + object startFrameLabel: TLabel + Align = Left + AutoSize = True + Margins.Left = 5.000000000000000000 + Position.X = 5.000000000000000000 + Size.Width = 64.000000000000000000 + Size.Height = 33.000000000000000000 + Size.PlatformDefault = False + TextSettings.WordWrap = False + Text = 'Start Frame:' + end + end + object Layout2: TLayout + Align = Client + Size.Width = 160.000000000000000000 + Size.Height = 33.000000000000000000 + Size.PlatformDefault = False + object endFrameLabel: TLabel + Align = Left + AutoSize = True + Margins.Left = 5.000000000000000000 + Position.X = 5.000000000000000000 + Size.Width = 59.000000000000000000 + Size.Height = 33.000000000000000000 + Size.PlatformDefault = False + TextSettings.WordWrap = False + Text = 'End Frame:' + end + object outFrame: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + Margins.Left = 5.000000000000000000 + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 86.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + KillFocusByReturn = True + OnValidate = outFrameValidate + end + end end - object outFrame: TEdit - Touch.InteractiveGestures = [LongTap, DoubleTap] - Align = Client + end + object ffmpegConcateLayout: TLayout + Align = Bottom + Enabled = False + Position.Y = 242.000000000000000000 + Size.Width = 350.500000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + Visible = False + object ffmpegCheckBox: TCheckBox + Align = Bottom Margins.Left = 5.000000000000000000 Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 101.250000000000000000 - Size.Height = 23.000000000000000000 + Position.X = 5.000000000000000000 + Position.Y = 6.000000000000000000 + Size.Width = 255.500000000000000000 + Size.Height = 19.000000000000000000 Size.PlatformDefault = False - KillFocusByReturn = True - OnValidate = outFrameValidate + Text = 'Concate using FFMPEG' + end + object ffmpegConfigButton: TButton + Align = MostRight + Enabled = False + Margins.Top = 5.000000000000000000 + Margins.Right = 5.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Position.X = 265.500000000000000000 + Position.Y = 5.000000000000000000 + Size.Width = 80.000000000000000000 + Size.Height = 20.000000000000000000 + Size.PlatformDefault = False + Text = 'Config' + OnClick = ffmpegConfigButtonClick end end end end - object ffmpegConcateLayout: TLayout - Align = Bottom - Enabled = False - Position.Y = 242.000000000000000000 - Size.Width = 350.500000000000000000 - Size.Height = 30.000000000000000000 + object NewTaskStepOneStatusBar: TStatusBar + Margins.Left = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 322.000000000000000000 + ShowSizeGrip = True + Size.Width = 638.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False - Visible = False - object ffmpegCheckBox: TCheckBox - Align = Bottom - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 6.000000000000000000 - Size.Width = 255.500000000000000000 - Size.Height = 19.000000000000000000 + object NewTaskCompButton: TButton + Align = Right + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 530.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 104.000000000000000000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False - Text = 'Concate using FFMPEG' + Text = 'Compositions >>' + OnClick = NewTaskCompButtonClick end - object ffmpegConfigButton: TButton - Align = MostRight - Enabled = False - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 265.500000000000000000 - Position.Y = 5.000000000000000000 - Size.Width = 80.000000000000000000 + object NewTaskCancelButton: TButton + Align = Left + ModalResult = 2 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 4.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 64.000000000000000000 Size.Height = 20.000000000000000000 Size.PlatformDefault = False - Text = 'Config' - OnClick = ffmpegConfigButtonClick + Text = 'Cancel' + OnClick = NewTaskCancelButtonClick end end end + object NewTaskStepOneToolbar: TToolBar + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + PopupMenu = ToolbarPopupMenu + Position.X = 1.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 638.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + object NewTaskStepOneLabel: TLabel + Align = Left + StyledSettings = [Family, FontColor] + Margins.Left = 16.000000000000000000 + Position.X = 16.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Size = 16.000000000000000000 + TextSettings.Font.StyleExt = {00070000000000000004000000} + Text = 'Project Setup' + end + end end - end - object UpdateInfo: TStatusBar - Align = MostBottom - Position.Y = 526.000000000000000000 - ShowSizeGrip = False - Size.Width = 701.000000000000000000 - Size.Height = 35.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'statusbarnogripstyle' - Visible = False - object downloadButton: TButton - Align = Client - Margins.Left = 10.000000000000000000 - Margins.Top = 7.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 7.000000000000000000 - Size.Width = 508.000000000000000000 - Size.Height = 21.000000000000000000 - Size.PlatformDefault = False - Text = 'Download from GitHub' - OnClick = downloadButtonClick - end - object UpdateLabel: TLabel - Align = Left - AutoSize = True - StyledSettings = [Family, FontColor] - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 - Size.Width = 163.000000000000000000 - Size.Height = 35.000000000000000000 + object NewTaskStepTwo: TTabItem + CustomIcon = < + item + end> + IsSelected = False + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 Size.PlatformDefault = False - TextSettings.Font.Size = 14.000000000000000000 - TextSettings.Font.StyleExt = {00070000000000000004000000} - TextSettings.WordWrap = False - Text = 'New version is available!' + StyleLookup = '' + TabOrder = 0 + Text = 'Compositions' + object StatusBar1: TStatusBar + Margins.Left = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 355.000000000000000000 + ShowSizeGrip = True + Size.Width = 638.000000000000000000 + Size.Height = 28.000000000000000000 + Size.PlatformDefault = False + object NewTaskCreateButton: TButton + Align = Right + ModalResult = 1 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 538.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 96.000000000000000000 + Size.Height = 20.000000000000000000 + Size.PlatformDefault = False + Text = 'Create Task' + OnClick = NewTaskCreateButtonClick + end + object Button3: TButton + Align = Left + ModalResult = 2 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 4.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 64.000000000000000000 + Size.Height = 20.000000000000000000 + Size.PlatformDefault = False + Text = 'Cancel' + OnClick = NewTaskCancelButtonClick + end + object NewTaskProjectButton: TButton + Align = Left + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 76.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 104.000000000000000000 + Size.Height = 20.000000000000000000 + Size.PlatformDefault = False + Text = '<< Project Setup' + OnClick = NewTaskProjectButtonClick + end + end + object NewTaskStepTwoToolbar: TToolBar + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + PopupMenu = ToolbarPopupMenu + Position.X = 1.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 638.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + object NewTaskStepTwoLabel: TLabel + Align = Left + StyledSettings = [Family, FontColor] + Margins.Left = 16.000000000000000000 + Position.X = 16.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Size = 16.000000000000000000 + TextSettings.Font.StyleExt = {00070000000000000004000000} + Text = 'Compositions' + end + object NewTaskCompCount: TSpinBox + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Right + Cursor = crIBeam + Min = 1.000000000000000000 + Max = 128.000000000000000000 + Value = 1.000000000000000000 + Position.X = 554.000000000000000000 + Position.Y = 4.000000000000000000 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 80.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + OnChange = NewTaskCompCountChange + end + object NewTaskCompCountLabel: TLabel + Align = Right + AutoSize = True + Position.X = 515.000000000000000000 + Size.Width = 35.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.HorzAlign = Trailing + TextSettings.WordWrap = False + Text = 'Count:' + end + end + object NewTaskCompGrid: TStringGrid + Align = Client + CanFocus = True + ClipChildren = True + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 632.000000000000000000 + Size.Height = 314.000000000000000000 + Size.PlatformDefault = False + RowCount = 1 + Viewport.Width = 628.000000000000000000 + Viewport.Height = 289.000000000000000000 + object StringColumn4: TStringColumn + Header = 'Composition title' + Size.Width = 300.000000000000000000 + end + object IntegerColumn1: TIntegerColumn + Header = 'Start Frame' + end + object IntegerColumn2: TIntegerColumn + Header = 'End Frame' + end + object IntegerColumn3: TIntegerColumn + Header = 'Split' + end + end end end + object PopupAniOpen: TFloatAnimation + AnimationType = InOut + Duration = 0.500000000000000000 + Interpolation = Circular + OnFinish = PopupAniOpenFinish + PropertyName = 'Height' + StartValue = 1.000000000000000000 + StopValue = 384.000000000000000000 + end + object PopupAniClose: TFloatAnimation + AnimationType = InOut + Duration = 0.500000000000000000 + Interpolation = Circular + OnFinish = PopupAniCloseFinish + PropertyName = 'Height' + StartValue = 384.000000000000000000 + StopValue = 1.000000000000000000 + end + end + object ToolbarPopupMenu: TPopupMenu + Left = 984 + Top = 248 + object ToolbarIconsOnly: TMenuItem + AutoCheck = True + GroupIndex = 10 + RadioItem = True + Text = 'Icons Only' + end + object ToolbarIconsAndText: TMenuItem + AutoCheck = True + GroupIndex = 10 + RadioItem = True + IsChecked = True + Text = 'Icons and Text' + end + object ToolbarTextOnly: TMenuItem + AutoCheck = True + GroupIndex = 10 + RadioItem = True + Text = 'Text Only' + end end object BindingsList1: TBindingsList Methods = <> diff --git a/src/MainUnit.pas b/src/MainUnit.pas index 9ddec61..b8541d5 100644 --- a/src/MainUnit.pas +++ b/src/MainUnit.pas @@ -84,6 +84,8 @@ interface FMX.ComboEdit, FMX.Text, FMX.BufferedLayout, + FMX.CompLabel, + FMX.TreeView, {$ENDREGION} {$REGION ' Data Lib Namespaces '} @@ -105,7 +107,8 @@ interface {$ENDREGION} {$REGION ' Windows Only Libraries '}{$IFDEF MSWINDOWS} - Winapi.ShellAPI, Winapi.Windows, FMX.Platform.Win, Winapi.TlHelp32, WinApi.DwmApi, WinApi.UxTheme, WinApi.Messages; + Winapi.ShellAPI, Winapi.Windows, FMX.Platform.Win, Winapi.TlHelp32, WinApi.DwmApi, WinApi.UxTheme, WinApi.Messages, + FMX.TabControl; {$ENDIF MSWINDOWS}{$ENDREGION} {$REGION ' macOS Only Libraries '}{$IFDEF MACOS} @@ -325,6 +328,46 @@ TMainForm = class(TForm) Button1: TButton; recentItem: TMenuItem; separatorItem3: TMenuItem; + TasksToolbar: TToolBar; + Label5: TLabel; + RemoveTaskButton: TButton; + AddTaskButton: TButton; + TasksTreeView: TTreeView; + TreeViewItem2: TTreeViewItem; + TreeViewItem10: TTreeViewItem; + CompLabel1: TCompLabel; + TasksPopupMenu: TPopupMenu; + MenuItem1: TMenuItem; + MenuItem2: TMenuItem; + MenuItem3: TMenuItem; + Popup1: TPopup; + PopupAniOpen: TFloatAnimation; + PopupAniClose: TFloatAnimation; + NewTaskCompButton: TButton; + ToolbarPopupMenu: TPopupMenu; + ToolbarIconsOnly: TMenuItem; + ToolbarIconsAndText: TMenuItem; + ToolbarTextOnly: TMenuItem; + NewTaskTabControl: TTabControl; + NewTaskStepOne: TTabItem; + NewTaskStepTwo: TTabItem; + NewTaskStepOneStatusBar: TStatusBar; + NewTaskCancelButton: TButton; + StatusBar1: TStatusBar; + NewTaskCreateButton: TButton; + Button3: TButton; + NewTaskProjectButton: TButton; + NewTaskStepOneToolbar: TToolBar; + NewTaskStepOneLabel: TLabel; + NewTaskStepTwoToolbar: TToolBar; + NewTaskStepTwoLabel: TLabel; + NewTaskCompGrid: TStringGrid; + StringColumn4: TStringColumn; + IntegerColumn1: TIntegerColumn; + IntegerColumn2: TIntegerColumn; + IntegerColumn3: TIntegerColumn; + NewTaskCompCount: TSpinBox; + NewTaskCompCountLabel: TLabel; procedure FormResize(Sender: TObject); procedure compSwitchSwitch(Sender: TObject); procedure FormCreate(Sender: TObject); @@ -382,8 +425,27 @@ TMainForm = class(TForm) procedure compGridEditingDone(Sender: TObject; const ACol, ARow: Integer); procedure renderSettingsBoxChange(Sender: TObject); + procedure TasksTreeViewDragChange(SourceItem, DestItem: TTreeViewItem; + var Allow: Boolean); + procedure TasksTreeViewKeyDown(Sender: TObject; var Key: Word; + var KeyChar: Char; Shift: TShiftState); + procedure TasksTreeViewMouseMove(Sender: TObject; Shift: TShiftState; + X, Y: Single); + procedure TasksPopupMenuPopup(Sender: TObject); + procedure AddTaskButtonClick(Sender: TObject); + procedure RemoveTaskButtonClick(Sender: TObject); + procedure FloatAnimation1Finish(Sender: TObject); + procedure PopupAniOpenFinish(Sender: TObject); + procedure NewTaskCancelButtonClick(Sender: TObject); + procedure PopupAniCloseFinish(Sender: TObject); + procedure Popup1Popup(Sender: TObject); + procedure NewTaskCompButtonClick(Sender: TObject); + procedure NewTaskProjectButtonClick(Sender: TObject); + procedure NewTaskCreateButtonClick(Sender: TObject); + procedure NewTaskCompCountChange(Sender: TObject); private { Private declarations } + FCurrentItem: String; //{$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} {$IFDEF MSWINDOWS}procedure WMNCPaint(var AMessage: TMessage); message WM_NCPAINT;{$ENDIF} public @@ -436,7 +498,7 @@ RenderSetting = record RenderSettings: TArray; OMCount: Cardinal; //TempOutputModule: OutputModule; (* Temporary Output Module used from import *) - TMathParser: TExpressionParser; (* Mathematical parser for frames calculation *) + TMathParser: TExpressionParser; (* Mathematical parser for frames calculation *) FHandleDragDirectly: Boolean = False; (* For implementation of DragDrop functional *) PARAMSTART: Boolean = False; isRendering: Boolean = False; @@ -462,6 +524,7 @@ implementation {$R *.fmx} +{$REGION ' Custom TComboEdit '} procedure TComboEdit.OnValidateEvent(Sender: TObject; var Text: string); begin TempThreadsStr := Text; @@ -474,6 +537,7 @@ procedure TComboEdit.OnValidatingEvent(Sender: TObject; var Text: string); TempThreadsStr := ''; end; end; +{$ENDREGION} {$REGION ' Routines '} @@ -1035,6 +1099,20 @@ procedure TMainForm.ReInflateRecents; InflateRecents; end; +procedure TMainForm.RemoveTaskButtonClick(Sender: TObject); +begin + //Popup1.IsOpen := False; +end; + +procedure TMainForm.AddTaskButtonClick(Sender: TObject); +begin + //Popup1.Height := 1; + //Popup1. + Popup1.PopupModal; + + //PopupAniOpen.Enabled := True; +end; + procedure TMainForm.renderSettingsBoxChange(Sender: TObject); begin if (renderSettingsBox.ItemIndex = renderSettingsBox.Count - 1) and (renderSettingsBox.Count <> 0) then begin @@ -1066,6 +1144,11 @@ procedure TMainForm.AddToRecents(Item: String); ReInflateRecents; end; +procedure TMainForm.NewTaskProjectButtonClick(Sender: TObject); +begin + NewTaskTabControl.TabIndex := 0; +end; + procedure TMainForm.RecentProjectSelected(Sender: TObject); begin //ShowMessage('selected'); @@ -1321,6 +1404,11 @@ procedure TMainForm.ffmpegConfigButtonClick(Sender: TObject); FFMPEGForm.ShowModal; end; +procedure TMainForm.FloatAnimation1Finish(Sender: TObject); +begin + PopupAniOpen.Enabled := False; +end; + procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); begin if SettingsForm.HandleCheckBox.IsChecked then begin @@ -1635,8 +1723,19 @@ exec = record Compositions[i].CompName := compGrid.Cells[0, i] else Compositions[i].CompName := compName.Text; - Compositions[i].Frames := TFrameSpan.Create(IfThenElse(inFrame.Text = '', -1, StrToInt(inFrame.Text)), IfThenElse(outFrame.Text = '', -1, StrToInt(outFrame.Text))); // yeet - Compositions[i].Split := IfThenElse(threadsSwitch.IsChecked = True, StrToInt(threadsCount.Text), 0); // double yeet + //ShowMessage(IfThenElse(inFrame.Text = '', -1, StrToInt(inFrame.Text)).ToString); + //ShowMessage(IfThenElse(threadsSwitch.IsChecked = True, -1, 0).ToString()); + + if inFrame.Text = '' then + ShowMessage('Empty'); + + var tempInFrame: Integer; var tempOutFrame: Integer; + if inFrame.Text = '' then tempInFrame := -1 else tempInFrame := StrToInt(inFrame.Text); + if inFrame.Text = '' then tempOutFrame := -1 else tempOutFrame := StrToInt(outFrame.Text); + + Compositions[i].Frames := TFrameSpan.Create(tempInFrame, tempOutFrame); + + Compositions[i].Split := IfThenElse(threadsSwitch.IsChecked = True, StrToInt(threadsCount.Text), 0); // yeet end; var Task: TRenderTask := TRenderTask.Create( @@ -1647,7 +1746,7 @@ exec = record missingFilesCheckbox.IsChecked, soundCheckbox.IsChecked, threadedRender.IsChecked, - IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''), // triple yeet + IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''), // double yeet cacheUsageTrackBar.Value, memUsageTrackBar.Value, Compositions @@ -1655,7 +1754,8 @@ exec = record RenderTasks.Add(Task); {$IFDEF DEBUG_MODE} - ShowMessage(Format('Length: %d%sTask[0]: %s', [Length(RenderTasks.ToArray), #13#10, RenderTasks.Items[0].ToString])); + ShowMessage(RenderTasks.Items[0].ToString); + ShowMessage(IntToStr(RenderTasks.Items[0].Count)); {$ENDIF} RenderTasks.Remove(Task); // if threadsSwitch.IsChecked then @@ -1741,7 +1841,7 @@ exec = record // // /// Begin executable compiling section // // Add aerender path to script -// execFile[i].script := execFile[i].script + '"' + AERPATH + '" ' + '-project "' + projectPath.Text + '" -output "' + PATH + '" '; +// execFile[i].script := execFile[i].script + '"' + AErenderPath + '" ' + '-project "' + projectPath.Text + '" -output "' + PATH + '" '; // // // Add comp name to script // if compSwitch.IsChecked then @@ -1964,6 +2064,29 @@ procedure TMainForm.outputModuleBoxChange(Sender: TObject); + '_' + OutputModules[outputModuleBox.ItemIndex].Mask; end; +procedure TMainForm.Popup1Popup(Sender: TObject); +begin + PopupAniOpen.Enabled := True; +end; + +procedure TMainForm.PopupAniCloseFinish(Sender: TObject); +begin + PopupAniClose.Enabled := False; + Popup1.IsOpen := False; + Popup1.Height := 384; + NewTaskTabControl.TabIndex := 0; +end; + +procedure TMainForm.PopupAniOpenFinish(Sender: TObject); +begin + PopupAniOpen.Enabled := False; +end; + +procedure TMainForm.NewTaskCancelButtonClick(Sender: TObject); +begin + PopupAniClose.Enabled := True; +end; + procedure TMainForm.projectPathDragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); begin @@ -2034,18 +2157,102 @@ procedure TMainForm.saveFileClick(Sender: TObject); {$ENDIF MSWINDOWS} end; +/// Settings button click procedure TMainForm.settingsButtonClick(Sender: TObject); begin SettingsForm.ShowModal; end; +procedure TMainForm.NewTaskCompCountChange(Sender: TObject); +begin + NewTaskCompGrid.RowCount := StrToInt(NewTaskCompCount.Text); +end; + +procedure TMainForm.TasksPopupMenuPopup(Sender: TObject); +begin + if (TasksTreeView.ItemByText(FCurrentItem) <> nil) and (FCurrentItem <> 'nil') then + TasksTreeView.ItemByText(FCurrentItem).IsSelected := True; +end; + +procedure TMainForm.TasksTreeViewDragChange(SourceItem, DestItem: TTreeViewItem; var Allow: Boolean); +begin + //if (SourceItem.Level = 1) and (DestItem.Level = 0) then // Comp -> Project + // ShowMessage('Comp -> Project'); + + //if (SourceItem.Level = 1) and (DestItem.Level = 1) then // Comp -> Comp + + try + if (SourceItem.Level = 1) and (DestItem.Level = 1) then // Project[0] -> Project[1] + Allow := False; + + if (SourceItem.Level = 2) and (DestItem.Level = 1) then // Project[0].Comp -> Project[1] + if SourceItem.ParentItem.Text <> DestItem.Text then + Allow := False; + + if (SourceItem.Level = 1) and (DestItem.Level = 2) then // Project[0].Comp -> Project[0].Comp + Allow := False; + + if (SourceItem.Level = 2) and (DestItem.Level = 2) then // Project[0].Comp -> Project[1].Comp + Allow := False; + + except + if SourceItem.Level = 1 then + Allow := True + else + Allow := False; + end; +end; + +/// Implements basic hot-keys for main treeview +/// [Ctrl + D] = Duplicate selected +/// [Del] = Delete selected +procedure TMainForm.TasksTreeViewKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); +begin + if ssCtrl in Shift then + case Key of + 68: begin // [D] + case TasksTreeView.Selected.Level of + 2: begin + ShowMessage(Format('Duplicate comp %s', [TasksTreeView.Selected.Text])); + end; + 1: begin + ShowMessage(Format('Duplicate %s', [TasksTreeView.Selected.Text])); + end; + end; + end; + 90: begin // [Z] + {try + var NewItem: TTreeViewItem := (Temporary.Clone(nil) as TTreeViewItem); + NewItem.Parent := Temporary.Parent; + finally + FreeAndNil(Temporary); + end; } + end; + end + else + case Key of + 46: begin // [Del] + //Temporary := (TasksTreeView.Selected.Clone(nil) as TTreeViewItem); + //Temporary.Parent := TasksTreeView.Selected.Parent; + FreeAndNil(TasksTreeView.Selected); + end; + end; +end; + +procedure TMainForm.TasksTreeViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); +begin + if TasksTreeView.ItemByPoint(X, Y) <> nil then + FCurrentItem := TasksTreeView.ItemByPoint(X, Y).Text + else + FCurrentItem := 'nil'; +end; + procedure TMainForm.compCountChange(Sender: TObject); begin compGrid.RowCount := Round(compCount.Value); end; -procedure TMainForm.compGridEditingDone(Sender: TObject; const ACol, - ARow: Integer); +procedure TMainForm.compGridEditingDone(Sender: TObject; const ACol, ARow: Integer); begin compName.Text := compGrid.Cells[0, 0]; end; @@ -2124,8 +2331,7 @@ procedure TMainForm.threadsSwitchSwitch(Sender: TObject); end; end; -procedure TMainForm.UpdateNetHTTPClientRequestCompleted( - const Sender: TObject; const AResponse: IHTTPResponse); +procedure TMainForm.UpdateNetHTTPClientRequestCompleted(const Sender: TObject; const AResponse: IHTTPResponse); begin gitRelease := TJsonObject.ParseJSONValue(AResponse.ContentAsString(TEncoding.UTF8)); gitVersion := gitRelease.A[0].P['tag_name'].Value; @@ -2188,21 +2394,20 @@ procedure TMainForm.memUsageInfoEditValidate(Sender: TObject; tempText: String; begin tempText := memUsageInfoEdit.Text; - if (tempText.Contains ('unl') or tempText.Contains('max')) then + if (tempText.Contains('unl') or tempText.Contains('max')) then memUsageInfoEdit.Text := Trunc(GetPlatformMemorySize / 1024 / 1024 + 1).ToString else begin - if (((tempText.Contains ('mb')) or (tempText.Contains ('Mb')) or (tempText.Contains ('MB')) or (tempText.Contains ('mB'))) - or not (tempText[tempText.Length].IsDigit)) then + if ((tempText.ToLower.Contains('mb')) or not (tempText[tempText.Length].IsDigit)) then memUsageInfoEdit.Text := memUsageInfoEdit.Text.Remove(memUsageInfoEdit.Text.Length - 3); - if (tempText.Contains ('kb')) or (tempText.Contains ('Kb')) or (tempText.Contains ('KB')) or (tempText.Contains ('kB')) then + if tempText.ToLower.Contains('kb') then memUsageInfoEdit.Text := (memUsageInfoEdit.Text.ToInteger() / 1024).ToString; //KB -> MB - if (tempText.Contains ('gb')) or (tempText.Contains ('Gb')) or (tempText.Contains ('GB')) or (tempText.Contains ('gB')) then + if tempText.ToLower.Contains('gb') then memUsageInfoEdit.Text := (memUsageInfoEdit.Text.ToInteger() * 1024).ToString; //GB -> MB end; - if tempText.Contains ('%') then + if tempText.Contains('%') then begin if tempText[tempText.IndexOf('%') - 1] = ' ' then memUsageInfoEdit.Text := memUsageInfoEdit.Text.Remove(memUsageInfoEdit.Text.Length - 2) @@ -2233,6 +2438,16 @@ procedure TMainForm.memUsageTrackBarChange(Sender: TObject); memUsageInfo.Text := Trunc(memUsageTrackBar.Value).ToString + '% (' + Trunc((GetPlatformMemorySize/1024/1024) * (memUsageTrackBar.Value / 100)).ToString + ' MB)'; end; +procedure TMainForm.NewTaskCompButtonClick(Sender: TObject); +begin + NewTaskTabControl.TabIndex := 1; +end; + +procedure TMainForm.NewTaskCreateButtonClick(Sender: TObject); +begin + PopupAniClose.Enabled := True; +end; + procedure TMainForm.cacheUsageInfoClick(Sender: TObject); begin cacheUsageInfoEdit.Text := Trunc(cacheUsageTrackBar.Value).ToString + '%'; diff --git a/src/OutputModuleEditorUnit.fmx b/src/OutputModuleEditorUnit.fmx index e655c44..423742c 100644 --- a/src/OutputModuleEditorUnit.fmx +++ b/src/OutputModuleEditorUnit.fmx @@ -17,13 +17,13 @@ object OutputModuleEditorForm: TOutputModuleEditorForm DesignerMasterStyle = 0 object propertiesLayout: TLayout Align = Client - Size.Width = 491.000000000000000000 - Size.Height = 339.000000000000000000 + Size.Width = 493.000000000000000000 + Size.Height = 340.000000000000000000 Size.PlatformDefault = False TabOrder = 1 object outputModuleNameLayout: TLayout Align = Top - Size.Width = 491.000000000000000000 + Size.Width = 493.000000000000000000 Size.Height = 30.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -44,7 +44,7 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Margins.Top = 4.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 4.000000000000000000 - Size.Width = 356.000000000000000000 + Size.Width = 358.000000000000000000 Size.Height = 22.000000000000000000 Size.PlatformDefault = False TextPrompt = 'Specify output module' @@ -53,8 +53,8 @@ object OutputModuleEditorForm: TOutputModuleEditorForm end object filenameBuilderLayout: TLayout Align = Client - Size.Width = 491.000000000000000000 - Size.Height = 309.000000000000000000 + Size.Width = 493.000000000000000000 + Size.Height = 310.000000000000000000 Size.PlatformDefault = False TabOrder = 1 object fileMaskLabel: TLabel @@ -65,7 +65,7 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Margins.Bottom = 5.000000000000000000 Position.X = 5.000000000000000000 Position.Y = 5.000000000000000000 - Size.Width = 481.000000000000000000 + Size.Width = 483.000000000000000000 Size.Height = 17.000000000000000000 Size.PlatformDefault = False TextSettings.HorzAlign = Center @@ -78,23 +78,23 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 481.000000000000000000 - Size.Height = 222.000000000000000000 + Size.Width = 483.000000000000000000 + Size.Height = 223.000000000000000000 Size.PlatformDefault = False TabIndex = 0 TabOrder = 2 TabPosition = PlatformDefault Sizes = ( - 477s - 196s - 477s - 196s - 477s - 196s - 477s - 196s - 477s - 196s) + 479s + 197s + 479s + 197s + 479s + 197s + 479s + 197s + 479s + 197s) object projectTab: TTabItem CanFocus = False CustomIcon = < @@ -115,8 +115,8 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 467.000000000000000000 - Size.Height = 186.000000000000000000 + Size.Width = 469.000000000000000000 + Size.Height = 187.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Justify = Center @@ -144,8 +144,8 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 467.000000000000000000 - Size.Height = 186.000000000000000000 + Size.Width = 469.000000000000000000 + Size.Height = 187.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Justify = Center @@ -173,8 +173,8 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 467.000000000000000000 - Size.Height = 186.000000000000000000 + Size.Width = 469.000000000000000000 + Size.Height = 187.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Justify = Center @@ -202,8 +202,8 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 467.000000000000000000 - Size.Height = 186.000000000000000000 + Size.Width = 469.000000000000000000 + Size.Height = 187.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Justify = Center @@ -231,8 +231,8 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Size.Width = 467.000000000000000000 - Size.Height = 186.000000000000000000 + Size.Width = 469.000000000000000000 + Size.Height = 187.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Justify = Center @@ -249,7 +249,7 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Position.Y = 27.000000000000000000 Margins.Left = 5.000000000000000000 Margins.Right = 5.000000000000000000 - Size.Width = 481.000000000000000000 + Size.Width = 483.000000000000000000 Size.Height = 50.000000000000000000 Size.PlatformDefault = False TextPrompt = 'Type or drag from bottom panel available parameters' @@ -261,7 +261,7 @@ object OutputModuleEditorForm: TOutputModuleEditorForm end object PresetsConfiguratorToolbar: TToolBar Size.Width = 700.000000000000000000 - Size.Height = 33.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 object WindowLabel: TLabel @@ -271,7 +271,7 @@ object OutputModuleEditorForm: TOutputModuleEditorForm Margins.Left = 20.000000000000000000 Position.X = 20.000000000000000000 Size.Width = 273.000000000000000000 - Size.Height = 33.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 16.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} @@ -282,9 +282,14 @@ object OutputModuleEditorForm: TOutputModuleEditorForm end object outputModulesBox: TListBox Align = Left - Position.Y = 33.000000000000000000 + Margins.Left = -1.000000000000000000 + Margins.Top = -1.000000000000000000 + Margins.Right = -1.000000000000000000 + Margins.Bottom = -1.000000000000000000 + Position.X = -1.000000000000000000 + Position.Y = 31.000000000000000000 Size.Width = 200.000000000000000000 - Size.Height = 339.000000000000000000 + Size.Height = 342.000000000000000000 Size.PlatformDefault = False TabOrder = 2 DisableFocusEffect = True @@ -293,16 +298,16 @@ object OutputModuleEditorForm: TOutputModuleEditorForm DefaultItemStyles.GroupFooterStyle = '' OnChange = outputModulesBoxChange Viewport.Width = 196.000000000000000000 - Viewport.Height = 335.000000000000000000 + Viewport.Height = 338.000000000000000000 end object Splitter1: TSplitter Align = Left Cursor = crHSplit MinSize = 20.000000000000000000 - Position.X = 200.000000000000000000 - Position.Y = 33.000000000000000000 + Position.X = 198.000000000000000000 + Position.Y = 32.000000000000000000 Size.Width = 9.000000000000000000 - Size.Height = 339.000000000000000000 + Size.Height = 340.000000000000000000 Size.PlatformDefault = False end object StatusBar1: TStatusBar @@ -371,12 +376,12 @@ object OutputModuleEditorForm: TOutputModuleEditorForm object addModuleButton: TButton Align = Client StyledSettings = [Family, FontColor] - Margins.Left = 3.000000000000000000 - Margins.Top = 3.000000000000000000 - Margins.Right = 3.000000000000000000 - Margins.Bottom = 3.000000000000000000 - Size.Width = 24.000000000000000000 - Size.Height = 24.000000000000000000 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 22.000000000000000000 + Size.Height = 22.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Text = '+' @@ -387,12 +392,12 @@ object OutputModuleEditorForm: TOutputModuleEditorForm object removeModuleButton: TButton Align = Client StyledSettings = [Family, FontColor] - Margins.Left = 3.000000000000000000 - Margins.Top = 3.000000000000000000 - Margins.Right = 3.000000000000000000 - Margins.Bottom = 3.000000000000000000 - Size.Width = 24.000000000000000000 - Size.Height = 24.000000000000000000 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 22.000000000000000000 + Size.Height = 22.000000000000000000 Size.PlatformDefault = False TabOrder = 1 Text = '-' @@ -402,13 +407,12 @@ object OutputModuleEditorForm: TOutputModuleEditorForm end object saveModulesButton: TButton Align = Client - ModalResult = 8 - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 80.000000000000000000 - Size.Height = 20.000000000000000000 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 82.000000000000000000 + Size.Height = 22.000000000000000000 Size.PlatformDefault = False TabOrder = 2 Text = 'Save' @@ -416,12 +420,12 @@ object OutputModuleEditorForm: TOutputModuleEditorForm end object cancelButton: TButton Align = Client - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 65.000000000000000000 - Size.Height = 20.000000000000000000 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 67.000000000000000000 + Size.Height = 22.000000000000000000 Size.PlatformDefault = False TabOrder = 3 Text = 'Cancel' diff --git a/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style b/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style index 837e1ff..7ddcb91 100644 --- a/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style +++ b/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style @@ -2163,116 +2163,6 @@ object TStyleContainer Size.PlatformDefault = False end end - object TLayout - StyleName = 'comboeditstyle' - Align = Center - Size.Width = 100.000000000000000000 - Size.Height = 25.000000000000000000 - Size.PlatformDefault = False - Visible = False - TabOrder = 34 - object TLayout - StyleName = 'background' - Align = Contents - Size.Width = 100.000000000000000000 - Size.Height = 25.000000000000000000 - Size.PlatformDefault = False - object TRectangle - StyleName = 'Rectangle1' - Align = Client - Fill.Color = xFF202020 - HitTest = False - Size.Width = 100.000000000000000000 - Size.Height = 25.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - XRadius = 3.000000000000000000 - YRadius = 3.000000000000000000 - object TLayout - StyleName = 'ButtonStyleObject' - Align = FitRight - Margins.Top = 1.000000000000000000 - Margins.Right = 1.000000000000000000 - Margins.Bottom = 1.000000000000000000 - Position.X = 75.924545288085940000 - Position.Y = 1.000000000000000000 - Size.Width = 23.075454711914060000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - object TLayout - StyleName = 'Layout1' - Align = Center - Margins.Left = 1.000000000000000000 - Size.Width = 10.000000000000000000 - Size.Height = 6.000000000000000000 - Size.PlatformDefault = False - object TPath - StyleName = 'Path1' - Align = Client - Data.Path = { - 04000000000000000000C8420000C84201000000000096430000C84201000000 - 0000484300009643030000000000C8420000C842} - Fill.Color = claWhite - HitTest = False - Size.Width = 10.000000000000000000 - Size.Height = 6.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - end - end - end - object TColorAnimation - StyleName = 'buttonColorAnimation1' - Duration = 0.100000001490116100 - PropertyName = 'Fill.Color' - StartValue = xFF202020 - StopValue = xFF404040 - Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' - TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' - end - object TColorAnimation - StyleName = 'buttonColorAnimation2' - Duration = 0.100000001490116100 - PropertyName = 'Fill.Color' - StartValue = xFF404040 - StopValue = xFF17579C - Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=false' - end - object TColorAnimation - StyleName = 'buttonColorAnimation3' - Duration = 0.100000001490116100 - PropertyName = 'Fill.Color' - StartValue = xFF2A82E2 - StopValue = xFF17579C - Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' - TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' - end - end - end - object TBrushObject - StyleName = 'foreground' - end - object TFontObject - StyleName = 'font' - Font.Size = 13.000000000000000000 - end - object TLayout - StyleName = 'content' - Align = Client - Locked = True - Margins.Left = 2.000000000000000000 - Margins.Top = 2.000000000000000000 - Margins.Right = 27.000000000000000000 - Margins.Bottom = 2.000000000000000000 - Size.Width = 71.000000000000000000 - Size.Height = 21.000000000000000000 - Size.PlatformDefault = False - end - object TBrushObject - StyleName = 'selection' - Brush.Color = x962A82E2 - end - end object TLayout StyleName = 'splitterstyle' Align = Center @@ -2280,7 +2170,7 @@ object TStyleContainer Size.Height = 96.750000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 35 + TabOrder = 34 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -2336,7 +2226,7 @@ object TStyleContainer Size.Height = 21.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 36 + TabOrder = 35 object TLayout Align = Left Size.Width = 21.000000000000000000 @@ -2570,7 +2460,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 43 + TabOrder = 42 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -2641,60 +2531,6 @@ object TStyleContainer TextSettings.FontColor = claWhite end end - object TLayout - StyleName = 'progressbarministyle' - Align = Center - Size.Width = 66.599998474121090000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Visible = False - TabOrder = 46 - object TRectangle - StyleName = 'htrack' - Align = Contents - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 66.599998474121090000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Stroke.Kind = None - object TRectangle - StyleName = 'hindicator' - Align = Left - Fill.Color = xFF2A82E2 - Locked = True - HitTest = False - Size.Width = 50.000000000000000000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Stroke.Kind = None - end - end - object TRectangle - StyleName = 'vtrack' - Align = Contents - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 66.599998474121090000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Stroke.Kind = None - object TRectangle - StyleName = 'vindicator' - Align = Bottom - Fill.Color = xFF2A82E2 - Locked = True - HitTest = False - Position.Y = 35.399997711181640000 - Size.Width = 66.599998474121090000 - Size.Height = 21.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - end - end - end object TLayout StyleName = 'aniindicatorhorzstyle' Align = Center @@ -2750,6 +2586,7 @@ object TStyleContainer Align = Client ClipChildren = True ClipParent = True + Corners = [TopRight, BottomRight] Fill.Color = xFF202020 HitTest = False Size.Width = 96.000000000000000000 @@ -2829,7 +2666,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 49 + TabOrder = 46 object TPath StyleName = 'Path1' Align = Center @@ -2862,7 +2699,7 @@ object TStyleContainer Size.Height = 33.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 52 + TabOrder = 50 object TLayout Align = Left Size.Width = 24.000000000000000000 @@ -2935,7 +2772,7 @@ object TStyleContainer Size.Height = 103.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 57 + TabOrder = 55 object TRectangle StyleName = 'bgrectangle' Align = Contents @@ -3034,4 +2871,714 @@ object TStyleContainer end end end + object TLayout + StyleName = 'panelstyle' + Align = Center + Size.Width = 192.000000000000000000 + Size.Height = 164.000000000000000000 + Size.PlatformDefault = False + Visible = False + object TRectangle + StyleName = 'background' + Align = Contents + Fill.Color = xFF202020 + Size.Width = 192.000000000000000000 + Size.Height = 164.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + end + object TLayout + StyleName = 'progressbarminierrorstyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFFE22A2A + Locked = True + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFFE22A2A + Locked = True + HitTest = False + Position.Y = 35.399997711181640000 + Size.Width = 66.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + end + end + end + object TLayout + StyleName = 'progressbarministyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + TabOrder = 45 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFF2A82E2 + Locked = True + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFF2A82E2 + Locked = True + HitTest = False + Position.Y = 35.399997711181640000 + Size.Width = 66.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + end + end + end + object TLayout + StyleName = 'comboeditstyle' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 49 + object TBrushObject + StyleName = 'foreground' + end + object TFontObject + StyleName = 'font' + Font.Size = 13.000000000000000000 + end + object TLayout + StyleName = 'background' + Align = Contents + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'Rectangle1' + Align = Client + Fill.Color = xFF202020 + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF202020 + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TColorAnimation + StyleName = 'ColorAnimation1Style' + Duration = 0.100000001490116100 + Inverse = True + PropertyName = 'Stroke.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'ColorAnimation2Style' + Duration = 0.100000001490116100 + Inverse = True + PropertyName = 'Stroke.Color' + StartValue = xFF404040 + StopValue = xFF2A82E2 + Trigger = 'IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsMouseOver=true;IsFocused=false' + end + object TLayout + StyleName = 'arrow' + Align = FitRight + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 75.924545288085940000 + Position.Y = 1.000000000000000000 + Size.Width = 23.075454711914060000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'Rectangle1' + Align = Contents + Corners = [TopRight, BottomRight] + Fill.Color = xFF303030 + HitTest = False + Size.Width = 23.075454711914060000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TColorAnimation + StyleName = 'ColorAnimation1Style' + Duration = 0.100000001490116100 + Inverse = True + PropertyName = 'Fill.Color' + StartValue = xFF303030 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'ColorAnimation2Style' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = xFF404040 + StopValue = xFF17579C + Trigger = 'IsFocused=true;IsMouseOver=true' + end + end + object TLayout + StyleName = 'Layout1' + Align = Center + Margins.Left = 1.000000000000000000 + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + object TPath + StyleName = 'Path1' + Align = Client + Data.Path = { + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C842} + Fill.Color = claWhite + HitTest = False + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + end + end + object TBrushObject + StyleName = 'selection' + Brush.Color = x962A82E2 + end + object TLayout + StyleName = 'content' + Align = Client + Margins.Left = 2.000000000000000000 + Margins.Top = 2.000000000000000000 + Margins.Right = 30.000000000000000000 + Margins.Bottom = 2.000000000000000000 + Size.Width = 68.000000000000000000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + end + end + object TLayout + StyleName = 'menubaritemstyle' + Align = Center + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 73.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 36 + object TRectangle + Align = Contents + Fill.Color = xFF2A82E2 + HitTest = False + Opacity = 0.000099999997473788 + Size.Width = 73.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TFloatAnimation + Duration = 0.000200000009499490 + PropertyName = 'Opacity' + StartValue = 0.000000000000000000 + StopValue = 1.000000000000000000 + Trigger = 'IsSelected=true' + TriggerInverse = 'IsSelected=false' + end + end + object TRectangle + StyleName = 'background' + Align = Contents + Fill.Color = xFF2A82E2 + HitTest = False + Opacity = 0.000000000000000000 + Size.Width = 73.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TFloatAnimation + Duration = 0.000200000009499490 + Inverse = True + PropertyName = 'Opacity' + StartValue = 0.000000000000000000 + StopValue = 1.000000000000000000 + Trigger = 'IsMouseOver=true' + TriggerInverse = 'IsMouseOver=false' + end + end + object TLayout + StyleName = 'glyph' + Align = Left + Size.Width = 25.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + object TLayout + StyleName = 'checkmark' + Align = Contents + Opacity = 0.001000000047497451 + Size.Width = 25.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + object TPath + Align = Center + Data.Path = { + 070000000000000056D9524391AE2C4301000000927666436502164301000000 + 9F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB04375A4D142 + 0100000026DF8243263F67430300000056D9524391AE2C43} + Fill.Color = claWhite + HitTest = False + Size.Width = 11.000000000000000000 + Size.Height = 11.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + object TFloatAnimation + Duration = 0.100000001490116100 + PropertyName = 'Opacity' + StartValue = 0.000000000000000000 + StopValue = 1.000000000000000000 + Trigger = 'IsChecked=true' + TriggerInverse = 'IsChecked=false' + end + end + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 1.000000000000000000 + Margins.Top = 2.000000000000000000 + Margins.Right = 3.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Align = Right + Position.X = 6.000000000000000000 + Position.Y = 2.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + end + object TImage + StyleName = 'bitmap' + MultiResBitmap = < + item + end> + Align = Contents + Margins.Left = 2.000000000000000000 + Margins.Top = 2.000000000000000000 + Margins.Right = 2.000000000000000000 + Margins.Bottom = 2.000000000000000000 + Size.Width = 21.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + end + object TText + StyleName = 'text' + Align = Left + Locked = True + HitTest = False + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 33.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + TextSettings.HorzAlign = Leading + end + object TText + StyleName = 'shortcut' + Align = Right + Locked = True + HitTest = False + Margins.Left = 12.000000000000000000 + Margins.Right = 6.000000000000000000 + Position.X = -3.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + TextSettings.HorzAlign = Leading + end + object TLayout + StyleName = 'submark' + Align = Right + Position.X = 53.000000000000000000 + Size.Width = 20.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + object TPath + Align = Center + Data.Path = { + 0400000000000000000000000000000001000000000000000000803F01000000 + 0000803F0000003F030000000000000000000000} + Fill.Color = claWhite + Locked = True + HitTest = False + Size.Width = 7.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + object TRectangle + StyleName = 'menubarstyle' + Align = Center + ClipChildren = True + Fill.Kind = None + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + Visible = False + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TRectangle + Align = Client + Fill.Color = xFF202020 + HitTest = False + Margins.Left = -1.000000000000000000 + Margins.Top = -1.000000000000000000 + Margins.Right = -1.000000000000000000 + Size.Width = 52.000000000000000000 + Size.Height = 51.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + object TLayout + StyleName = 'content' + Align = Client + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 48.000000000000000000 + Size.Height = 48.000000000000000000 + Size.PlatformDefault = False + end + end + object TLayout + StyleName = 'menuitemstyle' + Align = Center + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 73.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 37 + object TRectangle + Align = Contents + Fill.Color = xFF2A82E2 + HitTest = False + Opacity = 0.000099999997473788 + Size.Width = 73.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TFloatAnimation + Duration = 0.000200000009499490 + PropertyName = 'Opacity' + StartValue = 0.000000000000000000 + StopValue = 1.000000000000000000 + Trigger = 'IsSelected=true' + TriggerInverse = 'IsSelected=false' + end + end + object TRectangle + StyleName = 'background' + Align = Contents + Fill.Color = xFF2A82E2 + HitTest = False + Opacity = 0.000000000000000000 + Size.Width = 73.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TFloatAnimation + Duration = 0.000200000009499490 + Inverse = True + PropertyName = 'Opacity' + StartValue = 0.000000000000000000 + StopValue = 1.000000000000000000 + Trigger = 'IsMouseOver=true' + TriggerInverse = 'IsMouseOver=false' + end + end + object TLayout + StyleName = 'glyph' + Align = Left + Size.Width = 25.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + object TLayout + StyleName = 'checkmark' + Align = Contents + Opacity = 0.001000000047497451 + Size.Width = 25.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + object TPath + Align = Center + Data.Path = { + 070000000000000056D9524391AE2C4301000000927666436502164301000000 + 9F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB04375A4D142 + 0100000026DF8243263F67430300000056D9524391AE2C43} + Fill.Color = claWhite + HitTest = False + Size.Width = 11.000000000000000000 + Size.Height = 11.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + object TFloatAnimation + Duration = 0.100000001490116100 + PropertyName = 'Opacity' + StartValue = 0.000000000000000000 + StopValue = 1.000000000000000000 + Trigger = 'IsChecked=true' + TriggerInverse = 'IsChecked=false' + end + end + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 1.000000000000000000 + Margins.Top = 2.000000000000000000 + Margins.Right = 3.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Align = Left + Position.X = 1.000000000000000000 + Position.Y = 2.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + end + object TImage + StyleName = 'bitmap' + MultiResBitmap = < + item + end> + Align = Left + Margins.Left = 2.000000000000000000 + Margins.Top = 2.000000000000000000 + Margins.Right = 2.000000000000000000 + Margins.Bottom = 2.000000000000000000 + Position.X = 2.000000000000000000 + Position.Y = 2.000000000000000000 + Size.Width = 21.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + end + end + object TText + StyleName = 'text' + Align = Left + Locked = True + HitTest = False + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 33.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + TextSettings.HorzAlign = Leading + end + object TText + StyleName = 'shortcut' + Align = Right + Locked = True + HitTest = False + Margins.Left = 12.000000000000000000 + Margins.Right = 6.000000000000000000 + Position.X = -3.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + TextSettings.HorzAlign = Leading + end + object TLayout + StyleName = 'submark' + Align = Right + Position.X = 53.000000000000000000 + Size.Width = 20.000000000000000000 + Size.Height = 26.000000000000000000 + Size.PlatformDefault = False + object TPath + Align = Center + Data.Path = { + 0400000000000000000000000000000001000000000000000000803F01000000 + 0000803F0000003F030000000000000000000000} + Fill.Color = claWhite + Locked = True + HitTest = False + Size.Width = 7.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + object TLayout + StyleName = 'menuseparatorstyle' + Align = Center + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 39 + object TLine + Align = Top + LineType = Top + Margins.Left = 3.000000000000000000 + Margins.Top = 2.000000000000000000 + Margins.Right = 3.000000000000000000 + Position.X = 3.000000000000000000 + Position.Y = 2.000000000000000000 + Size.Width = 44.000000000000000000 + Size.Height = 1.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + end + object TRectangle + StyleName = 'menuviewstyle' + Align = Center + Fill.Color = xFF202020 + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + Visible = False + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TRectangle + Align = Client + Fill.Color = xFF202020 + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TShadowEffect + Distance = 3.000000000000000000 + Direction = 90.000000000000000000 + Softness = 0.500000000000000000 + Opacity = 0.500000000000000000 + ShadowColor = claBlack + end + end + object TLayout + StyleName = 'content' + Align = Client + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 48.000000000000000000 + Size.Height = 48.000000000000000000 + Size.PlatformDefault = False + end + end end diff --git a/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style b/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style index 74bbe0a..a51cd4b 100644 --- a/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style +++ b/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style @@ -3540,60 +3540,6 @@ object TStyleContainer TextSettings.FontColor = claWhite end end - object TLayout - StyleName = 'progressbarministyle' - Align = Center - Size.Width = 66.599998474121090000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Visible = False - TabOrder = 55 - object TRectangle - StyleName = 'htrack' - Align = Contents - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 66.599998474121090000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Stroke.Kind = None - object TRectangle - StyleName = 'hindicator' - Align = Left - Fill.Color = xFF2A82E2 - Locked = True - HitTest = False - Size.Width = 50.000000000000000000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Stroke.Kind = None - end - end - object TRectangle - StyleName = 'vtrack' - Align = Contents - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 66.599998474121090000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Stroke.Kind = None - object TRectangle - StyleName = 'vindicator' - Align = Bottom - Fill.Color = xFF2A82E2 - Locked = True - HitTest = False - Position.Y = 35.399997711181640000 - Size.Width = 66.599998474121090000 - Size.Height = 21.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - end - end - end object TLayout StyleName = 'comboeditstyle' Align = Center @@ -3601,7 +3547,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 58 + TabOrder = 57 object TBrushObject StyleName = 'foreground' end @@ -3758,7 +3704,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 63 + TabOrder = 62 object TPath StyleName = 'Path1' Align = Center @@ -3791,7 +3737,7 @@ object TStyleContainer Size.Height = 33.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 67 + TabOrder = 66 object TLayout Align = Left Size.Width = 24.000000000000000000 @@ -3989,7 +3935,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 62 + TabOrder = 61 object TRectangle StyleName = 'bgrectangle' Align = Contents diff --git a/styles/AErender Modern/AERFMXStyleMacOS.style b/styles/AErender Modern/AERFMXStyleMacOS.style index 69d3dd6..932a7e5 100644 --- a/styles/AErender Modern/AERFMXStyleMacOS.style +++ b/styles/AErender Modern/AERFMXStyleMacOS.style @@ -3087,6 +3087,8 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 object TRectangle StyleName = 'hindicator' Align = Left @@ -3097,6 +3099,8 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 end end object TRectangle @@ -3109,6 +3113,8 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 object TRectangle StyleName = 'vindicator' Align = Bottom @@ -3120,6 +3126,8 @@ object TStyleContainer Size.Height = 21.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 end end end @@ -3575,6 +3583,8 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 object TRectangle StyleName = 'hindicator' Align = Left @@ -3585,6 +3595,8 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 end end object TRectangle @@ -3597,6 +3609,8 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 object TRectangle StyleName = 'vindicator' Align = Bottom @@ -3608,6 +3622,8 @@ object TStyleContainer Size.Height = 21.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 end end end @@ -3696,4 +3712,218 @@ object TStyleContainer end end end + object TLayout + StyleName = 'treeviewexpanderbuttonstyle' + Align = Center + Margins.Top = 1.000000000000000000 + Size.Width = 22.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Visible = False + object TPath + StyleName = 'Path1' + Align = Center + Data.Path = { + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C842} + Fill.Color = claWhite + HitTest = False + RotationAngle = -90.000000000000000000 + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TFloatAnimation + StyleName = 'FloatAnimation1Style' + Duration = 0.000000000000000000 + Interpolation = Circular + PropertyName = 'RotationAngle' + StartValue = -90.000000000000000000 + StopValue = 0.000000000000000000 + Trigger = 'IsExpanded=true' + TriggerInverse = 'IsExpanded=false' + end + end + end + object TLayout + StyleName = 'treeviewstyle' + Align = Center + Size.Width = 225.000000000000000000 + Size.Height = 259.000000000000000000 + Size.PlatformDefault = False + Visible = False + object TBrushObject + StyleName = 'AlternatingRowBackground' + Brush.Color = x0FFFFFFF + end + object TRectangle + StyleName = 'background' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Padding.Left = 1.000000000000000000 + Padding.Right = 1.000000000000000000 + Size.Width = 225.000000000000000000 + Size.Height = 259.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'content' + Align = Client + ClipChildren = True + Margins.Top = 1.000000000000000000 + Size.Width = 205.000000000000000000 + Size.Height = 240.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'selection' + Fill.Color = xFF2A82E2 + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + object TRectangle + StyleName = 'focusedselection' + Fill.Color = xFF2A82E2 + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + Stroke.Dash = Dot + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + end + object TScrollBar + StyleName = 'vscrollbar' + Align = Right + SmallChange = 0.000000000000000000 + Orientation = Vertical + Margins.Left = 2.000000000000000000 + Position.X = 208.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 241.000000000000000000 + Size.PlatformDefault = False + end + object TScrollBar + StyleName = 'hscrollbar' + Align = Bottom + SmallChange = 0.000000000000000000 + Orientation = Horizontal + Margins.Top = 2.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 243.000000000000000000 + Size.Width = 223.000000000000000000 + Size.Height = 16.000000000000000000 + Size.PlatformDefault = False + end + object TSmallScrollBar + StyleName = 'vsmallscrollbar' + Align = Right + SmallChange = 0.000000000000000000 + Orientation = Vertical + Margins.Left = 2.000000000000000000 + Position.X = 99.000000000000000000 + Position.Y = 2.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Visible = False + end + object TSmallScrollBar + StyleName = 'hsmallscrollbar' + Align = Bottom + SmallChange = 0.000000000000000000 + Orientation = Horizontal + Margins.Top = 2.000000000000000000 + Position.X = 2.000000000000000000 + Position.Y = 113.000000000000000000 + Size.Width = 150.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Visible = False + end + end + end + object TRectangle + StyleName = 'treeviewitemstyle' + Align = Center + Fill.Kind = None + HitTest = False + Sides = [Bottom] + Size.Width = 87.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + Stroke.Join = Round + Visible = False + object TSpeedButton + StyleName = 'button' + Align = Left + Size.Width = 20.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'treeviewexpanderbuttonstyle' + end + object TLayout + Align = Contents + Margins.Left = 20.000000000000000000 + Size.Width = 67.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + object TCheckBox + StyleName = 'check' + Align = Left + CanFocus = False + DisableFocusEffect = True + Size.Width = 20.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + end + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 2.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 2.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Align = Left + Position.X = 22.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 38.000000000000000000 + Size.PlatformDefault = False + end + object TText + StyleName = 'text' + Align = Client + Locked = True + HitTest = False + Size.Width = 27.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + TextSettings.WordWrap = False + TextSettings.HorzAlign = Leading + end + end + object TRectangle + Align = FitLeft + Fill.Kind = None + HitTest = False + Margins.Bottom = 1.000000000000000000 + Sides = [Left] + Size.Width = 68.760925292968750000 + Size.Height = 39.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF2A82E2 + Stroke.Thickness = 2.000000000000000000 + end + end end diff --git a/styles/AErender Modern/AERFMXStyleWindows.style b/styles/AErender Modern/AERFMXStyleWindows.style index 8f14f6d..02b6b73 100644 --- a/styles/AErender Modern/AERFMXStyleWindows.style +++ b/styles/AErender Modern/AERFMXStyleWindows.style @@ -4761,4 +4761,212 @@ object TStyleContainer end end end + object TLayout + StyleName = 'treeviewexpanderbuttonstyle' + Align = Center + Margins.Top = 1.000000000000000000 + Size.Width = 22.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Visible = False + object TPath + StyleName = 'Path1' + Align = Center + Data.Path = { + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C842} + Fill.Color = claWhite + HitTest = False + RotationAngle = -90.000000000000000000 + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TFloatAnimation + StyleName = 'FloatAnimation1Style' + Duration = 0.000000000000000000 + Interpolation = Circular + PropertyName = 'RotationAngle' + StartValue = -90.000000000000000000 + StopValue = 0.000000000000000000 + Trigger = 'IsExpanded=true' + TriggerInverse = 'IsExpanded=false' + end + end + end + object TRectangle + StyleName = 'treeviewitemstyle' + Align = Center + Fill.Kind = None + HitTest = False + Sides = [Bottom] + Size.Width = 87.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + Visible = False + object TSpeedButton + StyleName = 'button' + Align = Left + Size.Width = 20.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'treeviewexpanderbuttonstyle' + end + object TLayout + Align = Contents + Margins.Left = 20.000000000000000000 + Size.Width = 67.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + object TCheckBox + StyleName = 'check' + Align = Left + CanFocus = False + DisableFocusEffect = True + Size.Width = 20.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + end + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 2.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 2.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Align = Left + Position.X = 22.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 38.000000000000000000 + Size.PlatformDefault = False + end + object TText + StyleName = 'text' + Align = Client + Locked = True + HitTest = False + Size.Width = 27.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + TextSettings.WordWrap = False + TextSettings.HorzAlign = Leading + end + end + object TRectangle + Align = FitLeft + Fill.Kind = None + HitTest = False + Margins.Bottom = 1.000000000000000000 + Sides = [Left] + Size.Width = 68.717956542968750000 + Size.Height = 39.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF2A82E2 + Stroke.Thickness = 2.000000000000000000 + end + end + object TLayout + StyleName = 'treeviewstyle' + Align = Center + Size.Width = 225.000000000000000000 + Size.Height = 259.000000000000000000 + Size.PlatformDefault = False + Visible = False + object TBrushObject + StyleName = 'AlternatingRowBackground' + Brush.Color = x0FFFFFFF + end + object TRectangle + StyleName = 'background' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Padding.Left = 1.000000000000000000 + Padding.Right = 1.000000000000000000 + Size.Width = 225.000000000000000000 + Size.Height = 259.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'content' + Align = Client + ClipChildren = True + Margins.Top = 1.000000000000000000 + Size.Width = 205.000000000000000000 + Size.Height = 240.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'selection' + Fill.Color = xFF2A82E2 + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + object TRectangle + StyleName = 'focusedselection' + Fill.Color = xFF2A82E2 + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + Stroke.Dash = Dot + end + end + object TScrollBar + StyleName = 'vscrollbar' + Align = Right + SmallChange = 0.000000000000000000 + Orientation = Vertical + Margins.Left = 2.000000000000000000 + Position.X = 208.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 241.000000000000000000 + Size.PlatformDefault = False + end + object TScrollBar + StyleName = 'hscrollbar' + Align = Bottom + SmallChange = 0.000000000000000000 + Orientation = Horizontal + Margins.Top = 2.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 243.000000000000000000 + Size.Width = 223.000000000000000000 + Size.Height = 16.000000000000000000 + Size.PlatformDefault = False + end + object TSmallScrollBar + StyleName = 'vsmallscrollbar' + Align = Right + SmallChange = 0.000000000000000000 + Orientation = Vertical + Margins.Left = 2.000000000000000000 + Position.X = 99.000000000000000000 + Position.Y = 2.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Visible = False + end + object TSmallScrollBar + StyleName = 'hsmallscrollbar' + Align = Bottom + SmallChange = 0.000000000000000000 + Orientation = Horizontal + Margins.Top = 2.000000000000000000 + Position.X = 2.000000000000000000 + Position.Y = 113.000000000000000000 + Size.Width = 150.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Visible = False + end + end + end end From b62a1c0de0f054e20f2c8233b4b02cdf1b257bc8 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 29 Dec 2020 00:03:13 +1000 Subject: [PATCH 08/29] Added additional units --- src/lib/AErenderLauncher.Math.pas | 30 +- src/lib/AErenderLauncher.Rendering.pas | 363 +++++++++++++++++++++++++ 2 files changed, 390 insertions(+), 3 deletions(-) create mode 100644 src/lib/AErenderLauncher.Rendering.pas diff --git a/src/lib/AErenderLauncher.Math.pas b/src/lib/AErenderLauncher.Math.pas index e5efbf9..66bd2ad 100644 --- a/src/lib/AErenderLauncher.Math.pas +++ b/src/lib/AErenderLauncher.Math.pas @@ -2,12 +2,36 @@ interface - function IfThenElse(const AValue: Boolean; const ATrue: Variant; const AFalse: Variant): Variant; - //function IfThenElse(const AValue: Boolean; const ATrue: TObject; const AFalse: TObject): TObject; overload; + //function IfThen(const AValue: Boolean; const ATrue: Variant): Variant; + + function IfThenElse(const AValue: Boolean; const ATrue: String; const AFalse: String): String; overload; + function IfThenElse(const AValue: Boolean; const ATrue: Integer; const AFalse: Integer): Integer; overload; + function IfThenElse(const AValue: Boolean; const ATrue: Variant; const AFalse: Variant): Variant; overload; implementation -function IfThenElse(const AValue: Boolean; const ATrue: Variant; const AFalse: Variant): Variant; +{function IfThen(const AValue: Boolean; const ATrue: Variant): Variant; +begin + if AValue then Result := ATrue; +end; } + +function IfThenElse(const AValue: Boolean; const ATrue: String; const AFalse: String): String; overload; +begin + if AValue then + Result := ATrue + else + Result := AFalse; +end; + +function IfThenElse(const AValue: Boolean; const ATrue: Integer; const AFalse: Integer): Integer; overload; +begin + if AValue then + Result := ATrue + else + Result := AFalse; +end; + +function IfThenElse(const AValue: Boolean; const ATrue: Variant; const AFalse: Variant): Variant; overload; begin if AValue then Result := ATrue diff --git a/src/lib/AErenderLauncher.Rendering.pas b/src/lib/AErenderLauncher.Rendering.pas new file mode 100644 index 0000000..231aa9d --- /dev/null +++ b/src/lib/AErenderLauncher.Rendering.pas @@ -0,0 +1,363 @@ +unit AErenderLauncher.Rendering; + +{$M+} + +interface + +uses + System.SysUtils, System.Classes, System.Generics.Collections, + AErenderLauncher.Math; + +//const +// RM_NORMAL = 0; RM_TILED = 1; RM_ALL_AT_ONCE = 2; + +type + AERParamException = class(Exception); + + TRenderState = (RS_WAITING, RS_RENDERING, RS_FINISHED); + TRenderMode = (RM_NORMAL, RM_TILED, RM_ALL_AT_ONCE); + //TRenderMode = Cardinal; + + // + TExecutable = record + Contents: WideString; + Exec: TextFile; + end; + + // + TFrameSpan = record + StartFrame, EndFrame: Integer; + constructor Create(const StartFrame, EndFrame: Integer); overload; + function Split(const Division: Integer): TArray; + end; + // + TComposition = record + CompName: String; + Frames: TFrameSpan; + Split: Cardinal; + Executable: TExecutable; + constructor Create(const CompName: String; const Frames: TFrameSpan; const Split: Integer = 0); + end; + + TRenderThread = class(TThread) + private + IsRendering: Boolean; + published + procedure Execute; override; + end; + + // Rendering Envents + TRenderStartEvent = procedure (Task: TObject) of object; + TRenderFinishEvent = procedure (Task: TObject) of object; + + /// + /// Class for storing rendering tasks data + /// + TRenderTask = class(TObject) + private // Declare all the private variables + FProject, + FOutput, + FOutputModule, + FRenderSettings, + FCustomProp: String; + FMissingFiles, + FSound, + FMultiprocessing: Boolean; + FCacheLimit, + FMemoryLimit: Single; + //FFrames: TArray; + FCompositions: TArray; + FLogFilePaths: TArray; + FState: TRenderState; + + //FRenderThread: TRenderThread; + + FRenderStartEvent: TRenderStartEvent; + FRenderFinishEvent: TRenderFinishEvent; + + //procedure TaskTerminate(Sender: TObject); + function ToExec: TArray; + published // Make some properties for tasks to use + // Standard + property Project: String read FProject write FProject; + property Output: String read FOutput write FOutput; + property OutputModule: String read FOutputModule write FOutputModule; + property RenderSettings: String read FRenderSettings write FRenderSettings; + + // AErender Properties + property MissingFiles: Boolean read FMissingFiles write FMissingFiles default False; + property Sound: Boolean read FSound write FSound default True; + property Multiprocessing: Boolean read FMultiprocessing write FMultiprocessing default True; + property CustomProperties: String read FCustomProp write FCustomProp; + property CacheLimit: Single read FCacheLimit write FCacheLimit; + property MemoryLimit: Single read FMemoryLimit write FMemoryLimit; + + // Compositions and Frames + //property Frames: TArray read FFrames write FFrames; + property Compositions: TArray read FCompositions write FCompositions; + + property LogFilePaths: TArray read FLogFilePaths write FLogFilePaths; + property State: TRenderState read FState write FState default TRenderState.RS_WAITING; + + property OnRenderStart: TRenderStartEvent read FRenderStartEvent write FRenderStartEvent; + property OnRenderFinish: TRenderFinishEvent read FRenderFinishEvent write FRenderFinishEvent; + + constructor Create (const Project, Output, OutputModule, RenderSettings: String; + const MissingFiles, Sound, Multiprocessing: Boolean; + const CustomProperties: String; + const CacheLimit, MemoryLimit: Single; + const Compositions: TArray); + + procedure Render(Mode: Integer = 0); + function ToString: String; override; + function Count: Integer; + end; + + // + TAErender = class(TObject) + private + FPath: String; + + FRenderThreads: TArray; + function TaskToExec(Task: TRenderTask): TArray; + published + property Path: String read FPath write FPath; + + + + procedure Run(Task: TRenderTask); + procedure BackgroundRun(Task: TRenderTask); + procedure RenderTasks(Tasks: TArray; Mode: TRenderMode); + + constructor Create; + end; + +var + AErenderPath: String; + RenderTasks: TObjectList; + +implementation + + +(*******************) +(* TRenderThread *) +(*******************) +procedure TRenderThread.Execute; +begin + var i: Integer := 0; + while IsRendering do begin + inc (i); + Writeln(i); + if i >= 5 then begin + IsRendering := False; + end; + end; + Self.DoTerminate; +end; + +(****************) +(* TFrameSpan *) +(****************) +function TFrameSpan.Split(const Division: Integer): TArray; +var + I, J, K, Start, Stop: Integer; + Tm: String; +begin + SetLength(Result, Division); + Result[0].StartFrame := StartFrame; + J := EndFrame - StartFrame; + K := J div Division; + Result[0].EndFrame := StartFrame + K; + for I := 1 to Division - 1 do + begin + Result[I].StartFrame := StartFrame + K * I + 1; + Result[I].EndFrame := StartFrame + K * (I + 1); + end; + Result[Division - 1].EndFrame := EndFrame; +end; + +constructor TFrameSpan.Create(const StartFrame, EndFrame: Integer); +begin + Self.StartFrame := StartFrame; + Self.EndFrame := EndFrame; +end; + + +(******************) +(* TComposition *) +(******************) +constructor TComposition.Create(const CompName: String; const Frames: TFrameSpan; const Split: Integer = 0); +begin + Self.CompName := CompName; + Self.Frames := Frames; + Self.Split := Split; +end; + + +(*****************) +(* TRenderTask *) +(*****************) +function TRenderTask.ToString: String; +begin + var Res: String := Format('(%s, %s, %s, %s, [%s, %s, %s], "%s", %f, %f, ', + [Project, Output, OutputModule, RenderSettings, BoolToStr(MissingFiles, True), BoolToStr(Sound, True), BoolToStr(Multiprocessing, True), CustomProperties, CacheLimit, MemoryLimit]); + for var i := 0 to High(Compositions) do + with Compositions[i] do + if i = High(Compositions) then + Res := Res + Format('Comp[%d](%s, [%d, %d], %d)', [i + 1, CompName, Frames.StartFrame, Frames.EndFrame, Split]) + else + Res := Res + Format('Comp[%d](%s, [%d, %d], %d), ', [i + 1, CompName, Frames.StartFrame, Frames.EndFrame, Split]); + Res := Res + ')'; + + Result := Res; +end; + +function TRenderTask.Count: Integer; +begin + var Res: Integer := 0; + for var Comp in Compositions do begin + if Comp.Split > 1 then + Res := Res + Comp.Split + else + Res := Res + 1; + end; + Result := Res; +end; + +function TRenderTask.ToExec: TArray; +begin + // Start with empty string + var TempStr: WideString := ''; + var List: TList := TList.Create(); + + // Append all the nesesary information in the beginning + TempStr := {$IFDEF MSWINDOWS}'chcp 65001' + #13#10 + {$ENDIF} + Format('("%s" -project "%s" -output "%s" %s %s %s -OMtemplate "%s" -RStemplate "%s" -mem_usage "%d" "%d" ', [ + AErenderPath, + Project, + Output, + IfThenElse(Sound, '-sound ON', ''), + IfThenElse(Multiprocessing, '-mp', ''), + IfThenElse(MissingFiles, '-continueOnMissingFootage', ''), + OutputModule, + RenderSettings, + Trunc(MemoryLimit), + Trunc(CacheLimit) + ]); + + List.Add(TempStr); + {for var Comp in Compositions do begin + if Comp.Split = 0 then + // yeet + else + for var FrameSpan in Comp.Frames.Split(Comp.Split) do + TempStr := TempStr + Format('-s %d -e %d ', [FrameSpan.StartFrame, FrameSpan.EndFrame]); + end; } +end; + +procedure TRenderTask.Render(Mode: Integer = 0); +begin + ToExec; + {if Assigned(FRenderStartEvent) then FRenderStartEvent(Self); + + FRenderThread := TRenderThread.Create(True); + + FRenderThread.OnTerminate := Self.TaskTerminate; + FRenderThread.IsRendering := True; + FRenderThread.Start;} +end; + +constructor TRenderTask.Create(const Project, Output, OutputModule, RenderSettings: String; + const MissingFiles, Sound, Multiprocessing: Boolean; + const CustomProperties: String; + const CacheLimit, MemoryLimit: Single; + const Compositions: TArray); +begin + if (Project.IsEmpty or Output.IsEmpty or (Length(Compositions) = 0)) then + raise AERParamException.Create('Project, Output or compositions are empty'); + + Self.Project := Project; + Self.Output := Output; + Self.OutputModule := OutputModule; + Self.RenderSettings := RenderSettings; + + Self.MissingFiles := MissingFiles; + Self.Sound := Sound; + Self.Multiprocessing := Multiprocessing; + Self.CustomProperties := CustomProperties; + Self.CacheLimit := CacheLimit; + Self.MemoryLimit := MemoryLimit; + + Self.Compositions := Compositions; +end; + + +(***************) +(* TAErender *) // but do I really need it, though? +(***************) +constructor TAErender.Create; +begin + inherited; +end; + +function TAErender.TaskToExec(Task: TRenderTask): TArray; +var + TempStr: String; +begin + TempStr := ''; + with Task do begin + for var Comp in Compositions do begin + if Comp.Split = 0 then + // yeet + else + for var FrameSpan in Comp.Frames.Split(Comp.Split) do + TempStr := TempStr + Format('-s %d -e %d ', [FrameSpan.StartFrame, FrameSpan.EndFrame]); + end; + end; +end; + +procedure TAErender.Run(Task: TRenderTask); +begin + // + TaskToExec(Task); + // Fire event + //if Assigned(FRenderStartEvent) then FRenderStartEvent(Task as TObject); +end; + +procedure TAErender.BackgroundRun(Task: TRenderTask); +begin + // +end; + +procedure TAErender.RenderTasks(Tasks: TArray; Mode: TRenderMode); +begin + case Mode of + RM_NORMAL: begin + + end; + RM_TILED: begin + + end; + RM_ALL_AT_ONCE: begin + + end; + end; + // Fire event + //if Assigned(FRenderStartEvent) then FRenderStartEvent(Tasks[0]); +end; + + +(********************) +(* Initialization *) +(********************) +initialization + RenderTasks := TObjectList.Create; + + +(******************) +(* Finalization *) +(******************) +finalization + if Assigned(RenderTasks) then FreeAndNil(RenderTasks); + +end. From edd819d9146477a8dc82117924dfaac55cbb54c3 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 29 Dec 2020 00:03:40 +1000 Subject: [PATCH 09/29] Added custom components to repo --- .../TCompLabel/Package/CompLabel.dpk | 37 + .../TCompLabel/Package/CompLabel.dproj | 746 ++++++++++++++ .../TCompLabel/Package/CompLabel.res | Bin 0 -> 640 bytes .../TCompLabel/Package/CompLabelDesign.style | 61 ++ .../TCompLabel/Package/FMX.CompLabel.pas | 189 ++++ .../TCompLabel/Package/FMX.CompLabel.rc | 1 + .../TCompLabel/Package/FMX.CompLabel.res | Bin 0 -> 1804 bytes .../TCompLabel/TCompLabel.groupproj | 48 + .../Test Project/CompLabelDesign.fmx | 55 + .../Test Project/CompLabelDesign.pas | 25 + .../TCompLabel/Test Project/CompLabelTest.dpr | 17 + .../Test Project/CompLabelTest.dproj | 946 ++++++++++++++++++ .../TCompLabel/Test Project/CompLabelTest.res | Bin 0 -> 112136 bytes .../Test Project/CompLabelUnit.Macintosh.fmx | 6 + .../TCompLabel/Test Project/CompLabelUnit.fmx | 41 + .../TCompLabel/Test Project/CompLabelUnit.pas | 37 + 16 files changed, 2209 insertions(+) create mode 100644 src/lib/Components/TCompLabel/Package/CompLabel.dpk create mode 100644 src/lib/Components/TCompLabel/Package/CompLabel.dproj create mode 100644 src/lib/Components/TCompLabel/Package/CompLabel.res create mode 100644 src/lib/Components/TCompLabel/Package/CompLabelDesign.style create mode 100644 src/lib/Components/TCompLabel/Package/FMX.CompLabel.pas create mode 100644 src/lib/Components/TCompLabel/Package/FMX.CompLabel.rc create mode 100644 src/lib/Components/TCompLabel/Package/FMX.CompLabel.res create mode 100644 src/lib/Components/TCompLabel/TCompLabel.groupproj create mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelDesign.fmx create mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelDesign.pas create mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelTest.dpr create mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelTest.dproj create mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelTest.res create mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelUnit.Macintosh.fmx create mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx create mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelUnit.pas diff --git a/src/lib/Components/TCompLabel/Package/CompLabel.dpk b/src/lib/Components/TCompLabel/Package/CompLabel.dpk new file mode 100644 index 0000000..ce65d06 --- /dev/null +++ b/src/lib/Components/TCompLabel/Package/CompLabel.dpk @@ -0,0 +1,37 @@ +package CompLabel; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$IMPLICITBUILD ON} + +requires + rtl, + fmx; + +contains + FMX.CompLabel in 'FMX.CompLabel.pas'; + +end. diff --git a/src/lib/Components/TCompLabel/Package/CompLabel.dproj b/src/lib/Components/TCompLabel/Package/CompLabel.dproj new file mode 100644 index 0000000..053cf51 --- /dev/null +++ b/src/lib/Components/TCompLabel/Package/CompLabel.dproj @@ -0,0 +1,746 @@ + + + {A4E9E299-9B51-4D63-955F-C0270900B84E} + CompLabel.dpk + 19.0 + FMX + True + Debug + Win32 + 1 + Package + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + true + true + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + All + CompLabel + + + None + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + rtl;fmx;$(DCC_UsePackage) + + + None + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + rtl;fmx;$(DCC_UsePackage) + + + None + rtl;fmx;$(DCC_UsePackage) + + + None + rtl;fmx;$(DCC_UsePackage) + + + rtl;fmx;$(DCC_UsePackage) + + + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + rtl;fmx;$(DCC_UsePackage) + + + rtl;fmx;$(DCC_UsePackage) + + + DEBUG;$(DCC_Define) + true + false + true + true + true + + + false + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + + MainSource + + + + + +
CompLabelRes.res
+
+ + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
+ + Delphi.Personality.12 + Package + + + + CompLabel.dpk + + + + False + False + False + False + False + True + False + + + + + true + + + + + true + + + + + true + + + + + CompLabel.bpl + true + + + + + 1 + + + 0 + + + + + classes + 1 + + + classes + 1 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + 1 + + + 1 + + + 0 + + + + + 1 + .framework + + + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + + + 12 + + + + +
diff --git a/src/lib/Components/TCompLabel/Package/CompLabel.res b/src/lib/Components/TCompLabel/Package/CompLabel.res new file mode 100644 index 0000000000000000000000000000000000000000..1551d2a0e562fb78f8620b74456998239a117edd GIT binary patch literal 640 zcmZ{iPfx-?5XE0f55mc_Cl8)UO?ojQF+|jmpb~7jDi$;({X;5#Jim>1zk&GMsVjx( zCcB;Py!ZM#Gm>=7-fZekxVu_De+VY9T%>mR3u?uLQ{C%<^HLL{q3(3c`;haB*sb^Q z^GkC4TEjojEh{-epZU4cBNqXBYgJmR&cjSiN^}19EStb zPffpzMvnfBY|1$|%@U2jz8{ nil then + FComposition := TText(Base).Text; + + Result := FComposition; +end; + +procedure TCompLabel.SetCompName(Value: String); +var + Base: TFmxObject; +begin + FComposition := Value; + Base := FindStyleResource('comp'); + if Base <> nil then + TText(Base).Text := Value; +end; + +{$ENDREGION} + +{$REGION ' InFrame '} + +function TCompLabel.GetInFrame: String; +var + Base: TFmxObject; +begin + Base := FindStyleResource('inframe'); + if Base <> nil then + FInFrame := TText(Base).Text; + + Result := FInFrame; +end; + +procedure TCompLabel.SetInFrame(Value: String); +var + Base: TFmxObject; +begin + FInFrame := Value; + Base := FindStyleResource('inframe'); + if Base <> nil then + TText(Base).Text := Value; +end; + +{$ENDREGION} + +{$REGION ' OutFrame '} + +function TCompLabel.GetOutFrame: String; +var + Base: TFmxObject; +begin + Base := FindStyleResource('outframe'); + if Base <> nil then + FOutFrame := TText(Base).Text; + + Result := FOutFrame; +end; + +procedure TCompLabel.SetOutFrame(Value: String); +var + Base: TFmxObject; +begin + FOutFrame := Value; + Base := FindStyleResource('outframe'); + if Base <> nil then + TText(Base).Text := Value; +end; + +{$ENDREGION} + +{$REGION ' Split '} + +function TCompLabel.GetSplit: String; +var + Base: TFmxObject; +begin + Base := FindStyleResource('split'); + if Base <> nil then + FSplit := TText(Base).Text; + + Result := FSplit; +end; + +procedure TCompLabel.SetSplit(Value: String); +var + Base: TFmxObject; +begin + FSplit := Value; + Base := FindStyleResource('split'); + if Base <> nil then + TText(Base).Text := Value; +end; + +{$ENDREGION} + +procedure TCompLabel.ApplyStyle; +begin + inherited; + SetCompName(FComposition); + SetInFrame(FInFrame); + SetOutFrame(FOutFrame); + SetSplit(FSplit); +end; + +constructor TCompLabel.Create(AOwner: TComponent); +begin + inherited; + Height := 24; + Width := 400; + + Composition := ''; + InFrame := ''; + OutFrame := ''; + Split := ''; + HitTest := False; +end; + +procedure Register; +begin + RegisterComponents('AErender Launcher', [TCompLabel]); +end; + +end. diff --git a/src/lib/Components/TCompLabel/Package/FMX.CompLabel.rc b/src/lib/Components/TCompLabel/Package/FMX.CompLabel.rc new file mode 100644 index 0000000..f572f75 --- /dev/null +++ b/src/lib/Components/TCompLabel/Package/FMX.CompLabel.rc @@ -0,0 +1 @@ +complabelstyle RCDATA "CompLabelDesign.style" \ No newline at end of file diff --git a/src/lib/Components/TCompLabel/Package/FMX.CompLabel.res b/src/lib/Components/TCompLabel/Package/FMX.CompLabel.res new file mode 100644 index 0000000000000000000000000000000000000000..f0cb9af7e7e6b436a8f7a9c365a4ab0eb9a9bb53 GIT binary patch literal 1804 zcmds1!A`?44D|safy6)Lwp+CgkT}2r3ezM8Ok1VFF|1x|NRuheB;c#~!{K!6v=vx| zxF8~>PMzo2es%%?Ab8H_i^mnto zw{9P8gY}hk6JxVWoXDBl^yaL2#%fq45fQ#P@9YZ}irm+-SH$@*uwNu4#ErBG={)G+ zqzL%Cyx7$`0j-l7U_AxP6St5cgin-dYe!2#`jDPjZrDnR z2EJFeRH$!qa%6OH&vCWCZMVSW$K)<5Z%-pYeJ*=avy!ov<;Q!$@pDHSEUD@+L PYSyDVuKpjX#Y6A`5kchm literal 0 HcmV?d00001 diff --git a/src/lib/Components/TCompLabel/TCompLabel.groupproj b/src/lib/Components/TCompLabel/TCompLabel.groupproj new file mode 100644 index 0000000..0ca951a --- /dev/null +++ b/src/lib/Components/TCompLabel/TCompLabel.groupproj @@ -0,0 +1,48 @@ + + + {EE1941E1-8B82-410B-8888-9A849E41EE5E} + + + + + + + + + + + Default.Personality.12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.fmx b/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.fmx new file mode 100644 index 0000000..2fe7b4d --- /dev/null +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.fmx @@ -0,0 +1,55 @@ +object Form2: TForm2 + Left = 0 + Top = 0 + Caption = 'Form2' + ClientHeight = 480 + ClientWidth = 640 + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [Desktop] + DesignerMasterStyle = 0 + object StyleBook1: TStyleBook + Styles = < + item + ResourcesBin = { + 464D585F5354594C4520322E3501060E636F6D706C6162656C7374796C650349 + 0400545046300A5452656374616E676C6500095374796C654E616D65060E636F + 6D706C6162656C7374796C6505416C69676E070643656E7465720C436C697043 + 68696C6472656E090946696C6C2E4B696E6407044E6F6E650748697454657374 + 080A53697A652E57696474680500000000000000FA07400B53697A652E486569 + 6768740500000000000000C003401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500055454657874000953 + 74796C654E616D650604636F6D7005416C69676E0706436C69656E7407486974 + 54657374080C4D617267696E732E4C6566740500000000000000A003400A5369 + 7A652E57696474680500000000000000B406400B53697A652E48656967687405 + 00000000000000C003401453697A652E506C6174666F726D44656661756C7408 + 0454657874060454657874165465787453657474696E67732E466F6E74436F6C + 6F720708636C615768697465155465787453657474696E67732E5472696D6D69 + 6E670709436861726163746572155465787453657474696E67732E576F726457 + 72617008165465787453657474696E67732E486F727A416C69676E07074C6561 + 64696E67000005545465787400095374796C654E616D650607696E6672616D65 + 05416C69676E070552696768740748697454657374080A506F736974696F6E2E + 580500000000000000C806400A53697A652E57696474680500000000000000C8 + 05400B53697A652E4865696768740500000000000000C003401453697A652E50 + 6C6174666F726D44656661756C74080454657874060454657874165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974651654657874 + 53657474696E67732E486F727A416C69676E07074C656164696E670000055454 + 65787400095374796C654E616D6506086F75746672616D6505416C69676E0705 + 52696768740748697454657374080A506F736974696F6E2E5805000000000000 + 009607400A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C003401453697A652E506C6174666F726D44 + 656661756C74080454657874060454657874165465787453657474696E67732E + 466F6E74436F6C6F720708636C615768697465165465787453657474696E6773 + 2E486F727A416C69676E07074C656164696E6700000554546578740009537479 + 6C654E616D65060573706C697405416C69676E07055269676874074869745465 + 7374080A506F736974696F6E2E580500000000000000C807400A53697A652E57 + 696474680500000000000000C805400B53697A652E4865696768740500000000 + 000000C003401453697A652E506C6174666F726D44656661756C740804546578 + 74060454657874165465787453657474696E67732E466F6E74436F6C6F720708 + 636C615768697465165465787453657474696E67732E486F727A416C69676E07 + 074C656164696E67000000} + end> + Left = 24 + Top = 24 + end +end diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.pas b/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.pas new file mode 100644 index 0000000..6f14306 --- /dev/null +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.pas @@ -0,0 +1,25 @@ +unit CompLabelDesign; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs; + +type + TForm2 = class(TForm) + StyleBook1: TStyleBook; + private + { Private declarations } + public + { Public declarations } + end; + +var + Form2: TForm2; + +implementation + +{$R *.fmx} + +end. diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dpr b/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dpr new file mode 100644 index 0000000..742c2d7 --- /dev/null +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dpr @@ -0,0 +1,17 @@ +program CompLabelTest; + +uses + System.StartUpCopy, + FMX.Forms, + CompLabelUnit in 'CompLabelUnit.pas' {Form1}, + CompLabelDesign in 'CompLabelDesign.pas' {Form2}, + FMX.CompLabel in '..\Package\FMX.CompLabel.pas'; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.CreateForm(TForm2, Form2); + Application.Run; +end. diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dproj b/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dproj new file mode 100644 index 0000000..5f39482 --- /dev/null +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dproj @@ -0,0 +1,946 @@ + + + {A4B195DE-B5AE-4ADF-8E60-D326D61BD406} + 19.0 + FMX + True + Debug + Win32 + 37907 + Application + CompLabelTest.dpr + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + true + true + true + true + true + true + true + true + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\delphi_PROJECTICNS.icns + CompLabelTest + + + DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + Debug + true + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + + + DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + Debug + true + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + + + DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;TMSFMXPackPkgDXE13;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) + CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers + iPhoneAndiPad + true + Debug + $(MSBuildProjectName) + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png + + + DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) + + + DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;fgx;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) + CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers + Debug + true + + + DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;bindcompvclsmp;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;TMSFMXPackPkgDXE13;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vcledge;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;fgx;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;bindcompvclsmp;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vcledge;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;fgx;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + DEBUG;$(DCC_Define) + true + false + true + true + true + + + false + true + PerMonitorV2 + + + true + PerMonitorV2 + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + true + PerMonitorV2 + + + true + PerMonitorV2 + + + + MainSource + + +
Form1
+ fmx +
+ +
Form2
+ fmx +
+ + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
+ + Delphi.Personality.12 + Application + + + + CompLabelTest.dpr + + + + True + True + True + False + True + True + True + + + + + true + + + + + true + + + + + true + + + + + CompLabelTest.exe + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + classes + 1 + + + classes + 1 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + 1 + + + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + + + 12 + + + + +
diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelTest.res b/src/lib/Components/TCompLabel/Test Project/CompLabelTest.res new file mode 100644 index 0000000000000000000000000000000000000000..0328420e0db7bd2fd77dced1e97b7ea158d4d619 GIT binary patch literal 112136 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 Kc2qQsApQr@sy*8P literal 0 HcmV?d00001 diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.Macintosh.fmx b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.Macintosh.fmx new file mode 100644 index 0000000..f91c9ce --- /dev/null +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.Macintosh.fmx @@ -0,0 +1,6 @@ +inherited Form1_Macintosh: TForm1_Macintosh + DesignerMasterStyle = 0 + inherited CompLabel1: TCompLabel + Position.X = 32.000000000000000000 + end +end diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx new file mode 100644 index 0000000..027d352 --- /dev/null +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx @@ -0,0 +1,41 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + Caption = 'Form1' + ClientHeight = 480 + ClientWidth = 783 + Fill.Color = xFF1C1C1C + Fill.Kind = Solid + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [Desktop] + OnMouseMove = FormMouseMove + DesignerMasterStyle = 0 + object Button1: TButton + Position.X = 312.000000000000000000 + Size.Width = 137.000000000000000000 + Size.Height = 65.000000000000000000 + Size.PlatformDefault = False + Text = 'Button1' + end + object CompLabel1: TCompLabel + Position.Y = 24.000000000000000000 + Size.Width = 593.000000000000000000 + Size.Height = 41.000000000000000000 + Size.PlatformDefault = False + Composition = 'Composition' + InFrame = '0' + OutFrame = '0' + Split = '0' + end + object Label1: TLabel + Align = Bottom + StyledSettings = [Family, Size, Style] + Position.Y = 463.000000000000000000 + Size.Width = 783.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + Text = 'Label1' + end +end diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.pas b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.pas new file mode 100644 index 0000000..a5cf946 --- /dev/null +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.pas @@ -0,0 +1,37 @@ +unit CompLabelUnit; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, + FMX.CompLabel, FMX.Controls.Presentation, FMX.StdCtrls; + +type + TForm1 = class(TForm) + Button1: TButton; + CompLabel1: TCompLabel; + Label1: TLabel; + procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Single); + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.fmx} + +procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Single); +begin + if ObjectAtPoint(TPointF.Create(X, Y)) <> nil then + Label1.Text := Format('X = %n; Y = %n; Class = %s', [X, Y, ObjectAtPoint(TPointF.Create(X, Y)).GetObject.ClassName]); +end; + +end. From fcef37a1e762f47acc44c783ff96a4696766e370 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 16 Feb 2021 15:31:15 +1000 Subject: [PATCH 10/29] Added AEP parser to repository --- .../Components/TCompLabel/Package/CompLabel.res | Bin 640 -> 32 bytes src/lib/plugins/AEP Parser/README.md | 11 +++++++++++ 2 files changed, 11 insertions(+) create mode 100644 src/lib/plugins/AEP Parser/README.md diff --git a/src/lib/Components/TCompLabel/Package/CompLabel.res b/src/lib/Components/TCompLabel/Package/CompLabel.res index 1551d2a0e562fb78f8620b74456998239a117edd..36f26e234a8ac66a47e95cec6d496cf2f1442471 100644 GIT binary patch delta 5 McmZo*RhXav00cP!RsaA1 literal 640 zcmZ{iPfx-?5XE0f55mc_Cl8)UO?ojQF+|jmpb~7jDi$;({X;5#Jim>1zk&GMsVjx( zCcB;Py!ZM#Gm>=7-fZekxVu_De+VY9T%>mR3u?uLQ{C%<^HLL{q3(3c`;haB*sb^Q z^GkC4TEjojEh{-epZU4cBNqXBYgJmR&cjSiN^}19EStb zPffpzMvnfBY|1$|%@U2jz8{modified version of @boltframe/aftereffects-aep-parser. + +## Building +Open any CLI and type +```powershell +go build aeparser.go +``` +This will output an executable that is later gets embeded in **Launcher** \ No newline at end of file From 940c1a13e7380c3fc7c9704ac42e1a9bcae72c64 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 16 Feb 2021 15:35:03 +1000 Subject: [PATCH 11/29] Updated REAME, added source --- src/lib/plugins/AEP Parser/README.md | 13 ++++-- src/lib/plugins/AEP Parser/aeparser.go | 57 ++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 src/lib/plugins/AEP Parser/aeparser.go diff --git a/src/lib/plugins/AEP Parser/README.md b/src/lib/plugins/AEP Parser/README.md index cf6ff8f..b2d7503 100644 --- a/src/lib/plugins/AEP Parser/README.md +++ b/src/lib/plugins/AEP Parser/README.md @@ -4,8 +4,13 @@ Made specifically for **AErender Launcher** Based on a modified version of @boltframe/aftereffects-aep-parser. ## Building -Open any CLI and type -```powershell -go build aeparser.go -``` +- Fetch required packages + ```powershell + go get -u "github.com/LilyStilson/aftereffects-aep-parser" + ``` + +- Open any CLI and type + ```powershell + go build aeparser.go + ``` This will output an executable that is later gets embeded in **Launcher** \ No newline at end of file diff --git a/src/lib/plugins/AEP Parser/aeparser.go b/src/lib/plugins/AEP Parser/aeparser.go new file mode 100644 index 0000000..3dcc495 --- /dev/null +++ b/src/lib/plugins/AEP Parser/aeparser.go @@ -0,0 +1,57 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + aep "github.com/LilyStilson/aftereffects-aep-parser" +) + +func main() { + projectPath := os.Args[1] + //projectPath := "E:\\YandexDisk\\Acer\\Footages (AE)\\AErender Launcher Benchmark Projects\\SuperEffectiveBros - Mograph Practice\\AEPRTC_Eclipse_rev57(ForDist)_2020.aep" + //projectPath := "Mograph Icons.aep" + //projectPath := "E:\\YandexDisk\\Acer\\Footages (AE)\\MindCool Intro (converted).aep" + project, err := aep.Open(projectPath) + // "E:\YandexDisk\Acer\Footages (AE)\MindCool Intro (converted).aep" + /*fmt.Printf("%-48v| %-16v | %-6v | %-6v | %-10v\n%v\n", + "Composition", + "Frames", + "Length", + "FPS", + "Dimension", + "---------------------------------------------------------------------------------", + )*/ + + + var comps []aep.Item + + for _, value := range project.Items { + if value.ItemType == aep.ItemTypeComposition { + comps = append(comps, *value) + + /*fmt.Printf("%-48v| [%6d, %6d] | %6d | %6.2f | [%5d, %5d]\n", + value.Name, + uint32(value.Frames[0]), + uint32(value.Frames[1]), + uint32(value.FootageSeconds), + value.FootageFramerate, + value.FootageDimensions[0], + value.FootageDimensions[1], + )*/ + } + } + + JSONComp, err := json.Marshal(comps) + + fmt.Println(string(JSONComp)) + + //json_msg, err := json.Marshal(Compositions) + + if err != nil { + panic(err) + } +} + + From 1c30f7fd81f21cc6f94d4d9652d0ac704fd8b67d Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 16 Feb 2021 15:39:05 +1000 Subject: [PATCH 12/29] Tasks UI, Updated styles Updated copyrights Updated custom components Added modified framework source --- src/AErender_Launcher.dpr | 12 +- src/AErender_Launcher.dproj | 46 +- src/AErender_Launcher.res | Bin 135784 -> 133580 bytes src/AboutUnit.fmx | 3339 ++++---- src/AboutUnit.pas | 6 +- src/FFMPEGUnit.pas | 4 +- src/HelpUnit.pas | 4 +- src/ImportUnit.fmx | 72 +- src/ImportUnit.pas | 5 +- src/MainUnit.fmx | 7430 +++++++++-------- src/MainUnit.pas | 738 +- src/MainUnit.vlb | 36 +- src/OutputModuleEditorUnit.fmx | 4 +- src/OutputModuleEditorUnit.pas | 4 +- src/RenderingUnit.pas | 4 +- src/SettingsUnit.fmx | 263 +- src/SettingsUnit.pas | 38 +- src/SplashScreenUnit.fmx | 5390 ++++++------ src/lib/AErenderLauncher.IO.pas | 57 +- ...as => AErenderLauncher.Math.ExpParser.pas} | 2 +- src/lib/AErenderLauncher.Rendering.pas | 111 +- .../TCompLabel/Package/CompLabel.dproj | 15 +- .../TCompLabel/Test Project/CompLabelTest.res | Bin 112136 -> 0 bytes src/lib/FMX.TreeView.pas | 2819 +++++++ styles/AErender Modern/AERFMXStyleMacOS.style | 38 +- .../AErender Modern/AERFMXStyleWindows.style | 821 +- 26 files changed, 12762 insertions(+), 8496 deletions(-) rename src/lib/{AErenderLauncher.MathExpParser.pas => AErenderLauncher.Math.ExpParser.pas} (99%) delete mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelTest.res create mode 100644 src/lib/FMX.TreeView.pas diff --git a/src/AErender_Launcher.dpr b/src/AErender_Launcher.dpr index 593de63..4901218 100644 --- a/src/AErender_Launcher.dpr +++ b/src/AErender_Launcher.dpr @@ -2,10 +2,10 @@ program AErender_Launcher; (* AErender Launcher *) (* AErenderLauncher.dpr *) -(* Lily Stilson // 2019 - 2020 *) +(* Lily Stilson // 2019 - 2021 *) (* MIT License *) (* *) -(* Copyright (c) 2019 - 2020 Alice Romanets *) +(* Copyright (c) 2019 - 2021 Alice Romanets *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a copy *) (* of this software and associated documentation files (the "Software"), to deal *) @@ -30,10 +30,13 @@ program AErender_Launcher; uses System.StartUpCopy, System.SysUtils, + FMX.Forms, FMX.Graphics in 'lib\FMX.Graphics.pas', FMX.Ani in 'lib\FMX.Ani.pas', + FMX.TreeView in 'lib\FMX.TreeView.pas', FMX.CompLabel in 'lib\Components\TCompLabel\Package\FMX.CompLabel.pas', + SplashScreenUnit in 'SplashScreenUnit.pas' {SplashScreenForm}, MainUnit in 'MainUnit.pas' {MainForm}, SettingsUnit in 'SettingsUnit.pas' {SettingsForm}, @@ -43,15 +46,18 @@ uses FFMPEGUnit in 'FFMPEGUnit.pas' {FFMPEGForm}, RenderingUnit in 'RenderingUnit.pas' {RenderingForm}, OutputModuleEditorUnit in 'OutputModuleEditorUnit.pas' {OutputModuleEditorForm}, + {$IFDEF MACOS} Mac.CodeBlocks in 'lib\Mac.CodeBlocks.pas', {$ENDIF MACOS} + {$IFDEF MSWINDOWS} FMX.Taskbar in 'lib\FMX.Taskbar.pas', {$ENDIF MSWINDOWS} + AErenderLauncher.Localization in 'lib\AErenderLauncher.Localization.pas', AErenderLauncher.AerenderParser in 'lib\AErenderLauncher.AerenderParser.pas', - AErenderLauncher.MathExpParser in 'lib\AErenderLauncher.MathExpParser.pas', + AErenderLauncher.Math.ExpParser in 'lib\AErenderLauncher.Math.ExpParser.pas', AErenderLauncher.Rendering in 'lib\AErenderLauncher.Rendering.pas', AErenderLauncher.IO in 'lib\AErenderLauncher.IO.pas', AErenderLauncher.Math in 'lib\AErenderLauncher.Math.pas', diff --git a/src/AErender_Launcher.dproj b/src/AErender_Launcher.dproj index 3e095d0..843bfc8 100644 --- a/src/AErender_Launcher.dproj +++ b/src/AErender_Launcher.dproj @@ -2,7 +2,7 @@ True Application - Beta + Debug FMX AErender_Launcher.dpr Win64 @@ -187,12 +187,11 @@ ..\icons\png\resized_uwp\icon_uwp_44.png true true - FileVersion=0.8.6.0;ProductVersion=0.8.6.0 + FileVersion=0.9.0.0;ProductVersion=0.9.0.0 1033 0 - 8 + 9 true - 6 true @@ -297,11 +296,10 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico ..\(None) - 6 true - CFBundleVersion=0.8.6;NSHighResolutionCapable=true;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Data saving;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used;CFBundleShortVersionString=0.8.6 + CFBundleVersion=0.9.0;NSHighResolutionCapable=true;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Data saving;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used;CFBundleShortVersionString=0.9.0 0 - 8 + 9 true @@ -309,15 +307,13 @@ ..\icons\platform\Launcher2020.ico true 25 - true true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.25;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.0;Comments=;PrivateBuild=v0.8.0-beta + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.9.0.25;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.9.0;Comments=;PrivateBuild=v0.9.0-beta 1033 0 - 8 + 9 true true - 6 PerMonitorV2 @@ -327,14 +323,13 @@ ..\icons\platform\Launcher2020.ico $(BDS)\bin\default_app.manifest true - 10 true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.10;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.6;Comments=;PrivateBuild=v0.8.6-beta + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.9.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.9.0;Comments=;PrivateBuild=v0.9.0-beta 1033 0 - 8 + 9 true - 6 + true ..\icons\platform\Launcher2020.icns @@ -372,6 +367,7 @@ +
SplashScreenForm
@@ -404,7 +400,7 @@ - + @@ -510,6 +506,12 @@ true + + + .\ + true + + Contents\Resources\StartUp\ @@ -534,6 +536,12 @@ true + + + .\ + true + + Contents\Resources\StartUp\ @@ -684,6 +692,12 @@ true + + + AErender_Launcher.rsm + true + + 0 diff --git a/src/AErender_Launcher.res b/src/AErender_Launcher.res index 09bb594d167f686d829acb886a78bd3e9ea0e50d..a11f223389cfd50e088b034dfda23b27441525bd 100644 GIT binary patch delta 159 zcmaE{gyYO)jtL4%4vY*83JeSk|NjdBF^~fU1`M1mU*AQZI003q!8KwXL delta 2378 zcmbtV%Wm676df6bYdH;?cGXRQ3DH&2;hPj`NKWNP0HJnjz^=OIY=kpXeX-2fFA#q<1KZ^b;)-86$G;+_~p5cjP}`Z~XoH#xGcTvxX2x z2)%v#2u2Uy5YkcqgXRUk-mG2js2^{@+a_8^@`=#;W&L>V(c0y2O8pP)=)ndXhTlB* z;T@qJ^a;dwQI1knAc`_HN6+DzBHomEj$(9%&QS&6$LIyD%4db9h`~zUZk|%=WAsfKiupOuijJ{=ntO|a&pe`WDf^C$uBV6F?p4_ zz>tf@v?%hj!cku0<@Lj-G5ii;LVy~Pz>We&JZ>^VYty!M({v)=q7wTZrF-{7 z+tiFqk6XmC0-xBnZIFQaAz`l1Y+BpY<(Bt8(5i7ixDmMnHypUc)44%x)A9-2)PQ&v z(<7JZtfqta0XOvfu|2Lw18SHghyn{d=N^F*aER?i%+aagP@lf?!SjBV#hhNRb|1_BV`g4D6{4eqomKFd2 diff --git a/src/AboutUnit.fmx b/src/AboutUnit.fmx index bdbd838..a03d152 100644 --- a/src/AboutUnit.fmx +++ b/src/AboutUnit.fmx @@ -53,107 +53,107 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000080000000800806000000C33E61 CB000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 0C7C49444154785EED9D096C14E715C7DF7A4FEFAE776D833160637319CC69B0 - F1DAB46A23E82121955695A2A86A95368DD42A2969422081428128895A556D25 - D22628E9A1A64A955EA91235348D1A250A44AD128C0FC0E63E02061CC0069FEB - 6BAF7E6F8E808D77E69BD95DCFACE7FDA4C7CEFBBCCC5A7EFF7DDFFD0D100441 - 100441100441100441100461016CD2EB64207FD6647E66369218F79A51321D0C - BC3F5A8E64B24F2407038F16974CF6334226822107D9CECCC1CCC9CC07DEA215 - 905B500139AE999063F3B032623CF1C430C447AFC150F75918EC6C6525616611 - 66516631666917433A0520071E83EE02B7BB08FC73EF85FC391BC13B23C47EE4 - C63711BC244660F04603F45CDE0F0317FF0123239DAC7094198A216D42489700 - 6E07DEE52A81A2558F4370EEFD6077FA849F12A9118B84A1F7E29FA0F3C85E18 - 1DBDCA4AEE14424AA4430058B7639AF742E1A207A078F51E7038F2859F10E925 - 1AED81EB2DCFC0AD337F64DE2033AC1EB09DA09B540580C167A9DD3303CAEB5F - 8040C957C46222A3F45F7E0B2E366C0218BEC1BC1166BA45908A00C4E0BB5CE5 - 50F6E5BF436E7085584C4C0A43BDADD0FECE7DAC4AB8C43CDD22C096BA1EC4E0 - BBDD2530F74B6F80277FB9584C4C1A4E4F31E495AC8781F6B72016C3EA40EE32 - 6A428F00306BB89805A17CDDAB903B7D8D504A4C3E0E4F1178A6AD86EE0B6F32 - 4F577B408F00B0B5EF87E2AA1F41C1FC6F88458461B8FCE560CBB141F8FA47CC - D32C024CE55A90527FB00AA62F79542C220C07638131111AE4DA62AAE5CD98FA - 31637861D69ADD9063C7AE1F6106301618138C8D1823EEC6BD5601B8C0CBEAFC - BC99EBC522C234604C303662FB2C2302406579A0A0E23BA24B980E313638CFC2 - DDB6E315809CFE03905FBA412821CC87189B0033EE6A408B009CE09B1D821C17 - 7E0061463036182371683EAD02C0F739C13FAD567409D322C60805C0155B9E37 - A192D01CE0CC5F2C9410E6C59DBF88FD8B633572DC14D1520538C0ED9B25BA84 - 6971FA66B37F6501A8C29B01F07D76B0BB824209615EC4361A3602316669CB00 - 880D12095416616A12DC0D40448B0088290809C0E290002C0E09C0E290002C0E - 09C0E2649D009C4E2778BD5E6EB3DBB927C62C094F7F11458273CC33A062E341 - F004E60AA506F1D8D6EDB07439FF02E423CD4DF0E2F37B25CF020CF75D84B3FB - EF6157B8641C3790282E11CBBA0CE0F168DB56B8626515F8FC7EC923C6937502 - 08E61748577CD81D0E58535B2779C478B24A00797901289C364DF2F809ADFD8C - 74458C27AB04B0AABA066C36EE61EE4F59B070114C9B3E5DF2883BC92A01AC09 - D54B57DA40D184EA290B4C44D6082018CC8745954B244F3B248089C91A01D484 - EA202747FFAF3BBBA414E694954B1E2193350208D5AD95AE26A6F5D811E92A39 - D418BC9BAC10C0F4A219306FC142C9BB9B783C0EFFFAE71B92979C5A26229B2D - 6B343F2964C55F0303A7C4E5F64B70F1C279B8D985C7E824A7A0A090B5232A25 - 4F3F7981000482C1A4E672E1C06972BC5E1F54D786E0EBF7DE070F7EEF6178E8 - 91CD503CD398E596593114FCD4B33F83D9A5A5927737FFF9F77E78FDB5BFC1B7 - BEFD5DF8FCBA2F48A513F3BF0F0EC02B2FFF5EF2B48301FEC573FB246F627A7B - 7B60F7F6AD303282E736DCA684B543366CFC1AACAEA9058763ECEA3A1CAEC661 - EB94996A43C125A57314838FB41D3B26BEB61E155E95A85E13122694F432D0DF - 2F54394A608F65C9B2DBF3159EDC5CF8E6FD0FC0AE677E2A64B3F1C13712D30B - 402DFD0F0C0CC0B9B3A785EB93278E432482A24F4EAED70B2BAA56499E7630F8 - F8996A94958B89B2B4AC0C763DFD13B867FD1753EAC5640A530B000770D404D0 - 7AB4E5D36FE4284BB9278FB709D74A84EA3F2B5DE963786848BA4A0E0E592FAE - 5C024FEED80345AC116B564C2D8079F317B01E4091E44DCCD196B1F5664B53A3 - 74951CCC00D810D38B5A9641E6B35ECBA6CD4F689EBD9C6C4C2D805A95D1BB48 - 240227DAF044D5DB1C3DD2AC5A47631D8CAD70BDA8DD1FC156BDDB8D0776981B - D30A00EB4BB569DC5327DAEE6A698759FD7CF68CD82650A22E85A16114DE54C1 - B40258BC64A9D0E5522259B7E948B37A3550B1B8120A0AB54F2D23511240E651 - 6BFC25127121DD4F044F7F5A982154F98C6444A3784C6F7AC9C43D7930A500B0 - 8EC6C112252E9C3F0FFD7D7D9237965B37BBE0CAE576C94B8EDEB9814442DF19 - CD1D1D57E1DD77DE86DFBEF83C3CBB67273CF1D80FE0F14DDF872D3F7C08DA8E - A98F616402530A60F9CA2A6145AF12C755FE603C59A0744E9930D09449A2D108 - 1C7CFF3D7866F70E78FAC7DBE1B5BFBC0A4D0D870481A28007070785768B5198 - 52006AE91F39C6FAFF4AB4341D96AE94C9E43A81E6C606D8B57D2BFCF99597E1 - EA95CB52A9B9309D00DCACDFBC7255B5E44DCC4D96E271024809FC865DBF764D - F2928302D0B3CC4C8DEEEE5BF09B7DBF86EE5BB7A41273623A01AC5A5DA33A9B - C633D883341D3E245D250747EC1656A4FFE49B784C7DACC00C984E003CE9BFA9 - 018FC55587A73B88D45978A188A9A683FD7E3FFCFCB97D8ADBB9B005DE74B881 - AB258EA9BDA636A49AE2C3E101D8B6F911EEAED8A35BB6C1B2152B256F626E76 - 75C1CE27374BDE2492CDD3C13855ABB6970F83B92654C73245BDAAE1FB78EA77 - 9FCFCF028A672D5B0F53098027FD670AAB5603A611407E41A1303C6B14D8F3C8 - CDCD953CEB601A01D486EA33D21DE3055709A98D3E4E45CC23807AE3D2BF4C68 - 6D6A0B45B21153086046F14C289F3B4FF28C0357F0E46BDC7D9CED9842004636 - FEEE445883C07A0F56C21402089920FDCBD459AC1A307C2008F7EBE1AA59355E - 7AE157D07EE9A2E4690777176DD9B643F294796AE736B8F64987E4DD0D0D04A5 - 119ED9B8BEBE5E61F127EEFCD16BA74F1E878EAB57A43B2A63A52C60A800C451 - 3DF53AF7687313D7424C351A39E710B04A32B24B3A99182A8005158BB88E7C69 - E69CFD53E3F0213E01607581CBBAAD80A102E069FD0F0E8659FA3E2179A971E3 - FA35EE768455B6921B26009CF4C1993A358E1D6981582C7D0B260F1FFA50BA52 - 06AB262B1C326998002A972E134EFD52837769172F8D0D87B8A692FDFE3C4D07 - 52662B86098027FDE3A68FE3AD6377FEA40AAE18BE70FE9CE4296385DE802102 - 703A5DB0BA5AFDA9F3B8549A671F9E561A391B8355ABAB85358A53194304809B - 3371CFBC1AE94EFF324D8D87B8BA952E979B4BA8D98C2102C075FF6A60FA6F3D - AA7EF0931E7A7B7AE0F429BE9E4555758D74751B9EA563B81F201B306428D8EB - F34120A0BCEF6F301C16460033056EDBC645286AE0A68DFEFEB13B90F090093C - 054409ECBEF6F566EEF74F8AC6A160C3E702883433D58F8B27D20B09C0E29000 - 2C0E09C0E290002C0E09C0E290002C0E09C0E290002C0E09C0E2681380CD66CC - 5966043F1A63A4450009888C4E7C2E1B611EC418719F63C72300BC195A1CA203 - EAA72E11C622C6082780E4B829C29B01F0465118E9E55B4B4518871823AC0654 - 838FF06600545414063A273E9B95300F628C5000721650843703E0CD223078B3 - 09E2D17EB188301D181B8C11C64A8C992A5AAA0076D3483FF45D7E572C224C87 - 101B1623510069AB026430AD0C41E799BF8A2E613AC4D8E0F36CB8BB825A3200 - A6942118EE6A81BE8EFF0AA58479C098606C440170D5FF88960C8037C53566FD - 70A3792FC4129A061C880C82B1C098606C38D601DE89BECD6FD19101269D5CF0 - 154FED45F3D94257EBEFA0A7FD7576D5C30C9FA193510188A9257CE314F88B6B - C0E52F117CC218C2D71BE0CA477BD85517B34166312CE645AF00506171E8EF68 - 84BC599F0347AEFA027B22FD0C779F834B0737B1EE1F1E7DA2A9F52FA3570068 - 31F6C1C3D0DBFE21F867AF05A747DF1398087D0CF69C868FDF7B186223E79987 - 3B5034A57E19BD1BE065114421110B43DFC707C119980F9E206D1A990C7ADA0F - C095039B2116B9801E330CBEA6D42FA35700080A00151781787C18FADA3F80E8 - 700FF8675481CD6EFE27266623F1483F7434ED85EB2DBF647FF3ABAC24A5E023 - A99E8484FF1FBB9218707C166B01D8DD73A168F9835058F155B0DBAD77FA7226 - 88C586E0D6D937A1B3ED0F2CE5E31937DDCCC2CCE4B48F5F465DA4EB282C1401 - 3E931D37D3E7310B3021CC8260F9060896AD035FD172B0E5283F0786184B223E - 0AE1CE36D6C67A1F7A2FBDCD02FF092BC5BA1E1F3136CC8C7BBC5F89740900C1 - 7B6195220B01BFFD9815BC008E0078F32BC11D2807876F3AD86C9831D2F9D953 - 8104241223100D77C148DF25D6C83BC59A58B8B803BB76F86DC7113E39F098F2 - 757FEBEF2413419085208B01BFF91870BC46C36C41C19F98DBED2AD130C5E3C8 - 9E1CF4B4055E269381C07BA361C0D15010147C75641160B0F155AEE3D31A7899 - C90A86FC39147C3EE4606724E804411004411004411004411084E500F83F2B0F - E44ABBC27B940000000049454E44AE426082} + 0C7D49444154785EED9D096C1CE515C7FFB6F7B077D767E25C4EEC90900B9238 + B1E3B5D3AA45D043422DAD2A2154B5A2A548ADA0A110AEA4500802D4AA6A2B85 + 1610BD542A2A7A51810AA5A8080441AD208E8F2476424248489CC424B1139FEB + 6BAF7E6F0E727977BE19EF7A663DEF27BDECBCCFEBD9C8EFBFEFBBBF01C3300C + C3300CC3300CC3300CC3302E204F7B9D0EF4CF9ACECFCC459297BC66956C0783 + EE4F96AF99EE33A9A1C0932534D3FDAC908D60E8412E10E611E6151644A0720D + 8ACA9721DF370FF97985A28CB99444720C89895318ED3B84919E0E5112111615 + 161316179671316452007AE029E83EF8FD95082DBE11658B6E40604E58FCC84F + 6F6264498E63E44C33FA8FBF82E1A3FFC0F8788F289C104662C89810322580F3 + 81F7F9AA50B9EE6E1457DF0CAF3FA8FC94991AD1F10886BAFE849EDDDB313171 + 52945C28842991090150DD4E693E808AE5B7A072FD36F83C65CA4F98CC3211EB + 474FFB6338F7C11F8537228CAA076A275866AA02A0E08BD45E3807354D4FA1A4 + EACB6A319355868EBF8AA3CD9B80B133C21B176659045311801A7C9FAF06D55F + FC3B8A4AD7A8C5CCB4303AD081AED76F1255C231E1591601B5D4ADA006DFEFAF + C2E22FBC84C2B2D56A31336D780BE7A2B8EA3A0C77BD8A789CAA03BDCB680A2B + 02A0ACE113568A9A6B9F47D1EC0D4A2933FD780A2B51386B3DFA8EBC2C3C4BED + 012B02A0D67E08736B7F88F2255F578B18DBF0856A90979F87C8E9F784675A04 + 94CACDA0A5FED25A54ACB8532D626C87624131511AE4E6626AE6CD94FA296304 + 307FC3C3F078A9EBC738018A05C58462A3C648BA716F56003E04449D5F3CEF3A + B588710C14138A8DDA3ECB8A00485985285FF66DD5651C871A1B9A67916EDBC9 + 0A404FFF25285B70BD52C2380F353625C2A4AB013302F022B8208CFC42FA00C6 + 89506C2846EAD07C460540EFF32234AB417519C7A2C6880420155B99379192C8 + 3CF096AD504A18E7E22F5B2EFEA5B11A3D6E6931530578E00FCE575DC6B17883 + 0BC4BFBA000C91CD00F4BE0214F84A9512C6B9E4FBF44620C52C631980C8433C + 4ECA629C4C222EDD0024CC08809981B0005C0E0BC0E5B0005C0E0BC0E5B0005C + 4ECE09C0EBF5221008485B4181F4C4982B91E92F9248688E790E967E69070265 + 8B95529BB8EBDEADB86AB5FC02E4DD6DAD78E6C9ED9AE70246FA8FE2F0ABD788 + 2B5A324E1B48D22E11CBB90C5058686E5BE19AB5B50886429AC75C4ACE09A0B4 + AC5CBB92A3C0E3C1868646CD632E25A704505C5C828A59B3344F9EF0C64F6957 + CCA5E49400D6D5D5232F4F7A98FB13965EB91CB366CFD63CE642724A001BC24D + DA95394834E126CE0293913302282D2DC3F295AB34CF3C2C80C9C91901D4871B + 919F6FFDBFBBA06A211655D7681EA393330208376ED4AE26A763EF6EED2A35DC + 18BC9C9C10C0ECCA39B862E9959A7739894402FFFAE74B9A979A0621A2BCBC9C + D1FCB490137F0D0A5C3A8E771DC3D1238771B6978ED1494D7979856847ACD43C + EB149794A0A4B434A5F97C34709A9A402088BA8630BE76E34DB8F5BBB7E3B63B + 3663EE3C7B965BE6C450F0238FFF140B162ED4BCCBF9CFBF5FC18B2FFC0DDFFC + D677F0D96B3FA7954ECEFFDE791BCF3DFB7BCD330F05F8E74F3CAD79933330D0 + 8F87B7DE8BF1713AB7E13C55A21D72FD0D5FC5FAFA06783C17AFAEA3E16A1AB6 + 9E32336D28B86AE1A2B4C1273AF7EE555F3BF628AFE9A8DB10562694AC323C34 + A45439E9A01ECBAAABCFCF57141615E11B37DF82871EFB8992CD2E0DBE9D385E + 0046E97F7878181F1E3AA85CBFBF7F1FA251127D6A8A0201ACA95DA779E6A1E0 + D3671A515DA326CA85D5D578E8D11FE39AEB3E3FA55E4CB670B4006800C74800 + 1D7BDA3FF9464E8894FBFEBE4EE53A1DE1A64F6B57D6181B1DD5AE524343D62B + 56AEC2FD0F6C43A568C43A15470BE08A254B450FA052F326674FFBC5F5667B6B + 8B76951ACA00D410B38A51962196885ECBA6CDF7999EBD9C6E1C2D800683D1BB + 68348AFD9D74A2EA79F6EC6E33ACA3A90EA656B8558CEE4F50ABDEEFA7033B9C + 8D630540F5A5D134EE81FD9D97B5B423A27E3EF481DA264847E3148686497833 + 05C70A60C5AAAB942E573A52759B76B7195703CB56AC447985F9A96522C602C8 + 3E468DBF6432A1A4FBC990E94F2B3384069F918A588C8EE9CD2CD9B8A70C8E14 + 00D5D13458928E23870F63687050F32EE6DCD95E9C38DEA579A9B13A37904C5A + 3BA3B9BBFB24DE78FD35FCF69927F1F8B60771DF5DDFC7DD9BBE877B7E701B3A + F71A8F616403470A60F5DA5A65456F3AF619FCC164B2C0C245D5CA40533689C5 + A2D8F1D69B78ECE107F0E88FB6E285BF3C8FD6E69D8A4049C02323234ABBC52E + 1C2900A3F44FEC15FDFF74B4B7EED2AED293CD75026D2DCD7868EBBDF8F373CF + E2E489E35AA9B3709C00FCA2DFBC765D9DE64DCE5991E26902281DF40D3B7DEA + 94E6A5860460659999117D7DE7F09BA77F85BE73E7B41267E23801AC5B5F6F38 + 9B2633D843B4EEDAA95DA58646ECAE5C96F9936F1271E3B10227E03801C8A4FF + D6663A16D71899EE20D1E8E285228E9A0E0E8542F8D9134FA7DDCE452DF0D65D + CD522D714AEDF50D61C3141F890C63CBE63BA4BB6277DEB30557AF59AB799373 + B6B7170FDEBF59F3A6915C9E0EA6A95AA3BD7C14CC0DE14691299A0C8DDE2753 + BF07832111503A6BD97D384A0032E93F5BB8B51A708C00CACA2B94E159BBA09E + 47515191E6B907C708A021DC9495EE982CB44AC868F47126E21C0134D997FE75 + C21BA7B6502417718400E6CC9D879AC557689E7DD00A9E3293BB8F731D4708C0 + CEC6DF85286B1044EFC14D3842006107A47F9D46975503B60F04D17E3D5A356B + C4AF9FFA25BA8E1DD53CF3D0EEA27BB63CA079E979E4C12D38F571B7E65D0E0F + 04651099D9B8C1C10165F127EDFCB16A07DFDF87EE9327B43BA6C74D59C05601 + A8A37AC675EE9EB656A9859846B448CE215095646797743AB155004B972D973A + F2A54D72F6CF885D3BE50440D5052DEB7603B60A40A6F53F321211E97BBFE64D + 8D33A74F49B723DCB295DC3601D0A40FCDD419B177773BE2F1CC2D98DCB5F35D + ED2A3D5435B9E19049DB04B0F2AAAB9553BF8C905DDA254B4BF34EA9A9E450A8 + D8D48194B98A6D029049FFB4E9635FC7C53B7FA60AAD183E72F843CD4B8F1B7A + 03B608C0EBF5617D9DF153E769A9B4CC3E3CB3B44836066BD7D7296B146732B6 + 08803667D29E7923329DFE755A5B764A752B7D3EBF945073195B0440EBFE8DA0 + F4DFB1C7F8E0272B0CF4F7E3E001B99E456D5DBD76751E99A563B41F2017B065 + 2838100CA2A424FDBEBF9148441901CC16B46D9B16A118419B3686862EDE8144 + 874CD02920E9A0EEEBE040F6FEFF293139146CFB5C00936166FA71F14C666101 + B81C1680CB6101B81C1680CB6101B81C1680CB6101B81C1680CB6101B81C7302 + 2828B0E72C33461E933132238024A213939FCBC638073546D2E7D8C908806E46 + 96406CD8F8D425C65ED418D104901EB7B4C86600BA510CE303726BA918FB5063 + 44D58061F009D90C408A8A61B867F2B35919E7A0C68804A06781B4C86600BA59 + 1423675B91880DA9458CE3A0D8508C28566ACC0C315305889B46873078FC0DB5 + 88711C4A6C448C540164AC0AD0A1B4328A9E0FFEAABA8CE3506343CFB391EE0A + 9AC90094524631D6DB8EC1EEFF2AA58C73A098506C540148D5FF84990C4037A5 + 35664338D3B61DD1A4A90107268B502C2826141B89758017626DF35B6C7C58FC + 6611827367F6A2F95CE16CC7EFD0DFF5A2B8EA1746CFD0C9AA00D4D412397300 + A1B9F5F085AA149FB187C8E9669C786F9BB8EA1536222C4EC5B2581500292C81 + A1EE1614CFFF0C3C45C60BEC99CC33D6F7218EEDD824BA7F74F489A9D6BF8E55 + 0190C5C5078F61A0EB5D84166C84B7D0DA1398186B8CF41FC4476FDE8EF8F861 + E1D10E1453A95FC7EA06785D043124E3110C7EB403DE9225282CE54D23D3417F + D7DB38F1F666C4A347C81346C13795FA75AC0A80200190E2A24824C630D8F50E + 6263FD08CDA9455E81F39F98988B24A243E86EDD8ED3EDBF107FF393A2644AC1 + 27A67A1212FD3E752529E0F42CD67214F817A372F5ADA858F6151414B8EFF4E5 + 6C108F8FE2DCA197D1D3F90791F2E98C9B3E6111617ADAA72FA3253275141689 + 809EC94E9BE98B85950821CC4769CDF528ADBE16C1CAD5C8CB4FFF1C18E66292 + 8909447A3A451BEB2D0C1C7B4D04FE63514A753D3D626C4C98F4787F3A322500 + 82EE45558A2E04FAF6535608009E1204CA56C25F52034F7036F2F2286364F2B3 + 6702492493E388457A313E784C34F20E8826162DEEA0AE1D7DDB69844F0F3CA5 + 7CCBDFFA0BC946107421E862A06F3E059CAEC9285B70F027E77CBB4A354AF134 + B2A7073D6381D7C96620E8DE64147032120407DF185D04146C7AD5EBF88C065E + 67BA82A17F0E075F0E3DD859093AC3300CC3300CC3300CC3300CE33A80FF032F + D9E548B0D95E090000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_128.png' @@ -165,215 +165,215 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000001000000010008060000005C72A8 66000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 19F149444154785EEDDD09745C577907F06F46D268D748B2645B966459DE57D9 - B22DDB593021E4848612C8A187B4404F7BBA404B0B14EA004E43020402843685 - C22910C281366DD80A050E050A846C9026C48B366F788962D9B22C2FDA479A91 - 3452EFF7DEBDE8792CD933F3EE9B7933EFFF3BE7E6BDFB2CDB2347DFFFDDB7DD - 4700000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000905A3EB9CC16B1DF4FB67D7F901E3372A9C4F63356A6 - 1788FAFCD6EF83D7E7DA0E902C55F0BCB416BF757B46CAC402892D6E5EC636BF - 684CF515EB3AC07C628B5CF5A745537D6B63B1CB8C904905612D662E70D5E7F5 - F99AF5F7A825403CAC05CD8D8B7FBE66FD1AA6FAAE970945A18A583555DC3957 - B5C205F5545CB99502E5EB2850BA8AF2CB6A29A7B046FC4A50FC9602F1350071 - 9A0E539486283ADE4B91E11E9A18394113834729D47F90C62F9F115F109DA3C5 - 0682EB83C0CD013057D173CBFD5DCBCF2FA1E2FA5BA9B4F6762A5E7C13E5E4D6 - 8AED00CE8A4EF550E8FCF334D2F3730A9D798A229151B175CAD25410C48681EB - B83100E62A7CDEC3ABC2CFA360DD0D54BEE26D5452F37AF2E7148B6D00E9311D - 0DD168EF4F68F0D43768E8EC0B62CBA4682A08E61B15B886DB0220B6F0678B9E - 289F16ACBE8B16AC7D17E5976E147D0077898C1CA2CBC7BE48978FFF907BA259 - C32036085CC12D01A00A5F15BFDAE3078C56B9F20EAADE782F058A57893E80BB - 4D844ED0C5439FA2FE933FE59E6CD611816B46036E08006BF1ABC2E73D7E800A - 2A56D3925D0F5171E5AB451F20B384FA9FA5732FDE47E181E3A2C721A046041C - 04AE08012EB8745285AF86FB5CF87CB6BE881636FD352DBDE12B62AFBF52F401 - 324FA070192D58FE36F1E31DA1505FA7DC9AF6BDBE15175FBA58F7FADCCCE3FC - BCE21A6A78D5E7A970C12DA20F901D42179FA533CFBF872643BDA2A7CE0FA8CB - 87691B09A46B04602D7E75AC5F4845D55B69C5ADDFA1405993E803648F40F132 - AA687823852EEDA3C9B14B628BB5E0D3362A484700CC5DFCE58DB753C3EEC7C9 - 1FA8127D80ECE3CF2BA38AC6BB6822748CC283DD628B75CFEF8911C05CC55F40 - C1C63750DDAEC7C8EF2F147D80ECE5F305A8B4F64EE34A4164F065B125AD2190 - CA0098AFF8EF14C5FF2551FC7C0E0020FBF97C392204EE10217032DD2190AA00 - 50C5AFCEF69BC3FEB2FA5753C34D8F91CFCF7D00EFE01008D6BD4E1C0AB41ACF - 1AA4E926A1540500173E07C0EC9EBFA07C1D35DCFA0DB1E7C7ADBCE051BE5C2A - ADBB9D46CE3E4953E101B14105800A01C7C3800BD369B143FF7C0A041650C32D - 8F514E4E50F401BC8B6B806B816B826BC3AC11AE1555378E727A04602D7EF33A - 3FDFE4537FD367A8A8EA66B10E0039A2F8F3CB6A68F0F493A297D25B859D0E00 - 1E615C79DCBF60E51BA96AFD07C43A0028F9C1F5141D3F41E3FDA744CFFAE010 - 732C089C3C04507BFFD900C82B5A488B9B3F2ED6012016D7465E71B558E39D25 - D70CD78EAA2347A422006687FF8BB6ECC18D3E00F3E0DA58B4F91EB1C687CA5C - 338E9F0B702A00D4879EDDFB1757AEA560E3DBC43A00CC876B846B2545A300A7 - 036076EF5FBDE5FDE26F73FA9C034066E31AE15A49D128C08900501F7676EF5F - 2412ADB4E60EB10E00D7C3B5C235938251809301C0C9650640D5FABF90DB00E0 - FA7CB266540038360AD01D00EA03F29F6B0EFFF38A2AA874E99DC65600880FD7 - 0CD7CEEC6180AA55AD21E0D40880FF5C73EF1F5CF626F2FBF0941F4022B866B8 - 76AE3E0CD04A7700A8E257019047C1A5AF174B004894593B3C025001A03D0474 - 0680FA60BC348FFF734B175251458BB1150012C3B5C3356406803A0FC0B48580 - CE0060FCC1660320B878B7F82B74FF1D001E216AC7A8A12B02405BF133270280 - FF4C33008A16EDE28D009024B3865400706DB93600543ACD06404975B3580240 - B2CC1A8A0D006D21A03300D86C00E41595516ED132632B0024876B886BC9E523 - 00954A2A00FCC6EBB9357F58000FF2895AE297E398757565ADD9A62B00141500 - 39545081BD3F800E05955C4B19750EC04FB9B935BC11006CCACD5922FE6BD6D5 - 6C9D69A13300D86C0804823CC71900D865D692F6E267BA02407D30D5FCE4CFE5 - 1317006097594BD60050CD36DD2300263F9CBFC8EC02803DC6B334DA8ADECA89 - 0030F98D6B97006097DFC7CF0338C2C11100006894112300143E80B3B4D69873 - 870000E07A0800000F43000078180200C0C31000001E860000F0300400808721 - 00003C0C0100E0610800000F43000078180200C0C3743D58C041C27396F13BCD - 8B450B52E36B1EA59225B78875CFAB5CB0807C3E67B2363C3E4EA1D0A8EC4156 - 1A3DF70C753DFD57626D48B4906811D1A2A24D8B660B02C061BB6FB995DEFEA7 - 7F2E7BFA4D4F4FD3A73FFE113AFD4A97DC0259C7C100C02180C382E5E572CD19 - 7EBF9F76DD78B3EC01240601E0302E50A76DDFB92B257F0F641FFCD438ACB8A4 - 44AE39A7AC2C48EB366C923D80F821001C160C56C83567EDBCE146B906103F04 - 80C3AAAAABE59AB3B66CDD4681009F8305881F02C041B97979B468716A5E9094 - 9F5F405B9AB7CA1E407C10000E5A2F8ECBF34408A4CACE1B6E926B00F1410038 - 685BCB0EB9961AEB366EA2D252BC9009E2870070484E4E0E356D6E96BDD4E0BF - 33D5A103990D01E0900D1B9BA8A8986F8A4C2D1C06402210000ED9B12B3D97E5 - 96AF5C4555D50B650FE0DA10000EE0CB714DCDA91DFE5BA52B7C20F320001CB0 - B979AB71592E5D701800F1420038A065E70D722D3D16D7D4D0D28665B207303F - 0480667CE26FC3A626D94B1F8C02201E0800CDB66E6BA1DCDC5CD94B5C477B2B - 4D4D4DC95EF25AF08420C4013F219AB5ECB237FC3F72A8934E1EFFADEC252F58 - 5E416BD7AD973D80B9210034E2C93F56AF59277BC9E93A75923A3BDA65CF9E16 - 5C0D80EB400068B4BD65A7AD61772412A133DDA7E9E8A10EB9C59E6671381208 - 04640FE06A08008D5A76DADBE3F2D03F1A8D524FCF591AE8EF975B9357585848 - 4D5BD2773F829B7150F3A3DAAB56AF311EA5E669D5F8FE89FC82F45DBE4D074C - 0AAA49F5C245F489871F91BDE47CFFBBDFA6FFFDF18F8CF53FF9B3BFA49B76DB - FFE76B6F3D485FFCFC3FCB5EFAD42CA9B5757274726282CE9FEF95BDC471C173 - B16F6CDA422BC5B27EE952CACBBB7A74F4E4CF7E4AFFF5AD2764CF25302BB0FB - DDF18637D25D7F70B7EC25E7931FBBFF77B3FB6EDBBE83DEF9B7EF35D6EDE02B - 0A1F7CDFBBD33A75F8B2C6E574EF030FCA5EF27EFDDC33F41F5FFFAAECC5A7B2 - 7201ED7ECD6BE9C657EDA660F0FA13B4BEF0FCAFE8DFBEFAA8ECB9046605763F - BBB7DF8E8E8E50F7E957648FE8E891C3C694DF76F15E37DD4F0886C361B966CF - CD6244545B572F7BD7C62764793A761E957138C753FC5E8400D0807F2897D4D6 - C95E720E7776D0CCCC8CEC118D8D85E8D4C913B267CF8E34DF14D47FF9925CB3 - 6FDB8E9D726D6E3C0BD3EBEF7C137DE2D38F18EF64C8B171D8E10508000D743C - 7C73A8BD4DAECD3AD471F5B664F0B1EF82AA2AD94BBD0971FC1ED1340A58B56A - 8D5CBB5AE3F21574FFC73E496F7AF35B2890CF47A3703D08009B7C3E1F6DDFB1 - 4BF692138D4E5167E7D5D7FE3BDA5AE59A7DE97E3E6168880F5FEDAB9FE31907 - FE7FC0C3FC0FDEF711E33908881F02C026DEEBD89DF9F7D8D123343E36267BB3 - CEF59CA58B17FA64CF9E743F1B30A6E924245FDA2CAFA8943D322EDBBDEB3DEF - 374EC0E2D6E7C4E15FCCA61D1AE6E36F3B7840AE5D8D2FE3E9C0E728EAEA97CA - 5EEAE93A11C82A2BCD00E0F90FEFD9FB61E3F16B480E02C006DEE36CDB7EED93 - 52F1E8B84691B71EDC2FD7EC4BE728406700F0DB96CA8241DAB3F73E3CF66C13 - 02C086356BD71B3F8876BCD2F5320D0E0EC8DED54E9D382E8E9F0765CF1E7E50 - 898F97D341C7254DA5AAAA9ADE77CF5EE3E622B007016083DD27FF587BEBFCC3 - 7FC69706751D06548863E7D56BD6CA5E6A4522FA46006FBEFBAD71DF0F00D786 - 0048125F6FDEBADDFE0D36D70B00D67640DF6140BAEF09D0010F38E9830048D2 - C64D4DC619693B2E5DBC483D67CFCADEFC8E1D3D4CE3E3E3B2670FDF62CCE195 - 6A3A0F01401F044092745C578F67EFCFF809C1CE396E144A466151116D6ADA22 - 7BA9130EEB0930D00B019004BEF6ACE3D253BC01C0DA5B351E0668387791B0D9 - BB9CC145100049D8D2BC6DCE474913111A1DA513094CFD75A8A35DCB5C81AC69 - CB566324904AE3E357DFE804E9870048C20E0DC37F9EFC3391E362BE8E7EECC8 - 61D9B3C7784250C3094CC87C088004151797186FE1B5AB2D891B7C5A0FEC936B - F6E9B88331113CDD19B80F022041FC382ABF85D70E7E3A8E67FF4D148F1AAC8F - 0CDBC193975AEFA9771A9FC8CC0443837A6EBACA14981128417BF67ED8F6CD34 - BCF7FFD2173E277B89D97BFF47A971F94AD9B3E77BDFF926FDFCA73F963D67BD - F6F6DFA3BBDFFAC7B2975A939313C6642BDDAFBC427DE77BE9D2A58B34323C6C - CCB9108D9A87617E9FCF983B807F5D57C86A831981DC81F798FC6CBD5D3CF947 - B2DA5BF53D22BC33C58701A9D473F60CFDE4473FA07FFCE483F4BEBF79277DE6 - A107E95B4F3C4E4FFFF217C62555BE05FB425F1F5D1661C0EDE2C50B74BEF79C - FB8ADF61088004F0DB7674DC4B7FC846002473EE603E75F50DB667327293D191 - 116344F3D1FB3E440FDE7F2FFDF0BFBF4B274F1CD776F5241B210012A0E3E61F - 7EC6DFCE1459BDE77A8C61AA2ED9F00EC1FEFECBF4C4E35FA7BD7BDE6B1CD6F0 - BF11C4070110A7458B6BA86159A3EC25AFB3DDFE10FE5AF307248A432D5D4F08 - DA353A3A4ADFFCCF7FA7FB3FB4879E7BFA97E2587F52FE0AC40B0110A7ED62F8 - AF838E69BE0EECFB8D5CB38FE70A5CB172B5EC650E7E42F223F7DE43CF88637A - 0CF193870088D30E9B6FFD61C3C3435A66FAE533DA7C265B979D3766D661C0D9 - EED3F4A52F7CD61801803D088038F044943A269BE4BD968EB3CCFC671C7849DF - 2880DF6968F7DE86541A1B1BF3DCD97AA72000E2A0E3D65FD6AAF1B97E9D8701 - 45C5C5B4B169B3EC81972000AE834F90E938FE1F0B85E8D89143B2671FBF428C - AF5FEBA2E3DD0690791000D7B172D56AE3FD7276F1E49EBA6F87D53961283FDE - 6C778213C83C0880EBD0F5428DFDBF7941AEE973ADD98413C58F37376F6B913D - F00A3C0B700D7C62ECE1CF7EC1987FDE0EBE3EFDB5AF7C51FBB4587E7F0EBDE3 - 5DEFD6F6428CA3873BE973FFF4B0ECE9A5F35980E3C78ED2230F3F247B1E80D7 - 83A7C7864D9BE9BD7FFF01D9CB7E1C507C379D134FC421006CC0C340E99196A9 - B3D28847122D3BBCF53D7B1D02601E3CF5F4E6E66DB2E71DA99E2804D20B0130 - 8F8D4D5B3C79569C9F77585CB344F620DB2100E6E1B5E1BF15EE09F00E04C01C - 78C65C1E0178151F0664EA1382901804C01CCC69BF53FFF61CB7A8AE5EA86DDA - 31703704C01C74BCF433D3E164A037200062949695D1BAF51B65CFBBB66B98FD - 18DC0F0110635BCB4E6D77D66532BEFB71FD06FBEF3F0077C34F7A0C5DF7FE67 - 836C982F10AE0D016051B9A0CA78FA0F4CFC8420BF0815B21702C0C2CBD7FEE7 - 12C8CF37AE8840F6420058F0BCFF70251C0664370480C4B7BFF28B32E04AEB36 - 6C34AE8C4076420048D9FC9A2C3B8C27047162346B210024FC90CF4FC794E8E0 - 4E98104458D6B89CEE7DE041D9B3A7B3A32D656FDC9D0F8F666EDEFD1AD9D3E3 - FEBD7B8C9769260B1382D88019819CF5963F7A3BDDF6BA3B64CF9E47FFF55FE8 - E0FE7DB2971EB575F5F4C0C73F257B7AFCE807DFA3FFF9E1F7652F7108001B30 - 239073F8A9375D67FFF93DF4765EFDAD0BBF1A5BF70B327135203B793E0056AF - 5D47C1F20AD9B3E750473B45221CCEE9B74FF32CC40B172D360E9520BB783E00 - 5A76E8BBF6AFF3ADBD76EDD7F8EA30054F08661F4F07003FEDC60FFFE8108D4E - 517B9BBE79FAEDEA3BDF6BBC4454279E30140F4A65174FFFDFDCB0B1C9782F9E - 0EC78E1EA1F1B131D97307DDA380B260108F4A67194F0780CEB9EF0EEE7B49AE - B987EEF3000C8701D9C5B3011008E4535373B3ECD9C32FD470D3F05FE9BF7C89 - BA4E9D923D3DB66CDD6E4C990ED9C1B301603CEA9AAFE751D793C77F4B23C3C3 - B2E72E2FBDF8BC5CD3A3A0A0C093EF4BC8569E0D009DB7FEB61E48EF8D3FD7C2 - 3725CDCCCCC89E1EB827207B783200F8C4DF864D4DB2679FCED774EB36383840 - BF3D7644F6F458BF7113959496CA1E64324F06C0D66D2D949B9B2B7BF6F031F6 - 407FBFECB9D301CD27288DCBA7DB77C81E64324F0680CE69BFDB5CBCF757F80A - 4534CAB78EEB83C380ECE0B900089697D3EA35EB64CFBE03FBDD77F92FD6E8E8 - 081D3B7A58F6F458B16A35555557CB1E642ACF05C0768DD37EF34337172F24FF - 886C2AED7BD1817B02F00EC18CE7B90068D138B94526ECFD95B6D60334353525 - 7B7A2000329FA702A07AE1226A5CB142F6EC6B3BE0FEE37F856F533ED4D92E7B - 7AD42CA9A5FA8665B20799C85301C0AFBBD2851FB6E143804CB2FF372FCA357D - 76621490D13C15003A87AC6E7AF4375E1DEDAD148984654F0F7E97025E259EB9 - 3C1300B57575B4A4B64EF6EC3B9841C7FF4A241CA6CEF636D9D383275359BB6E - BDEC41A6F14C00945754CA35FBCE9EE9A6D3AF74C95E6679FE57CFC9357D6AEB - 97CAB5F90D0D0EC835FB060707E51AD8E59949417998BA66ED3A2A282C945B92 - 331D9DA613C78FD1F8F8B8DC92791A1A975345859E69D0F806239EA4339EA9D0 - 56AD594BC536E75FE07FFF93278FD35888E7C6F408CC0A0CE061981518009C80 - 0000F030040080872100003C0C0100E0610800000F43000078180200C0C31000 - 001E860000F030040080872100003C0C0100E0610800000F43000078180200C0 - C31000001E860000F030040080872100003C0C0100E0610800000FD31D003372 - C91316EB7D152D80575D594BB335A68183238099CC7D730680AB38574B4E0400 - 27D40C4D4F0E9B5D00B0C5AC25B3AE34736A04304391617D2F8303F0B2C870BF - F8AFF6E267BA0240A5D36C9B9E382F96006097594B57D798064E9C04E4364DE3 - 03A78D2D00608F594BFC1E406D85AF387108C01F745A0C5B4E89A5D60F0BE041 - 7C38FDB2589A75A599CE0030F7FCAA4D8547696A1CA300003BB886B896ACB5A5 - 71C7AA3B00187F407E757194427DEDC61600488E5943663D99B5C55C1700D6E2 - 57013045A317F6F34600489259437C23900A00AD21E0D43900330042E7FE4F74 - D50706808488DA316AE88A00D04AF72100B7D90088842ED178FF41B10E0089E2 - DAE11ABA3200549D69A17B04A03E9C1900449334D8FD0BB104804499B533299A - 0A00ADC5CF9C1D011801D0F533D10D8B7500889BA819A376AE08808C1901F007 - E50F3D4153E1011A3AC3DF0800C48B6B866B876BC8AC25EDC5CF9C3809680D00 - 4EAF085D3CFA84DC0E00D737236B26229A1A01A800D0CAE911007FF8091AEF3F - 4123E79E12EB00703D5C2B5C33E6DE3F3600B486809323003E6631038093ACAF - FD51B195B701C07CB846B856CCBDBF0A00EBF1BF564E0400B38E02F89B081B89 - 36D4F57DB10E00F3E11A31F7FE7CE23CF6F85F3BA74600D651803902E06FA8F7 - C0976972929F6D0680585C1B5C2366F1AB11802367FF951CB9D4CD27978CD739 - 68FC341315039CF10B54567F9BF12B0030ABF7A50769EC5287580B89C6D38059 - 47008E702A006271089841101E3847F9C13A2A285F65FC0A00100D9EFE8938F6 - FF9A58E327FFC644E351803AFE7764EFCF9C0C00350A50C56F0600B7505F0795 - 37ECA69C4085E80378DB64A88B4E3FBB578C9007454F15BF75F8EF98548D0014 - 3308F85060B4AF9D2A1A5F473E7FBEF94B001E343D35425D4FFD1D4D8E768B1E - EFFD79E8AFAEFF3B76ECAFA42200D448403143802739880C9D102381DB4437D5 - 4104E0023313D4FDDC072974B14D74F8B83F65437F259D85E7A3C8F0059A1CEE - A692FA5BC8E773EA922480FB4CCF4C51CFF30FD0D0D9E7448FF7FCD6137FD633 - FF8E4A4700A854334706E1A11E23044AEB5F8D10004F50C53F78FA49D15327FD - B8397ED92F563A4700B3DF5C78E82C4D0C9FA492DA9BC9EFCF935B01B24F343A - 463DBFFE071AEA7E5AF4D49E5F153F5FF24BD9DE9FA53A0078AF6FFDC666BFD1 - C8502F85FA0E8810D84539B925C636806C3211EEA3EE67F6D068EF3ED1E3E257 - 7B7F6BF1733DA4A4F859BA46007385C00C4D8EF58B61D1535454B9920225B5C6 - AF02648350DF4BD4F5F41E9A183A297AB17B7E3EE9C70190D2E2676E380450DF - B4D96626C334F0320F8FC6A878E166F2F972C53A40669A9989D085CE2FD3D917 - 1F113FDB97C51655FCEA721F17BEB5F8B9A54C3A0380A96F96973C12506D8642 - 178ED2F0995F5161F952CA2BC6680032CFD8857D74FAD97BC5F1FEB3A2671DF2 - 5B6FF34D5BF1B3D86BF4A964DE0F60360E22DED3F309C002D98A442B345A79E3 - 2DB470D33B28BFB441F401DC2D32725AECF5BF42835D5CF85CECDCB8F0F91ABF - BACECF856F3DE64F79F1B3740680C29FC1BC45D80C016E7C7720370E02330438 - 102A56DC46551BFE900A4AF11C01B84F78E4045D3AFC6D1A38C597F7D49E9E1B - 173D0FF7AD43FED9D16E1AB92100981A097008584703D620502D9F4A6B9BA9A2 - F1F7A9A4FE5594E3E77000488FE8F4388D8A43D581AE1FD3484FABD8A28A5DED - ED55E15BF7FAAAF0D35AFCCC2D01C0540870E310880D82805CAA16A09CFC5211 - 06BBA8ACE6062A5ABC85F20A1689ED00CE9A0CF7D1D8F9361AEE7D4114FD8B14 - 8D8C88AD7C4CAF8A5D35EB197E2EFCB40FF963B9290098FA3CBC54A3016B1070 - E320B036B53D8F0A2A6AA8B0723D05CA965341904F1E2EA4FC922AF2E7948A3F - 92BF16204E33119A8E8E5264F4124D862E5078A89B26865FA6F1FE23141EE815 - 5FC085AD1A17BAB5A9EDF30DF75D51FCCC6D01A0F0E7524D9D1F5061A00ADE1A - 0AAACF4D7D1D37FE7DD63F0B205ED63D3517AFDA837353856D0D0155F0BC545F - 672D7CD55CC5ED45612D5E55CCD602B7167D6CF173B30600534B806B5185AA8A - 363600B871B1ABA55A574DFD1EF5FBB9B952A614842A62D55461AB91815AAA75 - 6B63EAF701C4CB5AB86A4FAE9A2A74B5CE4BFE5AB5B43657CBB4A2B016B25AE7 - C6853ED75235A69600F150C56B2DE6D8428F2D78665D77BD4C2E8AB98A5B6D8B - DDCEACEB00D7632DE2D8E2B6F6D552AD67946C298AF90A1D450F3A588B7BBEF5 - 8C94AD0582C20727647CC1030000000000000000000000000000000000000000 - 000000000000000000000000000080FB10FD3F24C836C5203B216B0000000049 - 454E44AE426082} + 19F649444154785EEDDD09745C577907F04FA3D168194923C9926D59966D795F + E555B2B3E004C8094D4A20871ED2023DEDE9022D2D50A803380D09100810DA14 + 0AA74080036DDAB0150A1C0A1408D9204D88176DDEF012C5AB2C2FDA479AD1DA + FBBD772F7A1E4BF6CCBCFBE6BD99F7FF9D73F3DE7D96ED91A3EFFFEEDBEE2300 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000C8AC3CB9CC1589DF4FAE7D7FE08E29B95412FB592BDB0B44 + 7D7EEBF7C1EB336D0748972A785E5A8BDFBA3D2B6563812416372F135B4034A6 + FA8A751D60368945AEFA93A2A9BEB5B1C46556C8A682B0163317B8EAF3FA6CCD + FA7BD4122019D682E6C6C53F5BB37E0D537DCFCB86A25045AC9A2AEEFCAB5AF1 + 9C7A0A576DA150C51A0A95ADA0C2F23ACA2BAEA582C90851B0487C0D4092C663 + 3416E8A7A9912E8A0F9CA5D1C16334DA7798A23DFB69E4F269F1051333B4C440 + F07C10783900662A7A6EC1DFB5C2C2520AD7BF86CAEA6EA7F0FC9B283F5827B6 + 03386B62FC2C45CF3F4F83677F4ED1D34F513C3E24B68E5B9A0A82C430F01C2F + 06C04C85CF7B7855F80514597803552C7B2B95CCBB93820561B10DC01DE36351 + 1AEEFE09F59DF806F59F79416C19E3ADB2CD362AF00CAF054062E14F173D5121 + CD59793755AD7E271595AD177D006F890D1EA09E235FA0CB477F287A71D1AC61 + 9018049EE095005085AF8A5FEDF14346AB5A7E07CD59771F1595AE107D006F8B + 0D1DA3CB073F493DC77F2A7AA3B25947049E190D782100ACC5AF0A9FF7F8212A + AA5C490B763C4CE1AA5B441F20BB447B9EA5732FDE4FB1DEA3A2C721A046041C + 049E08012E3837A9C257C37D2E7C3E5B5F42731BFF9A166DFF32854A978B3E40 + F609152FA1394BDE2ACA2C4ED1EE0EB9D5F5BDBE15179F5BAC7B7D6EE6717E41 + B89616BFEA73543CE756D107C80DD18BCFD2E9E7DF4D63D12ED153E707D4E543 + D746026E8D00ACC5AF8EF58BA9A4660B2DBBF53B148A348A3E40EE0885975065 + FD1B287A790F8D0D5F125BAC05EFDAA8C08D0098B9F82B1A6EA7C53B1FA74061 + B5E803E49E40A89C2A1BEEA6D1E8118AF59D125BAC7B7E5F8C00662AFE228A34 + BC9E16347F85F2F38B451F2077E5E585285C7B9718051CA378DFCB628BAB2190 + C90098ADF8EF12C5FF450A06F91C0040EE0B04F24508DC2142E0B8DB2190A900 + 50C5AFCEF69BC3FEF2FA5B68F14D5FA1403EF701FC834320B2F075E250A0C578 + D6C0A59B843215005CF81C00D37BFEA28A35B4F835DF10FF10B895177C2A2F48 + 650B6FA7C1334FD278AC576C5001A042C0F130E0C2745AE2D0BF9042A139547F + 0B1FF347441FC0BFB806B816B826B836CC1AE15A5175E328A74700D6E237AFF3 + F34D3EF5377D9AC235378B7500088AE22F2CAFA5BE934F8A5E466F15763A0078 + 8471E571FF9CE56FA0EAB5EF17EB00A01446D6D2C4C8311AE939217AD6078798 + 6341E0E42180DAFB4F074041C95C9ABFF163621D0012716D14846BC41AEF2CB9 + 66B876541D39221301303DFC9FB76917058A70A30FC04CB836E66DBC57ACF1A1 + 32D78CE3E7029C0A00F5A1A7F7FEE1AAD554DEF056B10E00B3E11AE15AC9D028 + C0E90098DEFBD76C7A9FE8397DCE0120BB718D70AD646814E04400A80F3BBDF7 + 2F118956567B87580780EBE15AE19AC9C028C0C900E0E43203A07AED5FC86D00 + 707D79B266540038360AD01D00EA03F29F6B0EFF0B4A2AA974D15DC65600480E + D70CD7CEF46180AA55AD21E0D40880FF5C73EF1F59F246CACFC3537E00A9E09A + E1DAB9FA30402BDD01A08A5F05400195D7DF299600902AB3767804A002407B08 + E80C00F5C178691EFF07CBE652B8A2C9D80A00A9E1DAE11A3203409D0760DA42 + 40670030FE60D3011099BF532C74FF1D003E216AC7A8A12B02405BF133270280 + FF4C33004AE6EDE08D009026B3865400706D793600543A4D074069CD66B10480 + 749935941800DA42406700B0E900282829A760C912632B00A4876B886BC9E323 + 00954A2A0002C6EBB9357F58001FCA13B5C42FC731EBEACA5AB34D5700282A00 + F2A9A8127B7F001D8AAAB896B2EA1C408082C15ADE08003605F31788FF9A7535 + 5D675AE80C00361D02A108CF7106007699B5A4BDF899AE00501F4CB50005827C + E20200EC326BC91A00AAD9A67B04C0E4870B94985D00B0C77896465BD15B3911 + 00A68071ED1200EC0AE4F1F3008E70700400001A65C50800850FE02CAD35E6DC + 210000781E0200C0C71000003E860000F0310400808F2100007C0C0100E06308 + 00001F430000F8180200C0C71000003E860000F0315D0F167090F09C65FC4EF3 + B068116A78F56354BAE056B1EE7B5573E6505E9E33591B1B19A1687448F62027 + 0D9D7B863A9FFE2BB1D62F5A54B4B86813A24D8A660B02C0613B6F7D0DBDED4F + FF5CF6F49B9C9CA44F7DECC374F2954EB905728E830180430087452A2AE49A33 + 028100EDB8F166D903480D02C0615CA04EDBB67D4746FE1EC83DF8A97158B8B4 + 54AE39A7BC3C426BD66D903D80E421001C168954CA35676DBFE146B906903C04 + 80C3AA6B6AE49AB3366DD94AA1109F8305481E02C041C182029A373F332F482A + 2C2CA24D9BB7C81E407210000E5A2B8ECB0B440864CAF61B6E926B00C9410038 + 686B53B35CCB8C35EB375059195EC804C9430038243F3F9F1A376E96BDCCE0BF + 33D3A103D90D01E09075EB1BA924CC374566160E03201508008734EF70E7B2DC + D2E52BA8BA66AEEC015C1B02C0017C39AE71736687FF566E850F641F04800336 + 6EDE625C96730B0E032059080007346DBF41AEB9637E6D2D2D5ABC44F6006687 + 00D08C4FFCADDBD0287BEEC12800928100D06CCBD6260A0683B297BAF6B6161A + 1F1F97BDF435E1094148027E42346BDA616FF87FE840071D3FFA5BD94B5FA4A2 + 9256AF592B7B0033430068C4937FAC5CB546F6D2D379E23875B4B7C99E3D4DB8 + 1A00D78100D0685BD3765BC3EE783C4EA74F9DA4C307DAE5167B368BC3915028 + 247B0057430068D4B4DDDE1E9787FE13131374F6EC19EAEDE9915BD3575C5C4C + 8D9BDCBB1FC1CB38A8F951ED152B57198F52F3B46A7CFF4461917B976FDD8049 + 4135A9993B8F3EFEC8A3B2979EEF7FF7DBF4BF3FFE91B1FE277FF69774D34EFB + FF7C6D2DFBE90B9FFB67D9734FED823A5B2747C74647E9FCF92ED94B1D173C17 + FBFAC64DB45C2CEB172DA28282AB47474FFEECA7F45FDF7A42F63C02B3027BDF + 1DAF7F03DDFD07F7C85E7A3EF1D1077E37BBEFD66DCDF48EBF7D8FB16E075F51 + F8C07BDFE5EAD4E14B1A96D27D0F3E247BE9FBF573CFD07F7CFDABB2979CAAAA + 39B4F3D5AFA51B5FB5932291EB4FD0FAC2F3BFA27FFBEA63B2E7119815D8FBEC + DE7E3B343448A74EBE227B44870F1D34A6FCB68BF7BA6E3F21188BC5E49A3D37 + 8B1151DDC27AD9BB363E21CBD3B1F3A88CC33999E2F723048006FC43B9A06EA1 + ECA5E760473B4D4D4DC91ED1F070944E1C3F267BF634BB7C5350CFE54B72CDBE + ADCDDBE5DACC7816A63BEF7A237DFC538F1AEF64C8B771D8E10708000D743C7C + 73A0AD55AE4D3BD07EF5B674F0B1EF9CEA6AD9CBBC5171FC1ED7340A58B16295 + 5CBB5AC3D265F4C0473F416F7CD39B2954C847A3703D08009BF2F2F2685BF30E + D94BCFC4C43875745C7DEDBFBDB545AED9E7F6F309FDFD7CF86A5FFD0CCF38F0 + FF031EE67FE0FE0F1BCF4140F2100036F15EC7EECCBF470E1FA291E161D99B76 + EEEC19BA78A15BF6EC71FBD980614D2721F9D266456595EC9171D9EE9DEF7E9F + 710216B73EA70EFF6236356B988FBF75FF3EB97635BE8CA7039FA35858BF48F6 + 324FD789405655650600CF7F78EFEE0F198F5F437A100036F01E67EBB66B9F94 + 4A46FB358ABC65FF5EB9669F9BA3009D01C06F5B2A8F4468D7EEFBF1D8B34D08 + 001B56AD5E6BFC20DAF14AE7CBD4D7D72B7B573B71ECA8387EEE933D7BF84125 + 3E5E76838E4B9A4A75750DBDF7DEDDC6CD45600F02C006BB4FFEB1B696D987FF + 8C2F0DEA3A0CA814C7CE2B57AD96BDCC8AC7F58D00DE74CF5B92BE1F00AE0D01 + 9026BEDEBC659BFD1B6CAE1700AC759FBEC300B7EF09D0010F38E9830048D3FA + 0D8DC619693B2E5DBC4867CF9C91BDD91D397C9046464664CF1EBEC598C32BD3 + 741E02803E088034E9B8AE9ECCDE9FF113821D33DC28948EE29212DAD0B849F6 + 322716D31360A01702200D7CED59C7A5A7640380B5B5683C0CD070EE2265D377 + 3983872000D2B069F3D6191F254D457468888EA530F5D781F6362D7305B2C64D + 5B8C9140268D8C5C7DA313B80F019086660DC37F9EFC3395E362BE8E7EE4D041 + D9B3C7784250C3094CC87E08801485C3A5C65B78ED6A4DE3069F967D7BE49A7D + 3AEE604C054F7706DE830048113F8ECA6FE1B5839F8EE3D97F53C5A306EB23C3 + 76F0E4A5D67BEA9DC62732B3417F9F9E9BAEB20566044AD1AEDD1FB27D330DEF + FDBFF8F9CFCA5E6A763FF0116A58BA5CF6ECF9DE77BE493FFFE98F65CF59AFBD + FDF7E89EB7FCB1EC65D6D8D8A831D9CAA9575EA1EEF35D74E9D2451A1C1830E6 + 5C9898300FC3027979C6DC01FCEBBA42561BCC08E40DBCC7E467EBEDE2C93FD2 + D5D6A2EF11E1ED193E0CC8A4B3674ED34F7EF403FAC74F3C44EFFD9B77D0A71F + 7E88BEF5C4E3F4F42F7F615C52E55BB02F7477D3651106DC2E5EBC40E7BBCE79 + AFF81D86004801BF6D47C7BDF4076C04403AE70E66B3B07EB1ED998CBC646870 + D018D17CE4FE0FD2430FDC473FFCEFEFD2F16347B55D3DC945088014E8B8F987 + 9FF1B7334556D7B9B3C63055975C7887604FCF657AE2F1AFD3EE5DEF310E6BF8 + DF0892830048D2BCF9B5B4784983ECA5AFA3CDFE10FE5AF307A48A43CDAD2704 + ED1A1A1AA26FFEE7BFD3031FDC45CF3DFD4B71AC3F267F0592850048D23631FC + D741C7345FFBF6FC46AED9C773052E5BBE52F6B2073F21F9E1FBEEA567C4313D + 86F8E9430024A9D9E65B7FD8C040BF96997EF98C369FC9D665FB8DD9751870E6 + D449FAE2E73F638C00C01E04401278224A1D934DF25E4BC75966FE33F6BDA46F + 14C0EF34B47B6F43260D0F0FFBEE6CBD53100049D071EB2F6BD1F85CBFCEC380 + 927098D6376E943DF01304C075F009321DC7FFC3D1281D397440F6ECE35788F1 + F56B5D74BCDB00B20F02E03A96AF5869BC5FCE2E9EDC53F7EDB03A270CE5C79B + ED4E7002D90701701DBA5EA8B1F7372FC8357DAE359B70AAF8F1E6CD5B9B640F + FC02CF025C039F187BE4339F37E69FB783AF4F7FEDCB5FD03E2D5620904F6F7F + E7BBB4BD10E3F0C10EFAEC3F3D227B7AE97C16E0E891C3F4E8230FCB9E0FE0F5 + E0EE58B76123BDE7EFDF2F7BB98F038AEFA673E2893804800D7818C81DAE4C9D + E5221E493435FBEB7BF63B04C02C78EAE98D9BB7CA9E7F647AA2107017026016 + EB1B37F9F2AC383FEF30BF7681EC41AE4300CCC26FC37F2BDC13E01F088019F0 + 8CB93C02F02B3E0CC8D62704213508801998D37E67FEED395E51533357DBB463 + E06D088019E878E967B6C3C9407F400024282B2FA7356BD7CB9E7F6DD330FB31 + 781F0220C1D6A6EDDAEEACCB667CF7E3DA75F6DF7F00DE869FF404BAEEFDCF05 + B9305F205C1B02C0A26A4EB5F1F41F98F809417E112AE42E0480859FAFFDCF24 + 5458685C1181DC8500B0E079FFE14A380CC86D0800896F7FE51765C095D6AC5B + 6F5C1981DC84009072F9355976184F08E2C468CE420048F8219F9D8E29D1C19B + 302188B0A46129DDF7E043B2674F477B6BC6DEB83B1B1ECDDCBCF3D5B2A7C703 + BB77192FD34C172604B101330239EBCD7FF436BAED7577C89E3D8FFDEBBFD0FE + BD7B64CF1D750BEBE9C18F7D52F6F4F8D10FBE47FFF3C3EFCB5EEA1000366046 + 20E7F0536FBACEFEF37BE8EDBCFA5B177E35B6EE1764E26A406EF27D00AC5CBD + 86221595B267CF81F6368AC7399CDDB747F32CC473E7CD370E9520B7F83E009A + 9AF55DFBD7F9D65EBBF66A7C7598822704738FAF03809F76E3877F74989818A7 + B6567DF3F4DBD57DBECB7889A84E3C61281E94CA2DBEFEBFB96E7DA3F15E3C1D + 8E1C3E4423C3C3B2E70DBA4701E591081E95CE31BE0E009D73DFEDDFF3925CF3 + 0EDDE701180E03728B6F0320142AA4C6CD9B65CF1E7EA1869786FF4ACFE54BD4 + 79E284ECE9B169CB3663CA74C80DBE0D00E351D7423D8FBA1E3FFA5B1A1C1890 + 3D6F79E9C5E7E59A1E454545BE7C5F42AEF26D00E8BCF5B7659FBB37FE5C0BDF + 94343535257B7AE09E80DCE1CB00E0137FEB3634CA9E7D3A5FD3AD5B5F5F2FFD + F6C821D9D363EDFA0D545A56267B90CD7C19005BB636513018943D7BF818BBB7 + A747F6BC699FE61394C6E5D36DCDB207D9CC9701A073DAEF560FEFFD15BE4231 + 31C1B78EEB83C380DCE0BB00885454D0CA556B64CFBE7D7BBD77F92FD1D0D020 + 1D397C50F6F458B6622555D7D4C81E642BDF05C0368DD37EF34337172FA4FF88 + 6C26ED79D1817B02F00EC1ACE7BB0068D238B94536ECFD95D6967D343E3E2E7B + 7A2000B29FAF02A066EE3C6A58B64CF6EC6BDDE7FDE37F856F533ED0D1267B7A + D42EA8A3FAC54B640FB291AF02805F77A50B3F6CC38700D964EF6F5E946BFA6C + C72820ABF92A00740E59BDF4E86FB2DADB5A281E8FC99E1EFC2E05BC4A3C7BF9 + 2600EA162EA405750B65CFBEFD5974FCAFC46331EA686B953D3D783295D56BD6 + CA1E641BDF04404565955CB3EFCCE95374F2954ED9CB2ECFFFEA39B9A64F5DFD + 22B936BBFEBE5EB9665F5F5F9F5C03BB7C3329280F5357AD5E4345C5C5724B7A + 262726E9D8D12334323222B7649FC50D4BA9B252CF34687C83114FD299CC5468 + 2B56ADA6B0CDF917F8DFFFF8F1A3341CE5B9317D02B30203F818660506002720 + 00007C0C0100E0630800001F430000F8180200C0C71000003E860000F0310400 + 808F2100007C0C0100E0630800001F430000F8180200C0C71000003E860000F0 + 310400808F2100007C0C0100E0630800001F430000F8180200C0C77407C0945C + F284C57A5F450BE05757D6D2748D69E0E008602A7BDF9C01E029CED5921301C0 + 0935459363036617006C316BC9AC2BCD9C1A014C517C40DFCBE000FC2C3ED023 + FEABBDF899AE0050E934DD2647CF8B2500D865D6D2D535A681132701B94DD248 + EF49630B00D863D612BF07505BE12B4E1C02F0079D14C3961362A9F5C302F810 + 1F4EBF2C96665D69A63300CC3DBF6AE3B1211A1FC12800C00EAE21AE256B6D69 + DCB1EA0E00C61F905F5D3C41D1EE36630B00A4C7AC21B39ECCDA629E0B006BF1 + AB0018A7A10B7B792300A4C9AC21BE11480580D61070EA1C801900D173FF2716 + EA0303404A44ED183574450068A5FB1080DB7400C4A39768A46FBF5807805471 + ED700D5D1900AACEB4D03D02501FCE0C00A231EA3BF50BB104805499B533269A + 0A00ADC5CF9C1D011801D0F933B188897500489AA819A376AE0880AC1901F007 + E50F3D4AE3B15EEA3FCBDF0800248B6B866B876BC8AC25EDC5CF9C3809680D00 + 4EAF385D3CFC84DC0E00D737256B262E9A1A01A800D0CAE911007FF8511AE939 + 4683E79E12EB00703D5C2B5C33E6DE3F3100B486809323003E6631038093ACBB + ED31B185B701C06CB846B856CCBDBF0A00EBF1BF564E0400B38E02F89B881989 + 36D0F97DB10E00B3E11A31F7FE7CE23CF1F85F3BA74600D651803902E06FA86B + DF97283EC6CF36034022AE0DAE11B3F8D508C091B3FF4ABE5CEA9627978CD739 + 680234353149932317A8BCFE36E3570060DAF9971EA2E14BED622D2A1A4F0366 + 1D0138C2A90048C421600641ACF71C1546165251C50AE3570080A8EFE44FC4B1 + FFD7C41A3FF9372C1A8F02D4F1BF237B7FE66400A851802A7E3300B845BBDBA9 + 62F14ECA0F558A3E80BF8D453BE9E4B3BBC508B94FF454F15B87FF8EC9D40840 + 3183800F0586BADBA8B2E175941728347F09C08726C707A9F3A9BFA3B1A153A2 + C77B7F1EFAABEBFF8E1DFB2B990800351250CC10E0490EE2FDC7C448E036D1CD + 74100178C0D4289D7AEE0314BDD82A3A7CDC9FB1A1BFE266E1E5517CE0028D0D + 9CA292FA5B2990E7D4254900EF199F1AA773CF3F48FD679E133DDEF35B4FFC59 + CFFC3BCA8D0050A9668E0C62FD67695C8440B8FE168400F802177F9728FEBE93 + 4F8A9E3AE9C7CDF1CB7E89DC1C014C7F73B1FE336224709C4AEA6EA6FC4081DC + 0A907BC62686A9EBD7FF40FDA79E163DB5E757C5CF97FC32B6F767990E00DEEB + 5BBFB1E96F34DEDF45C3DDFB285CB78382C152631B402E89C7BAE9F433BB68A8 + 6B8FE871F1ABBDBFB5F8B91E3252FCCCAD11C04C21304563C33D6258F4149554 + 2DA750699DF1AB00B920DAFD12753EBD8B46FB8F8B5EE29E9F4FFA710064B4F8 + 99170E01D4376DB6A9B118F5BECCC3A3610ACFDD48797941B10E909DA6A6E274 + A1E34B74E6C547C5CFF665B14515BFBADCC7856F2D7E6E19E3660030F5CDF292 + 4702AA4D51F4C2611A38FD2B2AAE584405618C0620FB0C5FD843279FBD4F1CEF + 3F2B7AD621BFF5365FD78A9F255EA3CF24F37E00B37110F19E9E4F0016C95622 + 5AB1D12A1A6EA59A0D6FA7A2B2C5A20FE06DB1C19374B1E3CBD4D7C985CFC5CE + 8D0B9FAFF1ABEBFC5CF8D663FE8C173F73330014FE0CE62DC2660870E3BB03B9 + 71109821C08150B9EC36AA5EF7872208F01C01784F6CF0185D3AF86DEA3DC197 + F7D49E9E1B173D0FF7AD43FEE9D1AE8BBC10004C8D043804ACA3016B10A85648 + 65759BA9B2E1F7A9B4FE55941FE0700070C7C4E4080D8943D5DECE1FD3E0D916 + B14515BBDADBABC2B7EEF555E1BB5AFCCC2B01C0540870E310480C82905CAA16 + A2FCC23211063BA8BCF6062A9ABF890A8BE689ED00CEE2CB79B1F3AD34D0F582 + 28FA1769223E28B6F231BD2A76D5AC67F8B9F05D1FF227F2520030F57978A946 + 03D620E0C641606D6A7B011555D65271D55A0A952FA5A2C8220A86E752516935 + 05F2CBC41FC95F0B90A4A9384D4E0C516CE8128D472F50ACFF148D0EBC4C233D + 8728D6DB25BE800B5B352E746B53DB671BEE7BA2F899D70240E1CFA59A3A3FA0 + C24015BC3514549F9BFA3A6EFCFBAC7F1640B2AC7B6A2E5EB507E7A60ADB1A02 + AAE079A9BECE5AF8AA798AD78BC25ABCAA98AD056E2DFAC4E2E7660D00A69600 + D7A20A55156D620070E362574BB5AE9AFA3DEAF773F3A46C290855C4AAA9C256 + 2303B554EBD6C6D4EF034896B570D59E5C3555E86A9D97FCB56A696D9E966D45 + 612D64B5CE8D0B7DA6A56A4C2D0192A18AD75ACC89859E58F0CCBAEE79D95C14 + 3315B7DA96B89D59D701AEC75AC489C56DEDABA55ACF2AB95214B3153A8A1E74 + B016F76CEB5929570B04850F4EC8FA8207000000000000000000000000000000 + 0000000000000000000000000000000000000000EF21FA7F96F737BD2ED7662C + 0000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_256.png' @@ -385,462 +385,462 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 38E149444154785EEDDD09745D577DEFF1BF66591E64D9F218CF633C5BB664C5 - 434242800EEBADF6F5B5792DA505DA525A68A1D030353410C2549A5228AC425F - 5717AB2DAF509AD79400A52D63184248EC788CEDC4F13CCFF220CB9235F89DFF - BD7B57FB1EDFABC1BAF79E7DEEF97ED6DAD97B9F2B07E548F8F73FE316000000 + 38DE49444154785EEDDD09745D577DEFF1BF6659962DCB96C7781EE3D9B2252B + 1E12120274586FB5AFAFCD6B292DD096D2420B8586A9A1813097A6140AABD0D7 + D5C56ACB2B94E6352540694B21842184C48EC7D84E1CC7733CDBF220CB9235F8 + 9DFFBD7BA37D8FEFD560DD7BCF3EF77C3F5D3B7BEF7395201FA9FEFDCFB80500 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000008067CA4C0FFFF1 - B3021017374D0F8F112AFEC9F533E16705202E72150014061E2154A297ED6730 - 946DFCEC00F8221CECD9827EA8DB5024844834060B733B1FEAD7014054060B7F - 3B1FEAD7A1480890E271F775AE200FF76AA8DB00200AD9027E28DBDCCF54B6AF - 4501112085952DB45538C0DD3EFC75D93E0BF7CA1D034021650B6BB7CF3656E1 - CFB2F52AD7187944681446AE60D6B19DDB7178AEDCCFB23515EE953B068042C8 - 16CE6E3F5053D9C6D93E53B9C6C80302237F7205B18EEDDC8EB3CDB5950FB04D - E958D9CF54B80780427303DBF676DC677A9DEBD87E665BB66D2AD7DCCA35C66D - 223446CEDD87D942D98E6D78BBBDFD5CC7E1B9DBA75BFDECC95235EA4E29AB9C - 23B5E366C8E8C993A5A2728648D504B9D957176C9F16FC898AE06B0120FFFAA4 - 576EF69C92B2F20E91EE8BD2DB735CAE9D3D2B9D578E07DB0F4BF7F517E5F291 - B3C157DAF0D66603DF0D7E1D87E72ADCDBCF55B857EE18C3A4C182DBE3EE3B3B - B661ADECD86DE160D7DE36775E260DB36749E5E835523B698D8C99BC522A2B16 - 89548C0B3E03008FF55E919EDE7DD27E76A7749EDB2A3DD7B64ADB91A3C1071A - D66EF0DBB13B77FB7053E1B1E58E31441A3A183EBBDFDC3E3CD66683DD8E73B7 - FA6953A466E2BD523F77BDD48EDD14FC91A9C176002801374F4BE7D51FCBE543 - CF48D785A7E4F2A933C146B700C8D66CD8BB631BF4E1B1DB638834983074767F - B9BD3BD630B7DBECD886BC9E9AB7E3741B3F779E8C9DF60B32EE8EFBA5BCBA29 - D80600A5AFEFC636B972E2BB72F5D4D7E4D2A183BA25D47A9DB106BBEDDDB1B2 - DB54B8C7206C786160763FB9FB4B435CB9616FC76EB3C19FEEEBC6374AFDC2FF - 250DF37E492A2A5704DB0020B97A7B7649DBC17F93CB2F3F211D97CE075BDC02 - C02D046CB3A16FC74AC71685C010B98186ECEC3E727BB769B8DB3E7BE86BDFB8 - 64A34C5CF806A91EFBCA605E13340040BF2EB971F57B72E1E57F90F37B9F0EE6 - E122205C0CB84580DB54B847161A5CC8CEEE1BB70F3737F433035F5BCDB83A99 - B8E017A561D19BA55C6FE203000CAAAF779FB4EDFB5BB9B0FB09E9EAEA0AB668 - F8E72A04B2150136F8C33D1C1A62B895DD2F6E6F033FDCF707BE1BFC8D4B5F2F - 0DF3DE2265658DC13600C070DDBC795EDA0E7E5ECEEFF947E9BAD2116CB18580 - 5B10D80220DC87C3DFF6306CC021CDEE0FB7779B0DFC1CC15F5323939A7E53C6 - CF7B1BC10F0079A285C0A5839F9573DBBE183A23102E046CB305806D2ADC279E - 0D3AF4EF0BB7B7A16F7B37F8B5AF34E34A99BAFA7F48E3E2F74A59E5EC600E00 - C8B79B3D47E4FC4B9F90D3DBBF11CC7A82A6E1AFBD867EB810D0A0778B014511 - E0B06197746EE82B1BFAE1E0D7668FF835FC2BA57ED62299BEE651A91CBD3198 - 03000AADE7DAD37272EB07E4F2D17D3A336DB0B3013A56140106054066F8BBCD - 06BE8E6DE8F7877FF5D8D1326DCD1FC99819BF1F7C956E0300148BBE96B8FDF8 - DFC8A9AD7F2537AE5E0BB6B845806D36F8DD42C03665FB44D2704B321BF6CA8E - 6DE8878FF8D3C19F3AEA9FD7227734FF855454CD0BE60080A8F4761F94135BDE - 25970F6E0E66E1B301DADC02C02D04943B4E9CA41EB9DAB0D7A6EC381CFAE9C0 - 17A94AB59A9A5A99B9E93DD2B8ECCFA5A26262B00D0010A5F28A06193BF35764 - F4845AB97E7AB3F46AE667FCDDEEF661837D5ED292F81F1DFE81DB237E6DB98E - FAABA476D21C9973F767A56AD4EA600E00F04D6FE72E39F8C3B74AE7B9C3C1AC - 3B68039D0DD0A663E59E11480C0DB824C915FEE1D0EF0F7E916A99B2EC6764D6 - 5D5F948A6AEEF007005F95574E9189731E90B29BFBE55AAA0808B3077B968E35 - F4ED36F7B39297A40220FC0376C3DFB6CCE0D736FB150FCA84451F0D3EE6F5BD - 00E0BDE0EFEAD1537F41464DA890CB47F4BE80C1425D3F4F641190940220FC83 - 1D3CFCABC78C97F9F77F5E464F796D300700C449CDB856193F63B95C3DFD94F4 - DED04B0103D13C485C1190840220FC030D87BFEE031BFEDAAA65D4C4E932E7FE - BF0F7E8136047300401C558E9A27E3666F948EB34F49CFF5EBC116F71A7F38E4 - 759EA822A0D40B80F00F72A0F04F1FF98F9EBC5866BFF21FA4AA6649300700C4 - 5945D5D4A008B85FAE9F7B46BAAF5D325B73D17C484C11908402C0FE007385BF - B6F4637EA327DF29735FF5CF5251714730070094027D5470FCBC9F976B677E10 - 14016D66AB7B36C0A539E1160125AB940B80E184BF1EF96BF87F99457C00A004 - 9595D53945803D1390E822A0540B00C21F009029B30848FC9980522C00EC0F4B - 7B37F8DD02C0BDE6AFE1FF25C21F0012205D04FC5C962220572160955C21506A - 054038FCDD02C01EF5DBF0AF925113A6CB9C577F59CACBA70673004012681130 - 6EEE2BA5FDE437A5E77A87D9EA1AE8AC40C928A50260A8E19F7ED4AF6AF47859 - F0B35F918ACA39C11C009024E565E364FC9C7BE5D2E127A5AF5B5F1B3CD81900 - AB648A80522B00EC0FC606BF5B00F41FF95757D7C9BC57FFAD54D63505730040 - 1295554C9471D357C8D5C3DF94DE5E775D806CC5806E2B99F057A55200D81F8A - F61AF8B6B747FEDAD2E1AF47FF33373D247593FE67300600245945CD6CA9A9AF - 934B479E0E6636F8DD02C08E3557DC71EC954201E086BF0DFEF0917FFAB4BF16 - 00D35B7E45C6CF7D5F300600405F1BBC462A6B8FCBD5932F992DD90A81B0D817 - 01A55200B82D5BF8A78FFEC7DEB15CA6367D5ECACA740E00405A6DC326E96C7B - 4A6E5C3D1FCC34F8DD2260A04220B6E25E00D8D0571AFA3AD6FF261DBBE15F2D - 55E31B64DE7D5F90F24AEEF8070064D203C37177AC934B27BE267D9D37822DE1 - 2220DCDBEC89AD38170076E7DB22C01EF987C33F5D00CC5EFF41A919FF8A600C - 00C0ADF4A6C0DA310D72E9F053C12C57F887C5B610887B01E0360D7EFDEFB1AD - FFE87FF28A57CB84057F128C0100C8AD7AECF2E09F7BE4DAD9C341AFA16F9B95 - AB10881D0DCD38722B2EB700700B81F45980BAFA09D2B8FCD1600C00C0E03433 - 343BFACF266BA6B8196373C772C7B1A1FF51716477BE36FD61D8E61EF9A7DBEC - 577E44AAEB9A83310000832B2F1B23A31A27CBC5FDDF0966EE5900DB4A828666 - DCD8E057E142400B80FEA3FF89F337CAA809BF148C0100183ACD8E8685ADC1C8 - 3D0BA04DB3C6CD1EE58E63238E0580E5FE00F4BFC32D002AA4BABA56A6B47C28 - 180300307CD3D67E3495256EB6F4E78D9B41B114B702C0DDD9761C0EFF74B536 - 69F5AF4B45C5DC600C00C0F069866896643F0BE01601CA1DC742DC0A00CBEE68 - DB320B00BD7963C2BC77046300006E9F6649FF0D816E0110CEA1D8895301E0EE - 643BD6EFDFB674F86BDFB8F20F826E6C3006006004822C49658A933199D9932D - 9B6241BFF9B8B13BD8361BFEE956DB3055EA67BD2E18030030729A299A2D6ED6 - 6486BF6DB1129702C0DDB976ACDF7B66F86B753665E5EF05BD2EFC0300403E54 - 9B6C712F0368B339942DA3BC179702C0B23BD6B6CC22402BB471337E2D180300 - 903F9A2D996701C2E16F5B6CC4A1007077A8DDC199C19F6E953269E91B839EA3 - 7F0040BE559B8C19CA5900E58EBD14870240D91DEBB6CC22A0AA7E9C8C9FF9AB - C1180080FCD38CD1ACC91DFE6EF39EEF0580BB13DD1D9B19FE5A9135CEFFE560 - C89DFF008002D12702346B32CE02642B022C77EC1DDF0B00E5EE503BB6E1DF5F - 044C58C8D13F00A0B0D259E386BFEDB36595D7E25000587687DA1DDD1FFE0DF3 - D64879E582600C0040E168D668E66416016E36698B059F0B007727DA9DAACD06 - 7F7F013061FEAF043D00008597CE1CB700700B01DB2C77EC159F0B00E5EE4CDB - F47BEE0FFFAABA3AA99DF4F3C1180080C2D3CCD1ECC92C02C205806DDEF2BD00 - 507607BA3BD4EEEC72193FE71E292F1B158C0100283CCD1CCD1E378B32334AD9 - DE5BFA4DFB28BCE3EC4E757776BAF21A37F767821E0080E249674FF80C80369B - 57AEF0DC0BFACDFACAEE44B7B93BB93C7DFABFFE95C1180080E2D1EC495F06C8 - CCA5ECD9E525FD66E3C0DD91FA3D9BA3FF99AD9CFE0700149D668F6650E65900 - 37ABBCE77B01E0EE4CFD5E33DBE8C9AF087A00008A2F9D41B766536676794BBF - 51DF84779C3B777770858CBD637DD00300507CE90CCA750F8036159E7B43BF59 - 9F65DB81E99D3C66EA6429AF98138C0100283ECD20CD229B4B9959A56CEF259F - 0B0077076AB33B38DD4635AC0B7A0000A293CEA2CC7CEACF2D657BEFE837EA33 - BB13C3AD5C6A27AE0A7A0000A293CE2237F4C3CD5BBE1500E19D65E7DADBCA2A - DDC64D6F0A7A0000A293CEA2CC7CCACC2E57781E29FD467DA33BC836E5CED33B - B7AAAA4ACAAB58FC0700102DCD22CD249B4F9999A5C2736FF85800B8EC4E7377 - 6AB9D4CD9C1FF4D5410300204AD526933273AA7FEC2D5F0B0077A7D971FF0EAD - AE5998DA020040D42A6BE705FFB4816F73355B8E79C5D70240D99D6977A8EDCB - A572F4DCA00700207AD5757A493A9D4F9999659B97F49BF49DBB13B595CBD869 - B3821E0080E8A533291CFADABCE6530110DE69B9E75535140000003F94574F0F - FE993BB3D2C2F3C8F97A06C0DD61B6D796AEB06E56E89B970000885E65C594E0 - 9FFD19956E2ADC7BC5D702C06577667FABA8A4000000F8A1AC6A9AFE334BF39A - CF0540B69D5926A3A74C0A7A0000FC91CEA6ECB9E5A9389C01507607EAF5FF3A - 330600C00FE96CEACFAA18F0B100702BA65BC765B553D35300003C91CEA681F3 - CB33BE5F02B0BCDC7900008484F3CADBEC8ACB4D805699549471090000E097F2 - F29AE09FB1087E2B4EF700989D59313EDD0300E089B2F28976649AF77C2F00C2 - 3B31163B15009048B1CAACB85D020000200EBCCFAEB85C02507667521000007C - 13BB8C8A5301000000F2840200008004A200000020812800000048200A000000 - 12880200008004A200000020812800000048200A00000012880200008004A200 - 000020812800000048200A00000012880200008004A200000020812800000048 - 200A00000012880200008004A200000020812800000048200A00000012880200 - 008004A200000020812800000048200A00000012880200008004A20000002081 - 2800000048A032D3FB40BF176D5A9468AB085A55D0AA4DAB4DB5C6A50FC8B4A6 - 478231F0DFE6CD5F205555FAEB122FBD7D7D72FCE811E9ECEC345B00C4D2A96D - 8FC8F93D8F0723FD3FB3B61BA67507AD37687DA6DD342D72140088BD37BEE9F7 - 64FDC6BBCD2C7EAE7774C8273FF1513916140200622A8605009700107BADEB37 - 9A513C8DAAAB93FB5EF56A330380E2A00040EC9597C7FFD7785553B35455E989 - 2E00280E0A00C00363C68C91652B569A1900141E0500E089B85FCA00102F1400 - 88B5DA5ABD37B434AC5CB5BAA4FE7B00F88D0200B1367ACC58338ABFCAAA2A69 - 6E5D6F66005058140088B5FAFA7A332A0D2DEBEE322300282C0A00C45A7DFD78 - 332A0D772E5D260D1326981900140E0500626D7C0986650B9701001401050062 - 6DF2E42966543A781A004031500020D6264D29BD0260C6CC59326DDA74330380 - C2A00040AC4D9F3EC38C4ACBBA0D9C050050581400882DBD596E6263A3999596 - D6BB28000014160500626B6DF33A332A3D5AD82C58B4D8CC0020FF2800105B4D - 255C00286E06045048140088253DFDBF60E122332B4D6B8202A7A2A2C2CC0020 - BF2800104BABD7349B51E9D2150257AC6A323300C82F0A00C4D2EAA6B56654DA - D6B494F6650E00D1A10040EC8C193B5616DDB9C4CC4ADBDAB52DAC1008A02028 - 00103BFAAADCF2F264FCEAEA0A81ABD624E36C0780E2A20040EC34276CC5BC0D - 1BEF312300C81F0A00C44A12EEFE0FD3CB1DA5B6EA2180E851002056D66F4ADE - D1B05EEE68694DD6590F00854701805829E5B7FF0D641D2F050290671400880D - 5D214F57CA4BA2D973E6CAE42953CD0C00468E0200B191F415F2D66FBADB8C00 - 60E42800101B2D09BBFB3F2CE9FFFD00F28B0200B13067EE3C9934798A992593 - FEF7CF9BBFD0CC0060642800100BAC8C97C6D30000F2850200B1A02BE321FD34 - 002B0402C8070A00786FC9B2E532BEA1C1CC924D57085CB274B99901C0EDA300 - 80F7A23EEDFDF40F7F60467E48FAD31000F28302005ED3D3DDAB9AA25DFBFFFB - DFFD965C6A6B33B3E8E952C8AC100860A42800E0B515AB9A52A7BDA3D2D5D525 - C78E1E91DD2FEC305BA2575353C30A8100468C02005E5BD312EDCD7F470E1F4A - F5BB77ED4CF5BEB86BFD26330280DB4301006F555555A74E7747E9D081FDA95E - 0B80BEBEBED4D807772E5D2663C68E353300183E0A00786B4D4B4BEA747794F6 - BFFC52AAEFECEC0CC6FB52631FA457085C6F6600307C1400F0960F2BFFEDDFD7 - 1FFA7BF7BC60467E68E6D5C000468002005ED2D3DBCB96AF34B3681C3F76543A - 3AAE99997FF7012C58B888150201DC360A007869F59A66A9ACAA32B368EC7B71 - AF19A51D397450AE5CBE6C667E68E6D5C0006E934FEF142D0B352D4EF4FBB3AD - 32D5EA262D93B1D3EE0DC62861BFFCBF5F2B8D93269B5934FEEB9BDF90D3A74E - 9A59DACCD97364C68C996616BD891327CAF7BEF32D330306A7EF909836FD0E59 - B870B12C5DBE4256AE6A92F51BEF4E15DD9BEEB94FEEBEF73ED9B0E91E59BE62 - 959C3B7BC6BBA2D75BEDA79F928E737B82518F69BDA6E9DDC3379DE60D0D5A5F - B8C16FC35F0F01AB4DD3379FD44AE3D207645AD323C11825AA61C204F9D8639F - 4EDDE816A577FEC1EF655C0250AD1B36CA6FFFEE5BCCCC0F1F7FF40372F8D041 - 330332CD9BBF40E6066D4110F83367CD1AD6AA9AEDEDEDF2FE77BF2375132C06 - 716ADB23727ECFE3C1487796B61BA67507CD16026E3110390A0078E755AFF959 - 79E0B5BF6166D1D0EBFF1FFEC04366D64FEF4DF8E4673E6F667EF8DEB7FF4BBE - F2A52F9A59B22D0B8E5AEBEBEBCD2C1A6783A3E6FDFBD24F8F44418FF05735AD - 4DED8B95AB56CBA8BA3AF3C9EDF98B8F7F585E8EF0BF273628004684020029EF - 7EE803A91BDCA2A4A7FF9F78FC9FCD2CD3431FFCB0CC9E33D7CCA2A7AF297E28 - 384AEBEDD5BF63926B6DCB3A79F35BDF6E66D17A71CF6EF9FC673F55D423E7C5 - 772E918DF7DC276B9B5BF27AFFCC5F7EE2A3F252E87E186411C30220DA73AC40 - 88DED51E75F8AB811EF9DBFD825F4F03E84A898B82BFFC936EFA1D33CC287AFA - A2A6DFFCAD379959E1E8CBB2EEBBFF35F2E8C71F933F7EEFFBA575FD86C86F9E - 457C5000C02B3EDCD5DED3DD9DF1FC7F986F8F03AAD6F5AC1078E1FC7933F283 - BEA761F294A15F6F1F0E0DFE57BDE6E7E4638F7D4A7EED375E2F53A64E339F00 - 43470100AFB478F0729B7D2FED95EE6E3D73979DBE1EF87A478799F9614DF3BA - 542824D985F3E7CCC81F7A749E4FBA3AA6DEA1AFC1FFC06B5F27E322BEDF01F1 - 4601006FCC9C35DB8BD3B83B776C37A3ECF45ABB6F9701F495C9AB13BE42E079 - CFCE00282DCCF265C9B2E5F2A71FFAA8BCE177DE4CF0232F2800E08DA857FEB3 - 86728ADFC7CB002D097F29908FCFABEBFD19D3A64D37B3DBA38FC5FEEE5BFE50 - DEF1AEF779759F03E28F0200DE68BD2BFAEBD8FAE293B3674E9B596E3E16002B - 5635257A8540BD6CE3DBA519357FD162331ABEFB5EF51AF9D0C71E63DD071404 - 0500BCB020F84B726263A3994567EB96CD6634B0CB972FC9A18307CCCC0FFAE2 - 241F16508A92BEB8C637FA229EE1D2A3FE07DFF77EF9B5D7BD3EF2153151BA28 - 00E0055F826BE78E6D6634B8E17C6DB1AC4BF8D3006D6D17CCC81F3366CE32A3 - A1D1F7197CF0C37F268B16F368270A8B020091D33B9B7D38C5A9D79087F306B7 - 5DDBFD2B00F41D0A7AF498543E9E01B86388D7EDF5FF07AFFD8D37A45E6634D2 - B7F70143410180C8E94B6C7CB8AB79D7CEE105FAB1A347E4A287779EAFDF748F - 19254F9787EFACD717F30CB66C737DFDF8D41B30EFBDFFD5660B50781400889C - 2F77AF6F7EF6A7663474DBB73D6F46FEF0E15D0A51F175E5BAC9032CC0A38FBF - 3EF4C14765EEBCF9660B501C14008894BEBCA679DD7A338B4E5757D7806FFFCB - C5C7FB00F451310D95241AE8054E51CA75864B9FEDD723FFF10DC9BD6C83E850 - 002052CB56ACF4E22E673D92BF9DF0D8F7E25E2FAF3BEBB2C549A4859C8FB23D - E1B2B6A555DEFEC7EFE12E7F4486020091F2E5F4FFEE5D3BCC6878F4AD80BB3C - 3C0BD0E2C1599528B45FBD6A467EA9A9D5C54CFBDDB56193BCE9F7FF20F5E826 - 10157EFB10195DB77C7553F4AFAFEDEBEB931D5B6FFF5AFEF611FCD942D137D0 - E9E965F861CC98FE1734B506E1FF5BBFFBFB843F22C76F2022B36ACD5A2F962E - D5D3F82359B75DDF0AE8E3A9E7A4BF1AD827F60C809EF67FE3EFBC393506A246 - 0180C8F8729A7AA477F2EBBD033E5E06D09B2B93B642A08FAF025663C68C499D - 91E1B43F7CC26F2222A1EFACD71B007DB07DEB1633BA7D3E3E0DA03797F9B28F - 8BA5A3E39A19F9451F037CCBDBDE49F8C32BFC362212ABD7347BF197E1F16347 - A5EDE24533BB7D7A0F414F77B799F963C3A6BBCD0851D2C7FCB8DB1FBEA10040 - 24D66FF42398F275039FDE43B0EFA5BD66E68F65CB574A5DDD683303807E1400 - 283A7D57BDBEB3DE07F938FD6F3D3FC495048B496FB25CD392EC150201644701 - 80A2F365E5BF4B6D6DA9F7F9E74B3E8B897C6A4DF80A8100B2A30040D1F9B258 - CDF66DF90D6C7D09CDFE9787FF3AE1425BB4F8CEC4AC10E8EB9B00011F5100A0 - A87455B4E1AE8F5E28857881CF0E0F170752ADEB37995169BBEAE99B00011F51 - 00A0A89A3D79398D1E29EA0B80F2CDC7B7022A5E0A04208C020045B5C197BBFF - 8323757D8F7FBE9D3D735A4E9E386E66FED0B32E77CC9869660040018022D225 - 6A270DB02E7A31DDEEE23F4331D2370B168A2F675F0A49D7750030341400281A - 5F96A8D517F68C64F19FC1F87A1960C3463F6EBE2CA4B68B17CC08C060280050 - 34BEBCFB5FEFD41FC9E23F833972E860EA1143DFE80A810B162D363300494701 - 80A2D0E0D100F2C1E6E77E6A468593EF470CF385570303B0280050143EBD8CA6 - 90D7FF2D5F2F03AC6A6A4EDC0A8100B2A30040C1555454C81A4FDEFEA7A7FFF3 - B1F8CF60F411C3F6F67633F3872E4B5BEA2B04F232206068280050708BEE5C92 - 0A1E1FEC7E61A71915963E62B8C3D3CB00A5FE6A607D232380C15100A0E07C79 - F5AFDAF26CE1AFFF5B3BB76F3723BFAC5CB55A6A6B6BCD0C18188F56962E0A00 - 14945E6F5EDDB4D6CCA275E6D4A9D48B7A8AE5C53D2FA41E39F44D6A85404F2E - C9C06FA74F9F92C3870E99194A4D99E97DA0DF8B362D4AB45504AD2A687AC792 - 363D64A995C6A50FC8B4A647823162606DCB3A79F35BDF6E66D1FAE6379E9427 - FFF571332B8E3F7AF03DB274B97FD7DC5FDCB35B3EF5D8C7CDACB47CECB14FCB - C4C646334B36BD0FE5CCA99372FEFCB9D4A3A97A79A4BDFDAA747474C8F58E6B - E6AB3269D13EAEBE5E2E047FE6E08103D2DD7DC37C82019DDAF6889CDFA37FC1 - E833C6DA74C769D3A3007DEDA89E4AD176D3B4C85100A0A0DEFAF677CA2A4FCE - 007CE2238F047FA1ED37B3E278C57DF7CBAFBFFEB7CCCC1F7A5AF7A177BFA328 - 3744165B520B807367CFA402FBC8E183413B24278F1F0F823E7BC8A300625800 - 70090005A3D799977972F47B3D38E2D1BF148B6DE78E6D66E497F2F27259CB65 - 8058BB70FEBCFCF0A9EFC9DFFDCD5FCB7BDEF187F2A7EF7D50BEF0B79F93EF7E - EB3F65FFBE97087F0C8A020005A3D799F57AB30FF4EEFF422CFE33183DC28EA2 - F0180A9F6ECEC4D01C3F7654BEF6C4FF93471FFE93D4199C7FFA872FC8E6679F - 91CB972F99AF00868E020005E3D7CB7F8AF3F85F36BE2E0EA42B044E9B36DDCC - E02B3DD2FF8FAF3F290FBFEF5DF2E10F3C24FFFEF5AFCA89E3C7CCA7C0EDA300 - 40418C193B36F5FCBF2FA22C000AB9F0D048ADF364812664D27B34760485E367 - FEF2B1D491FE579F78BCA84FB02019280050102DADEB53D7997DA0A7E0A33C45 - AA476B7A83968F5AEFA200F0893E36FABD6FFF973CFCDE07E5739FF954515E5B - 8DE4A200404134AFF367EDF962BDFD6F205BB76C3623BFE8DDF2AC10183D1BFC - 0FBDFB9DF2952F7D31F5D81E50681400C8BB86091364C1C2456616BD5DDBA3BF - 13DFD7A701544BAB3FC55AD284839F9BF9504C1400C83B9FEE2EBF72F972D19F - FDCF461FCBD217B1F8A879DDFAD4824D282EBD39F4430FBF8FE0476428009077 - 3E3D5FBE6BA73F47DE5BB73C67467E49C20A813ED1A2F4AFFFEA93F2F9CF7C4A - CE9EF1F3DE1024030500F24A1F2BD3C7CB7CE1D3823CCF7B5A00A8E6D6F56684 - 42D2E5A83FF2C1F707BF97FE5E124272500020AF7C7AAC4CD7858FF2F1BFB043 - 07F6A7DECDEEA3B56B5B5821B0C0F6BDF4A27CFAB13FE3743FBC410180BC6AF1 - E8EE7F5D8DCFA7854CF44D84CF3DF3B499F945DFD8B86A8D1F6B3694AA7D2FEE - 61611D78850200793367EE3C9934798A9945CFC753EE3E5F06D8B09157030349 - 420180BCF1E9D5BFFA26B55D1E5DFFB77C7E1A40DFDCA86F7004900C1400C81B - 5DFCC717FB5EDCEBED6A68BE3E0DA06F6EBCCBA3220E40615100202F962C5B2E - E31B1ACC2C7A9B9FFBA919F987A70100F880020079E1D3DBE4F4F4FFF6AD5BCC - CC3F3E5F06983B6FBE4C9E32D5CC0094320A008C98BE456E5553B399454F4FFF - B75FBD6A667EDAE5F1AB817DBA970340E1500060C456AC6A4ABD4DCE173E9FFE - B77CBE0CD0BA7E8319012865140018B1352DFEDCFCE7FBE97F4BCF525CEFE830 - 33BFE8A39CF3E62F343300A58A0200235255552DAB9BFC7981CC8B7B767B7FFA - 5FE94B8176EEF4EF31458B150281D24701801159D3D2223535356616BD9F3EF3 - 6333F2DFEE5D3BCCC83FEBD66F648540A0C4510060447C5AF94FD756DFB1F579 - 33F39FBEA8482F59F848EFE9D0170301285D65A6F7817E2FDAB428D1A6871F55 - 41AB364D572AA995C6A50FC8B4A647823122A66F8DFBC4273F937A8FBC0F7499 - D5DD2FF8B3F8CF50E8CB937C3A83E27AF6A73F912FFC9FCF99597C7CECB14FCB - C4C64633F3C7379E7C42BEFED527CC0C25E7D4B647E4FC9EC78351A769BAF083 - B6EEA0F5064DAB7D6D374D8B1C05006EDBA657DC27BFF9C6DF3133941A5D4DF1 - C1B7BD25760BD850002012312C00B80480DBE6D3CA7FC83F3D33A1F77800284D - 1400B82D0D1326708D38015AD6F16A60A0545100E0B6E8CD7FBA780C4ADBB215 - 2B5921102851FC0D8EDBD2E4D1DDFF281C2DF25A5820082849140018365D2C66 - C1C245668652D7CCBD1E4049A200C0B035F396B844D1628F150281D243018061 - E3EEFFE4A1E8034A0F05008665E6ACD932FD8E196686A4B88B25828192430180 - 61F169E53F14CF94A9D352C51F80D24101806169BD8B23C1A4DAB0E91E330250 - 0A280030640B162DF6F215AB280E5DB780150281D241018021F369E53F14DFF8 - 8606DEFE0894100A000C891EF9F13C385AB919102819140018123DF21B575F6F - 66482ABD0C5055A58B7302883B0A000C490BCF8123A02B04AE5CBDDACC00C419 - 050006A5477CCDAC0A0783CB004069A000C0A07445383DF203D4B2E5AC100894 - 020A000C8AD3FF70555655C9EA35CD660620AE280030A0DADA5A59DDB4D6CC80 - B4F51BEF3623007145018001AD5AB33675C407B87485C0860913CC0C401C5100 - 60402DDCFC871CD6F36A6020D628009093DEE8A5370002D9B02C34106F1400C8 - 496FF42A2FE75704D9E9B2D0AC1008C4177FBB23276EF4C2605A5AB94404C415 - 0500B2D21BBCF4462F6020BC1408882F0A0064C5CA7F180A5D2170F19D4BCD0C - 409C5000202BEEF0C650B56ED8604600E2840200B7983C65AACC9839CBCC8081 - AD59CB0A81401C5100E016CDBCFA17C330AAAE8EC7458118A200C02D3670F73F - 8669C3267E6780B8A10040067DAE7BD2E42966060C8DAE10585737DACC00C401 - 050032B46EE0B12E0C9FAE17B1A68527478038A1004006DEFD8FDBC5AB818178 - 2933BD0FF47BD1A64589B68AA0E932747A7BB1B6DA546B5CFA804C6B7A241823 - CF162C5A2CEFFE9387CDCC1F3BB63D2FC78E1E31B3641A55375AEE7FF5CF9899 - BFDEF7E0DBA5EDE245338BC6C71EFBB44C6C6C34337F7CE3C927E4EB5F7DC2CC - 50724E6D7B44CEEF793C18759A76C3B4EEA0F506ADCFB49BA6458E0200FFED75 - 6FF86DB9E7DE579A993F1E7EDFBBE4EC99D366965C1FF9C427BDBF3FE35FFFE5 - CBF2ADFFF877338B0605002211C302804B0048A9A8A890351EBEFDEFF8B1A384 - BFB1F9B99F9A91BF783530101F1400485974E7121933668C99F9E3F92DCF9911 - B66EF67F5FE80BA4EE9831D3CC00F88C020029BEBEFA77C7D6E7CD087A1FC4B9 - B367CCCC5FBC480A88070A00A45EE3BABA69AD99F943C3EEC4F1636606F593A7 - 7F6446FEDAB09175248038A00080AC5CBD5A6A6A6ACCCC1F71B8E65D6C5B9EF5 - 7F9FE80A81FA440900BF5100C0DB1BB7E270CDBBD8F48648BD31D277DC0C08F8 - 8F0220E16A6B6B53AF71F5CDA5B6B6C43FFB9F4B1C6E8CD4274AF4C91200FEA2 - 004838FD8B5A5FE3EA9BADDCFD9FD3333FFEA119F94B9F2859B1AAC9CC00F888 - 0220E17C3D55CBE37FB9E99BF6F6BFBCCFCCFCD5C2D30080D72800126CCCD8B1 - A9E7FF7D73E5F265D9BFEF25334336DB625020E993257A8909809F280012ACA5 - 75BD9497FBF72BB06BE73633422E713843925A21D0C3B74B0248A30048B0664F - 576FDB1C8347DDA2A69701F6BDF4A299F98BA701007F51002454C38409B260E1 - 2233F3477B7BBBEC7B71AF996120CF3EF3B419F94B2F31E9EF1A00FF50002494 - AFAFFEDDB5639BF4F6EAC25918CCF6AD5BA4AF4F1717F3975E625ACB6500C04B - 140009E5EB5FCADB79F7FF90B55FBD1A8BB325EBB80C007889022081A64D9B9E - 5AB5CD375D5D5DB27BD74E33C350C4E175C9B3E7CC95C953A69A19005F500024 - D0BA0D7E1E916DDFF6BC7477DF30330CC596679F919EEE6E33F3D7FA4D779B11 - 005F500024508BA777FFEFDEB5C38C30549D9D9DB2FB05FFCF9AF8FA3B072419 - 0540C2CC993B4F264D9E6266FED0A358D6FEBF3D71782780FECEB14220E0170A - 8084F1F5B96C3D8AD5A3590C9F164E71B80CC0AB8101BF5000248CAF6F66E3DD - FFB74F0BA7E79FDF6C66FE6A5EB79E1502018F500024C89265CB657C438399F9 - 439F65E7EEFF91D9BAD9FF024A57085CB6C2BFA5A781A4A20048105F4FC1EAB3 - ECFA4C3B6E9F1650FA18A5EF9A5BD79B1180A8510024849E7A5DD5D46C667E89 - C3B3ECBED3C727F5314ADFB14220E00F0A808458B1AA29750AD647BBB6B3FA5F - 3E3CF713FFD706A8A9A991556BD69A198028510024C49A163F6FFEDBFFF23EB9 - 7CF992996124F6EE7921B59892EFEE5ABFC98C004489022001AAAAAA53A75E7D - B48DBBFFF3461751DAB16D8B99F9EBCEA5CB64CCD8B16606202A140009B0A6A5 - 2575EAD5473CFE975F9B9FF5FF7E0A5D21F02E1608022247019000BEAEFC77E4 - F02169BB78D1CC900FFA44C595CB97CDCC5F3C0D00448F02A0C4E9A9D665CBFD - 7CF63A0E77ADC78D5E06D81283A72AE6CE9BCF0A8140C428004ADCEA35CD5259 - 5565667ED91283D3D5711497CB2ACDBC1A188814054089F37515B693278ECBD9 - 33A7CD0CF9B47FDF4B72A9ADCDCCFCB561234B040351A20028610D1326C8A23B - 9798995F38FD5F585B63B242A0AE4E09201A1400254C6FFED33BAE7D148777D7 - C7D94F7EFC4333F29BAFAB530249400150C29A3CBDFBFFDCD93372ECE8113343 - 21E8FED5FDECBBE67577B1422010110A8012A577582F58B8C8CCFCB2758BFF4B - D7968238ACB130AEBEDEDBCB5440A9A30028513EDF61BD7307EFFE2F86B85C66 - 59BFE91E3302504C140025CAD7BBFFF5EE74BD4B1D85A797018E1F3B6A66FED2 - D754EBEBAA0114170540099A396BB64CBF638699F9250E77A7979238BC13405F - 53ADAFAB06505C140025485FFEE32B4EFF17575C5EB6E4EBEBAA815246015082 - 2636369A915F74A95A7D573D8A475FB61487CB0073E72D30A391EBEBEB3323BF - C4618D06240B054009BA70FEBC19F943FF52FE972FFFDFD4BBEA515C4F3EF1B8 - B7A16875757599D1C83DF3B49FEF403878E08019017E2833BD0FF47BD1A64589 - 367D38585F62AF770769AB4DB5C6A50FC8B4A647823172D01BAA36DD73AFCC9C - 354BCA3D78C6BAA3A343B63CFB4CF017E07EB305C5B660D1E2D48DA135B5FA7F - 23BFB45FBD1A84F68FE4C4F16366CBC8B56ED8288B172FF1E6F77FD78E6DB277 - F70B660B4AD2A96D8FC8F93D8F07A34ED36E98D61D343DF2D12A5CDB4DD32247 - 010000C048C5B000E01200000009440100004002510000009040140000002410 - 0500000009440100004002510000009040140000002410050000000944010000 - 4002510000009040140000002410050000000944010000400251000000904014 - 0000002410050000000944010000400251000000904014000000241005000000 - 0944010000400251000000904014000000241005000000094401000040025100 - 0000904014000000241005000000094401000040025100000090401400000024 - 1005000000094401000040025100000090401400000024100500000009440100 - 0040025100000090401400000024100500000009440100004002510000009040 - 1400000024100500000009440100004002510000009040312C007A2F99010000 - 9E885F36C5B000E8EB300300003C11BF6C8A530170D3F40000F82A3659158702 - 207367F6749E35230000FC706B36795F08F85E008477E04DE9EEE2120000C02F - E96CBA35B33C16974B00BA13D33BF2DAD90BA91E00005FF467537F5E792E6E97 - 00D23BB6B7EF5C7A0A0040C46E769FD27F9A66795F04F85C00DC1AFC6941DFC3 - 7D0000003FF4F469263919F5DF63E58EBDE26301E0EEBC6CE39BD27DFD586A0B - 000051EBED74CF0084334BB9636FC4E91E00DBDF94AB278EA7A70000442C9D49 - 6EC87B17F6D9F87E09207BEBE93C1CF4000044AFFBFA81E09FD9F32ADDBC1497 - 9B0033DB8DEBFB831E0080E875771E0AFE796B5679CED702C0EE38B7D7D697EA - 3B8EEB19801B410300204A374C26F56754BAA970EF159F0A00BBD3DC1D967DDE - D3D32D3D370EA6B602001015CD22CD2437A3D2069B472E8E9700D215D6B5533B - 821E0080E8A4B3A83F9B329BD7E27213A0DDB1DAA75BC7855D410F004074D259 - D49F4D9999659B977CBF0740D9B1BB438302E0DC56DD08004064D25994994F69 - 36BB943BF686EF9700DC1DEA8E8302E0FC39E9EB391A8C0100283ECD20CD229B - 4BD933CB5B3E160076A7D91DE7CEED4E4EB7F693CF053D0000C597CEA0CC5CCA - CC2C159E7BC3B70220BC83DC1D18DEC97D72EDCCD3410F0040F1A533E8D66CCA - CC2E57781EA9B85C020837DDC1BD72E9E816E9BB793D180300503C9A3D9A419A - 45FDA19FAD79CBE702C0EE38BB13DDEA2ADD7A3A3BE5FA851F056300008A47B3 - 4733285B366586BFEDBD13873300B6B7CDDDC9BD72F9D077831E0080E249678F - 3DFAB7CDCD2A657B2FC5F926C0F48EBF7CF4192E0300008A463347B3C7CDA2FE - E666960ACFBD11A77B00DC1D6C5BAFF4745E97EB67BE138C0100283CCD1CCD9E - 5BC3DF3637BBBCE57B0160B93B5377AEEEF4FED676F06B410F0040E1A5332733 - 876214FC96EF3701869B5B61F517026D8776496FB72EC7080040E168D668E664 - 06BFDBB26597977C2D00C23BCCEE447727DB9DAFAD472EECFBB7A00700A070D2 - 59D313343783DC6CCA16FAE1B917E27009C0EE38BB53B5B93B3BFD03B8F4F2BF - 071FB5076300000A20C89854D60C18FCDA94EDBD15A79B006DCB0C7EDBBAAE5D - 954B879E0CC60000E49F668C664D387FB21701B679CBF77B002C7767DAF0778B - 003D1DD32367F6FE73D0DF081A0000F974C3644C3A6F32C3DFF66E5659EED82B - 71B80460D99D6A77B25B00A4DB8D4B67E5CA51CE020000F24BB34533269C3B99 - 9964732A16E2720F80DDA1766CC3DF2D02D255D9A95D5F0C7ACE020000F2E586 - C996A11CFD2B77ECAD38DC0360D91DAA4D777638FCD3FD8D4B67E4F2D1278231 - 000023A799A2D9E2664D7FFED83C7233CA72C7DE89CB250077C7DA96BB0838B3 - E3EF832FE1890000C008055992CA942187BF6DDEAB30BDEFCA4C536E6F9B1632 - B62F97DEAE1E29ABEE96D18D77057300006ECFD9973E27970F6F0E467A69B9DB - F45A04D8660B8170F07B5F04C4E50C806577B06DD9CE02A4DB851D4F485FF7D1 - 600C00C0F069866896B8D932F8D17F6CC4ED1280B2E370F86716003D3D9D72E2 - B9BF08C600000C9F668866899B2D9999132E02943BF65ADCCE0028BB736DCB5D - 045C3ABC45DACFFE6730060060E8343B3443DC4CC9CC1A37F86D8B95381500EE - 0EB6635B7DD922C0FE80F43A4DFA0776F2D9BF92DEDE73C1180080C169666876 - F407BF668A9B316EF664CBA65888CB4D8096BDE94FD971AEA6C54D99F476754B - 5FCF69193BFD55C11C0080819DDEF611B97A626F30726FFCEB3FB0CC2C026215 - FAAEB8150096067CAE3EDCCAE5FAF913326AC224A919B73898030090DD95E35F - 9353CF7F2918D9E0B7E1EF1600B13FFA5771BC07C0B23B5B9BFD616855669BFD - 41A57F70A737FFB5F4761E0EC60000DC4A3342B3E2D6C077B3251CFEDA6229AE - 6700941EDDDBDE8E959DBBAD5C7ABB7BA5B3ED05193FFB67836965B00D0000A3 - B7538EFEE85DD2D176329868F80F74F41F0EFF58160271BF04A0EC385BAFCD9E - E528971BED97A5BCE2828C9E7CB7D9060080C8B93D7F2E170FFC341869E87705 - CD06BF6DF60C80063D6700226603DEE56EB3636DFD4540FB994332AA7E8CD48C - 5F66B6010092ECCA917F91139BFF2918B9E11F3EFAB7A7FEDDF0B762590494C2 - 2500CB9DBBE1AFDC7999B49FD82163EE582655A3EED00F01000975BD6DB31C7D - EAE372F3A6BEF0C73DEDAF7DF81E80F0917F2C83DF8A7301A0C2219FABCF6C37 - 839FD9B513CFC8F8B99BA4BC727CB00D009034DD9D07E4C877DE2DDD3774F138 - 1BFEB600B047FEB94EFD5BB12D02E25E005836ECC3DCEDB6005065D2DBDD23ED - 279F967173EE95F28A31663B0020097A6E9C9123DFFE23E96CBF10CCDCE0B77D - F8C83F1CFEE14220764AA1000887BF1BF4AA3FF4C37D4F57A7749CD922F5B3B5 - 081865B603004A596F779B1CF9DE1FCBF5B663C12C1CFE1AFC3A76C3DF86BDDB - 62AF14CF00E41ABBFA8B80EEEB57E4DAA9E7A43E7526802200004A9986FFE1EF - BC433A2E1E0866E1F0D7DE3DFAB747FEE12240C5BE082895024069A86BD31F8A - 1D8785B7A5E714010050FAB287BF5B0468F0874FFDDBD0D7B115FBF057A55600 - B8BD2B5BF0BBDB38130000A52C77F8DBA3FE5C47FEB608502511FC562915002A - 5BF80F557F11307666B35454D69BED008038EBEE3C2647BFFF6010FE87829986 - BE3EEB1F2E02B21DFDDBF0B74D954C11506A05801AEC68DF75EBD7A68A80933F - 963153574A45CD24B31D00104737AEEC0DC2FF3DD2D17642674173C33FD7D1BF - 1BFAB629DB9784522C00941BFAB7867C9AFD41863F0F7E0DBAAECBD5E33F90DA - C973A5BA6EA6D90A0088938EB33F92233F7858BA321EF573C3DFF6B94EFBBB81 - 5F52E1AF4AB500B034DCF587766BC8A7E52E02F43D0197F6FF40AAC796CBA886 - 55662B00200EDA0EFD6310FE9F0AFE2EEF086683857FB6D3FEDA2B1D975CF8AB - 522F00D4508B002B737EE5D84EE9E9DC2FA3A7B44A7979B5D90A00F0516FCF35 - 39B5E55139B3E3C9603650F0273AFC5512CE00D85E7F88432D02ACF4F6EB178F - CBD5133F9471D397494575636A1B00C02FDDED2FCAA1EFBE5BAE9EDC15CCC2A1 - EF06FF50C3BFA425E50C80ED731501F607ED7EAEE3FE5F809ECE7669DBFF6DA9 - 1A5D29B5F5CB822FCB554C00008AAAAF4F2E1DFEB21CF9FEC7A4FBBA5EEF7743 - DF0D7E1DDBBBFD35E8070BFFFE0C2841492800D4508A002BFC03D7797ADBCD9B - 7D72E5D876E9BCB455464F5F291515E352DB0100D1D047FC8EFFE46139B7FB3F - 82BFA3ED1DFEB6B7C16F9BFBA89F0DFE4486BF4A4A01A0865A04E867EE0FDEFD - 6548B7AE2BE7A4EDC07F4AD5A872CE06004014EC51FF0F3E2A9D19EFF4B7C1EF - 8E6DF8874FF92736FC55D282CB2D025479D074ACBDDBB430AA34AD6AC03676CA - 5C99D6FC36A919DF14CC010085D675699B9CDAF259B97AE66030D360B7219FAD - E53AEA4F74F8AB241EB9E62A02DC42400B00DB6C11102E06DC79A54C5A729F4C - 5EF12629AF9A16CC0100F9D6D77D4ACEEEFA3B39B7F7FBC1CC0DFE701160E736 - F8C347FE1AF2890E7F95C40240858B807001102E04ECD9806CC540FFB68A8ADA - A008F8056958F4EB5251D5106C03008C94BEC7BF6DDF9782F0FF9AF4F676065B - DC80CF16FAB685833F5C00A84486BF4A6A0160D9E0576E11607BB708700B011B - FCEEB87F5B45759D4C5E1E14020B7E954200006E532AF8F77F45CEBE1004FF0D - 7DA18F0DF670E0E70AFEF0517FB6F04F5CF05B36FC922C5C00D8660B001DBB45 - 805B0864067FB85554D448E3D2D7C88445BF2495B5F3826D0080C1F4741E948B - FBFE4DCEEFF95670C4AF77F4BBE16E5B38F4B5B9C1AFCD86BE1BFC6EE8DB3E91 - 34DCD0BF1F6C6F835F9B2D046C0B1701031504FD9F35CC6F9289F37F516A26B4 - 4A79857E0D00C0EAEBED96AE8BCFCA85034F4ADB816DC19670B8E76A1AF4B6D7 - 66033F1CFC3A5684BF4101D02F5C04B80580EDDD22407B37E4C38540785B7A5C - 5D3F411AE6BE4AC6CF7FA554D72E0CB6014072DDE87C592E1DF89EB41DFA8EDC - B87C31D8E2867A38E4C373B7CF16FCB60F877EE2C35FD9B0439A1BFEB6779B5B - 04D84220DCDCE0B77D785BBA8D9D3253C6CCBC57C6CF6E95CADA3B836D0050FA - 7A3A5F944B479E95F6634FC9D533FA0CBF06B86D6EB0E70A7BDB74AE21AFE36C - A16F9B0AF78967830E99EC7E717B5B0084FBC10A8181C6B6954B6D43A38C9DDA - 226367AC929A869552593539D80E00F1D7D37D56BADA76CAD5E33BE4EAE9CDD2 - D9763ED86A833B1CE8838DDDA6FF0E37F8C3E1AFC23D0C1B70B895DD376E1F6E - B600700B815C05816D6E01E07EADFBE7CBA56EEA34A91BB74446352E91BA298B - A4A27AB654548E0E3E03007FE96A7CBD378E48C7997D72FDFC5EE9B812B4D3A7 - 824F6C40DBE07643DC8E7305BD6DEE9F779B1BFAB6A9700F8786180666F791DB - BB4D03DBF6B68503DD86BC6DB9B6B97FC6B6FEFF8DDAC689326AFC5C29AF992E - B5A3A7486DFD04A91A3345CA2BC7C9CDB2515259D1187CA97E2D00E49FDEA8D7 - D7D7266537AF4B5FCF15E96E3F239D972F4AE7B533D2D77552AE5F3A249DE775 - 311E0D5C1BCC6E50BBE1ED06BBDD9E6B5BF8CF6A73FF37DCA6C23DB2D070C1E0 - EC7E72F7970DDAFE80EE1FBBCD067A38E4C3DBDDCFB3B5F0FF8E6DCAF6CA1D03 - 403EB981EA86ACDBDC70CED5B2857BB6A077C7B685FF776C53B657EE18591016 - C3130E5CEDDDB11BD06E686BCB16F0E16DD9BEC6FD77D87F77B829DB2B770C00 - F9902D5CB5CFD6DCB0B663DBC2A13ED8DCFE3BDC7FB7F6CA6E53E11E8320286E - 4F3874B50F8FB5B9A16D437CA82DFC67B2FD3B953B56EE1800F2C90DD770F86A - 0B07B56DE1F9505AB67FA736151EBB3D8688B0B87DD94257FBF0D86D6EB0DBDE - 36779EED6BC363DB943B0680420B07B0DBB285B7DB87C7EEDCEDC34D85C7963B - C610111A23E7EE4337906D6FC71ADEE1DE7EAEE3F0DCED076A961DBBDB00209F - 7285EF402D5BB0EB383C57E1DE7EAECDCA35C6301116F9932D8C958EEDDC8EB3 - CDB5650B7CBB4DE958D9CF54B8078042B3C1EBF676EC86B71BF2B665DBA672CD - AD5C63DC2642A330DCFD1A1EDBB91D87E7CAFD2C5B53E15EB9630028846C41EC - F60335956D9CED33956B8C3C20300A2B5738DB71B63EFC75D93E0BF7CA1D0340 - 21650B66B7CF3656E1CFB2F52AD71879446814CF40616DE7E15E0D751B004461 - A0001F689BFB99CAF6B5282002241AE1FD9E6B3ED4AF0380A80C14E4CACE87FA - 75281202247AD97E0643D9C6CF0E802F8612E643DD86222144FC93EB67C2CF0A - 405CE40A7602DF23FAEA590000F289A007000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000E09932D3C3 + 7FFCAC00C4C50DD3C363848A7F72FD4CF85901888B5C05008581470895E865FB + 190C671B3F3B00BE08077BB6A01FEE36140921128DA1C2DCCE87FB75001095A1 + C2DFCE87FB75281202A478DC7D9D2BC8C3BD1AEE36008842B6801FCE36F73395 + ED6B5140044861650B6D150E70B70F7F5DB6CFC2BD72C7005048D9C2DAEDB38D + 55F8B36CBDCA35461E111A85912B98756CE7761C9E2BF7B36C4D857BE58E01A0 + 10B285B3DB0FD654B671B6CF54AE31F280C0C89F5C41AC633BB7E36C736DE583 + 6C533A56F63315EE01A0D0DCC0B6BD1DF79B5EE73AB69FD9966D9BCA35B7728D + 718B088DD173F761B650B6631BDE6E6F3FD77178EEF6E9D630678A548DB95DCA + 2AE74AEDF8993276CA14A9A89C29523551FAFAEAA4BC6ABA5404FF070085D017 + FC5F7FCF49A9A8E814E9B9207DBDC7E5EA9933D275F9B8DCE83D2C3DD79E974B + 47CE045F69C35B9B0D7C37F8751C9EAB706F3F57E15EB9638C90060B6E8DBBEF + ECD886B5B263B785835D7BDBDC799934CE992D9563D74AEDE4B5523F65955496 + 2D0E827E7CF0190078ACE7B2F4DED82F1D677649D7D96DD27B759BB41F391A7C + A061ED06BF1DBB73B70F37151E5BEE18C3A4A18391B3FBCDEDC3636D36D8ED38 + 776B983E556A26DD2D0DF33648EDB8CDC1BF322DD80E0025E0C629E9BAF223B9 + 74E829E93EFF845C3A793AD8E81600D99A0D7B776C833E3C767B0C93061386CF + EE2FB777C71AE6769B1DDB90D753F3769C6E13E6CD9771D37F41C6DF76AF9457 + 3707DB00A0F4F55FDF2E975FFEAE5C39F975B978E8A06E09B53E67ACC16E7B77 + ACEC3615EE31041B5E189CDD4FEEFED210576ED8DBB1DB6CF0A7FBBA094DD2B0 + E87F49E3FC5F928ACA95C1360048AEBEDEDDD27EF0DFE4D28B8F4AE7C573C116 + B700700B01DB6CE8DBB1D2B14521304C6EA0213BBB8FDCDE6D1AEEB6CF1EFADA + 372DDD249316BD41AAC7BD3298D7040D0030A05BAE5F795CCEBFF80F726EDF93 + C13C5C04848B01B708709B0AF7C842830BD9D97DE3F6E1E6867E66E06BAB195F + 279316FEA2342E7EB394572C0EB6010086D2DFB75FDAF7FFAD9CDFF3A8747777 + 075B34FC731502D98A001BFCE11E0E0D31DCCCEE17B7B7811FEE0702DF0DFEA6 + 65AF97C6F96F91B2B2A6601B0060A46EDC3827ED07BF20E7F6FEA3745FEE0CB6 + D842C02D086C0110EEC3E16F7B1836E09066F787DBBBCD067E8EE0AFA991C9CD + BF2913E6BF8DE007803CD142E0E2C1CFC9D9ED5F0A9D11081702B6D902C03615 + EE13CF061D06F685DBDBD0B7BD1BFCDA579A71A54C5BF33FA469F17BA5AC6A4E + 300700E4DB8D9E23726EFF27E5D48E6F06B3DEA069F86BAFA11F2E0434E8DD62 + 405104386CD8259D1BFACA867E38F8B5D9237E0DFF4A6998BD5866347F582AEB + 3705730040A1F5763C2927B67F402E1DDDAF33D3863A1BA06345116050006486 + BFDB6CE0EBD886FE40F8578F1B2BD3D7FE918C9DF9FBC116DD060028167D2DF1 + D5E37F2327B7FD955CBF7235D8E21601B6D9E0770B01DB94ED1349C32DC96CD8 + 2B3BB6A11F3EE24F077FEAA87F7EABCC68F90BA9AC9A1FCC010051E9ED392827 + B6BE4B2E1DDCA233D3DC22C02D00DC4240B9E3C449EA91AB0D7B6DCA8EC3A19F + 0E7C91AA54ABA9A995599BDF239396FFB954564C0AB60100A2545ED128F5B37E + 45C64EAC956BA7B6489F667EC6DFED6E1F36D4E7252D897FE8F00FDC1EF16BCB + 75D45F25B593E7CA9C3B3F27D563D6047300806FFAAEED96833F7CAB749D3D1C + CC7A8236D8D9006D3A56EE1981C4D0804B925CE11F0EFD81E017A996A9CB7F46 + 66DFF125A9A8E60E7F00F05579D5549934F73E29BB7140AEA68A80307BB067E9 + 5843DF6E733F2B79492A00C23F6037FC6DCB0C7E6D735E71BF4C5CFCB1E0635E + DF0B00DE0BFEAE1E3BED1764CCC40AB97444EF0B182AD4F5F3441601492900C2 + 3FD8A1C3BFBA7E822CB8F70B3276EA6B833900204E6AC6B7C984992BE4CAA927 + A4EFBA5E0A188CE641E28A80241400E11F6838FC751FD8F0D7562D6326CD90B9 + F7FE7DF00BB431980300E2A872CC7C193F6793749E79427AAF5D0BB6B8D7F8C3 + 21AFF3441501A55E00847F9083857FFAC87FEC942532E795FF2055354B833900 + 20CE2AAAA60545C0BD72EDEC53D273F5A2D99A8BE643628A80241400F607982B + FCB5A51FF31B3BE57699F7AA7F968A8ADB823900A014E8A38213E6FFBC5C3DFD + FDA00868375BDDB3012ECD09B7082859A55C008C24FCF5C85FC3FF2B2CE20300 + 25A8ACACCE2902EC9980441701A55A0010FE00804C994540E2CF04946201607F + 58DABBC1EF1600EE357F0DFF2F13FE009000E922E0E7B21401B90A01ABE40A81 + 522B00C2E1EF1600F6A8DF867F958C993843E6BEFA2B525E3E2D98030092408B + 80F1F35E291D27BE25BDD73ACD56D76067054A46291500C30DFFF4A37E556327 + C8C29FFDAA5454CE0DE6008024292F1B2F13E6DE2D170F3F26FD3DFADAE0A1CE + 0058255304945A01607F3036F8DD0260E0C8BFBABA4EE6BFFA6FA5B2AE399803 + 0092A8AC62928C9FB152AE1CFE96F4F5B9EB02642B06745BC984BF2A9502C0FE + 50B4D7C0B7BD3DF2D7960E7F3DFA9FB5F901A99BFC3F83310020C92A6AE6484D + 439D5C3CF26430B3C1EF160076ACB9E28E63AF140A0037FC6DF0878FFCD3A7FD + B50098D1FA2B3261DEFB82310000FADAE0B552597B5CAE9C78C16CC9560884C5 + BE08289502C06DD9C23F7DF43FEEB61532A5F90B525EA6730000D2AA1B374B77 + FB1372FDCAB960A6C1EF1601831502B115F702C086BED2D0D7B1FE9974EC867F + B5544D6894F9F77C512A2AB9E31F0090490F0CC7DFB65E2EBEFC75E9EFBA1E6C + 091701E1DE664F6CC5B900B03BDF1601F6C83F1CFEE90260CE860F4ACD845704 + 6300006EA63705D6D637CAC5C34F04B35CE11F16DB4220EE0580DB34F8F5CF63 + DBC0D1FF9495AF96890BFF24180300905BF5B815C13FF7CAD53387835E43DF36 + 2B5721103B1A9A71E4565C6E01E01602E9B300750D1365E28A0F0763000086A6 + 99A1D93170365933C5CD189B3B963B8E0DFD43C591DDF9DAF487619B7BE49F6E + 735EF951A9A96B09C600000CADA2AC5EC6344D910B07BE13CCDCB300B695040D + CDB8B1C1AFC2858016000347FF93166C9231137F29180300307C9A1D8D8BDA82 + 917B16409B668D9B3DCA1DC7461C0B00CBFD01E89FC32D002AA4BABA56A6B67E + 281803003072D3D77D2C95256EB60CE48D9B41B114B702C0DDD9761C0EFF74B5 + 3679CDAF4B45C5BC600C00C0C869866896643F0BE01601CA1DC742DC0A00CBEE + 68DB320B80D48D7FF3DF118C0100B8759A25033704BA0540388762274E0580BB + 93ED58BF7FDBD2E1AF7DD3AA3F08BA71C11800805108B22495294EC664664FB6 + 6C8A05FDE6E3C6EE60DB6CF8A75B6DE3346998FDBA600C00C0E869A668B6B859 + 9319FEB6C54A5C0A0077E7DAB17EEF99E1AFD5D9D455BF17F4BAF00F0000F950 + 6DB2C5BD0CA0CDE650B68CF25E5C0A00CBEE58DB328B00ADD0C6CFFCB5600C00 + 40FE68B6649E050887BF6DB1118702C0DDA1760767067FBA55CAE4656F0C7A8E + FE0100F9566D3266386701943BF6521C0A006577ACDB328B80AA86F13261D6AF + 06630000F24F3346B32677F8BBCD7BBE1700EE4E74776C66F86B45D6B4E09783 + 2177FE03000A449F08D0ACC9380B90AD08B0DCB1777C2F0094BB43EDD886FF40 + 1130711147FF0080C24A678D1BFEB6CF96555E8B430160D91D6A77F440F837CE + 5F2BE5950B8331000085A359A399935904B8D9A42D167C2E00DC9D6877AA361B + FC0305C0C405BF12F40000145E3A73DC02C02D046CB3DCB1577C2E0094BB336D + D3EF7920FCABEAEAA466F2CF076300000A4F3347B327B308081700B679CBF702 + 40D91DE8EE50BBB3CB65C2DCBBA4A26C4C300600A0F03473347BDC2CCACC2865 + 7B6FE937EDA3F08EB33BD5DDD9E9CA6BFCBC9F097A00008A279D3DE13300DA6C + 5EB9C2732FE837EB2BBB13DDE6EEE4F2F4E9FF8657066300008A47B3277D1920 + 3397B2679797F49B8D037747EAF76C8EFE67B571FA1F0050749A3D9A41996701 + DCACF29EEF0580BB33F57BCD6C63A7BC22E8010028BE7406DD9C4D99D9E52DFD + 467D13DE71EEDCDDC11532EEB60D410F0040F1A53328D73D00DA5478EE0DFD66 + 7D966D07A67772FDB429525E3137180300507C9A419A45369732B34AD9DE4B3E + 1700EE0ED4667770BA8D695C1FF4000044279D4599F934905BCAF6DED16FD467 + 7627865BB9D44E5A1DF4000044279D456EE8879BB77C2B00C23BCBCEB5B79555 + BA8D9FD11CF4000044279D4599F994995DAEF03C52FA8DFA4677906DCA9DA777 + 6E5555959457B1F80F00205A9A459A49369F32334B85E7DEF0B10070D99DE6EE + D472A99BB520E8AB8306004094AA4D2665E6D4C0D85BBE1600EE4EB3E3811D5A + 5DB328B5050080A855D6CE0FFE6903DFE66AB61CF38AAF0580B23BD3EE50DB97 + 4BE5D879410F0040F4AAEBF492743A9F3233CB362FE937E93B77276A2B9771D3 + 67073D0000D14B675238F4B579CDA70220BCD372CFAB6A280000007E28AB9AA1 + FF749A1A6A1E395FCF00B83BCCF6DAD215565FB9BE79090080E855554E0DFE39 + 9051E9A6C2BD577C2D005C76670EB4AA2A0A0000801FCAAAA6EB3FB334AFF95C + 0064DB99653276EAE4A00700C01FE96CCA9E5B9E8AC319006577A05EFFAF3363 + 0000FC90CEA681AC8A011F0B00B762BA795C563B2D3D0500C013E96C1A3CBF3C + E3FB2500CBCB9D0700404838AFBCCDAEB8DC046895494519970000007E292FAF + 09FE198BE0B7E2740F80D9991513D23D00009E282B9F6447A679CFF70220BC13 + 63B15301008914ABCC8ADB25000000E2C0FBEC8ACB2500657726050100C037B1 + CBA83815000000204F2800000048200A00000012880200008004A20000002081 + 2800000048200A00000012880200008004A200000020812800000048200A0000 + 0012880200008004A200000020812800000048200A00000012880200008004A2 + 00000020812800000048200A00000012880200008004A2000000208128000000 + 48200A00000012880200008004A200000020812800000048200A000000128802 + 000080042A33BD0FF47BD1A64589B68AA05505ADDAB4DA546B5A769F4C6F7E28 + 18033F357FC142A9AAD25F9778E9EBEF97E3478F48575797D90220964E6E7F48 + CEED7D2418E9FF336BBB6E5A4FD0FA82D66FDA0DD322470180D87BE39B7E4F36 + 6CBAD3CCE2E75A67A77CEA931F936341210020A6625800700900B1D7B6619319 + C5D398BA3AB9E755AF363300280E0A00C45E7979FC7F8D5737B74855959EE802 + 80E2A000003C505F5F2FCB57AE323300283C0A00C01371BF9401205E2800106B + B5B57A6F686958B57A4D49FD7900F88D0200B136B67E9C19C55F655595B4B46D + 303300282C0A00C45A434383199586D6F5779811001416050062ADA161821995 + 86DB972D97C68913CD0C000A870200B136A104C3B295CB00008A800200B13665 + CA54332A1D3C0D00A0182800106B93A7965E013073D66C993E7D869901406150 + 0020D666CC986946A565FD46CE0200282C0A00C496DE2C37A9A9C9CC4A4BDB1D + 1400000A8B0200B1B5AE65BD19951E2D6C162E5E626600907F140088ADE6122E + 001437030228240A00C4929EFE5FB868B19995A6B54181535151616600905F14 + 0088A5356B5BCCA874E90A812B57379B1900E417050062694DF33A332A6D6B5B + 4BFB320780E850002076EAC78D93C5B72F35B3D2B66E5D2B2B040228080A00C4 + 8EBE2AB7BC3C19BFBABA42E0EAB5C938DB01A0B82800103B2D095B316FE3A6BB + CC0800F2870200B19284BBFFC3F47247A9AD7A08207A140088950D9B937734AC + 973B5ADB9275D60340E1510020564AF9ED7F8359CF4B8100E4190500624357C8 + D395F29268CEDC793265EA34330380D1A300406C247D85BC0D9BEF342300183D + 0A00C4466BC2EEFE0F4BFA9F1F407E51002016E6CE9B2F93A74C35B364D23FFF + FC058BCC0C0046870200B1C0CA78693C0D00205F2800100BBA321ED24F03B042 + 20807CA00080F7962E5F21131A1BCD2CD97485C0A5CB56981900DC3A0A00782F + EAD3DE4FFEE0FB66E487A43F0D01203F2800E0353DDDBDBA39DAB5FFBFF7DD6F + CBC5F676338B9E2E85CC0A8100468B02005E5BB9BA3975DA3B2ADDDDDD72ECE8 + 11D9F3DC4EB3257A353535AC100860D42800E0B5B5ADD1DEFC77E4F0A154BF67 + F7AE54EF8B3B366C362300B8351400F056555575EA7477940EBD7420D56B01D0 + DFDF9F1AFBE0F665CBA57EDC3833038091A30080B7D6B6B6A64E7747E9C08B2F + A4FAAEAEAE60BC3F35F6417A85C00D660600234701006FF9B0F2DF81FD03A1BF + 6FEF7366E487165E0D0C60142800E0253DBDBD7CC52A338BC6F16347A5B3F3AA + 99F9771FC0C2458B592110C02DA3008097D6AC6D91CAAA2A338BC6FEE7F79951 + DA914307E5F2A54B66E687165E0D0CE016F9F44ED1B250D3E244BF3FDB2A53AD + 6EF2721937FDEE608C12F6CBFFFBB5D234798A9945E3BFBEF54D3975F28499A5 + CD9A335766CE9C6566D19B3469923CFE9D6F9B1930347D87C4F419B7C9A2454B + 64D98A95B26A75B36CD87467AAE8DE7CD73D72E7DDF7C8C6CD77C98A95ABE5EC + 99D3DE15BDDEEA38F584749EDD1B8C7A4DEB334DEF1EBEE1346F68D0FAC20D7E + 1BFE7A08586D9ABEF9A4569A96DD27D39B1F0AC628518D1327CAC71FFE4CEA46 + B728BDF30F7E2FE312806ADBB8497EFB77DF62667EF8C4873F20870F1D343320 + D3FC050B655ED01606813F6BF6EC11ADAAD9D1D121EF7FF73B5237C1620827B7 + 3F24E7F63E128C746769BB6E5A4FD06C21E0160391A30080775EF59A9F95FB5E + FB1B66160DBDFEFF910F3C606603F4DE844F7DF60B66E687C7FFFBBFE4AB5FFE + 929925DBF2E0A8B5A1A1C1CCA27126386A3EB03FFDF44814F4087F75F3BAD4BE + 58B57A8D8CA9AB339FDC9ABFF8C447E4C508FF3CB14101302A14004879F7031F + 48DDE016253DFDFFE823FF6C66991EF8E04764CEDC7966163D7D4DF103C1515A + 5F9FFE1D935CEB5AD7CB9BDFFA76338BD6F37BF7C8173EF7E9A21E392FB97DA9 + 6CBAEB1E59D7D29AD7FB67FEF2931F931742F7C3208B181600D19E630542F4AE + F6A8C35F0DF6C8DF9EE7FC7A1A40574A5C1CFCE59F74336E9B6946D1D31735FD + E66FBDC9CC0A475F9675CFBDAF910F7FE261F9E3F7BE5FDA366C8CFCE659C407 + 0500BCE2C35DEDBD3D3D19CFFF87F9F638A06ADBC00A81E7CF9D33233FE87B1A + A64C1DFEF5F691D0E07FD56B7E4E3EFEF0A7E5D77EE3F53275DA74F309307C14 + 00F04AAB072FB7D9FFC23EE9E9D13377D9E9EB81AF75769A991FD6B6AC4F8542 + 929D3F77D68CFCA147E7F9A4AB63EA1DFA1AFCF7BDF675323EE2FB1D106F1400 + F0C6ACD973BC388DBB6BE70E33CA4EAFB5FB7619405F99BC26E12B049EF3EC0C + 80D2C22C5F962E5F217FFAA18FC91B7EE7CD043FF2820200DE887AE53F6B38A7 + F87DBC0CD09AF09702F9F8BCBADE9F317DFA0C33BB35FA58ECEFBEE50FE51DEF + 7A9F57F73920FE2800E08DB63BA2BF8EAD2F3E3973FA9499E5E66301B0727573 + A25708D4CB36BE5D9A510B162F31A391BBE755AF910F7DFC61D67D40415000C0 + 0B0B83BF24273535995974B66DDD624683BB74E9A21C3AF89299F9415F9CE4C3 + 024A51D217D7F8465FC433527AD47FFFFBDE2FBFF6BAD747BE22264A170500BC + E04B70EDDAB9DD8C863692AF2D96F5097F1AA0BDFDBC19F963E6ACD966343CFA + 3E830F7EE4CF64F1121EED4461510020727A67B30FA738F51AF248DEE0B67B87 + 7F0580BE43418F1E93CAC73300B70DF3BABDFEFFC16B7FE30DA997198DF6ED7D + C07050002072FA121B1FEE6ADEBD6B64817EECE811B9E0E19DE71B36DF6546C9 + D3EDE13BEBF5C53C432DDBDCD03021F506CCBBEF7DB5D902141E050022E7CBDD + EB5B9EFE89190DDF8EEDCF9A913F7C789742547C5DB96ECA200BF0E8E3AF0F7C + F0C3326FFE02B305280E0A00444A5F5ED3B27E839945A7BBBB7BD0B7FFE5E2E3 + 7D00FAA898864A120DF602A728E53AC3A5CFF6EB91FF84C6E45EB64174280010 + A9E52B57797197B31EC9DF4A78EC7F7E9F97D79D75D9E224D242CE47D99E7059 + D7DA266FFFE3F770973F2243018048F972FA7FCFEE9D663432FA56C0DD1E9E05 + 68F5E0AC4A143AAE5C3123BFD4D4EA62A603EED8B859DEF4FB7F907A7413880A + BF7D888CAE5BBEA639FAD7D7F6F7F7CBCE6DB77E2D7FC728FEDD42D137D0E9E9 + 65F8A1BE7EE0054D6D41F8FFD6EFFE3EE18FC8F11B88C8AC5EBBCE8BA54BF534 + FE68D66DD7B702FA78EA39E9AF06F6893D03A0A7FDDFF83B6F4E8D81A8510020 + 32BE9CA61EED9DFC7AEF808F9701F4E6CAA4AD10E8E3AB80557D7D7DEA8C0CA7 + FDE1137E1311097D67BDDE00E8831DDBB69AD1ADF3F16900BDB9CC977D5C2C9D + 9D57CDC82FFA18E05BDEF64EC21F5EE1B7119158B3B6C58BBF0C8F1F3B2AED17 + 2E98D9ADD37B087A7B7ACCCC1F1B37DF694688923EE6C7DDFEF00D050022B161 + 931FC194AF1BF8F41E82FD2FEC33337F2C5FB14AEAEAC69A19000CA00040D1E9 + BBEAF59DF53EC8C7E97FEBD961AE24584C7A93E5DAD664AF1008203B0A00149D + 2F2BFF5D6C6F4FBDCF3F5FF2594CE4535BC2570804901D05008ACE97C56A766C + CF6F60EB4B680EBC38F2D70917DAE225B7276685405FDF0408F888020045A5AB + A28D747DF44229C40B7C767AB838906ADBB0D98C4ADB154FDF0408F888020045 + D5E2C9CB69F448515F00946F3EBE1550F152200061140028AA8DBEDCFD1F1CA9 + EB7BFCF3EDCCE95372E2E5E366E60F3DEB72DBCC59660600140028225DA276F2 + 20EBA217D3AD2EFE331CA37DB360A1F872F6A590745D0700C3430180A2F16589 + 5A7D61CF6816FF198AAF9701366EF2E3E6CB426ABF70DE8C000C85020045E3CB + BBFFF54EFDD12CFE339423870EA61E31F48DAE10B870F112330390741400280A + 0D1E0D201F6C79E627665438F97EC4305F783530008B020045E1D3CB680A79FD + DFF2F532C0EAE696C4AD1008203B0A00145C454585ACF5E4ED7F7AFA3F1F8BFF + 0C451F31ECE8E830337FE8B2B4A5BE42202F03028687020005B7F8F6A5A9E0F1 + C19EE776995161E923863B3DBD0C50EAAF06D6373202181A05000ACE9757FFAA + AD4F17FEFABFB56BC70E33F2CBAAD56BA4B6B6D6CC80C1F16865E9A2004041E9 + F5E635CDEBCC2C5AA74F9E4CBDA8A7589EDFFB5CEA9143DFA45608F4E4920CFC + 76EAD449397CE89099A1D49499DE07FABD68D3A2445B45D0AA82A6772C69D343 + 965A695A769F4C6F7E28182306D6B5AE9737BFF5ED6616AD6F7DF33179EC5F1F + 31B3E2F8A3FBDF23CB56F877CDFDF9BD7BE4D30F7FC2CC4ACBC71FFE8C4C6A6A + 32B364D3FB504E9F3C21E7CE9D4D3D9AAA97473A3AAE486767A75CEBBC6ABE2A + 9316EDE31B1AE47CF0EF1C7CE925E9E9B96E3EC1A04E6E7F48CEEDD5BF60F419 + 636DBAE3B4E95180BE76544FA568BB615AE4280050506F7DFB3B65B52767003E + F9D18782BFD00E985971BCE29E7BE5D75FFF5B66E60F3DADFBC0BBDF51941B22 + 8B2DA905C0D933A753817DE4F0C1A01D9213C78F07419F3DE45100312C00B804 + 8082D1EBCCCB3D39FABD161CF1E85F8AC5B66BE77633F24B7979B9ACE33240AC + 9D3F774E7EF0C4E3F2777FF3D7F29E77FCA1FCE97BEF972FFEEDE7E5BBDFFE4F + 39B0FF05C21F43A20040C1E87566BDDEEC03BDFBBF108BFF0C458FB0A3283C86 + C3A79B33313CC78F1D95AF3FFAFFE4C30FFE49EA0CCE3FFDC31765CBD34FC9A5 + 4B17CD5700C347018082F1EBE53FC579FC2F1B5F1707D21502A74F9F6166F095 + 1EE9FFC7371E9307DFF72EF9C8071E907FFFC6D7E4E5E3C7CCA7C0ADA3004041 + D48F1B977AFEDF17511600855C7868B4D67BB2401332E93D1A3B83C2F1B37FF9 + 70EA48FF6B8F3E52D42758900C14002888D6B60DA9EBCC3ED053F0519E22D5A3 + 35BD41CB476D775000F8441F1B7DFCBFFF4B1E7CEFFDF2F9CF7EBA28AFAD4672 + 5100A0205AD6FBB3F67CB1DEFE37986D5BB798915FF46E7956088C9E0DFE07DE + FD4EF9EA97BF947A6C0F28340A00E45DE3C489B270D162338BDEEE1DD1DF89EF + EBD300AAB5CD9F622D69C2C1CFCD7C28260A00E49D4F77975FBE74A9E8CFFE67 + A38F65E98B587CD4B27E436AC1261497DE1CFAA107DF47F023321400C83B9F9E + 2FDFBDCB9F23EF6D5B9F3123BF246185409F6851FAD77FF529F9C2673F2D674E + FB796F089281020079A58F95E9E365BEF069419E673D2D00544BDB06334221E9 + 72D41FFDE0FB83DF4B7F2F092139280090573E3D56A6EBC247F9F85FD8A1970E + A4DECDEEA375EB5A5921B0C0F6BFF0BC7CE6E13FE3743FBC410180BC6AF5E8EE + 7F5D8DCFA7854CF44D84CF3CF5A499F945DFD8B87AAD1F6B3694AAFDCFEF6561 + 1D78850200793377DE7C993C65AA9945CFC753EE3E5F06D8B889570303494201 + 80BCF1E9D5BFFA26B5DD1E5DFFB77C7E1A40DFDCA86F7004900C1400C81B5DFC + C717FB9FDFE7ED6A68BE3E0DA06F6EBCC3A3220E40615100202F962E5F21131A + 1BCD2C7A5B9EF98919F987A70100F880020079E1D3DBE4F4F4FF8E6D5BCDCC3F + 3E5F0698377F814C993ACDCC0094320A008C9ABE456E75738B99454F4FFF775C + B962667EDAEDF1AB817DBA970340E1500060D456AE6E4EBD4DCE173E9FFEB77C + BE0CD0B661A319012865140018B5B5ADFEDCFCE7FBE97F4BCF525CEBEC3433BF + E8A39CF3172C323300A58A0200A35255552D6B9AFD7981CCF37BF7787FFA5FE9 + 4B8176EDF2EF31458B150281D24701805159DBDA2A3535356616BD9F3CF52333 + F2DF9EDD3BCDC83FEB376C628540A0C4510060547C5AF94FD756DFB9ED5933F3 + 9FBEA8482F59F848EFE9D0170301285D65A6F7817E2FDAB428D1A6871F5541AB + 364D572AA995A665F7C9F4E687823122A66F8DFBE4A73E9B7A8FBC0F7499D53D + CFF9B3F8CF70E8CB937C3A83E27AFA273F962FFE9FCF9B597C7CFCE1CFC8A4A6 + 2633F3C7371F7B54BEF1B547CD0C25E7E4F687E4DCDE4782519769BAF083B69E + A0F5054DAB7D6D374C8B1C05006ED9E657DC23BFF9C6DF3133941A5D4DF1FEB7 + BD25760BD850002012312C00B804805BE6D3CA7FC83F3D33A1F77800284D1400 + B8258D1327728D38015AD7F36A60A0545100E096E8CD7FBA780C4ADBF295AB58 + 21102851FC0D8E5BD2ECD1DDFF281C2DF25A5920082849140018315D2C66E1A2 + C5668652D7C2BD1E4049A200C088B5F096B844D1628F150281D243018011E3EE + FFE4A1E8034A0F05004664D6EC3932E3B6996686A4B8832582819243018011F1 + 69E53F14CFD469D353C51F80D24101801169BB8323C1A4DAB8F92E3302500A28 + 00306C0B172FF1F215AB280E5DB780150281D241018061F369E53F14DF84C646 + DEFE0894100A000C8B1EF9F13C38DAB819102819140018163DF21BDFD0606648 + 2ABD0C5055A58B7302883B0A000C4B2BCF8123A02B04AE5AB3C6CC00C4190500 + 86A4477C2DAC0A0783CB004069A000C0907445383DF203D4F215AC100894020A + 000C89D3FF70555655C99AB52D660620AE280030A8DADA5A59D3BCCECC80B40D + 9BEE3423007145018041AD5EBB2E75C407B87485C0C68913CD0C401C51006050 + ADDCFC871C36F06A6020D628009093DEE8A5370002D9B02C34106F1400C8496F + F42A2FE75704D9E9B2D0AC1008C4177FBB23276EF4C2505ADBB84404C4150500 + B2D21BBCF4462F6030BC1408882F0A0064C5CA7F180E5D2170C9EDCBCC0C409C + 5000202BEEF0C670B56DDC684600E2840200379932759ACC9C35DBCC80C1AD5D + C70A81401C5100E0262DBCFA172330A6AE8EC7458118A200C04D3672F73F4668 + E3667E6780B8A10040067DAE7BF294A966060C8FAE10585737D6CC00C4010500 + 32B46DE4B12E8C9CAE17B1B69527478038A1004006DEFD8F5BC5AB8181782933 + BD0FF47BD1A64589B68AA0E932747A7BB1B6DA546B5A769F4C6F7E281823CF16 + 2E5E22EFFE9307CDCC1F3BB73F2BC78E1E31B3641A533756EE7DF5CF9899BFDE + 77FFDBA5FDC205338BC6C71FFE8C4C6A6A32337F7CF3B147E51B5F7BD4CC5072 + 4E6E7F48CEED7D2418759976DDB49EA0F505ADDFB41BA6458E02003FF5BA37FC + B6DC75F72BCDCC1F0FBEEF5D72E6F429334BAE8F7EF253DEDF9FF1AFFFF215F9 + F67FFCBB994583020091886101C02500A4545454C85A0FDFFE77FCD851C2DFD8 + F2CC4FCCC85FBC1A18880F0A00A42CBE7DA9D4D7D79B993F9EDDFA8C1961DB16 + FFF785BE40EAB699B3CC0C80CF280090E2EBAB7F776E7BD68CA0F7419C3D73DA + CCFCC58BA48078A00040EA35AE6B9AD799993F34EC5E3E7ECCCCA07EFCE40FCD + C85F1B37B18E041007140090556BD6484D4D8D99F9230ED7BC8B6DEBD3FEEF13 + 5D21509F2801E0370A00787BE3561CAE79179BDE10A93746FA8E9B0101FF5100 + 245C6D6D6DEA35AEBEB9D8DE9EF867FF7389C38D91FA44893E5902C05F140009 + A77F51EB6B5C7DB38DBBFF737AEA473F30237FE913252B57379B19001F510024 + 9CAFA76A79FC2F377DD3DE8117F79B99BF5A791A00F01A054082D58F1B977AFE + DF37972F5D9203FB5F303364B33D0605923E59A2979800F8890220C15ADB3648 + 79B97FBF02BB776D3723E412873324A915023D7CBB2480340A80046BF174F5B6 + 2D3178D42D6A7A1960FF0BCF9B99BF781A00F017054042354E9C280B172D3633 + 7F747474C8FEE7F7991906F3F4534F9A91BFF41293FEAE01F00F054042F9FAEA + DFDD3BB74B5F9F2E9C85A1ECD8B655FAFB7571317FE925A6755C0600BC440190 + 50BEFEA5BC8377FF0F5BC7952BB1385BB29ECB00809728001268FAF419A955DB + 7CD3DDDD2D7B76EF32330C471C5E973C67EE3C9932759A9901F005054002ADDF + E8E711D98EEDCF4A4FCF7533C3706C7DFA29E9EDE931337F6DD87CA71901F005 + 054002B57A7AF7FF9EDD3BCD08C3D5D5D5257B9EF3FFAC89AFBF734092510024 + CCDC79F365F294A966E60F3D8A65EDFF5B13877702E8EF1C2B04027EA1004818 + 5F9FCBD6A3583D9AC5C869E11487CB00BC1A18F00B0540C2F8FA6636DEFD7FEB + B4707AF6D92D66E6AF96F51B582110F0080540822C5DBE422634369A993FF459 + 76EEFE1F9D6D5BFC2FA07485C0E52BFD5B7A1A482A0A8004F1F514AC3ECBAECF + B4E3D66901A58F51FAAEA56D831901881A054042E8A9D7D5CD2D66E697383CCB + EE3B7D7C521FA3F41D2B0402FEA000488895AB9B53A7607DB47B07ABFFE5C333 + 3FF67F6D809A9A1A59BD769D99018812054042AC6DF5F3E6BF032FEE974B972E + 9A194663DFDEE7528B29F9EE8E0D9BCD084094280012A0AAAA3A75EAD547DBB9 + FB3F6F7411A59DDBB79A99BF6E5FB65CEAC78D33330051A1004880B5ADADA953 + AF3EE2F1BFFCDAF2B4FFF753E80A8177B0401010390A8004F075E5BF23870F49 + FB850B66867CD0272A2E5FBA6466FEE26900207A1400254E4FB52E5FE1E7B3D7 + 71B86B3D6EF432C0D6183C55316FFE0256080422460150E2D6AC6D91CAAA2A33 + F3CBD6189CAE8EA3B85C5669E1D5C040A428004A9CAFABB09D78F9B89C397DCA + CC904F07F6BF2017DBDBCDCC5F1B37B1443010250A8012D63871A22CBE7DA999 + F985D3FF85B52D262B04EAEA9400A2410150C2F4E63FBDE3DA477178777D9CFD + F8473F3023BFF9BA3A259004140025ACD9D3BBFFCF9E392DC78E1E31331482EE + 5FDDCFBE6B597F072B040211A10028517A87F5C2458BCDCC2FDBB6FABF746D29 + 88C31A0BE31B1ABCBD4C05943A0A8012E5F31DD6BB76F2EEFF6288CB65960D9B + EF322300C5440150A27CBDFB5FEF4ED7BBD451787A19E0F8B1A366E62F7D4DB5 + BEAE1A4071510094A059B3E7C88CDB669A995FE270777A2989C33B01F435D5FA + BA6A00C545015082F4E53FBEE2F47F71C5E5654BBEBEAE1A2865140025685253 + 9319F94597AAD577D5A378F4654B71B80C306FFE42331ABDFEFE7E33F24B1CD6 + 6840B2500094A0F3E7CE99913FF42FE57FF9CAFF4DBDAB1EC5F5D8A38F781B8A + 567777B7198DDE534FFAF90E84832FBD6446801FCA4CEF03FD5EB46951A24D1F + 0ED697D8EBDD41DA6A53AD69D97D32BDF9A1608C1CF486AACD77DD2DB366CF96 + 720F9EB1EEECEC94AD4F3F15FC0578C06C41B12D5CBC247563684DADFEBF915F + 3AAE5C0942FB87F2F2F16366CBE8B56DDC244B962CF5E6F77FF7CEEDB26FCF73 + 660B4AD2C9ED0FC9B9BD8F04A32ED3AE9BD613343DF2D12A5CDB0DD322470100 + 00C068C5B000E012000000094401000040025100000090401400000024100500 + 0000094401000040025100000090401400000024100500000009440100004002 + 5100000090401400000024100500000009440100004002510000009040140000 + 0024100500000009440100004002510000009040140000002410050000000944 + 0100004002510000009040140000002410050000000944010000400251000000 + 9040140000002410050000000944010000400251000000904014000000241005 + 0000000944010000400251000000904014000000241005000000094401000040 + 0251000000904014000000241005000000094401000040025100000090401400 + 000024100500000009440100004002510000009040312C00FA2E9A0100009E88 + 5F36C5B000E8EF340300003C11BF6C8A530170C3F40000F82A36591587022073 + 67F6769D31230000FC707336795F08F85E008477E00DE9E9E6120000C02FE96C + BA39B33C16974B00BA13D33BF2EA99F3A91E00005F0C64D3405E792E6E9700D2 + 3BB6AFFF6C7A0A0040C46EF49CD47F9A66795F04F85C00DC1CFC6941DFCB7D00 + 00003FF4F66B263919F5D3B172C75EF1B10070775EB6F10DE9B9762CB5050080 + A8F575B96700C299A5DCB137E2740F80ED6FC895978FA7A70000442C9D496EC8 + 7B17F6D9F87E09207BEBED3A1CF4000044AFE7DA4BC13FB3E755BA79292E3701 + 66B6EBD70E043D0000D1EBE93A14FCF3E6ACF29CAF0580DD716EAFAD3FD5771E + D73300D78306004094AE9B4C1AC8A87453E1DE2B3E150076A7B93B2CFBBCB7B7 + 477AAF1F4C6D0500202A9A459A496E46A50D358F5C1C2F01A42BACAB2777063D + 0000D14967D140366536AFC5E52640BB63B54FB7CEF3BB831E0080E8A4B36820 + 9B3233CB362FF97E0F80B26377870605C0D96DBA110080C8A4B328339FD26C76 + 2977EC0DDF2F01B83BD41D0705C0B9B3D2DF7B34180300507C9A419A453697B2 + 6796B77C2C00EC4EB33BCE9DDB9D9C6E1D279E097A00008A2F9D4199B9949959 + 2A3CF7866F05407807B93B30BC93FBE5EAE927831E0080E24B67D0CDD994995D + AEF03C5271B904106EBA83FBE4E2D1ADD277E35A300600A078347B3483348B06 + 423F5BF396CF0580DD717627BAD555BAF5767549D7F91F066300008A47B34733 + 285B366586BFEDBD13873300B6B7CDDDC97D72E9D077831E0080E249678F3DFA + B7CDCD2A657B2FC5F926C0F48EBF74F4292E0300008A463347B3C7CDA281E666 + 960ACFBD11A77B00DC1D6C5B9FF4765D93AED3DF09C60000149E668E66CFCDE1 + 6F9B9B5DDEF2BD00B0DC9DA93B5777FA406B3FF8F5A00700A0F0D29993994331 + 0A7ECBF79B00C3CDADB0060A81F643BBA5AF4797630400A070346B34733283DF + 6DD9B2CB4BBE1600E11D6677A2BB93EDCED7D62BE7F7FF5BD003005038E9ACE9 + 0D9A9B416E36650BFDF0DC0B71B80460779CDDA9DADC9D9DFE015C7CF1DF838F + 3A823100000510644C2A6B060D7E6DCAF6DE8AD34D80B66506BF6DDD57AFC8C5 + 438F05630000F24F3346B3269C3FD98B00DBBCE5FB3D0096BB336DF8BB45809E + 8EE995D3FBFE39E8AF070D00807CBA6E32269D3799E16F7B37AB2C77EC95385C + 02B0EC4EB53BD92D00D2EDFAC53372F92867010000F9A5D9A21913CE9DCC4CB2 + 39150B71B907C0EE503BB6E1EF1601E9AAECE4EE2F053D67010000F972DD64CB + 708EFE953BF6561CEE01B0EC0ED5A63B3B1CFEE9FEFAC5D372E9E8A3C1180080 + D1D34CD16C71B366207F6C1EB91965B963EFC4E51280BB636DCB5D049CDEF9F7 + C197F04400006094822C4965CAB0C3DF36EF5598DE7765A629B7B74D0B19DB97 + 4B5F77AF9455F7C8D8A63B82390000B7E6CC0B9F974B87B70423BDB4DC637A2D + 026CB3854038F8BD2F02E27206C0B23BD8B66C6701D2EDFCCE47A5BFE7683006 + 0060E43443344BDC6C19FAE83F36E2760940D97138FC330B80DEDE2E79F999BF + 08C600008C9C668866899B2D9999132E02943BF65ADCCE0028BB736DCB5D045C + 3CBC553ACEFC6730060060F8343B3443DC4CC9CC1A37F86D8B95381500EE0EB6 + 635B7DD922C0FE80F43A4DFA0776E2E9BF92BEBEB3C1180080A1696668760C04 + BF668A9B316EF664CBA65888CB4D8096BDE94FD971AEA6C54D99F475F7487FEF + 291937E355C11C0080C19DDAFE51B9F2F2BE60E4DEF8377060995904C42AF45D + 712B002C0DF85C7DB895CBB5732FCB988993A566FC92600E004076978F7F5D4E + 3EFBE5606483DF86BF5B00C4FEE85FC5F11E00CBEE6C6DF687A155996DF60795 + FEC19DDAF2D7D2D775381803007033CD08CD8A9B03DFCD9670F86B8BA5B89E01 + 507A746F7B3B5676EEB672E9EBE993AEF6E764C2AC9F0DFED895C13600008C9E + 2E39FAA3774967FB099D046DB0A3FF70F8C7B21088FB250065C7D97A6DF62C47 + B95CEFB824E595E765EC943BCD36000044CEEEFB73B9F0D24F8291867E77D06C + F0DB66CF0068D07306206236E05DEE363BD6365004749C3E24631AEAA566C272 + B30D009064978FFC8BBCBCE59F82911BFEE1A37F7BEADF0D7F2B964540295C02 + B0DCB91BFECA9D9749C7CB3BA5FEB6E55235E636FD10009050D7DAB7C8D1273E + 21376EE80B7FDCD3FEDA87EF01081FF9C732F8AD3817002A1CF2B9FACC7623F8 + 995D7DF92999306FB394574E08B6010092A6A7EB2539F29D774BCF755D3CCE86 + BF2D00EC917FAE53FF566C8B80B81700960DFB3077BB2D005499F4F5F44AC789 + 27A57EF6DD5251596FB6030092E07AD76939FA9D3F92AE8EF33A33CD1EF987C3 + 3FDBA9FF7021103BA5500084C3DF0D7A3510FAE1BEB7BB4BAE9DD92AE3666911 + 30C66C070094B29EEE7639F6C41FCBB5F663C12C1CFE1AFC3A76C3DF86BDDB62 + AF14CF00E41ABB068A809E6B97A5F3D433322E7526802200004A9986FFD1C7DF + 219D175E0A66E1F0D7DE3DFAB747FEE12240C5BE082895024069A86BD31F8A1D + 8785B7A5E714010050FAB287BF5B0468F0874FFDDBD0D7B115FBF057A55600B8 + BD2B5BF0BBDB38130000A52C77F8DBA3FE5C47FEB608502511FC562915002A5B + F80FD74011503FAB2528021ACC7600409C5DEF3A26C79FB83F08FF433A0B9A3E + EB1F2E02B21DFDDBF0B74D954C11506A05801AEA68DF75F3D7A68A80133F92FA + 69ABA4A266B2D90E0088A3EB97F7C9D1EFBD473ADB5FD659D0DCF0CF75F4EF86 + BE6DCAF625A1140B00E586FECD219F667F90E1CF835F83EE6B72E5F8F7A566CA + 3CA9A99B65B60200E2A4F3F40FE5C80F1E94EE8C47FDDCF0B77DAED3FE6EE097 + 54F8AB522D002C0D77FDA1DD1CF269B98B007D4FC0C503DF97EA71E532A671B5 + D90A008883F643FF2847BEFFE9E0EFF2CE603654F8673BEDAFBDD271C985BF2A + F502400DB708B032E7978FED92DEAE033266729B5454549BAD00001FF55CBF2A + A79EFDB09CDEF958301B2CF8131DFE2A0967006CAF3FC4E11601567AFBB50BC7 + A5E3C40F64FC8CE55251DD94DA0600F04B4FC7F372F8F177CB9513BB835938F4 + DDE01F6EF897B4A49C01B07DAE22C0FEA0DDCF753CF00BD0DBD521ED07FE5BAA + C6564AEDB8E522E5B98A09004051F5F6CBC5235F9123DFFBB8F45CD3EBFD6EE8 + BBC1AF637BB7BF06FD50E13F900125280905801A4E1160857FE03A4F6FBB71A3 + 5F2E1FDB215D97B6C9D819ABA4A2627C6A3B00201AA947FC9E7A50CEEEF98FE0 + EF687B87BFED6DF0DBE63EEA67833F91E1AF925200A8E11601FA99FB83777F19 + D2ADFBF259697FE93FA56A4C39670300200AF6A8FFFB1F93AE8C77FADBE077C7 + 36FCC3A7FC131BFE2A69C1E51601AA3C683AD6DE6D5A18559A5635681B37759E + 4C6F799BD44C680EE6008042EBBEB85D4E6EFD9C5C397D309869B0DB90CFD672 + 1DF5273AFC55128F5C7315016E21A005806DB608081703EEBC52262FBD47A6AC + 7C9394574D0FE600807CEBEF39296776FF9D9CDDF7BD60E6067FB808B0731BFC + E1237F0DF94487BF4A6201A0C24540B800081702F66C40B66260605B45456D50 + 04FC82342CFC75A9AA690CB60100464BDFE37FE9C09783F0FFBAF4F575055BDC + 80CF16FAB685833F5C00A84486BF4A6A0160D9E0576E11607BB708700B011BFC + EE78605B45759D4C59111402F37F954200006E512AF80F7E55CE3C1704FF757D + A18F0DF670E0E70AFEF0517FB6F04F5CF05B36FC922C5C00D8660B001DBB4580 + 5B0864067FB85554D448D3B2D7C8C4C5BF2495B5F3836D0080A1F4761D940BFB + FF4DCEEDFD7670C4AF77F4BBE16E5B38F4B5B9C1AFCD86BE1BFC6EE8DB3E9134 + DC30B01F6C6F835F9B2D046C0B1701831504039F352E6896490B7E51AA26B449 + 65957E0D00C0EAEDE9919E8B4FCBF9971E93F697B6EB9661360D7ADB6BB3811F + 0E7E1D2BC2DFA00018102E02DC02C0F66E11A0BD1BF2E14220BC2D3DAE6E9828 + 8DF35E25E317BC526A6B1705DB0020B9BABA5E94CB2F3D2EED87BE23D72F5D08 + B6B8A11E0EF9F0DCEDB305BFEDC3A19FF8F05736EC90E686BFEDDDE61601B610 + 083737F86D1FDE966EE3A6CE92FA5977CB84396D52597B7BB00D004A5F6FD7F3 + 72F1C8D3D271EC09B9725A9FE1D700B7CD0DF65C616F9BCE35E4759C2DF46D53 + E13EF16CD02193DD2F6E6F0B80703F542130D8D8B672A96D6C9271D35A65DCCC + D552DDB84AAAAAA604DB0120FE7A7ACEC8F5F65D72E5F84EB9726A8B74B59F0B + B6DAE00E07FA5063B7E97FC30DFE70F8AB700FC3061C6E66F78DDB879B2D00DC + 42205741609B5B00B85FEBFEFBE552376DBAD48D5F2A639A964ADDD4C5525639 + 47AAAAC7069F0180BF7435BE1BBD47A4F3F47EB9766E9F745E0EDAA993C12736 + A06D70BB216EC7B982DE36F7DF779B1BFAB6A9700F8786180667F791DBBB4D03 + DBF6B68503DD86BC6DB9B6B9FF8E6D03FF1BB54D9364CC8479525E33436AC74E + 95DA868952553F55CA2BC74B7FD918A92A6B0AEA0BFD5A00C83FBD51EF86B44B + F98D6BD2DF7B597A3A4E4BD7A50BD275F5B4F4779F906B170F49D7395D8C4703 + D706B31BD46E78BBC16EB7E7DA16FE77B5B9FF1B6E53E11E5968B86068763FB9 + FBCB06ED40400F8CDD66033D1CF2E1EDEEE7D95AF87FC736657BE58E01209FDC + 407543D66D6E38E76AD9C23D5BD0BB63DBC2FF3BB629DB2B778C2C088B910907 + AEF6EED80D6837B4B5650BF8F0B66C5FE3FE37EC7F3BDC94ED953B06807CC816 + AEDA676B6E58DBB16DE1501F6A6EFF1BEE7F5B7B65B7A9708F211014B7261CBA + DA87C7DADCD0B6213EDC16FE77B2FD37953B56EE1800F2C90DD770F86A0B07B5 + 6DE1F9705AB6FFA636151EBB3D8689B0B875D94257FBF0D86D6EB0DBDE36779E + ED6BC363DB943B0680420B07B0DBB285B7DB87C7EEDCEDC34D85C7963BC63011 + 1AA3E7EE4337906D6FC71ADEE1DE7EAEE3F0DCED076B961DBBDB00209F7285EF + 602D5BB0EB383C57E1DE7EAECDCA35C6081116F9932D8C958EEDDC8EB3CDB565 + 0B7CBB4DE958D9CF54B8078042B3C1EBF676EC86B71BF2B665DBA672CDAD5C63 + DC2242A330DCFD1A1EDBB91D87E7CAFD2C5B53E15EB9630028846C41ECF68335 + 956D9CED33956B8C3C20300A2B5738DB71B63EFC75D93E0BF7CA1D034021650B + 66B7CF3656E1CFB2F52AD71879446814CF60616DE7E15E0D771B004461B0001F + 6C9BFB99CAF6B5282002241AE1FD9E6B3EDCAF0380A80C16E4CACE87FB752812 + 02247AD97E06C3D9C6CF0E802F8613E6C3DD86222144FC93EB67C2CF0A405CE4 + 0A7602DF23FAEA590000F289A007000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000203A - 22FF1FC3205EB4B2308BA90000000049454E44AE426082} + 000000000000000000000000000000000000000000000000000000203A22FF1F + 966E5DAFD3E224E10000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512.png' @@ -852,11 +852,11 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000004000000040008060000007F1D2B 83000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 73B549444154785EEDFD0BB465D75918E8AE7AA95CA5A755256C3D4A021B64C9 - 3CAA4A184CA924752795424A8FA443C0302E3DA003D70CB8197DE981210C6E63 - BA496EC7A48943C36D46060D17F348E8660C420C09C131767C435B16E2614B25 - 03B2243FF5B0655B25590F4BB2542AD5DDFFD97BFACC33CF5CFB71CE3EFBECBD - D7F78D3199FF9C6B9F129C33D7E1FCFF9A6BAD06000000000000000000000000 + 73A949444154785EEDFD0BB465D75918E8AE7AA954A5A755256CBDC10659328F + AA1206BB54926E2795424A8FA443C0309A1ED0816B06DC8CBEF4C01006B771BA + 496EC7A41D8786DB8C0C1A2EE691709B310821100231763C422C0B99604B2503 + B2243FF5B0655B25590FEB592AD5DDFFD97BFACC33CF5CFB71CE3EFBECBDD7F7 + 8D3199FF9C6B9F129C33D7E1FCFF9A6BAD060000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -866,909 +866,909 @@ object AboutForm: TAboutForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000000000080CE + D831E881D970CE0100AC7576D0035B4C3202D3E59C0200982E05029812C90A6C + CC66CE1DE71D0040DF66927B850198904404469BF43C715E01004CC7A449BEA2 + 000C215181F5C63D2F367AFE38EF0000FA369AB08FFB750A02909188C078E7C1 + 24E7CAA8CF3AEF0000FA4625E89324F0E37C5641804E9388D045D34AF8DB3E33 + AD7F1F0060996D26619F56B2AF2040A74842E88A516B7D23C7877DCDA49F6FB3 + 91AF0100D84E1B49AA6B5F33ECDF99F4F361B3C761E1492E58669326E8B9F278 + DBE737FAB9D0F6590080653749025FCE6FF673C9B0E3A3BE161692048465336C + 4D4F72ACF6D97C6EB3C793DA1C00C032AB25D7A3E6367B3CD43E936CF4182C14 + C907CB60D83A1EF758ED73696E9263F978D8D785DAF1716CF4EB0000A66DA3C9 + 71FE75B57F63D8F1341EF675C38E85DAF164A3C760EE492458646DEB77DCF9B6 + F166E6DBE230EC586ED831008045326E325D7EAEED588ADB3E3FE97C528E9349 + E761AE493458346D6B769CF9F233693CCEFC34E6421E27E3CE01002C925A923C + 6AAE164F6B2E8C9A0FE5B164D279983B920C1645DB5A1D355F1EAFCD8F3337AA + 0FE37C26D4BEA666D831008079362C291E966CA7715B1F467DA6ECC3B873A16D + 3E99741EE686048379D6B63EC799AFC5C3E66A7D8A433E1ED58788CB71DE27A3 + C600008BAE2DC14ED2389F8FB81C8FEA531CF2F1A83E0C9B0B799C9B741EB695 + 648379D4B62E6BF3F95C2D2EE7DAC6B5BE2D2EFB61C7F23ED4E69272AEF61900 + 80455026C0B58438CDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2A43617DA + E6615B483098276DEB7158B25C1E8B713E376C3CCDB8ECDB8E35CDE547AE6ACE + 3970D54ABCF7FCA32BFD8E1D1736BBF6BEE12BFF3F62E7D95EBCE7C2FE000060 + D19C7EBA7965C7BDFDB8F767D09917EF6DCE9E7D7A65F8E297EF5CE95F7AFCE1 + E673773FBC12F7A56439EF6B73A99F761C468D431A97F3A13617DAE661A65693 + 12D83EB575386AAE160FEBC78D6B73213F56CE85B5F1E547AE5C49F223C15F49 + EECF794373E6EC95CD9E3D570E3E030040387DFA9166D78E479A332FF58B0451 + 20E817071EE91DCD93ED61716D2EE4C7CAB9302C1ED687B63819770E6626252C + B01D6AEB6FD85C792CC6F95C3E1E154F6FEEABFFC6D166EF796F6876ECFEFA66 + D7EE2B9B9DBBDF3C380600C066BCF2F2879A332F3FD29C7DF9AF9A179FBDB7F9 + CC7F8CDD0329898E3E6F611A73A12D0EE538E49F2D8D3B075B2E2531304BB575 + 376C2E3F56CE45DF36571BA7B99D83BE3C965A583F7FF9E1AB9AF3AF7C73B373 + CFD737BBF7BEB9D9B1EB0DBD79000066E5EC997B9B975FFC50F3CAE9BF6ABEFC + C8879ACF9D8CDB0822A12E5BA8CD470BAF0CFADAB1DA38F5B5B9A436978C3B07 + 5B26253A300BB5F5366C2E3F56CE453F2C2E5B1895F4AF6F91F09F77C5D166F7 + FE6F6BCEEE78832DFC000073266E21D871F6DEE6E5E7DEDB3CFBD93B871404DA + 5A682B06A41686C5791F6A73C9B873307591E4C02C946BADB6F6D25C7E2CE2DA + 38CD95E37193FCF4B9BCDFD1BCEAB5173597BCFE68B3A797F037BBDE2CE10700 + 5830511068CE7CA839FDDC7B9B27EEBFB3F9D2A79EEACD46829D92FCBC8FF961 + 2DD48A03A11C87DA38EF73E55CED3330559108C156AAADB1722E8DF3F988CBF9 + 34571B8FD3D626FBA9C555FE0BAEB9B5D979CE9B9BDDE7F4127F000096C6CB2F + BDB779E5A50F35CF3CF8C795DD01931403CA166AE3D4A73894C793721C6A7330 + 159100C156A8ADAD722E8DF3F988F3F95A9C12F93497DADAC47E6DAB24FD57DF + D6ECD9FF9DEEE30700E888787EC0E9E7FE4DF3CC43EF692906E4E3BCD58E8572 + 7740688B433E9F2BC7A136079B12C9104C536D4D9573699CCF479CCF97713E37 + 7EA29FCFC5F6FE83D7DDD6ECBDF00724FD00001D17C580179FFEB5E6D47DEF29 + 6E13883E6FA30A03A19C0F6D71C8E773E538D4E660432239826929D7536D7DA5 + A43CC9C7B578542B13FEF5E3D7FDCD5B9BBD177C57B36BCF89DE180000D63A73 + FA7DCD8BCFFCEBE693FFE18F7BA332E11F351ED6425B1CCA7152CED53E03138B + 040936ABB68ECAB934AEF5A9857CDCD68625FDFDF8B243573717BDF6FFDE347B + BECD83FC000018CBCA03044FBFB779EA53BFDA3C7ACF43BD9948BCF3847FA3C5 + 80501BD7FAA41C87DA1C8C2D1226D88C720DB58D87F5E3B4F5497E2D7EDDB7DD + D6ECBDF82DAEF60300B0292BBB029EFC9DE693EF7D4F6FD4560418561C18D6C2 + A83E193586B145D2041B515B3BE55C4ACC937C9CE251AD96ECAFED2FFE9A8B9B + 577FE377353BCEFD0157FB010098AAD81570F6855F6BBEF017FFBA79F2D34FF6 + 6622014FC97ED997F1A816F23894E3508E436D0E868A240A2655AE9BB671DE97 + 713E9727F9A98D4AFC7736971DBAAAB9E8B5DFD54BFA7FA069F65CD89B030080 + 2D72FAE9E6F4E95F6B3E7FF2DDCD939F8E870646A23F692120E642391FCA38EF + 935163182A922918576DBDE47329AEF5A9857C1CAD96ECE7F1FAC4FFE2AF7B5B + B37BEF77F6C60000305B2FBFF86F9A273FFE73CDA3F7C4AB0423A92F0B0079F2 + DF16A7166AE35A1FF238A9CDC13A9154C138CAB5D236CEFB326E6BB544BFEC7B + 89FF375DDD5C7CED8F4AFC0100980B2B8580077EBE79F4A3F1C0C048EECB0240 + 5B3FAC8532CEFB64D418D689E40A4629D7493E4E71AD1FD552829F62893F0000 + 8B67BC42409EFCE7F1B016DAFA90C7A11CC31A9164419B727DB48DF3BE8C53CB + 93FD7C5C4FFAA3C5C3FD5E73E4479B3DFB7EA037060080F976FAF95F6B3E7FF7 + CF0F1E169892FE94ECB7F5A995E368A18CF33E193586159170414DB9366AE334 + 97F76D2D25F879BC3EE98FF14AE27FF8AD1EEE0700C0E259F3B0C0FCAD01A9A5 + 71DE9771AD85BC4F71326A0C2BC91794CA75918F539CF7659C5A4AF06BF16AC2 + 9F8FBFEEBFFEAE66CF453FDAECDA79456F0C00008BE9CC2B9F6D4E3FF5F3CDC7 + FFE85FF74629F9CF13FF7C9CE66A716AA18C43EA431E87724CC745F205496D3D + E47329CEFB612D25F8292E13FED5F88A1BBFA1B9F88AFFA5D979CE9B7A630000 + 580EAFBCF467CD939FFD7F379FFDD3BF8CD1A04562DE16A7718ADB5A28FB90C7 + 496D8E0E8A040C42B9166AE334578B534B897D1EAF4DF6F3E63E7F0000BAA0FD + F900A945925EF6659C5A688B9351633A28923228D7413E4E71DEE72DA4043F5A + 19A7568E7736AFFBB65B9BFD17BFCB7DFE000074C3E9A79BE79EFC89E693EFFD + E3DE2025FEA945825E8ED35C1E87344E2D947DC8E3508EE99848CAE8B6720DE4 + E314E77D5BCB93FCB25FDBE2B57E97BCFE9FDBEE0F004027C56D014FDCFF0F8A + D706E62D12F5B6BEAD85B20F791CCA311DB26BD0D34D91A0E7F271C4794B097D + 6DBE6CB1AE529FB7DDCDB57FFB079B0B2FFB3F9A1DE7BCAE37060080EED9B1EB + CA66FF256F692E7EEDCBCDE30FDC9366B316521F6A73B9DA679351633AC40FBF + BB46FD924873791C497DEAD37C8AA32FE3D576D9375ED35C72DDBB5CF5070080 + CCCA6E80FB7EA279F42F1E8C51A5C515FB328E3EC521F5693EE471928FCB6374 + 405C95A55B52E29E94717E3C1FE7C97DEA538B7594C779DBDD7CDD7FFDDDCD85 + 57FC9FAEFA030040A1BF1BE03B9B8BAE79A279E2E3F7A5D9AC25B5B8EC73B563 + 655CFB3A96981F78B7943FEFF21740D9D75A24F9655F6FF184FFCBBFE59F37BB + F69CE88D01008061CE9C7E5FF3B93FFF0743DE14905A5CBD2FFB5A0B651FF238 + 9463965424707443F9B3CEC7298E3EB590E248E8CB3825FA29CE7701EC6CAEF9 + 6B3736E7BDE65DCDAE9D57F4C60000C0584E3FDD3CFDD8FFA379F03FFD696F90 + 27FD67067D24EB692EC5D1977148713E4EF23894639650246D2CBF48D273F938 + E2B2853CB94FF3AB09FE6ACBB7FBF7DB757FE7C79AFD07FE59B37387D7FB0100 + C04476ED6DF65EF09DCD25AFDDD99CBAFFCF7A13F9DFE8A94FDAC6D147429F1F + 1FF76B59627EC8CB6FD8891D711AA7B8D622D14F7D7BBBF8AB5FD55CF12DBFE4 + 417F00003005F180C0CFFEF90F374F7EE64B311AD122E14F7D5B0B791CF23894 + 63964824752CAFF2E79B8F234EE314972D12FBB22F5B5CF5DFD95C7DF41B9A8B + AEFABF9A668FABFE00003035A79F6E9E7AF8BF6B1EBAF32F7B8348F0D3AD0065 + 8BC4BDEC6B2DE471C8E3508E591291BCB19C2261CFE5E388D338C5658BE43EF5 + 29D12FDBEE953E9EF27FFEE5BFD60BF7F6C60000C0D4F4FEC63EF755FF5D73D1 + 559F6B9EF8F8C77A13F1377AC8FF764F7349392E8DFAFCA8AF67414512C7F219 + 7602479CC6292E5B4AFA6B6D6D11E0FAB7FC6C73CEF9FF632F060000B6CAEE7D + 279A03AFBFBA3975EF7F1CCCA4BFDD6BDAE673E567468D59027EA8CB67D8891B + 711AA7386F91E0A73E8F23D94F73FDF1C55F7D7173E59B7FABD9B1EBFADE1800 + 009885B3673ED63CF2A1EF699EFC4CBC2AB0BC1D609C3705E42DE471C8E3508E + 596076002C9748D873F938E2344E716A29B1CFE37EA2BF36F9EF8FE37EFF03DF + F85BCDCE5DAFED8D01008059D9B1F3D2E6FC2BFF76B3EF82FFD23CF5C8A998E9 + 1F5891FEBE2FB5CD87727ED49805A600B03C869DA811A7718A538BC43E8F6B2D + 1502FAC97F3CEC6FE7EE4B7B63000060D6E275DBE79EFFB79A732FBC7D500408 + F1F7FC286D9F29E7478D59500A00CB61D8091A711AA738B548EE53DFD65693FF + AFFD9B1EF60700007361F070C00BAF7CB479E213F9C301DBA4E36D9F2BE7478D + 59400A008B6FD88919711AA738B548EECB3E6FAB897F8C23F9DF77C93B7B3100 + 00302FF6EC3B312802DCDB1BC5DFF521F5A5718F27A3C62C180580C536EC848C + 388D539C5A9EF4A73E6F79F2DF7FD2FFDE0B3CE91F0000E6511401D6BF21A04D + 3AD6F699727ED49805A200B0B8869D8811A7718A53CB93FED4D712FFFEF8FAB7 + FCF366F7DEEFE8C50000C0BCDAB9FBFAE6C0EBAFAA1401529F1B762C94F3A3C6 + 2C080580C5959F74659CC6294E2D4FFA539FDA6AD29F7AC93F00002C8ED91601 + 58400A008B293FF9CA388D539C5A24F5659F9AE41F000096C1EC8A006D5FC31C + 5300583C6D275DC4699CE2D422A92FFBD4F2E43FDA6EC93F00002CB0D522C0FB + 073349E402A534573B16CAF97CDCF635CC290580C5D276B2459CC6294E2D4FFA + 539F5A99FCC795FF7749FE010060C1ADDF0990444E504A73B563A19CCFC76D5F + C31C5200581C6D2759C4699CE2D4F2A43FF5A949FE010060992902505000580C + 6D275BDED75A2DF14F497FEA25FF0000B0AC262B028CA3EDEB36FAEF31430A00 + 8B213F99529CF7B516097EEAF326F90700802E99BC08D0369FA4E3A33EC79C51 + 00987FF94955C6790B91D8A7719EF4E72D25FE11EF6EAEFDF61F6DCED9F7FDBD + 18000058565104B8F8753B9BC7EFFB2FBDD1D95E4B39C438867D3E9F9FE4DF64 + 1B2800CCB7B69329E2348E443EF5693E25FB65CB93FF5DCDD7FECDEF6ACEBDE8 + EDBD1800005876BBCF795373E1959F6B9EF8C4C70633798E314C7C2E15016AC5 + 807C3CEEBFC9365000985F6D2751C4699CE248E8F3B8D6D627FFFB2E79672F06 + 0000BA62CFBE139B2C0224E5D7E5E371FF4D664C01603EB59D4CD197716A29D1 + CFE394F0A7B8DF2E7FF3373417BEE6FFD39BDEDB1B0300005DB2E79C3737BBCF + FF60F3CC23A70633A55AA29FCF25E958CDB0636C130580F9949F2C29CEFBB295 + 897F9EF4A7BEDF5EF30D573707AFFD9D5E78416F0C000074CECEBDCDFE8BFE56 + 2F53F8A3E6CB5F7C6630394AE41B6DD2B1619F610E2800CC9FFCA429E35A8B04 + 3FF5655B5B00B8E89A5735977DF3AF363B765DD11B0300009D1545804BDFD4BC + F8CC1F352F3EF5E2607294C83B46C93F33CEE799A1480E991F6D274BC4699CF7 + 6D6D7DF21FED8A6FF967BDE4FFFA5E0C0000745DE4069123E439C3DA5CA2966B + A416F23EC5A12D669BC50F96F9513B51A22FE3FC648CB86CF9C9BB7BA5BFF6EF + BCADD9B3FFBFEDC50000007D3B77BFB6B9F8B53B9BC7EFFFB3DE28F28BDABDFE + 35E56763CC9C5300981FF90993E2BC2F5B99F4E72D1500FAED6B8EDFDAECBFE4 + 1FF762000080B5769FF3ADCD795F757FF3E4A73F359819475BA1207295BC0F79 + CC365200980F6D2747C4B516497EEAF3A43F4FFE23DEDD5CF5A66F682EBCE217 + 7B434FFC070000EACED9774BB3F7BC0F364F7F36DE0C10C97DE41BB932E12F8F + D7E49F19E7F36C310580F9904E86F20449E348E6531F73D197AD2C00EC6A2EBA + FA55CD816FF8C566E76E0FFD03000086D8B9B7D97DC191E6F4440F054C52C1A0 + 563828C76C230580ED979F10298EBE8C23B9CFE3BCA5A43F8F7737AFFD1BFF6B + B37BEFCDBD18000060B89DBB0E36E7BDFAAB9A531F7B7F6F54DBE25F9B0B91A3 + E4C7625CD336CF8C28006CAFFC0428E35A2B13FFD452D2BFDABEF6B6B7347B2F + FC915E0C0000309E9DBBAF6F2EBCE273CD139FB86F30338EB6C24012B94C92C7 + CC9802C0F64A8BBF3C21D23892FB344E7199F8A77EB55DF6ADDFD85C74D9CFF5 + 0EB9EF1F000098CC9EBD6F6A76EDBFA3F9F2671F1BCC94CA843FE52F491C2FE7 + CA31DB209247B647ED0488B9349FF765CB8B0079EB17002EFEEAFFADD75DD08B + 01000026D4CB2556728AAF5C64ACE51ED16AB94AC8FB14E76A73CC40FC3099BD + 7CC19771ADD54EB6FC648C77FDF7C7AFFFF6FFB9D973EEF15E0C0000B031F13C + 8057BDEEA2E6F1FB6E1FCC84FCCA7F6DDBBF5B01E69C02C0F6A82DFCE8531C49 + 7D1AA7384FFC53BF36BEFAFF76B439EFA0F7FD0300009BB7EB9C43CDB997FC79 + F3D4839F1DCC8C4AFA533E93C4B1728E6D14C923B3959F00296E9B2B5BFCBC52 + 9F5ABF0870E155AF6ACEBF3CB6E90000004C47E418916BE4B9C76ACB7394B285 + D4876173CC48FCB0D81EE5628F71DE428ACB136C7DBBEC9B7FA4D9B5D3FBFE01 + 0080E9891C23728D5A0ED26F65BE122DA4389F4BCA313312151C66275FE829CE + 4F88FCA4294FA6B5DBFD57DBEEC1D6FF7FD48B010000A6AB7F2BC08707B702B4 + DDE7BFD15B01DAE6D9029150321BF9C2AE2DF234177D1997C580D576E1551737 + E75FFE4F7B310000C0D6889C23728F5A4EB236678916CAB894CFD58EB305E287 + C4F6492745DE42F4B513AA6CBB6CFD070000B6DCEAAD00696772D96A394C88BE + 6C6C93F8C1B0F5F2459EE2DAE24F7379CB4FA2BCF592FF6FFDFAE69CF3FEFB5E + 0C0000B0B522F7881CA4BD0810AD96D3E4F2B9FC58F939B640FC80989DDAA24E + 27C0B0964EA4FCC4DAD95CFCD5B6FE030000B373D1D53FD5FB9F6BF392B539CB + A856AACDB145A272C3D6CA17748AF3C59FE2F2E429AB6A315E6D5FFBB77EA0D9 + BBFFEFF662000080D9D8B5FB8AE6C26BBEDC3CF1C0C9C14C8887FCA596E471C8 + C729172AB5CD33259158321BB5C51C73790BF9382F00ACB60BAF7C55B3EFFCFF + 672F06000098ADC8452227A9E52AFD96E734211FA7B95C6D8E2D103F1CB64EDB + E24EF3294EAD76D2E473FD76D91B7BC9FFAE0B7A310000C08CF57291959CA492 + AB0CCF6D520B799CABCD3125F1C360EB0D5BD869E1972D3F6156DB575D7FB507 + FF010000DB2A7292C84D6A394BBFD5729C6821F5B9DA1C53163F18B646DBA2CE + 177D19A7969F3429EEB74BBEDE83FF000080EDD7CF4DD6E62BEBF399BC85B638 + 579B630AE287C2D61AB6A0D382CF5B7EA2A413A7DFAEBAE5CDCD9EBDDFD28B01 + 0000B657E42691A394794B3DB7C95B487DAE36C714C50F84E96B5BCCF9622FE3 + BC95274F3F3EFF35FF53AF070000980FFD1C657DEEB23A2E5B688B73B5393629 + 7E286C9D610B392DF4BC9527C9EAC9F3BA5BBFB3D9BDE7BA5E0C0000301F2247 + 895C25CF5DD6E734F938B590FA5C6D8E29891F06D3D5B688F3455EC6D1D28991 + 4E9AB56DDF255EFB070000CC9F7EAE52CF63D6E63AA985B638579B6313E207C1 + D618B680D3024F2D3F31D6B7D7DDFA1DCD8E9D97F762000080F912B94AE42CB5 + 5CA6DFF29C276F21F5B9DA1C53103F04A6A76DF1E68BBB8CDBDAEA09E3EA3F00 + 0030CFD6EF02A8E538790B6D71AE36C706C50F86E91BB670D3C24E2D9D1CF9C9 + B2DA5CFD070000E69D5D000B217E004C47DBA2CD177519B7B5D593C4D57F0000 + 6011F47397B5F9CCF016DAE25C6D8E0D500098BE610B362DE8D4D249914E90B5 + CDD57F00006051D80530F7E29BCFE6B52DD67C3197715B5B3D415CFD07000016 + 896701CCB5F881B0B5CA855CB6FCE4586D57DDFC2657FF0100808512394CE432 + B51CA7DF6A3951B4907AB648FC00989E7CE10E8BDBDAEA8971DEABFF875E0F00 + 00B058FAB9CC6A6E53CF7DF21686C54C49FC30D89C610B323F9616716AE944C8 + 4F8C7EBBF25BAE6FF6ECFD965E0C0000B0582297899CA696EBACCD85F296E471 + 69D831C610DF78A663D442ADB57CE1AFC6E75FF5F77A3D0000C062EAE734C3F3 + 9EF5ADCDB0634C400160736A0B315FC0790B292E177D1AEF6C2EBCF2A266CFBE + BFD38B0100001653E43491DBE4B94E3D078A16F263792BD5E618537CD3D95A69 + E1B62DF8BCDFD9BCFA50BC3603000060B1F5739B7E9E53CF8152CBC76CA1F846 + B37969A1E68BB6B680D35C6AF909D06F7B2FFCBE5E0F0000B0D8FAB9CD6AAEB3 + 3607CA5B2E9F2B633629BEF96CCCB005582ED8B6969F083B9AAB6EFE56AFFE03 + 00009642FF9580DF1AD1A0ADCD7FDA5B487DCDB0630CA100B079B5C5572EDCDA + 385FF8FD13E1BC4BFF6EAF070000580EFD1CA74CFCF338A4B81C976A734C20BE + F14C475AA4F9A2CCE7A2A5855E2EFE9DCD055778F81F0000B05C22C7895C27E5 + 3DC373A3D492DA1C9B10DF6C2637CE02CC176BDECA45DF6F5FF5F57FA3D70300 + 002C977EAEB39AFBD473A3B28D32CE6728C4379C8D4B8B2E5FA4799CA4B9BCAD + 5DEC7B5FE5E17F0000C0F2E9E73AEDB9D06ACBE57365CC0629004C57B940DB5A + 5AF0D1EF6C2EFDFAAB9A5DBB5FDF8B010000964BE43A91F3A4FC676D4E34AC85 + D43305F14D6732E32EC0DAC2ADB78BAFFEEBBD1E00006039F5739E7A3ED46FA1 + 1C8F32EEE7185000D8B87291863C4ED25CD952F56B67B3E7C26FEFF5000000CB + A99FF3ACE640F51C295A2E9F2B633620BEF14C47B930DBDADA057FE9D75F69FB + 3F0000B0D4FAB7015CD98BEA79517B0BA9679314002633EEC2AB2DD868F902EF + 2FF88BAF39DEEB010000965B3FF72913FF3C0E294EE351C6FD1C3DF1CD6672E5 + E20C799CC4382DE87C61AFB63D1778F73F0000B0FCFAB9CFFA9C687DCE944B9F + 0965CC841400A6A35C90790B791FDFF3FEC2BEE43ADBFF0100806E88DC2772A0 + 322FEACBFBB285D4B3090A00E31B77C1D5166AB4B4B857C7075E6BFB3F0000D0 + 1DFD1C687D6EB41A87FCD838C6FD5CE729004CAEB6B86A8B33CDB5B7DDFBBFA5 + D703000074433F07AAE7476B5BAE36176A730CA100B0716911E68B2E9FABB5B5 + 95AEDD7BFF5AAF070000E8867E0ED49E23D55B529B63020A00D3932FC6B420DB + E7BEFABFB2FD1F0000E89E7E2EB43E471A3DC72629008C67230BAE5CB0D1E2FB + DD6F7B2EFAD65E0F0000D02DFD5C683537AAE74E93DAC8D7744E7CB3195F5A54 + F9A24C716DDCDEF69CFBC65E0F0000D02DFD5CA89E27AD6FA16D1C52CF181400 + 36A75C74B57E7DBBE0F20BBDFE0F0000E8A4C8852227AAE54AFD1646F56C8002 + C0F4C4424C2DE4FDDA76E03ADBFF010080EEEAE744EB73A5BEBCCFE7D9240580 + D1862DB6B6C598E6EB6DCF055EFF07000074573F27AAE74BABADD4369F0C3B46 + 8F02C0F8D262AA2DBA34374EDBE9FE7F0000A0D3FA3951E4A3B59CA9ADE5F2B9 + F2182D140036AEB6D8D222CC5B583B76FF3F0000D065AB39D1DA5C69ED389F0F + 29CEE7988002C074940B3389B9BCAAB5B3B9F298FBFF010000FAB9D1DA7CA9DF + 97D27136490160FAD2E2CC17E96ABCFF12F7FF030000ACE646B5DC299F634A14 + 00861BB6E0CA0599C6C3DACE66D75EDBFF010000FAB951BE0360584BCA7169D8 + B1CE5300184F5A44B5C596CFD53E97E2FE78D71E0500000080D5DC686DCEB43E + 4E7D8A93DAE718420160636A8BAC9C8B7E6D3BFFB28B9A1D3B2FEFC5000000DD + 16B951E44865DED46FA1EC436D8E3129006C5E2CBC7C11B68D773417BFD6D57F + 000080A49F23ADCD9BFADAC66C8202C0C6958BAFB638D7B6BD175ED7EB010000 + 08FD1CA99E3FF5E571528E19930240BB618BAA5C8CF9676BC7FA6DCF3E3B0000 + 0000929DE7C42DD2EB73A7BED48761C74AC38E759A02C068F9021B6791B57D6E + 47B373F71583180000803D7BD30E80529E57D58E27E37E8E1E0580C9D5165739 + 17FDFAB673E7B5BD1E000080D0CF91EAF9535FD987DA1C635000D89C5870F9E2 + 6B1BC71B002E6876ECBA200E000000D0133952E44A65FED4D73666831400A6AF + BE482F7EAD070002000094FAB9D2FA1C6A75CC9428006C4CB910CB05BABEDFB5 + FBC2410C000040D2CF95DA73A9D5962BC78C4101A06ED8624AC7D2226CFBECDA + E37B2FF40600000080D26AAEB436875AAF3CDEF6B930EC586729000C972FAC71 + 1657FA5CFED9FE78E7EE78BD050000006BE5CF0048D238CDE5C74AE37EAEF314 + 0026535B54E55CDEAFC60A00000000EBED3E377600D4F3A87A1F6A738CA000B0 + 71B1D0DA165B3AB6FA991DAF780300000040BBF579D47AC38E318202C0748C5E + A43BCF8DF75B02000090DB75CE37F7FE677B2E353CD762020A00D3952FCEBC01 + 0000305C2D978AC69428004CAE5C80E5C25C7FFCE0D75D318801000028F573A6 + 5AAE95FAD472E59811140036A76DC1AD5DA0E75EEA01800000006D5673A6B5B9 + D47A6DF38C410160BD610B2A1D6B5B90F5AF3D3BF4DF040000E8B6F69CA92DEF + 4AF3C372AD61C73A490160F3862DBC98DBD1ECDE737E7F080000C03AFD9CA99F + 3FAD372CE762020A00A3B52DC25C7E3C7D3ECDED68F65E70DD20060000A0D4CF + 995673A8B53955C8E39AF2F3542800B42B174F6D318DFA8C0508000030BE8DE4 + 58F2B03129004C2E2DA6B64515F3A901000030995139559A97734D48016063CA + 85366C71020000B071B57C4BFEB5010A009B376AE15998000000A3C9ADB69802 + C0D6EA2FD05DE7BC7EA5070000A062CFE5834092BF851400A62B5FACABF18E5D + 5E03080000D066F7EECB0651A8E7556C9A02C0F4A48519BD050B00003099328F + 4A6339D5942800000000400728006C4E5E95AA51A902000018DFA8FC4A8EB509 + 0A00000000D0010A009369AB36A5F9FCB8CA140000C0E46A79555B7E25EF9A80 + 02C0F4C5022C16E1598B120000A0D5BA9CA99257B1590A00000000D0010A0000 + 0000D0010A00000000D0010A00000000D0010A001B37EE03293CB80200006034 + 39D6165300000000800E5000000000800E5000000000800E5000000000800E50 + 00000000800E5000000000800E5000000000800E5000000000800E5000000000 + 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 + 000000800E5000000000800E5000000000800E5000000000800E500000000080 + 0E5000000000800E5000000000800E5000000000800E5000000000800E500000 + 0000800E5000000000800E5000000000800E5000000000800E5000000000800E + 5000000000800E5000000000800E5000000000800E5000000000800E50000000 + 00800E5000000000800E5000000000800E5000000000800E5000000000800E50 + 00000000800E5000000000800E5000000000800E5000000000800E5000000000 + 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 + 000000800E5000000000800E5000000000800E5000000000800E500000000080 + 0E5000000000800E5000000000800E5000000000800ED831E85995BE27799F5A + 144C52BF2BEB53DB5D697B9A37BCE5579A5D7B6FE8C500AD8EDE744B73F0E0C1 + C1885978EEB9E79A07EEFB58F3F0430F0E6600806D71E6C5BB9A7B7FE7077BD1 + E95E7BB9D2CE64ED95AC3F3B18479F5A287B7A5292CBAAF43DC9FBD4140080A9 + DBBF7F7FF3633FF9F6E6AAABAF19CC306B5104F8C55FF8B995820000B00D1400 + 6622125800B6D1777FCFF749FEB7D9B5D75DDFFCBDB7FEF0600400B09C140000 + B6D9A11BBE7910B19D0EF77E0EB11B030060592900006C3349E7FC3874C31B07 + 1100C0F25100008081C347ECC6000096970200000CC46D00070E5E3A1801002C + 17050000C844110000601929000040E6E8B19B071100C072510000804CBC92D1 + 6D0000C03252000080C2F113B70E220080E5A100000085C35E0708002C210500 + 806D14DBCD993F070E1EF4B30100968E0200C036DAB77FFF2062DE1C3F71DB20 + 0200580E0A00005071C8EB00018025A30000B08D3C6D7E7EEDDFBFBF39AC0800 + 002C110500806D74F0E0C141C43C3A7CC4C3000180E5A10000002D8EDE74F3CA + 4E00008065A00000B08DAE7DFDF583887975C82B01018025A1000000431C3EE2 + 390000C072500000D846577AD7FCDC8B07017A582300B00C140000B691FBCB17 + 83B7010000CB400100609B5C7B9DFBFF17C5D163370F220080C5A50000B04D5C + FD5F1C575D7D8DDB00008085A70000B04D22A96471DC78935D0000C062530000 + D826575EA500B0488E1EBB651001002C260500806D72E0E0C141C422889F975D + 1B00C022530000D80671FFBF6472F178182000B0C8140000B6C1A11BDE388858 + 24476F721B0000B0B8140000B6C1E123DE2BBF8862E7C6E11BFCEC0080C5A400 + 00306392C8C576F888DD1B00C0625200009831DBFF17DBA11BBE79A5880300B0 + 6814000066CCF6FFC516C9BF220E00B08814000066C8F6FFE5A08803002C2205 + 00801972E578394411C76D0000C0A25100009821578E9787570202008B460100 + 60866CFF5F1E478FDD3C88000016830200C08C48FE97CB55575FD31C3878E960 + 040030FF14000066C4FBE3978FA20E00B0481400006624DE1FCF72397EE2B641 + 040030FF14000066C053E397D3818307576E05000058040A00003360FBFFF2F2 + 30400060512800006CB1B8F27FF42649E2B23A7C83E20E00B018140000B6D821 + 09E2528BDB003C0C100058040A00005BECF011C9E1B2738B0700B008140000B6 + 506CFF777578F979C30300B008140000B690EDFFDDD07FCEC32D831100C07C52 + 0000D842C74FDC3A8858766EF50000E69D0200C0163970F052EF88EF90B8D523 + 76020000CC2B0500802DE2DEFFEE71CB070030CF140000B6C8D163DEFDDF356E + F90000E6990200C016B0FDBF9BE2671E3F7B008079A40000B0056EBCC9D5FFAE + 72EB070030AF140000B6C0D1635E09D755C74FDC36880000E68B0200C094F5B7 + 811F1C8CE89AF8D9BBFD030098470A000053E6E17F580300C03C52000098B2C3 + 5E05D779D60000308F140000A6C8F67F42AC816BAFBB7E300200980F0A000053 + E4017024377A1024003067140000A6E89057C031602D0000F3460100604AE2FD + EFFBF7EF1F8CE8BA580BB1260000E6850200C0941C3EE2C16FAC75D46D0000C0 + 1C51000098125BBE29D9150200CC1305008029387AD32D123DAA0E7925200030 + 27140000A6E0F01157FFA9BBF1D8CD830800607B2900006C52D71FF6F6DC73CF + 35777EF0F6C188D2B5D75DDF1C3878E9600400B07D14000036A9EB5BBC1FB8EF + 63CDFBDFF79EC1881A6F030000E6810200C026757DFBFF230F3FD83CFCD0832B + 3B01A83BEA360000600E2800006C8277BD37CDFDF77D6CA5BFE7AE8FACF4AC77 + D5D5D7AC340080EDA40000B009F1F4FFAE8B5B00C2FDF7F77BEAEC020000B69B + 0200C026743DA98BADFFC93D777D78105173D8EB0001806DA60000B041F164F7 + AE6FEB7EE4A1870651FF6D00794180B50E1C3CB8F246000080EDA20000B0419E + ECBE7EDBFF3D777B0EC030371E73CB0800B07D14000036C83DDDB10360ED15FF + 931E0438D421452300601B2900006C80EDFFF52DFF5E07389CB7460000DB4901 + 0060038E9FB8751075577AFA7FC9EB00873B7CC4C3000180EDA10000B0019EE8 + DE348F3C5C7FE09FD7010E77F4A69B5776020000CC9A0200C08462EB7F3CD1BD + EBEE6FD901D0B633805587149000806DA0000030210FFFEB6B4BF41F3FF598D7 + 018E70F888E7000000B3A700003021DBFF475FE5B70B60B87810603C48120060 + 9614000026D04FDC6CFF7F60C47DFE27EFF620C051BC0D000098350500800978 + 827B5FDBFDFF49EC00F03AC0E1DC4A0200CC9A0200C0040EB96ABB629C2DFE6E + 0318AEFF3049B7010000B3B36BD0B36A47A5AFB5289EA47E58DBD55CFA86FFA6 + D9B9FBB25E0C2CB0D8B27DE34DB70C46DD1589FD9D77DC3E18B5BBE8E28B9BAF + FFC66F1A8C68F3577FF9D14104307BF15AD2AF79DDD7AE1424538B02E5B7BCE9 + 68F3FAEBAE5FD362FEE5D3A79BA79F7A6AF0D5304567CF3CDA3C76EFBFEB45AF + B4B4B32D2DA49E11228165ADF43DC9FBD422A14F7D144F529FDAEE4ADBD3BCE1 + 2DBFD2ECDA7B432F0616D8F7BFF58757DEE1DE75FFFEF77FB7F983DFFBDDC1A8 + 5DFC11F933EFFAB9C1889AC74F9D6A7EEA277E74300298BE48DAF7F592FC48E0 + F7EDDBBF320ED7F6C61B75F2AE8F34BFF1EE5F72AB17D375E6C5BB9A7B7FE707 + 7BD1E95E7BB9D2CE642D0A02A98FE4BF2C1084B2A72725B9AC4ADF93BC4F4D01 + 003A2AAE90BCE35D3FBFD277DDCFBEF31D636FEFFF99DEF7CC431387FB273FFD + 76AF4D04A62292FA48F0AFBAEA9AE6CAABAFFE4AB2BF15A208F08BBFA0C8CB14 + 2900CC4424B0008C70E886374AFE0726B9B7FFE45D1F1E44B4397EE2B6410430 + 99B835EDBBBFE77B9B1FFFC9B737BFF46BBFB9D2C73876AB6D65F21FE2BFBDD5 + FF0D60FA140000C670F88887FF85491FEC37EA758178B02430BEB8B5EAF8B7DD + F69584FFEFFFC8DB56C69BD9CEBF19DBF5DF05362E6D736755FA9EE47D6A6E01 + 800E8A2BFF3FF72F7E7930EAB671EFFFCFC51FA90C17DB68633B2D24476FBAA5 + B9D1AB22579E9371F2EE0F77FAFC88ABECF1DAD0C337BC71EE6EA9DAC8FF4F80 + 566E01988994E4B22A7D4FF23E350500E8A0F843FCFBDFFA438351B76DE47EF5 + B852E52AD170777EF0F6E6D7DFFD4B83115D175774631B37ABE2F7CE6FBCFB97 + 3BF3BC8CB8D21F5BECE316A1797E8E8A020053A500301391C0023084EDFF7DF1 + B4E78DFCF17DF26E57B64789DB003C6382C47321D68BABE03FF6936F5FFA7BCE + 23E98F6DFDF10695280279882A306D0A000043A4AB304C7EFF7FB2D1AFEB9248 + FEE3419310247D75719E441160D98A65F17FCFDFFEF6EF58796B4A24FFFE7F0E + B09514000086F087D8AA8D5EC98F5D03711F2FC3D96902A345B2FCDDDFF37D83 + D1628B02F3F7BFF587579E31F3B7FECE7728FC0033A1000030443C7889BECD5C + C9B70B60B428362DDB954D36C6F9325CBCE26E91CF9594F8C736FFF8BF056096 + 1400005AC41F69DE71DC1757F01F3FF5D86034B9788A37A3C5032781D1E24189 + 8B46E20FCC0305008016B6FFAF3A79D7E612785734C763C709E181FB9D2FA3FC + F5057A5062EC5690F803F3420100A0852771AFDA6C42126F105004182D769CC4 + 554260B848AAE7BD481BFF3BC6C3FDDEF1AE9F97F80373430100A0A29F887920 + 5372F2AECDBFCACFEB00C773A344A1F3EE572C1BCBE123F3FBE68CB89D2712FF + 78B89F677B00F3440100A0C256EC55D348FE831D00E3397ACC7300601C87E670 + 07C0B5D75DDFFCC37FFC8EE6FBDFFA43127F602E290000541CF64EF6AF98D6FD + C85E07389ED879E2E193DDE63C194F24D8F372AEC4FF2E719FFF8FFFE4DB9DBF + C05C53000028D8FEBFD6B4760004BB00C663074AB76DE68D1B5D1357DCB75BBC + 91C07DFEC0A25000002848BE566DF6F57F25AF031C8FD701C278AE7DFDF61500 + A2581CDBFDBFFB7BBED7767F606128000014245FAB36FBFABF921D00E38964C2 + 6B28BBCDB9329EEDDA6E1F4FF78FE4DF767F60D12800006422E9722567D59D77 + DC3E88A6235E0738CD5B0A96D93C3FE11CE645DCAE35CB5767A6ABFEF1747F80 + 45A40000909174AD8A643D1EDC376DD37AA8E0B28B279C2B4675579C7F8CE7AA + ABAF1E445B2BEEF577D51F58740A000099797CADD476B9678BAED4DB01309E48 + FE0F791B45673DF2F0F48B6FCB6AAB13F23817E3E9FE71AF3FC0A253000018B0 + FD7FADAD7A605F3C54702B76162CA3C34714A460942BAFDABA0240FCFF8578C2 + FF3CBC6D00601A140000066CFF5FB5D5F7EA7BC0D97814A5BACB2D00E3DBAA1D + 0071C5FFEFFFC8DB9C83C052510000E8893FF0BCC379D55627E8D37EB8E03273 + 1B4037D92533BE7810E034A52DFF71CF3FC0B2510000E89164AD75F2EEADBD4F + 3F929BC74F9D1A8C18E6F8895B0711D0665A5BF46337812DFFC032530000E871 + AFF55AF7DCB535F7FFE7DC06309E484866F99A335844D3D8A67FF4A65B569EF2 + 6FCB3FB0CC140080CE8B3FF6E25E6BFAE2DEFF59DC7FBC550F195C46D667F7D8 + 213399CD3E0720EEF7FFFEB7FED06004B0BC140080CEB3FD7FADADDEFE9FCCAA + D0B00C8E9F702F72D7C4DB3218DF81031BDB251305E078D09FFBFD81AE500000 + 3ACF3DD66BCD726BBEDB00C6130F39DBEA779DC322DBC8830023F9FFB19F7CBB + 1D3640A72800009D16F7564BAC56F51FCE37BB2B8FB3DA6DB00C8E1EF3960A98 + 96F8BD1FC9BFDFFF40D72800009DE6CACF5AB37E3DDF2C1E36B82C0EBB55055A + 4DF2D47EC93FD0650A0040A7B9AABA56DC973F4BF10C8059FF3717556C7156B0 + EA96D891C374A5E4DF93FE81AE5200003ACBF6FFB5E2A9E3DBF1E031B7018CEF + F011BB00BAE4790FC99C2AC93F800200D06137DEE4EA7FEEE4366DC7F720C0F1 + 1DB203005A0D2BE8C6EE19C93F800200D061478FDD328808B3BEFF3F895D07B6 + 3A8F279297A33759B750B3AF25B98FE43F5EF527F9075000003A2AAE146DE4B5 + 51CB2AEEC5DFCE247CBB8A0F8BE8F011BB00605CF1BBFEEFBDF5870723001400 + 804EF2F0BFB5EED9E607F17910E0F8E26AA62B99309A7BFE01D65300003AC92B + D5D63A79F7F6BE8ECF6D00933964FDC23AF9330024FF00750A0040E7D8FEBFDE + 3C5C81771BC0F88E9FB8751001494AF625FF00ED140080CE397EE2B641449897 + EDF7DE0630BE7E11EBD2C18865F5C0FDCE894945D2FFF7DEFA43927F80160A00 + 40E77895DA5AF3F21EFEB805E0F153A706234689670100ABF6EDDBBF72E53FBF + 150080B51400804EF100B5F5EEB96B7BEFFFCF9D9CA3FF5DE69D0759C25AC7BF + ED36C93FC0080A0040A71C3EE2E169B9B8EA1EAF009C179E0330BE4874243B00 + C0241400804EB1FD7FAD794BB8DD063019BB000080492800009D71F4A65B6CFF + 2FCCE3FBF7DD06303EAFB3040026A1000074C6E123AEFEE7E24A7BBC7F7FDE78 + F2F9F8E27596D75E77FD600400309C0200D00971E5DF53D3D79AD72BEDB12B61 + 9E9E4B30EF6E3C76CB200200184E0100E88443B64AAF33CF0FDCBB670E6F4D98 + 579E6B01008C4B0100E804DBFFD78A2BECF1C0BD7975F26ECF011897DD2D00C0 + B8140080A527415A6FDEAFB0CFE3C309E7D951B701000063500000965E3CFD9F + B516E10ABB22C0F8A2C0E50D1700C0280A00C0D2F3AEF4F51621B93E79B702C0 + 243CE762F9CCF36D3A002C26050060A91D38786973D5D5D70C468445B9B27ECF + 9CBEA5605EDDA8D0B574BC0D038069530000969A7BFFD75B942BEB91FC3C70DF + C7062346B9F6BAEB570A5E00006D140080A566FBFF7A8B7465DD6D009351F002 + 00865100009696EDFFEBC53DC58BB4ADD8830027A3E005000CA300002CADE327 + 6E1D442477DE71FB205A0C8F9F7ACC83D02610052FB70100006D140080A575D8 + 53D1D759C42BEAF7B80D60220A5F00401B05006029F5AF841E1C8C088F9F3AB5 + 72457DD1B80D60320A5F00401B05006029B9177ABD930BFA5ABDB805208A178C + 270A5F9E7DB11C9EF71A4000A64C0100584AAE82AEB768F7FFE716B578B15D8E + 9FB86D10B1C83CFF028069530000964EBC0ACDF6FFB5E20AFA2227135E073899 + 435E070800542800004BE7F01157FF4B0FDCF7B141B498E27FFF457A7DE176DB + BF7FFF4A210C0020A700002C1D573FD73B79F7E26FA1BFC7C30027A210060094 + 140080A512573DE3EA27ABE2CAF9323C497F198A18B374F4A69B9D0B00C01A0A + 00C05271D573BD65B972EE7580933BE461980040460100581A71B5D3F6FFF5EE + BF7FB1EFFFCF29024CE6F011E70300B04A0100581A71B5D396E7F5EE59A257E8 + 791BC064FA6FC4B874300200BA4E0100581AAE76AE1757CC97E9E9F9CB54CC98 + 156F030000120500602978ED59DDB25D315F96071ACED2D163370F2216D1C30F + 3D38880060F3140080A5E0616775F1FEFC65E33680C95C75F5356E035860CF2F + D10E1E00B69F0200B0146CFF5F2FAE1C3E7EEAB1C16879B80D6072C74FDC3A88 + 00802E530000165E5CDDB4FD7FBD3BEFB87D102D97B80DC0B6E8C91CB6430600 + E8510000169EE4BF6E99EF955FD6E2C6563970F0E0CAAD0000D3B44C0F9985AE + 500000169E879CADB7ACDBFF93657CB6C156739E00D3E6A1ACB0781400808516 + DBFF5DD95C6FD913E47E81E3D460C4388EDE74CB2002D8BC5F7FF72F2F75A119 + 96D58E41CFAAF43DC9FBD4A26092FA5D599FDAEE4ADBD3BCE12DBFD2ECDA7B43 + 2F06A6ECF8B7DDD67CF7F77CEF6044F24F7EFAED4B7F9F7CFCDCE3E7CFF87EF1 + 177ECE15BB05F3E33FF9F6E6DAEBAE1F8C607CF1FF03F2B7483C70FFC60AC307 + 0E5CBA721B515829BE3E7E6AE5F788E49FA93BF3E25DCDBDBFF383BDE874AFBD + 5C6967B2F64AD69FCDFAD442D9D393925C56A5EF49DEA7A6000073E667DEF5F3 + 5FF9C384BEB832FE533FF1A383D1F28A673FFCFD1F79DB60C438EEFCE0EDCDAF + BFFB970623168102003571EFFD23BD647C25C97FBEFF60D4988BDFFF12731696 + 02C04CA4249755E97B92F7A92900C01C89ADFFFFF01FBF63302279FF7BDFD3FC + F66FFDE660B4DC7EEE5FFC72B37FFFFEC18851224178FB4FFCA807772D100500 + E296AE48F01F7EF8A195E4DE3350585A0A003311092CC042F250B3BA8D6EF35C + 44FE109E4C144B0E792520CCAD48F4FB3B757E79E556AE1FFE81EF6D7EF69DEF + 5829EADEF9C10FF89D076C9A0200B0B0BCDBBCAE4B7F209EBCDBFDEC933A7CC4 + 6B33615E44C21FBBB6E2F91C6FFB1F7E6825E98FDB7422D98F6300D3A600002C + A4D8FEEFDEFFF522F9EFD2F6EE7BEEFAF020625CF1EC04B74DC0F6887BF4E30A + 7F9EF0C7D5FD78A89E5B7380595000001692EDFF755DBB221E7F30DB123B39AF + 0484D9892BF9FFFEF77F7725D98F07B4C6157E093FB05D140080852481A9EB62 + 32EC3680C929A0C1D68AA43FAEECFFD44FBC6D25F1FF83DFFB5D5BFA81B9A000 + 002C1C5B98EB626B6917FFC0F45EFBC9F56FA1B9743002A6217E07E7497FDCDB + EF957CC0BC51000016CEE1231EFE57D3D5ADF0F107B62B6B93BBF126BB0060B3 + 621B7F24FA697BBFA41F98770A00C0C2397483A798D79CBCBBBB0FC4BBC76D00 + 133B7ACC6D34B05151708D57F5C583FCE2AABF2224B0281400808562FB7FBB2E + 3F0CCF6D00938BB768C4AD00C078E26A7F3CC13FB6F8C7BBF9E3557D008B4601 + 005828B6FFD745F2DFE5274AC7D5B7B8FF96C97818208C96EEED7FFBE009FEB6 + F8038B4C0100581871E5FFA8FB96AB3C093F760174F716888DF2360D6817897F + 6CF34FF7F67B6D1FB00C1400808571E80657FFDB7479FB7F72E71DB70F22C615 + 45B5B8AD06589527FEB6F903CB4601005818878F48546AE28F550FA0EADF06E0 + 0ADDE4DC56037D127FA00B14008085E04A653B5BDF57DDE3618013F3560DBA4E + E20F74890200B0106CFF6FF7C0FDB6FF275D7E15E246F59FADE15900748FC41F + E822050060211C3F71EB2022175BDEBD026F557C2FDC063039B7D7D025F13BE2 + DFFFFEEF36FFE4A77F4AE20F748E020030F70E1CBCD4FBCA5B78F8DF7A6E0398 + 5CDC5E133B0160D94591F09FFCF4DB9B3FF8BDDF552C043A490100987BEEFD6F + E7F57FEBB90D6063DC66C3328BEDFE3FFBCE7734BFF80B3FD78BBDC71FE82E05 + 0060EE1D3DE6DDFF6DEEF100C075DC06B0316EB36159DDF9C1DB57B6FBDB3105 + A00000CC39DBFFDB79ED5D3BB7014C2ECEB338DF6059C4EFC778C8DFAFBFFB97 + FCAE0418500000E6DA8D37B9FADFE6CE3B6E1F4494DC06B0316EB7615944C2FF + BFBFF31D1EF20750500000E6DAD1635E4FD6C6D3FFDBD9EABB31C74FDC368860 + 71C5EEA878D05FF400ACA50000CCADFE96E4838311B9F8C3D683ACDAC5D53F05 + 92C9C5F9E6961B16DD6FBCFB97FD7E0468A10000CC2D0FFF6BE70AF76877DE61 + EBEF4638EF5874AEFC03B4530000E6D661AF256BE5FEFFD1BC0D60639C7700B0 + BC140080B964FB7FBB789FB52B5CE3F13680C9C579E7618000B09C140080B9E4 + 6164ED4E7AF7FFD8BC0D60630E1FB10B00009691020030970EB902D9EAE4DDAE + 6A8FCB6D001BE3FC0380E5A40000CC9DD87EBC7FFFFEC1885C24B31E003819B7 + 014C2ECE3FB70100C0F2510000E68EEDC7ED24B393731BC0C61C3D76CB200200 + 9685020030776C3F6E27999D9CDB0036C64E1C00583E0A00C05C397AD32D928E + 1691C44632CBE4EC9CD898435E0908004B450100982B878FB8FADF4612BB7176 + 4E6CCC8DC76E1E4400C032500000E686078F0D2789DD38B7016CCCB5D75DDF1C + 3878E96004002C3A0500606ED86EDCCEF6FFCDB383626314E500607928000073 + C3F6FF7692D7CDB38362638EBA0D00009686020030176CFF1F4EF2BA790FDCF7 + B141C424AEBAFA9A9506002C3E0500602EC4D3FFA9B3FD7F3A7C1F37CE2E0000 + 580E0A00C05C9060B4B3FD7F7A4EDEED7BB911873D9F030096820200B0EDE229 + E3B618B7B3FD7F7AEEB9CBF772230E1C3CB8F246000060B1290000DBCEBDFFED + 6C5B9FAEF87E7A16C0C6DC78CC6D3A00B0E81400806D67FB7F3BDBFFA7CF6D00 + 1B7348A10E00169E0200B0AD6CFF1FEE4FEFF8C020625AECA8D8186FEA0080C5 + A700006CABE3276E1D44941E3F75CA76F52DF0F8A9C756BEB74CEEA8DB000060 + A1290000DBCAD3C5DB9DF4C0BA2DE37BBB31B10320760200008B490100D836B1 + F53F9E2E4EDD9D77DC3E889836CF01D8B8438A7600B0B01400806DE3E17FED62 + 8BFAC30F3D3818316D716B45BC1180C91D3EE2390000B0A8760C7A56A5EF49DE + A7160593D4EFCAFAD47657DA9EE60D6FF99566D7DE1B7A3190F99977FDBC1D00 + 2DEEFCE0ED1E00B8C5BEFB7BBED7032837E8A77EE26D2BCF5260EBFDF84FBEBD + B9F6BAEB0723C6F1C33FF0BD83085828675EBCABB9F7777EB0179DEEB5972BED + 4CD65EC9FAB3599F5A287B7A5292CBAAF43DC9FBD41400604AE25EE2BFFF236F + 1B8C8045F2DBBFF59BCDFBDFFB9EC188ADA4003039050058500A003311092CC0 + CC1D3EE23E6258546EDF0180C5A400006C8B43DE270E0BABFF00CF4B07230060 + 5128000033E75562B0F88E9FB8751001008B4201009839DBFF61F11DF63A4000 + 58380A00C04CC5957FDBFF61F1C51B3CBC450100168B02003053876E78A3EDFF + B0248E9FB86D1001008B40010098A9C3475CFD876561370F002C1605006066E2 + CA7F3C0010580ECE6900582C0A00C0CCC4F67F60B978A827002C0E050060666C + FF87E573F4A69B3DD70300168402003013070E5E6AAB302C29BB7B0060312800 + 003321F987E565770F002C06050060268E1EBB791001CB260A7CB1CB0700986F + 0A00C0968BC4E0AAABAF198C806564970F00CC3F050060CB490C60F9D9E50300 + F34F0100D872C74FDC3688806515BB7CDC060000F34D0100D852FDA4E0E06004 + 2CB31B6FB20B0000E6990200B0A56C0B86EE387AEC96410400CC230500604B1D + F67E70E88CD8EDE3819F0030BF1400802D63FB3F748F5D3F0030BF1400802D23 + 1180EE397A93DB0000605E2900005B462200DDB37FFF7EAFFE048039A500006C + 894800221100BAE7F011CFFE008079A400006C09090074D721054000984B0A00 + C096880400E8A648FE0F79030800CC1D050060EA6CFF070E1F5104048079A300 + 004C9DEDFF80422000CC1F050060AAE20FFEA33779FD1FE04D2000306F140080 + A972DF2F901C3DA6180800F3440100982AF7FD02C955575FD31C3878E9600400 + 6C370500606A62FB7FDCF70B90F89D0000F3430100981ADBFF81D2F113B70D22 + 0060BB2900005373FCC4AD8308A0EFC0C1832BB7020000DB4F0100988AB8CFD7 + 1FF9408D870102C07C500000A6C27DBE409BC36E0F0280B9A000004C852B7C40 + 9BB80D40911000B69F0200B069B6FF03A31C3E621700006C37050060D36EBCC9 + D57F60B843760000C0B653000036EDE8B15B061140DDFEFDFB9BA337F95D0100 + DB490100D894D8FA1FF7F7028C72F8885D0000B09D1400804DF1F03F605CF120 + C0D80900006C0F05006053BCDE0B98C421BF330060DB2800001B66FB3F30A9E3 + 276E1D4400C0AC2900001B76FCC46D8308603CFDC2E1A5831100304B0A00C086 + 79AD17B011F12C000060F61400800DF1302F60A3EC1E0280EDA100006CC8E123 + 1EE4056C4C3C3B246E050000664B0100D810DBFF81CDF00A5100983D05006062 + 476FBAC5F67F6053BC421400664F010098D8E123AEFE039B13B7015C7BDDF583 + 1100300B0A00C044E2CABF277803D370E3B15B061100300B0A00C0440ED9B60B + 4C89678900C06C29000013B1FD1F98163B8A0060B6140080B1F9631D98B6A36E + 03008099510000C6164FFF0798A6282A7AAB0800CC8602003036EFED06B68267 + 8B00C06C280000633970F0D2E6AAABAF198C00A6E746C5450098090500602CEE + FD07B6CAB5D75DBF52640400B69602003016DBFF81ADA4C808005B4F010018C9 + F67F60AB293202C0D6530000463A7EE2D64104B035A2C8A8D008005B4B010018 + E9B027740333601700006C2D050060A8B82277E0E0C1C10860EB283602C0D652 + 00008672450E98952836C61B010080ADA100000CE58A1C304B371EBB65100100 + D3A60000B48AD772D9FE0FCCD221AF0304802DA30000B43A7CC4D57F60B6F6EF + DFBF527C0400A64F010068E54A1CB01D141F01606B2800005571052EAEC401CC + DAD19B6EF6FB0700B6C08E41CFAAF43DC9FBD4A26092FA5D599FDAEE4ADBD3BC + E12DBFD2ECDA7B432F8685F1FD6FFDE1953FC219ED81FB3ED6FCEC3BDF3118D1 + 65F104FB1FFFC9B70F466CC6AFBFFB979B3B3FF881C1A8BB623D7933C2647EF8 + 07BE7710010BE5CC8B7735F7FECE0FF6A2D3BDF672A59DC9DA2B597F36EB530B + 654F8F1D00C03A71E5CDF6FFF19DBCFB238388AE8B62D0E3A74E0D466CC6E123 + 7E0701C0B4290000EB1CBAE18DB6DF4EE0E45D0A00AC3A79D78707119BD17F0B + C9A5831100300D0A00C03AAEBC8DEFE1871E6C1E3FF5D860044D73E71DB70F22 + 36CBDB000060BA14008035BC826B32923D4AFDA290DB00A6E1E831CF21018069 + 520000D688EDFF8CCFF67F6ADC06301D575D7D8DDB0000608A140080356CFF1F + 9FEDFFB4B133647A8E9FB8751001009BA500007C455C69B3FD7F7CF778FA3F2D + DC06303D87ED4A0280A9510000BE42F23F19DBFF19C66D00D371E0E0C1955B01 + 0080CD530000BEC203B7C6175777E32A2FB479FFFBFE7810B159C74FDC368800 + 80CD50000056C4F67F57D9C6E7EA2EA3C4F3211489A6E390DD490030150A00C0 + 0ADBFF27E3216F8CC33A990EAF270580E950000056D8623B3EDBFF1997E7444C + CFE1231E0608009BA500000CDEB57D70306214DBFF1997DB00A6276E03889D00 + 00C0C62900001EFE3721DBBA9984F5321D91FC1FF24A4000D8140500C07BB627 + F0DC73CFB9A2CB44DC06303D878F780E00006C860200749CEDFF93B94732C784 + DC06303DF12040B70100C0C6290040C7D9FE3F999377BBFF9FC9BDFF7D7F3C88 + D8ACA337DD3288008049290040C7F9637A7CB1FDDF766E36E21E0F8E9C1A454B + 00D8380500E830DB692763FB3F1BA578343DFDDB962E1D8C0080492800408779 + AFF6646CFF67334EDEAD00302D37DE641700006C8402007458BC579BF1B882CB + 66B90D607A8E1E73EB12006C8402007494EDFF9379E0BE8F0D22D81845A4E989 + 3797C4AD0000C0641400A0A36CFF9F8CEDDB4C8375343D1E060800935300800E + 8A2BFF47DD433B11DBB79906EB687ABCC1040026A700001D74E80657FF2711DB + B663FB366C96DB00A6270A99712B1300303E0500E8A0C347FCD13C09DBB699A6 + 3BEFF8C02062B3DCCA0400935100808E71D56C72B66D334D76944C4FBCC9C4C3 + 4C01607C0A00D031B6FF4F46B2C656B8C76D005311C9BFDF6900303E0500E898 + E3276E1D448CC3F67FB6C2C9BBED2A9916B73401C0F81400A0430E1CBCD4BBB3 + 27F4C07D1F1B44303D76964C4FDCD2E4360000188F020074887BFF27F3F0430F + 368F9F7A6C3082E9721BC0F4B80D0000C6A300001D72F49877FF4FE2CE3B6E1F + 44307D6E03981EB73601C0781400A0236CFF9F9CF7B5B395DC06303DF1BB2D7E + C70100C329004047DC7893ABFF93B0FD9F59701BC0F4B8C50900465300808E38 + 7AEC9641C4386CFF6716DEFFBEF70C2236EBF889DB061100D04601003AA0BF3D + F6E060C4386CFF6716FA3B4D4E0D466C46FC8E739B13000CA700001DE0E17F93 + 8984CCF67F66E5E45D1E06382D7ED701C0700A00D00187BD226B22123266C9ED + 26D3E3771D000CA700004BCEF6FFC949C89825B7014C4FFCAEF330400068A700 + 004BCE83B1261389582464304B769D4CCFE123760100401B05005872875C0D9B + 88448CED60D7C9F4F89D0700ED14006089C556D8FDFBF70F468C4322C676701B + C0F4C4EFBCA33779ED2900D42800C012B3157632B6FFB39DDEFFBEF70C2236EB + F011BB0000A04601009698ADB093B1FD9FED74F2AE8F0C2236CBEE2700A85300 + 8025155B60FD013C9907EEFFD82082D97BFCD46376A04CD121AF040480751400 + 6049D9023B99E79E7BCE1558B69D67504CCFF113B70E220020510080251457FE + BD0B7B32F748FE99038A50D373D5D5D734070E5E3A1801004101009690ADAF93 + 3B79B7FBFFD97E6E03982E855000584B01009690EDFF93B1FD9F79E23680E939 + 7AECE64104000405005832B6FF4FCEF67FE68962D4F4C46D00D100803E050058 + 32F1F47F2663FB3FF3246E0378E03E6FA49816BB0000609502002C197FEC4E4E + B2C5BCF953B7014CCD61CF440180AF50008025124FBCB6DD7532B1DD3A9E0100 + F3E49EBBEC4A999603070F36D75E77FD600400DDA600004BC4BDFF933B79B7FB + AD993F1E4C395D371E736B14000405005822B6FF4FCE9556E695E2D4F41C521C + 0580150A00B0246CFF9F9CEDFFCC33C5A9E9F1761400E85300802571FCC4AD83 + 8871B9C2CA3C731BC0741D751B00002800C0B2F0A4EBC9B9C2CABC53A49A9ED8 + 01103B0100A0CB14006009C4D6FF78D235E38B57FFD9FECFBC53A49AAE430AA5 + 00749C02002C010FFF9B9C2BAB2C822852DDF9C1DB072336EB46BF2B01E83805 + 005802B6FF4FCEBDD52C8A9377DB05302DD75E77FDCA035301A0AB140060C1C5 + 7DADB6FF4FE6E1871E6C1E3FF5D86004F3CDDB2AA6CBDB0000E8320500587087 + 8FB8FA3FA93BEFB0A59AC5728F1D2B53E3962900BA4C010016DC2157B32666FB + 3F8BC66D00D3D37F68AADB0000E826050058605E6B3539DBFF59446E0398AEE3 + 276E1D4400D02D0A00B0C06CFF9FDC3D9EFECF82721BC0F478702A005DA50000 + 0B2AAEFCDBFE3F39DBFF59546E03989E78706ADC0A00005DA300000BEAD00D6F + B4FD7F428F9F3AB5720B002C22B7014CD7F113B70D2200E80E05005850878FB8 + FA3FA99377B982CA62BBF3831F18446C961D5400749102002CA0B8F2EF5DD693 + F3FA3F169D353C3D7E8F02D0450A00B08062FB3F93B1FD9F65D07F8BC5A9C188 + CDF2205500BA4601001690EDFF93B3FD9F65612D4FCFD19B6EF62C15003A4501 + 0016CC818397DAB6BA01B64EB32CACE5E9B2A30A802E5100800523F99F5C3C39 + DDF67F9685DB00A6CB8E2A00BA44010016CCD163370F22C6758F77FFB364DC06 + 303D51548D9D5500D0050A00B040E28FD4ABAEBE6630625C27EF962CB15CDC06 + 305D765601D0150A00B040FC913AB9D8FE7FD20E00964CDC06E0B696E9B1B30A + 80AE5000800572FCC46D838871D9FECFB2B20B607A626795DB0000E802050058 + 10FD3F500F0E468CCBF67F96959D2DD375FCC4AD830800969702002C085B5427 + 67FB3FCBECF1538FB90D608A0E7B1D20001DA000000BC21FA7937BE0BE8F0D22 + 584E6E03989ED861E521AB002C3B05005800716FAAEDFF933B79B7ABFF2C373B + 5CA6CB4E2B00969D02002C00C9FFC6DCE35DE92C39B7014C971D008BEFF153A7 + 061100350A00C0528A2BA3F10C0058766E03989E797C1380DF639389A21800ED + 140060013CEF0FC089C41FCCBFFD5BBF3918C172BBF3831F90244EC973CF3D3B + 88E6C79D777C6010310E3B00008653008005105B7C6DF31D4F4AFE5D05A22B62 + CDFFEFEF7C8722C0143CF2D04383687EC46EA63B3F6897C7B8FEE0F77F771001 + 50B36BD0B36A47A5AFB5289EA47E58DBD55CFA86FFA6D9B9FBB25E0C1BF6577F + F9172BDB535F73D9E583194AF187F26FBCFB979BBFFA8B8F0E66A01B9E7EEAA9 + E6DEBFFCE8CAEF8779DCC6BE0822C9FEEDDFFA57CDE9D3A70733F3231E68BAA3 + F717C795575FD3ECD9B367304B2E8AE4BFF27FFE8BE611C572585C67CF3CDA3C + 76EFBFEB45AFB4B4B32D2DA49E11228165ADF43DC9FBD422A14F7D144F529FDA + EE4ADBD3BCE12DBFD2ECDA7B432F86A9880755EDDBBF7F302278E51FF4EDEFFD + 6E884491F1C42D568BB4C3CAEFFFF5FCFE872571E6C5BB9A7B7FE7077B515462 + 5FAEB433598B8240EA23F92F0B04A1ECE949492EABD2F724EF53530000000098 + 3605809988041600000058720A00000000D0010A00000000D0010A00000000D0 + 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 + 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 + 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 + 00D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A + 00000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000 + D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A00 + 000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0 + 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 + 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 + 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 + 00D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A + 00000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000 + D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A00 + 000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0 + 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 + 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 + 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 + 00D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A + 00000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000 + D0010A00000000D0010A00000000D0010A00000000D0010A001B7776D08F32EE + E7000000BA4C8EB5C5140066E1EC2BCF0C220000004A72A69950009885D32F3C + 308800000028C999664201000000003A4001000000003A400160FAE28114C543 + 297C9B010000DAADCB992A79159B25339D4CDB024CF3F9718B1500006072B5BC + AA2DBF92774D400160164E3F7DFF20020000A024679A090580CD896AD3B08A53 + FFD8CB2F7D79A507000060BDD59C69547E35EC38232800000000400728004C4F + AA449555A9B3CD0BA73E378801000028F573A6B579D4EA389F67131400A6AB5C + B07D8F7FE2D14104000040696DCE54CFABD8340580AD9516AB450B0000D04EEE + 34030A009B376A81F68FBF72FAE32B3D000000ABCEBC78D7201A2FB762C31400 + 36A65C78311EB618CF36675F796610030000B0D6F07C6AFDF1619FA78502C0E4 + D2426B5B706971AE3D7EE6B4E70000000094CEBCF0C0204AEA39D5AA34DF769C + 160A00EDCAC5545B5CA33EB33A3EF3B20200000040E9CCD92F0FA2307E8EB56A + 9CCFD0A300305A2C9E510B283F9E3E9FE6FAF14B4F97552D000000FAB9D2FA1C + 6A751CF2B8A6FC3C150A009B9716596DB1AD2EC2974F7B06000000406935575A + CD9FD64A73B5634C400160BD618B2A5F78B5CFB57DEDD9E6A94FDB0100000050 + EAE74AEDB9D47A793ED6F67561D8B14E5200D89CB6059516E4EAF167BFF07473 + 76CDBD2D000000DD163952E44AABD6E7526BB5CD33060580C9950BAE5CA06DC7 + 9BE69597EC02000000485673A43CA74AD2381D6B3BCE981400A62B5F98790B67 + BD0A10000020F3D28B1FEFFDCFD59CA9DE98120580E918B538FBC75E7E211637 + 000000E1EC4B719174742ED57E9C0928006CDCB88B74F533CF3F75FF20020000 + 606D8E54CFA3D61A768C1114002693165ABEE0CAB9BC5F1B3FF5293B00000000 + 927E8EB43E77EA6BEB436D8E11140086CB17D5B085557E2EFFECEADCB35F7CBA + 39EB39000000002BB951E44879CEB4AA9CCB8F95C6FD5CE72900D48D5A5CA94F + ADA676FC6C73FA8C5D00000000FDDC686DBEB43E87CA95C7DB3E17861DEB2C05 + 808D2917535A8469BED6F7E3573C0810000020CB8D56F3A57A9F1F4FCA316350 + 0098BE7281E6E3B3CDB3A73E12930000009DD6CF8DD6E64B7DE598295100D89C + 618B341FAFCE7DEECF1400000000FAB9D1F0FCA93E6683140026972FBEA49C8B + BEBDBD72DA6D0000004077F573A27ABEB4DA42D987DA1C635000182D5F5CC316 + D8A8CFA5F9B3CD8BCFDFB532030000D045FD9C6835475A2F9FAF1D4FC6FD1C3D + 0A00ED462DB2D4A796D48EE5AD695EFA9202000000D05DAB39512D678A16521F + 861D2B0D3BD6690A001B572EAA7231B6B7C71F5000000000BAAB9F13D5F3A5D5 + 16F23829C78C490160F36A8BB3365E9D7BF68B4F7B0E000000D049910B454E94 + E7486B5B681BB3090A001B932FC2A49C8BBE6CAF7C25F61C000000A08BD6DEFF + BF9A23AD6DA1EC436D8E3129008C275F64E542CBE76A9F4BF1DAB1E700000000 + 5DD4CF85D6E748EBC7A13697D43EC7100A00C30D5B44F9620B693CACAD56B71E + FAE07FEEF5000000DDD2CF85D6E748C35B528E4BC38E759E02C0F4A505992FCC + 5A7CB679E9D90FACCC00000074413F075ACD89FA6A713EC79428004C47DBE28C + B9BCA215F1EAF8E5E7EEEEF5000000DDD0CF81EAF9D16A5C4AC7D92405808D4B + 0B305F886961E62DD4C75FFA84DB00000080EEE8E740EB73A3FA389F0F29CEE7 + 988002C0F8F2C5562EB834374E5BAD723DF1A9CF791D200000D00991FB440E54 + E645E3B75C3E571EA38502C068C31653BEE872697E747BE1C93FEAF5000000CB + AD9FFBD4F3A27A2BB5CD27C38ED1A300303D6931A64597F7B5D6AF767DE9131E + 040800002CBF7EEEB39A0BD55BC8FB7C9E4D5200D89CDA022DFB61ED15B70100 + 00004B6F75FBFF38DBFEC3A89E0D5000984CBEE8CAB8361EA7BDE23600000060 + A9F5739E49EFF98F16DAC621F58C4101603C1B59546951E62D167CDEFAF36E03 + 00000096D9EAF6FFF6BC686D9BD446BEA6731400A6A7B660C799F33600000060 + 79AD7DFA7FD9C2B8736C9202C0C6D516633E576B65756BB5EAF5EC63FFBAD703 + 00002C977EAEB39AFBACCF89F271AD25B53926A00030B9DA62AB2DC234375E7B + ECAFFEA4D70300002C977EAE53CF83DA5BAE36176A730CA10030BE7117575A9C + E9F3291E5EE97AF68BCF342F3DF31F7A310000C072881C27729D3CF7199E1B85 + FCD838C6FD5CE729004C476DA1A616F23E16775AE029EEB7673EFF87BD1E0000 + 6039F4739CB579CFFABC28E47DD942EAD90405808DC917612D4E629C2FF0F499 + 7AFBDC7FB9AB397BE6F3BD18000060B1456E13394E99F7AC6F65CE944B9F0965 + CC8414002633EE224B0B335F9CD1F22240C479EBCF3FFFC46FF77A000080C5D6 + CF6D86E73F6BE390E2341E65DCCFD1A300303DB5055B6BE5825F3BFFE8DD6E03 + 000000165F3FB7199EFFAC9F2F5B483D9BA400B071F962ACC5499A2B5B5AF06B + DB738F3DED61800000C0428B9C26729B5ACED36FB51C295A2E9F2B6336400160 + 72E32EB6B440F3453A5E7BE2D36E0300000016573FA7A9E73BF516CAF128E37E + 8E010580E9AA2DDC5A4B15AFB20AD66F8FFDC5FDCD4BCF9FECC50000008B2572 + 99C8696AB94EBFE539D1B01652CF1428006C4EBE286B7192E6F2367CC13FFDF0 + AFF67A000080C5D2CF65EA794EBFB5E542B97CAE8CD92005808D1967D1A5455A + B67CB1475C6F8FFEF9479A57BC12100000582091C3442E53E6376B5B2D372ADB + 28E37C868202C0F4D4166B3E172D2DF072D1D7DBB35FB00B000000581CFD1CA6 + 9EDFF4DBB0DC28B5A436C72628006C5E6D31E68B34C5E5B85CFCEBDB67FED31F + DA050000002C84C85D228729F39AD556CB85428ACB71A936C7041400366ED8E2 + 2B176E5B2B4F84F5CD2E0000006011F473977A5ED36FA3F39F7E0BA9AF19768C + 211400A6235FA4B5384973A9A5C59F4E84F5ED33FFE98FEC02000000E65AFFEA + FF1F4534A4E53950DE72F95C19B3490A005B2F2DDA72A1972740F4F5F6ECE77F + ADD7030000CCA77ECE52CF67FAAD9603A5968FD9420A009B535BA069E1962DA4 + B86DC147BFBE7DE64F3C0B000000984F2B57FF7B394B99C7ACB6613950B4901F + CB5BA936C7981400A667D842CC1770DEF2455FC66B9B5D000000C03C6ABFFADF + 96EBA4B86C6D861D63020A009B37EE424D8B3AB5B4F0D3C991B7F5F32BBB004E + 7FA217030000CC87C851EA57FF47E53AD1E72DC9E3D2B0638C410160BAD282CC + 17712D6E6BE5C9B1B63DF1E95FE8F5000000F3A19FA3D4F397D556CB7DF21686 + C54C8902C0D62B1771D96A2748B4F5C71EFDF38F342F3D7FB2170300006CAFC8 + 4D224729F396D1794EAD85D4B3451400A6A3B650CB855CC66DAD7692ACB6C7EE + FE995E0F0000B0BDFAB9493D6F596DB59C276FA12DCED5E6989002C0F40D5BAC + 6931A7964E88F224696F4F7CFA73CD0B4FFD4E2F060000D81E9193446E52CB59 + DA5B9E03E52DA43E579B63131400A6A76DC1E60BBA8CDB5A7982AC6D9FFDB377 + 3767CF7EB917030000CC56E4229193D47295F5F9CCB016DAE25C6D8E0D5000D8 + 1AC3166D5AD4A99527C9E8F6DC634F37CF3EE6B5800000C0EC452E1239492D57 + 696F79EE93B790FA5C6D8E4D520098AEB6859B2FEC326E6BE50993DA9995FED3 + EFFB6DAF05040000662A7290C845F2DCA4DE6A394EDE425B9CABCDB1410A005B + 67D8E24D8B3BB574829427CDF0F6857BFF69AF070000988D7E0E52CF4FDA5B9E + F3E42DA43E579B630A1400A6AF6D01E70BBC8CA3E527465B5B5B613BF5970F78 + 202000003013917B440E92E724C3770144CB739DD4425B9CABCDB1090A005B6B + D8224E8B3C6FE589919F38F513EBB31FFAD5E695339FEFC50000005B23728EC8 + 3DCA7CA4DFCA5CA5CC69F2716A21F5B9DA1C53B26BD0337D3B8A3EC9C7F967F2 + 16521C459AFC58DE9AE6F473A79BDDE77EAAD97FF0B695310000C0B43DFEF17F + D87CE9139FEE4529D98F3E6F29F9CFE348E6539F5A688B73B53936490160EBF4 + 13F4BE14AF26EEEB8F97C7CAB86CA11F7FF9739F6F2EBAE6C266F7B96FE84F03 + 00004C496CFD7FF04FFE6D2F4A097E4AF2539C27FD1147F29EC629C1CF5B487D + AE36C714B90560EBB42DE87CC197716AF9C992E2BC952758DC0AF06B6E050000 + 00A6AABFF53F5E415ECF43D6B7329FC95B688B73B539A6C00E80AD95AED487B5 + 57EDFBCAE3790BE55C391FFAB15B0100008069EB6FFDFF4C2F8A843FB548EECB + 3825FDA9A5E4BE6C21F5B9DA1C53A600B0F5F2443D37CE38FFDAB285B5E32F7F + EE0BCD45D75CE05600000060D3FA5BFF7FAF1795497F99F8A73E25FE29CEE7F2 + 16F238579B634A1400B65E4AD64399B8E7F2B9F2781AE7F3B571D33CF1C0879B + 4BAEBDA5D9B5FB9295310000C0A44EBFF0C9E681DF7F7B2FAA25FBA9A5043F8F + A345129FFA9092FDD44AB539B68067006CBDB6055ECEA7B9D4F293271FE72D3F + F1564FBA2FDDF74F9BB3AF7CB9170300004C267289C829D6E61D65FE51B6B63C + 26B55C6D2ED4E698223B0066235DA50FF915FB7C3E94C7F2CF9473790BABF1B3 + 8F7DA9D977E0C966EF8537AD8C010000C6F5CC677FAEF9EC9F7FA817D512FFB2 + CF5B24F0A96F6BA5DA1C5B4401607652A21ECA783579EF1B3597E6F37EEDDC53 + 0F7EB2B9E8AB2F6F76EFFDDA95310000C0282F3CFDC7CDA7DEFBABBDA896F00F + 4BFE532B13FE32C1CFE7F263E5E7D8020A00B39312F490C7A5DAB13CB9CF5BA8 + F5FDF885273EDA5C70E59B3C0F0000001829EEFB7FE483FFB839FDDCF3BD5124 + F329E91F27F98F04BE1C87E8CBC636510098AD94A487F5097BFBF1B2AFB5B036 + 3EFDDC4BCDCE9DF735E77DD55F6F76EC3867300F0000B056DCF77FEAAFFEE7E6 + C9073FDB1B45029F27FC79D25F2B0044529FFA94E09771299FAB1D670B2800CC + 5E9EACE7CA7148097D7E2C9FABCD87D5FED9C79E68CEB9E09166DFABFEFA600E + 000060AD273FFDBF368FDEF5915E14897C9EFCA73EB518D75A4AF8A395E390C7 + B9DA1C5B440160F6CAA43DEF73B563F95CAD25F97847F3F4230F37175EBEABD9 + B3FFD0600E0000A0EFF953FFB2F9CCCAFBFE23716F4BFADB92FF48E0F33825F4 + 29CEE79272CC8C28006C8F32594F7D1E27E55CDE9773A1FEB9273E794F73C96B + BFAED975CED5FD690000A0F34E7FF98EE6813FFCD95E14097C9EF4E7897F1EA7 + 643F5A24F2A92F5B487D1836C78C28006C8F5AC29E94E3D04FE2D77F5D1A97C7 + EBFD738F7FD8430101008015F1D0BF876EFF878387FED512FD32E12FC7D12289 + 4FAD1C873C669B29006C9F949C873C51CFE7437E2CA9CD8518B77DBEFF50C033 + CF4511E0360F050400800E8B87FE3DFA676F6B9E79F4B1DE2812F75400A825FF + F97C6A91D4E77199F0A7712E9FAB1D678B29006CAF5AB21EDA92F8BC0FF95C6D + 3EE49F699A179E7AB679E5958F34E7BFFAAF29020000400745F2FFF97B7EAC79 + E2139FE98D52729F12FCB6B8D6F2643FB590F729CED5E698010580EDD596B487 + 721C622E6FC9B0F924C53B9AE71E7BA2D977E0C966EF85370DE6000080AE8827 + FE7FFEEEBB7A514AF0F316897D1ED75A4AEC532BE7421E873C669B28006CBF7A + 92BE763E94E3DCA8CFAF8F9F7AF093CDBE4B1E6BF65E786C650C00002CBFA71F + F967CDC31FFC8FBD284FFA53B25F8BD3B8AD95097F2DD1CFE76AC799110580F9 + 9012F4B6243EFA3851F271DE42792C698FA30870E1E53BBD1E1000003A205EF7 + F7E9F7FF762F8AC4BD96EC9771D952825FB63816224E7D8A73B539664801603E + B425E9218D877D26E49FAB7D4D583F1FAF07BCE8AB2F6B76EFFDDAC10C0000B0 + 6C5E78FA8F9B4FFCD12FF4A25AB29FB7349F92FEB69692FC94D4E77D8A431EB3 + CD1400E6479EACB725F0B93896B7D2A8B9D5F88907FEB4B9F86B2E6F76EF7DDD + 6006000058162F3EF3DEE6E37FF0BFF5A23CD17FB918E72D12FC3C2E13FE68B5 + B968B97C5C1E631B2800CC975A821E7D3E1FCA7129FF9AB20FEBE3C7EFBF4311 + 000000964C24FF0FFCBB7FDA8B6A897D19E7FDB09692F994F4D712FDDA1CDB4C + 0160BEB425E9218DA38F13281F97622E9F6FFB4CD28F150100006079AC4DFEA3 + E557FDCB1D0091D8A7BEAD451E925A8C434AEED33C734C0160FE0C4BDCD3B8F6 + 99E8534BF238D7FE1945000000587CEB93FF3CC92FE3BCA5F932E12F5BC8FB14 + 87B6986DA600309F6A097A5B321FDA8EE55F9BB7D2DA3945000000585CF5E43F + 5AEDAAFFB82D12F9D4972D978FCB636C330580F95426E969DC96C087DAB1B6CF + E6EA9F5104000080C5D39EFCA784BF369F5A9EF0A79692FC3C4E2D49713EC71C + 5200985F79623E2AB12F3F9B5AAE3697D4E67728020000C002594DFE2359AF25 + F8B527FFE7C97E6A79929FC6219F0F795C6A9B671B2900CCB73C31AF25F4A98F + 93AB96C4D7B47DAE3EAF08000000F3EFB9A77EB7F9C41FFC6C2F2A13FCD4DA92 + FF3CAEB594E4471C52629FE693B69839A20030FFF2C4BC4CD2D338FA38C9EA49 + FC7AF9D7A5BEFDEBA308B0EF558F357B2F3A3698010000E6C5D30FBFABF9F4FB + FE7FBD284FEEF316C97F24F011977D8A6B2D728468118794D8A7F9A42D66CE28 + 002C863C312F93F764D43829BF3EFA3849F37EBDA71EFCA422000000CC9948FE + 1FFCC01FF5A294CC972D25FF6D45805A8BBC206FA11C27F9B83CC69C5100580C + 65529E27EFC3B41DAFFD7B71B2E6FD7A510478E5CC9DCDF9AFFE6BCD8E1DE70C + 66010080593BFBCA979BCF9FFC91E6D10F7FA837CA13FEBCD592FFD4D23825FD + A9453E90FA5A0B65CF825000581C79525EC6F5847D75BE76BC9C8B719CC079BF + DE738F7DA979E5950F377B2FF9D666D7EEF307B30000C0AC9C7EE193CD17FFF2 + 7F694EDDFBF1DE284FEAF33669F21F39C0B096E471AE6D9E39A200B058F2A4BC + 96C0D7A4F9DAF1DABF919FB869BCB68F22C0735F785F73C1955104B8A4370700 + 00CC4224FF0FFEC98F354F3FF4B9DE2825F165B21F7D99EC97E3E8538BBFF5CB + 3E6F218F435BCC1C5300583C79D29EC7A11C2769BE767CDC7F63AD979F7FA939 + F5B13F6C2EFE9ACBBC2100000066205EF377FFEFFDBF7A7F8B3FDF1BE5497D5B + 8B64BE368E3EB548DECB3E6F218F435BCC9C5300584C79923E6E029FE66BC7F3 + B9C94EE0C7EFFFD366DFABBEE8E1800000B085E2617F9F7AEF6FF4A23CA11FA7 + 45525FF6A9C5DFFE659FB790C7A12D660128002CAE3C692F93FA5A921FD27CED + F8B063B938C9E333AB277B3C1CF0CCCAC301FF2B0F07040080298A87FD3D7AF2 + 7F6C1EFDF09FF54665625FBBBF3F6FE958DEA7167FCF977DDE421E87B69805A1 + 00B0B8CA447DD43849F3B5E36DC7E2E48EB9F693FCF9C79E689E79F48F9A0B2F + 7B43B3F39C570F660100808D7AF9D98F369FFE4F3FD23CFDD0677BA348D2F3E4 + 3E6F71AC2C06A438EF538BBFEBCB3E6F218F431EB3A01400165B99A88F1A2769 + BEED78C88F455C3BE1636EF5D8CA7301EE7B6F73FE153B9B73F61F5A99030000 + 26F7ECE3FFAAF9F8BF7F67EF6FEC177AA33CA96FBBEA9FCF9571DEE26FF7B2CF + 5BC8E390C7A11CB3201400165F99C48F1A2769BEED78AE7682B7CF7DE9131F6D + 76EEF98B66CF8587BC2A10000026F0D28B5F689EF8F83F6A1EBEFD3DBD512DA1 + 1F672EEFF3167FAF977DDE421E873C0EE59805A200B01CB6BA08501EAF9DF46B + 7F497CF9D12F34CF7DE13F36175C7E75B36BCF5583790000A0CDE9E7FEB479E8 + 3FFF54F3E4A73ED31BE5897C19D7E6CAB86CF1F77AD9E72DE471C8E3508E5930 + 0A00CB6354D2DF96E48F4AFE4BC37E2184D5B9979F7FB13975DF7F5E794BC0CE + 7D879A5DBB3C201000004AA75F7AB679F673FF47F3C93FFEFF0E5EF117097A2D + B1AFCDA538EF6B2DFE4E8F96C7A9853C0E791CCA310B480160B9CCAA081086FD + 720869EEECCA5B025EFEF29F34E71DFC5A0F080400804C3CE8EFF31FFE9F9A2F + 7CF4EEDEA896D0E72D9F2B3F177D5B8BBFCDA3E5716A218F431E8772CC825200 + 583E1B2D0284F2583AD1877D4DDB2F8AB5F10B4F3DBBF280C0F3BEEAB966C739 + D7DB0D000040A7C555FFE7BEF8EEE613FFE1E77B7F2B3FDD9B2913FCBCE5F329 + CEFBD4D238FE164F73298EBE6C218F431E8772CC025300584E9B29028CD2F6B5 + 6DBF3452DCEF9FFCF4C7EC060000A0D3D255FFCF9FFC2FBD519EB8E7FDA838B5 + 721C2DFEF6CEE35A0B791CF238946316DC661241E6DBB0A43FE2344E71D97666 + 7D5B8B02521EA77119D7FA9DCD15476F6E2EB8F21F347BCE39AF37060080E516 + 57FD9F79E49F379FBDF3F6DE2825E86DC97D3EAE1D4B71AD45E29EFA5A0B791C + F2389463964024632CAF48E073A3C6A5FC78ED1740DB2F89B20FEBE79E79E4A1 + E6D92FFC61B3EF92BDCD9E7DD70F66010060F93CFFC4BF6D1EFEE04F374F3CF0 + 406F9412F594D8A7843E1FE773B5BE6CF17776D9D75AC8E390C7A11CB3241400 + 96DF668B00E3CA7F99E47D88B83E7EF9F9979A273EF1E15E706773EE8557BB2D + 000080A512DBFD1FFBCB7FD43C7CE77B7A7FFBBED09B49C97D6A91ACD7C6B57E + 588BBFAF53DFD6421E873C0EE5982532ADE48FF9362CE98F388DF338B6E9A73E + CDF7B7EEAF8D535BDDDABF763CAA5F1B5F73CBADCDB9977E5F73CEB90A010000 + 2CAE975EF842F3C263FFAA79F0037FDC1BA524BD96D0B725FBF9676AE36891AC + E7711A87D4A7F990C7218F433966C9A4648FE557FEACF3718AA34F2DA43892F3 + 324EC97B8AF384BE1C0F4BFACBAFDBD9EC3B706173D9377F6773CE457FD7F301 + 00005828719FFF4B4FFDDBE6D18FFC9BE6F9C7E3E9FE29414FAD96E00F9B2BE3 + 48D2CB38FA320E29CEC7491E8772CC128AE48DEE287FDEF938C5795F6B91A497 + FDB03649F2BF76BCEF920B9B2BDEFCDF37FB5EF5EDBD310000CCB7E7BFF47BCD + 673FF42F9BE79FC813FF3C792FC7B5B8FC7CAD45B25EF6B516CA3EE47128C72C + A948E0E896F2679E8F539CF76D2D92F4D49771DEDA92FCE1C97F3EBEE0EACB9A + CB0E7F5FB3F78213BD310000CC97179F795FF3C593FFB279F2A1CFF74691900F + 4BFAF3F1A8CFE52D92F4328EBEAD85B20F791CCA314B2C9236BA29FFD997EB20 + C6692E8F23214F7D9A4F713F595F1BE72D4FF0C74FFEF3A6100000C03C89C4FF + D193FFAA79E6A1477BA3949CE72D4FE88725FBC312FF6891A4977D8A43EAD37C + C8E3241F97C7E88094D8D14DE5CF3F1F479CC6B538B548CECBBE8C53AB25F6E3 + 25FF7953080000603B8D4EFC531B96F40F9B8B16097A394E73294E2DB4C5218F + 4339A6232249A3DBCA35908F539CF76D2D92F3B6BEAD4D9EFCE72D9E1170D91B + FFAE87050200B0E5BEF270BF0FFFDBE21EFF516D9C2240D92241CFFB140F6BA1 + EC431E87724C87448206E53AC8C729CEFBBC8548C8D3B88C532BC7799B2CF12F + 5B14020EBEE1C666FFABBFD7EB03010098AA789DDF735FF8CDE6D4BD7F3A61E2 + 9FB77192FE68919CE7711AE77148E3D442D9873C0EE5988E89A40C42B9166AE3 + 34578B538BA4BC8CF37E23AD2C10B4FD5B3B9A2BDE745373DEE5279ABDFB8FF6 + C60000B0312F3E7767F3ECE7DED77CF6CF3ED81B45E29C12F3AD6AE9BF91F765 + 9C5A688B9351633A281229486AEB219F4B71DE0F6BFDA47C354EE35ADCD6DA76 + 07D4BE7675EE82AB5FD3BCFA1BBEA3D9B5EFA85D0100008C25AEF69F79FECEE6 + 0B7FF9BBCD335F79A27F9E944FB3E5FF668AA32FE3B616CA3EE471529BA38322 + 618252B92EF2718AF3BE8C534B49792D4EAD1C8FDBDABE2EFF6FF5E7AE78D331 + BB02000068B57AB5FF8EDEA89694A7B9616DDCCF45CB3F9BFF77522BC7D14219 + E77DC8E3508EE9B84892A0A65C1BB5719ACBFBB69692F23C5E9BA8D7C76DADED + 73F9FCDAFFC6BE4B2E682EFDFA63CD79AFF9F666F739AFEDCD0100D0552FBFF4 + A9E6D9CFFF5EF3D85FDDD13CFFC433BD9932198FBE8C6B6D23C763AEFC6F8C6A + 21EF539C8C1AC34A62046DCAF5D136CEFB324E2D25E2E5B8D6E7AD3637EE7C19 + A7F18E955B040E7EDDB1E6DC4B4E28060000744424FD2F3CF1BEE6D4C7EF186C + F18F243925E0B5BE8CCBD676AC9C6FFB77F3F95A0B659CF7C9A831AC88840846 + 29D7493E4E71AD1FD5CAC43C8DF3BE9C6F1B97F3B5CF97C7FA73175F7559F3AA + 6B6F6CF65CF84D6E1300005832B1BDFFF4D31F6DBEF4C09F364F3E1CEFED8FE4 + 385A2D314FFDB0B86D6ED867F2BE1687D4A7F968A1AD0F791CCA31AC1109108C + A35C2B6DE3BC2FE3B65626E5B53EB57C5C1ECBE76A9F1BD6F75BDC2670C9D71D + 6ACE7BF5D166C79E6FF20041008005130FF23B7BFAA3CDB35FB8B379E2E3F70C + B6F747629C5A9990D7FA61F1B8C7CACFE4F3C35A28E3BC4F468D619D487A605C + B5F592CFA5B8D6A716F271B43C09AFC5793F2CCEC7B5CF0CEBF3B63A77F155AF + 692EFCEA43CDB9177D53B363EF372A080000CC999584FFC5BF685E78EAA3CDD3 + 9FB9A779F2E1B4B53F5A2DE1CE93F3B67E589C8F6B9FA9F5A995E368A13617F2 + E3491E27B5395827921C9854B96EDAC6795FC6F9DCF0247C7DB21EFD66E6A21F + 375EDB5241E09C0B5EDBEC39EF9B3C3F000060C6E23EFED3CF7EB479E9994F55 + 12FEB2E509F7A838EFDBE66AF3B5BE8CF3B990FA341FCA38EF935163182A921A + D888DADA29E752E29CE4E3148F6AB5C47C923EC56DE351F1A8D634AFBEE150B3 + FF55AF6BF6EC7B5DB3EB9C5737BBF77DE3CA3C00009BF3F2F37FD19C79E90BCD + E9E73FD93CF7A54F365FB8EB9EC191487CC7696D097919B78DF3BEED33F9E7CA + 78540B791CCA7128C7A1360743F51318D8B8720DB58D87F5E3B47113F751E35A + 5FC6C3E6CA16D6CFC54E81BD075FD39CFF55DFD4ECD8755EB3E7DCD735AFECF8 + 2AB710000014620BFFCEB35F6C4EBFF0C9E6EC99679B2F7FF1A3CD8BA73E3FB8 + B21F52429C5A28E7CA564BC26B497AD9A778D438EFCBF9715AC8E390CFE7468D + 616C298181CDA8ADA3722E8D6B7D6A211FB7B53231AF25F2653FEA586AE5E743 + ED73211DAF1D2BE3D57EA53870E9AB7BBFBB77AC1408C24A91206E27D8D9FFCC + D95DAFED8DCF5B890100164D4AEA57BC72B639FDD2A75692FB10097EB3E36CF3 + E2635F2892FCB22FE37C2E92ED501E4BF379325E4BCCD35CD98F7BAC8CC769A1 + 8C6B7D528E436D0EC69612139886723DD5D657CCE5F3F9B8168F6A6572DE36CE + E7DBE2DA386F712CA4BEF69968A18C87F549390EB539008079364EE29AC6C3FA + 322E5B88243CF5B5CF442B8FB525F1296E3B3E6CAEAD856171DE27E538D4E660 + 62920BA66D9C24368DF3F988F3F932CEE74625E9C3E6CAE3A3C693B4501BA73E + C5A11C27E55CED330000F36CDC84369FCFC7795FCE6FA49509FBB0F1A8CF962D + 8E87723EB4C5219FCF8D1AC3A6482ED82A9324B7F97CC4F97C2D8E243DA4B9D4 + 8625EFB5636D7361D8BF55B6306C2E8CEA73E3CE0100CC935AB23A6C6E585FC6 + C3E6DA5A4ACE6B49FC2473A1762CA4E3F95C5B1CF2F95C390EB539D81449055B + 6D9C64368DF3F988CBF934571B8FD3C649EE272900845173A19C4FCAE3B9DA5C + 6ED4710080AD362A411D96D4E6C7222EE7D35C6DDC3657B661C97B6AE37CA6AD + 85DA38F5290EE5F1A41C87DA1C4C8524825929D7DAB0A4373F16716D9CE6CA71 + 4AE0F3F95ACB13FDD4D73E576BA1361F2D0C8BF33ED4E6726DF30000F3AA2D81 + AD25C1E55CF4C3E2B285DA7CADE5C97EEA6B9FCB5B489F2FE7CB71A88DF33E57 + CED53E035325B960966AEB6DD85C7EAC9C8B7E585CB6306E7160540B93CC0DEB + 435BDC669CCF0000CCC238496BFE995A3CACCF5B18676ED2166A497EDEC2B038 + EF436D2E19770EA64E22C176A8ADBB6173F9B1722EFAB6B9DA38CD8D2A0684DA + 7CB4306C2EB4C5219F4FDA62008045564B8A438ACBB97C7E583C6C2EB5509B8F + 16DA92FED0360E6D7DA8CD25E3CEC1969168B09D6AEB6FD85C792CC6F95C3E1E + 154F7B2E8C13877C3E376A0C00B028CAC4B66D9CCF479CCF8F1B4F7B2EB4C5A1 + 364EF23819770EB69C048379505B87A3E66AF1B07EDCB83617F263E55C28E3B2 + 4F71288FE7C69D030098479326C0F9B188CBF9BC1F16D7E6427EAC9C0BC3E261 + 7DA8CDE56AF36D9F85999058304FDAD6E3B0A4B83C16E37C6ED8789A71D9B71D + 0BB5B964DC39008079346ED29BE6F263E55CF4B5B9D44F3B0EA3C6218DCBF950 + 9B0B6DF33053120BE651DBBA1C951CD7E272AE6D5CEBDBE2B21F762CEF436D2E + 29E76A9F010058046D49732ECDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2 + A43617DAE6615B483098676DEB739CF95A3C6CAED6A738E4E3517D88B81CE77D + 326A0C00B0E8CA24B86D9CCF475C8E47F5290EF978541F86CD853CCE4D3A0FDB + 4AB2C1A2685BABA3E6CBE3B5F971E646F5619CCF84DAD7D40C3B060030CF8625 + C0C312EB346EEBC3A8CF947D18772EB4CD2793CEC3DC9060B068DAD6EC38F3E5 + 67D2789CF969CC853C4EC69D03005824B58478D45C2D9ED65C18351FCA63C9A4 + F3307724192CB2B6F53BEE7CDB7833F36D7118762C37EC1800C02219961C0F4B + BADB8EA5B8EDF393CE27E53899741EE69A448365B0D1643A3F56FB5C9A9BE458 + 3E1EF675A1767C1C1BFD3A008069DB68229C7F5DEDDF18763C8D877DDDB063A1 + 763CD9E831987B120996CDB0353DC9B1DA67F3B9CD1E4F6A730000CB6C54729E + E4739B3D1E6A9F49367A0C168AE48365366C7D8F5AFBE5F1B6CF6FF473A1EDB3 + 0000CB6E9C843D29E737FBB964D8F1515F0B0B490242578C5AEB1B393EEC6B26 + FD7C9B8D7C0D00C076DA48F25CFB9A4913F451FFDDCD1E878527B9A08BC659F7 + 9BF9CCB4FE7D008065364EC2DDF699CD7C6D4ED24FA7EC1AF4D065B34ED825FF + 00007DA312F0491274093F8CA00000EB8D9BA04BE401003667A309F9B85F27E1 + 878C0406469BF43C715E01004CC7A409BC841F8690A8C0C66CE6DC71DE0100F4 + 6D266197ECC3842422305DCE290080E992E8C394485660B69C7300006B49F001 0000000000000000000000000000000000000000000000000000000000000000 - 80CED831E881D970CE0100AC756ED0035B4C3202D3E59C0200982E05029812C9 - 0A6CCC66CE1DE71D0040DF66927B850198904404469BF43C715E01004CC7A449 - BEA2000C215181F5C63D2F367AFE38EF0000FA369AB08FFB750A02909188C078 - E7C124E7CAA8CF3AEF0000FA4625E89324F0E37C5641804E9388D045D34AF8DB - 3E33AD7F1F0060996D26619F56B2AF2040A74842E88A516B7D23C7877DCDA49F - 6FB391AF0100D84E1B49AA6B5F33ECDF99F4F361B3C761E1492E58669326E8B9 - F278DBE737FAB9D0F6590080653749025FCE6FF673C9B0E3A3BE161692048465 - 336C4D4F72ACF6D97C6EB3C793DA1C00C032AB25D7A3E6367B3CD43E936CF418 - 2C14C907CB60D83A1EF758ED73696E9263F978D8D785DAF1716CF4EB0000A66D - A3C971FE75B57F63D8F1341EF675C38E85DAF164A3C760EE492458646DEB77DC - F9B6F166E6DBE230EC586ED831008045326E325D7EAEED588ADB3E3FE97C528E - 9349E761AE493458346D6B769CF9F233693CCEFC34E6421E27E3CE01002C925A - 923C6AAE164F6B2E8C9A0FE5B164D279983B920C1645DB5A1D355F1EAFCD8F33 - 37AA0FE37C26D4BEA666D831008079362C291E966CA7715B1F467DA6ECC3B873 - A16D3E99741EE686048379D6B63EC799AFC5C3E66A7D8A433E1ED58788CB71DE - 27A3C600008BAE2DC14ED2389F8FB81C8FEA531CF2F1A83E0C9B0B799C9B741E - B695648379D4B62E6BF3F95C2D2EE7DAC6B5BE2D2EFB61C7F23ED4E69272AEF6 - 190080455026C0B58438CDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2A436 - 17DAE6615B483098276DEB7158B25C1E8B713E376C3CCDB8ECDB8E35CD15470F - 35E71D38B412EFBDE0D84ABF63C745CDAEBDAFFFF2FF8FD8B9A317EFBAA83F00 - 005834679F6E5E3E776F3FEEFD1974F6857B9B73E79E5E19BEF0C53B57FA171F - 7FB8F9CCDD0FAFC47D2959CEFBDA5CEAA71D8751E390C6E57CA8CD85B67998A9 - D5A404B64F6D1D8E9AABC5C3FA71E3DA5CC88F9573616D7CC5D1AB5692FC48F0 - 5792FBF35EDFFBB57F55B36BF75583CF000010CEBEF448EFAFA7479AB32FF68B - 045120E817071EE91DCD93ED61716D2EE4C7CAB9302C1ED687B63819770E6626 - 252CB01D6AEB6FD85C792CC6F95C3E1E154F6FEE2BFFD6B166EFF9AF6F76ECFE - DA95047FE7EE6F191C030060335E7EE94F570A04E75EFAEBE68567EF6D3EF59F - 62F7404AA2A3CF5B98C65C688B43390EF9674BE3CEC1964B490CCC526DDD0D9B - CB8F9573D1B7CDD5C6696EE7A02F8FA516D6CF5F71E45073C155DFD2ECDCF3B5 - CDEEBDDFD2ECD8F5FADE3C0000B372EEECBDCD4B2FFC69F3F299BF6EBEF8C89F - 369F3915B71144425DB6509B8F165E1EF4B563B571EA6B73496D2E19770EB64C - 4A7460166AEB6DD85C7EAC9C8B7E585CB6302AE95FDF22E13FFFCA63CDEEFDDF - DAECD8F97A5BF80100E6CCCA0E8197EF6D5E7AEE3DCDB39FBE734841A0AD85B6 - 62406A61589CF7A136978C3B075317490ECC42B9D66A6B2FCDE5C722AE8DD35C - 391E37C94F9FCBFB1DCD2B5F737173E9EB8E357B7A097F6CE597F003002C9628 - 08C4AD03679E7B4FF3C4FD77365FF8C453BDD948B053929FF7313FAC855A7120 - 94E3501BE77DAE9CAB7D06A62A1221D84AB53556CEA5713E1F71399FE66AE371 - DADA643FB5B8CA7FE135B7363BCFFB9666F779DF1A1F00006049BCF4E27B9A97 - 5FFCD3E69907FFA8B23B60926240D9426D9CFA1487F278528E436D0EA6221220 - D80AB5B555CEA5713E1F713E5F8B53229FE6525B9BD8AF6D95A4FFEADB9A3DFB - BFC37DFC00001D11CF0F38F3DCBF6D9E79E8DD2DC5807C9CB7DAB150EE0E086D - 71C8E773E538D4E6605322198269AAADA9722E8DF3F988F3F932CEE7C64FF4F3 - B9D8DE7FF0BADB9ABD177DBFA41F00A0E3A218F0C2D3BFDE9CBEEFDDC56D02D1 - E76D54612094F3A12D0EF97CAE1C87DA1C6C482447302DE57AAAADAF949427F9 - B8168F6A65C2BF7EFCDABF7D6BB3F7C2EF6C76ED39D91B0300C05A67CFBCB779 - E1997FD37CFC3FFE516F5426FCA3C6C35A688B43394ECAB9DA6760629120C166 - D5D6513997C6B53EB5908FDBDAB0A4BF1F5F7EF8EAE6E2D7FCDF9B9DE77DAB07 - F901003096950708BEF89EE6A94FFC5AF3E83D0FF56622F1CE13FE8D1603426D - 5CEB93721C6A7330B648986033CA35D4361ED68FD3D627F9B5F8B5DF7A5BB3F7 - 9237B9DA0F00C0A6ACEC0A78F2779B8FBFE7DDBD515B1160587160580BA3FA64 - D418C61649136C446DED947329314FF2718A47B55AB2BFB6BFE4AB2E695EF5F5 - DFD9ECDAF7FDAEF603003055B12BE0ECF3BFDE7CEE2FFF4DF3E4279FECCD4402 - 9E92FDB22FE3512DE47128C7A11C87DA1C0C1549144CAA5C376DE3BC2FE37C2E - 4FF2531B95F8EF6C2E3F7CA8B9F835DFD9ECD9FBFD4DB3EBA2DE1C00006C91B3 - 4F37675EF8F5E6B3A7DED13CF9C978686024FA931602622E94F3A18CF33E1935 - 86A122998271D5D64B3E97E25A9F5AC8C7D16AC97E1EAF4FFC2FF99AB734BBF7 - 7E476F0C0000B3F5D20BFFB679F2A33FDF3C7A4FBC4A3092FAB2009027FF6D71 - 6AA136AEF5218F93DA1CAC1349158CA35C2B6DE3BC2FE3B6564BF4CBBE97F87F - C3D5CD25D7FE88C41F0080B9B0520878E0179A473F1C0F0C8CE4BE2C00B4F5C3 - 5A28E3BC4F468D619D48AE6094729DE4E314D7FA512D25F82996F80300B078C6 - 2B04E4C97F1E0F6BA1AD0F791CCA31AC114916B429D747DB38EFCB38B53CD9CF - C7F5A43F5A3CDCEFD5477FA4D9B3EFFB7B630000986F679EFFF5E6B377FFC2E0 - 618129E94FC97E5B9F5A398E16CA38EF93516358110917D4946BA3364E7379DF - D652829FC7EB93FE18AF24FE47DEECE17E00002C9E350F0BCCDF1A905A1AE77D - 19D75AC8FB1427A3C6B0927C41A95C17F938C5795FC6A9A504BF16AF26FCF9F8 - 6BFEABEF6CF65CFC23CDAE9D57F6C60000B098CEBEFCE9E6CC53BFD07CF45DFF - A6374AC97F9EF8E7E334578B530B651C521FF23894633A2E922F486AEB219F4B - 71DE0F6B29C14F7199F0AFC657DEF875CD2557FE4FCDCEF3DED81B0300C07278 - F9C53F6B9EFCF4FFBBF9F49FFC558C062D12F3B6388D53DCD642D9873C4E6A73 - 7450246010CAB5501BA7B95A9C5A4AECF3786DB29F37F7F90300D005EDCF0748 - 2D92F4B22FE3D4425B9C8C1AD341919441B90EF2718AF33E6F2125F8D1CA38B5 - 72BCB379EDB7DEDAECBFF4EDEEF30700A01BCE3EDD3CF7C48F371F7FCF1FF506 - 29F14F2D12F4729CE6F238A4716AA1EC431E87724CC7445246B7956B201FA738 - EFDB5A9EE497FDDA16AFF5BBF475FFC2767F00003A296E0B78E2FE7F54BC3630 - 6F91A8B7F56D2D947DC8E3508EE9905D839E6E8A043D978F23CE5B4AE86BF365 - 8B7595FABCED6EAEFDBB3FD05C74E5FFD6ECD8F3DADE180000BA67C7AEAB9AFD - 07DFD45CF2552F358F3F704F9ACD5A487DA8CDE56A9F4D468DE9103FFCEE1AF5 - 4B22CDE57124F5A94FF3298EBE8C57DBE55F7F4D73E9756F77D51F0000322BBB - 01EEFBF1E6D1BF7C3046951657ECCB38FA1487D4A7F990C7493E2E8FD1017155 - 966E49897B52C6F9F17C9C27F7A94F2DD6511EE76D77F335FFD57735171DFADF - 5DF5070080427F37C07734175FFD44F3C447EF4BB3594B6A71D9E76AC7CAB8F6 - 752C313FF06E297FDEE52F80B2AFB548F2CBBEDEE209FF577CD3BF6876ED39D9 - 1B030000C39C3DF3DEE6337FF18F86BC2920B5B87A5FF6B516CA3EE47128C72C - A948E0E886F2679D8F531C7D6A21C591D097714AF4539CEF02D8D95CF3376E6C - CE7FF5DB9B5D3BAFEC8D010080B19C7DBA79FA73FF8FE6C1FFFC27BD419EF49F - 1DF491ACA7B914475FC621C5F938C9E3508E594291B4B1FC2249CFE5E388CB16 - F2E43ECDAF26F8AB2DDFEEDF6FD7FDBD1F6DF61FF8E7CDCE1D5EEF07000013D9 - B9B7D97BE1773497BE666773FAFE3FEB4DE47FA3A73E691B471F097D7E7CDCAF - 6589F9212FBF612776C4699CE25A8B443FF5EDED92AF7C6573E537FDB207FD01 - 00C014C403023FFD173FD43CF9A92FC468448B843FF56D2DE471C8E3508E5922 - 91D4B1BCCA9F6F3E8E388D535CB648ECCBBE6C71D57F6773F5B1AF6B2EBEE6FF - EC0D5DF5070080A939FB74F3D483FF4DF3D09D7FD51B44829F6E05285B24EE65 - 5F6B218F431E8772CC9288E48DE514097B2E1F479CC6292E5B24F7A94F897ED9 - 76AFF4F194FF0BAEF8F5DEC7F6F6C60000C0D4F4FEC67EC52BFF9BE6E2439F69 - 9EF8E8477A13F1377AC8FF764F7349392E8DFAFCA8AF67414512C7F219760247 - 9CC6292E5B4AFA6B6D6D11E0FA37FD5C73DE05FF7D2F060000B6CAEE7D279B03 - AFBBBA397DEF7F1ACCA4BFDD6BDAE673E567468D59027EA8CB67D8891B711AA7 - 386F91E0A73E8F23D94F73FDF1255F794973D5B7FC76B363D7F5BD310000300B - E7CE7EA479E44FBFBB79F253F1AAC0F2768071DE1490B790C7218F43396681D9 - 01B05C2261CFE5E388D338C5A9A5C43E8FFB89FEDAE4BF3F8EFBFD0F7CFD6F37 - 3B77BDA6370600006665C7CECB9A0BAEFABBCDBE0BFFBC79EA91D331D33FB022 - FD7D5F6A9B0FE5FCA8310B4C0160790C3B51234EE314A716897D1ED75A2A04F4 - 93FF78D8DFCE5D97F5C60000C0ACC5EBB65F71D1DF695E71E1ED83224088BFE7 - 4769FB4C393F6ACC825200580EC34ED088D338C5A945729FFAB6B69AFC7FF5DF - F6B03F0000980B8387035E74D5A3CD131FCB1F0ED8261D6FFB5C393F6ACC0252 - 00587CC34ECC88D338C5A945725FF6795B4DFC631CC9FFBE4B7FB617030000F3 - 62CFBE938322C0BDBD51FC5D1F525F1AF778326ACC825100586CC34EC888D338 - C5A9E5497FEAF39627FFFD27FDEFBDD093FE0100601E451160FD1B02DAA4636D - 9F29E7478D59200A008B6BD88918711AA738B53CE94F7D2DF1EF8FAF7FD3BF68 - 76EFFDF65E0C0000CCAB9DBBAF6F0EBCEE50A50890FADCB063A19C1F35664128 - 002CAEFCA42BE3344E716A79D29FFAD45693FED44BFE01006071CCB608C00252 - 00584CF9C957C6699CE2D422A92FFBD424FF0000B00C66570468FB1AE69802C0 - E2693BE9224EE314A716497DD9A79627FFD1764BFE01006081AD1601DE379849 - 221728A5B9DAB150CEE7E3B6AF614E29002C96B6932DE2344E716A79D29FFAD4 - CAE43FAEFCBF5DF20F00000B6EFD4E80247282529AAB1D0BE57C3E6EFB1AE690 - 02C0E2683BC9224EE314A79627FDA94F4DF20F0000CB4C11808202C062683BD9 - F2BED66A897F4AFA532FF907008065355911601C6D5FB7D17F8F195200580CF9 - C994E2BCAFB548F0539F37C93F000074C9E44580B6F9241D1FF539E68C02C0FC - CB4FAA32CE5B88C43E8DF3A43F6F29F18F787773EDB7FD4873DEBEEFEBC50000 - C0B28A22C025AFDDD93C7EDF9FF746E77A2DE510E318F6F97C7E927F936DA000 - 30DFDA4EA688D33812F9D4A7F994EC972D4FFE77355FFDB7BFB379C5C56FEDC5 - 0000C0B2DB7DDE1B9B8BAEFA4CF3C4C73E3298C9738C61E273A908502B06E4E3 - 71FF4DB68102C0FC6A3B89224EE31447429FC7B5B63EF9DF77E9CFF6620000A0 - 2BF6EC3BB9C92240527E5D3E1EF7DF64C61400E653DBC9147D19A79612FD3C4E - 097F8AFBED8A6FF9BAE6A257FF7F7AD37B7B630000A04BF69CF72DCDEE0B3ED0 - 3CF3C8E9C14CA996E8E773493A5633EC18DB4401603EE5274B8AF3BE6C65E29F - 27FDA9EFB7577FDDD5CDC16B7FB7175ED81B0300009DB3736FB3FFE2BFD3CB14 - DED57CF1F3CF0C2647897CA34D3A36EC33CC010580F9939F34655C6B91E0A7BE - 6C6B0B00175FF3CAE6F26FFCB566C7AE2B7B630000A0B3A20870D91B9B179E79 - 57F3C2532F0C264789BC6394FC33E37C9E198AE490F9D176B2449CC679DFD6D6 - 27FFD1AEFCA67FDE4BFEAFEFC5000040D7456E1039429E33ACCD256AB9466A21 - EF531CDA62B659FC60991FB51325FA32CE4FC688CB969FBCBB57FA6BFFDE5B9A - 3DFBFF6FBD180000A06FE7EED73497BC6667F3F8FD7FD61B457E51BBD7BFA6FC - 6C8C99730A00F3233F61529CF7652B93FEBCA50240BF7DD5895B9BFD97FE935E - 0C0000B0D6EEF3BEB939FF2BEE6F9EFCE4270633E3682B1444AE92F7218FD946 - 0A00F3A1EDE488B8D622C94F7D9EF4E7C97FC4BB9B436FFCBAE6A22B7FA937F4 - C47F0000A0EEBC7DB7347BCFFF40F3F4A7E3CD0091DC47BE912B13FEF2784DFE - 99713ECF165300980FE964284F90348E643EF531177DD9CA02C0AEE6E2AB5FD9 - 1CF8BA5F6A76EEF6D03F000060889D7B9BDD171E6DCE4CF450C024150C6A8583 - 72CC365200D87EF90991E2E8CB3892FB3CCE5B4AFAF37877F39ABFF53F37BBF7 - DEDC8B01000086DBB9EB6073FEABBEA239FD91F7F546B52DFEB5B910394A7E2C - C6356DF3CC8802C0F6CA4F8032AEB532F14F2D25FDABEDAB6F7B53B3F7A21FEE - C5000000E3D9B9FBFAE6A22B3FD33CF1B1FB0633E3682B0C2491CB2479CC8C29 - 006CAFB4F8CB13228D23B94FE31497897FEA57DBE5DFFCF5CDC597FF7CEF90FB - FE010080C9ECD9FBC666D7FE3B9A2F7EFAB1C14CA94CF853FE92C4F172AE1CB3 - 0D2279647BD44E80984BF3795FB6BC0890B77E01E092AFFC5F7ADD85BD180000 - 6042BD5C6225A7F8F245C65AEE11AD96AB84BC4F71AE36C70CC40F93D9CB177C - 19D75AED64CB4FC678D77F7FFCBA6FFB1F9B3DAF38D18B01000036269E07F0CA - D75EDC3C7EDFED8399905FF9AF6DFB772BC09C5300D81EB5851F7D8A23A94FE3 - 14E7897FEAD7C657FF17C79AF30F7ADF3F0000B079BBCE3BDCBCE2D2BF689E7A - F0D3839951497FCA67923856CEB18D227964B6F21320C56D73658B9F57EA53EB - 17012E3AF4CAE6822B629B0E0000C074448E11B9469E7BACB63C47295B487D18 - 36C78CC40F8BED512EF618E72DA4B83CC1D6B7CBBFF1879B5D3BBDEF1F000098 - 9EC83122D7A8E520FD56E62BD1428AF3B9A41C332351C16176F2859EE2FC84C8 - 4F9AF2645ABBDD7FB5ED1E6CFDFFC7BD18000060BAFAB7027C70702B40DB7DFE - 1BBD15A06D9E2D100925B3912FECDA224F73D19771590C586D171DBAA4B9E08A - 7FD68B010000B646E41C917BD47292B5394BB450C6A57CAE769C2D103F24B64F - 3A29F216A2AF9D5065DB65EB3F0000B0E5566F05483B93CB56CB6142F465639B - C40F86AD972FF214D7167F9ACB5B7E12E5AD97FC7FF3D736E79DFFDFF6620000 - 80AD15B947E420ED458068B59C2697CFE5C7CACFB105E207C4ECD416753A0186 - B57422E527D6CEE692AFB4F51F0000989D4BAEFEC9DEFF5C9B97ACCD5946B552 - 6D8E2D12951BB656BEA0539C2FFE1497274F59558BF16AFBEABFF3FDCDDEFD7F - BF17030000CCC6CEDD5736175DF3C5E689074E0D66423CE42FB5248F433E4EB9 - 50A96D9E2989C492D9A82DE698CB5BC8C7790160B55D74D52B9B7D17FC3F7B31 - 0000C06C452E1239492D57E9B73CA709F938CDE56A736C81F8E1B075DA16779A - 4F716AB593269FEBB7CBDFD04BFE775DD88B01000066AC978BACE424955C6578 - 6E935AC8E35C6D8E29891F065B6FD8C24E0BBF6CF909B3DABEE2FAAB3DF80F00 - 00D8569193446E52CB59FAAD96E3440BA9CFD5E698B2F8C1B035DA1675BEE8CB - 38B5FCA44971BF1DF85A0FFE030000B65F3F37599BAFACCF67F216DAE25C6D8E - 29881F0A5B6BD8824E0B3E6FF989924E9C7E3B74CBB734BBF77E532F060000D8 - 5E919B448E52E62DF5DC266F21F5B9DA1C53143F10A6AF6D31E78BBD8CF3569E - 3CFDF88257FF0FBD1E0000603EF47394F5B9CBEAB86CA12DCED5E6D8A4F8A1B0 - 75862DE4B4D0F3569E24AB27CF6B6FFD8E66F79EEB7A310000C07C881C257295 - 3C77599FD3E4E3D442EA73B539A6247E184C57DB22CE177919474B27463A69D6 - B67D977AED1F0000307FFAB94A3D8F599BEBA416DAE25C6D8E4D881F045B63D8 - 024E0B3CB5FCC458DF5E7BEBB7373B765ED18B010000E64BE42A91B3D472997E - CB739EBC85D4E76A734C41FC10989EB6C59B2FEE326E6BAB278CABFF0000C03C - 5BBF0BA096E3E42DB4C5B9DA1C1B143F18A66FD8C24D0B3BB57472E427CB6A73 - F51F0000987776012C84F801301D6D8B365FD465DCD6564F1257FF01008045D0 - CF5DD6E633C35B688B73B53936400160FA862DD8B4A0534B27453A41D63657FF - 010080456117C0DC8B6F3E9BD7B658F3C55CC66D6DF50471F51F000058249E05 - 30D7E207C2D62A1772D9F29363B51DBAF98DAEFE0300000B257298C8656A394E - BFD572A26821F56C91F801303DF9C21D16B7B5D513E38257FD77BD1E000060B1 - F47399D5DCA69EFBE42D0C8B9992F861B039C316647E2C2DE2D4D289909F18FD - 76D5375DDFECDEFB4DBD18000060B1442E13394D2DD7599B0BE52DC9E3D2B063 - 8C21BEF14CC7A8855A6BF9C25F8D2F38F40F7A3D0000C062EAE734C3F39EF5AD - CDB0634C400160736A0B315FC0790B292E177D1AEF6C2EBAEAE266CFBEBFD78B - 0100001653E43491DBE4B94E3D078A16F263792BD5E618537CD3D95A69E1B62D - F8BCDFD9BCEA70BC3603000060B1F5739B7E9E53CF8152CBC76CA1F846B37969 - A1E68BB6B680D35C6AF909D06F7B2FFADE5E0F0000B0D8FAB9CD6AAEB33607CA - 5B2E9F2B633629BEF96CCCB005582ED8B6969F083B9A43377FB357FF0100004B - A1FF4AC06F8E68D0D6E63FED2DA4BE66D831865000D8BCDAE22B176E6D9C2FFC - FE8970FE657FBFD70300002C877E8E5326FE791C525C8E4BB5392610DF78A623 - 2DD27C51E673D1D2422F17FFCEE6C22B3DFC0F0000582E91E344AE93F29EE1B9 - 516A496D8E4D886F36931B6701E68B356FE5A2EFB7AFF8DABFD5EB010000964B - 3FD759CD7DEAB951D94619E73314E21BCEC6A545972FD23C4ED25CDED62EF6BD - AFF4F03F000060F9F4739DF65C68B5E5F2B93266831400A6AB5CA06D2D2DF8E8 - 7736977DEDA166D7EED7F562000080E512B94EE43C29FF599B130D6B21F54C41 - 7CD399CCB80BB0B670EBED92ABFF66AF070000584EFD9CA79E0FF55B28C7A38C - FB3906140036AE5CA4218F933457B654FDDAD9ECB9E8DB7A3D0000C072EAE73C - AB39503D478A96CBE7CA980D886F3CD3512ECCB6B676C15FF6B557D9FE0F0000 - 2CB5FE6D0057F5A27A5ED4DE42EAD9240580C98CBBF06A0B365ABEC0FB0BFE92 - 6B4EF47A000080E5D6CF7DCAC43F8F438AD37894713F474F7CB3995CB938431E - 27314E0B3A5FD8AB6DCF85DEFD0F00002CBF7EEEB33E275A9F33E5D267421933 - 210580E9281764DE42DEC7F7BCBFB02FBDCEF67F0000A01B22F7891CA8CC8BFA - F2BE6C21F56C8202C0F8C65D70B5851A2D2DEED5F181D7D8FE0F000074473F07 - 5A9F1BADC6213F368E713FD7790A0093AB2DAEDAE24C73ED6DF7FE6FEAF50000 - 00DDD0CF81EAF9D1DA96ABCD85DA1C4328006C5C5A84F9A2CBE76A6D6DA56BF7 - DEBFD1EB010000BAA19F03B5E748F596D4E6988002C0F4E48B312DC8F6B9AFFC - 2F6DFF070000BAA79F0BADCF9146CFB1490A00E3D9C8822B176CB4F87EF7DB9E - 8BBFB9D7030000744B3F175ACD8DEAB9D3A436F2359D13DF6CC6971655BE2853 - 5C1BB7B73DAF7843AF070000E8967E2E54CF93D6B7D0360EA9670C0A009B532E - BA5ABFBE5D78C5455EFF0700007452E4429113D572A57E0BA37A364001607A62 - 21A616F27E6D3B709DEDFF00004077F573A2F5B9525FDEE7F36C9202C068C316 - 5BDB624CF3F5B6E742AFFF030000BAAB9F13D5F3A5D5566A9B4F861DA3470160 - 7C6931D5165D9A1BA7ED74FF3F0000D069FD9C28F2D15ACED4D672F95C798C16 - 0A001B575B6C6911E62DAC1DBBFF1F0000E8B2D59C686DAEB4769CCF8714E773 - 4C4001603ACA8599C45C5ED5DAD95C75DCFDFF000000FDDC686DBED4EF4BE938 - 9BA400307D6971E68B7435DE7FA9FBFF0100005673A35AEE94CF31250A00C30D - 5B70E5824CE3616D67B36BAFEDFF000000FDDC28DF0130AC25E5B834EC58E729 - 008C272DA2DA62CBE76A9F4B717FBC6B8F02000000C06A6EB436675A1FA73EC5 - 49ED730CA100B031B54556CE45BFB65D70F9C5CD8E9D57F4620000806E8BDC28 - 72A4326FEAB750F6A136C7981400362F165EBE08DBC63B9A4B5EE3EA3F000040 - D2CF91D6E64D7D6D6336410160E3CAC5575B9C6BDBDE8BAEEBF5000000847E8E - 54CF9FFAF23829C78C4901A0DDB045552EC6FCB3B563FDB6679F1D00000000C9 - CEF3E216E9F5B9535FEAC3B063A561C73A4D0160B47C818DB3C8DA3EB7A3D9B9 - FBCA410C0000C09EBD69074029CFAB6AC793713F478F02C0E46A8BAB9C8B7E7D - DBB9F3DA5E0F000040E8E748F5FCA9AFEC436D8E3128006C4E2CB87CF1B58DE3 - 0D0017363B765D1807000000E8891C2972A5327FEA6B1BB3410A00D3575FA497 - BCC603000100004AFD5C697D0EB53A664A140036A65C88E5025DDFEFDA7DD120 - 06000020E9E74AEDB9D46ACB9563C6A00050376C31A5636911B67D76EDF1BD17 - 7903000000406935575A9B43AD571E6FFB5C1876ACB3140086CB17D6388B2B7D - 2EFF6C7FBC7377BCDE02000080B5F2670024699CE6F263A5713FD7790A0093A9 - 2DAA722EEF57630500000080F576BF227600D4F3A87A1F6A738CA000B071B1D0 - DA165B3AB6FA991D2B552D000000EAD6E751EB0D3BC6080A00D3317A91EE3C2F - DE6F090000406ED779DFD8FB9FEDB9D4F05C8B0928004C57BE38F3060000C070 - B55C2A1A53A20030B97201960B73FDF1835F73E520060000A0D4CF996AB956EA - 53CB9563465000D89CB605B77681BEE2320F0004000068B39A33ADCDA5D66B9B - 670C0A00EB0D5B50E958DB82AC7FEDB9A1FF26000040B7B5E74C6D79579A1F96 - 6B0D3BD6490A009B376CE1C5DC8E66F79E0BFA43000000D6E9E74CFDFC69BD61 - 391713500018AD6D11E6F2E3E9F3696E47B3F7C2EB0631000000A57ECEB49A43 - ADCDA9421ED7949FA74201A05DB9786A8B69D4672C40000080F16D24C792878D - 490160726931B52DAA984F0D000080C98CCAA9D2BC9C6B420A001B532EB4618B - 130000808DABE55BF2AF0D5000D8BC510BCFC2040000184D6EB5C51400B6567F - 81EE3AEF752B3D000000157BAE180492FC2DA400305DF9625D8D77ECF21A4000 - 008036BB775F3E88423DAF62D31400A6272DCCE82D58000080C99479541ACBA9 - A64401000000003A40016073F2AA548D4A150000C0F846E55772AC4D50000000 - 00800E5000984C5BB529CDE7C755A60000002657CBABDAF22B79D7041400A62F - 1660B108CF5994000000ADD6E54C95BC8ACD5200000000800E5000000000800E - 5000000000800E5000000000800E5000D8B8711F48E1C115000000A3C9B1B698 - 0200000000748002000000007480020000000074800200000000748002000000 - 0074800200000000748002000000007480020000000074800200000000748002 - 0000000074800200000000748002000000007480020000000074800200000000 - 7480020000000074800200000000748002000000007480020000000074800200 - 0000007480020000000074800200000000748002000000007480020000000074 - 8002000000007480020000000074800200000000748002000000007480020000 - 0000748002000000007480020000000074800200000000748002000000007480 - 0200000000748002000000007480020000000074800200000000748002000000 - 0074800200000000748002000000007480020000000074800200000000748002 - 0000000074800200000000748002000000007480020000000074800200000000 - 7480020000000074800200000000748002000000007480020000000074800200 - 000000748002000000007480020000000074C08E41CFAAF43DC9FBD4A26092FA - 5D599FDAEE4ADBD3BCFE4DBFDAECDA7B432F066875ECA65B9A83070F0E46CCC2 - 73CF3DD73C70DF479A871F7A703003006C8BB32FDCD5DCFBBB3FD08BCEF4DA4B - 9576366B2F67FDB9C138FAD442D9D393925C56A5EF49DEA7A600004CDDFEFDFB - 9B1FFD89B73687AEBE6630C3AC4511E0977EF1E7570A0200C036500098894860 - 01D846DFF5DDDF2BF9DF66D75E777DF30FDEFC43831100C072520000D866876F - F8C641C4763AD2FB39C46E0C008065A50000B0CD249DF3E3F00D6F18440000CB - 47010000068E1CB51B0300585E0A00003010B7011C3878D9600400B05C140000 - 20134500008065A40000009963C76F1E440000CB4501000032F14A46B7010000 - CB480100000A274EDE3A8800009687020000148E781D2000B084140000B6516C - 3767FE1C3878D0CF0600583A0A0000DB68DFFEFD83887973E2E46D8308006039 - 28000040C561AF030400968C0200C036F2B4F9F9B57FFFFEE688220000B04414 - 0000B6D1C183070711F3E8C8510F0304009687020000B43876D3CD2B3B010000 - 96810200C036BAF675D70F22E6D561AF04040096840200000C71E4A8E7000000 - CB410100601B5DE55DF3732F1E04E8618D00C032500000D846EE2F5F0CDE0600 - 002C030500806D72ED75EEFF5F14C78EDF3C88000016970200C03671F57F711C - BAFA1AB70100000B4F0100609B4452C9E2B8F126BB000080C5A60000B04DAE3A - A400B0488E1DBF651001002C260500806D72E0E0C141C422889F975D1B00C022 - 530000D80671FFBF6472F178182000B0C8140000B6C1E11BDE30885824C76E72 - 1B0000B0B8140000B6C191A3DE2BBF8862E7C6911BFCEC0080C5A40000306392 - C8C576E4A8DD1B00C0625200009831DBFF17DBE11BBE71A5880300B068140000 - 66CCF6FFC516C9BF220E00B08814000066C8F6FFE5A08803002C220500801972 - E578394411C76D0000C0A25100009821578E9787570202008B46010060866CFF - 5F1EC78EDF3C88000016830200C08C48FE97CBA1ABAF690E1CBC6C300200987F - 0A000033E2FDF1CB4751070058240A00003312EF8F67B99C3879DB200200987F - 0A000033E0A9F1CBE9C0C1832BB70200002C0205008019B0FD7F7979182000B0 - 28140000B6585CF93F76932471591DB941710700580C0A00005BECB00471A9C5 - 6D001E0608002C020500802D76E4A8E470D9B9C5030058040A00005B28B6FFBB - 3ABCFCBCE1010058040A00005BC8F6FF6EE83FE7E196C10800603E2900006CA1 - 13276F1D442C3BB77A0000F34E0100608B1C38789977C47748DCEA113B010000 - E6950200C01671EF7FF7B8E5030098670A00005BE4D871EFFEEF1AB77C0000F3 - 4C0100600BD8FEDF4DF1338F9F3D00C03C520000D80237DEE4EA7F57B9F50300 - 98570A00005BE0D871AF84EBAA13276F1B440000F345010060CAFADBC00F0E46 - 744DFCECDDFE0100CC2305008029F3F03FAC0100601E2900004CD911AF82EB3C - 6B000098470A00005364FB3F21D6C0B5D75D3F180100CC0705008029F2003892 - 1B3D08120098330A00005374D82BE018B016008079A300003025F1FEF7FDFBF7 - 0F46745DAC8558130000F3420100604A8E1CF5E037D63AE6360000608E280000 - 4C892DDF94EC0A0100E6890200C0141CBBE916891E5587BD12100098130A0000 - 5370E4A8ABFFD4DD78FCE6410400B0BD14000036A9EB0F7B7BEEB9E79A3B3F70 - FB6044E9DAEBAE6F0E1CBC6C300200D83E0A00009BD4F52DDE0FDCF791E67DEF - 7DF760448DB7010000F34001006093BABEFDFF91871F6C1E7EE8C1959D00D41D - 731B0000300714000036C1BBDE9BE6FEFB3EB2D2DF73D787567AD63B74F5352B - 0D00603B2900006C423CFDBFEBE2168070FFFDFD9E3ABB000080EDA60000B009 - 5D4FEA62EB7F72CF5D1F1C44D41CF13A4000609B2900006C503CD9BDEBDBBA1F - 79E8A141D47F1B405E1060AD03070FAEBC11000060BB2800006C9027BBAFDFF6 - 7FCFDD9E0330CC8DC7DD3202006C1F0500800D724F77EC00587BC5FF9407010E - 7558D10800D8460A00001B60FB7F7DCBBFD7010EE7AD1100C076520000D88013 - 276F1D44DD959EFE5FF23AC0E18E1CF5304000607B2800006C8027BA37CD230F - D71FF8E77580C31DBBE9E6959D000000B3A6000030A1D8FA1F4F74EFBAFB5B76 - 00B4ED0C60D561052400601B2800004CC8C3FFFADA12FDC74F3FE67580231C39 - EA390000C0EC2900004CC8F6FFD157F9ED02182E1E04180F9204009825050080 - 09F41337DBFF1F18719FFFA9BB3D0870146F030000664D010060029EE0DED776 - FF7F123B00BC0E7038B7920000B3A600003081C3AEDAAE18678BBFDB0086EB3F - 4CD26D0000C0ECEC1AF4ACDA51E96B2D8A27A91FD6763597BDFEBF6E76EEBEBC - 17030B2CB66CDF78D32D83517745627FE71DB70F46ED2EBEE492E66BBFFE1B06 - 23DAFCF55F7D781001CC5EBC96F4AB5EFBD52B05C9D4A240F94D6F3CD6BCEEBA - EBD7B4987FE9CC99E6E9A79E1A7C354CD1B9B38F368FDDFBEF7BD1CB2DED5C4B - 0BA967844860592B7D4FF23EB548E8531FC593D4A7B6BBD2F634AF7FD3AF36BB - F6DED08B8105F67D6FFEA19577B877DD7FF877EF6CFEE0F7DF3918B58B3F227F - E6ED3F3F1851F3F8E9D3CD4FFEF88F0C4600D31749FBBE5E921F09FCBE7DFB57 - C6E1DADE78A34EDDF5A1E637DFF1CB6EF562BACEBE705773EFEFFE402F3AD36B - 2F55DAD9AC454120F591FC97058250F6F4A4249755E97B92F7A929004047C515 - 92B7BDFD1756FAAEFBB99F7DDBD8DBFB7FA6F73DF3D0C4E1FEE94FBFD56B1381 - A988A43E12FC4387AE69AEBAFAEA2F27FB5B218A00BFF48B8ABC4C9102C04C44 - 020BC008876F7883E47F60927BFB4FDDF5C141449B13276F1B440093895BD3BE - EBBBBFA7F9B19F786BF3CBBFFE5B2B7D8C63B7DA5626FF21FEDB5BFDDF00A64F - 0100600C478E7AF85F98F4C17EA35E1788074B02E38B5BAB4E7CEB6D5F4EF8FF - E10FBF6565BC99EDFC9BB15DFF5D60E3D2367756A5EF49DEA7E61600E8A0B8F2 - FFF3FFF25706A36E1BF7FEFF5CFC91CA70B18D36B6D34272ECA65B9A1BBD2A72 - E53919A7EEFE60A7CF8FB8CA1EAF0D3D72C31BE6EE96AA8DFCFF0468E5168099 - 48492EABD2F724EF535300800E8A3FC4BFEFCD3F381875DB46EE578F2B55AE12 - 0D77E7076E6F7EE31DBF3C18D175714537B671B32A7EEFFCE63B7EA533CFCB88 - 2BFDB1C53E6E119AE7E7A8280030550A003311092C0043D8FEDF174F7BDEC81F - DFA7EE76657B94B80DC03326483C1762BDB80AFEA33FF1D6A5BFE73C92FED8D6 - 1F6F5089229087A802D3A600003044BA0AC3E4F7FF271BFDBA2E89E43F1E3409 - 41D25717E749140196AD5816FFF7FCDD6FFBF695B7A644F2EFFFE7005B490100 - 60087F88ADDAE895FCD83510F7F1329C9D26305A24CBDFF5DDDF3B182DB62830 - 7FDF9B7F68E519337FE7EF7DBBC20F30130A000043C48397E8DBCC957CBB0046 - 8B62D3B25DD964639C2FC3C52BEE16F95C49897F6CF38FFF5B0066490100A045 - FC91E61DC77D7105FFF1D38F0D46938BA778335A3C7012182D1E94B86824FEC0 - 3C5000006861FBFFAA53776D2E817745733C769C101EB8DFF932CADF5CA00725 - C66E05893F302F1400005A7812F7AACD2624F106014580D162C7495C2504868B - A47ADE8BB4F1BF633CDCEF6D6FFF05893F30371400002AFA8998073225A7EEDA - FCABFCBC0E703C374A143AEF7EC5B2B11C393ABF6FCE88DB7922F18F87FB79B6 - 07304F1400002A6CC55E358DE43FD801309E63C73D0700C671780E77005C7BDD - F5CD4FFD93B735DFF7E61F94F80373490100A0E28877B27FD9B4EE47F63AC0F1 - C4CE130F9FEC36E7C97822C19E977325FE7789FBFC7FEC27DEEAFC05E69A0200 - 40C1F6FFB5A6B50320D805301E3B50BA6D336FDCE89AB8E2BEDDE28D04EEF307 - 168502004041F2B56AB3AFFF2B791DE078BC0E10C673EDEBB6AF0010C5E2D8EE - FF5DDFFD3DB6FB030B430100A020F95AB5D9D7FF95EC00184F24135E43D96DCE - 95F16CD776FB78BA7F24FFB6FB038B460100201349972B39ABEEBCE3F641341D - F13AC069DE52B0CCE6F909E7302FE276AD59BE3A335DF58FA7FB032C22050080 - 8CA46B5524EBF1E0BE699BD64305975D3CE15C31AABBE2FC633C87AEBE7A106D - ADB8D7DF557F60D129000064E6F1B552DBE59E2DBA526F07C07822F93FEC6D14 - 9DF5C8C3D32FBE2DABAD4EC8E35C8CA7FBC7BDFE008B4E010060C0F6FFB5B6EA - 817DF150C1ADD859B08C8E1C55908251AE3AB4750580F8FF0BF184FF7978DB00 - C0342800000CD8FEBF6AABEFD5F780B3F1284A75975B00C6B7553B00E28AFF3F - FCE1B7380781A5A20000D0137FE07987F3AAAD4ED0A7FD70C165E636806EB24B - 667CF120C0694A5BFEE39E7F8065A30000D023C95AEBD4DD5B7B9F7E24378F9F - 3E3D1831CC8993B70E22A0CDB4B6E8C76E025BFE8165A60000D0E35EEBB5EEB9 - 6B6BEEFFCFB90D603C9190CCF23567B088A6B14DFFD84DB7AC3CE5DF967F6099 - 2900009D177FECC5BDD6F4C5BDFFB3B8FF78AB1E32B88CACCFEEB14366329B7D - 0E40DCEFFF7D6FFEC1C10860792900009D67FBFF5A5BBDFD3F9955A161199C38 - E95EE4AE89B76530BE030736B64B260AC0F1A03FF7FB035DA10000749E7BACD7 - 9AE5D67CB7018C271E72B6D5EF3A8745B691070146F2FFA33FF1563B6C804E51 - 00003A2DEEAD9658ADEA3F9C6F76571E67B5DB60191C3BEE2D15302DF17B3F92 - 7FBFFF81AE5100003ACD959FB566FD7ABE593C6C70591C71AB0AB49AE4A9FD92 - 7FA0CB1400804E735575ADB82F7F96E21900B3FE6F2EAAD8E2AC60D52DB12387 - E94AC9BF27FD035DA500007496EDFF6BC553C7B7E3C1636E0318DF91A3760174 - C9F31E923955927F000500A0C36EBCC9D5FFDCA96DDA8EEF4180E33B6C0700B4 - 1A56D08DDD33927F000500A0C38E1DBF651011667DFF7F12BB0E6C751E4F242F - C76EB26EA1665F4B721FC97FBCEA4FF20FA0000074545C29DAC86BA39655DC8B - BF9D49F876151F16D191A37601C0B8E277FD3F78F30F0D46002800009DE4E17F - 6BDDB3CD0FE2F320C0F1C5D54C57326134F7FC03ACA70000749257AAAD75EAEE - ED7D1D9FDB002673D8FA8575F2670048FE01EA140080CEB1FD7FBD79B802EF36 - 80F19D3879EB20029294EC4BFE01DA2900009D73E2E46D8388302FDBEFBD0D60 - 7CFD22D6658311CBEA81FB9D13938AA4FF1FBCF90725FF002D140080CEF12AB5 - B5E6E53DFC710BC0E3A74F0F468C12CF020056EDDBB77FE5CA7F7E2B00006B29 - 00009DE2016AEBDD73D7F6DEFF9F3B3547FFBBCC3B0FB284B54E7CEB6D927F80 - 111400804E3972D4C3D37271D53D5E01382F3C07607C91E84876008049280000 - 9D62FBFF5AF39670BB0D603276010000935000003AE3D84DB7D8FE5F98C7F7EF - BB0D607C5E6709004C420100E88C23475DFDCFC595F678FFFEBCF1E4F3F1C5EB - 2CAFBDEEFAC1080060380500A013E2CABFA7A6AF35AF57DA6357C23C3D9760DE - DD78FC96410400309C0200D009876D955E679E1FB877CF1CDE9A30AF3CD70200 - 18970200D009B6FFAF1557D8E3817BF3EAD4DD9E03302EBB5B0080712900004B - 4F82B4DEBC5F619FC78713CEB3636E030000C6A000002CBD78FA3F6B2DC21576 - 4580F14581CB1B2E008051140080A5E75DE9EB2D42727DEA6E05804978CEC5F2 - 99E7DB7400584C0A00C0523B70F0B2E6D0D5D70C468445B9B27ECF9CBEA5605E - DDA8D0B574BC0D038069530000969A7BFFD75B942BEB91FC3C70DF47062346B9 - F6BAEB570A5E00006D140080A566FBFF7A8B7465DD6D009351F0020086510000 - 9696EDFFEBC53DC58BB4ADD8830027A3E005000CA300002CAD13276F1D442477 - DE71FB205A0C8F9F7ECC83D02610052FB70100006D140080A575C453D1D759C4 - 2BEAF7B80D60220A5F00401B05006029F5AF841E1C8C088F9F3EBD72457DD1B8 - 0D60320A5F00401B05006029B9177ABD530BFA5ABDB805208A178C270A5F9E7D - B11C9EF71A4000A64C0100584AAE82AEB768F7FFE716B578B15D4E9CBC6D10B1 - C83CFF028069530000964EBC0ACDF6FFB5E20AFA2227135E073899C35E070800 - 542800004BE7C85157FF4B0FDCF79141B498E27FFF457A7DE176DBBF7FFF4A21 - 0C0020A700002C1D573FD73B75F7E26FA1BFC7C30027A210060094140080A512 - 573DE3EA27ABE2CAF9323C497F198A18B374ECA69B9D0B00C01A0A00C05271D5 - 73BD65B972EE7580933BEC61980040460100581A71B5D3F6FFF5EEBF7FB1EFFF - CF29024CE6C851E70300B04A0100581A71B5D396E7F5EE59A257E8791BC064FA - 6FC4B86C300200BA4E0100581AAE76AE1757CC97E9E9F9CB54CC98156F030000 - 120500602978ED59DDB25D315F96071ACED2B1E3370F2216D1C30F3D38880060 - F3140080A5E0616775F1FEFC65E33680C91CBAFA1AB7012CB0E79768070F00DB - 4F0100580AB6FFAF17570E1F3FFDD860B43CDC0630B913276F1D440040972900 - 000B2FAE6EDAFEBFDE9D77DC3E88964BDC06605BF4648ED8210300F42800000B - 4FF25FB7CCF7CA2F6B7163AB1C387870E5560080695AA687CC42572800000BCF - 43CED65BD6EDFFC9323EDB60AB394F8069F35056583C0A00C0428BEDFFAE6CAE - B7EC0972BFC0717A30621CC76EBA6510016CDE6FBCE35796BAD00CCB6AC7A067 - 55FA9EE47D6A513049FDAEAC4F6D77A5ED695EFFA65F6D76EDBDA117035376E2 - 5B6F6BBEEBBBBF673022F9A73FFDD6A5BF4F3E7EEEF1F3677CBFF48B3FEF8ADD - 82F9B19F786B73ED75D70F4630BEF8FF01F95B241EB87F6385E103072E5BB98D - 28AC145F1F3FBDF27B44F2CFD49D7DE1AEE6DEDFFD815E74A6D75EAAB4B3597B - 39EBCF657D6AA1ECE949492EABD2F724EF5353008039F3336FFF852FFF61425F - 5C19FFC91FFF91C16879C5B31FFEE10FBF6530621C777EE0F6E637DEF1CB8311 - 8B4001809AB8F7FE915E32BE92E43FDF7F306ACCC5EF7F89390B4B0160265292 - CBAAF43DC9FBD41400608EC4D6FF9FFA276F1B8C48DEF79E7737BFF3DBBF3518 - 2DB79FFF97BFD2ECDFBF7F3062944810DEFAE33FE2C15D0B440180B8A52B12FC - 871F7E6825B9F70C14969602C04C44020BB0903CD4AC6EA3DB3C17913F842713 - C592C35E0908732B12FDFE4E9D5F59B995EB87BEFF7B9A9FFBD9B7AD1475EFFC - C0FBFDCE03364D01005858DE6D5ED7A53F104FDDED7EF6491D39EAB599302F22 - E18F5D5BF17C8EB7FC773FB892F4C76D3A91ECC731806953000016526CFF77EF - FF7A91FC77697BF73D777D701031AE787682DB26607BC43DFA71853F4FF8E3EA - 7E3C54CFAD39C02C2800000BC9F6FFBAAE5D118F3F986D899D9C5702C2ECC495 - FCFFF0EFDEB992ECC7035AE30ABF841FD82E0A00C04292C0D4753119761BC0E4 - 14D0606B45D21F57F67FF2C7DFB292F8FFC1EFBFD3967E602E2800000BC716E6 - BAD85ADAC53F30BDD77E72FD5B682E1B8C806988DFC179D21FF7F67B251F306F - 1400808573E4A887FFD574752B7CFC81EDCADAE46EBCC92E00D8ACD8C61F897E - DADE2FE907E69D0200B0700EDFE029E635A7EEEEEE03F1EE711BC0C48E1D771B - 0D6C54145CE3557DF120BFB8EAAF08092C0A050060A1D8FEDFAECB0FC3731BC0 - E4E22D1A712B00309EB8DA1F4FF08F2DFEF16EFE78551FC0A2510000168AEDFF - 7591FC77F989D271F52DEEBF65321E0608A3A57BFBDF3A7882BF2DFEC0225300 - 0016465CF93FE6BEE52A4FC28F5D00DDBD0562A3BC4D03DA45E21FDBFCD3BDFD - 5EDB072C03050060611CBEC1D5FF365DDEFE9FDC79C7ED83887145512D6EAB01 - 56E589BF6DFEC0B251000016C691A312959AF863D503A8FAB701B8423739B7D5 - 409FC41FE80205006021B852D9CED6F755F77818E0C4BC5583AE93F8035DA200 - 002C04DBFFDB3D70BFEDFF49975F85B851FD676B781600DD23F107BA48010058 - 08274EDE3A88C8C59677AFC05B15DF0BB7014CCEED357449FC8EF80FFFEE9DCD - 3FFDE99F94F8039DA30000CCBD03072FF3BEF2161EFEB79EDB002617B7D7C44E - 0058765124FCA73FFDD6E60F7EFF9D8A85402729000073CFBDFFEDBCFE6F3DB7 - 016C8CDB6C5866B1DDFFE77EF66DCD2FFDE2CFF762EFF107BA4B0100987BC78E - 7BF77F9B7B3C00701DB7016C8CDB6C5856777EE0F695EDFE764C0128000073CE - F6FF765E7BD7CE6D00938BF32CCE375816F1FB311EF2F71BEFF865BF2B010614 - 0080B976E34DAEFEB7B9F38EDB071125B7016C8CDB6D581691F0FFAF3FFB360F - F9032828000073EDD871AF276BE3E9FFED6CF5DD9813276F1B44B0B86277543C - E82F7A00D6520000E6567F4BF2C1C1885CFC61EB4156EDE2EA9F02C9E4E27C73 - CB0D8BEE37DFF12B7E3F02B4500000E69687FFB573857BB43BEFB0F577239C77 - 2C3A57FE01DA29000073EB88D792B572FFFF68DE06B031CE3B00585E0A00C05C - B2FDBF5DBCCFDA15AEF1781BC0E4E2BCF3304000584E0A00C05CF230B276A7BC - FB7F6CDE06B031478EDA050000CB480100984B875D816C75EA6E57B5C7E53680 - 8D71FE01C072520000E64E6C3FDEBF7FFF60442E92590F009C8CDB002617E79F - DB000060F928000073C7F6E37692D9C9B90D60638E1DBF65100100CB42010098 - 3BB61FB793CC4ECE6D001B63270E002C1F050060AE1CBBE91649478B48622399 - 6572764E6CCC61AF040480A5A20000CC9523475DFD6F2389DD383B2736E6C6E3 - 370F2200601928000073C383C78693C46E9CDB0036E6DAEBAE6F0E1CBC6C3002 - 00169D020030376C376E67FBFFE6D941B1318A7200B03C140080B961FB7F3BC9 - EBE6D941B131C7DC0600004B430100980BB6FF0F2779DDBC07EEFBC820621287 - AEBE66A501008B4F0100980BF1F47FEA6CFF9F0EDFC78DB30B00009683020030 - 172418ED6CFF9F9E5377FB5E6EC411CFE70080A5A000006CBB78CAB82DC6ED6C - FF9F9E7BEEF2BDDC8803070FAEBC110000586C0A00C0B673EF7F3BDBD6A72BBE - 9F9E05B031371E779B0E002C3A050060DBD9FEDFCEF6FFE9731BC0C61C56A803 - 8085A700006C2BDBFF87FB933BDE3F8898163B2A36C69B3A0060F1290000DBEA - C4C95B0711A5C74F9FB65D7D0B3C7EFAB195EF2D933BE636000058680A00C0B6 - F274F176A73CB06ECBF8DE6E4CEC00889D0000C062520000B64D6CFD8FA78B53 - 77E71DB70F22A6CD730036EEB0A21D002C2C050060DB78F85FBBD8A2FEF0430F - 0E464C5BDC5A116F046072478E7A0E00002CAA1D839E55E97B92F7A945C124F5 - BBB23EB5DD95B6A779FD9B7EB5D9B5F7865E0C647EE6EDBF6007408B3B3F70BB - 07006EB1EFFAEEEFF100CA0DFAC91F7FCBCAB314D87A3FF6136F6DAEBDEEFAC1 - 8871FCD0F77FCF200216CAD917EE6AEEFDDD1FE845677AEDA54A3B9BB597B3FE - 5CD6A716CA9E9E94E4B22A7D4FF23E3505009892B897F81FFEF05B06236091FC - CE6FFF56F3BEF7BC7B30622B29004C4E0100169402C04C44020B3073478EBA8F - 181695DB77006031290000DBE2B0F789C3C2EA3FC0F3B2C1080058140A00C0CC - 7995182CBE13276F1D4400C0A250000066CEF67F587C47BC0E1000168E020030 - 5371E5DFF67F587CF1060F6F510080C5A20000CCD4E11BDE60FB3F2C8913276F - 1B4400C02250000066EAC85157FF6159D8CD03008B4501009899B8F21F0F0004 - 9683731A00168B02003033B1FD1F582E1EEA09008B4301009819DBFF61F91CBB - E966CFF5008005A10000CCC4818397D92A0C4BCAEE1E00580C0A00C04C48FE61 - 79D9DD03008B410100988963C76F1E44C0B289025FECF20100E69B0200B0E522 - 313874F5358311B08CECF20180F9A700006C3989012C3FBB7C0060FE2900005B - EEC4C9DB0611B0AC62978FDB000060BE2900005BAA9F141C1C8C806576E34D76 - 0100C03C530000B6946DC1D01DC78EDF3288008079A400006CA923DE0F0E9D11 - BB7D3CF01300E6970200B0656CFF87EEB1EB0700E6970200B0652402D03DC76E - 721B0000CC2B050060CB4804A07BF6EFDFEFD59F0030A71400802D1109402402 - 40F71C39EAD91F00308F1400802D210180EE3AAC00080073490100D812910000 - DD14C9FF616F000180B9A300004C9DEDFFC091A38A8000306F140080A9B3FD1F - 50080480F9A300004C55FCC17FEC26AFFF03BC090400E68D02003055EEFB0592 - 63C7150301609E28000053E5BE5F203974F535CD8183970D4600C076530000A6 - 26B6FFC77DBF0089DF0900303F140080A9B1FD1F289D3879DB200200B69B0200 - 3035274EDE3A8800FA0E1C3CB8722B0000B0FD140080A988FB7CFD910FD47818 - 2000CC070500602ADCE70BB439E2F62000980B0A00C054B8C207B489DB001409 - 0160FB2900009B66FB3F30CA91A3760100C07653000036EDC69B5CFD07863B6C - 0700006C3B050060D38E1DBF651001D4EDDFBFBF397693DF1500B09D1400804D - 89ADFF717F2FC028478EDA050000DB490100D8140FFF03C6150F028C9D0000C0 - F650000036C5EBBD80491CF63B0300B68D0200B061B6FF03933A71F2D6410400 - CC9A0200B061274EDE368800C6D32F1C5E36180100B3A400006C98D77A011B11 - CF020000664F0100D8100FF30236CAEE2100D81E0A00C0861C39EA415EC0C6C4 - B343E256000060B61400800DB1FD1FD80CAF100580D95300002676ECA65B6CFF - 0736C52B440160F6140080891D39EAEA3FB039711BC0B5D75D3F180100B3A000 - 004C24AEFC7B8237300D371EBF65100100B3A000004CE4B06DBBC09478960800 - CC9602003011DBFF8169B1A30800664B0100189B3FD681693BE6360000981905 - 00606CF1F47F80698AA2A2B78A00C06C28000063F3DE6E602B78B60800CC8602 - 00309603072F6B0E5D7DCD6004303D372A2E02C04C2800006371EF3FB055AEBD - EEFA95222300B0B5140080B1D8FE0F6C25454600D87A0A00C048B6FF035B4D91 - 1100B69E020030D28993B70E2280AD114546854600D85A0A00C048473CA11B98 - 01BB0000606B29000043C515B903070F0E46005B47B11100B696020030942B72 - C0AC44B131DE0800006C0D0500602857E48059BAF1F82D83080098360500A055 - BC96CBF67F60960E7B1D20006C190500A0D591A3AEFE03B3B57FFFFE95E22300 - 307D0A00402B57E280EDA0F808005B430100A88A2B7071250E60D68EDD74B3DF - 3F00B005760C7A56A5EF49DEA7160593D4EFCAFAD47657DA9EE6F56FFAD566D7 - DE1B7A312C8CEF7BF30FADFC11CE680FDCF791E6E77EF66D83115D164FB0FFB1 - 9F78EB60C466FCC63B7EA5B9F303EF1F8CBA2BD69337234CE687BEFF7B0611B0 - 50CEBE705773EFEFFE402F3AD36B2F55DAD9ACBD9CF5E7B23EB550F6F4D80100 - AC1357DE6CFF1FDFA9BB3F3488E8BA28063D7EFAF460C4661C39EA7710004C9B - 0200B0CEE11BDE60FBED044EDDA500C0AA53777D7010B119FDB7905C36180100 - D3A00000ACE3CADBF81E7EE8C1E6F1D38F0D46D03477DE71FB2062B3BC0D0000 - A64B010058C32BB82623D9A3D42F0AB90D601A8E1DF71C120098260500608DD8 - FECFF86CFFA7C66D00D371E8EA6BDC06000053A40000AC61FBFFF86CFFA78D9D - 21D373E2E4AD830800D82C0500E0CBE24A9BEDFFE3BBC7D3FF69E13680E93962 - 5712004C8D0200F06592FFC9D8FECF306E03988E03070FAEDC0A00006C9E0200 - F0651EB835BEB8BA1B5779A1CDFBDEFB478388CD3A71F2B64104006C860200B0 - 22B6FFBBCA363E577719259E0FA148341D87ED4E0280A950000056D8FE3F190F - 79631CD6C974783D29004C870200B0C216DBF1D9FECFB83C27627A8E1CF53040 - 00D82C050060F0AEED838311A3D8FECFB8DC06303D711B40EC040000364E0100 - F0F0BF09D9D6CD24AC97E988E4FFB0570202C0A6280000DEB33D81E79E7BCE15 - 5D26E23680E93972D473000060331400A0E36CFF9FCC3D923926E43680E98907 - 01BA0D0000364E01003ACEF6FFC99CBADBFDFF4CEE7DEFFDA341C4661DBBE996 - 4104004C4A01003ACE1FD3E38BEDFFB673B311F77870E4D4285A02C0C6290040 - 87D94E3B19DBFFD928C5A3E9E9DFB674D96004004C4201003ACC7BB52763FB3F - 9B71EA6E058069B9F126BB000060231400A0C3E2BDDA8CC7155C36CB6D00D373 - ECB85B970060231400A0A36CFF9FCC03F77D6410C1C628224D4FBCB9246E0500 - 0026A300001D65FBFF646CDF661AACA3E9F1304000989C020074505CF93FE61E - DA89D8BECD345847D3E30D260030390500E8A0C337B8FA3F89D8B61DDBB761B3 - DC06303D51C88C5B990080F1290040071D39EA8FE649D8B6CD34DD79C7FB0711 - 9BE5562600988C0200748CAB6693B36D9B69B2A3647AE24D261E660A00E35300 - 808EB1FD7F329235B6C23D6E03988A48FEFD4E0380F1290040C79C3879EB2062 - 1CB6FFB3154EDD6D57C9B4B8A50900C6A700001D72E0E065DE9D3DA107EEFBC8 - 2082E9B1B3647AE29626B70100C0781400A043DCFB3F99871F7AB079FCF46383 - 114C97DB00A6C76D0000301E0500E89063C7BDFB7F1277DE71FB2082E9731BC0 - F4B8B50900C6A300001D61FBFFE4BCAF9DADE43680E989DF6DF13B0E00184E01 - 003AE2C69B5CFD9F84EDFFCC82DB00A6C72D4E00309A020074C4B1E3B70C22C6 - 61FB3FB3F0BEF7BE7B10B159274EDE36880080360A00D001FDEDB1070723C661 - FB3FB3D0DF69727A306233E2779CDB9C0060380500E8000FFF9B4C2464B6FF33 - 2BA7EEF230C069F1BB0E00865300800E38E21559139190314B6E37991EBFEB00 - 603805005872B6FF4F4E42C62CB90D607AE2779D870102403B050058721E8C35 - 9948C422218359B2EB647A8E1CB50B0000DA2800C0923BEC6AD84424626C07BB - 4EA6C7EF3C0068A700004B2CB6C2EEDFBF7F30621C1231B683DB00A6277EE71D - BBC96B4F01A04601009698ADB093B1FD9FEDF4BEF7BE7B10B159478EDA050000 - 350A00B0C46C859D8CEDFF6CA753777D6810B159763F01409D02002CA9D802EB - 0FE0C93C70FF470611CCDEE3A71FB303658A0E7B252000ACA300004BCA16D8C9 - 3CF7DC73AEC0B2ED3C83627A4E9CBC751001008902002CA1B8F2EF5DD893B947 - F2CF1C50849A9E43575FD31C3878D96004000405005842B6BE4EEED4DDEEFF67 - FBB90D60BA144201602D05005842B6FF4FC6F67FE689DB00A6E7D8F19B071100 - 10140060C9D8FE3F39DBFF99278A51D313B701440300FA140060C9C4D3FF998C - EDFFCC93B80DE081FBBC91625AEC020080550A00B064FCB13B39C916F3E64FDC - 063035473C130500BE4C010096483CF1DA76D7C9C476EB780600CC937BEEB22B - 655A0E1C3CD85C7BDDF5831100749B02002C11F7FE4FEED4DDEEB766FE7830E5 - 74DD78DCAD51001014006089D8FE3F39575A99578A53D37358711400562800C0 - 92B0FD7F72B6FF33CF14A7A6C7DB5100A04F010096C48993B70E22C6E50A2BF3 - CC6D00D375CC6D0000A00000CBC293AE27E70A2BF34E916A7A620740EC040080 - 2E53008025105BFFE349D78C2F5EFD67FB3FF34E916ABA0E2B9402D0710A00B0 - 043CFC6F72AEACB208A24875E7076E1F8CD8AC1BFDAE04A0E314006009D8FE3F - 39F756B3284EDD6D17C0B45C7BDDF52B0F4C0580AE5200800517F7B5DAFE3F99 - 871F7AB079FCF4638311CC376FAB982E6F0300A0CB140060C11D39EAEAFFA4EE - BCC3966A16CB3D76AC4C8D5BA600E83205005870875DCD9A98EDFF2C1AB7014C - 4FFFA1A96E0300A09B1400608179ADD5E46CFF6711B90D60BA4E9CBC75100140 - B72800C002B3FD7F72F778FA3F0BCA6D00D3E3C1A900749502002CA8B8F26FFB - FFE46CFF6751B90D607AE2C1A9712B0000748D02002CA8C337BCC1F6FF093D7E - FAF4CA2D00B088DC06305D274EDE368800A03B140060411D39EAEAFFA44EDDE5 - 0A2A8BEDCE0FBC7F10B159765001D0450A00B080E2CABF77594FCEEBFF5874D6 - F0F4F83D0A40172900C0028AEDFF4CC6F67F9641FF2D16A7072336CB835401E8 - 1A05005840B6FF4FCEF67F9685B53C3DC76EBAD9B35400E81405005830070E5E - 66DBEA06D83ACDB2B096A7CB8E2A00BA440100168CE47F72F1E474DBFF59166E - 03982E3BAA00E81205005830C78EDF3C8818D73DDEFDCF92711BC0F444513576 - 560140172800C002893F520F5D7DCD60C4B84EDD2D5962B9B80D60BAECAC02A0 - 2B14006081F8237572B1FDFF941D002C99B80DC06D2DD3636715005DA100000B - E4C4C9DB0611E3B2FD9F656517C0F4C4CE2AB70100D0050A00B020FA7FA01E1C - 8C1897EDFF2C2B3B5BA6EBC4C95B0711002C2F05005810B6A84ECEF67F96D9E3 - A71F731BC0141DF13A40003A40010016843F4E27F7C07D1F1944B09CDC06303D - B1C3CA43560158760A00B000E2DE54DBFF2777EA6E57FF596E76B84C979D5600 - 2C3B0500580092FF8DB9C7BBD259726E03982E3B0016DFE3A74F0F22006A1400 - 80A5145746E31900B0ECDC06303DF3F82600BFC72613453100DA2900C00278DE - 1F8013893F987FE7B77F6B3082E576E707DE2F499C92E79E7B7610CD8F3BEF78 - FF20621C7600000CA700000B20B6F8DAE63B9E94FCBB0A4457C49AFF5F7FF66D - 8A0053F0C8430F0DA2F911BB99EEFC805D1EE3FA837FF7CE410440CDAE41CFAA - 1D95BED6A27892FA616D5773D9EBFFEB66E7EECB7B316CD85FFFD55FAE6C4F7D - F5E5570C6628C51FCABFF98E5F69FEFA2F3F3C98816E78FAA9A79A7BFFEAC32B - BF1FE6711BFB228824FB777EFB5F3767CE9C19CCCC8F78A0E98EDE5F1C575D7D - 4DB367CF9EC12CB92892FFEAFFFE2F9B4714CB61719D3BFB68F3D8BDFFBE17BD - DCD2CEB5B4907A46880496B5D2F724EF538B843EF5513C497D6ABB2B6D4FF3FA - 37FD6AB36BEF0DBD18A6221E54B56FFFFEC188E0957FD0B7BFF7BB211245C613 - B7582DD20E2BBFFFD7F3FB1F96C4D917EE6AEEFDDD1FE84551897DA9D2CE662D - 0A02A98FE4BF2C1084B2A72725B9AC4ADF93BC4F4D0100000060DA1400662212 - 5800000060C92900000000400728000000004007280000000040072800000000 - 4007280000000040072800000000400728000000004007280000000040072800 - 0000004007280000000040072800000000400728000000004007280000000040 - 0728000000004007280000000040072800000000400728000000004007280000 - 0000400728000000004007280000000040072800000000400728000000004007 - 2800000000400728000000004007280000000040072800000000400728000000 - 0040072800000000400728000000004007280000000040072800000000400728 - 0000000040072800000000400728000000004007280000000040072800000000 - 4007280000000040072800000000400728000000004007280000000040072800 - 0000004007280000000040072800000000400728000000004007280000000040 - 0728000000004007280000000040072800000000400728000000004007280000 - 0000400728000000004007280000000040072800000000400728000000004007 - 2800000000400728000000004007280000000040072800000000400728000000 - 0040072800000000400728000000004007280000000040072800000000400728 - 0000000040072800000000400728000000004007280000000040072800000000 - 4007280000000040072800000000400728000000004007280000000040072800 - 0000004007280000000040072800000000400728000000004007280000000040 - 0728000000004007280000000040072800000000400728000000004007280000 - 0000400728000000004007280000000040072800000000400728000000004007 - 2800000000400728000000004007280000000040072800000000400728000000 - 004007280000000040072800000000400728006CDCB9413FCAB89F030000E832 - 39D61653009885732F3F338800000028C9996642016016CE7CE9814104000040 - 49CE34130A00000000D0010A00000000D0010A00D3170FA4281E4AE1DB0C0000 - D06E5DCE54C9ABD82C99E964DA16609ACF8F5BAC00000093ABE5556DF995BC6B - 020A00B370E6E9FB07110000002539D34C28006C4E549B86559CFAC75E7AF18B - 2B3D000000EBADE64CA3F2AB61C7194101000000003A4001607A5225AAAC4A9D - 6BBE74FA338318000080523F675A9B47AD8EF37936410160BACA05DBF7F8C71E - 1D4400000094D6E64CF5BC8A4D5300D85A69B15AB4000000EDE44E33A000B079 - A31668FFF8CB673EBAD2030000B0EAEC0B770DA2F1722B364C016063CA8517E3 - 618BF15C73EEE56706310000006B0DCFA7D61F1FF6795A28004C2E2DB4B60597 - 16E7DAE367CF780E00000040E9EC971E1844493DA75A95E6DB8ED34201A05DB9 - 986A8B6BD46756C7675F5200000000289D3DF7C54114C6CFB1568DF3197A1400 - 468BC5336A01E5C7D3E7D35C3F7EF1E9B2AA050000403F575A9F43AD8E431ED7 - 949FA7420160F3D222AB2DB6D545F8D219CF0000000028ADE64AABF9D35A69AE - 768C092800AC376C51E50BAFF6B9B6AF3DD73CF5493B000000004AFD5CA93D97 - 5A2FCFC7DABE2E0C3BD6490A009BD3B6A0D2825C3DFEECE79E6ECEADB9B70500 - 00A0DB22478A5C69D5FA5C6AADB679C6A00030B972C1950BB4ED78D3BCFCA25D - 00000000C96A8E94E754491AA7636DC7199302C074E50B336FE19C5701020000 - 645E7CE1A3BDFFB99A33D51B53A200301DA31667FFD84B5F8AC50D00004038F7 - 625C241D9D4BB51F67020A001B37EE225DFDCCF34FDD3F88000000589B23D5F3 - A8B5861D63040580C9A485962FB8722EEFD7C64F7DC20E00000080A49F23ADCF - 9DFADAFA509B63040580E1F245356C61959FCB3FBB3AF7ECE79F6ECE790E0000 - 00C04A6E1439529E33AD2AE7F263A5713FD7790A0075A31657EA53ABA91D3FD7 - 9C396B17000000403F375A9B2FADCFA172E5F1B6CF8561C73A4B016063CAC594 - 16619AAFF5FDF8650F02040000C872A3D57CA9DEE7C79372CC181400A6AF5CA0 - F9F85CF3ECE90FC524000040A7F573A3B5F9525F39664A14003667D822CDC7AB - 739FF93305000000807E6E343C7FAA8FD9200580C9E58B2F29E7A26F6F2F9F71 - 1B000000D05DFD9CA89E2FADB650F6A136C718140046CB17D7B00536EA7369FE - 5CF3C2F377ADCC00000074513F275ACD91D6CBE76BC793713F478F0240BB518B - 2CF5A925B563796B9A17BFA00000000074D76A4E54CB99A285D48761C74AC38E - 759A02C0C6958BAA5C8CEDEDF1071400000080EEEAE744F57C69B5853C4ECA31 - 635200D8BCDAE2AC8D57E79EFDFCD39E030000007452E4429113E539D2DA16DA - C66C8202C0C6E48B3029E7A22FDBCB5F8E3D07000000E8A2B5F7FFAFE6486B5B - 28FB509B634C0A00E3C91759B9D0F2B9DAE752BC76EC390000004017F573A1F5 - 39D2FA71A8CD25B5CF318402C070C31651BED8421A0F6BABD5AD873EF07FF57A - 0000806EE9E742EB73A4E12D29C7A561C73A4F0160FAD282CC17662D3ED7BCF8 - ECFB5766000000BAA09F03ADE6447DB5389F634A1400A6A36D71C65C5ED18A78 - 75FCD27377F77A0000806EE8E740F5FC68352EA5E36C9202C0C6A505982FC4B4 - 30F316EAE32F7CCC6D0000004077F473A0F5B9517D9CCF8714E7734C4001607C - F9622B175C9A1BA7AD56B99EF8C467BC0E100000E884C87D22072AF3A2F15B2E - 9F2B8FD1420160B4618B295F74B9343FBA7DE9C977F57A000080E5D6CF7DEA79 - 51BD95DAE69361C7E85100989EB418D3A2CBFB5AEB57BBBEF0310F0204000096 - 5F3FF759CD85EA2DE47D3ECF2629006C4E6D8196FDB0F6B2DB00000080A5B7BA - FD7F9C6DFF6154CF0628004C265F74655C1B8FD35E761B000000B0D4FA39CFA4 - F7FC470B6DE3907AC6A000309E8D2CAAB428F3160B3E6FFD79B701000000CB6C - 75FB7F7B5EB4B64D6A235FD3390A00D3535BB0E3CC791B000000B0BCD63EFDBF - 6C61DC3936490160E36A8B319FABB5B2BAB55AF57AF6B17FD3EB010000964B3F - D759CD7DD6E744F9B8D692DA1C135000985C6DB1D516619A1BAF3DF6D77FDCEB - 010000964B3FD7A9E741ED2D579B0BB53986500018DFB88B2B2DCEF4F9140FAF - 743DFBF9679A179FF98FBD1800006039448E13B94E9EFB0CCF8D427E6C1CE37E - AEF31400A6A3B650530B791F8B3B2DF014F7DB339FFDC35E0F0000B01CFA39CE - DABC677D5E14F2BE6C21F56C8202C0C6E48BB0162731CE1778FA4CBD7DE6CFEF - 6ACE9DFD6C2F060000586C91DB448E53E63DEB5B9933E5D267421933210580C9 - 8CBBC8D2C2CC1767B4BC081071DEFAF3CF3FF13BBD1E000060B1F5739BE1F9CF - DA38A4388D4719F773F428004C4F6DC1D65AB9E0D7CE3F7AB7DB00000080C5D7 - CF6D86E73FEBE7CB1652CF2629006C5CBE186B7192E6CA9616FCDAF6DC634F7B - 18200000B0D022A789DCA696F3F45B2D478A96CBE7CA980D500098DCB88B2D2D - D07C918ED79EF8A4DB00000080C5D5CF69EAF94EBD85723CCAB89F63400160BA - 6A0BB7D652C5ABAC82F5DB637F797F73E6F953BD18000060B1442E13394D2DD7 - E9B73C271AD642EA99020580CDC917652D4ED25CDE862FF8A71EFEB55E0F0000 - B058FAB94C3DCFE9B7B65C2897CF95311BA400B031E32CBAB448CB962FF688EB - EDD1BFF850F3B257020200000B247298C865CAFC666DABE546651B659CCF5050 - 00989EDA62CDE7A2A5055E2EFA7A7BF67376010000008BA39FC3D4F39B7E1B96 - 1BA596D4E6D8040580CDAB2DC67C91A6B81C978B7F7DFBD47FFE43BB00000080 - 8510B94BE430655EB3DA6AB9504871392ED5E6988002C0C60D5B7CE5C26D6BE5 - 89B0BED9050000002C827EEE52CF6BFA6D74FED36F21F535C38E318402C074E4 - 8BB41627692EB5B4F8D389B0BE7DEA3FBFCB2E00000060AEF5AFFEBF2BA2212D - CF81F296CBE7CA984D5200D87A69D1960BBD3C01A2AFB7673FFBEBBD1E000060 - 3EF573967A3ED36FB51C28B57CCC165200D89CDA024D0BB76C21C56D0B3EFAF5 - ED537FEC59000000C07C5AB9FADFCB59CA3C66B50DCB81A285FC58DE4AB539C6 - A400303DC31662BE80F3962FFA325EDBEC02000000E651FBD5FFB65C27C5656B - 33EC18135000D8BC71176A5AD4A9A5859F4E8EBCAD9F5FD90570E663BD180000 - 603E448E52BFFA3F2AD7893E6F491E97861D630C0A00D3951664BE886B715B2B - 4F8EB5ED894FFE62AF070000980FFD1CA59EBFACB65AEE93B7302C664A1400B6 - 5EB988CB563B41A2AD3FF6E85F7CA839F3FCA95E0C0000B0BD2237891CA5CC5B - 46E739B51652CF165100988EDA422D177219B7B5DA49B2DA3E7FF7CFF47A0000 - 80EDD5CF4DEA79CB6AABE53C790B6D71AE36C7841400A66FD8624D8B39B57442 - 9427497B7BE2939F69BEF4D4EFF662000080ED113949E426B59CA5BDE53950DE - 42EA73B539364101607ADA166CBEA0CBB8AD9527C8DAF6E93F7B4773EEDC177B - 310000C06C452E1239492D57599FCF0C6BA12DCED5E6D8000580AD316CD1A645 - 9D5A79928C6ECF3DF674F3EC635E0B080000CC5EE4229193D47295F696E73E79 - 0BA9CFD5E6D8240580E96A5BB8F9C22EE3B6569E30A99D5DE93FF9DEDFF15A40 - 000060A62207895C24CF4DEAAD96E3E42DB4C5B9DA1C1BA400B075862DDEB4B8 - 534B274879D20C6F9FBBF79FF57A000080D9E8E720F5FCA4BDE5394FDE42EA73 - B539A6400160FADA1670BEC0CB385A7E62B4B5B515B6D37FF580070202000033 - 11B947E420794E327C1740B43CD7492DB4C5B9DA1C9BA000B0B5862DE2B4C8F3 - 569E18F989533FB13EFDA7BFD6BC7CF6B3BD180000606B44CE11B947998FF45B - 99AB94394D3E4E2DA43E579B634A760D7AA66F47D127F938FF4CDE428AA34893 - 1FCB5BD39C79EE4CB3FB159F68F61FBC6D650C0000306D8F7FF4A79A2F7CEC93 - BD2825FBD1E72D25FF791CC97CEA530B6D71AE36C72629006C9D7E82DE97E2D5 - C47DFDF1F25819972DF4E32F7EE6B3CDC5D75CD4EC7EC5EBFBD300000053125B - FF1FFCE3DFEB4529C14F497E8AF3A43FE248DED33825F8790BA9CFD5E69822B7 - 006C9DB6059D2FF8324E2D3F59529CB7F2048B5B017EDDAD000000C054F5B7FE - C72BC8EB79C8FA56E633790B6D71AE36C714D801B0B5D295FAB0F6AA7D5F793C - 6FA19C2BE7433F762B000000306DFDADFF9FEA4591F0A716C97D19A7A43FB594 - DC972DA43E579B63CA1400B65E9EA8E7C619E75F5BB6B076FCC5CF7CAEB9F89A - 0BDD0A0000006C5A7FEBFFEFF7A232E92F13FFD4A7C43FC5F95CDE421EE76A73 - 4C8902C0D64BC97A2813F75C3E571E4FE37CBE366E9A271EF86073E9EB6E6976 - EDBE74650C000030A9332F7CBC79E0F7DFDA8B6AC97E6A29C1CFE36891C4A73E - A4643FB5526D8E2DA000301B6B93F45529812F8FE79F2B8FE72DAC8F77EDF848 - B3FF2BFE66B363C779FD69000080319D7BF98BCDE37FFD53CDB38F9DEE8DF264 - BF8C53C21F7124F1691C2D4FF8CB04BF36176A734C9102C06CA4043DD412F7A4 - 3C967FA69CCB5B588D9F7DEC0BCDBE034F367B2FBA69650C000030AE673EFDF3 - CDA7FFE24F7BD1B0C43FF5798B043EF56DAD549B638B2800CC4E4AD44319AF26 - EF7DA3E6D27CDEAF9D7BEAC18F37177FE515CDEEBD5FBD3206000018E54B4FFF - 51F389F7FC5A2FAA25FCC392FFD4CA84BF4CF0F3B9FC58F939B68002C0ECA404 - 3DE471A9762C4FEEF3166A7D3FFED2131F6E2E3CF446CF03000000468AFBFE1F - F9C03F69CE3CF77C6F14C97C4AFAC749FE23812FC721FAB2B14D1400662B25E9 - 617DC2DE7EBCEC6B2DAC8DCF3CF762B373C77DCDF99E070000000C11F7FD9FFE - EBFFB179F2C14FF74691C0E7097F9EF4D70A0091D4A73E25F8655CCAE76AC7D9 - 020A00B39727EBB9721C52429F1FCBE76AF361B57FF6B1279AF32E7CA4D9F7CA - BF399803000058EBC94FFECFCDA3777DA81745229F27FFA94F2DC6B59612FE68 - E538E471AE36C716510098BD3269CFFB5CED583E576B493EDED13CFDC8C3CD45 - 57EC6AF6EC3F3C98030000E87BFEF4BF6A3EB5F2BEFF48DCDB92FEB6E43F12F8 - 3C4E097D8AF3B9A41C33230A00DBA34CD6539FC7493997F7E55CA87FEE898FDF - D35CFA9AAF69769D77757F1A0000E8BC335FBCA379E00F7FAE1745029F27FD79 - E29FC729D98F16897CEACB16521F86CD31230A00DBA396B027E538F493F8F55F - 97C6E5F17AFFDCE31FF45040000060453CF4EFA1DB7F6AF0D0BF5AA25F26FCE5 - 385A24F1A995E390C76C330580ED9392F39027EAF97CC88F25B5B910E3B6CFF7 - 1F0A78F6D90F36175E759B870202004087C543FF1EFDB3B734CF3CFA586F1489 - 7B2A00D492FF7C3EB548EAF3B84CF8D33897CFD58EB3C51400B6572D590F6D49 - 7CDE877CAE361FF2CF34CD979E7AB679F9E50F3517BCEA6F28020000400745F2 - FFD97B7EB479E2639FEA8D52729F12FCB6B8D6F2643FB590F729CED5E6980105 - 80EDD596B487721C622E6FC9B0F924C53B9AE71E7BA2D977E0C966EF45370DE6 - 000080AE8827FE7FF6EEBB7A514AF0F316897D1ED75A4AEC532BE7421E873C66 - 9B28006CBF7A92BE763E94E3DCA8CFAF8F9F7AF0E3CDBE4B1F6BF65E747C650C - 00002CBFA71FF9E7CDC31FF84FBD284FFA53B25F8BD3B8AD95097F2DD1CFE76A - C799110580F99012F4B6243EFA3851F271DE42792C698FA30870D1153BBD1E10 - 00003A205EF7F7C9F7FD4E2F8AC4BD96EC9771D952825FB63816224E7D8A73B5 - 39664801603EB425E9218D877D26E49FAB7D4D583F1FAF07BCF82B2F6F76EFFD - EAC10C0000B06CBEF4F41F351F7BD72FF6A25AB29FB7349F92FEB69692FC94D4 - E77D8A431EB3CD1400E6479EACB725F0B93896B7D2A8B9D5F88907FEA4B9E4AB - AE6876EF7DED6006000058162F3CF39EE6A37FF0BFF4A23CD17FA918E72D12FC - 3C2E13FE68B5B968B97C5C1E631B2800CC975A821E7D3E1FCA7129FF9AB20FEB - E3C7EFBF4311000000964C24FF0FFCFB7FD68B6A897D19E7FDB09692F994F4D7 - 12FDDA1CDB4C0160BEB425E9218DA38F13281F97622E9F6FFB4CD28F15010000 - 6079AC4DFEA3E557FDCB1D0091D8A7BEAD451E925A8C434AEED33C734C0160FE - 0C4BDCD3B8F699E8534BF238D7FE1945000000587CEB93FF3CC92FE3BCA5F932 - E12F5BC8FB1487B6986DA600309F6A097A5B321FDA8EE55F9BB7D2DA39450000 - 00585CF5E43F5AEDAAFFB82D12F9D4972D978FCB636C330580F95426E969DC96 - C087DAB1B6CFE6EA9F5104000080C5D39EFCA784BF369F5A9EF0A79692FC3C4E - 2D49713EC71C5200985F79623E2AB12F3F9B5AAE3697D4E67728020000C00259 - 4DFE2359AF25F8B527FFE7C97E6A79929FC6219F0F795C6A9B671B2900CCB73C - 31AF25F4A98F93AB96C4D7B47DAE3EAF08000000F3EFB9A7DED97CEC0F7EAE17 - 95097E6A6DC97F1ED75A4AF2230E29B14FF3495BCC1C5100987F79625E26E969 - 1C7D9C64F5247EBDFCEB52DFFEF55104D8F7CAC79ABD171F1FCC000000F3E2E9 - 87DFDE7CF2BDFF472FCA93FBBC45F21F097CC4659FE25A8B1C215AC42125F669 - 3E698B99330A008B214FCCCBE43D19354ECAAF8F3E4ED2BC5FEFA9073FAE0800 - 0000732692FF07DFFFAE5E9492F9B2A5E4BFAD08506B9117E42D94E3241F97C7 - 98330A008BA14CCAF3E47D98B6E3B57F2F4ED6BC5F2F8A002F9FBDB3B9E0557F - A3D9B1E3BCC12C0000306BE75EFE62F3D9533FDC3CFAC13FED8DF2843F6FB5E4 - 3FB5344E497F6A910FA4BED642D9B320140016479E9497713D615F9DAF1D2FE7 - 621C2770DEAFF7DC635F685E7EF983CDBE83DFDCECDC75C1601600009895332F - 7CBCF9FC5FFD4FCDE97B3FDA1BE5497DDE264DFE230718D6923CCEB5CD334714 - 00164B9E94D712F89A345F3B5EFB37F213378DD7F6510478F6B3EF6D2E3CF4CD - CDAEDD97F6E60000805988E4FFC1FFFCA3CDD30F7DA6374A497C99EC475F26FB - E538FAD4E26FFDB2CF5BC8E3D01633C71400164F9EB4E77128C7499AAF1D1FF7 - DF58EBA5E75F6C4EDFFB87CD255F75B937040000C00CC46BFEEEFFBDFF57EF6F - F1E77BA33CA96F6B91CCD7C6D1A716C97BD9E72DE471688B99730A008B294FD2 - C74DE0D37CED783E37D909FCF8FD7FD2EC7BE5E73D1C100000B6503CECEF13EF - F9CD5E9427F4E3B448EACB3EB5F8DBBFECF316F238B4C52C000580C59527ED65 - 525F4BF2439AAF1D1F762C1727797C66F5648F87039E5D7938E07FE9E1800000 - 3045F1B0BF474FFDF7CDA31FFCB3DEA84CEC6BF7F7E72D1DCBFBD4E2EFF9B2CF - 5BC8E3D016B3201400165799A88F1A2769BE76BCED589CDC31D77E923FFFD813 - CD338FBEABB9E88AD7373BF7BC6A300B00006CD44BCF7DB8F9E4FFEF879BA71F - FA746F14497A9EDCE72D8E95C58014E77D6AF1777DD9E72DE471C863169402C0 - 622B13F551E324CDB71D0FF9B1886B277CCCAD1E5B792EC07DEF692EB8726773 - DEFEC32B730000C0E49E7DFC5F371FFD0F3FDBFB1BFB4BBD519ED4B75DF5CFE7 - CA386FF1B77BD9E72DE471C8E3508E59100A008BAF4CE2478D9334DF763C573B - C1DBE7BEF0B10F373BF7FC65B3F792C35E150800001378E9CCE79AC71FF8C7CD - C3B7BFBB37AA25F4E3CCE57DDEE2EFF5B2CF5BC8E390C7A11CB340140096C356 - 1701CAE3B5937EED2F892F3EFAB9E6D9CFFEA7E6C22BAE6E76ED393498070000 - DA9C79EE4F9A07FFF8279B273FF1A9DE284FE4CBB83657C6658BBFD7CB3E6F21 - 8F431E8772CC825100581EA392FEB6247F54F25F1AF60B21ACCEBDF4FC0BCDE9 - FBFEAF95B704EC3EFF70B373A70704020040E9EC4BCF365FFCF4FFD67CFC8FFE - BF8357FC45825E4BEC6B7329CEFB5A8BBFD3A3E5716A218F431E8772CC025200 - 582EB32A028461BF1C429A3BB7F2968033CFFC7173FE655FED01810000908907 - FD3DFAE7FF43F3B90FDFDD1BD512FABCE573E5E7A26F6BF1B779B43C4E2DE471 - C8E3508E59500A00CB67A34580501E4B27FAB0AF69FB45B136FED253CFAE3C20 - F0FCAF78AED9F58AEBED060000A0D3E2AAFFB39F7B47F3B1FFF80BBDBF959F8E - 995E8B043D25F879CBE7539CF7A9A571FC2D9EE6521C7DD9421E873C0EE59805 - A600B09C36530418A5ED6BDB7E69A4B8DF3FF9C98FD80D000040A7A5ABFE9F3D - F5E7BD519EB8E7FDA838B5721C2DFEF6CEE35A0B791CF238946316DC661241E6 - DBB0A43FE2344E71D976667D5B8B02521EA77119D7FA9DCD95C76E6E2EBEFA1F - 35BB769FDF1B0300C0728BABFE4F3DF42F9A4FDF797B6F9412F4B6E43E1FD78E - A5B8D622714F7DAD853C0E791CCA314B209231965724F0B951E3527EBCF60BA0 - ED9744D987F573CF3CF250F3C5CFFE61B3EFD2BDCD9E7DD70F66010060F93CFF - C4EF350FDDFED3CD130F3CD01BA5443D25F629A1CFC7F95CAD2F5BFC9D5DF6B5 - 16F238E47128C72C090580E5B7D922C0B8F25F26791F22AE8F5F7AFEC5E6898F - 7DB017DCD9BCE2E2ABDD160000C05289EDFE8FFDE53F6E1EBEF3DDBDBF7DBFD4 - 9B49C97D6A91ACD7C6B57E588BBFAF53DFD6421E873C0EE5982532ADE48FF936 - 2CE98F388DF338B6E9A73ECDF7B7EEAF8D535BDDDABF763CAA5F1B5F73CBADCD - FE577D6FB3FB3C8500000016D74B2F7EAE79EE73FFBA79F0FD7FD41BA524BD96 - D0B725FBF9676AE36891ACE7711A87D4A7F990C7218F433966C9A4648FE557FE - ACF3718AA34F2DA43892F3324EC97B8AF384BE1C0F4BFACBAFDBD9EC3B705173 - F9377E47F38A57FE7DCF07000060A1C47DFE5FFAC2EF358F7EE8DF36CF3F1E4F - F74F097A6AB5047FD85C1947925EC6D1977148713E4EF23894639650246F7447 - F9F3CEC729CEFB5A8B24BDEC87B54992FFB5E37D975ED45CF92DFF6DB3EF95DF - D61B0300C07C7BFE0BBFDF7CFA4FFF55F3FC1379E29F27EFE5B816979FAFB548 - D6CBBED642D9873C0EE5982515091CDD52FECCF3718AF3BEAD45929EFA32CE5B - 5B923F3CF9CFC7175E7D7973F991EF6DF65E78B237060080F9F2C233EF6D3E7F - EA5F354F3EF4D9DE2812F261497F3E1EF5B9BC45925EC6D1B7B550F6218F4339 - 668945D24637E53FFB721DC438CDE57124E4A94FF329EE27EB6BE3BCE509FEF8 - C97FDE14020000982791F83F7AEA5F37CF3CF4686F9492F3BCE509FDB0647F58 - E21F2D92F4B24F71487D9A0F799CE4E3F2181D90123BBAA9FCF9E7E388D3B816 - A716C979D997716AB5C47EBCE43F6F0A0100006CA7D1897F6AC392FE6173D122 - 412FC7692EC5A985B638E47128C774442469745BB906F2718AF3BEAD4572DED6 - B7B5C993FFBCC533022E7FC3DFF7B0400000B6DC971FEEF7C1DF2BEEF11FD5C6 - 2902942D12F4BC4FF1B016CA3EE47128C77448246850AE837C9CE2BCCF5B8884 - 3C8DCB38B5729CB7C912FFB24521E0E0EB6F6C2EB8FC7BBC3E100080A98AD7F9 - 7DF1D1DF6A4EDFFB271326FE791B27E98F16C9791EA7711E87344E2D947DC8E3 - 508EE99848CA20946BA1364E73B538B548CACB38EF37D2CA0241DBBFB5A3B9F2 - 8D3735E75F71B2D9BBFF586F0C00001BF3C2737736CF7EE6BDCDA7FFEC03BD51 - 24CE2931DFAA96FE1B795FC6A985B6381935A683229182A4B61EF2B914E7FDB0 - D64FCA57E334AEC56DAD6D7740ED6B57E72EBCFAD5CDABBEEEDB9B3DE71FB32B - 000080B1C4D5FE33CFDED97CEEAFDED93CF3E527FAE749F9345BFE6FA638FA32 - 6E6BA1EC431E27B5393A2812262895EB221FA738EFCB38B59494D7E2D4CAF1B8 - ADEDEBF2FF567FEECA371EB72B00008056AB57FBEFE88D6A49799A1BD6C6FD5C - B4FCB3F97F27B5721C2D9471DE873C0EE5988E8B24096ACAB5511BA7B9BC6F6B - 2929CFE3B5897A7DDCD6DA3E97CFAFFD6FECBBF4C2E6B2AF3DDE9CFFEA6F6B76 - 9FF79ADE1C00005DF5D28B9F689EFDECEF378FFDF51DCDF34F3CD39B2993F1E8 - CBB8D636723CE6CAFFC6A816F23EC5C9A831AC2446D0A65C1F6DE3BC2FE3D452 - 225E8E6B7DDE6A73E3CE97711AEF58B945E0E0D71C6F5E71E949C50000808E88 - A4FF4B4FBCB739FDD13B065BFC23494E0978AD2FE3B2B51D2BE7DBFEDD7CBED6 - 4219E77D326A0C2B22218251CA75928F535CEB47B532314FE3BC2FE7DBC6E57C - EDF3E5B1FEDC25872E6F5E79ED8DCD9E8BBEC16D0200004B26B6F79F79FAC3CD - 171EF893E6C987E3BDFD911C47AB25E6A91F16B7CD0DFB4CDED7E290FA341F2D - B4F5218F4339863522018271946BA56D9CF765DCD6CAA4BCD6A7968FCB63F95C - ED73C3FA7E8BDB042EFD9AC3CDF9AF3AD6ECDAFB0D1E200800B060E2417E675F - F870F3ECE7EE6C9EF8E83D83EDFD9118A75626E4B57E583CEEB1F233F9FCB016 - CA38EF9351635827921E18576DBDE47329AEF5A9857C1C2D4FC26B71DE0F8BF3 - 71ED33C3FABCADCE5D72E8D5CD455F79B879C5C5DFD0ECDAF7F50A0200007366 - 25E17FFE2F9B2F3DF5E1E6E94FDDD33CF970DADA1FAD9670E7C9795B3F2CCEC7 - B5CFD4FAD4CA71B4509B0BF9F1248F93DA1CAC13490E4CAA5C376DE3BC2FE37C - 6E7812BE3E598F7E3373D18F1BAF6DA92070DE85AF69F69C1F3B043C3F000060 - 96E23EFE33CF7EB879F1994F5412FEB2E509F7A838EFDBE66AF3B5BE8CF3B990 - FA341FCA38EF935163182A921AD888DADA29E752E29CE4E3148F6AB5C47C923E - C56DE351F1A8D634AFBAE170B3FF95AF6DF6EC7B6DB3EBBC5735BBF77DFDCA3C - 00009BF3D2F37FD99C8D77F33FFFF1E6B92F7CBCF9DC5DF70C8E44E23B4E6B4B - C8CBB86D9CF76D9FC93F57C6A35AC8E3508E43390EB53918AA9FC0C0C6956BA8 - 6D3CAC1FA78D9BB88F1AD7FA321E3657B6B07E2E760AEC3DF8EAE682AFF88666 - C7AEF39B3DAF786DD3ECFA0AB710000014620B7F73F6F3CD992F7DBC3977F6D9 - E68B9FFF70F3C2E9CF0EAEEC879410A716CAB9B2D592F05A925EF6291E35CEFB - 727E9C16F238E4F3B95163185B4A6060336AEBA89C4BE35A9F5AC8C76DAD4CCC - 6B897CD98F3A965AF9F950FB5C48C76BC7CA78B55F290E5CF6AADEEFEE1D2B05 - 82B05224D8FB9A5ED0FFCC8E3DAF6976ED3E7F250600583429A95F71EE5C73E6 - 854FAC24F72112FC66C7B9E685C73E5724F9655FC6F95C24DBA13C96E6F364BC - 9698A7B9B21FF758198FD34219D7FAA41C87DA1C8C2D2526300DE57AAAADAF98 - CBE7F3712D1ED5CAE4BC6D9CCFB7C5B571DEE258487DED33D142190FEB93721C - 6A730000F36C9CC4358D87F5655CB6104978EA6B9F89561E6B4BE253DC767CD8 - 5C5B0BC3E2BC4FCA71A8CDC1C424174CDB38496C1AE7F311E7F3659CCF8D4AD2 - 87CD95C7478D2769A1364E7D8A43394ECAB9DA670000E6D9B8096D3E9F8FF3BE - 9CDF482B13F661E3519F2D5B1C0FE57C688B433E9F1B35864D915CB05526496E - F3F988F3F95A1C497A4873A90D4BDE6BC7DAE6C2B07FAB6C61D85C18D5E7C69D - 03009827B56475D8DCB0BE8C87CDB5B5949CD792F849E642ED5848C7F3B9B638 - E4F3B9721C6A73B029920AB6DA38C96C1AE7F31197F369AE361EA78D93DC4F52 - 0008A3E642399F94C773B5B9DCA8E300005B6D54823A2CA9CD8F455CCEA7B9DA - B86DAE6CC392F7D4C6F94C5B0BB571EA531CCAE349390EB539980A4904B352AE - B561496F7E2CE2DA38CD95E394C0E7F3B59627FAA9AF7DAED6426D3E5A1816E7 - 7DA8CDE5DAE60100E6555B025B4B82CBB9E887C5650BB5F95ACB93FDD4D73E97 - B7903E5FCE97E3501BE77DAE9CAB7D06A64A72C12CD5D6DBB0B9FC583917FDB0 - B86C61DCE2C0A81626991BD687B6B8CD389F010098857192D6FC33B578589FB7 - 30CEDCA42DD492FCBC856171DE87DA5C32EE1C4C9D4482ED505B77C3E6F263E5 - 5CF46D73B5719A1B550C08B5F96861D85C688B433E9FB4C500008BAC96148714 - 9773F9FCB078D85C6AA1361F2DB425FDA16D1CDAFA509B4BC69D832D23D1603B - D5D6DFB0B9F2588CF3B97C3C2A9EF65C18270EF97C6ED41800605194896DDB38 - 9F8F389F1F379EF65C688B436D9CE47132EE1C6C390906F3A0B60E47CDD5E261 - FDB8716D2EE4C7CAB950C6659FE2501ECF8D3B0700308F264D80F3631197F379 - 3F2CAECD85FC58391786C5C3FA509BCBD5E6DB3E0B3321B1609EB4ADC7614971 - 792CC6F9DCB0F134E3B26F3B166A73C9B8730000F368DCA437CDE5C7CAB9E86B - 73A99F761C468D431A97F3A13617DAE661A62416CCA3B675392A39AEC5E55CDB - B8D6B7C5653FEC58DE87DA5C52CED53E0300B008DA92E65C9ACB8F9573B57EDC - 63B5E3A94F71A88DF33EB4C5496D2EB4CDC3B6906030CFDAD6E738F3B578D85C - AD4F71C8C7A3FA107139CEFB64D4180060D1954970DB389F8FB81C8FEA531CF2 - F1A83E0C9B0B799C9B741EB695648345D1B65647CD97C76BF3E3CC8DEAC3389F - 09B5AFA919760C00609E0D4B808725D669DCD687519F29FB30EE5C689B4F269D - 87B921C160D1B4ADD971E6CBCFA4F138F3D3980B799C8C3B0700B0486A09F1A8 - B95A3CADB9306A3E94C79249E761EE483258646DEB77DCF9B6F166E6DBE230EC - 586ED831008045322C391E9674B71D4B71DBE7279D4FCA7132E93CCC358906CB - 60A3C9747EACF6B93437C9B17C3CECEB42EDF83836FA750000D3B6D14438FFBA - DABF31EC781A0FFBBA61C742ED78B2D16330F724122C9B616B7A9263B5CFE673 - 9B3D9ED4E6000096D9A8E43CC9E7367B3CD43E936CF4182C14C907CB6CD8FA1E - B5F6CBE36D9FDFE8E742DB67010096DD38097B52CE6FF673C9B0E3A3BE161692 - 0484AE18B5D637727CD8D74CFAF9361BF91A0080EDB491E4B9F6359326E8A3FE - BB9B3D0E0B4F7241178DB3EE37F39969FDFB0000CB6C9C84BBED339BF9DA9CA4 - 9F4ED935E8A1CB669DB04BFE0100FA4625E09324E8127E18410100D61B374197 - C803006CCE4613F271BF4EC20F19090C8C36E979E2BC0200988E491378093F0C - 2151818DD9CCB9E3BC0300E8DB4CC22ED98709494460BA9C530000D325D18729 - 91ACC06C39E70000D692E0030000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1777,8 +1777,7 @@ object AboutForm: TAboutForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000B0ED9AE6FF0F2CAC6529D1D042CA00 - 00000049454E44AE426082} + 0000000000D8764DF3FF0764077F316BD20BEE0000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512@2x.png' diff --git a/src/AboutUnit.pas b/src/AboutUnit.pas index eb8b765..cf90475 100644 --- a/src/AboutUnit.pas +++ b/src/AboutUnit.pas @@ -2,10 +2,10 @@ (* AErender Launcher *) (* AboutUnit.pas *) -(* Lily Stilson // 2019 - 2020 *) +(* Lily Stilson // 2019 - 2021 *) (* MIT License *) (* *) -(* Copyright (c) 2019 - 2020 Alice Romanets *) +(* Copyright (c) 2019 - 2021 Alice Romanets *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a copy *) (* of this software and associated documentation files (the "Software"), to deal *) @@ -134,7 +134,7 @@ procedure TAboutForm.Image1DblClick(Sender: TObject); procedure TAboutForm.WebsiteLabelClick(Sender: TObject); begin - Open('http://aerenderlauncher.com'); + Open('http://aerenderlauncher.com', []); end; procedure TAboutForm.LogoRotationAnimFinish(Sender: TObject); diff --git a/src/FFMPEGUnit.pas b/src/FFMPEGUnit.pas index a3dcf0b..f280801 100644 --- a/src/FFMPEGUnit.pas +++ b/src/FFMPEGUnit.pas @@ -2,10 +2,10 @@ (* AErender Launcher *) (* FFMPEGUnit.pas *) -(* Lily Stilson // 2019 - 2020 *) +(* Lily Stilson // 2019 - 2021 *) (* MIT License *) (* *) -(* Copyright (c) 2019 - 2020 Alice Romanets *) +(* Copyright (c) 2019 - 2021 Alice Romanets *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a copy *) (* of this software and associated documentation files (the "Software"), to deal *) diff --git a/src/HelpUnit.pas b/src/HelpUnit.pas index 532d401..0683967 100644 --- a/src/HelpUnit.pas +++ b/src/HelpUnit.pas @@ -2,10 +2,10 @@ (* AErender Launcher *) (* HelpUnit.pas *) -(* Lily Stilson // 2019 - 2020 *) +(* Lily Stilson // 2019 - 2021 *) (* MIT License *) (* *) -(* Copyright (c) 2019 - 2020 Alice Romanets *) +(* Copyright (c) 2019 - 2021 Alice Romanets *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a copy *) (* of this software and associated documentation files (the "Software"), to deal *) diff --git a/src/ImportUnit.fmx b/src/ImportUnit.fmx index 8f878b4..41a2d2f 100644 --- a/src/ImportUnit.fmx +++ b/src/ImportUnit.fmx @@ -23,8 +23,8 @@ object ImportForm: TImportForm object importLabel: TLabel Align = Client StyledSettings = [Family, FontColor] - Margins.Left = 20.000000000000000000 - Size.Width = 322.000000000000000000 + Margins.Left = 16.000000000000000000 + Size.Width = 328.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 14.000000000000000000 @@ -37,13 +37,13 @@ object ImportForm: TImportForm Align = Right TabOrder = 1 ReadOnly = True - Position.X = 342.000000000000000000 - Position.Y = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 + Position.X = 344.000000000000000000 + Position.Y = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 Size.Width = 288.000000000000000000 - Size.Height = 22.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False end end @@ -56,8 +56,8 @@ object ImportForm: TImportForm TabOrder = 4 object aerProjectPathLabel: TLabel Align = Left - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Left = 8.000000000000000000 + Position.X = 8.000000000000000000 Size.Width = 120.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False @@ -69,11 +69,11 @@ object ImportForm: TImportForm Align = Client TabOrder = 1 ReadOnly = True - Margins.Top = 5.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 500.000000000000000000 - Size.Height = 22.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 504.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False end end @@ -145,30 +145,24 @@ object ImportForm: TImportForm OnClick = deselallButtonClick end end - object BufferedLayout1: TBufferedLayout + object compositions: TListBox Align = Client - Size.Width = 326.000000000000000000 - Size.Height = 299.000000000000000000 + Margins.Left = 10.000000000000000000 + Margins.Top = 20.000000000000000000 + Margins.Right = 10.000000000000000000 + Margins.Bottom = 5.000000000000000000 + Size.Width = 306.000000000000000000 + Size.Height = 274.000000000000000000 Size.PlatformDefault = False - object compositions: TListBox - Align = Client - Margins.Left = 10.000000000000000000 - Margins.Top = 20.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 306.000000000000000000 - Size.Height = 274.000000000000000000 - Size.PlatformDefault = False - DisableFocusEffect = True - DefaultItemStyles.ItemStyle = '' - DefaultItemStyles.GroupHeaderStyle = '' - DefaultItemStyles.GroupFooterStyle = '' - ShowCheckboxes = True - OnChange = compositionsChange - OnChangeCheck = compositionsChangeCheck - Viewport.Width = 302.000000000000000000 - Viewport.Height = 270.000000000000000000 - end + DisableFocusEffect = True + DefaultItemStyles.ItemStyle = '' + DefaultItemStyles.GroupHeaderStyle = '' + DefaultItemStyles.GroupFooterStyle = '' + ShowCheckboxes = True + OnChange = compositionsChange + OnChangeCheck = compositionsChangeCheck + Viewport.Width = 302.000000000000000000 + Viewport.Height = 270.000000000000000000 end end object compImportLayout: TLayout @@ -292,8 +286,8 @@ object ImportForm: TImportForm TabOrder = 10 object importButton: TButton Align = Center - Size.Width = 114.000000000000000000 - Size.Height = 30.000000000000000000 + Size.Width = 128.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Text = 'Import' diff --git a/src/ImportUnit.pas b/src/ImportUnit.pas index 0a422de..cd88261 100644 --- a/src/ImportUnit.pas +++ b/src/ImportUnit.pas @@ -2,10 +2,10 @@ (* AErender Launcher *) (* ImportUnit.pas *) -(* Lily Stilson // 2019 - 2020 *) +(* Lily Stilson // 2019 - 2021 *) (* MIT License *) (* *) -(* Copyright (c) 2019 - 2020 Alice Romanets *) +(* Copyright (c) 2019 - 2021 Alice Romanets *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a copy *) (* of this software and associated documentation files (the "Software"), to deal *) @@ -90,7 +90,6 @@ TImportForm = class(TForm) deselallButton: TButton; StatusBar1: TStatusBar; GridPanelLayout1: TGridPanelLayout; - BufferedLayout1: TBufferedLayout; procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure compositionsChangeCheck(Sender: TObject); diff --git a/src/MainUnit.fmx b/src/MainUnit.fmx index a2d1bd8..33c56ce 100644 --- a/src/MainUnit.fmx +++ b/src/MainUnit.fmx @@ -2,8 +2,8 @@ object MainForm: TMainForm Left = 0 Top = 0 Caption = 'AErender Launcher BETA' - ClientHeight = 671 - ClientWidth = 1212 + ClientHeight = 617 + ClientWidth = 1220 Position = MainFormCenter Quality = HighQuality SystemStatusBar.BackgroundColor = claViolet @@ -20,16 +20,16 @@ object MainForm: TMainForm object AEPOpenDialog: TOpenDialog Filter = 'After Effects project|*.aep|All Files|*.*' Title = 'Project File' - Left = 72 - Top = 448 + Left = 224 + Top = 144 end object SaveDialog1: TSaveDialog FileName = 'Default' Filter = 'All Files|*.*' Options = [ofOverwritePrompt, ofHideReadOnly, ofExtensionDifferent, ofNoTestFileCreate, ofEnableSizing] Title = 'Output File' - Left = 104 - Top = 448 + Left = 224 + Top = 96 end object OnyxBlueStyle: TStyleBook StyleName = 'Onyx Blue (Old Style)' @@ -7398,12 +7398,12 @@ object MainForm: TMainForm 0000009805401453697A652E506C6174666F726D44656661756C74080B537472 6F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400000000} end> - Left = 8 - Top = 448 + Left = 64 + Top = 192 end object MainMenu1: TMainMenu - Left = 40 - Top = 488 + Left = 144 + Top = 192 object launcherItem: TMenuItem Text = 'AErender Launcher' object outModuleEditorItem0: TMenuItem @@ -7505,16 +7505,16 @@ object MainForm: TMainForm 6C6261727374796C65035804060A7468756D627374796C65033B02060B737769 7463687374796C6503D101060D636F6D626F626F787374796C6503F607060E63 6F6D626F656469747374796C65038209060F746162636F6E74726F6C7374796C - 65039C01060B746162646F747374796C65035001060C7461626974656D737479 + 65039C01060B746162646F747374796C65035901060C7461626974656D737479 6C6503E404060D7468756D626261727374796C65034F03060C6C697374626F78 7374796C6503A207060D6C697374626F78666F6F74657203800106106C697374 626F786974656D7374796C65031B0306126C697374626F78706C61696E686561 - 646572033B020609677269647374796C65038508060F6865616465726974656D + 646572033B020609677269647374796C65039808060F6865616465726974656D 7374796C6503C303061970726F67726573736261726D696E696572726F727374 796C65035603061170726F677265737363656C6C7374796C65039A0206106D65 6E756261726974656D7374796C6503250B060C6D656E756261727374796C6503 - 6C02060D6D656E756974656D7374796C6503490B06126D656E75736570617261 - 746F727374796C6503DA01060D6D656E75766965777374796C65039102060E69 + 6C02060D6D656E756974656D7374796C6503520B06126D656E75736570617261 + 746F727374796C65037801060D6D656E75766965777374796C65038802060E69 6D61676563656C6C7374796C65033201060E706F70757063656C6C7374796C65 03C603060D7465787463656C6C7374796C65039B0106096D656D6F7374796C65 03DC07060E6C696E6B6C6162656C7374796C65034503060E7374617475736261 @@ -8149,2718 +8149,2716 @@ object MainForm: TMainForm 46696C6C2E436F6C6F7207097846463135313531350748697454657374080A53 697A652E576964746805000000000000008005400B53697A652E486569676874 05000000000000008001401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D61 - 74696F6E00084475726174696F6E05000000000018B7D1F23F0C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463135313531350953746F7056616C75650709784646324138324532075472 - 6967676572060F497353656C65637465643D747275650E54726967676572496E - 76657273650610497353656C65637465643D66616C7365000000545046300754 - 4C61796F757400095374796C654E616D65060C7461626974656D7374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 - 616E676C6500095374796C654E616D650603746F7005416C69676E0708436F6E - 74656E74730C436C69704368696C6472656E0907436F726E6572730B07546F70 - 4C65667408546F705269676874000A46696C6C2E436F6C6F7207097846463230 - 32303230064C6F636B6564090748697454657374080553696465730B03546F70 - 044C656674055269676874000A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 46313531353135000654476C79706800095374796C654E616D65060A676C7970 - 687374796C650C4D617267696E732E4C65667405000000000000008001400D4D - 617267696E732E526967687405000000000000008001C005416C69676E07044C - 6566740A53697A652E576964746805000000000000008003400B53697A652E48 - 656967687405000000000000008003401453697A652E506C6174666F726D4465 - 6661756C7408000005545465787400095374796C654E616D6506047465787405 - 416C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D - 617267696E732E4C6566740500000000000000C000400B4D617267696E732E54 - 6F700500000000000000C000400D4D617267696E732E52696768740500000000 - 000000C000400E4D617267696E732E426F74746F6D0500000000000000C00040 - 0A53697A652E57696474680500000000000000B004400B53697A652E48656967 - 687405000000000000009803401453697A652E506C6174666F726D4465666175 - 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 - 68697465155465787453657474696E67732E576F7264577261700800000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650612746162436F6C - 6F72416E696D6174696F6E310D416E696D6174696F6E547970650705496E4F75 - 74084475726174696F6E05000000000000000000000C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 - 323032300953746F7056616C7565070978464634303430343007547269676765 - 72062149734D6F7573654F7665723D747275653B497353656C65637465643D66 - 616C73650E54726967676572496E7665727365062249734D6F7573654F766572 - 3D66616C73653B497353656C65637465643D66616C736500000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650612746162436F6C6F72416E + 080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F5443 + 6F6C6F72416E696D6174696F6E00084475726174696F6E05000000000018B7D1 + F23F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463135313531350953746F7056616C75650709784646 + 3241383245320754726967676572060F497353656C65637465643D747275650E + 54726967676572496E76657273650610497353656C65637465643D66616C7365 + 0000005450463007544C61796F757400095374796C654E616D65060C74616269 + 74656D7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508000A5452656374616E676C6500095374796C654E616D650603746F700541 + 6C69676E0708436F6E74656E74730C436C69704368696C6472656E0907436F72 + 6E6572730B07546F704C65667408546F705269676874000A46696C6C2E436F6C + 6F720709784646323032303230064C6F636B6564090748697454657374080553 + 696465730B03546F70044C656674055269676874000A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F720709784646313531353135000654476C79706800095374796C654E + 616D65060A676C7970687374796C650C4D617267696E732E4C65667405000000 + 000000008001400D4D617267696E732E526967687405000000000000008001C0 + 05416C69676E07044C6566740A53697A652E5769647468050000000000000080 + 03400B53697A652E48656967687405000000000000008003401453697A652E50 + 6C6174666F726D44656661756C7408000005545465787400095374796C654E61 + 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 + 697454657374080C4D617267696E732E4C6566740500000000000000C000400B + 4D617267696E732E546F700500000000000000C000400D4D617267696E732E52 + 696768740500000000000000C000400E4D617267696E732E426F74746F6D0500 + 000000000000C000400A53697A652E57696474680500000000000000B004400B + 53697A652E48656967687405000000000000009803401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C615768697465155465787453657474696E67732E576F726457 + 7261700800000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650612746162436F6C6F72416E696D6174696F6E310D416E696D6174696F6E54 + 7970650705496E4F7574084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572062149734D6F7573654F7665723D747275653B497353 + 656C65637465643D66616C73650E54726967676572496E766572736506224973 + 4D6F7573654F7665723D66616C73653B497353656C65637465643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061274 + 6162436F6C6F72416E696D6174696F6E32084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463241383245320754726967676572060F497353656C65637465643D7472 + 75650E54726967676572496E76657273650610497353656C65637465643D6661 + 6C736500000000545046300A5452656374616E676C6500095374796C654E616D + 65060D7468756D626261727374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463241383245320748697454657374080A5369 + 7A652E57696474680500000000000000A003400B53697A652E48656967687405 + 00000000000000A003401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350756697369626C65 + 08000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061474 + 68756D62436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463241383245320953746F7056616C7565 + 07097846463137353739430754726967676572061F4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275650E54726967676572496E7665 + 72736506104973507265737365643D66616C73653B00000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E 696D6174696F6E32084475726174696F6E05000000000000000000000C50726F 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646324138324532 - 0754726967676572060F497353656C65637465643D747275650E547269676765 - 72496E76657273650610497353656C65637465643D66616C7365000000005450 - 46300A5452656374616E676C6500095374796C654E616D65060D7468756D6262 - 61727374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463241383245320953746F7056616C75650709784646343039424646 + 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D6506157468756D62 + 5374726F6B65416E696D6174696F6E31084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A + 537461727456616C756507097846463135313531350953746F7056616C756507 + 097846463137353739430754726967676572061F4973507265737365643D7472 + 75653B49734D6F7573654F7665723D747275650E54726967676572496E766572 + 7365060F4973507265737365643D66616C73650000005450463007544C61796F + 757400095374796C654E616D65060C6C697374626F787374796C6505416C6967 + 6E070643656E7465720A53697A652E5769647468050000000000FFFFE905400B + 53697A652E48656967687405000000000000008306401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508000C5442727573684F626A + 65637400095374796C654E616D650618416C7465726E6174696E67526F774261 + 636B67726F756E640B42727573682E436F6C6F72070978464632433243324300 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 784646323032303230064C6F636B6564090748697454657374080C5061646469 + 6E672E4C65667405000000000000008000400B50616464696E672E546F700500 + 0000000000008000400D50616464696E672E5269676874050000000000000080 + 00400E50616464696E672E426F74746F6D05000000000000008000400A53697A + 652E5769647468050000000000FFFFE905400B53697A652E4865696768740500 + 0000000000008306401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F7207097846463135313531350007544C61796F7574 + 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 + 6E740C436C69704368696C6472656E090A53697A652E57696474680500000000 + 00FFFFC105400B53697A652E4865696768740500000000000000DE0540145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72 07097846463241383245320748697454657374080A53697A652E576964746805 - 00000000000000A003400B53697A652E4865696768740500000000000000A003 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F7207097846463135313531350756697369626C6508000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72 - 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463241383245320953746F7056616C7565070978464631373537 - 39430754726967676572061F4973507265737365643D747275653B49734D6F75 - 73654F7665723D747275650E54726967676572496E7665727365061049735072 - 65737365643D66616C73653B00000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E3208 - 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632413832 - 45320953746F7056616C75650709784646343039424646075472696767657206 - 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 - 650E54726967676572496E7665727365062149734D6F7573654F7665723D6661 - 6C73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D6506157468756D625374726F6B65416E69 - 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 - 657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75 - 6507097846463135313531350953746F7056616C756507097846463137353739 - 430754726967676572061F4973507265737365643D747275653B49734D6F7573 - 654F7665723D747275650E54726967676572496E7665727365060F4973507265 - 737365643D66616C73650000005450463007544C61796F757400095374796C65 - 4E616D65060C6C697374626F787374796C6505416C69676E070643656E746572 - 0A53697A652E5769647468050000000000FFFFE905400B53697A652E48656967 - 687405000000000000008306401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508000C5442727573684F626A65637400095374796C - 654E616D650618416C7465726E6174696E67526F774261636B67726F756E640B - 42727573682E436F6C6F72070978464632433243324300000A5452656374616E - 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E - 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230 - 064C6F636B6564090748697454657374080C50616464696E672E4C6566740500 - 0000000000008000400B50616464696E672E546F700500000000000000800040 - 0D50616464696E672E526967687405000000000000008000400E50616464696E - 672E426F74746F6D05000000000000008000400A53697A652E57696474680500 - 00000000FFFFE905400B53697A652E4865696768740500000000000000830640 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F7207097846463135313531350007544C61796F757400095374796C654E61 - 6D650607636F6E74656E7405416C69676E0706436C69656E740C436C69704368 - 696C6472656E090A53697A652E5769647468050000000000FFFFC105400B5369 - 7A652E4865696768740500000000000000DE05401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 65060973656C656374696F6E0A46696C6C2E436F6C6F72070978464632413832 - 45320748697454657374080A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 00000A5452656374616E676C6500095374796C654E616D650610666F63757365 - 6473656C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532 - 0748697454657374080A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000000000C804401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B53 - 74726F6B652E446173680703446F740000000A545363726F6C6C426172000953 - 74796C654E616D65060A767363726F6C6C62617205416C69676E070552696768 - 740B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 - 74696F6E0708566572746963616C0A506F736974696F6E2E58050000000000FF - FFC505400A506F736974696F6E2E5905000000000000008000400A53697A652E - 576964746805000000000000008003400B53697A652E48656967687405000000 - 00000000DE05401453697A652E506C6174666F726D44656661756C740800000A - 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 - 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A50 - 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 - 00000000000000E205400A53697A652E5769647468050000000000FFFFE10540 - 0B53697A652E48656967687405000000000000008003401453697A652E506C61 - 74666F726D44656661756C740800000F54536D616C6C5363726F6C6C42617200 - 095374796C654E616D65060F76736D616C6C7363726F6C6C62617205416C6967 - 6E070552696768740B536D616C6C4368616E676505000000000000000000000B - 4F7269656E746174696F6E0708566572746963616C0C4D617267696E732E4C65 - 667405000000000000008000400A506F736974696F6E2E580500000000000000 - C605400A506F736974696F6E2E5905000000000000008000400A53697A652E57 - 6964746805000000000000008002400B53697A652E4865696768740500000000 - 0000008002401453697A652E506C6174666F726D44656661756C740807566973 - 69626C650800000F54536D616C6C5363726F6C6C42617200095374796C654E61 - 6D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F - 6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 - 74696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000 - 000000008000400A506F736974696F6E2E5805000000000000008000400A506F + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 650610666F637573656473656C656374696F6E0A46696C6C2E436F6C6F720709 + 7846463241383245320748697454657374080A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000C8044014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E650B5374726F6B652E446173680703446F740000000A54536372 + 6F6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C + 69676E070552696768740B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E + 2E58050000000000FFFFC505400A506F736974696F6E2E590500000000000000 + 8000400A53697A652E576964746805000000000000008003400B53697A652E48 + 65696768740500000000000000DE05401453697A652E506C6174666F726D4465 + 6661756C740800000A545363726F6C6C42617200095374796C654E616D65060A + 687363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368 + 616E676505000000000000000000000B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0A506F736974696F6E2E5805000000000000008000400A506F 736974696F6E2E590500000000000000E205400A53697A652E57696474680500 - 0000000000009606400B53697A652E4865696768740500000000000000800240 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 - 00000B54476C6F774566666563740008536F66746E657373050000000000CDCC - CCFC3F09476C6F77436F6C6F720709784646463639453244074F706163697479 - 0500000000006666E6FE3F0754726967676572060E4973466F63757365643D74 - 72756507456E61626C6564080000005450463007544C61796F75740009537479 - 6C654E616D65060D6C697374626F78666F6F74657205416C69676E070643656E - 7465720A53697A652E576964746805000000000000009205400B53697A652E48 - 65696768740500000000000000D003401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C65080005545465787400095374796C654E616D - 6506047465787405416C69676E0706436C69656E74064C6F636B656409074869 - 7454657374080C4D617267696E732E4C6566740500000000000000A001400B4D - 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 - 6768740500000000000000A001400E4D617267696E732E426F74746F6D050000 - 00000000008000400A53697A652E57696474680500000000000000FC04400B53 - 697A652E4865696768740500000000000000B003401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C6157686974650000005450463007544C61796F75740009537479 - 6C654E616D6506106C697374626F786974656D7374796C6505416C69676E0706 - 43656E7465720A53697A652E57696474680500000000000000D605400B53697A - 652E4865696768740500000000000000C003401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508000654476C79706800095374796C - 654E616D65060A676C7970687374796C650C4D617267696E732E4C6566740500 - 0000000000008000400B4D617267696E732E546F70050000000000000080FF3F - 0D4D617267696E732E526967687405000000000000008000400E4D617267696E - 732E426F74746F6D050000000000000080FF3F05416C69676E07044C6566740A - 53697A652E576964746805000000000000008003400B53697A652E4865696768 - 7405000000000000008003401453697A652E506C6174666F726D44656661756C - 7408000005545465787400095374796C654E616D6506047465787405416C6967 - 6E0706436C69656E740748697454657374080C4D617267696E732E4C65667405 - 00000000000000C000400B4D617267696E732E546F70050000000000000080FF - 3F0D4D617267696E732E52696768740500000000000000C000400E4D61726769 - 6E732E426F74746F6D050000000000000080FF3F0A53697A652E576964746805 - 00000000000000CA05400B53697A652E4865696768740500000000000000B003 - 401453697A652E506C6174666F726D44656661756C7408165465787453657474 - 696E67732E466F6E74436F6C6F720708636C6157686974651554657874536574 - 74696E67732E576F72645772617008165465787453657474696E67732E486F72 - 7A416C69676E07074C656164696E6700000954436865636B426F780009537479 - 6C654E616D650605636865636B05416C69676E07084D6F73744C656674084361 - 6E466F637573081244697361626C65466F637573456666656374090A53697A65 - 2E57696474680500000000000000A003400B53697A652E486569676874050000 - 0000000000C003401453697A652E506C6174666F726D44656661756C74080756 - 697369626C65080000005450463007544C61796F757400095374796C654E616D - 6506126C697374626F78706C61696E68656164657205416C69676E070643656E - 7465720A53697A652E576964746805000000000000009205400B53697A652E48 - 65696768740500000000000000D003401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508000A5452656374616E676C650009537479 - 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E - 74730A46696C6C2E436F6C6F720709784646324432443244064C6F636B656409 - 0748697454657374080A53697A652E576964746805000000000000009205400B - 53697A652E4865696768740500000000000000D003401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 31353135000005545465787400095374796C654E616D6506047465787405416C - 69676E0706436C69656E74064C6F636B6564090748697454657374080C4D6172 - 67696E732E4C6566740500000000000000A001400B4D617267696E732E546F70 - 05000000000000008000400D4D617267696E732E526967687405000000000000 - 00A001400E4D617267696E732E426F74746F6D05000000000000008000400A53 - 697A652E57696474680500000000000000FC04400B53697A652E486569676874 - 0500000000000000B003401453697A652E506C6174666F726D44656661756C74 - 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 - 74650000005450463007544C61796F757400095374796C654E616D6506096772 - 69647374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 050000000000FFFFE905400B53697A652E486569676874050000000000000083 - 06401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08000C5442727573684F626A65637400095374796C654E616D650618416C7465 - 726E6174696E67526F774261636B67726F756E640B42727573682E436F6C6F72 - 070978333237383738373800000C5442727573684F626A65637400095374796C - 654E616D6506086C696E6566696C6C0B42727573682E436F6C6F720709784646 - 31353135313500000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E - 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 - 080C50616464696E672E4C65667405000000000000008000400B50616464696E - 672E546F7005000000000000008000400D50616464696E672E52696768740500 - 0000000000008000400E50616464696E672E426F74746F6D0500000000000000 - 8000400A53697A652E5769647468050000000000FFFFE905400B53697A652E48 - 656967687405000000000000008306401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350007 - 5448656164657200095374796C654E616D650606686561646572055369646573 - 0B03546F70044C65667406426F74746F6D0552696768740005416C69676E0703 - 546F700748697454657374080A506F736974696F6E2E58050000000000000080 - 00400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 - 647468050000000000FFFFE105400B53697A652E486569676874050000000000 - 0000A803401453697A652E506C6174666F726D44656661756C7408000007544C - 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 - 06436C69656E740C436C69704368696C6472656E090A53697A652E5769647468 - 050000000000FFFFC105400B53697A652E4865696768740500000000000000B4 - 05401453697A652E506C6174666F726D44656661756C7408000A545265637461 - 6E676C6500095374796C654E616D65060973656C656374696F6E0A46696C6C2E - 436F6C6F7207097846463241383245320748697454657374080A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009537479 - 6C654E616D650605666F6375730A46696C6C2E436F6C6F720709784146324138 - 3245320748697454657374080C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 00000000FFFFE105400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000F54536D616C6C53 + 63726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C + 6C62617205416C69676E070552696768740B536D616C6C4368616E6765050000 + 00000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D + 617267696E732E4C65667405000000000000008000400A506F736974696F6E2E + 580500000000000000C605400A506F736974696F6E2E59050000000000000080 + 00400A53697A652E576964746805000000000000008002400B53697A652E4865 + 6967687405000000000000008002401453697A652E506C6174666F726D446566 + 61756C74080756697369626C650800000F54536D616C6C5363726F6C6C426172 + 00095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69 + 676E0706426F74746F6D0B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E + 732E546F7005000000000000008000400A506F736974696F6E2E580500000000 + 0000008000400A506F736974696F6E2E590500000000000000E205400A53697A + 652E576964746805000000000000009606400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C740807 + 56697369626C65080000000B54476C6F774566666563740008536F66746E6573 + 73050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846464636394532 + 44074F7061636974790500000000006666E6FE3F0754726967676572060E4973 + 466F63757365643D7472756507456E61626C6564080000005450463007544C61 + 796F757400095374796C654E616D65060D6C697374626F78666F6F7465720541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C65080005545465787400 + 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 00000000A001400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E52696768740500000000000000A001400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 00000000FC04400B53697A652E4865696768740500000000000000B003401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F720708636C6157686974650000005450463007544C61 + 796F757400095374796C654E616D6506106C697374626F786974656D7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000D605400B53697A652E4865696768740500000000000000C003401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508000654476C + 79706800095374796C654E616D65060A676C7970687374796C650C4D61726769 + 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + 00400E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69 + 676E07044C6566740A53697A652E576964746805000000000000008003400B53 + 697A652E48656967687405000000000000008003401453697A652E506C617466 + 6F726D44656661756C7408000005545465787400095374796C654E616D650604 + 7465787405416C69676E0706436C69656E740748697454657374080C4D617267 + 696E732E4C6566740500000000000000C000400B4D617267696E732E546F7005 + 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 + C000400E4D617267696E732E426F74746F6D050000000000000080FF3F0A5369 + 7A652E57696474680500000000000000CA05400B53697A652E48656967687405 + 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 + 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 + 65155465787453657474696E67732E576F726457726170081654657874536574 + 74696E67732E486F727A416C69676E07074C656164696E670000095443686563 + 6B426F7800095374796C654E616D650605636865636B05416C69676E07084D6F + 73744C6566740843616E466F637573081244697361626C65466F637573456666 + 656374090A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000C003401453697A652E506C6174666F726D44 + 656661756C74080756697369626C65080000005450463007544C61796F757400 + 095374796C654E616D6506126C697374626F78706C61696E6865616465720541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463244324432 + 44064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000000009205400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 + 54657374080C4D617267696E732E4C6566740500000000000000A001400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 68740500000000000000A001400E4D617267696E732E426F74746F6D05000000 + 000000008000400A53697A652E57696474680500000000000000FC04400B5369 + 7A652E4865696768740500000000000000B003401453697A652E506C6174666F + 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F + 720708636C6157686974650000005450463007544C61796F757400095374796C + 654E616D650609677269647374796C6505416C69676E070643656E7465720A53 + 697A652E5769647468050000000000FFFFE905400B53697A652E486569676874 + 05000000000000008306401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508000C5442727573684F626A65637400095374796C654E + 616D650618416C7465726E6174696E67526F774261636B67726F756E640B4272 + 7573682E436F6C6F72070978333237383738373800000C5442727573684F626A + 65637400095374796C654E616D6506086C696E6566696C6C0B42727573682E43 + 6F6C6F72070978464631353135313500000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 + 090748697454657374080C50616464696E672E4C656674050000000000000080 + 00400B50616464696E672E546F7005000000000000008000400D50616464696E + 672E526967687405000000000000008000400E50616464696E672E426F74746F + 6D05000000000000008000400A53697A652E5769647468050000000000FFFFE9 + 05400B53697A652E48656967687405000000000000008306401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 4631353135313500075448656164657200095374796C654E616D650606686561 + 6465720553696465730B03546F70044C65667406426F74746F6D055269676874 + 0005416C69676E0703546F700748697454657374080A506F736974696F6E2E58 + 05000000000000008000400A506F736974696F6E2E5905000000000000008000 + 400A53697A652E5769647468050000000000FFFFE105400B53697A652E486569 + 6768740500000000000000A803401453697A652E506C6174666F726D44656661 + 756C7408000007544C61796F757400095374796C654E616D650607636F6E7465 + 6E7405416C69676E0706436C69656E740C436C69704368696C6472656E090A53 + 697A652E5769647468050000000000FFFFC105400B53697A652E486569676874 + 0500000000000000B405401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060973656C656374 + 696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 7408074F706163697479050000000000000080FD3F0A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E61 + 6D650605666F6375730A46696C6C2E436F6C6F72070978414632413832453207 + 48697454657374080C4D617267696E732E4C656674050000000000000080FF3F + 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E + 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F0A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 + 595261646975730500000000000000C000400000000A545363726F6C6C426172 + 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 + 696768740B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E0708566572746963616C0A506F736974696F6E2E5805000000 + 0000FFFFC505400A506F736974696F6E2E590500000000000000B803400A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 00000000000000B405401453697A652E506C6174666F726D44656661756C7408 + 00000A545363726F6C6C42617200095374796C654E616D65060A687363726F6C + 6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500 + 0000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E7461 + 6C0A506F736974696F6E2E5805000000000000008000400A506F736974696F6E + 2E590500000000000000E205400A53697A652E5769647468050000000000FFFF + E105400B53697A652E48656967687405000000000000008003401453697A652E + 506C6174666F726D44656661756C740800000F54536D616C6C5363726F6C6C42 + 617200095374796C654E616D65060F76736D616C6C7363726F6C6C6261720541 + 6C69676E070552696768740B536D616C6C4368616E6765050000000000000000 + 00000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E73 + 2E4C65667405000000000000008000400A506F736974696F6E2E580500000000 + 000000C605400A506F736974696F6E2E5905000000000000008000400A53697A + 652E576964746805000000000000008002400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C740807 + 56697369626C650800000F54536D616C6C5363726F6C6C42617200095374796C + 654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F + 74746F6D0B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005 + 000000000000008000400A506F736974696F6E2E580500000000000000800040 + 0A506F736974696F6E2E590500000000000000E205400A53697A652E57696474 + 6805000000000000009606400B53697A652E4865696768740500000000000000 + 8002401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508000000005450463007544C61796F757400095374796C654E616D65060F68 + 65616465726974656D7374796C6505416C69676E070643656E7465720A53697A + 652E576964746805000000000000009205400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646344334433443064C6F636B65640907486974546573 + 74080A53697A652E576964746805000000000000009205400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D6506156865616465 + 72436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463443344334430953746F7056616C7565070978 + 46463241383245320754726967676572060E4973507265737365643D74727565 + 0E54726967676572496E7665727365060F4973507265737365643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061668 + 65616465725374726F6B65416E696D6174696F6E31084475726174696F6E0500 + 0000000000000000000C50726F70657274794E616D65060C5374726F6B652E43 + 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 + 616C756507097846463241383245320754726967676572060E49735072657373 + 65643D747275650E54726967676572496E7665727365060F4973507265737365 + 643D66616C736500000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 + 0C4D617267696E732E4C6566740500000000000000A001400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 0000000000A001400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E57696474680500000000000000FC04400B53697A652E4865 + 696768740500000000000000B003401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 6157686974650000005450463007544C61796F757400095374796C654E616D65 + 061970726F67726573736261726D696E696572726F727374796C6505416C6967 + 6E070643656E7465720A53697A652E576964746805000000000033338505400B + 53697A652E4865696768740500000000009999E104401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508000A5452656374616E676C + 6500095374796C654E616D65060668747261636B05416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B65 + 64090748697454657374080A53697A652E576964746805000000000033338505 + 400B53697A652E4865696768740500000000009999E104401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000A5452656374616E676C6500095374796C654E616D65060A68696E64696361 + 746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978464645 + 3232413241064C6F636B6564090748697454657374080A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E650000000A5452656374616E676C6500095374796C65 + 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000A545265637461 + 6E676C6500095374796C654E616D65060A76696E64696361746F7205416C6967 + 6E0706426F74746F6D0A46696C6C2E436F6C6F72070978464645323241324106 + 4C6F636B6564090748697454657374080A506F736974696F6E2E590500000000 + 0099998D04400A53697A652E576964746805000000000033338505400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054 + 50463007544C61796F757400095374796C654E616D65061170726F6772657373 + 63656C6C7374796C6505416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000F805400B53697A652E48656967687405000000000000 + 00FC05401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C65080007544C61796F757400095374796C654E616D65060668747261636B05 + 416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E732E + 4C65667405000000000000008000400B4D617267696E732E546F700500000000 + 0000008000400D4D617267696E732E526967687405000000000000008000400E + 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 + 696474680500000000000000F005400B53697A652E4865696768740500000000 + 000000F405401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A68696E64696361746F7205 + 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846463241383245 + 32064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 + 0000000000000080FF3F0B4D617267696E732E546F70050000000000000080FF + 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805 + 0000000000000080FF3F0A506F736974696F6E2E59050000000000000080FF3F + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000F005401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C + 61796F757400095374796C654E616D6506106D656E756261726974656D737479 + 6C6505416C69676E070643656E7465720C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 + 00000000009205400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C74080756697369626C6508000A + 5452656374616E676C650005416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646324138324532074869745465737408074F70616369 + 747905000000000017B7D1F13F0A53697A652E57696474680500000000000000 + 9205400B53697A652E4865696768740500000000000000D003401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E050000 + 00000018B7D1F23F0C50726F70657274794E616D6506074F7061636974790A53 + 7461727456616C756505000000000000000000000953746F7056616C75650500 + 00000000000080FF3F0754726967676572060F497353656C65637465643D7472 + 75650E54726967676572496E76657273650610497353656C65637465643D6661 + 6C73650000000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646324138324532074869745465737408074F70616369747905 + 000000000017B7D1F13F0A53697A652E57696474680500000000000000920540 + 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54466C6F6174416E696D6174696F6E00084475726174696F6E050000000000 + 18B7D1F23F0C50726F70657274794E616D6506074F7061636974790A53746172 + 7456616C756505000000000000000000000953746F7056616C75650500000000 + 00000080FF3F0754726967676572061049734D6F7573654F7665723D74727565 + 0E54726967676572496E7665727365061149734D6F7573654F7665723D66616C + 736500000007544C61796F757400095374796C654E616D650605676C79706805 + 416C69676E07044C6566740A53697A652E57696474680500000000000000C803 + 400B53697A652E4865696768740500000000000000D003401453697A652E506C + 6174666F726D44656661756C74080007544C61796F757400095374796C654E61 + 6D650609636865636B6D61726B05416C69676E0708436F6E74656E7473074F70 + 61636974790500000000006F1283F53F0A53697A652E57696474680500000000 + 000000C803400B53697A652E4865696768740500000000000000D00340145369 + 7A652E506C6174666F726D44656661756C7408000554506174680005416C6967 + 6E070643656E74657209446174612E506174680A580000000700000000000000 + 56D9524391AE2C43010000009276664365021643010000009F3983432B7C3C43 + 010000009E9AA64382D2B442010000006F1CB04375A4D1420100000026DF8243 + 263F67430300000056D9524391AE2C430A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080A53697A652E576964746805000000000000 + 00B002400B53697A652E4865696768740500000000000000B002401453697A65 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6507595261646975730500000000000000C000400000000A545363726F6C - 6C42617200095374796C654E616D65060A767363726F6C6C62617205416C6967 - 6E070552696768740B536D616C6C4368616E676505000000000000000000000B - 4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E2E58 - 050000000000FFFFC505400A506F736974696F6E2E590500000000000000B803 - 400A53697A652E576964746805000000000000008003400B53697A652E486569 - 6768740500000000000000B405401453697A652E506C6174666F726D44656661 - 756C740800000A545363726F6C6C42617200095374796C654E616D65060A6873 - 63726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E - 676505000000000000000000000B4F7269656E746174696F6E070A486F72697A - 6F6E74616C0A506F736974696F6E2E5805000000000000008000400A506F7369 - 74696F6E2E590500000000000000E205400A53697A652E576964746805000000 - 0000FFFFE105400B53697A652E48656967687405000000000000008003401453 - 697A652E506C6174666F726D44656661756C740800000F54536D616C6C536372 - 6F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C62 - 617205416C69676E070552696768740B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E0708566572746963616C0C4D6172 - 67696E732E4C65667405000000000000008000400A506F736974696F6E2E5805 - 00000000000000C605400A506F736974696F6E2E590500000000000000800040 - 0A53697A652E576964746805000000000000008002400B53697A652E48656967 - 687405000000000000008002401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C650800000F54536D616C6C5363726F6C6C4261720009 - 5374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E - 0706426F74746F6D0B536D616C6C4368616E676505000000000000000000000B - 4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E - 546F7005000000000000008000400A506F736974696F6E2E5805000000000000 - 008000400A506F736974696F6E2E590500000000000000E205400A53697A652E - 576964746805000000000000009606400B53697A652E48656967687405000000 - 000000008002401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508000000005450463007544C61796F757400095374796C654E616D - 65060F6865616465726974656D7374796C6505416C69676E070643656E746572 - 0A53697A652E576964746805000000000000009205400B53697A652E48656967 - 68740500000000000000D003401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508000A5452656374616E676C6500095374796C654E - 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F720709784646344334433443064C6F636B656409074869 - 7454657374080A53697A652E576964746805000000000000009205400B53697A - 652E4865696768740500000000000000D003401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 35000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061568 - 6561646572436F6C6F72416E696D6174696F6E31084475726174696F6E050000 - 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463443344334430953746F7056616C75 - 6507097846463241383245320754726967676572060E4973507265737365643D - 747275650E54726967676572496E7665727365060F4973507265737365643D66 - 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 6506166865616465725374726F6B65416E696D6174696F6E3108447572617469 - 6F6E05000000000000000000000C50726F70657274794E616D65060C5374726F - 6B652E436F6C6F720A537461727456616C756507097846463135313531350953 - 746F7056616C756507097846463241383245320754726967676572060E497350 - 7265737365643D747275650E54726967676572496E7665727365060F49735072 - 65737365643D66616C736500000005545465787400095374796C654E616D6506 - 047465787405416C69676E0706436C69656E74064C6F636B6564090748697454 - 657374080C4D617267696E732E4C6566740500000000000000A001400B4D6172 + 6F6E6500000F54466C6F6174416E696D6174696F6E00084475726174696F6E05 + 0000000000CDCCCCFB3F0C50726F70657274794E616D6506074F706163697479 + 0A537461727456616C756505000000000000000000000953746F7056616C7565 + 050000000000000080FF3F0754726967676572060E4973436865636B65643D74 + 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 + 6C73650000000654476C79706800095374796C654E616D65060A676C79706873 + 74796C650C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 - 740500000000000000A001400E4D617267696E732E426F74746F6D0500000000 - 0000008000400A53697A652E57696474680500000000000000FC04400B53697A - 652E4865696768740500000000000000B003401453697A652E506C6174666F72 - 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 - 0708636C6157686974650000005450463007544C61796F757400095374796C65 - 4E616D65061970726F67726573736261726D696E696572726F727374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000003333 - 8505400B53697A652E4865696768740500000000009999E104401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 - 616E676C6500095374796C654E616D65060668747261636B05416C69676E0708 - 436F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C - 6F636B6564090748697454657374080A53697A652E5769647468050000000000 - 33338505400B53697A652E4865696768740500000000009999E104401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000A5452656374616E676C6500095374796C654E616D65060A68696E - 64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F720709 - 784646453232413241064C6F636B6564090748697454657374080A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00009999E104401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E650000000A5452656374616E676C65000953 - 74796C654E616D65060676747261636B05416C69676E0708436F6E74656E7473 - 0A46696C6C2E436F6C6F720709784646343034303430064C6F636B6564090748 - 697454657374080A53697A652E576964746805000000000033338505400B5369 - 7A652E4865696768740500000000009999E104401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A5452 - 656374616E676C6500095374796C654E616D65060A76696E64696361746F7205 - 416C69676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646453232 - 413241064C6F636B6564090748697454657374080A506F736974696F6E2E5905 - 000000000099998D04400A53697A652E57696474680500000000003333850540 - 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0000005450463007544C61796F757400095374796C654E616D65061170726F67 - 7265737363656C6C7374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000000000F805400B53697A652E486569676874050000 - 0000000000FC05401453697A652E506C6174666F726D44656661756C74080756 - 697369626C65080007544C61796F757400095374796C654E616D650606687472 - 61636B05416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267 - 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 + 740500000000000000C000400E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F05416C69676E070552696768740A53697A652E57696474680500 + 0000000000008003400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000654496D61676500 + 095374796C654E616D6506066269746D61700E4D756C74695265734269746D61 + 700E01000005416C69676E0708436F6E74656E74730C4D617267696E732E4C65 + 667405000000000000008000400B4D617267696E732E546F7005000000000000 + 008000400D4D617267696E732E526967687405000000000000008000400E4D61 + 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 + 74680500000000000000A803400B53697A652E48656967687405000000000000 + 00B003401453697A652E506C6174666F726D44656661756C7408000000055454 + 65787400095374796C654E616D6506047465787405416C69676E07044C656674 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 0000000000008002400D4D617267696E732E5269676874050000000000000080 + 02400A506F736974696F6E2E5805000000000000008404400A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 + 7453657474696E67732E486F727A416C69676E07074C656164696E6700000554 + 5465787400095374796C654E616D65060873686F727463757405416C69676E07 + 055269676874064C6F636B6564090748697454657374080C4D617267696E732E + 4C6566740500000000000000C002400D4D617267696E732E5269676874050000 + 0000000000C001400A506F736974696F6E2E580500000000000000C000C00A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 + 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 7465165465787453657474696E67732E486F727A416C69676E07074C65616469 + 6E67000007544C61796F757400095374796C654E616D6506077375626D61726B + 05416C69676E070552696768740A506F736974696F6E2E580500000000000000 + D404400A53697A652E57696474680500000000000000A003400B53697A652E48 + 65696768740500000000000000D003401453697A652E506C6174666F726D4465 + 6661756C7408000554506174680005416C69676E070643656E74657209446174 + 612E506174680A34000000040000000000000000000000000000000100000000 + 0000000000803F010000000000803F0000003F0300000000000000000000000A + 46696C6C2E436F6C6F720708636C615768697465064C6F636B65640907486974 + 54657374080A53697A652E57696474680500000000000000E001400B53697A65 + 2E48656967687405000000000000008002401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450 + 46300A5452656374616E676C6500095374796C654E616D65060C6D656E756261 + 727374796C6505416C69676E070643656E7465720C436C69704368696C647265 + 6E090946696C6C2E4B696E6407044E6F6E650748697454657374080A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650756697369626C6508000A5452656374 + 616E676C650005416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080C4D617267696E732E4C656674 + 050000000000000080FFBF0B4D617267696E732E546F70050000000000000080 + FFBF0D4D617267696E732E5269676874050000000000000080FFBF0A53697A65 + 2E57696474680500000000000000D004400B53697A652E486569676874050000 + 0000000000CC04401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F720709784646313531353135000007544C61796F7574 + 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 + 6E740C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A53697A652E57696474680500000000000000C004400B53697A652E + 4865696768740500000000000000C004401453697A652E506C6174666F726D44 + 656661756C74080000005450463007544C61796F757400095374796C654E616D + 65060D6D656E756974656D7374796C6505416C69676E070643656E7465720C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 + 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F + 0A53697A652E57696474680500000000008EE3F605400B53697A652E48656967 + 68740500000000008EE3F003401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508000A5452656374616E676C650005416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207 + 4869745465737408074F70616369747905000000000017B7D1F13F0A53697A65 + 2E57696474680500000000008EE3F605400B53697A652E486569676874050000 + 0000008EE3F003401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00084475726174696F6E05000000000018B7D1F23F0C50726F70657274794E + 616D6506074F7061636974790A537461727456616C7565050000000000000000 + 00000953746F7056616C7565050000000000000080FF3F075472696767657206 + 0F497353656C65637465643D747275650E54726967676572496E766572736506 + 10497353656C65637465643D66616C73650000000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207486974 + 5465737408074F70616369747905000000000000000000000A53697A652E5769 + 6474680500000000008EE3F605400B53697A652E486569676874050000000000 + 8EE3F003401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008 + 4475726174696F6E05000000000018B7D1F23F07496E7665727365090C50726F + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572061049734D6F7573654F7665723D747275650E5472696767657249 + 6E7665727365061149734D6F7573654F7665723D66616C736500000007544C61 + 796F757400095374796C654E616D650605676C79706805416C69676E07044C65 + 66740A53697A652E57696474680500000000000000C803400B53697A652E4865 + 696768740500000000008EE3F003401453697A652E506C6174666F726D446566 + 61756C74080007544C61796F757400095374796C654E616D650609636865636B + 6D61726B05416C69676E0708436F6E74656E7473074F70616369747905000000 + 00006F1283F53F0A53697A652E57696474680500000000000000C803400B5369 + 7A652E4865696768740500000000008EE3F003401453697A652E506C6174666F + 726D44656661756C7408000554506174680005416C69676E070643656E746572 + 09446174612E506174680A58000000070000000000000056D9524391AE2C4301 + 0000009276664365021643010000009F3983432B7C3C43010000009E9AA64382 + D2B442010000006F1CB04375A4D1420100000026DF8243263F67430300000056 + D9524391AE2C430A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080A53697A652E57696474680500000000000000B002400B53697A65 + 2E4865696768740500000000000000B002401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C + 6F6174416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB + 3F0C50726F70657274794E616D6506074F7061636974790A537461727456616C + 756505000000000000000000000953746F7056616C7565050000000000000080 + FF3F0754726967676572060E4973436865636B65643D747275650E5472696767 + 6572496E7665727365060F4973436865636B65643D66616C7365000000065447 + 6C79706800095374796C654E616D65060A676C7970687374796C650C4D617267 + 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 000000000000008000400D4D617267696E732E52696768740500000000000000 - 8000400E4D617267696E732E426F74746F6D05000000000000008000400A5369 - 7A652E57696474680500000000000000F005400B53697A652E48656967687405 - 00000000000000F405401453697A652E506C6174666F726D44656661756C7408 - 000A5452656374616E676C6500095374796C654E616D65060A68696E64696361 - 746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632 - 4138324532064C6F636B6564090748697454657374080C4D617267696E732E4C - 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 - 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F - 6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000000000 - 0080FF3F0A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000F005401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046 - 3007544C61796F757400095374796C654E616D6506106D656E75626172697465 - 6D7374796C6505416C69676E070643656E7465720C4D617267696E732E4C6566 - 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 - 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 - 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 - 6805000000000000009205400B53697A652E4865696768740500000000000000 - D003401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508000A5452656374616E676C650005416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F720709784646324138324532074869745465737408074F - 70616369747905000000000017B7D1F13F0A53697A652E576964746805000000 - 000000009205400B53697A652E4865696768740500000000000000D003401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F - 6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F70616369 - 74790A537461727456616C756505000000000000000000000953746F7056616C - 7565050000000000000080FF3F0754726967676572060F497353656C65637465 - 643D747275650E54726967676572496E76657273650610497353656C65637465 - 643D66616C73650000000A5452656374616E676C6500095374796C654E616D65 - 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F720709784646324138324532074869745465737408074F706163 - 69747905000000000017B7D1F13F0A53697A652E576964746805000000000000 - 009205400B53697A652E4865696768740500000000000000D003401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E0500 - 0000000018B7D1F23F0C50726F70657274794E616D6506074F7061636974790A - 537461727456616C756505000000000000000000000953746F7056616C756505 - 0000000000000080FF3F0754726967676572061049734D6F7573654F7665723D - 747275650E54726967676572496E7665727365061149734D6F7573654F766572 - 3D66616C736500000007544C61796F757400095374796C654E616D650605676C - 79706805416C69676E07044C6566740A53697A652E5769647468050000000000 - 0000C803400B53697A652E4865696768740500000000000000D003401453697A - 652E506C6174666F726D44656661756C74080007544C61796F75740009537479 - 6C654E616D650609636865636B6D61726B05416C69676E0708436F6E74656E74 - 73074F7061636974790500000000006F1283F53F0A53697A652E576964746805 - 00000000000000C803400B53697A652E4865696768740500000000000000D003 - 401453697A652E506C6174666F726D44656661756C7408000554506174680005 - 416C69676E070643656E74657209446174612E506174680A5800000007000000 - 0000000056D9524391AE2C43010000009276664365021643010000009F398343 - 2B7C3C43010000009E9AA64382D2B442010000006F1CB04375A4D14201000000 - 26DF8243263F67430300000056D9524391AE2C430A46696C6C2E436F6C6F7207 - 08636C6157686974650748697454657374080A53697A652E5769647468050000 - 0000000000B002400B53697A652E4865696768740500000000000000B0024014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E6500000F54466C6F6174416E696D6174696F6E00084475726174 - 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061 - 636974790A537461727456616C756505000000000000000000000953746F7056 - 616C7565050000000000000080FF3F0754726967676572060E4973436865636B - 65643D747275650E54726967676572496E7665727365060F4973436865636B65 - 643D66616C73650000000654476C79706800095374796C654E616D65060A676C - 7970687374796C650C4D617267696E732E4C656674050000000000000080FF3F - 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 52696768740500000000000000C000400E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F05416C69676E070552696768740A53697A652E576964 - 746805000000000000008003400B53697A652E48656967687405000000000000 - 008003401453697A652E506C6174666F726D44656661756C740800000654496D - 61676500095374796C654E616D6506066269746D61700E4D756C746952657342 - 69746D61700E01000005416C69676E0708436F6E74656E74730C4D617267696E - 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 - 00000000008000400D4D617267696E732E526967687405000000000000008000 - 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 - 2E57696474680500000000000000A803400B53697A652E486569676874050000 - 0000000000B003401453697A652E506C6174666F726D44656661756C74080000 - 0005545465787400095374796C654E616D6506047465787405416C69676E0704 - 4C656674064C6F636B6564090748697454657374080C4D617267696E732E4C65 - 667405000000000000008002400D4D617267696E732E52696768740500000000 - 0000008002400A506F736974696F6E2E5805000000000000008404400A53697A + C000400E4D617267696E732E426F74746F6D050000000000000080FF3F05416C + 69676E07044C6566740A53697A652E576964746805000000000000008003400B + 53697A652E48656967687405000000000000008003401453697A652E506C6174 + 666F726D44656661756C740800000654496D61676500095374796C654E616D65 + 06066269746D61700E4D756C74695265734269746D61700E01000005416C6967 + 6E07044C6566740C4D617267696E732E4C65667405000000000000008000400B + 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 + 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 + 0000000000008000400A506F736974696F6E2E5805000000000000008000400A + 506F736974696F6E2E5905000000000000008000400A53697A652E5769647468 + 0500000000000000A803400B53697A652E4865696768740500000000008EE3D0 + 03401453697A652E506C6174666F726D44656661756C74080000000554546578 + 7400095374796C654E616D6506047465787405416C69676E07044C656674064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 000000008002400D4D617267696E732E52696768740500000000000000800240 + 0A506F736974696F6E2E5805000000000000008404400A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000008EE3 + F003401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 + 657474696E67732E486F727A416C69676E07074C656164696E67000005545465 + 787400095374796C654E616D65060873686F727463757405416C69676E070552 + 69676874064C6F636B6564090748697454657374080C4D617267696E732E4C65 + 66740500000000000000C002400D4D617267696E732E52696768740500000000 + 000000C001400A506F736974696F6E2E580500000000001CC7BD04400A53697A 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C740816 + 000000008EE3F003401453697A652E506C6174666F726D44656661756C740816 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 - 000005545465787400095374796C654E616D65060873686F727463757405416C - 69676E07055269676874064C6F636B6564090748697454657374080C4D617267 - 696E732E4C6566740500000000000000C002400D4D617267696E732E52696768 - 740500000000000000C001400A506F736974696F6E2E580500000000000000C0 - 00C00A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C - 615768697465165465787453657474696E67732E486F727A416C69676E07074C - 656164696E67000007544C61796F757400095374796C654E616D650607737562 - 6D61726B05416C69676E070552696768740A506F736974696F6E2E5805000000 - 00000000D404400A53697A652E57696474680500000000000000A003400B5369 - 7A652E4865696768740500000000000000D003401453697A652E506C6174666F - 726D44656661756C7408000554506174680005416C69676E070643656E746572 - 09446174612E506174680A340000000400000000000000000000000000000001 - 000000000000000000803F010000000000803F0000003F030000000000000000 - 0000000A46696C6C2E436F6C6F720708636C615768697465064C6F636B656409 - 0748697454657374080A53697A652E57696474680500000000000000E001400B - 53697A652E48656967687405000000000000008002401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 0000545046300A5452656374616E676C6500095374796C654E616D65060C6D65 - 6E756261727374796C6505416C69676E070643656E7465720C436C6970436869 - 6C6472656E090946696C6C2E4B696E6407044E6F6E650748697454657374080A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000A54 - 52656374616E676C650005416C69676E0706436C69656E740A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080C4D617267696E732E - 4C656674050000000000000080FFBF0B4D617267696E732E546F700500000000 - 00000080FFBF0D4D617267696E732E5269676874050000000000000080FFBF0A - 53697A652E57696474680500000000000000D004400B53697A652E4865696768 - 740500000000000000CC04401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F720709784646313531353135000007544C61 - 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0706 - 436C69656E740C4D617267696E732E4C656674050000000000000080FF3F0B4D + 000007544C61796F757400095374796C654E616D6506077375626D61726B0541 + 6C69676E070552696768740A506F736974696F6E2E580500000000008EE3CE05 + 400A53697A652E57696474680500000000000000A003400B53697A652E486569 + 6768740500000000008EE3F003401453697A652E506C6174666F726D44656661 + 756C7408000554506174680005416C69676E070643656E74657209446174612E + 506174680A340000000400000000000000000000000000000001000000000000 + 000000803F010000000000803F0000003F0300000000000000000000000A4669 + 6C6C2E436F6C6F720708636C615768697465064C6F636B656409074869745465 + 7374080A53697A652E57696474680500000000000000C001400B53697A652E48 + 65696768740500000000000000A002401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054504630 + 07544C61796F757400095374796C654E616D6506126D656E7573657061726174 + 6F727374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 080005544C696E650005416C69676E0703546F70084C696E6554797065070354 + 6F700C4D617267696E732E4C656674050000000000000080FFBF0B4D61726769 + 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 + 0000000000000080FFBF0A506F736974696F6E2E58050000000000000080FFBF + 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 + 680500000000000000D004400B53697A652E4865696768740500000000000000 + 80FF3F1453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135000000545046300A5452656374616E + 676C6500095374796C654E616D65060D6D656E75766965777374796C6505416C + 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463230323032 + 300A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F720709784646313531353135000A5452 + 656374616E676C650005416C69676E0706436C69656E740A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C804401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135000D54536861646F77456666656374 + 000844697374616E6365050000000000000080014009446972656374696F6E05 + 00000000000000B4044008536F66746E657373050000000000000080FE3F074F + 706163697479050000000000000080FE3F0B536861646F77436F6C6F72070863 + 6C61426C61636B00000007544C61796F757400095374796C654E616D65060763 + 6F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 680500000000000000C004400B53697A652E4865696768740500000000000000 + C004401453697A652E506C6174666F726D44656661756C740800000054504630 + 07544C61796F757400095374796C654E616D65060E696D61676563656C6C7374 + 796C6505416C69676E070643656E7465720756697369626C6508000654496D61 + 676500095374796C654E616D650605696D6167650E4D756C7469526573426974 + 6D61700E01000005416C69676E0706436C69656E74064C6F636B656409074869 + 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 000000000080FF3F0A53697A652E57696474680500000000000000C004400B53 697A652E4865696768740500000000000000C004401453697A652E506C617466 6F726D44656661756C74080000005450463007544C61796F757400095374796C - 654E616D65060D6D656E756974656D7374796C6505416C69676E070643656E74 - 65720C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 - 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 - 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 - 0080FF3F0A53697A652E576964746805000000000000009205400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508000A5452656374616E676C650005416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138 - 324532074869745465737408074F70616369747905000000000017B7D1F13F0A - 53697A652E576964746805000000000000009205400B53697A652E4865696768 - 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D - 6174696F6E00084475726174696F6E05000000000018B7D1F23F0C50726F7065 - 7274794E616D6506074F7061636974790A537461727456616C75650500000000 - 0000000000000953746F7056616C7565050000000000000080FF3F0754726967 - 676572060F497353656C65637465643D747275650E54726967676572496E7665 - 7273650610497353656C65637465643D66616C73650000000A5452656374616E - 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E - 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138324532 - 074869745465737408074F70616369747905000000000017B7D1F13F0A53697A - 652E576964746805000000000000009205400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 - 6F6E00084475726174696F6E05000000000018B7D1F23F0C50726F7065727479 - 4E616D6506074F7061636974790A537461727456616C75650500000000000000 - 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 - 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 - 65061149734D6F7573654F7665723D66616C736500000007544C61796F757400 - 095374796C654E616D650605676C79706805416C69676E07044C6566740A5369 - 7A652E57696474680500000000000000C803400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 0007544C61796F757400095374796C654E616D650609636865636B6D61726B05 - 416C69676E0708436F6E74656E7473074F7061636974790500000000006F1283 - F53F0A53697A652E57696474680500000000000000C803400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C7408000554506174680005416C69676E070643656E7465720944617461 - 2E506174680A58000000070000000000000056D9524391AE2C43010000009276 - 664365021643010000009F3983432B7C3C43010000009E9AA64382D2B4420100 - 00006F1CB04375A4D1420100000026DF8243263F67430300000056D9524391AE - 2C430A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0A53697A652E57696474680500000000000000B002400B53697A652E48656967 - 68740500000000000000B002401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E - 696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D6506074F7061636974790A537461727456616C7565050000 - 00000000000000000953746F7056616C7565050000000000000080FF3F075472 - 6967676572060E4973436865636B65643D747275650E54726967676572496E76 - 65727365060F4973436865636B65643D66616C73650000000654476C79706800 - 095374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C - 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E52696768740500000000000000C000400E4D - 617267696E732E426F74746F6D050000000000000080FF3F05416C69676E0704 - 4C6566740A53697A652E576964746805000000000000008003400B53697A652E - 48656967687405000000000000008003401453697A652E506C6174666F726D44 - 656661756C740800000654496D61676500095374796C654E616D650606626974 - 6D61700E4D756C74695265734269746D61700E01000005416C69676E07044C65 - 66740C4D617267696E732E4C65667405000000000000008000400B4D61726769 - 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 - 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 - 008000400A506F736974696F6E2E5805000000000000008000400A506F736974 - 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 - 000000A803400B53697A652E4865696768740500000000000000B00340145369 - 7A652E506C6174666F726D44656661756C740800000005545465787400095374 - 796C654E616D6506047465787405416C69676E07044C656674064C6F636B6564 - 090748697454657374080C4D617267696E732E4C656674050000000000000080 - 02400D4D617267696E732E526967687405000000000000008002400A506F7369 - 74696F6E2E5805000000000000008404400A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000D003401453 - 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 - 732E466F6E74436F6C6F720708636C615768697465165465787453657474696E - 67732E486F727A416C69676E07074C656164696E670000055454657874000953 - 74796C654E616D65060873686F727463757405416C69676E0705526967687406 - 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 - 0000000000C002400D4D617267696E732E52696768740500000000000000C001 - 400A506F736974696F6E2E580500000000000000C000C00A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00D003401453697A652E506C6174666F726D44656661756C7408165465787453 - 657474696E67732E466F6E74436F6C6F720708636C6157686974651654657874 - 53657474696E67732E486F727A416C69676E07074C656164696E67000007544C - 61796F757400095374796C654E616D6506077375626D61726B05416C69676E07 - 0552696768740A506F736974696F6E2E580500000000000000D404400A53697A - 652E57696474680500000000000000A003400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C740800 + 654E616D65060E706F70757063656C6C7374796C6505416C69676E070643656E + 7465720A53697A652E57696474680500000000000000BB06400B53697A652E48 + 65696768740500000000000000AE04401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C65080007544C61796F75740005416C69676E07 + 0552696768740A506F736974696F6E2E580500000000000000AC06400A53697A + 652E57696474680500000000000000F002400B53697A652E4865696768740500 + 000000000000AE04401453697A652E506C6174666F726D44656661756C740800 0554506174680005416C69676E070643656E74657209446174612E506174680A - 340000000400000000000000000000000000000001000000000000000000803F - 010000000000803F0000003F0300000000000000000000000A46696C6C2E436F - 6C6F720708636C615768697465064C6F636B6564090748697454657374080A53 - 697A652E57696474680500000000000000E001400B53697A652E486569676874 - 05000000000000008002401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C6179 - 6F757400095374796C654E616D6506126D656E75736570617261746F72737479 - 6C6505416C69676E070643656E7465720C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D - 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000C8044014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080005 - 544C696E650005416C69676E0703546F70084C696E65547970650703546F700C - 4D617267696E732E4C6566740500000000000000C000400B4D617267696E732E - 546F7005000000000000008000400D4D617267696E732E526967687405000000 - 00000000C000400A506F736974696F6E2E580500000000000000C000400A506F - 736974696F6E2E5905000000000000008000400A53697A652E57696474680500 - 000000000000B004400B53697A652E486569676874050000000000000080FF3F - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F720709784646313531353135000000545046300A5452656374616E676C65 - 00095374796C654E616D65060D6D656E75766965777374796C6505416C69676E - 070643656E7465720A46696C6C2E436F6C6F7207097846463230323032300A53 - 697A652E57696474680500000000000000C804400B53697A652E486569676874 - 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F7207097846463135313531350756697369626C - 6508000A5452656374616E676C650005416C69676E0706436C69656E740A4669 - 6C6C2E436F6C6F7207097846463230323032300748697454657374080A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646313531353135000D54536861646F77 - 456666656374000844697374616E63650500000000000000C000400944697265 - 6374696F6E0500000000000000B4054008536F66746E65737305000000000000 - 0080FE3F074F706163697479050000000000000080FE3F0B536861646F77436F - 6C6F720708636C61426C61636B00000007544C61796F757400095374796C654E - 616D650607636F6E74656E7405416C69676E0706436C69656E740C4D61726769 - 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 - FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A - 652E57696474680500000000000000C004400B53697A652E4865696768740500 - 000000000000C004401453697A652E506C6174666F726D44656661756C740800 - 00005450463007544C61796F757400095374796C654E616D65060E696D616765 - 63656C6C7374796C6505416C69676E070643656E7465720756697369626C6508 - 000654496D61676500095374796C654E616D650605696D6167650E4D756C7469 - 5265734269746D61700E01000005416C69676E0706436C69656E74064C6F636B - 6564090748697454657374080C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 - 00C004400B53697A652E4865696768740500000000000000C004401453697A65 - 2E506C6174666F726D44656661756C74080000005450463007544C61796F7574 - 00095374796C654E616D65060E706F70757063656C6C7374796C6505416C6967 - 6E070643656E7465720A53697A652E57696474680500000000000000BB06400B - 53697A652E4865696768740500000000000000AE04401453697A652E506C6174 - 666F726D44656661756C74080756697369626C65080007544C61796F75740005 - 416C69676E070552696768740A506F736974696F6E2E580500000000000000AC - 06400A53697A652E57696474680500000000000000F002400B53697A652E4865 - 696768740500000000000000AE04401453697A652E506C6174666F726D446566 - 61756C7408000554506174680005416C69676E070643656E7465720944617461 - 2E506174680A400000000500000000000000000000000000803F010000000000 - 803F0000803F010000000000003F0000000001000000000000000000803F0300 - 000000000000000000000A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080B4D617267696E732E546F700500000000000000E001C00A - 53697A652E576964746805000000000000008002400B53697A652E4865696768 - 7405000000000000008001401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E6500000554506174680005416C - 69676E070643656E74657209446174612E506174680A34000000040000000000 - 00000000000000000000010000000000803F00000000010000000000003F0000 - 803F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 - 6974650748697454657374080B4D617267696E732E546F700500000000000000 - C001400A53697A652E576964746805000000000000008002400B53697A652E48 - 656967687405000000000000008001401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000554546578 - 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 - 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 000000000000A001400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E52696768740500000000000000A001400E4D617267696E - 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 - 000000000000A206400B53697A652E48656967687405000000000000009E0440 - 1453697A652E506C6174666F726D44656661756C740816546578745365747469 - 6E67732E466F6E74436F6C6F720708636C615768697465000000545046300754 - 4C61796F757400095374796C654E616D65060D7465787463656C6C7374796C65 - 05416C69676E070643656E7465720756697369626C65080007544C61796F7574 - 00095374796C654E616D650607636F6E74656E7405416C69676E0708436F6E74 - 656E7473064C6F636B6564090C4D617267696E732E4C65667405000000000000 - 008001400B4D617267696E732E546F7005000000000000008001400D4D617267 - 696E732E526967687405000000000000008001400E4D617267696E732E426F74 - 746F6D05000000000000008001400A53697A652E576964746805000000000000 - 00A804400B53697A652E4865696768740500000000000000A804401453697A65 - 2E506C6174666F726D44656661756C740800000C5442727573684F626A656374 - 00095374796C654E616D65060A666F726567726F756E6400000C544272757368 - 4F626A65637400095374796C654E616D65060973656C656374696F6E0B427275 - 73682E436F6C6F72070978393632413832453200000B54466F6E744F626A6563 - 7400095374796C654E616D650604666F6E740000005450463007544C61796F75 - 7400095374796C654E616D6506096D656D6F7374796C6505416C69676E070643 - 656E7465720A53697A652E5769647468050000000000CCCC8806400B53697A65 - 2E4865696768740500000000006666F405401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508000C5442727573684F626A65637400 - 095374796C654E616D65060A666F726567726F756E6400000C5442727573684F - 626A65637400095374796C654E616D65060973656C656374696F6E0B42727573 - 682E436F6C6F72070978374634343735394400000B54466F6E744F626A656374 - 00095374796C654E616D650604666F6E7400000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F7207097846463230323032300748697454 - 657374080A53697A652E5769647468050000000000CCCC8806400B53697A652E - 4865696768740500000000006666F405401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 - 676E0706436C69656E740C4D617267696E732E4C656674050000000000000080 - 00400B4D617267696E732E546F7005000000000000008000400D4D617267696E - 732E526967687405000000000000008000400E4D617267696E732E426F74746F - 6D05000000000000008000400A53697A652E57696474680500000000009899E9 - 05400B53697A652E4865696768740500000000006666CC05401453697A652E50 - 6C6174666F726D44656661756C740800000A545363726F6C6C42617200095374 - 796C654E616D65060A687363726F6C6C62617205416C69676E0706426F74746F - 6D06437572736F72070763724172726F770B536D616C6C4368616E6765050000 - 00000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C - 0A506F736974696F6E2E590500000000006666D405400A53697A652E57696474 - 68050000000000CCCC8806400B53697A652E4865696768740500000000000000 - 8003401453697A652E506C6174666F726D44656661756C740800000A54536372 - 6F6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C - 69676E0705526967687406437572736F72070763724172726F770B536D616C6C - 4368616E676505000000000000000000000B4F7269656E746174696F6E070856 - 6572746963616C0A506F736974696F6E2E580500000000009899F105400A5369 - 7A652E576964746805000000000000008003400B53697A652E48656967687405 - 00000000006666D405401453697A652E506C6174666F726D44656661756C7408 - 000007544C61796F75740005416C69676E0706436C69656E740A53697A652E57 - 696474680500000000009899F105400B53697A652E4865696768740500000000 - 006666D405401453697A652E506C6174666F726D44656661756C7408000F5453 - 6D616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C - 7363726F6C6C62617205416C69676E0705526967687406437572736F72070763 - 724172726F770B536D616C6C4368616E676505000000000000000000000B4F72 - 69656E746174696F6E0708566572746963616C0C4D617267696E732E4C656674 - 05000000000000008000400A53697A652E576964746805000000000000008002 - 400B53697A652E48656967687405000000000000008002401453697A652E506C - 6174666F726D44656661756C74080756697369626C650800000F54536D616C6C - 5363726F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F - 6C6C62617205416C69676E0706426F74746F6D06437572736F72070763724172 - 726F770B536D616C6C4368616E676505000000000000000000000B4F7269656E - 746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F700500 - 0000000000008000400A53697A652E576964746805000000000000009606400B - 53697A652E48656967687405000000000000008002401453697A652E506C6174 - 666F726D44656661756C74080756697369626C65080000000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D6506146D656D6F5374726F6B6541 - 6E696D6174696F6E31084475726174696F6E050000000000000000000007496E + 400000000500000000000000000000000000803F010000000000803F0000803F + 010000000000003F0000000001000000000000000000803F0300000000000000 + 000000000A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080B4D617267696E732E546F700500000000000000E001C00A53697A652E57 + 6964746805000000000000008002400B53697A652E4865696768740500000000 + 0000008001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6500000554506174680005416C69676E070643 + 656E74657209446174612E506174680A34000000040000000000000000000000 + 00000000010000000000803F00000000010000000000003F0000803F03000000 + 00000000000000000A46696C6C2E436F6C6F720708636C615768697465074869 + 7454657374080B4D617267696E732E546F700500000000000000C001400A5369 + 7A652E576964746805000000000000008002400B53697A652E48656967687405 + 000000000000008001401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650000000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + A001400B4D617267696E732E546F7005000000000000008000400D4D61726769 + 6E732E52696768740500000000000000A001400E4D617267696E732E426F7474 + 6F6D05000000000000008000400A53697A652E57696474680500000000000000 + A206400B53697A652E48656967687405000000000000009E04401453697A652E + 506C6174666F726D44656661756C7408165465787453657474696E67732E466F + 6E74436F6C6F720708636C6157686974650000005450463007544C61796F7574 + 00095374796C654E616D65060D7465787463656C6C7374796C6505416C69676E + 070643656E7465720756697369626C65080007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0708436F6E74656E7473064C + 6F636B6564090C4D617267696E732E4C65667405000000000000008001400B4D + 617267696E732E546F7005000000000000008001400D4D617267696E732E5269 + 67687405000000000000008001400E4D617267696E732E426F74746F6D050000 + 00000000008001400A53697A652E57696474680500000000000000A804400B53 + 697A652E4865696768740500000000000000A804401453697A652E506C617466 + 6F726D44656661756C740800000C5442727573684F626A65637400095374796C + 654E616D65060A666F726567726F756E6400000C5442727573684F626A656374 + 00095374796C654E616D65060973656C656374696F6E0B42727573682E436F6C + 6F72070978393632413832453200000B54466F6E744F626A6563740009537479 + 6C654E616D650604666F6E740000005450463007544C61796F75740009537479 + 6C654E616D6506096D656D6F7374796C6505416C69676E070643656E7465720A + 53697A652E5769647468050000000000CCCC8806400B53697A652E4865696768 + 740500000000006666F405401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508000C5442727573684F626A65637400095374796C65 + 4E616D65060A666F726567726F756E6400000C5442727573684F626A65637400 + 095374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F + 72070978374634343735394400000B54466F6E744F626A65637400095374796C + 654E616D650604666F6E7400000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 + 697A652E5769647468050000000000CCCC8806400B53697A652E486569676874 + 0500000000006666F405401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F + 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C + 69656E740C4D617267696E732E4C65667405000000000000008000400B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 + 0000008000400A53697A652E57696474680500000000009899E905400B53697A + 652E4865696768740500000000006666CC05401453697A652E506C6174666F72 + 6D44656661756C740800000A545363726F6C6C42617200095374796C654E616D + 65060A687363726F6C6C62617205416C69676E0706426F74746F6D0643757273 + 6F72070763724172726F770B536D616C6C4368616E6765050000000000000000 + 00000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974 + 696F6E2E590500000000006666D405400A53697A652E57696474680500000000 + 00CCCC8806400B53697A652E4865696768740500000000000000800340145369 + 7A652E506C6174666F726D44656661756C740800000A545363726F6C6C426172 + 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 + 6967687406437572736F72070763724172726F770B536D616C6C4368616E6765 + 05000000000000000000000B4F7269656E746174696F6E070856657274696361 + 6C0A506F736974696F6E2E580500000000009899F105400A53697A652E576964 + 746805000000000000008003400B53697A652E48656967687405000000000066 + 66D405401453697A652E506C6174666F726D44656661756C7408000007544C61 + 796F75740005416C69676E0706436C69656E740A53697A652E57696474680500 + 000000009899F105400B53697A652E4865696768740500000000006666D40540 + 1453697A652E506C6174666F726D44656661756C7408000F54536D616C6C5363 + 726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C + 62617205416C69676E0705526967687406437572736F72070763724172726F77 + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 + 00008000400A53697A652E576964746805000000000000008002400B53697A65 + 2E48656967687405000000000000008002401453697A652E506C6174666F726D + 44656661756C74080756697369626C650800000F54536D616C6C5363726F6C6C + 42617200095374796C654E616D65060F68736D616C6C7363726F6C6C62617205 + 416C69676E0706426F74746F6D06437572736F72070763724172726F770B536D + 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E + 070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000000000 + 8000400A53697A652E576964746805000000000000009606400B53697A652E48 + 656967687405000000000000008002401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C65080000000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D6506146D656D6F5374726F6B65416E696D617469 + 6F6E31084475726174696F6E050000000000000000000007496E766572736509 + 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 + 7456616C756507097846463135313531350953746F7056616C75650709784646 + 3430343034300754726967676572062049734D6F7573654F7665723D74727565 + 3B4973466F63757365643D66616C73650E54726967676572496E766572736506 + 2149734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 146D656D6F5374726F6B65416E696D6174696F6E32084475726174696F6E0500 + 0000000000000000000C50726F70657274794E616D65060C5374726F6B652E43 + 6F6C6F720A537461727456616C756507097846463430343034300953746F7056 + 616C756507097846463241383245320754726967676572060E4973466F637573 + 65643D747275650E54726967676572496E7665727365060F4973466F63757365 + 643D66616C7365000000005450463007544C61796F757400095374796C654E61 + 6D65060E6C696E6B6C6162656C7374796C6505416C69676E070643656E746572 + 0A53697A652E5769647468050000000000CCCC8006400B53697A652E48656967 + 68740500000000009A998104401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C65080005545465787400095374796C654E616D650604 + 7465787405416C69676E0708436F6E74656E74730748697454657374080A5369 + 7A652E5769647468050000000000CCCC8006400B53697A652E48656967687405 + 00000000009A998104401453697A652E506C6174666F726D44656661756C7408 + 1A5465787453657474696E67732E466F6E742E5374796C654578740A0D000000 + 04040000000000000004000000165465787453657474696E67732E466F6E7443 + 6F6C6F72070D636C61446F64676572626C7565000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E31 + 5374796C65084475726174696F6E050000000000000000000007496E76657273 + 65090C50726F70657274794E616D6506165465787453657474696E67732E466F + 6E74436F6C6F720A537461727456616C7565070D636C61446F64676572626C75 + 650953746F7056616C7565070E636C6144656570736B79626C75650754726967 + 676572063049734D6F7573654F7665723D747275653B4973507265737365643D + 66616C73653B4973466F63757365643D66616C73650E54726967676572496E76 + 65727365063149734D6F7573654F7665723D66616C73653B4973507265737365 + 643D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E325374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D6506165465787453657474696E67732E466F6E74436F + 6C6F720A537461727456616C7565070E636C6144656570736B79626C75650953 + 746F7056616C756507097846463137353739430754726967676572062F497350 + 7265737365643D747275653B49734D6F7573654F7665723D747275653B497346 + 6F63757365643D66616C736500000000545046300A5452656374616E676C6500 + 095374796C654E616D65060E7374617475736261727374796C6505416C69676E + 070643656E7465720C436C69704368696C6472656E090A46696C6C2E436F6C6F + 7207097846463235323532350748697454657374080553696465730B03546F70 + 000A53697A652E57696474680500000000000000F004400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313507566973 + 69626C65080007544C61796F757400095374796C654E616D6506074C61796F75 + 743105416C69676E070552696768740A506F736974696F6E2E58050000000000 + 00008C04400A53697A652E57696474680500000000000000C803400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C740800095453697A654772697000095374796C654E616D650609 + 73697A65677267697005416C69676E0706426F74746F6D0A506F736974696F6E + 2E590500000000000000C803400A53697A652E57696474680500000000000000 + C803400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C7408000000005450463007544C61796F7574 + 00095374796C654E616D65060C7370696E626F787374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000006666E005400B5369 + 7A652E4865696768740500000000000000A803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A + 652E57696474680500000000006666E005400B53697A652E4865696768740500 + 000000000000A803401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 + 696F6E315374796C65084475726174696F6E050000000000000000000007496E 7665727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F 720A537461727456616C756507097846463135313531350953746F7056616C75 - 6507097846463430343034300754726967676572062049734D6F7573654F7665 - 723D747275653B4973466F63757365643D66616C73650E54726967676572496E - 7665727365062149734D6F7573654F7665723D66616C73653B4973466F637573 - 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D6506146D656D6F5374726F6B65416E696D6174696F6E320844757261 - 74696F6E05000000000000000000000C50726F70657274794E616D65060C5374 - 726F6B652E436F6C6F720A537461727456616C75650709784646343034303430 - 0953746F7056616C756507097846463241383245320754726967676572060E49 - 73466F63757365643D747275650E54726967676572496E7665727365060F4973 - 466F63757365643D66616C7365000000005450463007544C61796F7574000953 - 74796C654E616D65060E6C696E6B6C6162656C7374796C6505416C69676E0706 - 43656E7465720A53697A652E5769647468050000000000CCCC8006400B53697A - 652E4865696768740500000000009A998104401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C65080005545465787400095374796C65 - 4E616D6506047465787405416C69676E0708436F6E74656E7473074869745465 - 7374080A53697A652E5769647468050000000000CCCC8006400B53697A652E48 - 65696768740500000000009A998104401453697A652E506C6174666F726D4465 - 6661756C74081A5465787453657474696E67732E466F6E742E5374796C654578 - 740A0D00000004040000000000000004000000165465787453657474696E6773 - 2E466F6E74436F6C6F72070D636C61446F64676572626C7565000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D - 6174696F6E315374796C65084475726174696F6E050000000000000000000007 - 496E7665727365090C50726F70657274794E616D650616546578745365747469 - 6E67732E466F6E74436F6C6F720A537461727456616C7565070D636C61446F64 - 676572626C75650953746F7056616C7565070E636C6144656570736B79626C75 - 650754726967676572063049734D6F7573654F7665723D747275653B49735072 - 65737365643D66616C73653B4973466F63757365643D66616C73650E54726967 - 676572496E7665727365063149734D6F7573654F7665723D66616C73653B4973 - 507265737365643D66616C73653B4973466F63757365643D66616C736500000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F - 72416E696D6174696F6E325374796C65084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D6506165465787453657474696E67732E - 466F6E74436F6C6F720A537461727456616C7565070E636C6144656570736B79 - 626C75650953746F7056616C7565070978464631373537394307547269676765 - 72062F4973507265737365643D747275653B49734D6F7573654F7665723D7472 - 75653B4973466F63757365643D66616C736500000000545046300A5452656374 - 616E676C6500095374796C654E616D65060E7374617475736261727374796C65 - 05416C69676E070643656E7465720C436C69704368696C6472656E090A46696C - 6C2E436F6C6F7207097846463235323532350748697454657374080553696465 - 730B03546F70000A53697A652E57696474680500000000000000F004400B5369 - 7A652E4865696768740500000000000000C804401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 31350756697369626C65080007544C61796F757400095374796C654E616D6506 - 074C61796F75743105416C69676E070552696768740A506F736974696F6E2E58 - 05000000000000008C04400A53697A652E57696474680500000000000000C803 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C740800095453697A654772697000095374796C65 - 4E616D65060973697A65677267697005416C69676E0706426F74746F6D0A506F - 736974696F6E2E590500000000000000C803400A53697A652E57696474680500 - 000000000000C803400B53697A652E4865696768740500000000000000C80340 - 1453697A652E506C6174666F726D44656661756C740800000000545046300754 - 4C61796F757400095374796C654E616D65060C7370696E626F787374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000006666 - E005400B53697A652E4865696768740500000000000000A803401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 - 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 - 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230 - 32300A53697A652E57696474680500000000006666E005400B53697A652E4865 - 696768740500000000000000A803401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 - 416E696D6174696F6E315374796C65084475726174696F6E0500000000000000 - 00000007496E7665727365090C50726F70657274794E616D65060C5374726F6B - 652E436F6C6F720A537461727456616C75650709784646313531353135095374 - 6F7056616C756507097846463430343034300754726967676572061049734D6F - 7573654F7665723D747275650E54726967676572496E7665727365061149734D - 6F7573654F7665723D66616C73650000000C5442727573684F626A6563740009 - 5374796C654E616D65060A666F726567726F756E640B42727573682E436F6C6F - 72070978464645414541454100000C5442727573684F626A6563740009537479 - 6C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72070978 - 3936324138324532000007544C61796F757400095374796C654E616D65060763 - 6F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D6172 - 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 - 05000000000000008000400D4D617267696E732E526967687405000000000000 - 008000400E4D617267696E732E426F74746F6D05000000000000008000400A53 - 697A652E576964746805000000000070668405400B53697A652E486569676874 - 05000000000000008803401453697A652E506C6174666F726D44656661756C74 - 0800000754427574746F6E00095374796C654E616D65060B6D696E7573627574 - 746F6E05416C69676E07074669744C6566740843616E466F6375730806437572 - 736F72070763724172726F770C4D617267696E732E4C65667405000000000000 - 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 - 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D05000000000000008000400A506F736974696F6E2E5805000000000000 - 008000400A506F736974696F6E2E5905000000000000008000400A53697A652E - 5769647468050000000000E8FF8703400B53697A652E48656967687405000000 - 000000008803401453697A652E506C6174666F726D44656661756C74080B5374 - 796C654C6F6F6B7570060B627574746F6E7374796C6500055450617468000541 - 6C69676E0706436C69656E7409446174612E506174680A400000000500000000 - 0000000000803F00000000010000000000803F0000803F010000000000000000 - 00003F010000000000803F00000000030000000000803F000000000A46696C6C - 2E436F6C6F720708636C6157686974650748697454657374080C4D617267696E - 732E4C6566740500000000000000C001400B4D617267696E732E546F70050000 - 0000000000C001400D4D617267696E732E52696768740500000000000000C001 - 400E4D617267696E732E426F74746F6D0500000000000000C001400A53697A65 - 2E5769647468050000000000A0FF9F01400B53697A652E486569676874050000 - 0000000000A001401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E650000000754427574746F6E0009537479 - 6C654E616D65060A706C7573627574746F6E05416C69676E0708466974526967 - 68740843616E466F6375730806437572736F72070763724172726F770C4D6172 - 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 - 05000000000000008000400D4D617267696E732E526967687405000000000000 - 008000400E4D617267696E732E426F74746F6D05000000000000008000400A50 - 6F736974696F6E2E580500000000006A66BA05400A506F736974696F6E2E5905 - 000000000000008000400A53697A652E5769647468050000000000F0FF870340 - 0B53697A652E48656967687405000000000000008803401453697A652E506C61 - 74666F726D44656661756C74080B5374796C654C6F6F6B7570060B627574746F - 6E7374796C65000554506174680005416C69676E0706436C69656E7409446174 - 612E506174680A34000000040000000000000000000000000000000100000000 - 0000000000803F010000000000803F0000003F0300000000000000000000000A - 46696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D61 - 7267696E732E4C6566740500000000000000C001400B4D617267696E732E546F - 700500000000000000C001400D4D617267696E732E5269676874050000000000 - 0000C001400E4D617267696E732E426F74746F6D0500000000000000C001400A - 53697A652E5769647468050000000000C0FF9F01400B53697A652E4865696768 - 740500000000000000A001401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61 - 796F757400095374796C654E616D65060D73697A65677269707374796C650541 - 6C69676E070643656E7465720A53697A652E57696474680500000000000000C8 - 03400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 - 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 - 6E070643656E7465720A46696C6C2E436F6C6F7207097846463630363036300A - 53697A652E57696474680500000000000000A000400B53697A652E4865696768 - 740500000000000000A000401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C - 6500095374796C654E616D65060A52656374616E676C653205416C69676E0706 - 43656E7465720A46696C6C2E436F6C6F7207097846463630363036300C4D6172 - 67696E732E4C6566740500000000000000A002400A53697A652E576964746805 - 00000000000000A000400B53697A652E4865696768740500000000000000A000 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653305416C69676E070643656E7465720A46696C6C - 2E436F6C6F7207097846463630363036300C4D617267696E732E4C6566740500 - 000000000000A002400B4D617267696E732E546F700500000000000000A00240 - 0A53697A652E57696474680500000000000000A000400B53697A652E48656967 - 68740500000000000000A000401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E67 - 6C6500095374796C654E616D65060A52656374616E676C653405416C69676E07 - 0643656E7465720A46696C6C2E436F6C6F7207097846463630363036300B4D61 - 7267696E732E546F700500000000000000A002400A53697A652E576964746805 - 00000000000000A000400B53697A652E4865696768740500000000000000A000 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653505416C69676E070643656E7465720A46696C6C - 2E436F6C6F7207097846463630363036300B4D617267696E732E546F70050000 - 0000000000A002400D4D617267696E732E52696768740500000000000000A002 - 400A53697A652E57696474680500000000000000A000400B53697A652E486569 - 6768740500000000000000A000401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E - 676C6500095374796C654E616D65060A52656374616E676C653605416C69676E - 070643656E7465720A46696C6C2E436F6C6F7207097846463630363036300C4D - 617267696E732E4C6566740500000000000000A002400E4D617267696E732E42 - 6F74746F6D0500000000000000A002400A53697A652E57696474680500000000 - 000000A000400B53697A652E4865696768740500000000000000A00040145369 + 6507097846463430343034300754726967676572061049734D6F7573654F7665 + 723D747275650E54726967676572496E7665727365061149734D6F7573654F76 + 65723D66616C73650000000C5442727573684F626A65637400095374796C654E + 616D65060A666F726567726F756E640B42727573682E436F6C6F720709784646 + 45414541454100000C5442727573684F626A65637400095374796C654E616D65 + 060973656C656374696F6E0B42727573682E436F6C6F72070978393632413832 + 4532000007544C61796F757400095374796C654E616D650607636F6E74656E74 + 05416C69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C + 65667405000000000000008000400B4D617267696E732E546F70050000000000 + 00008000400D4D617267696E732E526967687405000000000000008000400E4D + 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 + 64746805000000000070668405400B53697A652E486569676874050000000000 + 00008803401453697A652E506C6174666F726D44656661756C74080000075442 + 7574746F6E00095374796C654E616D65060B6D696E7573627574746F6E05416C + 69676E07074669744C6566740843616E466F6375730806437572736F72070763 + 724172726F770C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A506F736974696F6E2E5805000000000000008000400A50 + 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 + 0000000000E8FF8703400B53697A652E48656967687405000000000000008803 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B7570060B627574746F6E7374796C65000554506174680005416C69676E0706 + 436C69656E7409446174612E506174680A400000000500000000000000000080 + 3F00000000010000000000803F0000803F01000000000000000000003F010000 + 000000803F00000000030000000000803F000000000A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080C4D617267696E732E4C656674 + 0500000000000000C001400B4D617267696E732E546F700500000000000000C0 + 01400D4D617267696E732E52696768740500000000000000C001400E4D617267 + 696E732E426F74746F6D0500000000000000C001400A53697A652E5769647468 + 050000000000A0FF9F01400B53697A652E4865696768740500000000000000A0 + 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E650000000754427574746F6E00095374796C654E616D65 + 060A706C7573627574746F6E05416C69676E070846697452696768740843616E + 466F6375730806437572736F72070763724172726F770C4D617267696E732E4C + 65667405000000000000008000400B4D617267696E732E546F70050000000000 + 00008000400D4D617267696E732E526967687405000000000000008000400E4D + 617267696E732E426F74746F6D05000000000000008000400A506F736974696F + 6E2E580500000000006A66BA05400A506F736974696F6E2E5905000000000000 + 008000400A53697A652E5769647468050000000000F0FF8703400B53697A652E + 48656967687405000000000000008803401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B7570060B627574746F6E7374796C65 + 000554506174680005416C69676E0706436C69656E7409446174612E50617468 + 0A34000000040000000000000000000000000000000100000000000000000080 + 3F010000000000803F0000003F0300000000000000000000000A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080C4D617267696E732E + 4C6566740500000000000000C001400B4D617267696E732E546F700500000000 + 000000C001400D4D617267696E732E52696768740500000000000000C001400E + 4D617267696E732E426F74746F6D0500000000000000C001400A53697A652E57 + 69647468050000000000C0FF9F01400B53697A652E4865696768740500000000 + 000000A001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 + 5374796C654E616D65060D73697A65677269707374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000C803400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508000A5452656374616E676C650009 + 5374796C654E616D65060A52656374616E676C653105416C69676E070643656E + 7465720A46696C6C2E436F6C6F7207097846463630363036300A53697A652E57 + 696474680500000000000000A000400B53697A652E4865696768740500000000 + 000000A000401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009537479 + 6C654E616D65060A52656374616E676C653205416C69676E070643656E746572 + 0A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C + 6566740500000000000000A002400A53697A652E576964746805000000000000 + 00A000400B53697A652E4865696768740500000000000000A000401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653305416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463630363036300C4D617267696E732E4C6566740500000000000000 + A002400B4D617267696E732E546F700500000000000000A002400A53697A652E + 57696474680500000000000000A000400B53697A652E48656967687405000000 + 00000000A000401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653405416C69676E070643656E7465 + 720A46696C6C2E436F6C6F7207097846463630363036300B4D617267696E732E + 546F700500000000000000A002400A53697A652E576964746805000000000000 + 00A000400B53697A652E4865696768740500000000000000A000401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653505416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463630363036300B4D617267696E732E546F700500000000000000A0 + 02400D4D617267696E732E52696768740500000000000000A002400A53697A65 + 2E57696474680500000000000000A000400B53697A652E486569676874050000 + 0000000000A000401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65000953 + 74796C654E616D65060A52656374616E676C653605416C69676E070643656E74 + 65720A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E73 + 2E4C6566740500000000000000A002400E4D617267696E732E426F74746F6D05 + 00000000000000A002400A53697A652E57696474680500000000000000A00040 + 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0000545046300A5452656374616E676C6500095374796C654E616D65060C746F + 6F6C6261727374796C6505416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463235323532350748697454657374080553696465730B0642 + 6F74746F6D000A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 350756697369626C650800005450463007544C61796F757400095374796C654E + 616D65061570726F67726573736261726572726F727374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000033338505400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 + 00095374796C654E616D65060668747261636B05416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000003333850540 + 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 3531353135000A5452656374616E676C6500095374796C654E616D65060A6869 + 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 + 09784646453232413241064C6F636B6564090748697454657374080C4D617267 + 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 + 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 + 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F + 736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500 + 00000000000080FF3F0A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000009999D904401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 000A5452656374616E676C6500095374796C654E616D65060676747261636B05 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 + 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000033338505400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135000A5452656374616E676C65000953 + 74796C654E616D65060A76696E64696361746F7205416C69676E0706426F7474 + 6F6D0A46696C6C2E436F6C6F720709784646453232413241064C6F636B656409 + 0748697454657374080C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A506F736974696F6E2E58050000000000000080FF + 3F0A506F736974696F6E2E5905000000000099998904400A53697A652E576964 + 746805000000000033338105400B53697A652E48656967687405000000000000 + 00A803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000000005450463007544C61796F757400095374 + 796C654E616D65060F64726F707461726765747374796C6505416C69676E0706 + 43656E7465720A53697A652E5769647468050000000000ACAAD905400B53697A + 652E4865696768740500000000000000CF05401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508000A5452656374616E676C650005 + 416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E6507 + 48697454657374080A53697A652E5769647468050000000000ACAAD905400B53 + 697A652E4865696768740500000000000000CF05401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720708636C61576869 + 7465105374726F6B652E546869636B6E65737305000000000000008001400B53 + 74726F6B652E4461736807044461736807585261646975730500000000000000 + C0024007595261646975730500000000000000C0024000055454657874000953 + 74796C654E616D6506047465787405416C69676E0706426F74746F6D07486974 + 54657374080C4D617267696E732E4C6566740500000000000000A002400D4D61 + 7267696E732E52696768740500000000000000A002400A506F736974696F6E2E + 580500000000000000A002400A506F736974696F6E2E590500000000000000D6 + 04400A53697A652E5769647468050000000000ACAAB105400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 6157686974650000001254466C6F61744B6579416E696D6174696F6E00084475 + 726174696F6E050000000000999999FE3F044B6579730E010001034B65790500 + 00000000000080FE3F0556616C75650500000000000000A003C00001034B6579 + 050000000000000080FF3F0000044C6F6F70090C50726F70657274794E616D65 + 060B50616464696E672E546F7010537461727446726F6D43757272656E740807 + 54726967676572060F4973447261674F7665723D747275650000055450617468 + 0005416C69676E070643656E74657209446174612E506174680AC40000001000 + 00000000000008EC8343F087A4430100000008EC8343083CFB430200000035BE + 7143504DF9430200000012835C43A8E6F54302000000F0674943F803F1430100 + 000008EC8343FC0116440100000008EC8343FC5116440100000000408443FC51 + 16440100000010689A43FC412B4401000000081CD043F803F14302000000915D + C64321E0F54302000000919DBB439643F94302000000087CB043F833FB430100 + 0000087CB043F087A4430100000008EC8343F087A44303000000000000000000 + 00000A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000100C804401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61 + 796F757400095374796C654E616D65061464726F707461726765746669656C64 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 0000000000A08A07400B53697A652E4865696768740500000000000000B20440 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 + 0A5452656374616E676C6500095374796C654E616D65060A52656374616E676C + 653105416C69676E0706436C69656E740946696C6C2E4B696E6407044E6F6E65 + 0748697454657374080A53697A652E576964746805000000000000A08A07400B + 53697A652E4865696768740500000000000000B204401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463241 + 383245320005545465787400095374796C654E616D6506047465787405416C69 + 676E0706436C69656E740748697454657374080A53697A652E57696474680500 + 0000000000809A05400B53697A652E4865696768740500000000000000B20440 + 1453697A652E506C6174666F726D44656661756C740816546578745365747469 + 6E67732E466F6E74436F6C6F720708636C615768697465000007544C61796F75 + 7400095374796C654E616D6506074C61796F75743105416C69676E07044C6566 + 740A53697A652E57696474680500000000000000C805400B53697A652E486569 + 6768740500000000000000B204401453697A652E506C6174666F726D44656661 + 756C74080005545061746800095374796C654E616D650605506174683105416C + 69676E070643656E74657209446174612E506174680A24010000180000000000 + 000073B8AC43C14A7843010000006D2717435849DD430200000086CB0A431078 + E343020000009683ED421078E34302000000DACED4425849DD43020000009A19 + BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEAC6430100 + 0000B4288B4385EB61430100000068D1D4426811584202000000281CBC42CAA1 + 264202000000281CBC42E6FBAC410200000068D1D442D04D144102000000A886 + ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D14410100 + 000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D2 + 5943020000009F5AB14343EB614302000000A05AB1439C046A4302000000FACE + AF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A78430A46 + 696C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A + 652E57696474680500000000000000F002400B53697A652E4865696768740500 + 000000000000F002401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400 + 0005545061746800095374796C654E616D650605506174683205416C69676E07 + 0643656E74657209446174612E506174680A24010000180000000000000073B8 + AC43C14A7843010000006D2717435849DD430200000086CB0A431078E3430200 + 00009683ED421078E34302000000DACED4425849DD43020000009A19BC42081C + D743020000009A19BC424C17CD4302000000DACED4421DEAC64301000000B428 + 8B4385EB61430100000068D1D4426811584202000000281CBC42CAA126420200 + 0000281CBC42E6FBAC410200000068D1D442D04D144102000000A886ED429CC2 + 45C002000000CCCC0A439CC245C002000000B4281743D04D14410100000016B9 + AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D259430200 + 00009F5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43711D + 72430200000073B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080C4D617267696E73 + 2E4C6566740500000000000000A004400A53697A652E57696474680500000000 + 000000F002400B53697A652E4865696768740500000000000000F00240145369 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000000545046300A5452656374616E676C6500095374796C654E61 - 6D65060C746F6F6C6261727374796C6505416C69676E070643656E7465720A46 - 696C6C2E436F6C6F720709784646323532353235074869745465737408055369 - 6465730B06426F74746F6D000A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000000000C804401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 463135313531350756697369626C650800005450463007544C61796F75740009 - 5374796C654E616D65061570726F67726573736261726572726F727374796C65 - 05416C69676E070643656E7465720A53697A652E576964746805000000000033 - 338505400B53697A652E4865696768740500000000009999E104401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508000A54526563 - 74616E676C6500095374796C654E616D65060668747261636B05416C69676E07 - 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230323006 - 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 - 0033338505400B53697A652E4865696768740500000000009999E10440145369 - 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 0709784646313531353135000A5452656374616E676C6500095374796C654E61 - 6D65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E - 436F6C6F720709784646453232413241064C6F636B6564090748697454657374 - 080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E - 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 - 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 - 80FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73697469 - 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000009999D904401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E650000000A5452656374616E676C6500095374796C654E616D65060676 - 747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 - 0709784646323032303230064C6F636B6564090748697454657374080A53697A - 652E576964746805000000000033338505400B53697A652E4865696768740500 - 000000009999E104401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646313531353135000A5452656374616E - 676C6500095374796C654E616D65060A76696E64696361746F7205416C69676E - 0706426F74746F6D0A46696C6C2E436F6C6F720709784646453232413241064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D - 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E - 426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000 - 0000000080FF3F0A506F736974696F6E2E5905000000000099998904400A5369 - 7A652E576964746805000000000033338105400B53697A652E48656967687405 - 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F - 757400095374796C654E616D65060F64726F707461726765747374796C650541 - 6C69676E070643656E7465720A53697A652E5769647468050000000000ACAAD9 - 05400B53697A652E4865696768740500000000000000CF05401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 - 6E676C650005416C69676E0708436F6E74656E74730946696C6C2E4B696E6407 - 044E6F6E650748697454657374080A53697A652E5769647468050000000000AC - AAD905400B53697A652E4865696768740500000000000000CF05401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720708 - 636C615768697465105374726F6B652E546869636B6E65737305000000000000 - 008001400B5374726F6B652E4461736807044461736807585261646975730500 - 000000000000C0024007595261646975730500000000000000C0024000055454 - 65787400095374796C654E616D6506047465787405416C69676E0706426F7474 - 6F6D0748697454657374080C4D617267696E732E4C6566740500000000000000 - A002400D4D617267696E732E52696768740500000000000000A002400A506F73 - 6974696F6E2E580500000000000000A002400A506F736974696F6E2E59050000 - 0000000000D604400A53697A652E5769647468050000000000ACAAB105400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C6157686974650000001254466C6F61744B6579416E696D617469 - 6F6E00084475726174696F6E050000000000999999FE3F044B6579730E010001 - 034B6579050000000000000080FE3F0556616C75650500000000000000A003C0 - 0001034B6579050000000000000080FF3F0000044C6F6F70090C50726F706572 - 74794E616D65060B50616464696E672E546F7010537461727446726F6D437572 - 72656E74080754726967676572060F4973447261674F7665723D747275650000 - 0554506174680005416C69676E070643656E74657209446174612E506174680A - C4000000100000000000000008EC8343F087A4430100000008EC8343083CFB43 - 0200000035BE7143504DF9430200000012835C43A8E6F54302000000F0674943 - F803F1430100000008EC8343FC0116440100000008EC8343FC51164401000000 - 00408443FC5116440100000010689A43FC412B4401000000081CD043F803F143 - 02000000915DC64321E0F54302000000919DBB439643F94302000000087CB043 - F833FB4301000000087CB043F087A4430100000008EC8343F087A44303000000 - 00000000000000000A46696C6C2E436F6C6F720708636C615768697465074869 - 7454657374080A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000100C804401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000005450 - 463007544C61796F757400095374796C654E616D65061464726F707461726765 - 746669656C647374796C6505416C69676E070643656E7465720A53697A652E57 - 6964746805000000000000A08A07400B53697A652E4865696768740500000000 - 000000B204401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508000A5452656374616E676C6500095374796C654E616D65060A5265 - 6374616E676C653105416C69676E0706436C69656E740946696C6C2E4B696E64 - 07044E6F6E650748697454657374080A53697A652E5769647468050000000000 - 00A08A07400B53697A652E4865696768740500000000000000B204401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 097846463241383245320005545465787400095374796C654E616D6506047465 - 787405416C69676E0706436C69656E740748697454657374080A53697A652E57 - 6964746805000000000000809A05400B53697A652E4865696768740500000000 - 000000B204401453697A652E506C6174666F726D44656661756C740816546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000007 - 544C61796F757400095374796C654E616D6506074C61796F75743105416C6967 - 6E07044C6566740A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000B204401453697A652E506C6174666F - 726D44656661756C74080005545061746800095374796C654E616D6506055061 - 74683105416C69676E070643656E74657209446174612E506174680A24010000 - 180000000000000073B8AC43C14A7843010000006D2717435849DD4302000000 - 86CB0A431078E343020000009683ED421078E34302000000DACED4425849DD43 - 020000009A19BC42081CD743020000009A19BC424C17CD4302000000DACED442 - 1DEAC64301000000B4288B4385EB61430100000068D1D4426811584202000000 - 281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D1441 - 02000000A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743 - D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB514302000000 - 9F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1439C046A43 - 02000000FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43 - C14A78430A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080A53697A652E57696474680500000000000000F002400B53697A652E4865 - 696768740500000000000000F002401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465 - 0703466974000005545061746800095374796C654E616D650605506174683205 - 416C69676E070643656E74657209446174612E506174680A2401000018000000 - 0000000073B8AC43C14A7843010000006D2717435849DD430200000086CB0A43 - 1078E343020000009683ED421078E34302000000DACED4425849DD4302000000 - 9A19BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEAC643 - 01000000B4288B4385EB61430100000068D1D4426811584202000000281CBC42 - CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D144102000000 - A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D1441 - 0100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143 - F1D25943020000009F5AB14343EB614302000000A05AB1439C046A4302000000 - FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A7843 - 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D - 617267696E732E4C6566740500000000000000A004400A53697A652E57696474 - 680500000000000000F002400B53697A652E4865696768740500000000000000 - F002401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6508577261704D6F6465070346697400000554506174 - 6800095374796C654E616D650605506174683305416C69676E070643656E7465 - 7209446174612E506174680A24010000180000000000000073B8AC43C14A7843 - 010000006D2717435849DD430200000086CB0A431078E343020000009683ED42 - 1078E34302000000DACED4425849DD43020000009A19BC42081CD74302000000 - 9A19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385EB6143 - 0100000068D1D4426811584202000000281CBC42CAA1264202000000281CBC42 - E6FBAC410200000068D1D442D04D144102000000A886ED429CC245C002000000 - CCCC0A439CC245C002000000B4281743D04D14410100000016B9AC43918D4B43 - 02000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB143 - 43EB614302000000A05AB1439C046A4302000000FACEAF43711D724302000000 - 73B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F7207 - 08636C6157686974650748697454657374080D4D617267696E732E5269676874 - 0500000000000000A004400A53697A652E57696474680500000000000000F002 + 044E6F6E6508577261704D6F6465070346697400000554506174680009537479 + 6C654E616D650605506174683305416C69676E070643656E7465720944617461 + 2E506174680A24010000180000000000000073B8AC43C14A7843010000006D27 + 17435849DD430200000086CB0A431078E343020000009683ED421078E3430200 + 0000DACED4425849DD43020000009A19BC42081CD743020000009A19BC424C17 + CD4302000000DACED4421DEAC64301000000B4288B4385EB61430100000068D1 + D4426811584202000000281CBC42CAA1264202000000281CBC42E6FBAC410200 + 000068D1D442D04D144102000000A886ED429CC245C002000000CCCC0A439CC2 + 45C002000000B4281743D04D14410100000016B9AC43918D4B4302000000BECF + AF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB61430200 + 0000A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43C14A + 78430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080D4D617267696E732E5269676874050000000000 + 0000A004400A53697A652E57696474680500000000000000F002400B53697A65 + 2E4865696768740500000000000000F002401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D + 6F6465070346697400000007544C61796F757400095374796C654E616D650607 + 4C61796F75743205416C69676E070552696768740A506F736974696F6E2E5805 + 00000000000040B106400A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000B204401453697A652E506C61 + 74666F726D44656661756C74080005545061746800095374796C654E616D6506 + 05506174683105416C69676E070643656E74657209446174612E506174680A24 + 010000180000000000000073B8AC43C14A7843010000006D2717435849DD4302 + 00000086CB0A431078E343020000009683ED421078E34302000000DACED44258 + 49DD43020000009A19BC42081CD743020000009A19BC424C17CD4302000000DA + CED4421DEAC64301000000B4288B4385EB61430100000068D1D4426811584202 + 000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D0 + 4D144102000000A886ED429CC245C002000000CCCC0A439CC245C002000000B4 + 281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB514302 + 0000009F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1439C + 046A4302000000FACEAF43711D72430200000073B8AC43C14A78430300000073 + B8AC43C14A78430A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080D526F746174696F6E416E676C650500000000000000B406400A53 + 697A652E57696474680500000000000000F002400B53697A652E486569676874 + 0500000000000000F002401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 + 74000005545061746800095374796C654E616D650605506174683205416C6967 + 6E070643656E74657209446174612E506174680A240100001800000000000000 + 73B8AC43C14A7843010000006D2717435849DD430200000086CB0A431078E343 + 020000009683ED421078E34302000000DACED4425849DD43020000009A19BC42 + 081CD743020000009A19BC424C17CD4302000000DACED4421DEAC64301000000 + B4288B4385EB61430100000068D1D4426811584202000000281CBC42CAA12642 + 02000000281CBC42E6FBAC410200000068D1D442D04D144102000000A886ED42 + 9CC245C002000000CCCC0A439CC245C002000000B4281743D04D144101000000 + 16B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D25943 + 020000009F5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43 + 711D72430200000073B8AC43C14A78430300000073B8AC43C14A78430A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080C4D61726769 + 6E732E4C6566740500000000000000A004400D526F746174696F6E416E676C65 + 0500000000000000B406400A53697A652E57696474680500000000000000F002 400B53697A652E4865696768740500000000000000F002401453697A652E506C 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 08577261704D6F6465070346697400000007544C61796F757400095374796C65 - 4E616D6506074C61796F75743205416C69676E070552696768740A506F736974 - 696F6E2E580500000000000040B106400A53697A652E57696474680500000000 - 000000C805400B53697A652E4865696768740500000000000000B20440145369 - 7A652E506C6174666F726D44656661756C74080005545061746800095374796C - 654E616D650605506174683105416C69676E070643656E74657209446174612E - 506174680A24010000180000000000000073B8AC43C14A7843010000006D2717 - 435849DD430200000086CB0A431078E343020000009683ED421078E343020000 - 00DACED4425849DD43020000009A19BC42081CD743020000009A19BC424C17CD - 4302000000DACED4421DEAC64301000000B4288B4385EB61430100000068D1D4 - 426811584202000000281CBC42CAA1264202000000281CBC42E6FBAC41020000 - 0068D1D442D04D144102000000A886ED429CC245C002000000CCCC0A439CC245 - C002000000B4281743D04D14410100000016B9AC43918D4B4302000000BECFAF - 43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB6143020000 - 00A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43C14A78 - 430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C61576869 - 74650748697454657374080D526F746174696F6E416E676C6505000000000000 - 00B406400A53697A652E57696474680500000000000000F002400B53697A652E - 4865696768740500000000000000F002401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F - 64650703466974000005545061746800095374796C654E616D65060550617468 - 3205416C69676E070643656E74657209446174612E506174680A240100001800 - 00000000000073B8AC43C14A7843010000006D2717435849DD430200000086CB - 0A431078E343020000009683ED421078E34302000000DACED4425849DD430200 - 00009A19BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEA - C64301000000B4288B4385EB61430100000068D1D4426811584202000000281C - BC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D14410200 - 0000A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D - 14410100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5A - B143F1D25943020000009F5AB14343EB614302000000A05AB1439C046A430200 - 0000FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A - 78430A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0C4D617267696E732E4C6566740500000000000000A004400D526F746174696F - 6E416E676C650500000000000000B406400A53697A652E576964746805000000 - 00000000F002400B53697A652E4865696768740500000000000000F002401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6508577261704D6F64650703466974000005545061746800095374 - 796C654E616D650605506174683305416C69676E070643656E74657209446174 - 612E506174680A24010000180000000000000073B8AC43C14A7843010000006D - 2717435849DD430200000086CB0A431078E343020000009683ED421078E34302 - 000000DACED4425849DD43020000009A19BC42081CD743020000009A19BC424C - 17CD4302000000DACED4421DEAC64301000000B4288B4385EB61430100000068 - D1D4426811584202000000281CBC42CAA1264202000000281CBC42E6FBAC4102 - 00000068D1D442D04D144102000000A886ED429CC245C002000000CCCC0A439C - C245C002000000B4281743D04D14410100000016B9AC43918D4B4302000000BE - CFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB614302 - 000000A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43C1 - 4A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C6157 - 686974650748697454657374080D4D617267696E732E52696768740500000000 - 000000A004400D526F746174696F6E416E676C650500000000000000B406400A - 53697A652E57696474680500000000000000F002400B53697A652E4865696768 - 740500000000000000F002401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346 - 697400000000005450463007544C61796F757400095374796C654E616D65060C - 706F706F7665727374796C6505416C69676E070643656E746572075669736962 - 6C6508000A5452656374616E676C6500095374796C654E616D65060262670541 - 6C69676E0706436C69656E740A46696C6C2E436F6C6F72070978464632303230 - 32300748697454657374080A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 3135313531350007544C61796F757400095374796C654E616D650607636F6E74 - 656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566740500 - 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F - 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E - 732E426F74746F6D050000000000000080FF3F0A53697A652E57696474680500 - 000000000000C004400B53697A652E4865696768740500000000000000C00440 - 1453697A652E506C6174666F726D44656661756C740800000D54536861646F77 - 456666656374000844697374616E63650500000000000000C000400944697265 - 6374696F6E0500000000000000B4054008536F66746E65737305000000000000 - 0080FE3F074F706163697479050000000000000080FE3F0B536861646F77436F - 6C6F720708636C61426C61636B000000005450463007544C61796F7574000953 - 74796C654E616D65060D706F707570626F787374796C6505416C69676E070643 - 656E7465720A53697A652E57696474680500000000000080C406400B53697A65 - 2E4865696768740500000000000000D404401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508000A5452656374616E676C65000953 - 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 - 656E74730A46696C6C2E436F6C6F720709784646323032303230074869745465 - 7374080A53697A652E57696474680500000000000080C406400B53697A652E48 - 65696768740500000000000000D404401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 - 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463230323032300953746F7056616C7565070978464634303430 - 34300754726967676572062049734D6F7573654F7665723D747275653B497350 - 7265737365643D66616C73650E54726967676572496E7665727365062149734D - 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C - 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463430343034300953746F7056616C75650709 - 7846463241383245320754726967676572062049734D6F7573654F7665723D74 - 7275653B4973507265737365643D747275653B0E54726967676572496E766572 - 7365062049734D6F7573654F7665723D747275653B4973507265737365643D66 - 616C736500000007544C61796F75740005416C69676E070552696768740A506F - 736974696F6E2E580500000000000080B506400A53697A652E57696474680500 - 000000000000F002400B53697A652E4865696768740500000000000000D40440 - 1453697A652E506C6174666F726D44656661756C740800055450617468000541 - 6C69676E070643656E74657209446174612E506174680A400000000500000000 - 000000000000000000803F010000000000803F0000803F010000000000003F00 - 00000001000000000000000000803F0300000000000000000000000A46696C6C - 2E436F6C6F720708636C6157686974650748697454657374080B4D617267696E - 732E546F700500000000000000E001C00A53697A652E57696474680500000000 - 0000008002400B53697A652E4865696768740500000000000000800140145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E6500000554506174680005416C69676E070643656E74657209446174 - 612E506174680A34000000040000000000000000000000000000000100000000 - 00803F00000000010000000000003F0000803F0300000000000000000000000A - 46696C6C2E436F6C6F720708636C6157686974650748697454657374080B4D61 - 7267696E732E546F700500000000000000C001400A53697A652E576964746805 - 000000000000008002400B53697A652E48656967687405000000000000008001 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6500000005545465787400095374796C654E616D65060474 - 65787405416C69676E0706436C69656E740748697454657374080C4D61726769 - 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 - FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A - 652E57696474680500000000000080B306400B53697A652E4865696768740500 - 000000000000CC04401453697A652E506C6174666F726D44656661756C740816 - 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 000000545046300A5452656374616E676C6500095374796C654E616D65061473 - 74617475736261726E6F677269707374796C6505416C69676E070643656E7465 - 720C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978464632 - 35323532350553696465730B03546F70000A53697A652E576964746805000000 - 00000000F004400B53697A652E4865696768740500000000000000C804401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 7207097846463135313531350756697369626C650800005450463007544C6179 - 6F757400095374796C654E616D650613736D616C6C7363726F6C6C6261727374 - 796C6505416C69676E070643656E7465720756697369626C6508000654547261 - 636B00095374796C654E616D65060668747261636B05416C69676E0706436C69 - 656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E - 74616C0A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000000000C804401453697A652E506C6174666F726D4465 - 6661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172687472 - 61636B7374796C6500000654547261636B00095374796C654E616D6506067674 - 7261636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E - 746174696F6E070A486F72697A6F6E74616C0A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000C8044014 - 53697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75 - 7006147363726F6C6C62617276747261636B7374796C65000000545046300754 - 4C61796F757400095374796C654E616D65060D73706C69747465727374796C65 - 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 00A904400B53697A652E4865696768740500000000000080C105401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508000A54526563 - 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C - 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463330333033 - 300748697454657374080553696465730B044C656674055269676874000A5369 + 08577261704D6F64650703466974000005545061746800095374796C654E616D + 650605506174683305416C69676E070643656E74657209446174612E50617468 + 0A24010000180000000000000073B8AC43C14A7843010000006D2717435849DD + 430200000086CB0A431078E343020000009683ED421078E34302000000DACED4 + 425849DD43020000009A19BC42081CD743020000009A19BC424C17CD43020000 + 00DACED4421DEAC64301000000B4288B4385EB61430100000068D1D442681158 + 4202000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D4 + 42D04D144102000000A886ED429CC245C002000000CCCC0A439CC245C0020000 + 00B4281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB51 + 43020000009F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1 + 439C046A4302000000FACEAF43711D72430200000073B8AC43C14A7843030000 + 0073B8AC43C14A78430A46696C6C2E436F6C6F720708636C6157686974650748 + 697454657374080D4D617267696E732E52696768740500000000000000A00440 + 0D526F746174696F6E416E676C650500000000000000B406400A53697A652E57 + 696474680500000000000000F002400B53697A652E4865696768740500000000 + 000000F002401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400000000 + 005450463007544C61796F757400095374796C654E616D65060C706F706F7665 + 727374796C6505416C69676E070643656E7465720756697369626C6508000A54 + 52656374616E676C6500095374796C654E616D650602626705416C69676E0706 + 436C69656E740A46696C6C2E436F6C6F72070978464632303230323007486974 + 54657374080A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 0007544C61796F757400095374796C654E616D650607636F6E74656E7405416C + 69676E0706436C69656E740C4D617267696E732E4C6566740500000000000000 + 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 + 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 + 6F6D050000000000000080FF3F0A53697A652E57696474680500000000000000 + C004400B53697A652E4865696768740500000000000000C004401453697A652E + 506C6174666F726D44656661756C740800000D54536861646F77456666656374 + 000844697374616E63650500000000000000C0004009446972656374696F6E05 + 00000000000000B4054008536F66746E657373050000000000000080FE3F074F + 706163697479050000000000000080FE3F0B536861646F77436F6C6F72070863 + 6C61426C61636B000000005450463007544C61796F757400095374796C654E61 + 6D65060D706F707570626F787374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000080C406400B53697A652E4865696768 + 740500000000000000D404401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508000A5452656374616E676C6500095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 + 7A652E57696474680500000000000080C406400B53697A652E48656967687405 + 00000000000000D404401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 + 74796C65084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464634303430343007547269 + 67676572062049734D6F7573654F7665723D747275653B497350726573736564 + 3D66616C73650E54726967676572496E7665727365062149734D6F7573654F76 + 65723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D + 6174696F6E325374796C65084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463430343034300953746F7056616C75650709784646324138 + 3245320754726967676572062049734D6F7573654F7665723D747275653B4973 + 507265737365643D747275653B0E54726967676572496E766572736506204973 + 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650000 + 0007544C61796F75740005416C69676E070552696768740A506F736974696F6E + 2E580500000000000080B506400A53697A652E57696474680500000000000000 + F002400B53697A652E4865696768740500000000000000D404401453697A652E + 506C6174666F726D44656661756C7408000554506174680005416C69676E0706 + 43656E74657209446174612E506174680A400000000500000000000000000000 + 000000803F010000000000803F0000803F010000000000003F00000000010000 + 00000000000000803F0300000000000000000000000A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080B4D617267696E732E546F7005 + 00000000000000E001C00A53697A652E57696474680500000000000000800240 + 0B53697A652E48656967687405000000000000008001401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000554506174680005416C69676E070643656E74657209446174612E50617468 + 0A3400000004000000000000000000000000000000010000000000803F000000 + 00010000000000003F0000803F0300000000000000000000000A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080B4D617267696E732E + 546F700500000000000000C001400A53697A652E576964746805000000000000 + 008002400B53697A652E48656967687405000000000000008001401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E740748697454657374080C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 680500000000000080B306400B53697A652E4865696768740500000000000000 + CC04401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 + 300A5452656374616E676C6500095374796C654E616D65061473746174757362 + 61726E6F677269707374796C6505416C69676E070643656E7465720C436C6970 + 4368696C6472656E090A46696C6C2E436F6C6F72070978464632353235323505 + 53696465730B03546F70000A53697A652E57696474680500000000000000F004 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 3135313531350756697369626C650800005450463007544C61796F7574000953 + 74796C654E616D650613736D616C6C7363726F6C6C6261727374796C6505416C + 69676E070643656E7465720756697369626C6508000654547261636B00095374 + 796C654E616D65060668747261636B05416C69676E0706436C69656E74064C6F + 636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B737479 + 6C6500000654547261636B00095374796C654E616D65060676747261636B0541 + 6C69676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E + 070A486F72697A6F6E74616C0A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374796C654C6F6F6B75700614736372 + 6F6C6C62617276747261636B7374796C650000005450463007544C61796F7574 + 00095374796C654E616D65060D73706C69747465727374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000000A904400B53 + 697A652E4865696768740500000000000080C105401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070643 + 6C69656E740A46696C6C2E436F6C6F7207097846463330333033300748697454 + 657374080553696465730B044C656674055269676874000A53697A652E576964 + 74680500000000000000A904400B53697A652E48656967687405000000000000 + 80C105401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F720709784646313531353135000007544C61796F757400095374 + 796C654E616D6506064C61796F757405416C69676E0706436C69656E740A5369 7A652E57696474680500000000000000A904400B53697A652E48656967687405 00000000000080C105401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F720709784646313531353135000007544C61796F - 757400095374796C654E616D6506064C61796F757405416C69676E0706436C69 - 656E740A53697A652E57696474680500000000000000A904400B53697A652E48 - 65696768740500000000000080C105401453697A652E506C6174666F726D4465 - 6661756C74080007544C61796F757400095374796C654E616D65060467726970 - 05416C69676E070A5665727443656E746572064C6F636B6564090A506F736974 - 696F6E2E5905000000000000008004400A53697A652E57696474680500000000 - 000000A904400B53697A652E4865696768740500000000000000800440145369 - 7A652E506C6174666F726D44656661756C7408000754436972636C6500095374 - 796C654E616D650607436972636C653305416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463430343034300748697454657374080E4D61 - 7267696E732E426F74746F6D0500000000000000A003400A53697A652E576964 - 74680500000000000000E001400B53697A652E48656967687405000000000000 - 00E001401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F72070978464631353135313500000754436972636C6500095374 - 796C654E616D650607436972636C653205416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463430343034300748697454657374080B4D61 - 7267696E732E546F700500000000000000A003400A53697A652E576964746805 + 0007544C61796F757400095374796C654E616D6506046772697005416C69676E + 070A5665727443656E746572064C6F636B6564090A506F736974696F6E2E5905 + 000000000000008004400A53697A652E57696474680500000000000000A90440 + 0B53697A652E48656967687405000000000000008004401453697A652E506C61 + 74666F726D44656661756C7408000754436972636C6500095374796C654E616D + 650607436972636C653305416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463430343034300748697454657374080E4D617267696E732E + 426F74746F6D0500000000000000A003400A53697A652E576964746805000000 + 00000000E001400B53697A652E4865696768740500000000000000E001401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 72070978464631353135313500000754436972636C6500095374796C654E616D + 650607436972636C653205416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463430343034300748697454657374080B4D617267696E732E + 546F700500000000000000A003400A53697A652E576964746805000000000000 + 00E001400B53697A652E4865696768740500000000000000E001401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313500000754436972636C6500095374796C654E616D650607 + 436972636C653105416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463430343034300748697454657374080A53697A652E576964746805 00000000000000E001400B53697A652E4865696768740500000000000000E001 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F72070978464631353135313500000754436972636C6500095374796C65 - 4E616D650607436972636C653105416C69676E070643656E7465720A46696C6C - 2E436F6C6F7207097846463430343034300748697454657374080A53697A652E - 57696474680500000000000000E001400B53697A652E48656967687405000000 - 00000000E001401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F7207097846463135313531350000000000545046300754 - 4C61796F757400095374796C654E616D650610636C6F7365627574746F6E7374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000C803401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508000A54 - 52656374616E676C6500095374796C654E616D65060B636C6F7365627574746F - 6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F72070978464632 - 30323032300748697454657374080A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000C803401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 14436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C756507097846463230323032300953746F7056616C - 756507097846464646363135370754726967676572062049734D6F7573654F76 - 65723D747275653B4973507265737365643D66616C73650E5472696767657249 - 6E7665727365062149734D6F7573654F7665723D66616C73653B497350726573 - 7365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464646463631353709 - 53746F7056616C756507097846464532344634350754726967676572061F4973 - 4D6F7573654F7665723D747275653B4973507265737365643D747275650E5472 - 6967676572496E7665727365062049734D6F7573654F7665723D747275653B49 - 73507265737365643D66616C736500000005545061746800095374796C654E61 - 6D650605506174683105416C69676E070643656E74657209446174612E506174 - 680AC400000010000000000000000000A0C00000704101000000000070410000 - A0C001000000000048420000F041010000000000AA420000A0C0010000000000 - D242000070410100000000008C4200004842010000000000D2420000B4420100 - 00000000AA420000DC42020000003BDF34429E6F8C4202000000FE547D427FAA - B04202000000000048420000964201000000000070410000DC42010000000000 - A0C00000B442010000000000F04100005C42010000000000A0C0000070410300 - 00000000A0C0000070410A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080A53697A652E57696474680500000000000000A002400B53 - 697A652E4865696768740500000000000000A002401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 - 5450463007544C61796F757400095374796C654E616D65060E6D617862757474 - 6F6E7374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08000A5452656374616E676C6500095374796C654E616D6506096D6178627574 - 746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846 - 463230323032300748697454657374080A53697A652E57696474680500000000 - 000000C804400B53697A652E4865696768740500000000000000C80340145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E - 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 - 616C756507097846463241383245320754726967676572062049734D6F757365 - 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 - 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 - 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650614436F6C6F72416E696D6174696F6E325374796C650844 - 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 - 320953746F7056616C756507097846463137353739430754726967676572061F - 49734D6F7573654F7665723D747275653B4973507265737365643D747275650E - 54726967676572496E7665727365062049734D6F7573654F7665723D74727565 - 3B4973507265737365643D66616C736500000005545061746800095374796C65 - 4E616D650605506174683105416C69676E070643656E74657209446174612E50 - 6174680A5800000007000000000000000000C8420000C8420100000000002F44 - 0000C8420100000000002F4400002F4401000000008009440080094401000000 - 0080094400007A430100000000007A4300007A43030000000000C8420000C842 - 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A53 - 697A652E57696474680500000000000000A002400B53697A652E486569676874 - 0500000000000000A002401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F - 757400095374796C654E616D65060E726573627574746F6E7374796C6505416C + 6F6C6F72070978464631353135313500000000005450463007544C61796F7574 + 00095374796C654E616D650610636C6F7365627574746F6E7374796C6505416C 69676E070643656E7465720A53697A652E57696474680500000000000000C804 400B53697A652E4865696768740500000000000000C803401453697A652E506C 6174666F726D44656661756C74080756697369626C6508000A5452656374616E - 676C6500095374796C654E616D650609726573627574746F6E05416C69676E07 - 06436C69656E740A46696C6C2E436F6C6F720709784646323032303230074869 - 7454657374080A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000000C803401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E - 696D6174696F6E315374796C65084475726174696F6E05000000000000000000 - 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463230323032300953746F7056616C7565070978464632 - 41383245320754726967676572062049734D6F7573654F7665723D747275653B - 4973507265737365643D66616C73650E54726967676572496E76657273650621 - 49734D6F7573654F7665723D66616C73653B4973507265737365643D66616C73 - 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 - 436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E050000 - 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463241383245320953746F7056616C75 - 6507097846463137353739430754726967676572061F49734D6F7573654F7665 - 723D747275653B4973507265737365643D747275650E54726967676572496E76 - 65727365062049734D6F7573654F7665723D747275653B497350726573736564 - 3D66616C736500000005545061746800095374796C654E616D65060550617468 - 3105416C69676E070643656E74657209446174612E506174680A580000000700 - 0000000000000000C8420000C8420100000000002F440000C842010000000000 - 2F4400002F44010000000080094400800944010000000080094400007A430100 - 000000007A4300007A43030000000000C8420000C8420A46696C6C2E436F6C6F - 720708636C6157686974650748697454657374080D526F746174696F6E416E67 - 6C650500000000000000B406400A53697A652E57696474680500000000000000 - A002400B53697A652E4865696768740500000000000000A002401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E650000005450463007544C61796F757400095374796C654E616D65060E6D69 - 6E627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508000A5452656374616E676C6500095374796C654E616D6506096D - 696E627574746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F - 7207097846463230323032300748697454657374080A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646324138324532075472696767657206204973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 - 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 - 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E325374 - 796C65084475726174696F6E05000000000000000000000C50726F7065727479 - 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 - 3241383245320953746F7056616C756507097846463137353739430754726967 - 676572061F49734D6F7573654F7665723D747275653B4973507265737365643D - 747275650E54726967676572496E7665727365062049734D6F7573654F766572 - 3D747275653B4973507265737365643D66616C73650000000554506174680009 - 5374796C654E616D650605506174683105416C69676E070643656E7465720944 - 6174612E506174680A40000000050000000000000000002F4400800944010000 - 0000002F4400002F44010000000000C84200002F44010000000000C842008009 - 440300000000002F44008009440A46696C6C2E436F6C6F720708636C61576869 - 74650748697454657374080B4D617267696E732E546F700500000000000000A0 - 02400D526F746174696F6E416E676C650500000000000000B406400A53697A65 - 2E57696474680500000000000000A002400B53697A652E486569676874050000 - 0000000000C000401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 - 095374796C654E616D65060F746F6F6C77696E646F777374796C6505416C6967 - 6E070643656E7465720A53697A652E576964746805000000000056D5AF07400B - 53697A652E4865696768740500000000000000B306401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508000A5452656374616E676C - 6500095374796C654E616D6506046D61736B05416C69676E0708436F6E74656E - 74730A46696C6C2E436F6C6F7207097846463130313031300A53697A652E5769 - 64746805000000000056D5AF07400B53697A652E486569676874050000000000 - 0000B306401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E650756697369626C6508000007544C61796F7574 - 00095374796C654E616D6506046C65667405416C69676E07084D6F73744C6566 - 74064C6F636B6564090A506F736974696F6E2E590500000000000000C803400A - 53697A652E57696474680500000000000000A001400B53697A652E4865696768 - 7405000000000000009A06401453697A652E506C6174666F726D44656661756C - 7408000A5452656374616E676C650005416C69676E07084D6F73744C6566740A - 46696C6C2E436F6C6F7207097846463230323032300748697454657374080553 - 696465730B044C656674055269676874000A53697A652E576964746805000000 - 00000000A001400B53697A652E48656967687405000000000000009506401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 72070978464631353135313500000A5452656374616E676C6500095374796C65 - 4E616D65060A52656374616E676C653105416C69676E070A4D6F7374426F7474 - 6F6D13456E61626C6544726167486967686C69676874080A46696C6C2E436F6C - 6F7207097846463230323032300748697454657374080A506F736974696F6E2E - 5905000000000000009506400553696465730B044C65667406426F74746F6D00 - 0A53697A652E57696474680500000000000000A001400B53697A652E48656967 - 68740500000000000000A001401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C61 - 796F757400095374796C654E616D6506074C61796F75743305416C69676E0709 - 4D6F737452696768740A506F736974696F6E2E5805000000000000008001400A - 53697A652E5769647468050000000000000080FF3F0B53697A652E4865696768 - 740500000000000000A001401453697A652E506C6174666F726D44656661756C - 7408000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653105416C69676E0703546F700A46696C6C2E436F6C6F720709784646 - 3135313531350748697454657374080A53697A652E5769647468050000000000 - 000080FF3F0B53697A652E486569676874050000000000000080FF3F1453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000000000007544C61796F757400095374796C654E616D6506057269 - 67687405416C69676E07094D6F73745269676874064C6F636B6564090A506F73 - 6974696F6E2E580500000000005655AD07400A506F736974696F6E2E59050000 - 0000000000C803400A53697A652E57696474680500000000000000A001400B53 - 697A652E48656967687405000000000000009A06401453697A652E506C617466 - 6F726D44656661756C7408000A5452656374616E676C650005416C69676E0709 - 4D6F737452696768740A46696C6C2E436F6C6F72070978464632303230323007 - 48697454657374080553696465730B044C656674055269676874000A53697A65 - 2E57696474680500000000000000A001400B53697A652E486569676874050000 - 00000000009506401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F72070978464631353135313500000A5452656374616E - 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E - 070A4D6F7374426F74746F6D13456E61626C6544726167486967686C69676874 - 080A46696C6C2E436F6C6F720709784646323032303230074869745465737408 - 0A506F736974696F6E2E5905000000000000009506400553696465730B06426F - 74746F6D055269676874000A53697A652E57696474680500000000000000A001 - 400B53697A652E4865696768740500000000000000A001401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 3135313531350007544C61796F757400095374796C654E616D6506074C61796F - 75743305416C69676E07084D6F73744C6566740A53697A652E57696474680500 - 00000000000080FF3F0B53697A652E4865696768740500000000000000A00140 - 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 - 6C6500095374796C654E616D65060A52656374616E676C653105416C69676E07 - 03546F700A46696C6C2E436F6C6F720709784646313531353135074869745465 - 7374080A53697A652E5769647468050000000000000080FF3F0B53697A652E48 - 6569676874050000000000000080FF3F1453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000000A5452 - 656374616E676C650005416C69676E07074D6F7374546F700A46696C6C2E436F - 6C6F720709784646323032303230064C6F636B6564090748697454657374080A - 53697A652E576964746805000000000056D5AF07400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F7207097846463135313531350007544C6179 - 6F757400095374796C654E616D65060763617074696F6E05416C69676E070843 - 6F6E74656E7473064C6F636B6564090748697454657374090A53697A652E5769 - 64746805000000000056D5AF07400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C7408000007544C - 61796F75740005416C69676E0706436C69656E74064C6F636B6564090C4D6172 - 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 - 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 - 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 - 697A652E576964746805000000000056D5AE07400B53697A652E486569676874 - 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 - 080007544C61796F75740005416C69676E07044C656674064C6F636B6564090A - 53697A652E576964746805000000000000009002400B53697A652E4865696768 - 740500000000000000B803401453697A652E506C6174666F726D44656661756C - 7408000007544C61796F757400095374796C654E616D65060773797362746E73 - 05416C69676E0706436C69656E74064C6F636B6564090A53697A652E57696474 - 680500000000005655AA07400B53697A652E4865696768740500000000000000 - B803401453697A652E506C6174666F726D44656661756C7408000C5453706565 - 64427574746F6E00095374796C654E616D650605636C6F736505416C69676E07 - 055269676874064C6F636B6564090A506F736974696F6E2E5805000000000056 - D59D07400A53697A652E57696474680500000000000000C803400B53697A652E - 4865696768740500000000000000B803401453697A652E506C6174666F726D44 - 656661756C74080B5374796C654C6F6F6B75700610636C6F7365627574746F6E - 7374796C65000005545465787400095374796C654E616D6506057469746C6505 - 416C69676E0706436C69656E74064C6F636B6564090748697454657374080A53 - 697A652E576964746805000000000056D59D07400B53697A652E486569676874 - 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 - 08045465787406055469746C65165465787453657474696E67732E466F6E7443 - 6F6C6F720708636C615768697465000000000007544C61796F75740009537479 - 6C654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F63 - 6B6564090748697454657374090A53697A652E576964746805000000000056D5 - AA07400B53697A652E48656967687405000000000000009506401453697A652E - 506C6174666F726D44656661756C7408000007544C61796F757400095374796C - 654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F636B - 6564090A506F736974696F6E2E580500000000000000A001400A506F73697469 - 6F6E2E590500000000000000AE06400A53697A652E5769647468050000000000 - 56D5AA07400B53697A652E4865696768740500000000000000A001401453697A - 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 - 5374796C654E616D6506047265637405416C69676E0706426F74746F6D0A4669 - 6C6C2E436F6C6F7207097846463230323032300553696465730B03546F700642 - 6F74746F6D000A53697A652E576964746805000000000056D5AA07400B53697A - 652E4865696768740500000000000000A001401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 35000000005450463007544C61796F757400095374796C654E616D6506117769 - 6E646F77626F726465727374796C6505416C69676E070643656E7465720A5369 - 7A652E576964746805000000000056D5AF07400B53697A652E48656967687405 - 00000000000000B306401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508000A5452656374616E676C6500095374796C654E616D65 - 06046D61736B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F - 7207097846463130313031300A53697A652E576964746805000000000056D5AF - 07400B53697A652E4865696768740500000000000000B306401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 650756697369626C6508000007544C61796F757400095374796C654E616D6506 - 046C65667405416C69676E07084D6F73744C656674064C6F636B6564090A506F - 736974696F6E2E590500000000000000F003400A53697A652E57696474680500 - 000000000000A001400B53697A652E4865696768740500000000000000950640 - 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 - 6C650005416C69676E07084D6F73744C6566740A46696C6C2E436F6C6F720709 - 7846463230323032300748697454657374080553696465730B044C6566740552 - 69676874000A53697A652E57696474680500000000000000A001400B53697A65 - 2E48656967687405000000000000009006401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 00000A5452656374616E676C6500095374796C654E616D65060A52656374616E - 676C653105416C69676E070A4D6F7374426F74746F6D13456E61626C65447261 - 67486967686C69676874080A46696C6C2E436F6C6F7207097846463230323032 - 300748697454657374080A506F736974696F6E2E590500000000000000900640 - 0553696465730B044C65667406426F74746F6D000A53697A652E576964746805 - 00000000000000A001400B53697A652E4865696768740500000000000000A001 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F7207097846463135313531350007544C61796F757400095374796C654E - 616D6506074C61796F75743305416C69676E07094D6F737452696768740A506F - 736974696F6E2E5805000000000000008001400A53697A652E57696474680500 - 00000000000080FF3F0B53697A652E4865696768740500000000000000A00140 - 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 - 6C6500095374796C654E616D65060A52656374616E676C653105416C69676E07 - 03546F700A46696C6C2E436F6C6F720709784646313531353135074869745465 - 7374080A53697A652E5769647468050000000000000080FF3F0B53697A652E48 - 6569676874050000000000000080FF3F1453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000000000007544C - 61796F757400095374796C654E616D650605726967687405416C69676E07094D - 6F73745269676874064C6F636B6564090A506F736974696F6E2E580500000000 - 005655AD07400A506F736974696F6E2E590500000000000000F003400A53697A - 652E57696474680500000000000000A001400B53697A652E4865696768740500 - 0000000000009506401453697A652E506C6174666F726D44656661756C740800 - 0A5452656374616E676C650005416C69676E07094D6F737452696768740A4669 - 6C6C2E436F6C6F72070978464632303230323007486974546573740805536964 - 65730B044C656674055269676874000A53697A652E5769647468050000000000 - 0000A001400B53697A652E48656967687405000000000000009006401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 0978464631353135313500000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653105416C69676E070A4D6F7374426F74746F6D - 13456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F72 - 07097846463230323032300748697454657374080A506F736974696F6E2E5905 - 000000000000009006400553696465730B06426F74746F6D055269676874000A - 53697A652E57696474680500000000000000A001400B53697A652E4865696768 - 740500000000000000A001401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F7207097846463135313531350007544C6179 - 6F757400095374796C654E616D6506074C61796F75743305416C69676E07084D - 6F73744C6566740A53697A652E5769647468050000000000000080FF3F0B5369 - 7A652E4865696768740500000000000000A001401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F - 6C6F7207097846463135313531350748697454657374080A53697A652E576964 - 7468050000000000000080FF3F0B53697A652E48656967687405000000000000 - 0080FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E6500000000000A5452656374616E676C650005416C - 69676E07074D6F7374546F700A46696C6C2E436F6C6F72070978464632303230 - 3230064C6F636B6564090748697454657374080A53697A652E57696474680500 - 0000000056D5AF07400B53697A652E4865696768740500000000000000F00340 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F7207097846463135313531350007544C61796F757400095374796C654E61 - 6D65060763617074696F6E05416C69676E0708436F6E74656E7473064C6F636B - 6564090748697454657374090A53697A652E576964746805000000000056D5AF - 07400B53697A652E4865696768740500000000000000F003401453697A652E50 - 6C6174666F726D44656661756C7408000007544C61796F75740005416C69676E - 0706436C69656E74064C6F636B6564090C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D - 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 - 00000056D5AE07400B53697A652E4865696768740500000000000000E0034014 - 53697A652E506C6174666F726D44656661756C74080007544C61796F75740005 - 416C69676E07044C656674064C6F636B6564090A53697A652E57696474680500 - 0000000000009002400B53697A652E4865696768740500000000000000E00340 - 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 - 00095374796C654E616D65060469636F6E064C6F636B6564090A506F73697469 - 6F6E2E5805000000000000009002400A506F736974696F6E2E59050000000000 - 0000E001400A53697A652E57696474680500000000000000C803400B53697A65 - 2E4865696768740500000000000000A803401453697A652E506C6174666F726D - 44656661756C7408000007544C61796F757400095374796C654E616D65060773 - 797362746E7305416C69676E0706436C69656E74064C6F636B6564090A53697A - 652E57696474680500000000005655AA07400B53697A652E4865696768740500 - 000000000000E003401453697A652E506C6174666F726D44656661756C740800 - 0C545370656564427574746F6E00095374796C654E616D650605636C6F736505 - 416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E5805 - 000000000056559107400A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000E003401453697A652E506C61 - 74666F726D44656661756C74080B5374796C654C6F6F6B75700610636C6F7365 - 627574746F6E7374796C6500000C545370656564427574746F6E00095374796C - 654E616D6506036D617805416C69676E07055269676874064C6F636B6564090A - 506F736974696F6E2E5805000000000056558207400A53697A652E5769647468 - 0500000000000000F003400B53697A652E4865696768740500000000000000E0 - 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F - 6F6B7570060E6D6178627574746F6E7374796C6500000C545370656564427574 - 746F6E00095374796C654E616D65060372657305416C69676E07055269676874 - 064C6F636B6564090A506F736974696F6E2E58050000000000ACAAE606400A53 - 697A652E57696474680500000000000000F003400B53697A652E486569676874 - 0500000000000000E003401453697A652E506C6174666F726D44656661756C74 - 080B5374796C654C6F6F6B7570060E726573627574746F6E7374796C6500000C - 545370656564427574746F6E00095374796C654E616D6506036D696E05416C69 - 676E07055269676874064C6F636B6564090A506F736974696F6E2E5805000000 - 0000ACAAC806400A53697A652E57696474680500000000000000F003400B5369 - 7A652E4865696768740500000000000000E003401453697A652E506C6174666F - 726D44656661756C74080B5374796C654C6F6F6B7570060E6D696E627574746F - 6E7374796C65000005545465787400095374796C654E616D6506057469746C65 - 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080A - 53697A652E5769647468050000000000ACAAC806400B53697A652E4865696768 - 740500000000000000E003401453697A652E506C6174666F726D44656661756C - 7408045465787406055469746C65165465787453657474696E67732E466F6E74 - 436F6C6F720708636C615768697465000000000007544C61796F757400095374 - 796C654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F - 636B6564090748697454657374090A53697A652E576964746805000000000056 - D5AA07400B53697A652E48656967687405000000000000009006401453697A65 - 2E506C6174666F726D44656661756C7408000007544C61796F75740009537479 - 6C654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F63 - 6B6564090A506F736974696F6E2E580500000000000000A001400A506F736974 - 696F6E2E590500000000000000AE06400A53697A652E57696474680500000000 - 0056D5AA07400B53697A652E4865696768740500000000000000A00140145369 - 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 - 095374796C654E616D6506047265637405416C69676E0706426F74746F6D0A46 - 696C6C2E436F6C6F720709784646323032303230074869745465737408055369 - 6465730B03546F7006426F74746F6D000A53697A652E57696474680500000000 - 0056D5AA07400B53697A652E4865696768740500000000000000A00140145369 - 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 0709784646313531353135000000005450463007544C61796F75740009537479 - 6C654E616D650610726164696F627574746F6E7374796C6505416C69676E0706 - 43656E7465720A53697A652E57696474680500000000000000F205400B53697A - 652E4865696768740500000000000000A803401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C65080007544C61796F75740005416C69 - 676E07044C6566740A53697A652E57696474680500000000000000A803400B53 - 697A652E4865696768740500000000000000A803401453697A652E506C617466 - 6F726D44656661756C7408000854456C6C6970736500095374796C654E616D65 - 060A6261636B67726F756E6405416C69676E070643656E7465720A46696C6C2E - 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 - 080A53697A652E57696474680500000000000000F002400B53697A652E486569 - 6768740500000000000000F002401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313500085445 - 6C6C6970736500095374796C654E616D650609636865636B6D61726B05416C69 - 676E0706436C69656E740A46696C6C2E436F6C6F720709784646324138324532 - 064C6F636B656409074869745465737408074F70616369747905000000000000 - 000000000C4D617267696E732E4C65667405000000000000008000400B4D6172 - 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 - 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 - 0000008000400A53697A652E57696474680500000000000000B002400B53697A - 652E4865696768740500000000000000B002401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C - 6F6174416E696D6174696F6E00095374796C654E616D65061A6F706163697479 - 436865636B6D61726B416E696D6174696F6E31084475726174696F6E05000000 - 000000000000000C50726F70657274794E616D6506074F7061636974790A5374 - 61727456616C756505000000000000000000000953746F7056616C7565050000 - 000000000080FF3F0754726967676572060E4973436865636B65643D74727565 - 0E54726967676572496E7665727365060F4973436865636B65643D66616C7365 - 0000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061A - 726164696F627574746F6E436F6C6F72416E696D6174696F6E31084475726174 - 696F6E050000000000000000000007496E7665727365090C50726F7065727479 - 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 - 3230323032300953746F7056616C756507097846463430343034300754726967 - 676572061049734D6F7573654F7665723D747275650E54726967676572496E76 - 65727365061149734D6F7573654F7665723D66616C736500000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 - 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 - 616C756507097846463135313531350953746F7056616C756507097846463241 - 383245320754726967676572060E4973436865636B65643D747275650E547269 - 67676572496E7665727365060F4973436865636B65643D66616C736500000000 - 05545465787400095374796C654E616D6506047465787405416C69676E070643 - 6C69656E74064C6F636B6564090748697454657374080A53697A652E57696474 - 680500000000000000C805400B53697A652E4865696768740500000000000000 - A803401453697A652E506C6174666F726D44656661756C740816546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 - 3007544C61796F757400095374796C654E616D650618756C63656E7465727261 - 64696F627574746F6E7374796C6505416C69676E070643656E7465720A53697A - 652E57696474680500000000005655FB05400B53697A652E4865696768740500 - 000000000000A004401453697A652E506C6174666F726D44656661756C740807 - 56697369626C65080007544C61796F75740005416C69676E0706426F74746F6D - 0A506F736974696F6E2E5905000000000000008804400A53697A652E57696474 - 680500000000005655FB05400B53697A652E4865696768740500000000000000 - C001401453697A652E506C6174666F726D44656661756C7408000A5452656374 - 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 - 676E0708436F6E74656E747307436F726E6572730B07546F704C6566740A426F - 74746F6D4C656674000A46696C6C2E436F6C6F72070978464632303230323006 - 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 - 005655FB05400B53697A652E4865696768740500000000000000C00140145369 - 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 0709784646313531353135000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F72 - 416E696D6174696F6E31084475726174696F6E05000000000000000000000749 - 6E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463230323032300953746F7056616C7565 - 07097846463430343034300754726967676572061049734D6F7573654F766572 - 3D747275650E54726967676572496E7665727365061149734D6F7573654F7665 - 723D66616C736500000A5452656374616E676C6500095374796C654E616D6506 - 09636865636B6D61726B05416C69676E0708436F6E74656E747307436F726E65 - 72730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C - 6F720709784646324138324532064C6F636B656409074869745465737408074F - 70616369747905000000000000000000000C4D617267696E732E4C6566740500 - 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F - 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E - 732E426F74746F6D050000000000000080FF3F0A53697A652E57696474680500 - 000000005655F705400B53697A652E4865696768740500000000000000800140 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C65 - 4E616D65061A636865636B6D61726B4F706163697479416E696D6174696F6E31 - 084475726174696F6E05000000000000000000000C50726F70657274794E616D - 6506074F7061636974790A537461727456616C75650500000000000000000000 - 0953746F7056616C7565050000000000000080FF3F0754726967676572060E49 - 73436865636B65643D747275650E54726967676572496E7665727365060F4973 - 436865636B65643D66616C7365000000000005545465787400095374796C654E - 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 - 48697454657374080A53697A652E57696474680500000000005655FB05400B53 - 697A652E48656967687405000000000000008804401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C6157686974650000005450463007544C61796F75740009537479 - 6C654E616D650617756C7269676874726164696F627574746F6E7374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000005655 - FB05400B53697A652E4865696768740500000000000000A004401453697A652E - 506C6174666F726D44656661756C74080756697369626C65080007544C61796F - 75740005416C69676E0706426F74746F6D0A506F736974696F6E2E5905000000 - 000000008804400A53697A652E57696474680500000000005655FB05400B5369 - 7A652E4865696768740500000000000000C001401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0708436F6E74656E747307436F - 726E6572730B08546F7052696768740B426F74746F6D5269676874000A46696C - 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 - 7374080A53697A652E57696474680500000000005655FB05400B53697A652E48 - 65696768740500000000000000C001401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D6506216261636B - 67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E31084475 - 726174696F6E050000000000000000000007496E7665727365090C50726F7065 - 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 - 7846463230323032300953746F7056616C756507097846463430343034300754 - 726967676572061049734D6F7573654F7665723D747275650E54726967676572 - 496E7665727365061149734D6F7573654F7665723D66616C736500000A545265 - 6374616E676C6500095374796C654E616D650609636865636B6D61726B05416C - 69676E0708436F6E74656E747307436F726E6572730B08546F7052696768740B - 426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632413832 - 4532064C6F636B656409074869745465737408074F7061636974790500000000 - 0000000000000C4D617267696E732E4C656674050000000000000080FF3F0B4D - 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 - 000000000080FF3F0A53697A652E57696474680500000000005655F705400B53 - 697A652E48656967687405000000000000008001401453697A652E506C617466 + 676C6500095374796C654E616D65060B636C6F7365627574746F6E05416C6967 + 6E0706436C69656E740A46696C6C2E436F6C6F72070978464632303230323007 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 - 466C6F6174416E696D6174696F6E00095374796C654E616D65061A636865636B - 6D61726B4F706163697479416E696D6174696F6E31084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D6506074F7061636974790A - 537461727456616C756505000000000000000000000953746F7056616C756505 - 0000000000000080FF3F0754726967676572060E4973436865636B65643D7472 - 75650E54726967676572496E7665727365060F4973436865636B65643D66616C - 7365000000000005545465787400095374796C654E616D650604746578740541 - 6C69676E0706436C69656E74064C6F636B6564090748697454657374080A5369 - 7A652E57696474680500000000005655FB05400B53697A652E48656967687405 - 000000000000008804401453697A652E506C6174666F726D44656661756C7408 - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 650000005450463007544C61796F757400095374796C654E616D650616756C6C - 656674726164696F627574746F6E7374796C6505416C69676E070643656E7465 - 720A53697A652E57696474680500000000005655FB05400B53697A652E486569 - 6768740500000000000000A004401453697A652E506C6174666F726D44656661 - 756C74080756697369626C65080007544C61796F75740005416C69676E070642 - 6F74746F6D0A506F736974696F6E2E5905000000000000008804400A53697A65 - 2E57696474680500000000005655FB05400B53697A652E486569676874050000 - 0000000000C001401453697A652E506C6174666F726D44656661756C7408000A - 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E0708436F6E74656E747307436F726E6572730B07546F704C65 - 66740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846463230 - 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 - 0500000000005655FB05400B53697A652E4865696768740500000000000000C0 - 01401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F720709784646313531353135000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D6506216261636B67726F756E64556C427574746F6E - 436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000000000 - 00000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463230323032300953746F70 - 56616C756507097846463430343034300754726967676572061049734D6F7573 - 654F7665723D747275650E54726967676572496E7665727365061149734D6F75 - 73654F7665723D66616C736500000A5452656374616E676C6500095374796C65 - 4E616D650609636865636B6D61726B05416C69676E0708436F6E74656E747307 - 436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C - 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 - 737408074F70616369747905000000000000000000000C4D617267696E732E4C + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E315374796C65084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 464646363135370754726967676572062049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C73650E54726967676572496E7665727365 + 062149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846464646363135370953746F705661 + 6C756507097846464532344634350754726967676572061F49734D6F7573654F + 7665723D747275653B4973507265737365643D747275650E5472696767657249 + 6E7665727365062049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C736500000005545061746800095374796C654E616D6506055061 + 74683105416C69676E070643656E74657209446174612E506174680AC4000000 + 10000000000000000000A0C00000704101000000000070410000A0C001000000 + 000048420000F041010000000000AA420000A0C0010000000000D24200007041 + 0100000000008C4200004842010000000000D2420000B442010000000000AA42 + 0000DC42020000003BDF34429E6F8C4202000000FE547D427FAAB04202000000 + 000048420000964201000000000070410000DC42010000000000A0C00000B442 + 010000000000F04100005C42010000000000A0C000007041030000000000A0C0 + 000070410A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080A53697A652E57696474680500000000000000A002400B53697A652E4865 + 696768740500000000000000A002401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000545046300754 + 4C61796F757400095374796C654E616D65060E6D6178627574746F6E7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508000A545265 + 6374616E676C6500095374796C654E616D6506096D6178627574746F6E05416C + 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E315374796C65084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463241383245320754726967676572062049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C73650E54726967676572496E766572 + 7365062149734D6F7573654F7665723D66616C73653B4973507265737365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463241383245320953746F70 + 56616C756507097846463137353739430754726967676572061F49734D6F7573 + 654F7665723D747275653B4973507265737365643D747275650E547269676765 + 72496E7665727365062049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C736500000005545061746800095374796C654E616D650605 + 506174683105416C69676E070643656E74657209446174612E506174680A5800 + 000007000000000000000000C8420000C8420100000000002F440000C8420100 + 000000002F4400002F4401000000008009440080094401000000008009440000 + 7A430100000000007A4300007A43030000000000C8420000C8420A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080A53697A652E5769 + 6474680500000000000000A002400B53697A652E486569676874050000000000 + 0000A002401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650000005450463007544C61796F757400095374 + 796C654E616D65060E726573627574746F6E7374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508000A5452656374616E676C65000953 + 74796C654E616D650609726573627574746F6E05416C69676E0706436C69656E + 740A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F + 6E315374796C65084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463230323032300953746F7056616C7565070978464632413832453207 + 54726967676572062049734D6F7573654F7665723D747275653B497350726573 + 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 + 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 + 6E696D6174696F6E325374796C65084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463241383245320953746F7056616C75650709784646 + 3137353739430754726967676572061F49734D6F7573654F7665723D74727565 + 3B4973507265737365643D747275650E54726967676572496E76657273650620 + 49734D6F7573654F7665723D747275653B4973507265737365643D66616C7365 + 00000005545061746800095374796C654E616D650605506174683105416C6967 + 6E070643656E74657209446174612E506174680A580000000700000000000000 + 0000C8420000C8420100000000002F440000C8420100000000002F4400002F44 + 010000000080094400800944010000000080094400007A430100000000007A43 + 00007A43030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080D526F746174696F6E416E676C6505000000 + 00000000B406400A53697A652E57696474680500000000000000A002400B5369 + 7A652E4865696768740500000000000000A002401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054 + 50463007544C61796F757400095374796C654E616D65060E6D696E627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 000A5452656374616E676C6500095374796C654E616D6506096D696E62757474 + 6F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463241383245320754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646324138324532 + 0953746F7056616C756507097846463137353739430754726967676572061F49 + 734D6F7573654F7665723D747275653B4973507265737365643D747275650E54 + 726967676572496E7665727365062049734D6F7573654F7665723D747275653B + 4973507265737365643D66616C736500000005545061746800095374796C654E + 616D650605506174683105416C69676E070643656E74657209446174612E5061 + 74680A40000000050000000000000000002F44008009440100000000002F4400 + 002F44010000000000C84200002F44010000000000C842008009440300000000 + 002F44008009440A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080B4D617267696E732E546F700500000000000000A002400D526F74 + 6174696F6E416E676C650500000000000000B406400A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 00401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E650000005450463007544C61796F757400095374796C65 + 4E616D65060F746F6F6C77696E646F777374796C6505416C69676E070643656E + 7465720A53697A652E576964746805000000000056D5AF07400B53697A652E48 + 65696768740500000000000000B306401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000A5452656374616E676C650009537479 + 6C654E616D6506046D61736B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F7207097846463130313031300A53697A652E5769647468050000 + 00000056D5AF07400B53697A652E4865696768740500000000000000B3064014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E650756697369626C6508000007544C61796F757400095374796C + 654E616D6506046C65667405416C69676E07084D6F73744C656674064C6F636B + 6564090A506F736974696F6E2E590500000000000000C803400A53697A652E57 + 696474680500000000000000A001400B53697A652E4865696768740500000000 + 0000009A06401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C650005416C69676E07084D6F73744C6566740A46696C6C2E43 + 6F6C6F7207097846463230323032300748697454657374080553696465730B04 + 4C656674055269676874000A53697A652E57696474680500000000000000A001 + 400B53697A652E48656967687405000000000000009506401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 31353135313500000A5452656374616E676C6500095374796C654E616D65060A + 52656374616E676C653105416C69676E070A4D6F7374426F74746F6D13456E61 + 626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207097846 + 463230323032300748697454657374080A506F736974696F6E2E590500000000 + 0000009506400553696465730B044C65667406426F74746F6D000A53697A652E + 57696474680500000000000000A001400B53697A652E48656967687405000000 + 00000000A001401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F7207097846463135313531350007544C61796F75740009 + 5374796C654E616D6506074C61796F75743305416C69676E07094D6F73745269 + 6768740A506F736974696F6E2E5805000000000000008001400A53697A652E57 + 69647468050000000000000080FF3F0B53697A652E4865696768740500000000 + 000000A001401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 + 416C69676E0703546F700A46696C6C2E436F6C6F720709784646313531353135 + 0748697454657374080A53697A652E5769647468050000000000000080FF3F0B + 53697A652E486569676874050000000000000080FF3F1453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 00000007544C61796F757400095374796C654E616D650605726967687405416C + 69676E07094D6F73745269676874064C6F636B6564090A506F736974696F6E2E + 580500000000005655AD07400A506F736974696F6E2E590500000000000000C8 + 03400A53697A652E57696474680500000000000000A001400B53697A652E4865 + 6967687405000000000000009A06401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C650005416C69676E07094D6F73745269 + 6768740A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080553696465730B044C656674055269676874000A53697A652E5769647468 + 0500000000000000A001400B53697A652E486569676874050000000000000095 + 06401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313500000A5452656374616E676C65000953 + 74796C654E616D65060A52656374616E676C653105416C69676E070A4D6F7374 + 426F74746F6D13456E61626C6544726167486967686C69676874080A46696C6C + 2E436F6C6F7207097846463230323032300748697454657374080A506F736974 + 696F6E2E5905000000000000009506400553696465730B06426F74746F6D0552 + 69676874000A53697A652E57696474680500000000000000A001400B53697A65 + 2E4865696768740500000000000000A001401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 0007544C61796F757400095374796C654E616D6506074C61796F75743305416C + 69676E07084D6F73744C6566740A53697A652E57696474680500000000000000 + 80FF3F0B53697A652E4865696768740500000000000000A001401453697A652E + 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653105416C69676E0703546F700A46 + 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 + 7A652E5769647468050000000000000080FF3F0B53697A652E48656967687405 + 0000000000000080FF3F1453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E6500000000000A5452656374616E67 + 6C650005416C69676E07074D6F7374546F700A46696C6C2E436F6C6F72070978 + 4646323032303230064C6F636B6564090748697454657374080A53697A652E57 + 6964746805000000000056D5AF07400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F7207097846463135313531350007544C61796F7574000953 + 74796C654E616D65060763617074696F6E05416C69676E0708436F6E74656E74 + 73064C6F636B6564090748697454657374090A53697A652E5769647468050000 + 00000056D5AF07400B53697A652E4865696768740500000000000000C8034014 + 53697A652E506C6174666F726D44656661756C7408000007544C61796F757400 + 05416C69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 - 6474680500000000005655F705400B53697A652E486569676874050000000000 - 00008001401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0009 - 5374796C654E616D65061A636865636B6D61726B4F706163697479416E696D61 - 74696F6E31084475726174696F6E05000000000000000000000C50726F706572 - 74794E616D6506074F7061636974790A537461727456616C7565050000000000 - 00000000000953746F7056616C7565050000000000000080FF3F075472696767 - 6572060E4973436865636B65643D747275650E54726967676572496E76657273 - 65060F4973436865636B65643D66616C73650000000000055454657874000953 - 74796C654E616D6506047465787405416C69676E0706436C69656E74064C6F63 - 6B6564090748697454657374080A53697A652E57696474680500000000005655 - FB05400B53697A652E48656967687405000000000000008804401453697A652E - 506C6174666F726D44656661756C7408165465787453657474696E67732E466F - 6E74436F6C6F720708636C6157686974650000005450463007544C61796F7574 - 00095374796C654E616D65061070726F67726573736261727374796C6505416C - 69676E070643656E7465720A53697A652E576964746805000000000033338505 - 400B53697A652E4865696768740500000000009999E104401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508000A5452656374616E - 676C6500095374796C654E616D65060668747261636B05416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 - 6B6564090748697454657374080A53697A652E57696474680500000000003333 - 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 64746805000000000056D5AE07400B53697A652E486569676874050000000000 + 0000B803401453697A652E506C6174666F726D44656661756C74080007544C61 + 796F75740005416C69676E07044C656674064C6F636B6564090A53697A652E57 + 6964746805000000000000009002400B53697A652E4865696768740500000000 + 000000B803401453697A652E506C6174666F726D44656661756C740800000754 + 4C61796F757400095374796C654E616D65060773797362746E7305416C69676E + 0706436C69656E74064C6F636B6564090A53697A652E57696474680500000000 + 005655AA07400B53697A652E4865696768740500000000000000B80340145369 + 7A652E506C6174666F726D44656661756C7408000C545370656564427574746F + 6E00095374796C654E616D650605636C6F736505416C69676E07055269676874 + 064C6F636B6564090A506F736974696F6E2E5805000000000056D59D07400A53 + 697A652E57696474680500000000000000C803400B53697A652E486569676874 + 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 + 080B5374796C654C6F6F6B75700610636C6F7365627574746F6E7374796C6500 + 0005545465787400095374796C654E616D6506057469746C6505416C69676E07 + 06436C69656E74064C6F636B6564090748697454657374080A53697A652E5769 + 64746805000000000056D59D07400B53697A652E486569676874050000000000 + 0000B803401453697A652E506C6174666F726D44656661756C74080454657874 + 06055469746C65165465787453657474696E67732E466F6E74436F6C6F720708 + 636C615768697465000000000007544C61796F757400095374796C654E616D65 + 0606636C69656E7405416C69676E0706436C69656E74064C6F636B6564090748 + 697454657374090A53697A652E576964746805000000000056D5AA07400B5369 + 7A652E48656967687405000000000000009506401453697A652E506C6174666F + 726D44656661756C7408000007544C61796F757400095374796C654E616D6506 + 06626F74746F6D05416C69676E0706426F74746F6D064C6F636B6564090A506F + 736974696F6E2E580500000000000000A001400A506F736974696F6E2E590500 + 000000000000AE06400A53697A652E576964746805000000000056D5AA07400B + 53697A652E4865696768740500000000000000A001401453697A652E506C6174 + 666F726D44656661756C7408000A5452656374616E676C6500095374796C654E + 616D6506047265637405416C69676E0706426F74746F6D0A46696C6C2E436F6C + 6F7207097846463230323032300553696465730B03546F7006426F74746F6D00 + 0A53697A652E576964746805000000000056D5AA07400B53697A652E48656967 + 68740500000000000000A001401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F7207097846463135313531350000000054 + 50463007544C61796F757400095374796C654E616D65061177696E646F77626F + 726465727374796C6505416C69676E070643656E7465720A53697A652E576964 + 746805000000000056D5AF07400B53697A652E48656967687405000000000000 + 00B306401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508000A5452656374616E676C6500095374796C654E616D6506046D61736B + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 3130313031300A53697A652E576964746805000000000056D5AF07400B53697A + 652E4865696768740500000000000000B306401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369 + 626C6508000007544C61796F757400095374796C654E616D6506046C65667405 + 416C69676E07084D6F73744C656674064C6F636B6564090A506F736974696F6E + 2E590500000000000000F003400A53697A652E57696474680500000000000000 + A001400B53697A652E48656967687405000000000000009506401453697A652E + 506C6174666F726D44656661756C7408000A5452656374616E676C650005416C + 69676E07084D6F73744C6566740A46696C6C2E436F6C6F720709784646323032 + 3032300748697454657374080553696465730B044C656674055269676874000A + 53697A652E57696474680500000000000000A001400B53697A652E4865696768 + 7405000000000000009006401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F72070978464631353135313500000A545265 + 6374616E676C6500095374796C654E616D65060A52656374616E676C65310541 + 6C69676E070A4D6F7374426F74746F6D13456E61626C6544726167486967686C + 69676874080A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080A506F736974696F6E2E590500000000000000900640055369646573 + 0B044C65667406426F74746F6D000A53697A652E576964746805000000000000 + 00A001400B53697A652E4865696768740500000000000000A001401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 7846463135313531350007544C61796F757400095374796C654E616D6506074C + 61796F75743305416C69676E07094D6F737452696768740A506F736974696F6E + 2E5805000000000000008001400A53697A652E57696474680500000000000000 + 80FF3F0B53697A652E4865696768740500000000000000A001401453697A652E + 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653105416C69676E0703546F700A46 + 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 + 7A652E5769647468050000000000000080FF3F0B53697A652E48656967687405 + 0000000000000080FF3F1453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000000000007544C61796F757400 + 095374796C654E616D650605726967687405416C69676E07094D6F7374526967 + 6874064C6F636B6564090A506F736974696F6E2E580500000000005655AD0740 + 0A506F736974696F6E2E590500000000000000F003400A53697A652E57696474 + 680500000000000000A001400B53697A652E4865696768740500000000000000 + 9506401453697A652E506C6174666F726D44656661756C7408000A5452656374 + 616E676C650005416C69676E07094D6F737452696768740A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080553696465730B044C65 + 6674055269676874000A53697A652E57696474680500000000000000A001400B + 53697A652E48656967687405000000000000009006401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 3135313500000A5452656374616E676C6500095374796C654E616D65060A5265 + 6374616E676C653105416C69676E070A4D6F7374426F74746F6D13456E61626C + 6544726167486967686C69676874080A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A506F736974696F6E2E5905000000000000 + 009006400553696465730B06426F74746F6D055269676874000A53697A652E57 + 696474680500000000000000A001400B53697A652E4865696768740500000000 + 000000A001401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F7207097846463135313531350007544C61796F7574000953 + 74796C654E616D6506074C61796F75743305416C69676E07084D6F73744C6566 + 740A53697A652E5769647468050000000000000080FF3F0B53697A652E486569 + 6768740500000000000000A001401453697A652E506C6174666F726D44656661 + 756C7408000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653105416C69676E0703546F700A46696C6C2E436F6C6F72070978 + 46463135313531350748697454657374080A53697A652E576964746805000000 + 0000000080FF3F0B53697A652E486569676874050000000000000080FF3F1453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6500000000000A5452656374616E676C650005416C69676E07074D + 6F7374546F700A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080A53697A652E576964746805000000000056D5 + AF07400B53697A652E4865696768740500000000000000F003401453697A652E 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 4646313531353135000A5452656374616E676C6500095374796C654E616D6506 - 0A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C - 6F720709784646324138324532064C6F636B6564090748697454657374080C4D - 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 - 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 - 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F - 0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E - 59050000000000000080FF3F0A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000009999D904401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 650000000A5452656374616E676C6500095374796C654E616D65060676747261 - 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 - 4646323032303230064C6F636B6564090748697454657374080A53697A652E57 - 6964746805000000000033338505400B53697A652E4865696768740500000000 - 009999E104401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F720709784646313531353135000A5452656374616E676C65 - 00095374796C654E616D65060A76696E64696361746F7205416C69676E070642 - 6F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B - 6564090748697454657374080C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 - 0080FF3F0A506F736974696F6E2E5905000000000099998904400A53697A652E - 576964746805000000000033338105400B53697A652E48656967687405000000 - 00000000A803401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 - 095374796C654E616D65060D657870616E6465727374796C6505416C69676E07 - 0643656E7465720A53697A652E576964746805000000000000C08407400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508000A5452656374616E676C6500 - 095374796C654E616D65060B626772656374616E676C6505416C69676E070843 - 6F6E74656E74730C436C69704368696C6472656E090A46696C6C2E436F6C6F72 - 0709784646324432443244064C6F636B6564090748697454657374080A53697A - 652E576964746805000000000000C08407400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F7207097846463135313531350007544C61796F7574 - 00095374796C654E616D6506074C61796F75743305416C69676E0703546F700A - 53697A652E576964746805000000000000C08407400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080007544C61796F757400095374796C654E616D6506074C61796F75743405 - 416C69676E0708436F6E74656E74730A53697A652E5769647468050000000000 - 00C08407400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 - 5374796C654E616D65060A52656374616E676C653205416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F720709784646323532353235064C6F636B - 6564090748697454657374080A53697A652E576964746805000000000000C084 - 07400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 4631353135313500000A5452656374616E676C6500095374796C654E616D6506 - 0A52656374616E676C653105416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646313531353135064C6F636B65640907486974546573 - 74080A53697A652E576964746805000000000000C08407400B53697A652E4865 - 696768740500000000000000C803401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 - 6E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D6174 - 696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0D496E - 746572706F6C6174696F6E070843697263756C61720C50726F70657274794E61 - 6D6506075363616C652E580A537461727456616C7565050000000000000080FF - 3F0953746F7056616C756505000000000000000000000754726967676572060F - 4973457870616E6465643D747275650E54726967676572496E76657273650610 - 4973457870616E6465643D66616C73650000000007544C61796F757400095374 - 796C654E616D6506074C61796F75743305416C69676E0708436F6E74656E7473 - 0A53697A652E576964746805000000000000C08407400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080005545465787400095374796C654E616D6506047465787405416C6967 - 6E07044C656674084175746F53697A65090A436C6970506172656E7409064C6F - 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 - 000000A002400A506F736974696F6E2E580500000000000000A002400A53697A - 652E576964746805000000000000B8C703400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C740816 - 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 - 0000000F54457870616E646572427574746F6E00095374796C654E616D650606 - 627574746F6E05416C69676E07055269676874064C6F636B6564090A506F7369 - 74696F6E2E580500000000000080F506400A53697A652E576964746805000000 - 00000000A003400B53697A652E4865696768740500000000000000C803401453 - 697A652E506C6174666F726D44656661756C740800000000005450463007544C - 61796F757400095374796C654E616D650613657870616E646572627574746F6E - 7374796C6505416C69676E070643656E7465720B4D617267696E732E546F7005 - 0000000000000080FF3F0A53697A652E57696474680500000000000000B00340 - 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 - 74666F726D44656661756C74080756697369626C650800055450617468000953 - 74796C654E616D650605506174683105416C69676E070643656E746572094461 - 74612E506174680A3400000004000000000000000000C8420000C84201000000 - 000096430000C842010000000000484300009643030000000000C8420000C842 - 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D52 - 6F746174696F6E416E676C650500000000000000B405400A53697A652E576964 - 74680500000000000000A002400B53697A652E48656967687405000000000000 - 00C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000953 - 74796C654E616D650614466C6F6174416E696D6174696F6E315374796C650844 - 75726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E - 070843697263756C61720C50726F70657274794E616D65060D526F746174696F - 6E416E676C650A537461727456616C75650500000000000000B405400953746F - 7056616C756505000000000000000000000754726967676572060F4973457870 - 616E6465643D747275650E54726967676572496E766572736506104973457870 - 616E6465643D66616C7365000000005450463007544C61796F75740009537479 - 6C654E616D650615657870616E646572636865636B626F787374796C6505416C - 69676E070643656E7465720A53697A652E576964746805000000000000008406 - 400B53697A652E48656967687405000000000000008404401453697A652E506C - 6174666F726D44656661756C74080756697369626C65080007544C61796F7574 - 0005416C69676E07044C6566740A53697A652E57696474680500000000000000 - C003400B53697A652E48656967687405000000000000008404401453697A652E - 506C6174666F726D44656661756C7408000554506174680005416C69676E0706 - 436C69656E7409446174612E506174680AD80100002700000000000000FEC8BA - 4402E79244020000002592AD4402E79244020000006D5BA544FEB09E44020000 - 006D5BA544FEB09E440200000093A4A4446A0C9F44020000004A80AC44FC79AA - 4402000000046EBA44FC79AA44020000004A00C844FC79AA44020000000080CF - 44FEB09E44020000000080CF44FEB09E44020000000080CF44FEB09E44020000 - 004C5BC84402E7924402000000FEC8BA4402E7924400000000FE88BA44FE3097 - 4402000000B876BF44FE309744020000000277C344EEA09A44020000000277C3 - 4404DE9E44020000000277C344121BA34402000000B876BF44008CA644020000 - 00FE88BA44008CA644020000004C9BB544008CA64402000000009CB144121BA3 - 4402000000009CB14404DE9E4402000000009CB144EEA09A44020000004C9BB5 - 44FE30974402000000FE88BA44FE309744000000000080BA44045E9B44020000 - 00146EB844045E9B440200000000C0B64454F79C440200000000C0B64400F09E - 440200000000C0B644ACE8A04402000000146EB844FC81A244020000000080BA - 44FC81A24402000000EC91BC44FC81A244020000000040BE44ACE8A044020000 - 000040BE4400F09E44020000000040BE4454F79C4402000000EC91BC44045E9B - 44020000000080BA44045E9B440A46696C6C2E436F6C6F720709783630303030 - 3030300748697454657374080C4D617267696E732E4C65667405000000000000 - 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 - 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D05000000000000008000400A53697A652E576964746805000000000000 - 00A003400B53697A652E4865696768740500000000000000E803401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6508577261704D6F64650703466974000F54436F6C6F72416E696D617469 - 6F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 - 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709783630 - 3030303030300953746F7056616C75650708636C61426C61636B075472696767 - 6572060E4973436865636B65643D7472756500000F54436F6C6F72416E696D61 - 74696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070863 - 6C61426C61636B0953746F7056616C7565070978363030303030303007547269 - 67676572060F4973436865636B65643D66616C73650000000005545465787400 - 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 000000008002400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E5269676874050000000000000080FF3F0A53697A652E576964 - 74680500000000000000C605400B53697A652E48656967687405000000000000 - 00F803401453697A652E506C6174666F726D44656661756C7408165465787453 - 657474696E67732E466F6E74436F6C6F72070978464645454545454516546578 - 7453657474696E67732E486F727A416C69676E07074C656164696E6700000054 - 50463007544C61796F757400095374796C654E616D65060E6C6162656C66696C - 6C7374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 - 6C653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 - 7846463135313531350A53697A652E57696474680500000000000000C805400B - 53697A652E4865696768740500000000000000C803401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 05545465787400095374796C654E616D6506047465787405416C69676E070843 - 6F6E74656E74730748697454657374080A53697A652E57696474680500000000 - 000000C805400B53697A652E4865696768740500000000000000C80340145369 + 46463135313531350007544C61796F757400095374796C654E616D6506076361 + 7074696F6E05416C69676E0708436F6E74656E7473064C6F636B656409074869 + 7454657374090A53697A652E576964746805000000000056D5AF07400B53697A + 652E4865696768740500000000000000F003401453697A652E506C6174666F72 + 6D44656661756C7408000007544C61796F75740005416C69676E0706436C6965 + 6E74064C6F636B6564090C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E576964746805000000000056D5AE + 07400B53697A652E4865696768740500000000000000E003401453697A652E50 + 6C6174666F726D44656661756C74080007544C61796F75740005416C69676E07 + 044C656674064C6F636B6564090A53697A652E57696474680500000000000000 + 9002400B53697A652E4865696768740500000000000000E003401453697A652E + 506C6174666F726D44656661756C7408000007544C61796F757400095374796C + 654E616D65060469636F6E064C6F636B6564090A506F736974696F6E2E580500 + 0000000000009002400A506F736974696F6E2E590500000000000000E001400A + 53697A652E57696474680500000000000000C803400B53697A652E4865696768 + 740500000000000000A803401453697A652E506C6174666F726D44656661756C + 7408000007544C61796F757400095374796C654E616D65060773797362746E73 + 05416C69676E0706436C69656E74064C6F636B6564090A53697A652E57696474 + 680500000000005655AA07400B53697A652E4865696768740500000000000000 + E003401453697A652E506C6174666F726D44656661756C7408000C5453706565 + 64427574746F6E00095374796C654E616D650605636C6F736505416C69676E07 + 055269676874064C6F636B6564090A506F736974696F6E2E5805000000000056 + 559107400A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000E003401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B75700610636C6F7365627574746F6E + 7374796C6500000C545370656564427574746F6E00095374796C654E616D6506 + 036D617805416C69676E07055269676874064C6F636B6564090A506F73697469 + 6F6E2E5805000000000056558207400A53697A652E5769647468050000000000 + 0000F003400B53697A652E4865696768740500000000000000E003401453697A + 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060E + 6D6178627574746F6E7374796C6500000C545370656564427574746F6E000953 + 74796C654E616D65060372657305416C69676E07055269676874064C6F636B65 + 64090A506F736974696F6E2E58050000000000ACAAE606400A53697A652E5769 + 6474680500000000000000F003400B53697A652E486569676874050000000000 + 0000E003401453697A652E506C6174666F726D44656661756C74080B5374796C + 654C6F6F6B7570060E726573627574746F6E7374796C6500000C545370656564 + 427574746F6E00095374796C654E616D6506036D696E05416C69676E07055269 + 676874064C6F636B6564090A506F736974696F6E2E58050000000000ACAAC806 + 400A53697A652E57696474680500000000000000F003400B53697A652E486569 + 6768740500000000000000E003401453697A652E506C6174666F726D44656661 + 756C74080B5374796C654C6F6F6B7570060E6D696E627574746F6E7374796C65 + 000005545465787400095374796C654E616D6506057469746C6505416C69676E + 0706436C69656E74064C6F636B6564090748697454657374080A53697A652E57 + 69647468050000000000ACAAC806400B53697A652E4865696768740500000000 + 000000E003401453697A652E506C6174666F726D44656661756C740804546578 + 7406055469746C65165465787453657474696E67732E466F6E74436F6C6F7207 + 08636C615768697465000000000007544C61796F757400095374796C654E616D + 650606636C69656E7405416C69676E0706436C69656E74064C6F636B65640907 + 48697454657374090A53697A652E576964746805000000000056D5AA07400B53 + 697A652E48656967687405000000000000009006401453697A652E506C617466 + 6F726D44656661756C7408000007544C61796F757400095374796C654E616D65 + 0606626F74746F6D05416C69676E0706426F74746F6D064C6F636B6564090A50 + 6F736974696F6E2E580500000000000000A001400A506F736974696F6E2E5905 + 00000000000000AE06400A53697A652E576964746805000000000056D5AA0740 + 0B53697A652E4865696768740500000000000000A001401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D6506047265637405416C69676E0706426F74746F6D0A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080553696465730B0354 + 6F7006426F74746F6D000A53697A652E576964746805000000000056D5AA0740 + 0B53697A652E4865696768740500000000000000A001401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 3531353135000000005450463007544C61796F757400095374796C654E616D65 + 0610726164696F627574746F6E7374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000F205400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C65080007544C61796F75740005416C69676E07044C65 + 66740A53697A652E57696474680500000000000000A803400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C7408000854456C6C6970736500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E070643656E7465720A46696C6C2E436F6C6F7207 + 09784646323032303230064C6F636B6564090748697454657374080A53697A65 + 2E57696474680500000000000000F002400B53697A652E486569676874050000 + 0000000000F002401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F720709784646313531353135000854456C6C69707365 + 00095374796C654E616D650609636865636B6D61726B05416C69676E0706436C + 69656E740A46696C6C2E436F6C6F720709784646324138324532064C6F636B65 + 6409074869745465737408074F70616369747905000000000000000000000C4D + 617267696E732E4C65667405000000000000008000400B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 + 0A53697A652E57696474680500000000000000B002400B53697A652E48656967 + 68740500000000000000B002401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E69 + 6D6174696F6E00095374796C654E616D65061A6F706163697479436865636B6D + 61726B416E696D6174696F6E31084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D6506074F7061636974790A537461727456616C + 756505000000000000000000000953746F7056616C7565050000000000000080 + FF3F0754726967676572060E4973436865636B65643D747275650E5472696767 + 6572496E7665727365060F4973436865636B65643D66616C73650000000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D65061A726164696F62 + 7574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000 + 000000000000000007496E7665727365090C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 0953746F7056616C756507097846463430343034300754726967676572061049 + 734D6F7573654F7665723D747275650E54726967676572496E76657273650611 + 49734D6F7573654F7665723D66616C736500000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 + 74796C65084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75650709 + 7846463135313531350953746F7056616C756507097846463241383245320754 + 726967676572060E4973436865636B65643D747275650E54726967676572496E + 7665727365060F4973436865636B65643D66616C736500000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000A80340145369 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 - 6F757400095374796C654E616D650613636F6D626F656469746572726F727374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000C805400B53697A652E4865696768740500000000000000C803401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508000C54 - 42727573684F626A65637400095374796C654E616D65060A666F726567726F75 - 6E6400000B54466F6E744F626A65637400095374796C654E616D650604666F6E - 7409466F6E742E53697A650500000000000000D00240000007544C61796F7574 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 - 6F6E74656E74730A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653105416C69676E0706436C69656E740A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E - 57696474680500000000000000C805400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F720709784646323032303230000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F - 6E315374796C65084475726174696F6E050000000000000000000007496E7665 - 727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A + 6F757400095374796C654E616D650618756C63656E746572726164696F627574 + 746F6E7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000005655FB05400B53697A652E4865696768740500000000000000 + A004401453697A652E506C6174666F726D44656661756C74080756697369626C + 65080007544C61796F75740005416C69676E0706426F74746F6D0A506F736974 + 696F6E2E5905000000000000008804400A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F + 6E74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C65 + 6674000A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000005655FB0540 + 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 3531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 6506216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174 + 696F6E31084475726174696F6E050000000000000000000007496E7665727365 + 090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463230323032300953746F7056616C7565070978464634 + 30343034300754726967676572061049734D6F7573654F7665723D747275650E + 54726967676572496E7665727365061149734D6F7573654F7665723D66616C73 + 6500000A5452656374616E676C6500095374796C654E616D650609636865636B + 6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F + 704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846 + 46324138324532064C6F636B656409074869745465737408074F706163697479 + 05000000000000000000000C4D617267696E732E4C6566740500000000000000 + 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 + 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 + 6F6D050000000000000080FF3F0A53697A652E57696474680500000000005655 + F705400B53697A652E48656967687405000000000000008001401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A + 636865636B6D61726B4F706163697479416E696D6174696F6E31084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D6506074F7061 + 636974790A537461727456616C756505000000000000000000000953746F7056 + 616C7565050000000000000080FF3F0754726967676572060E4973436865636B + 65643D747275650E54726967676572496E7665727365060F4973436865636B65 + 643D66616C7365000000000005545465787400095374796C654E616D65060474 + 65787405416C69676E0706436C69656E74064C6F636B65640907486974546573 + 74080A53697A652E57696474680500000000005655FB05400B53697A652E4865 + 6967687405000000000000008804401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 6157686974650000005450463007544C61796F757400095374796C654E616D65 + 0617756C7269676874726164696F627574746F6E7374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000005655FB05400B5369 + 7A652E4865696768740500000000000000A004401453697A652E506C6174666F + 726D44656661756C74080756697369626C65080007544C61796F75740005416C + 69676E0706426F74746F6D0A506F736974696F6E2E5905000000000000008804 + 400A53697A652E57696474680500000000005655FB05400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C7408000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E747307436F726E6572730B + 08546F7052696768740B426F74746F6D5269676874000A46696C6C2E436F6C6F + 720709784646323032303230064C6F636B6564090748697454657374080A5369 + 7A652E57696474680500000000005655FB05400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F720709784646313531353135000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D6506216261636B67726F756E64 + 556C427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E + 050000000000000000000007496E7665727365090C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646323032 + 3032300953746F7056616C756507097846463430343034300754726967676572 + 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 + 65061149734D6F7573654F7665723D66616C736500000A5452656374616E676C + 6500095374796C654E616D650609636865636B6D61726B05416C69676E070843 + 6F6E74656E747307436F726E6572730B08546F7052696768740B426F74746F6D + 5269676874000A46696C6C2E436F6C6F720709784646324138324532064C6F63 + 6B656409074869745465737408074F7061636974790500000000000000000000 + 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A53697A652E57696474680500000000005655F705400B53697A652E4865 + 6967687405000000000000008001401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 + 6E696D6174696F6E00095374796C654E616D65061A636865636B6D61726B4F70 + 6163697479416E696D6174696F6E31084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D6506074F7061636974790A537461727456 + 616C756505000000000000000000000953746F7056616C756505000000000000 + 0080FF3F0754726967676572060E4973436865636B65643D747275650E547269 + 67676572496E7665727365060F4973436865636B65643D66616C736500000000 + 0005545465787400095374796C654E616D6506047465787405416C69676E0706 + 436C69656E74064C6F636B6564090748697454657374080A53697A652E576964 + 74680500000000005655FB05400B53697A652E48656967687405000000000000 + 008804401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974650000005450 + 463007544C61796F757400095374796C654E616D650616756C6C656674726164 + 696F627574746F6E7374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000005655FB05400B53697A652E486569676874050000 + 0000000000A004401453697A652E506C6174666F726D44656661756C74080756 + 697369626C65080007544C61796F75740005416C69676E0706426F74746F6D0A + 506F736974696F6E2E5905000000000000008804400A53697A652E5769647468 + 0500000000005655FB05400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C7408000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E747307436F726E6572730B07546F704C6566740A426F74 + 746F6D4C656674000A46696C6C2E436F6C6F720709784646323032303230064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 5655FB05400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F7241 + 6E696D6174696F6E31084475726174696F6E050000000000000000000007496E + 7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A 537461727456616C756507097846463230323032300953746F7056616C756507 - 097846463430343034300754726967676572062049734D6F7573654F7665723D - 747275653B4973466F63757365643D66616C73650E54726967676572496E7665 - 727365062149734D6F7573654F7665723D66616C73653B4973466F6375736564 - 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614436F6C6F72416E696D6174696F6E325374796C6508447572617469 - 6F6E050000000000000000000007496E7665727365090C50726F70657274794E - 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 - 463430343034300953746F7056616C7565070978464645323241324107547269 - 67676572061F49734D6F7573654F7665723D747275653B4973466F6375736564 - 3D747275650E54726967676572496E7665727365062049734D6F7573654F7665 - 723D747275653B4973466F63757365643D66616C7365000007544C61796F7574 - 00095374796C654E616D6506056172726F7705416C69676E0708466974526967 - 68740B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E - 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F - 6D050000000000000080FF3F0A506F736974696F6E2E580500000000005ED997 - 05400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769 - 647468050000000000889AB803400B53697A652E486569676874050000000000 - 0000B803401453697A652E506C6174666F726D44656661756C7408000A545265 - 6374616E676C6500095374796C654E616D65060A52656374616E676C65310541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463330 - 333033300748697454657374080A53697A652E5769647468050000000000889A - B803400B53697A652E4865696768740500000000000000B803401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 - 436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E050000 - 000000000000000007496E7665727365090C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646333033303330 - 0953746F7056616C756507097846463430343034300754726967676572062049 - 734D6F7573654F7665723D747275653B4973466F63757365643D66616C73650E - 54726967676572496E7665727365062149734D6F7573654F7665723D66616C73 - 653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3253 - 74796C65084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463430343034300953746F7056616C7565070978464639433137313707547269 - 67676572061F4973466F63757365643D747275653B49734D6F7573654F766572 - 3D7472756500000007544C61796F757400095374796C654E616D6506074C6179 - 6F75743105416C69676E070643656E7465720C4D617267696E732E4C65667405 - 0000000000000080FF3F0A53697A652E57696474680500000000000000A00240 - 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 - 74666F726D44656661756C74080005545061746800095374796C654E616D6506 - 05506174683105416C69676E0706436C69656E7409446174612E506174680A34 - 00000004000000000000000000C8420000C84201000000000096430000C84201 - 0000000000484300009643030000000000C8420000C8420A46696C6C2E436F6C - 6F720708636C6157686974650748697454657374080A53697A652E5769647468 - 0500000000000000A002400B53697A652E4865696768740500000000000000C0 - 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E650000000000000C5442727573684F626A656374000953 - 74796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F7207 - 09783936324138324532000007544C61796F757400095374796C654E616D6506 - 07636F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E4C - 65667405000000000000008000400B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E52696768740500000000000000F003400E4D - 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 - 64746805000000000000008805400B53697A652E486569676874050000000000 - 0000A803401453697A652E506C6174666F726D44656661756C74080000005450 - 463007544C61796F757400095374796C654E616D65061E70726F677265737362 - 6172696E64657465726D696E61626C657374796C6505416C69676E070643656E - 7465720A53697A652E5769647468050000000000ABAAB006400B53697A652E48 - 65696768740500000000000000C003401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508000A5452656374616E676C650009537479 - 6C654E616D65060676747261636B05416C69676E0708436F6E74656E74730745 - 6E61626C6564080A46696C6C2E436F6C6F720709784646323032303230064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000000 - 00E006400B53697A652E48656967687405000000000000009404401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 7846463135313531350756697369626C6508000A5452656374616E676C650009 - 5374796C654E616D65060A76696E64696361746F7205416C69676E0706426F74 - 746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564 - 090748697454657374080C4D617267696E732E4C656674050000000000000080 - FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E - 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F - 6D050000000000000080FF3F0A506F736974696F6E2E58050000000000000080 - FF3F0A506F736974696F6E2E590500000000000000F002400A53697A652E5769 - 6474680500000000000000DE06400B53697A652E486569676874050000000000 - 0000A803401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6500000007544C61796F757400095374796C654E - 616D65060668747261636B05416C69676E0708436F6E74656E74730A53697A65 - 2E5769647468050000000000ABAAB006400B53697A652E486569676874050000 - 0000000000C003401453697A652E506C6174666F726D44656661756C7408000A - 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E0708436F6E74656E74730C436C69704368696C6472656E090A + 097846463430343034300754726967676572061049734D6F7573654F7665723D + 747275650E54726967676572496E7665727365061149734D6F7573654F766572 + 3D66616C736500000A5452656374616E676C6500095374796C654E616D650609 + 636865636B6D61726B05416C69676E0708436F6E74656E747307436F726E6572 + 730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F + 720709784646324138324532064C6F636B656409074869745465737408074F70 + 616369747905000000000000000000000C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 + 0000005655F705400B53697A652E486569676874050000000000000080014014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E + 616D65061A636865636B6D61726B4F706163697479416E696D6174696F6E3108 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 06074F7061636974790A537461727456616C7565050000000000000000000009 + 53746F7056616C7565050000000000000080FF3F0754726967676572060E4973 + 436865636B65643D747275650E54726967676572496E7665727365060F497343 + 6865636B65643D66616C7365000000000005545465787400095374796C654E61 + 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 + 697454657374080A53697A652E57696474680500000000005655FB05400B5369 + 7A652E48656967687405000000000000008804401453697A652E506C6174666F + 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F + 720708636C6157686974650000005450463007544C61796F757400095374796C + 654E616D65061070726F67726573736261727374796C6505416C69676E070643 + 656E7465720A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508000A5452656374616E676C65000953 + 74796C654E616D65060668747261636B05416C69676E0708436F6E74656E7473 + 0A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564090748 + 697454657374080A53697A652E576964746805000000000033338505400B5369 + 7A652E4865696768740500000000009999E104401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 3135000A5452656374616E676C6500095374796C654E616D65060A68696E6469 + 6361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207097846 + 46324138324532064C6F636B6564090748697454657374080C4D617267696E73 + 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 + 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F + 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F736974 + 696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500000000 + 00000080FF3F0A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000009999D904401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A54 + 52656374616E676C6500095374796C654E616D65060676747261636B05416C69 + 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230 + 3230064C6F636B6564090748697454657374080A53697A652E57696474680500 + 0000000033338505400B53697A652E4865696768740500000000009999E10440 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F720709784646313531353135000A5452656374616E676C6500095374796C + 654E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 - 7454657374080A53697A652E5769647468050000000000ABAAB006400B53697A - 652E4865696768740500000000000000C003401453697A652E506C6174666F72 + 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D + 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 + 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A50 + 6F736974696F6E2E5905000000000099998904400A53697A652E576964746805 + 000000000033338105400B53697A652E4865696768740500000000000000A803 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000000005450463007544C61796F757400095374796C65 + 4E616D65060D657870616E6465727374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000000C08407400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508000A5452656374616E676C6500095374796C65 + 4E616D65060B626772656374616E676C6505416C69676E0708436F6E74656E74 + 730C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978464632 + 4432443244064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000000C08407400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F7207097846463135313531350007544C61796F757400095374796C + 654E616D6506074C61796F75743305416C69676E0703546F700A53697A652E57 + 6964746805000000000000C08407400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C74080007544C + 61796F757400095374796C654E616D6506074C61796F75743405416C69676E07 + 08436F6E74656E74730A53697A652E576964746805000000000000C08407400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C7408000A5452656374616E676C6500095374796C654E + 616D65060A52656374616E676C653205416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646323532353235064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000000C08407400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 35000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 - 6F6C6F72416E696D6174696F6E315374796C6507456E61626C65640908447572 - 6174696F6E0500000000000000800140044C6F6F70090C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 30323032300953746F7056616C75650709784646324138324532075472696767 - 6572060E497356697369626C653D7472756500000000005450463007544C6179 - 6F757400095374796C654E616D650611616E69696E64696361746F727374796C - 6505416C69676E070643656E7465720756697369626C65080004544172630009 - 5374796C654E616D65060341726305416C69676E0708436F6E74656E74730748 - 697454657374080D526F746174696F6E416E676C650500000000000000B40740 - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F720708636C615768697465105374726F6B - 652E546869636B6E657373050000000000000080004008456E64416E676C6505 - 00000000000000B405C0000F54466C6F6174416E696D6174696F6E0009537479 - 6C654E616D650603616E6907456E61626C656409084475726174696F6E050000 - 000000000080FF3F044C6F6F70090C50726F70657274794E616D65060D526F74 - 6174696F6E416E676C650A537461727456616C75650500000000000000000000 - 0953746F7056616C75650500000000000000B407400754726967676572060E49 - 7356697369626C653D74727565000000005450463007544C61796F7574000953 - 74796C654E616D650615616E69696E64696361746F72686F727A7374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000000040 - C006400B53697A652E48656967687405000000000000008000401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 - 616E676C6500095374796C654E616D65060A52656374616E676C653105416C69 - 676E0706436C69656E740C436C69704368696C6472656E090A46696C6C2E436F - 6C6F7207097846463430343034300A53697A652E576964746805000000000000 - 40C006400B53697A652E48656967687405000000000000008000401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E650005544C696E6500095374796C654E616D6506054C696E6531084C696E - 65547970650706426F74746F6D0A53697A652E57696474680500000000000000 - A00B400B53697A652E48656967687405000000000000008000401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 4646324138324532105374726F6B652E546869636B6E65737305000000000000 - 008002400B5374726F6B652E44617368070444617368000F54466C6F6174416E - 696D6174696F6E00095374796C654E616D650603616E6907456E61626C656409 - 084475726174696F6E0500000000000000800340044C6F6F70090C50726F7065 - 7274794E616D65060A506F736974696F6E2E580A537461727456616C75650500 - 000000000000C808C00953746F7056616C756505000000000000000000000754 - 726967676572060E497356697369626C653D7472756500000000005450463007 - 544C61796F757400095374796C654E616D65060A70616E656C7374796C650541 - 6C69676E070643656E7465720A53697A652E57696474680500000000000000C0 - 06400B53697A652E4865696768740500000000000000A406401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 - 300A53697A652E57696474680500000000000000C006400B53697A652E486569 - 6768740500000000000000A406401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C - 61796F757400095374796C654E616D65060E6C6F67627574746F6E7374796C65 + 3500000A5452656374616E676C6500095374796C654E616D65060A5265637461 + 6E676C653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646313531353135064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000000C08407400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 + 6F6E00095374796C654E616D650614466C6F6174416E696D6174696F6E315374 + 796C65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C + 6174696F6E070843697263756C61720C50726F70657274794E616D6506075363 + 616C652E580A537461727456616C7565050000000000000080FF3F0953746F70 + 56616C756505000000000000000000000754726967676572060F497345787061 + 6E6465643D747275650E54726967676572496E76657273650610497345787061 + 6E6465643D66616C73650000000007544C61796F757400095374796C654E616D + 6506074C61796F75743305416C69676E0708436F6E74656E74730A53697A652E + 576964746805000000000000C08407400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408000554 + 5465787400095374796C654E616D6506047465787405416C69676E07044C6566 + 74084175746F53697A65090A436C6970506172656E7409064C6F636B65640907 + 48697454657374080C4D617267696E732E4C6566740500000000000000A00240 + 0A506F736974696F6E2E580500000000000000A002400A53697A652E57696474 + 6805000000000000B8C703400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 + 657474696E67732E486F727A416C69676E07074C656164696E670000000F5445 + 7870616E646572427574746F6E00095374796C654E616D650606627574746F6E + 05416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E58 + 0500000000000080F506400A53697A652E57696474680500000000000000A003 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C740800000000005450463007544C61796F757400 + 095374796C654E616D650613657870616E646572627574746F6E7374796C6505 + 416C69676E070643656E7465720B4D617267696E732E546F7005000000000000 + 0080FF3F0A53697A652E57696474680500000000000000B003400B53697A652E + 4865696768740500000000000000B003401453697A652E506C6174666F726D44 + 656661756C74080756697369626C65080005545061746800095374796C654E61 + 6D650605506174683105416C69676E070643656E74657209446174612E506174 + 680A3400000004000000000000000000C8420000C84201000000000096430000 + C842010000000000484300009643030000000000C8420000C8420A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080D526F746174696F + 6E416E676C650500000000000000B405400A53697A652E576964746805000000 + 00000000A002400B53697A652E4865696768740500000000000000C001401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E61 + 6D650614466C6F6174416E696D6174696F6E315374796C65084475726174696F + 6E050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263 + 756C61720C50726F70657274794E616D65060D526F746174696F6E416E676C65 + 0A537461727456616C75650500000000000000B405400953746F7056616C7565 + 05000000000000000000000754726967676572060F4973457870616E6465643D + 747275650E54726967676572496E766572736506104973457870616E6465643D + 66616C7365000000005450463007544C61796F757400095374796C654E616D65 + 0615657870616E646572636865636B626F787374796C6505416C69676E070643 + 656E7465720A53697A652E576964746805000000000000008406400B53697A65 + 2E48656967687405000000000000008404401453697A652E506C6174666F726D + 44656661756C74080756697369626C65080007544C61796F75740005416C6967 + 6E07044C6566740A53697A652E57696474680500000000000000C003400B5369 + 7A652E48656967687405000000000000008404401453697A652E506C6174666F + 726D44656661756C7408000554506174680005416C69676E0706436C69656E74 + 09446174612E506174680AD80100002700000000000000FEC8BA4402E7924402 + 0000002592AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FE + B09E440200000093A4A4446A0C9F44020000004A80AC44FC79AA440200000004 + 6EBA44FC79AA44020000004A00C844FC79AA44020000000080CF44FEB09E4402 + 0000000080CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402 + E7924402000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B8 + 76BF44FE309744020000000277C344EEA09A44020000000277C34404DE9E4402 + 0000000277C344121BA34402000000B876BF44008CA64402000000FE88BA4400 + 8CA644020000004C9BB544008CA64402000000009CB144121BA3440200000000 + 9CB14404DE9E4402000000009CB144EEA09A44020000004C9BB544FE30974402 + 000000FE88BA44FE309744000000000080BA44045E9B4402000000146EB84404 + 5E9B440200000000C0B64454F79C440200000000C0B64400F09E440200000000 + C0B644ACE8A04402000000146EB844FC81A244020000000080BA44FC81A24402 + 000000EC91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400 + F09E44020000000040BE4454F79C4402000000EC91BC44045E9B440200000000 + 80BA44045E9B440A46696C6C2E436F6C6F720709783630303030303030074869 + 7454657374080C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A53697A652E57696474680500000000000000A003400B53 + 697A652E4865696768740500000000000000E803401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65085772 + 61704D6F64650703466974000F54436F6C6F72416E696D6174696F6E00084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709783630303030303030 + 0953746F7056616C75650708636C61426C61636B0754726967676572060E4973 + 436865636B65643D7472756500000F54436F6C6F72416E696D6174696F6E0008 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C75650708636C61426C6163 + 6B0953746F7056616C756507097836303030303030300754726967676572060F + 4973436865636B65643D66616C73650000000005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C65667405000000000000008002 + 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 + 2E5269676874050000000000000080FF3F0A53697A652E576964746805000000 + 00000000C605400B53697A652E4865696768740500000000000000F803401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F72070978464645454545454516546578745365747469 + 6E67732E486F727A416C69676E07074C656164696E670000005450463007544C + 61796F757400095374796C654E616D65060E6C6162656C66696C6C7374796C65 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 00C005400B53697A652E4865696768740500000000000000C005401453697A65 + 00C805400B53697A652E4865696768740500000000000000C803401453697A65 2E506C6174666F726D44656661756C74080756697369626C6508000A54526563 - 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C - 69676E0706436C69656E740C436C69704368696C6472656E090A436C69705061 - 72656E74090A46696C6C2E436F6C6F7207097846463230323032300748697454 - 657374080A53697A652E57696474680500000000000000C005400B53697A652E - 4865696768740500000000000000C005401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C - 6F72416E696D6174696F6E31084475726174696F6E0500000000000000000000 - 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C + 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646313531 + 3531350A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000055454657874 + 00095374796C654E616D6506047465787405416C69676E0708436F6E74656E74 + 730748697454657374080A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C7408165465787453657474696E67732E466F6E7443 + 6F6C6F720708636C6157686974650000005450463007544C61796F7574000953 + 74796C654E616D650613636F6D626F656469746572726F727374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000C805 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000C5442727573684F + 626A65637400095374796C654E616D65060A666F726567726F756E6400000B54 + 466F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E74 + 2E53697A650500000000000000D00240000007544C61796F757400095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 + 730A53697A652E57696474680500000000000000C805400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C7408000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F720709784646323032303230000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C + 65084475726174696F6E050000000000000000000007496E7665727365090C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 616C756507097846463230323032300953746F7056616C756507097846463430 - 343034300754726967676572063049734D6F7573654F7665723D747275653B49 - 73507265737365643D66616C73653B4973466F63757365643D66616C73650E54 - 726967676572496E7665727365063149734D6F7573654F7665723D66616C7365 - 3B4973507265737365643D66616C73653B4973466F63757365643D66616C7365 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562 - 7574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000 - 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463430343034300953746F7056616C75 - 6507097846463137353739430754726967676572062F4973507265737365643D - 747275653B49734D6F7573654F7665723D747275653B4973466F63757365643D - 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650615627574746F6E436F6C6F72416E696D6174696F6E3308447572617469 - 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463241383245320953746F - 7056616C756507097846463137353739430754726967676572062E4973507265 - 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 - 757365643D747275650E54726967676572496E7665727365062F497350726573 - 7365643D66616C73653B49734D6F7573654F7665723D747275653B4973466F63 - 757365643D74727565000005545061746800095374796C654E616D6506055061 - 74683105416C69676E0706436C69656E7409446174612E506174680A5C020000 - 32000000000000000000A841CDCCCC40010000000000A8410000C04101000000 - 0000C03F0000C041010000000000C03F00000000010000009A99694100000000 - 010000000000A841CDCCCC40030000000000A841CDCCCC400000000000009C41 - 0000F04001000000000058410000F04001000000000058410000C03F01000000 - 000040400000C03F01000000000040400000B4410100000000009C410000B441 - 0100000000009C410000F0400300000000009C410000F0400000000000004041 - 0000F04001000000000090400000F04001000000000090400000C04001000000 - 000040410000C04001000000000040410000F04003000000000040410000F040 - 0000000000009040000010410100000000009041000010410100000000009041 - 0000284101000000000090400000284101000000000090400000104103000000 - 0000904000001041000000000000904000004041010000000000904100004041 - 0100000000009041000058410100000000009040000058410100000000009040 - 0000404103000000000090400000404100000000000090400000704101000000 - 0000904100007041010000000000904100008441010000000000904000008441 - 0100000000009040000070410300000000009040000070410000000000009040 - 00009041010000000000904100009041010000000000904100009C4101000000 - 0000904000009C41010000000000904000009041030000000000904000009041 - 00000000000070410000C04001000000333393410000C0400100000000007041 - 6666264001000000000070410000C04003000000000070410000C0400A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080C4D61726769 - 6E732E4C6566740500000000000000A002400B4D617267696E732E546F700500 - 000000000000A002400D4D617267696E732E52696768740500000000000000A0 - 02400E4D617267696E732E426F74746F6D0500000000000000A002400A53697A - 652E576964746805000000000000009805400B53697A652E4865696768740500 - 0000000000009805401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400 - 0000005450463007544C61796F757400095374796C654E616D65061470726F67 - 726573736261726D696E697374796C6505416C69676E070643656E7465720A53 - 697A652E576964746805000000000033338505400B53697A652E486569676874 - 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508000A5452656374616E676C6500095374796C654E616D - 65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E43 - 6F6C6F720709784646343034303430064C6F636B656409074869745465737408 - 0A53697A652E576964746805000000000033338505400B53697A652E48656967 - 68740500000000009999E104401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C - 6500095374796C654E616D65060A68696E64696361746F7205416C69676E0704 - 4C6566740A46696C6C2E436F6C6F720709784646324138324532064C6F636B65 - 64090748697454657374080A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000009999E104401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 0000000A5452656374616E676C6500095374796C654E616D6506067674726163 - 6B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 - 46343034303430064C6F636B6564090748697454657374080A53697A652E5769 - 64746805000000000033338505400B53697A652E486569676874050000000000 - 9999E104401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C65 - 4E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46 - 696C6C2E436F6C6F720709784646324138324532064C6F636B65640907486974 - 54657374080A506F736974696F6E2E5905000000000099998D04400A53697A65 - 2E576964746805000000000033338505400B53697A652E486569676874050000 - 0000000000A803401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 - 00095374796C654E616D65061B7472656576696577657870616E646572627574 - 746F6E7374796C6505416C69676E070643656E7465720B4D617267696E732E54 - 6F70050000000000000080FF3F0A53697A652E57696474680500000000000000 - B003400B53697A652E4865696768740500000000000000B003401453697A652E - 506C6174666F726D44656661756C74080756697369626C650800055450617468 - 00095374796C654E616D650605506174683105416C69676E070643656E746572 - 09446174612E506174680A3400000004000000000000000000C8420000C84201 - 000000000096430000C842010000000000484300009643030000000000C84200 - 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 - 080D526F746174696F6E416E676C650500000000000000B405C00A53697A652E - 57696474680500000000000000A002400B53697A652E48656967687405000000 - 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E - 00095374796C654E616D650614466C6F6174416E696D6174696F6E315374796C - 65084475726174696F6E05000000000000000000000D496E746572706F6C6174 - 696F6E070843697263756C61720C50726F70657274794E616D65060D526F7461 - 74696F6E416E676C650A537461727456616C75650500000000000000B405C009 - 53746F7056616C756505000000000000000000000754726967676572060F4973 - 457870616E6465643D747275650E54726967676572496E766572736506104973 - 457870616E6465643D66616C736500000000545046300A5452656374616E676C - 6500095374796C654E616D65061174726565766965776974656D7374796C6505 - 416C69676E070643656E7465720946696C6C2E4B696E6407044E6F6E65074869 - 7454657374080553696465730B06426F74746F6D000A53697A652E5769647468 - 0500000000000000AE05400B53697A652E4865696768740500000000000000A0 - 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F7207097846463135313531350756697369626C6508000C5453706565 - 64427574746F6E00095374796C654E616D650606627574746F6E05416C69676E - 07044C6566740A53697A652E57696474680500000000000000A003400B53697A - 652E4865696768740500000000000000A004401453697A652E506C6174666F72 - 6D44656661756C74080B5374796C654C6F6F6B7570061B747265657669657765 - 7870616E646572627574746F6E7374796C65000007544C61796F75740005416C - 69676E0708436F6E74656E74730C4D617267696E732E4C656674050000000000 - 0000A003400A53697A652E576964746805000000000000008605400B53697A65 - 2E4865696768740500000000000000A004401453697A652E506C6174666F726D - 44656661756C7408000954436865636B426F7800095374796C654E616D650605 - 636865636B05416C69676E07044C6566740843616E466F637573081244697361 - 626C65466F637573456666656374090A53697A652E5769647468050000000000 - 0000A003400B53697A652E4865696768740500000000000000A004401453697A - 652E506C6174666F726D44656661756C740800000654476C7970680009537479 - 6C654E616D65060A676C7970687374796C650C4D617267696E732E4C65667405 - 000000000000008000400B4D617267696E732E546F70050000000000000080FF - 3F0D4D617267696E732E526967687405000000000000008000400E4D61726769 - 6E732E426F74746F6D050000000000000080FF3F05416C69676E07044C656674 - 0A506F736974696F6E2E580500000000000000B003400A506F736974696F6E2E - 59050000000000000080FF3F0A53697A652E5769647468050000000000000080 - 03400B53697A652E48656967687405000000000000009804401453697A652E50 - 6C6174666F726D44656661756C7408000005545465787400095374796C654E61 - 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 - 697454657374080A53697A652E57696474680500000000000000BC04400B5369 - 7A652E4865696768740500000000000000A004401453697A652E506C6174666F - 726D44656661756C74080454657874060454657874165465787453657474696E - 67732E466F6E74436F6C6F720708636C61576869746515546578745365747469 - 6E67732E576F72645772617008165465787453657474696E67732E486F727A41 - 6C69676E07074C656164696E670000000A5452656374616E676C650005416C69 - 676E07074669744C6566740946696C6C2E4B696E6407044E6F6E650748697454 - 657374080E4D617267696E732E426F74746F6D050000000000000080FF3F0553 - 696465730B044C656674000A53697A652E5769647468050000000000986F8905 - 400B53697A652E48656967687405000000000000009C04401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 324138324532105374726F6B652E546869636B6E657373050000000000000080 - 00400000005450463007544C61796F757400095374796C654E616D65060D7472 - 6565766965777374796C6505416C69676E070643656E7465720A53697A652E57 - 696474680500000000000000E106400B53697A652E4865696768740500000000 - 0000808107401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508000C5442727573684F626A65637400095374796C654E616D650618 - 416C7465726E6174696E67526F774261636B67726F756E640B42727573682E43 - 6F6C6F72070978304646464646464600000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 - 090748697454657374080C50616464696E672E4C656674050000000000000080 - FF3F0D50616464696E672E5269676874050000000000000080FF3F0A53697A65 - 2E57696474680500000000000000E106400B53697A652E486569676874050000 - 00000000808107401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F7207097846463135313531350007544C61796F757400 - 095374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E - 740C436C69704368696C6472656E090B4D617267696E732E546F700500000000 - 00000080FF3F0A53697A652E57696474680500000000000000CD06400B53697A - 652E4865696768740500000000000000F006401453697A652E506C6174666F72 - 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 - 060973656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245 - 320748697454657374080A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 000A5452656374616E676C6500095374796C654E616D650610666F6375736564 - 73656C656374696F6E0A46696C6C2E436F6C6F72070978464632413832453207 - 48697454657374080A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374 - 726F6B652E446173680703446F740000000A545363726F6C6C42617200095374 - 796C654E616D65060A767363726F6C6C62617205416C69676E07055269676874 - 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 - 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 - 00008000400A506F736974696F6E2E580500000000000000D006400A53697A65 - 2E576964746805000000000000008003400B53697A652E486569676874050000 - 0000000000F106401453697A652E506C6174666F726D44656661756C74080000 - 0A545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C62 - 617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505000000 - 000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B - 4D617267696E732E546F7005000000000000008000400A506F736974696F6E2E - 58050000000000000080FF3F0A506F736974696F6E2E590500000000000000F3 - 06400A53697A652E57696474680500000000000000DF06400B53697A652E4865 - 6967687405000000000000008003401453697A652E506C6174666F726D446566 - 61756C740800000F54536D616C6C5363726F6C6C42617200095374796C654E61 - 6D65060F76736D616C6C7363726F6C6C62617205416C69676E07055269676874 - 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 - 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 - 00008000400A506F736974696F6E2E580500000000000000C605400A506F7369 - 74696F6E2E5905000000000000008000400A53697A652E576964746805000000 - 000000008002400B53697A652E48656967687405000000000000008002401453 - 697A652E506C6174666F726D44656661756C74080756697369626C650800000F - 54536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D61 - 6C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C43 - 68616E676505000000000000000000000B4F7269656E746174696F6E070A486F - 72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A - 506F736974696F6E2E5805000000000000008000400A506F736974696F6E2E59 - 0500000000000000E205400A53697A652E576964746805000000000000009606 - 400B53697A652E48656967687405000000000000008002401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508000000005450463007 - 544C61796F757400095374796C654E616D650619616374696F6E746F6F6C6275 - 74746F6E6D756C74697669657705416C69676E070643656E7465720A53697A65 - 2E57696474680500000000000000C805400B53697A652E486569676874050000 - 0000000000C804401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F72646572027C0B46697865644865696768740232 - 000654476C79706800095374796C654E616D65060A676C7970687374796C650C - 4D617267696E732E4C65667405000000000000009002400B4D617267696E732E - 546F7005000000000000009002400E4D617267696E732E426F74746F6D050000 - 000000000090024005416C69676E07044C6566740A506F736974696F6E2E5805 - 000000000000009002400A506F736974696F6E2E590500000000000000900240 - 0A53697A652E576964746805000000000000008004400B53697A652E48656967 - 687405000000000000008004401453697A652E506C6174666F726D4465666175 - 6C740800000A5452656374616E676C6500095374796C654E616D65060A626163 - 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 - 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 - 30323032300748697454657374080C4D617267696E732E4C6566740500000000 - 000000C804C00A53697A652E57696474680500000000000000C805400B53697A - 652E4865696768740500000000000000C804401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 - 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000000000 - 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 - 7456616C756507097846463230323032300953746F7056616C75650709784646 - 3430343034300754726967676572063049734D6F7573654F7665723D74727565 - 3B4973507265737365643D66616C73653B4973466F63757365643D66616C7365 - 0E54726967676572496E7665727365063149734D6F7573654F7665723D66616C - 73653B4973507265737365643D66616C73653B4973466F63757365643D66616C - 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 15627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05 - 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463241383245320953746F705661 - 6C756507097846463137353739430754726967676572062E4973507265737365 - 643D747275653B49734D6F7573654F7665723D747275653B4973466F63757365 - 643D747275650E54726967676572496E7665727365062F497350726573736564 - 3D66616C73653B49734D6F7573654F7665723D747275653B4973466F63757365 - 643D7472756500000005545465787400095374796C654E616D65060474657874 - 05416C69676E0706436C69656E740748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C7408165465787453 - 657474696E67732E466F6E74436F6C6F720708636C615768697465000007544C - 61796F757400095374796C654E616D6506074C61796F75743205416C69676E07 - 044C6566740A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080005545061746800095374796C654E616D65060469636F6E - 05416C69676E070643656E74657209446174612E506174680A18010000170000 - 00000000000000C03F0000C03F01000000000000000000000001000000000040 - 4000000000010000000000C03F0000C03F030000000000C03F0000C03F000000 - 0000009040000000000100000000004041000000000100000000004041CDCC4C - 3F0100000000009040CDCC4C3F01000000000090400000000003000000000090 - 4000000000000000000000904033337340010000000000904000004040010000 - 0000004041000040400100000000004041333373400100000000009040333373 - 4003000000000090403333734000000000000090409A99D94001000000000090 - 400000C04001000000000040410000C04001000000000040419A99D940010000 - 00000090409A99D94003000000000090409A99D9400A46696C6C2E436F6C6F72 - 0708636C6157686974650748697454657374080A53697A652E57696474680500 - 000000000000D003400B53697A652E4865696768740500000000000000E00340 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E6508577261704D6F6465070346697400000000545046300754 - 4C61796F757400095374796C654E616D65060E616464627574746F6E7374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 0000C805400B53697A652E4865696768740500000000000000C003401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 72646572027E0B46697865644865696768740218000654476C79706800095374 - 796C654E616D65060A676C7970687374796C650C4D617267696E732E4C656674 - 05000000000000009002400B4D617267696E732E546F70050000000000000090 - 02400E4D617267696E732E426F74746F6D050000000000000090024005416C69 - 676E07044C6566740A506F736974696F6E2E5805000000000000009002400A50 - 6F736974696F6E2E5905000000000000009002400A53697A652E576964746805 - 000000000000008004400B53697A652E48656967687405000000000000008004 - 401453697A652E506C6174666F726D44656661756C740800000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 - 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 - 74080C4D617267696E732E4C6566740500000000000000C003C00A53697A652E - 57696474680500000000000000C805400B53697A652E48656967687405000000 - 00000000C003401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F - 6E31084475726174696F6E05000000000000000000000C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 30323032300953746F7056616C75650709784646343034303430075472696767 - 6572063049734D6F7573654F7665723D747275653B4973507265737365643D66 - 616C73653B4973466F63757365643D66616C73650E54726967676572496E7665 - 727365063149734D6F7573654F7665723D66616C73653B497350726573736564 - 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 - 416E696D6174696F6E33084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463241383245320953746F7056616C7565070978464631373537 - 39430754726967676572062E4973507265737365643D747275653B49734D6F75 - 73654F7665723D747275653B4973466F63757365643D747275650E5472696767 - 6572496E7665727365062F4973507265737365643D66616C73653B49734D6F75 - 73654F7665723D747275653B4973466F63757365643D74727565000000055454 - 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 - 6E740748697454657374080A53697A652E576964746805000000000000009805 - 400B53697A652E4865696768740500000000000000C003401453697A652E506C - 6174666F726D44656661756C7408045465787406045465787416546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465000007544C61 - 796F757400095374796C654E616D6506074C61796F75743205416C69676E0704 - 4C6566740A53697A652E57696474680500000000000000C003400B53697A652E - 4865696768740500000000000000C003401453697A652E506C6174666F726D44 - 656661756C74080005545061746800095374796C654E616D65060469636F6E05 - 416C69676E0708436F6E74656E747309446174612E506174680AAC0000000E00 - 000000000000CDCC34410000C040010000000000C0400000C040010000000000 - C040CDCC3441010000009A99A940CDCC3441010000009A99A9400000C0400100 - 0000000000000000C04001000000000000009A99A940010000009A99A9409A99 - A940010000009A99A94000000000010000000000C04000000000010000000000 - C0409A99A94001000000CDCC34419A99A94001000000CDCC34410000C0400300 - 0000CDCC34410000C0400A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080C4D617267696E732E4C6566740500000000000000800140 - 0B4D617267696E732E546F7005000000000000008001400D4D617267696E732E - 526967687405000000000000008001400E4D617267696E732E426F74746F6D05 - 000000000000008001400A53697A652E57696474680500000000000000800340 - 0B53697A652E48656967687405000000000000008003401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508 - 577261704D6F64650703466974000000005450463007544C61796F7574000953 - 74796C654E616D650617696E666F746F6F6C627574746F6E6D756C7469766965 - 7705416C69676E070643656E7465720A53697A652E5769647468050000000000 - 0000C805400B53697A652E4865696768740500000000000000C804401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 72646572027B0B46697865644865696768740232000654476C79706800095374 - 796C654E616D65060A676C7970687374796C650C4D617267696E732E4C656674 - 05000000000000009002400B4D617267696E732E546F70050000000000000090 - 02400E4D617267696E732E426F74746F6D050000000000000090024005416C69 - 676E07044C6566740A506F736974696F6E2E5805000000000000009002400A50 - 6F736974696F6E2E5905000000000000009002400A53697A652E576964746805 - 000000000000008004400B53697A652E48656967687405000000000000008004 - 401453697A652E506C6174666F726D44656661756C740800000A545265637461 + 343034300754726967676572062049734D6F7573654F7665723D747275653B49 + 73466F63757365643D66616C73650E54726967676572496E7665727365062149 + 734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 + 6F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05000000 + 0000000000000007496E7665727365090C50726F70657274794E616D65060C53 + 74726F6B652E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846464532324132410754726967676572061F + 49734D6F7573654F7665723D747275653B4973466F63757365643D747275650E + 54726967676572496E7665727365062049734D6F7573654F7665723D74727565 + 3B4973466F63757365643D66616C7365000007544C61796F757400095374796C + 654E616D6506056172726F7705416C69676E070846697452696768740B4D6172 + 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 + 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F0A506F736974696F6E2E580500000000005ED99705400A506F73 + 6974696F6E2E59050000000000000080FF3F0A53697A652E5769647468050000 + 000000889AB803400B53697A652E4865696768740500000000000000B8034014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 6500095374796C654E616D65060A52656374616E676C653105416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F7207097846463330333033300748 + 697454657374080A53697A652E5769647468050000000000889AB803400B5369 + 7A652E4865696768740500000000000000B803401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 + 6E696D6174696F6E315374796C65084475726174696F6E050000000000000000 + 000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463330333033300953746F7056 + 616C756507097846463430343034300754726967676572062049734D6F757365 + 4F7665723D747275653B4973466F63757365643D66616C73650E547269676765 + 72496E7665727365062149734D6F7573654F7665723D66616C73653B4973466F + 63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614436F6C6F72416E696D6174696F6E325374796C650844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846463943313731370754726967676572061F + 4973466F63757365643D747275653B49734D6F7573654F7665723D7472756500 + 000007544C61796F757400095374796C654E616D6506074C61796F7574310541 + 6C69676E070643656E7465720C4D617267696E732E4C65667405000000000000 + 0080FF3F0A53697A652E57696474680500000000000000A002400B53697A652E + 4865696768740500000000000000C001401453697A652E506C6174666F726D44 + 656661756C74080005545061746800095374796C654E616D6506055061746831 + 05416C69676E0706436C69656E7409446174612E506174680A34000000040000 + 00000000000000C8420000C84201000000000096430000C84201000000000048 + 4300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C + 6157686974650748697454657374080A53697A652E5769647468050000000000 + 0000A002400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E650000000000000C5442727573684F626A65637400095374796C654E61 + 6D65060973656C656374696F6E0B42727573682E436F6C6F7207097839363241 + 38324532000007544C61796F757400095374796C654E616D650607636F6E7465 + 6E7405416C69676E0706436C69656E740C4D617267696E732E4C656674050000 + 00000000008000400B4D617267696E732E546F7005000000000000008000400D + 4D617267696E732E52696768740500000000000000F003400E4D617267696E73 + 2E426F74746F6D05000000000000008000400A53697A652E5769647468050000 + 00000000008805400B53697A652E4865696768740500000000000000A8034014 + 53697A652E506C6174666F726D44656661756C74080000005450463007544C61 + 796F757400095374796C654E616D65061E70726F6772657373626172696E6465 + 7465726D696E61626C657374796C6505416C69676E070643656E7465720A5369 + 7A652E5769647468050000000000ABAAB006400B53697A652E48656967687405 + 00000000000000C003401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508000A5452656374616E676C6500095374796C654E616D65 + 060676747261636B05416C69676E0708436F6E74656E747307456E61626C6564 + 080A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000000000E006400B53 + 697A652E48656967687405000000000000009404401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 3531350756697369626C6508000A5452656374616E676C6500095374796C654E + 616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A4669 + 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 + 657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 + 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 + 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73 + 6974696F6E2E590500000000000000F002400A53697A652E5769647468050000 + 0000000000DE06400B53697A652E4865696768740500000000000000A8034014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6500000007544C61796F757400095374796C654E616D65060668 + 747261636B05416C69676E0708436F6E74656E74730A53697A652E5769647468 + 050000000000ABAAB006400B53697A652E4865696768740500000000000000C0 + 03401453697A652E506C6174666F726D44656661756C7408000A545265637461 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 - 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 - 74080C4D617267696E732E4C6566740500000000000000C804C00A53697A652E - 57696474680500000000000000C805400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F - 6E31084475726174696F6E05000000000000000000000C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 30323032300953746F7056616C75650709784646343034303430075472696767 - 6572063049734D6F7573654F7665723D747275653B4973507265737365643D66 - 616C73653B4973466F63757365643D66616C73650E54726967676572496E7665 - 727365063149734D6F7573654F7665723D66616C73653B497350726573736564 - 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 - 416E696D6174696F6E33084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463241383245320953746F7056616C7565070978464631373537 - 39430754726967676572062E4973507265737365643D747275653B49734D6F75 - 73654F7665723D747275653B4973466F63757365643D747275650E5472696767 - 6572496E7665727365062F4973507265737365643D66616C73653B49734D6F75 - 73654F7665723D747275653B4973466F63757365643D74727565000000055454 - 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 - 6E740748697454657374080A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C7408045465787406045465787416546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465000007544C61 - 796F757400095374796C654E616D6506074C61796F75743205416C69676E0704 - 4C6566740A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080005545061746800095374796C654E616D65060469636F6E05 - 416C69676E070643656E74657209446174612E506174680A84070000A0000000 - 000000009A9987429A99074302000000010076429A9907430200000001005E42 - CDCC064302000000343347423433054302000000010030429A99034302000000 - 67661A42CE4C01430200000067660642CECCFC4202000000CECCE4410100F742 - 020000000100C041CECCEF420200000034339F419B99E74202000000CECC7C41 - 6866DF4202000000353343413533D64202000000CECC14413533CC4202000000 - 9A99C9400000C24202000000000080403333B742020000009A991940CDCCAB42 - 02000000CDCC4C3F3333A0420200000000000000333394420200000000000000 - 9A99874202000000000000000100764202000000CDCC4C3F01005E4202000000 - 9A991940CECC4642020000000000804000003042020000009A99C94066661A42 - 020000003333134166660642020000009A994141CCCCE4410200000033337B41 - FFFFBF410200000066669E4132339F41020000003333BF41CACC7C4102000000 - 0000E441313343410200000000000642CACC14410200000066661A429A99C940 - 02000000000030420000804002000000333347429A9919400200000000005E42 - CDCC4C3F020000006666764200000000020000009A9987420000000002000000 - 3433944200000000020000003433A042CDCC4C3F02000000CDCCAB429A991940 - 020000003333B74200008040020000000000C2429A99C940020000003333CC42 - 33331341020000003333D6429A994141020000006666DF4233337B4102000000 - 9999E74266669E4102000000CCCCEF423333BF4102000000FFFFF6420000E441 - 02000000CCCCFC420000064202000000CC4C014300001A420200000099990343 - 9A992F420200000033330543CDCC464202000000CDCC064300005E4202000000 - 999907430000764202000000999907439A998742020000009999074334339442 - 02000000CCCC06433433A0420200000033330543CDCCAB420200000099990343 - 6766B74202000000CD4C01433333C24202000000CCCCFC423433CC4202000000 - FFFFF6423433D64202000000CCCCEF426766DF42020000009999E7429A99E742 - 020000006666DF42CDCCEF42020000003333D6420000F742020000003333CC42 - CDCCFC42020000003333C242CD4C0143020000006666B7429A99034302000000 - CCCCAB4233330543020000003333A042CDCC064302000000333394429A990743 - 020000009A9987429A990743030000009A9987429A990743000000009A998742 - 00001041020000009A9979420000104102000000CECC644233331B4102000000 - CECC50429A99314102000000CECC3C42000048410200000001002A4200006841 - 02000000CECC184200008841020000003433074200009C41020000003633EF41 - CDCCB441020000006966D2419A99D141020000009C99B5416766EE4102000000 - 9C999D41CDCC064202000000D0CC88416666184202000000A099694100002A42 - 02000000A099494166663C42020000003A333341CCCC50420200000033331B41 - 33336542020000000000104100007A4202000000000010419A99874202000000 - 00001041343392420200000033331B41CDCC9C42020000009A993141CDCCA642 - 0200000000004841CDCCB04202000000000068413333BA420200000000008841 - 0000C3420200000000009C41CDCCCB4202000000CDCCB4419A99D34202000000 - 9A99D141CDCCDA42020000006766EE410000E24202000000CDCC06420000E842 - 02000000666618423333ED420200000000002A423333F2420200000066663C42 - 3333F64202000000666650420000F9420200000066666442CDCCFB4202000000 - 333379423333FD4202000000666687423333FD4202000000333392423333FD42 - 0200000099999C42CDCCFB42020000009999A6420000F942020000009999B042 - 3333F64202000000FFFFB9423333F24202000000CCCCC2423333ED4202000000 - 9999CB423333E842020000006666D3420000E242020000009999DA42CDCCDA42 - 02000000CCCCE1429A99D34202000000CCCCE742CDCCCB4202000000FFFFEC42 - 0000C34202000000FFFFF1423333BA4202000000FFFFF5420000B14202000000 - CCCCF8420000A742020000009999FB4200009D4202000000FFFFFC429A999242 - 02000000FFFFFC42CDCC874202000000FFFFFC4200007A42020000009999FB42 - 3433654202000000CCCCF8423433514202000000FFFFF54234333D4202000000 - FFFFF14267662A4202000000FFFFEC42CECC184202000000FFFFE74234330742 - 02000000CCCCE1423633EF41020000009999DA426966D241020000006666D342 - 9C99B541020000009999CB429C999D4102000000CCCCC242D0CC884102000000 - FFFFB942A099694102000000CCCCB042A0994941020000009999A6423A333341 - 02000000CDCC9C4233331B41020000006666924200001041020000009A998742 - 00001041030000009A998742000010410000000033337D42CDCC104201000000 - 9A999042CDCC1042010000009A999042CDCC34420100000034337D42CDCC3442 - 0100000034337D42CDCC10420300000033337D42CDCC10420000000033337D42 - 33335942010000009A99904233335942010000009A9990420000C74201000000 - 34337D420000C7420100000034337D42333359420300000033337D4233335942 - 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A53 - 697A652E57696474680500000000000000D003400B53697A652E486569676874 - 0500000000000000E003401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 - 74000000005450463007544C61796F757400095374796C654E616D65061B6F72 - 67616E697A65746F6F6C627574746F6E6D756C74697669657705416C69676E07 - 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C804401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F7264657202790B46 - 697865644865696768740232000654476C79706800095374796C654E616D6506 - 0A676C7970687374796C650C4D617267696E732E4C6566740500000000000000 - 9002400B4D617267696E732E546F7005000000000000009002400E4D61726769 - 6E732E426F74746F6D050000000000000090024005416C69676E07044C656674 - 0A506F736974696F6E2E5805000000000000009002400A506F736974696F6E2E - 5905000000000000009002400A53697A652E5769647468050000000000000080 - 04400B53697A652E48656967687405000000000000008004401453697A652E50 - 6C6174666F726D44656661756C740800000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E - 740C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080C4D61726769 - 6E732E4C6566740500000000000000C804C00A53697A652E5769647468050000 - 0000000000C805400B53697A652E4865696768740500000000000000C8044014 + 6E0708436F6E74656E74730C436C69704368696C6472656E090A46696C6C2E43 + 6F6C6F720709784646324138324532064C6F636B656409074869745465737408 + 0A53697A652E5769647468050000000000ABAAB006400B53697A652E48656967 + 68740500000000000000C003401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F720709784646313531353135000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E315374796C6507456E61626C656409084475726174696F6E05 + 00000000000000800140044C6F6F70090C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C756507097846463241383245320754726967676572060E4973 + 56697369626C653D7472756500000000005450463007544C61796F7574000953 + 74796C654E616D650611616E69696E64696361746F727374796C6505416C6967 + 6E070643656E7465720756697369626C650800045441726300095374796C654E + 616D65060341726305416C69676E0708436F6E74656E74730748697454657374 + 080D526F746174696F6E416E676C650500000000000000B407400A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F720708636C615768697465105374726F6B652E54686963 + 6B6E657373050000000000000080004008456E64416E676C6505000000000000 + 00B405C0000F54466C6F6174416E696D6174696F6E00095374796C654E616D65 + 0603616E6907456E61626C656409084475726174696F6E050000000000000080 + FF3F044C6F6F70090C50726F70657274794E616D65060D526F746174696F6E41 + 6E676C650A537461727456616C756505000000000000000000000953746F7056 + 616C75650500000000000000B407400754726967676572060E49735669736962 + 6C653D74727565000000005450463007544C61796F757400095374796C654E61 + 6D650615616E69696E64696361746F72686F727A7374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000040C006400B5369 + 7A652E48656967687405000000000000008000401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508000A5452656374616E676C6500 + 095374796C654E616D65060A52656374616E676C653105416C69676E0706436C + 69656E740C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978 + 46463430343034300A53697A652E57696474680500000000000040C006400B53 + 697A652E48656967687405000000000000008000401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000554 + 4C696E6500095374796C654E616D6506054C696E6531084C696E655479706507 + 06426F74746F6D0A53697A652E57696474680500000000000000A00B400B5369 + 7A652E48656967687405000000000000008000401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464632413832 + 4532105374726F6B652E546869636B6E65737305000000000000008002400B53 + 74726F6B652E44617368070444617368000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D650603616E6907456E61626C656409084475726174 + 696F6E0500000000000000800340044C6F6F70090C50726F70657274794E616D + 65060A506F736974696F6E2E580A537461727456616C75650500000000000000 + C808C00953746F7056616C756505000000000000000000000754726967676572 + 060E497356697369626C653D7472756500000000005450463007544C61796F75 + 7400095374796C654E616D65060A70616E656C7374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000C006400B53697A + 652E4865696768740500000000000000A406401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A65 + 2E57696474680500000000000000C006400B53697A652E486569676874050000 + 0000000000A406401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 + 095374796C654E616D65060E6C6F67627574746F6E7374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000000C005400B53 + 697A652E4865696768740500000000000000C005401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070643 + 6C69656E740C436C69704368696C6472656E090A436C6970506172656E74090A + 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 + 697A652E57696474680500000000000000C005400B53697A652E486569676874 + 0500000000000000C005401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E31084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E32084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463430343034300953746F7056616C75650709784646 + 3137353739430754726967676572062F4973507265737365643D747275653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463241383245320953746F7056616C7565 + 07097846463137353739430754726967676572062E4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 7275650E54726967676572496E7665727365062F4973507265737365643D6661 + 6C73653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 727565000005545061746800095374796C654E616D650605506174683105416C + 69676E0706436C69656E7409446174612E506174680A5C020000320000000000 + 00000000A841CDCCCC40010000000000A8410000C041010000000000C03F0000 + C041010000000000C03F00000000010000009A99694100000000010000000000 + A841CDCCCC40030000000000A841CDCCCC400000000000009C410000F0400100 + 0000000058410000F04001000000000058410000C03F01000000000040400000 + C03F01000000000040400000B4410100000000009C410000B441010000000000 + 9C410000F0400300000000009C410000F04000000000000040410000F0400100 + 0000000090400000F04001000000000090400000C04001000000000040410000 + C04001000000000040410000F04003000000000040410000F040000000000000 + 9040000010410100000000009041000010410100000000009041000028410100 + 0000000090400000284101000000000090400000104103000000000090400000 + 1041000000000000904000004041010000000000904100004041010000000000 + 9041000058410100000000009040000058410100000000009040000040410300 + 0000000090400000404100000000000090400000704101000000000090410000 + 7041010000000000904100008441010000000000904000008441010000000000 + 9040000070410300000000009040000070410000000000009040000090410100 + 00000000904100009041010000000000904100009C4101000000000090400000 + 9C41010000000000904000009041030000000000904000009041000000000000 + 70410000C04001000000333393410000C0400100000000007041666626400100 + 0000000070410000C04003000000000070410000C0400A46696C6C2E436F6C6F + 720708636C6157686974650748697454657374080C4D617267696E732E4C6566 + 740500000000000000A002400B4D617267696E732E546F700500000000000000 + A002400D4D617267696E732E52696768740500000000000000A002400E4D6172 + 67696E732E426F74746F6D0500000000000000A002400A53697A652E57696474 + 6805000000000000009805400B53697A652E4865696768740500000000000000 + 9805401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6508577261704D6F6465070346697400000000545046 + 3007544C61796F757400095374796C654E616D65061470726F67726573736261 + 726D696E697374796C6505416C69676E070643656E7465720A53697A652E5769 + 64746805000000000033338505400B53697A652E486569676874050000000000 + 9999E104401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D650606687472 + 61636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 784646343034303430064C6F636B6564090748697454657374080A53697A652E + 576964746805000000000033338505400B53697A652E48656967687405000000 + 00009999E104401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009537479 + 6C654E616D65060A68696E64696361746F7205416C69676E07044C6566740A46 + 696C6C2E436F6C6F720709784646324138324532064C6F636B65640907486974 + 54657374080A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452 + 656374616E676C6500095374796C654E616D65060676747261636B05416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430343034 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650615627574746F6E436F6C6F72416E696D6174696F6E31084475726174 - 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C - 6C2E436F6C6F720A537461727456616C75650709784646323032303230095374 - 6F7056616C756507097846463430343034300754726967676572063049734D6F - 7573654F7665723D747275653B4973507265737365643D66616C73653B497346 - 6F63757365643D66616C73650E54726967676572496E7665727365063149734D - 6F7573654F7665723D66616C73653B4973507265737365643D66616C73653B49 - 73466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F - 6E33084475726174696F6E05000000000000000000000C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 41383245320953746F7056616C75650709784646313735373943075472696767 - 6572062E4973507265737365643D747275653B49734D6F7573654F7665723D74 - 7275653B4973466F63757365643D747275650E54726967676572496E76657273 - 65062F4973507265737365643D66616C73653B49734D6F7573654F7665723D74 - 7275653B4973466F63757365643D747275650000000554546578740009537479 - 6C654E616D6506047465787405416C69676E0706436C69656E74074869745465 - 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000000000C804401453697A652E506C6174666F726D4465 - 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 - 6C615768697465000007544C61796F757400095374796C654E616D6506074C61 - 796F75743205416C69676E07044C6566740A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000C804401453 - 697A652E506C6174666F726D44656661756C7408000554506174680009537479 - 6C654E616D65060469636F6E05416C69676E070643656E74657209446174612E - 506174680AD000000011000000000000009A99E9409A99C94001000000666666 - 4066661E4101000000000000009A99C940010000000000003F9A99B940010000 - 00CDCC4C409A99094101000000CDCC4C40000000000100000000008040000000 - 00010000000000804000000841010000006666D6406666B640010000009A99E9 - 409A99C940030000009A99E9409A99C940000000009A99993E00004041010000 - 009A99993E33333341010000000000E04033333341010000000000E040000040 - 41010000009A99993E00004041030000009A99993E000040410A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080A53697A652E576964 - 74680500000000000000D003400B53697A652E48656967687405000000000000 - 00E003401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E6508577261704D6F64650703466974000000005450 - 463007544C61796F757400095374796C654E616D65061B73657474696E677374 - 6F6F6C627574746F6E6D756C74697669657705416C69676E070643656E746572 + 6407044E6F6E65000A5452656374616E676C6500095374796C654E616D65060A + 76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F + 6C6F720709784646324138324532064C6F636B6564090748697454657374080A + 506F736974696F6E2E5905000000000099998D04400A53697A652E5769647468 + 05000000000033338505400B53697A652E4865696768740500000000000000A8 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000000005450463007544C61796F757400095374796C + 654E616D65061B7472656576696577657870616E646572627574746F6E737479 + 6C6505416C69676E070643656E7465720B4D617267696E732E546F7005000000 + 0000000080FF3F0A53697A652E57696474680500000000000000B003400B5369 + 7A652E4865696768740500000000000000B003401453697A652E506C6174666F + 726D44656661756C74080756697369626C65080005545061746800095374796C + 654E616D650605506174683105416C69676E070643656E74657209446174612E + 506174680A3400000004000000000000000000C8420000C84201000000000096 + 430000C842010000000000484300009643030000000000C8420000C8420A4669 + 6C6C2E436F6C6F720708636C6157686974650748697454657374080D526F7461 + 74696F6E416E676C650500000000000000B405C00A53697A652E576964746805 + 00000000000000A002400B53697A652E4865696768740500000000000000C001 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C + 654E616D650614466C6F6174416E696D6174696F6E315374796C650844757261 + 74696F6E05000000000000000000000D496E746572706F6C6174696F6E070843 + 697263756C61720C50726F70657274794E616D65060D526F746174696F6E416E + 676C650A537461727456616C75650500000000000000B405C00953746F705661 + 6C756505000000000000000000000754726967676572060F4973457870616E64 + 65643D747275650E54726967676572496E766572736506104973457870616E64 + 65643D66616C736500000000545046300A5452656374616E676C650009537479 + 6C654E616D65061174726565766965776974656D7374796C6505416C69676E07 + 0643656E7465720946696C6C2E4B696E6407044E6F6E65074869745465737408 + 0553696465730B06426F74746F6D000A53697A652E5769647468050000000000 + 0000AE05400B53697A652E4865696768740500000000000000A004401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 097846463135313531350756697369626C6508000C545370656564427574746F + 6E00095374796C654E616D650606627574746F6E05416C69676E07044C656674 + 0A53697A652E57696474680500000000000000A003400B53697A652E48656967 + 68740500000000000000A004401453697A652E506C6174666F726D4465666175 + 6C74080B5374796C654C6F6F6B7570061B7472656576696577657870616E6465 + 72627574746F6E7374796C65000007544C61796F75740005416C69676E070843 + 6F6E74656E74730C4D617267696E732E4C6566740500000000000000A003400A + 53697A652E576964746805000000000000008605400B53697A652E4865696768 + 740500000000000000A004401453697A652E506C6174666F726D44656661756C + 7408000954436865636B426F7800095374796C654E616D650605636865636B05 + 416C69676E07044C6566740843616E466F637573081244697361626C65466F63 + 7573456666656374090A53697A652E57696474680500000000000000A003400B + 53697A652E4865696768740500000000000000A004401453697A652E506C6174 + 666F726D44656661756C740800000654476C79706800095374796C654E616D65 + 060A676C7970687374796C650C4D617267696E732E4C65667405000000000000 + 008000400B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E526967687405000000000000008000400E4D617267696E732E426F74 + 746F6D050000000000000080FF3F05416C69676E07044C6566740A506F736974 + 696F6E2E580500000000000000B003400A506F736974696F6E2E590500000000 + 00000080FF3F0A53697A652E576964746805000000000000008003400B53697A + 652E48656967687405000000000000009804401453697A652E506C6174666F72 + 6D44656661756C7408000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080A53697A652E57696474680500000000000000BC04400B53697A652E486569 + 6768740500000000000000A004401453697A652E506C6174666F726D44656661 + 756C74080454657874060454657874165465787453657474696E67732E466F6E + 74436F6C6F720708636C615768697465155465787453657474696E67732E576F + 72645772617008165465787453657474696E67732E486F727A416C69676E0707 + 4C656164696E670000000A5452656374616E676C650005416C69676E07074669 + 744C6566740946696C6C2E4B696E6407044E6F6E650748697454657374080E4D + 617267696E732E426F74746F6D050000000000000080FF3F0553696465730B04 + 4C656674000A53697A652E5769647468050000000000986F8905400B53697A65 + 2E48656967687405000000000000009C04401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646324138324532 + 105374726F6B652E546869636B6E657373050000000000000080004000000054 + 50463007544C61796F757400095374796C654E616D65060D7472656576696577 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 000000000000E106400B53697A652E4865696768740500000000000080810740 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 + 0C5442727573684F626A65637400095374796C654E616D650618416C7465726E + 6174696E67526F774261636B67726F756E640B42727573682E436F6C6F720709 + 78304646464646464600000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080C50616464696E672E4C656674050000000000000080FF3F0D506164 + 64696E672E5269676874050000000000000080FF3F0A53697A652E5769647468 + 0500000000000000E106400B53697A652E486569676874050000000000008081 + 07401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F7207097846463135313531350007544C61796F757400095374796C65 + 4E616D650607636F6E74656E7405416C69676E0706436C69656E740C436C6970 + 4368696C6472656E090B4D617267696E732E546F70050000000000000080FF3F + 0A53697A652E57696474680500000000000000CD06400B53697A652E48656967 + 68740500000000000000F006401453697A652E506C6174666F726D4465666175 + 6C7408000A5452656374616E676C6500095374796C654E616D65060973656C65 + 6374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454 + 657374080A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54526563 + 74616E676C6500095374796C654E616D650610666F637573656473656C656374 + 696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B652E44 + 6173680703446F740000000A545363726F6C6C42617200095374796C654E616D + 65060A767363726F6C6C62617205416C69676E070552696768740B536D616C6C + 4368616E676505000000000000000000000B4F7269656E746174696F6E070856 + 6572746963616C0C4D617267696E732E4C65667405000000000000008000400A + 506F736974696F6E2E580500000000000000D006400A53697A652E5769647468 + 05000000000000008003400B53697A652E4865696768740500000000000000F1 + 06401453697A652E506C6174666F726D44656661756C740800000A545363726F + 6C6C42617200095374796C654E616D65060A687363726F6C6C62617205416C69 + 676E0706426F74746F6D0B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E + 732E546F7005000000000000008000400A506F736974696F6E2E580500000000 + 00000080FF3F0A506F736974696F6E2E590500000000000000F306400A53697A + 652E57696474680500000000000000DF06400B53697A652E4865696768740500 + 0000000000008003401453697A652E506C6174666F726D44656661756C740800 + 000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F7673 + 6D616C6C7363726F6C6C62617205416C69676E070552696768740B536D616C6C + 4368616E676505000000000000000000000B4F7269656E746174696F6E070856 + 6572746963616C0C4D617267696E732E4C65667405000000000000008000400A + 506F736974696F6E2E580500000000000000C605400A506F736974696F6E2E59 + 05000000000000008000400A53697A652E576964746805000000000000008002 + 400B53697A652E48656967687405000000000000008002401453697A652E506C + 6174666F726D44656661756C74080756697369626C650800000F54536D616C6C + 5363726F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F + 6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505 + 000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74 + 616C0B4D617267696E732E546F7005000000000000008000400A506F73697469 + 6F6E2E5805000000000000008000400A506F736974696F6E2E59050000000000 + 0000E205400A53697A652E576964746805000000000000009606400B53697A65 + 2E48656967687405000000000000008002401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508000000005450463007544C61796F75 + 7400095374796C654E616D650619616374696F6E746F6F6C627574746F6E6D75 + 6C74697669657705416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C805400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F72646572027C0B46697865644865696768740232000654476C79 + 706800095374796C654E616D65060A676C7970687374796C650C4D617267696E + 732E4C65667405000000000000009002400B4D617267696E732E546F70050000 + 00000000009002400E4D617267696E732E426F74746F6D050000000000000090 + 024005416C69676E07044C6566740A506F736974696F6E2E5805000000000000 + 009002400A506F736974696F6E2E5905000000000000009002400A53697A652E + 576964746805000000000000008004400B53697A652E48656967687405000000 + 000000008004401453697A652E506C6174666F726D44656661756C740800000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0706436C69656E740C436C69704368696C6472656E090A436C + 6970506172656E74090A46696C6C2E436F6C6F72070978464632303230323007 + 48697454657374080C4D617267696E732E4C6566740500000000000000C804C0 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508085461624F72646572027A0B4669786564486569 - 6768740232000654476C79706800095374796C654E616D65060A676C79706873 - 74796C650C4D617267696E732E4C65667405000000000000009002400B4D6172 - 67696E732E546F7005000000000000009002400E4D617267696E732E426F7474 - 6F6D050000000000000090024005416C69676E07044C6566740A506F73697469 - 6F6E2E5805000000000000009002400A506F736974696F6E2E59050000000000 - 00009002400A53697A652E576964746805000000000000008004400B53697A65 - 2E48656967687405000000000000008004401453697A652E506C6174666F726D - 44656661756C740800000A5452656374616E676C6500095374796C654E616D65 - 060A6261636B67726F756E6405416C69676E0706436C69656E740C436C697043 - 68696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080C4D617267696E732E4C656674 - 0500000000000000C804C00A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 - 74746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 - 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463230323032300953746F7056616C7565 - 07097846463430343034300754726967676572063049734D6F7573654F766572 - 3D747275653B4973507265737365643D66616C73653B4973466F63757365643D - 66616C73650E54726967676572496E7665727365063149734D6F7573654F7665 - 723D66616C73653B4973507265737365643D66616C73653B4973466F63757365 - 643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C65 - 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E330844757261 - 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 - 6C6C2E436F6C6F720A537461727456616C756507097846463241383245320953 - 746F7056616C756507097846463137353739430754726967676572062E497350 - 7265737365643D747275653B49734D6F7573654F7665723D747275653B497346 - 6F63757365643D747275650E54726967676572496E7665727365062F49735072 - 65737365643D66616C73653B49734D6F7573654F7665723D747275653B497346 - 6F63757365643D7472756500000005545465787400095374796C654E616D6506 - 047465787405416C69676E0706436C69656E740748697454657374080A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C740804 - 54657874060454657874165465787453657474696E67732E466F6E74436F6C6F - 720708636C615768697465000007544C61796F757400095374796C654E616D65 - 06074C61796F75743205416C69676E07044C6566740A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 04401453697A652E506C6174666F726D44656661756C74080005545061746800 - 095374796C654E616D65060469636F6E05416C69676E070643656E7465720944 - 6174612E506174680A540D00001C01000000000000333351423333E741020000 - 0033335142CDCCE84102000000333351426666EA4102000000333351423333EB - 410200000033335142CDCCEC4102000000333351426666EE4102000000333351 - 423333EF410200000033335142CDCCF04102000000333351426666F241020000 - 00333351423333F3410200000033335142CDCCF44102000000333351426666F6 - 4102000000333351423333F7410100000099996F4266660E4201000000CDCC5C - 4200003C420100000000003A4200003442020000000000384200003642020000 - 000000364200003842020000000000344200003A420100000000003C42CDCC5C - 4201000000CDCC0E429A996F42010000000000F84133335142020000006666F6 - 413333514202000000CDCCF44133335142020000000000F44133335142020000 - 006666F2413333514202000000CDCCF04133335142020000000000F041333351 - 42020000006666EE413333514202000000CDCCEC4133335142020000000000EC - 4133335142020000006666EA413333514202000000CDCCE84133335142020000 - 000000E84133335142010000006666C24199996F4201000000FFFF4F41CCCC5C - 4201000000FFFF6F41FFFF394202000000FFFF6741FFFF374202000000FFFF5F - 41FFFF354202000000FFFF5741FFFF33420100000098999940FFFF3B42010000 - 0000000000CDCC0E42010000003333F3400000F841020000003333F3406666F6 - 41020000003333F340CDCCF441020000003333F3400000F441020000003333F3 - 406666F241020000003333F340CDCCF041020000003333F3400000F041020000 - 003333F3406666EE41020000003333F340CDCCEC41020000003333F3400000EC - 41020000003333F3406666EA41020000003333F340CDCCE841020000003333F3 - 400000E8410100000000000000CDCCC0410100000066669640CDCC4C41010000 - 0066665641CDCC6C410200000066665E41CDCC64410200000066666641CDCC5C - 410200000066666E41CDCC54410100000066664E413433934001000000CDCCC0 - 4100000000010000006666E6413333F340020000000000E8413333F340020000 - 009999E9413333F340020000006666EA413333F340020000000000EC413333F3 - 40020000009999ED413333F340020000006666EE413333F340020000000000F0 - 413333F340020000009999F1413333F340020000006666F2413333F340020000 - 000000F4413333F340020000009999F5413333F340020000006666F6413333F3 - 4001000000CDCC0E42000000000100000000003C426666964001000000000034 - 4266665641020000000000364266665E41020000000000384266666641020000 - 0000003A4266666E4101000000CDCC5C4266664E41010000009A996F429A99C1 - 4101000000333351423333E74103000000333351423333E74100000000333343 - 42CDCC02420200000033334342CDCC004202000000999943426766FE41020000 - 00999943426766FA4102000000999943426766F64102000000FFFF43423433F3 - 4102000000FFFF43423433EF4102000000FFFF43423433EB4102000000FFFF43 - 420100E84102000000999943420100E44102000000999943420100E041020000 - 0033334342CECCDC410200000033334342CECCD84101000000CDCC5E426866B6 - 4101000000CDCC54429B99854101000000CDCC3442CECC944102000000676632 - 4234338F4102000000000030429B9989410200000033332D4201008441020000 - 0066662A42CECC7C4102000000000028423533734102000000CDCC24429C9969 - 410100000067662C423833D34001000000010014423833834001000000676602 - 4202003041020000006766004202003041020000009B99FD4168662E41020000 - 009B99F94168662E41020000009B99F54168662E41020000006866F241CECC2C - 41020000006866EE41CECC2C41020000006866EA41CECC2C41020000003533E7 - 41CECC2C41020000003533E34168662E41020000003533DF4168662E41020000 - 000200DC4102003041020000000200D84102003041010000009C99B541373383 - 4001000000CFCC84413733D34001000000020094419C9969410200000068668E - 413633734102000000CFCC8841CFCC7C41020000003533834101008441020000 - 0036337B419A998941020000009D99714167668E410200000004006841CECC94 - 41010000000800D0409B99854101000000080080406866B641010000006A662E - 419B99D941020000006A662E419B99DD4102000000D0CC2C41CECCE041020000 - 00D0CC2C41CECCE44102000000D0CC2C41CECCE8410200000036332B410100EC - 410200000036332B410100F0410200000036332B410100F4410200000036332B - 413433F74102000000D0CC2C413433FB4102000000D0CC2C413433FF41020000 - 006A662E4134330142020000006A662E41343303420100000007008040676614 - 42010000000700D040CDCC2C42010000000400684133332542020000009E9971 - 41000028420200000037337B41CDCC2A42020000003533834199992D42020000 - 00CECC884165663042020000009B998D41CCCC32420200000002009441333335 - 4201000000CFCC844133335542010000009C99B54133335F4201000000CFCCD8 - 419999434202000000CFCCDC4199994342020000000200E041FFFF4342020000 - 000200E441FFFF4342020000000200E841FFFF4342020000003533EB41656644 - 42020000003533EF4165664442020000003533F34165664442020000006866F6 - 4165664442020000006866FA41FFFF4342020000006866FE41FFFF4342020000 - 00CECC00429999434202000000CECC024299994342010000000100144233335F - 420100000067662C423333554201000000CDCC244233333542020000009A9927 - 42CDCC32420200000067662A42666630420200000033332D4299992D42020000 - 00FFFF2F42CCCC2A4202000000666632426666284202000000CDCC3442333325 - 4201000000CDCC5442CDCC2C4201000000CDCC5E426766144201000000333343 - 42CDCC02420300000033334342CDCC0242000000003333EF4133339741020000 - 003333FB4133339741020000009A9903429999994102000000CDCC084266669E - 410200000000000E423333A34102000000CDCC12429999A94102000000CDCC16 - 429999B14102000000CDCC1A429999B9410200000000001E423333C341020000 - 00676620429999CD4102000000CDCC2242FFFFD7410200000001002442FFFFE3 - 4102000000010024420000F04102000000010024420100FC4102000000CECC22 - 42000004420200000067662042333309420200000001001E4266660E42020000 - 00CDCC1A423333134202000000CDCC16423333174202000000CDCC124233331B - 420200000000000E4266661E4202000000CDCC0842CDCC2042020000009A9903 - 4233332342020000003433FB4167662442020000003433EF4167662442020000 - 003433E34167662442020000003433D7413433234202000000CECCCC41CDCC20 - 42020000006866C24167661E4202000000CECCB84133331B4202000000CECCB0 - 413333174202000000CECCA84133331342020000006866A24166660E42020000 - 009B999D413333094202000000CECC98410000044202000000686696410000FC - 4102000000686696410000F04102000000686696410000E44102000000CECC98 - 410000D841020000009B999D419A99CD41020000006866A2413433C341020000 - 00CECCA8419A99B94102000000CECCB0419A99B14102000000CECCB8419A99A9 - 41020000006866C2413433A34102000000CECCCC4167669E41020000000000D8 - 419A999941020000003333E34133339741020000003333EF4133339741030000 - 003333EF4133339741000000003333EF41CDCC1642020000000000F841CDCC16 - 42020000000000004200001642020000009A9903426766144202000000343307 - 42CDCC124202000000CDCC0A4267661042020000009A990D429A990D42020000 - 0067661042CDCC0A4202000000CDCC12429A99074202000000676614429A9903 - 4202000000010016420000004202000000CDCC16423433F74102000000CDCC16 - 423433EF4102000000CDCC16426766E64102000000000016426766DE41020000 - 00676614423433D74102000000CDCC12420100D0410200000067661042CECCC8 - 41020000009A990D423433C34102000000CDCC0A429A99BD41020000009A9907 - 42CECCB841020000009A9903429A99B54102000000000000426766B241020000 - 003433F741CDCCB041020000003433EF41CDCCB041020000006766E641CDCCB0 - 41020000006766DE416766B241020000003433D7419A99B541020000000100D0 - 41CDCCB84102000000CECCC8419A99BD41020000003433C3413433C341020000 - 009A99BD41CECCC84102000000CECCB8413433CF41020000009A99B5413433D7 - 41020000006766B2416766DE4102000000CDCCB0413433E74102000000CDCCB0 - 413433EF4102000000CDCCB0410100F841020000006766B24100000042020000 - 009A99B5419A99034202000000CDCCB84134330742020000009A99BD41CDCC0A - 42020000003433C3419A990D4202000000CECCC84167661042020000003433CF - 41CDCC1242020000003433D74167661442020000003333DF4100001642020000 - 003333E741CDCC1642020000003333EF41CDCC1642030000003333EF41CDCC16 - 420A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A - 53697A652E57696474680500000000000000D003400B53697A652E4865696768 - 740500000000000000E003401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346 - 6974000000005450463007544C61796F757400095374796C654E616D65061172 - 656D6F7665627574746F6E7374796C6505416C69676E070643656E7465720A53 - 697A652E57696474680500000000000000C805400B53697A652E486569676874 - 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508085461624F72646572027D0B46697865644865696768 - 740218000654476C79706800095374796C654E616D65060A676C797068737479 - 6C650C4D617267696E732E4C65667405000000000000009002400B4D61726769 - 6E732E546F7005000000000000009002400E4D617267696E732E426F74746F6D - 050000000000000090024005416C69676E07044C6566740A506F736974696F6E - 2E5805000000000000008404400A506F736974696F6E2E590500000000000000 - 9002400A53697A652E576964746805000000000000008004400B53697A652E48 - 65696768740500000000000000C001401453697A652E506C6174666F726D4465 - 6661756C740800000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E0706436C69656E740C436C6970436869 - 6C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978 - 46463230323032300748697454657374080C4D617267696E732E4C6566740500 - 000000000000C003C00A53697A652E57696474680500000000000000C805400B + 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646343034303430 + 0754726967676572063049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C73650E5472696767 + 6572496E7665727365063149734D6F7573654F7665723D66616C73653B497350 + 7265737365643D66616C73653B4973466F63757365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463241383245320953746F7056616C7565070978 + 46463137353739430754726967676572062E4973507265737365643D74727565 + 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 + 0E54726967676572496E7665727365062F4973507265737365643D66616C7365 + 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 0706436C69656E740748697454657374080A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F720708636C615768697465000007544C61796F757400 + 095374796C654E616D6506074C61796F75743205416C69676E07044C6566740A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080005545061746800095374796C654E616D65060469636F6E05416C69676E + 070643656E74657209446174612E506174680A18010000170000000000000000 + 00C03F0000C03F01000000000000000000000001000000000040400000000001 + 0000000000C03F0000C03F030000000000C03F0000C03F000000000000904000 + 0000000100000000004041000000000100000000004041CDCC4C3F0100000000 + 009040CDCC4C3F01000000000090400000000003000000000090400000000000 + 0000000000904033337340010000000000904000004040010000000000404100 + 0040400100000000004041333373400100000000009040333373400300000000 + 0090403333734000000000000090409A99D94001000000000090400000C04001 + 000000000040410000C04001000000000040419A99D94001000000000090409A + 99D94003000000000090409A99D9400A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080A53697A652E57696474680500000000000000 + D003400B53697A652E4865696768740500000000000000E003401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E6508577261704D6F64650703466974000000005450463007544C61796F7574 + 00095374796C654E616D65060E616464627574746F6E7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000C805400B 53697A652E4865696768740500000000000000C003401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 - 6F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463230323032300953746F7056616C75650709 - 7846463430343034300754726967676572063049734D6F7573654F7665723D74 - 7275653B4973507265737365643D66616C73653B4973466F63757365643D6661 - 6C73650E54726967676572496E7665727365063149734D6F7573654F7665723D - 66616C73653B4973507265737365643D66616C73653B4973466F63757365643D - 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650615627574746F6E436F6C6F72416E696D6174696F6E3308447572617469 - 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463241383245320953746F - 7056616C756507097846463137353739430754726967676572062E4973507265 - 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 - 757365643D747275650E54726967676572496E7665727365062F497350726573 - 7365643D66616C73653B49734D6F7573654F7665723D747275653B4973466F63 - 757365643D7472756500000005545465787400095374796C654E616D65060474 - 65787405416C69676E0706436C69656E740748697454657374080A53697A652E - 576964746805000000000000009805400B53697A652E48656967687405000000 - 00000000C003401453697A652E506C6174666F726D44656661756C7408045465 - 7874060454657874165465787453657474696E67732E466F6E74436F6C6F7207 - 08636C615768697465000007544C61796F757400095374796C654E616D650607 - 4C61796F75743205416C69676E07044C6566740A53697A652E57696474680500 - 000000000000C003400B53697A652E4865696768740500000000000000C00340 - 1453697A652E506C6174666F726D44656661756C740800055450617468000953 - 74796C654E616D65060469636F6E05416C69676E0708436F6E74656E74730944 - 6174612E506174680A4C000000060000000000000000004041CDCC4C3F010000 - 0000000000CDCC4C3F0100000000000000000000000100000000004041000000 - 000100000000004041CDCC4C3F0300000000004041CDCC4C3F0A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080C4D617267696E732E - 4C65667405000000000000008001400B4D617267696E732E546F700500000000 - 0000008001400D4D617267696E732E526967687405000000000000008001400E - 4D617267696E732E426F74746F6D05000000000000008001400A53697A652E57 - 6964746805000000000000008003400B53697A652E4865696768740500000000 - 0000008003401453697A652E506C6174666F726D44656661756C74080B537472 + 666F726D44656661756C74080756697369626C6508085461624F72646572027E + 0B46697865644865696768740218000654476C79706800095374796C654E616D + 65060A676C7970687374796C650C4D617267696E732E4C656674050000000000 + 00009002400B4D617267696E732E546F7005000000000000009002400E4D6172 + 67696E732E426F74746F6D050000000000000090024005416C69676E07044C65 + 66740A506F736974696F6E2E5805000000000000009002400A506F736974696F + 6E2E5905000000000000009002400A53697A652E576964746805000000000000 + 008004400B53697A652E48656967687405000000000000008004401453697A65 + 2E506C6174666F726D44656661756C740800000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69 + 656E740C436C69704368696C6472656E090A436C6970506172656E74090A4669 + 6C6C2E436F6C6F7207097846463230323032300748697454657374080C4D6172 + 67696E732E4C6566740500000000000000C003C00A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C003 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206304973 + 4D6F7573654F7665723D747275653B4973507265737365643D66616C73653B49 + 73466F63757365643D66616C73650E54726967676572496E7665727365063149 + 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 + 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E33084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463241383245320953746F7056616C7565070978464631373537394307547269 + 67676572062E4973507265737365643D747275653B49734D6F7573654F766572 + 3D747275653B4973466F63757365643D747275650E54726967676572496E7665 + 727365062F4973507265737365643D66616C73653B49734D6F7573654F766572 + 3D747275653B4973466F63757365643D74727565000000055454657874000953 + 74796C654E616D6506047465787405416C69676E0706436C69656E7407486974 + 54657374080A53697A652E576964746805000000000000009805400B53697A65 + 2E4865696768740500000000000000C003401453697A652E506C6174666F726D + 44656661756C74080454657874060454657874165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C615768697465000007544C61796F75740009 + 5374796C654E616D6506074C61796F75743205416C69676E07044C6566740A53 + 697A652E57696474680500000000000000C003400B53697A652E486569676874 + 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 + 080005545061746800095374796C654E616D65060469636F6E05416C69676E07 + 08436F6E74656E747309446174612E506174680AAC0000000E00000000000000 + CDCC34410000C040010000000000C0400000C040010000000000C040CDCC3441 + 010000009A99A940CDCC3441010000009A99A9400000C0400100000000000000 + 0000C04001000000000000009A99A940010000009A99A9409A99A94001000000 + 9A99A94000000000010000000000C04000000000010000000000C0409A99A940 + 01000000CDCC34419A99A94001000000CDCC34410000C04003000000CDCC3441 + 0000C0400A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080C4D617267696E732E4C65667405000000000000008001400B4D61726769 + 6E732E546F7005000000000000008001400D4D617267696E732E526967687405 + 000000000000008001400E4D617267696E732E426F74746F6D05000000000000 + 008001400A53697A652E576964746805000000000000008003400B53697A652E + 48656967687405000000000000008003401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F + 64650703466974000000005450463007544C61796F757400095374796C654E61 + 6D650617696E666F746F6F6C627574746F6E6D756C74697669657705416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F72646572027B + 0B46697865644865696768740232000654476C79706800095374796C654E616D + 65060A676C7970687374796C650C4D617267696E732E4C656674050000000000 + 00009002400B4D617267696E732E546F7005000000000000009002400E4D6172 + 67696E732E426F74746F6D050000000000000090024005416C69676E07044C65 + 66740A506F736974696F6E2E5805000000000000009002400A506F736974696F + 6E2E5905000000000000009002400A53697A652E576964746805000000000000 + 008004400B53697A652E48656967687405000000000000008004401453697A65 + 2E506C6174666F726D44656661756C740800000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69 + 656E740C436C69704368696C6472656E090A436C6970506172656E74090A4669 + 6C6C2E436F6C6F7207097846463230323032300748697454657374080C4D6172 + 67696E732E4C6566740500000000000000C804C00A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206304973 + 4D6F7573654F7665723D747275653B4973507265737365643D66616C73653B49 + 73466F63757365643D66616C73650E54726967676572496E7665727365063149 + 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 + 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E33084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463241383245320953746F7056616C7565070978464631373537394307547269 + 67676572062E4973507265737365643D747275653B49734D6F7573654F766572 + 3D747275653B4973466F63757365643D747275650E54726967676572496E7665 + 727365062F4973507265737365643D66616C73653B49734D6F7573654F766572 + 3D747275653B4973466F63757365643D74727565000000055454657874000953 + 74796C654E616D6506047465787405416C69676E0706436C69656E7407486974 + 54657374080A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080454657874060454657874165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C615768697465000007544C61796F75740009 + 5374796C654E616D6506074C61796F75743205416C69676E07044C6566740A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080005545061746800095374796C654E616D65060469636F6E05416C69676E07 + 0643656E74657209446174612E506174680A84070000A0000000000000009A99 + 87429A99074302000000010076429A9907430200000001005E42CDCC06430200 + 0000343347423433054302000000010030429A9903430200000067661A42CE4C + 01430200000067660642CECCFC4202000000CECCE4410100F742020000000100 + C041CECCEF420200000034339F419B99E74202000000CECC7C416866DF420200 + 0000353343413533D64202000000CECC14413533CC42020000009A99C9400000 + C24202000000000080403333B742020000009A991940CDCCAB4202000000CDCC + 4C3F3333A04202000000000000003333944202000000000000009A9987420200 + 0000000000000100764202000000CDCC4C3F01005E42020000009A991940CECC + 4642020000000000804000003042020000009A99C94066661A42020000003333 + 134166660642020000009A994141CCCCE4410200000033337B41FFFFBF410200 + 000066669E4132339F41020000003333BF41CACC7C41020000000000E4413133 + 43410200000000000642CACC14410200000066661A429A99C940020000000000 + 30420000804002000000333347429A9919400200000000005E42CDCC4C3F0200 + 00006666764200000000020000009A9987420000000002000000343394420000 + 0000020000003433A042CDCC4C3F02000000CDCCAB429A991940020000003333 + B74200008040020000000000C2429A99C940020000003333CC42333313410200 + 00003333D6429A994141020000006666DF4233337B41020000009999E7426666 + 9E4102000000CCCCEF423333BF4102000000FFFFF6420000E44102000000CCCC + FC420000064202000000CC4C014300001A4202000000999903439A992F420200 + 000033330543CDCC464202000000CDCC064300005E4202000000999907430000 + 764202000000999907439A99874202000000999907433433944202000000CCCC + 06433433A0420200000033330543CDCCAB4202000000999903436766B7420200 + 0000CD4C01433333C24202000000CCCCFC423433CC4202000000FFFFF6423433 + D64202000000CCCCEF426766DF42020000009999E7429A99E742020000006666 + DF42CDCCEF42020000003333D6420000F742020000003333CC42CDCCFC420200 + 00003333C242CD4C0143020000006666B7429A99034302000000CCCCAB423333 + 0543020000003333A042CDCC064302000000333394429A990743020000009A99 + 87429A990743030000009A9987429A990743000000009A998742000010410200 + 00009A9979420000104102000000CECC644233331B4102000000CECC50429A99 + 314102000000CECC3C42000048410200000001002A420000684102000000CECC + 184200008841020000003433074200009C41020000003633EF41CDCCB4410200 + 00006966D2419A99D141020000009C99B5416766EE41020000009C999D41CDCC + 064202000000D0CC88416666184202000000A099694100002A4202000000A099 + 494166663C42020000003A333341CCCC50420200000033331B41333365420200 + 00000000104100007A4202000000000010419A99874202000000000010413433 + 92420200000033331B41CDCC9C42020000009A993141CDCCA642020000000000 + 4841CDCCB04202000000000068413333BA4202000000000088410000C3420200 + 000000009C41CDCCCB4202000000CDCCB4419A99D342020000009A99D141CDCC + DA42020000006766EE410000E24202000000CDCC06420000E842020000006666 + 18423333ED420200000000002A423333F2420200000066663C423333F6420200 + 0000666650420000F9420200000066666442CDCCFB4202000000333379423333 + FD4202000000666687423333FD4202000000333392423333FD42020000009999 + 9C42CDCCFB42020000009999A6420000F942020000009999B0423333F6420200 + 0000FFFFB9423333F24202000000CCCCC2423333ED42020000009999CB423333 + E842020000006666D3420000E242020000009999DA42CDCCDA4202000000CCCC + E1429A99D34202000000CCCCE742CDCCCB4202000000FFFFEC420000C3420200 + 0000FFFFF1423333BA4202000000FFFFF5420000B14202000000CCCCF8420000 + A742020000009999FB4200009D4202000000FFFFFC429A99924202000000FFFF + FC42CDCC874202000000FFFFFC4200007A42020000009999FB42343365420200 + 0000CCCCF8423433514202000000FFFFF54234333D4202000000FFFFF1426766 + 2A4202000000FFFFEC42CECC184202000000FFFFE7423433074202000000CCCC + E1423633EF41020000009999DA426966D241020000006666D3429C99B5410200 + 00009999CB429C999D4102000000CCCCC242D0CC884102000000FFFFB942A099 + 694102000000CCCCB042A0994941020000009999A6423A33334102000000CDCC + 9C4233331B41020000006666924200001041020000009A998742000010410300 + 00009A998742000010410000000033337D42CDCC1042010000009A999042CDCC + 1042010000009A999042CDCC34420100000034337D42CDCC3442010000003433 + 7D42CDCC10420300000033337D42CDCC10420000000033337D42333359420100 + 00009A99904233335942010000009A9990420000C7420100000034337D420000 + C7420100000034337D42333359420300000033337D42333359420A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080A53697A652E5769 + 6474680500000000000000D003400B53697A652E486569676874050000000000 + 0000E003401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6508577261704D6F646507034669740000000054 + 50463007544C61796F757400095374796C654E616D65061B6F7267616E697A65 + 746F6F6C627574746F6E6D756C74697669657705416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000C805400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F7264657202790B46697865644865 + 696768740232000654476C79706800095374796C654E616D65060A676C797068 + 7374796C650C4D617267696E732E4C65667405000000000000009002400B4D61 + 7267696E732E546F7005000000000000009002400E4D617267696E732E426F74 + 746F6D050000000000000090024005416C69676E07044C6566740A506F736974 + 696F6E2E5805000000000000009002400A506F736974696F6E2E590500000000 + 0000009002400A53697A652E576964746805000000000000008004400B53697A + 652E48656967687405000000000000008004401453697A652E506C6174666F72 + 6D44656661756C740800000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C6970 + 4368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080C4D617267696E732E4C6566 + 740500000000000000C804C00A53697A652E57696474680500000000000000C8 + 05400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562 + 7574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463230323032300953746F7056616C75 + 6507097846463430343034300754726967676572063049734D6F7573654F7665 + 723D747275653B4973507265737365643D66616C73653B4973466F6375736564 + 3D66616C73650E54726967676572496E7665727365063149734D6F7573654F76 + 65723D66616C73653B4973507265737365643D66616C73653B4973466F637573 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3308447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632413832453209 + 53746F7056616C756507097846463137353739430754726967676572062E4973 + 507265737365643D747275653B49734D6F7573654F7665723D747275653B4973 + 466F63757365643D747275650E54726967676572496E7665727365062F497350 + 7265737365643D66616C73653B49734D6F7573654F7665723D747275653B4973 + 466F63757365643D7472756500000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E740748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 + 65000007544C61796F757400095374796C654E616D6506074C61796F75743205 + 416C69676E07044C6566740A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080005545061746800095374796C654E616D65 + 060469636F6E05416C69676E070643656E74657209446174612E506174680AD0 + 00000011000000000000009A99E9409A99C940010000006666664066661E4101 + 000000000000009A99C940010000000000003F9A99B94001000000CDCC4C409A + 99094101000000CDCC4C40000000000100000000008040000000000100000000 + 00804000000841010000006666D6406666B640010000009A99E9409A99C94003 + 0000009A99E9409A99C940000000009A99993E00004041010000009A99993E33 + 333341010000000000E04033333341010000000000E04000004041010000009A + 99993E00004041030000009A99993E000040410A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080A53697A652E576964746805000000 + 00000000D003400B53697A652E4865696768740500000000000000E003401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6508577261704D6F64650703466974000000005450463007544C61 + 796F757400095374796C654E616D65061B73657474696E6773746F6F6C627574 + 746F6E6D756C74697669657705416C69676E070643656E7465720A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F72646572027A0B4669786564486569676874023200 + 0654476C79706800095374796C654E616D65060A676C7970687374796C650C4D + 617267696E732E4C65667405000000000000009002400B4D617267696E732E54 + 6F7005000000000000009002400E4D617267696E732E426F74746F6D05000000 + 0000000090024005416C69676E07044C6566740A506F736974696F6E2E580500 + 0000000000009002400A506F736974696F6E2E5905000000000000009002400A + 53697A652E576964746805000000000000008004400B53697A652E4865696768 + 7405000000000000008004401453697A652E506C6174666F726D44656661756C + 740800000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0706436C69656E740C436C69704368696C647265 + 6E090A436C6970506172656E74090A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080C4D617267696E732E4C656674050000000000 + 0000C804C00A53697A652E57696474680500000000000000C805400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463230323032300953746F7056616C7565070978464634 + 30343034300754726967676572063049734D6F7573654F7665723D747275653B + 4973507265737365643D66616C73653B4973466F63757365643D66616C73650E + 54726967676572496E7665727365063149734D6F7573654F7665723D66616C73 + 653B4973507265737365643D66616C73653B4973466F63757365643D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 + 627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E0500 + 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C + 6F720A537461727456616C756507097846463241383245320953746F7056616C + 756507097846463137353739430754726967676572062E497350726573736564 + 3D747275653B49734D6F7573654F7665723D747275653B4973466F6375736564 + 3D747275650E54726967676572496E7665727365062F4973507265737365643D + 66616C73653B49734D6F7573654F7665723D747275653B4973466F6375736564 + 3D7472756500000005545465787400095374796C654E616D6506047465787405 + 416C69676E0706436C69656E740748697454657374080A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C804401453697A652E506C6174666F726D44656661756C740804546578740604 + 54657874165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 5768697465000007544C61796F757400095374796C654E616D6506074C61796F + 75743205416C69676E07044C6566740A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080005545061746800095374796C65 + 4E616D65060469636F6E05416C69676E070643656E74657209446174612E5061 + 74680A540D00001C01000000000000333351423333E7410200000033335142CD + CCE84102000000333351426666EA4102000000333351423333EB410200000033 + 335142CDCCEC4102000000333351426666EE4102000000333351423333EF4102 + 00000033335142CDCCF04102000000333351426666F241020000003333514233 + 33F3410200000033335142CDCCF44102000000333351426666F6410200000033 + 3351423333F7410100000099996F4266660E4201000000CDCC5C4200003C4201 + 00000000003A4200003442020000000000384200003642020000000000364200 + 003842020000000000344200003A420100000000003C42CDCC5C4201000000CD + CC0E429A996F42010000000000F84133335142020000006666F6413333514202 + 000000CDCCF44133335142020000000000F44133335142020000006666F24133 + 33514202000000CDCCF04133335142020000000000F041333351420200000066 + 66EE413333514202000000CDCCEC4133335142020000000000EC413333514202 + 0000006666EA413333514202000000CDCCE84133335142020000000000E84133 + 335142010000006666C24199996F4201000000FFFF4F41CCCC5C4201000000FF + FF6F41FFFF394202000000FFFF6741FFFF374202000000FFFF5F41FFFF354202 + 000000FFFF5741FFFF33420100000098999940FFFF3B420100000000000000CD + CC0E42010000003333F3400000F841020000003333F3406666F6410200000033 + 33F340CDCCF441020000003333F3400000F441020000003333F3406666F24102 + 0000003333F340CDCCF041020000003333F3400000F041020000003333F34066 + 66EE41020000003333F340CDCCEC41020000003333F3400000EC410200000033 + 33F3406666EA41020000003333F340CDCCE841020000003333F3400000E84101 + 00000000000000CDCCC0410100000066669640CDCC4C410100000066665641CD + CC6C410200000066665E41CDCC64410200000066666641CDCC5C410200000066 + 666E41CDCC54410100000066664E413433934001000000CDCCC0410000000001 + 0000006666E6413333F340020000000000E8413333F340020000009999E94133 + 33F340020000006666EA413333F340020000000000EC413333F3400200000099 + 99ED413333F340020000006666EE413333F340020000000000F0413333F34002 + 0000009999F1413333F340020000006666F2413333F340020000000000F44133 + 33F340020000009999F5413333F340020000006666F6413333F34001000000CD + CC0E42000000000100000000003C426666964001000000000034426666564102 + 0000000000364266665E410200000000003842666666410200000000003A4266 + 666E4101000000CDCC5C4266664E41010000009A996F429A99C1410100000033 + 3351423333E74103000000333351423333E7410000000033334342CDCC024202 + 00000033334342CDCC004202000000999943426766FE41020000009999434267 + 66FA4102000000999943426766F64102000000FFFF43423433F34102000000FF + FF43423433EF4102000000FFFF43423433EB4102000000FFFF43420100E84102 + 000000999943420100E44102000000999943420100E0410200000033334342CE + CCDC410200000033334342CECCD84101000000CDCC5E426866B64101000000CD + CC54429B99854101000000CDCC3442CECC9441020000006766324234338F4102 + 000000000030429B9989410200000033332D42010084410200000066662A42CE + CC7C4102000000000028423533734102000000CDCC24429C9969410100000067 + 662C423833D34001000000010014423833834001000000676602420200304102 + 0000006766004202003041020000009B99FD4168662E41020000009B99F94168 + 662E41020000009B99F54168662E41020000006866F241CECC2C410200000068 + 66EE41CECC2C41020000006866EA41CECC2C41020000003533E741CECC2C4102 + 0000003533E34168662E41020000003533DF4168662E41020000000200DC4102 + 003041020000000200D84102003041010000009C99B5413733834001000000CF + CC84413733D34001000000020094419C9969410200000068668E413633734102 + 000000CFCC8841CFCC7C410200000035338341010084410200000036337B419A + 998941020000009D99714167668E410200000004006841CECC94410100000008 + 00D0409B99854101000000080080406866B641010000006A662E419B99D94102 + 0000006A662E419B99DD4102000000D0CC2C41CECCE04102000000D0CC2C41CE + CCE44102000000D0CC2C41CECCE8410200000036332B410100EC410200000036 + 332B410100F0410200000036332B410100F4410200000036332B413433F74102 + 000000D0CC2C413433FB4102000000D0CC2C413433FF41020000006A662E4134 + 330142020000006A662E41343303420100000007008040676614420100000007 + 00D040CDCC2C42010000000400684133332542020000009E9971410000284202 + 00000037337B41CDCC2A42020000003533834199992D4202000000CECC884165 + 663042020000009B998D41CCCC324202000000020094413333354201000000CF + CC844133335542010000009C99B54133335F4201000000CFCCD8419999434202 + 000000CFCCDC4199994342020000000200E041FFFF4342020000000200E441FF + FF4342020000000200E841FFFF4342020000003533EB41656644420200000035 + 33EF4165664442020000003533F34165664442020000006866F6416566444202 + 0000006866FA41FFFF4342020000006866FE41FFFF434202000000CECC004299 + 99434202000000CECC024299994342010000000100144233335F420100000067 + 662C423333554201000000CDCC244233333542020000009A992742CDCC324202 + 00000067662A42666630420200000033332D4299992D4202000000FFFF2F42CC + CC2A4202000000666632426666284202000000CDCC34423333254201000000CD + CC5442CDCC2C4201000000CDCC5E42676614420100000033334342CDCC024203 + 00000033334342CDCC0242000000003333EF4133339741020000003333FB4133 + 339741020000009A9903429999994102000000CDCC084266669E410200000000 + 000E423333A34102000000CDCC12429999A94102000000CDCC16429999B14102 + 000000CDCC1A429999B9410200000000001E423333C341020000006766204299 + 99CD4102000000CDCC2242FFFFD7410200000001002442FFFFE3410200000001 + 0024420000F04102000000010024420100FC4102000000CECC22420000044202 + 00000067662042333309420200000001001E4266660E4202000000CDCC1A4233 + 33134202000000CDCC16423333174202000000CDCC124233331B420200000000 + 000E4266661E4202000000CDCC0842CDCC2042020000009A9903423333234202 + 0000003433FB4167662442020000003433EF4167662442020000003433E34167 + 662442020000003433D7413433234202000000CECCCC41CDCC20420200000068 + 66C24167661E4202000000CECCB84133331B4202000000CECCB0413333174202 + 000000CECCA84133331342020000006866A24166660E42020000009B999D4133 + 33094202000000CECC98410000044202000000686696410000FC410200000068 + 6696410000F04102000000686696410000E44102000000CECC98410000D84102 + 0000009B999D419A99CD41020000006866A2413433C34102000000CECCA8419A + 99B94102000000CECCB0419A99B14102000000CECCB8419A99A9410200000068 + 66C2413433A34102000000CECCCC4167669E41020000000000D8419A99994102 + 0000003333E34133339741020000003333EF4133339741030000003333EF4133 + 339741000000003333EF41CDCC1642020000000000F841CDCC16420200000000 + 00004200001642020000009A990342676614420200000034330742CDCC124202 + 000000CDCC0A4267661042020000009A990D429A990D420200000067661042CD + CC0A4202000000CDCC12429A99074202000000676614429A9903420200000001 + 0016420000004202000000CDCC16423433F74102000000CDCC16423433EF4102 + 000000CDCC16426766E64102000000000016426766DE41020000006766144234 + 33D74102000000CDCC12420100D0410200000067661042CECCC841020000009A + 990D423433C34102000000CDCC0A429A99BD41020000009A990742CECCB84102 + 0000009A9903429A99B54102000000000000426766B241020000003433F741CD + CCB041020000003433EF41CDCCB041020000006766E641CDCCB0410200000067 + 66DE416766B241020000003433D7419A99B541020000000100D041CDCCB84102 + 000000CECCC8419A99BD41020000003433C3413433C341020000009A99BD41CE + CCC84102000000CECCB8413433CF41020000009A99B5413433D7410200000067 + 66B2416766DE4102000000CDCCB0413433E74102000000CDCCB0413433EF4102 + 000000CDCCB0410100F841020000006766B24100000042020000009A99B5419A + 99034202000000CDCCB84134330742020000009A99BD41CDCC0A420200000034 + 33C3419A990D4202000000CECCC84167661042020000003433CF41CDCC124202 + 0000003433D74167661442020000003333DF4100001642020000003333E741CD + CC1642020000003333EF41CDCC1642030000003333EF41CDCC16420A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 + 696474680500000000000000D003400B53697A652E4865696768740500000000 + 000000E003401453697A652E506C6174666F726D44656661756C74080B537472 6F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400000000 - 545046300A5452656374616E676C6500095374796C654E616D650614706F7075 - 706261636B67726F756E647374796C6505416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463244324432440A53697A652E576964746805 - 000000000000009407400B53697A652E4865696768740500000000000080D206 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F7207097846463135313531350756697369626C65080000} + 5450463007544C61796F757400095374796C654E616D65061172656D6F766562 + 7574746F6E7374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000C805400B53697A652E486569676874050000000000 + 0000C003401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F72646572027D0B46697865644865696768740218000654 + 476C79706800095374796C654E616D65060A676C7970687374796C650C4D6172 + 67696E732E4C65667405000000000000009002400B4D617267696E732E546F70 + 05000000000000009002400E4D617267696E732E426F74746F6D050000000000 + 000090024005416C69676E07044C6566740A506F736974696F6E2E5805000000 + 000000008404400A506F736974696F6E2E5905000000000000009002400A5369 + 7A652E576964746805000000000000008004400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 00000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E09 + 0A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080C4D617267696E732E4C6566740500000000000000 + C003C00A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C003401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572063049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C73650E5472 + 6967676572496E7665727365063149734D6F7573654F7665723D66616C73653B + 4973507265737365643D66616C73653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463241383245320953746F7056616C7565 + 07097846463137353739430754726967676572062E4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 7275650E54726967676572496E7665727365062F4973507265737365643D6661 + 6C73653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 72756500000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E740748697454657374080A53697A652E576964746805 + 000000000000009805400B53697A652E4865696768740500000000000000C003 + 401453697A652E506C6174666F726D44656661756C7408045465787406045465 + 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 697465000007544C61796F757400095374796C654E616D6506074C61796F7574 + 3205416C69676E07044C6566740A53697A652E57696474680500000000000000 + C003400B53697A652E4865696768740500000000000000C003401453697A652E + 506C6174666F726D44656661756C74080005545061746800095374796C654E61 + 6D65060469636F6E05416C69676E0708436F6E74656E747309446174612E5061 + 74680A4C000000060000000000000000004041CDCC4C3F0100000000000000CD + CC4C3F0100000000000000000000000100000000004041000000000100000000 + 004041CDCC4C3F0300000000004041CDCC4C3F0A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080C4D617267696E732E4C6566740500 + 0000000000008001400B4D617267696E732E546F700500000000000000800140 + 0D4D617267696E732E526967687405000000000000008001400E4D617267696E + 732E426F74746F6D05000000000000008001400A53697A652E57696474680500 + 0000000000008003400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6508577261704D6F6465070346697400000000545046300A54 + 52656374616E676C6500095374796C654E616D650614706F7075706261636B67 + 726F756E647374796C6505416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463244324432440A53697A652E576964746805000000000000 + 009407400B53697A652E4865696768740500000000000080D206401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 7846463135313531350756697369626C65080000} end item Platform = 'OSX Yosemite' @@ -10894,7 +10892,7 @@ object MainForm: TMainForm 6F6C6C6261727374796C6503AE01060D73706C69747465727374796C65030103 06106D656E756261726974656D7374796C65035C0B060C6D656E756261727374 796C6503B802060D6D656E756974656D7374796C6503890B06126D656E757365 - 70617261746F727374796C6503E501060D6D656E75766965777374796C6503DD + 70617261746F727374796C6503DC01060D6D656E75766965777374796C6503B7 020610726164696F627574746F6E7374796C6503C4050618756C63656E746572 726164696F627574746F6E7374796C65035D050616756C6C656674726164696F 627574746F6E7374796C6503A7050617756C7269676874726164696F62757474 @@ -12449,718 +12447,716 @@ object MainForm: TMainForm 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508085461624F7264657202270005544C696E650005 - 416C69676E0703546F70084C696E65547970650703546F700C4D617267696E73 - 2E4C6566740500000000000000C000400B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000C00040 - 0A506F736974696F6E2E580500000000000000C000400A506F736974696F6E2E - 5905000000000000008000400A53697A652E57696474680500000000000000B0 - 04400B53697A652E486569676874050000000000000080FF3F1453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 46313531353135000000545046300A5452656374616E676C6500095374796C65 - 4E616D65060D6D656E75766965777374796C6505416C69676E070643656E7465 - 720A46696C6C2E436F6C6F7207097846463230323032300A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F7207097846463135313531350756697369626C65080758526164 - 6975730500000000000000C0004007595261646975730500000000000000C000 - 40000A5452656374616E676C650005416C69676E0706436C69656E740A46696C - 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000000000C804401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F72070978464631353135313507585261646975730500 - 000000000000C0004007595261646975730500000000000000C00040000D5453 - 6861646F77456666656374000844697374616E63650500000000000000C00040 - 09446972656374696F6E0500000000000000B4054008536F66746E6573730500 - 00000000000080FE3F074F706163697479050000000000000080FE3F0B536861 - 646F77436F6C6F720708636C61426C61636B00000007544C61796F7574000953 - 74796C654E616D650607636F6E74656E7405416C69676E0706436C69656E740C - 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A53697A652E57696474680500000000000000C004400B53697A652E486569 - 6768740500000000000000C004401453697A652E506C6174666F726D44656661 - 756C74080000005450463007544C61796F757400095374796C654E616D650610 - 726164696F627574746F6E7374796C6505416C69676E070643656E7465720A53 - 697A652E57696474680500000000000000F205400B53697A652E486569676874 - 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508085461624F7264657202280007544C61796F75740005 - 416C69676E07044C6566740A53697A652E57696474680500000000000000A803 - 400B53697A652E4865696768740500000000000000A803401453697A652E506C - 6174666F726D44656661756C7408000854456C6C6970736500095374796C654E - 616D65060A6261636B67726F756E6405416C69676E070643656E7465720A4669 - 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 - 657374080A53697A652E57696474680500000000000000F002400B53697A652E - 4865696768740500000000000000F002401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 0854456C6C6970736500095374796C654E616D650609636865636B6D61726B05 - 416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646324138 - 324532064C6F636B656409074869745465737408074F70616369747905000000 - 000000000000000C4D617267696E732E4C65667405000000000000008000400B - 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 - 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 - 0000000000008000400A53697A652E57696474680500000000000000B002400B - 53697A652E4865696768740500000000000000B002401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F - 54466C6F6174416E696D6174696F6E00095374796C654E616D65061A6F706163 - 697479436865636B6D61726B416E696D6174696F6E31084475726174696F6E05 - 000000000000000000000C50726F70657274794E616D6506074F706163697479 - 0A537461727456616C756505000000000000000000000953746F7056616C7565 - 050000000000000080FF3F0754726967676572060E4973436865636B65643D74 - 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 - 6C73650000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 65061A726164696F627574746F6E436F6C6F72416E696D6174696F6E31084475 - 726174696F6E050000000000000000000007496E7665727365090C50726F7065 - 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 - 7846463230323032300953746F7056616C756507097846463430343034300754 - 726967676572061049734D6F7573654F7665723D747275650E54726967676572 - 496E7665727365061149734D6F7573654F7665723D66616C736500000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E - 696D6174696F6E315374796C65084475726174696F6E05000000000000000000 - 000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461 - 727456616C756507097846463135313531350953746F7056616C756507097846 - 463241383245320754726967676572060E4973436865636B65643D747275650E - 54726967676572496E7665727365060F4973436865636B65643D66616C736500 - 00000005545465787400095374796C654E616D6506047465787405416C69676E - 0706436C69656E74064C6F636B6564090748697454657374080A53697A652E57 - 696474680500000000000000C805400B53697A652E4865696768740500000000 - 000000A803401453697A652E506C6174666F726D44656661756C740804546578 - 74060454657874165465787453657474696E67732E466F6E74436F6C6F720708 - 636C6157686974650000005450463007544C61796F757400095374796C654E61 - 6D650618756C63656E746572726164696F627574746F6E7374796C6505416C69 - 676E070643656E7465720A53697A652E57696474680500000000005655FB0540 - 0B53697A652E4865696768740500000000000000A004401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 290007544C61796F75740005416C69676E0706426F74746F6D0A506F73697469 - 6F6E2E5905000000000000008804400A53697A652E5769647468050000000000 - 5655FB05400B53697A652E4865696768740500000000000000C001401453697A - 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E - 74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C6566 - 74000A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 - 0748697454657374080A53697A652E57696474680500000000005655FB05400B - 53697A652E4865696768740500000000000000C001401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 31353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 06216261636B67726F756E64556C427574746F6E436F6C6F72416E696D617469 - 6F6E31084475726174696F6E050000000000000000000007496E766572736509 - 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 - 616C756507097846463230323032300953746F7056616C756507097846463430 - 343034300754726967676572061049734D6F7573654F7665723D747275650E54 - 726967676572496E7665727365061149734D6F7573654F7665723D66616C7365 - 00000A5452656374616E676C6500095374796C654E616D650609636865636B6D - 61726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F70 - 4C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F720709784646 - 324138324532064C6F636B656409074869745465737408074F70616369747905 - 000000000000000000000C4D617267696E732E4C656674050000000000000080 - FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E - 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F - 6D050000000000000080FF3F0A53697A652E57696474680500000000005655F7 - 05400B53697A652E48656967687405000000000000008001401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A63 - 6865636B6D61726B4F706163697479416E696D6174696F6E3108447572617469 - 6F6E05000000000000000000000C50726F70657274794E616D6506074F706163 - 6974790A537461727456616C756505000000000000000000000953746F705661 - 6C7565050000000000000080FF3F0754726967676572060E4973436865636B65 - 643D747275650E54726967676572496E7665727365060F4973436865636B6564 - 3D66616C7365000000000005545465787400095374796C654E616D6506047465 - 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 - 080A53697A652E57696474680500000000005655FB05400B53697A652E486569 - 67687405000000000000008804401453697A652E506C6174666F726D44656661 - 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 - 57686974650000005450463007544C61796F757400095374796C654E616D6506 - 16756C6C656674726164696F627574746F6E7374796C6505416C69676E070643 - 656E7465720A53697A652E57696474680500000000005655FB05400B53697A65 - 2E4865696768740500000000000000A004401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508085461624F72646572022A0007544C - 61796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E5905 - 000000000000008804400A53697A652E57696474680500000000005655FB0540 - 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 - 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 - 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 - 07436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A4669 - 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 - 657374080A53697A652E57696474680500000000005655FB05400B53697A652E - 4865696768740500000000000000C001401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 - 585261646975730500000000000000C000400759526164697573050000000000 - 0000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 6506216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174 - 696F6E31084475726174696F6E050000000000000000000007496E7665727365 - 090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463230323032300953746F7056616C7565070978464634 - 30343034300754726967676572061049734D6F7573654F7665723D747275650E - 54726967676572496E7665727365061149734D6F7573654F7665723D66616C73 - 6500000A5452656374616E676C6500095374796C654E616D650609636865636B - 6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F - 704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846 - 46324138324532064C6F636B656409074869745465737408074F706163697479 - 05000000000000000000000C4D617267696E732E4C6566740500000000000000 - 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 - 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 - 6F6D050000000000000080FF3F0A53697A652E57696474680500000000005655 - F705400B53697A652E48656967687405000000000000008001401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65075852616469757305000000000000008000400759526164697573050000 - 0000000000800040000F54466C6F6174416E696D6174696F6E00095374796C65 - 4E616D65061A636865636B6D61726B4F706163697479416E696D6174696F6E31 - 084475726174696F6E05000000000000000000000C50726F70657274794E616D - 6506074F7061636974790A537461727456616C75650500000000000000000000 - 0953746F7056616C7565050000000000000080FF3F0754726967676572060E49 - 73436865636B65643D747275650E54726967676572496E7665727365060F4973 - 436865636B65643D66616C7365000000000005545465787400095374796C654E - 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 - 48697454657374080A53697A652E57696474680500000000005655FB05400B53 - 697A652E48656967687405000000000000008804401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C6157686974650000005450463007544C61796F75740009537479 - 6C654E616D650617756C7269676874726164696F627574746F6E7374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000005655 - FB05400B53697A652E4865696768740500000000000000A004401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 - 6572022C0007544C61796F75740005416C69676E0706426F74746F6D0A506F73 - 6974696F6E2E5905000000000000008804400A53697A652E5769647468050000 - 0000005655FB05400B53697A652E4865696768740500000000000000C0014014 - 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C - 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 - 436F6E74656E747307436F726E6572730B08546F7052696768740B426F74746F - 6D5269676874000A46696C6C2E436F6C6F720709784646323032303230064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000056 - 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 + 6C7408085461624F7264657202270005544C696E650005416C69676E0703546F + 70084C696E65547970650703546F700C4D617267696E732E4C65667405000000 + 0000000080FFBF0B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E5269676874050000000000000080FFBF0A506F736974696F6E + 2E58050000000000000080FFBF0A506F736974696F6E2E590500000000000000 + 8000400A53697A652E57696474680500000000000000D004400B53697A652E48 + 6569676874050000000000000080FF3F1453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350000 + 00545046300A5452656374616E676C6500095374796C654E616D65060D6D656E + 75766965777374796C6505416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463230323032300A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 78464631353135313507585261646975730500000000000000C0004007595261 - 646975730500000000000000C00040000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D6506216261636B67726F756E64556C427574746F6E43 + 7846463135313531350756697369626C65080758526164697573050000000000 + 0000C0004007595261646975730500000000000000C000400007544C61796F75 + 7400095374796C654E616D650607636F6E74656E7405416C69676E0706436C69 + 656E740C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A53697A652E57696474680500000000000000C004400B53697A65 + 2E4865696768740500000000000000C004401453697A652E506C6174666F726D + 44656661756C740800000A5452656374616E676C650005416C69676E0706436C + 69656E740A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000D + 54536861646F77456666656374000844697374616E6365050000000000000080 + 014009446972656374696F6E0500000000000000B4044008536F66746E657373 + 050000000000000080FE3F074F706163697479050000000000000080FE3F0B53 + 6861646F77436F6C6F720708636C61426C61636B000000005450463007544C61 + 796F757400095374796C654E616D650610726164696F627574746F6E7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000F205400B53697A652E4865696768740500000000000000A803401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 7264657202280007544C61796F75740005416C69676E07044C6566740A53697A + 652E57696474680500000000000000A803400B53697A652E4865696768740500 + 000000000000A803401453697A652E506C6174666F726D44656661756C740800 + 0854456C6C6970736500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463230 + 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 + 0500000000000000F002400B53697A652E4865696768740500000000000000F0 + 02401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F720709784646313531353135000854456C6C6970736500095374796C + 654E616D650609636865636B6D61726B05416C69676E0706436C69656E740A46 + 696C6C2E436F6C6F720709784646324138324532064C6F636B65640907486974 + 5465737408074F70616369747905000000000000000000000C4D617267696E73 + 2E4C65667405000000000000008000400B4D617267696E732E546F7005000000 + 000000008000400D4D617267696E732E52696768740500000000000000800040 + 0E4D617267696E732E426F74746F6D05000000000000008000400A53697A652E + 57696474680500000000000000B002400B53697A652E48656967687405000000 + 00000000B002401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E + 00095374796C654E616D65061A6F706163697479436865636B6D61726B416E69 + 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D6506074F7061636974790A537461727456616C756505000000 + 000000000000000953746F7056616C7565050000000000000080FF3F07547269 + 67676572060E4973436865636B65643D747275650E54726967676572496E7665 + 727365060F4973436865636B65643D66616C73650000000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D65061A726164696F627574746F6E43 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000000000 000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E43 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 616C756507097846463430343034300754726967676572061049734D6F757365 4F7665723D747275650E54726967676572496E7665727365061149734D6F7573 - 654F7665723D66616C736500000A5452656374616E676C6500095374796C654E - 616D650609636865636B6D61726B05416C69676E0708436F6E74656E74730743 - 6F726E6572730B08546F7052696768740B426F74746F6D5269676874000A4669 - 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 - 65737408074F70616369747905000000000000000000000C4D617267696E732E - 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 - 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E - 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 - 696474680500000000005655F705400B53697A652E4865696768740500000000 - 0000008001401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65075852616469757305000000000000008000 - 4007595261646975730500000000000000800040000F54466C6F6174416E696D - 6174696F6E00095374796C654E616D65061A636865636B6D61726B4F70616369 - 7479416E696D6174696F6E31084475726174696F6E0500000000000000000000 - 0C50726F70657274794E616D6506074F7061636974790A537461727456616C75 - 6505000000000000000000000953746F7056616C7565050000000000000080FF - 3F0754726967676572060E4973436865636B65643D747275650E547269676765 - 72496E7665727365060F4973436865636B65643D66616C736500000000000554 - 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 - 656E74064C6F636B6564090748697454657374080A53697A652E576964746805 - 00000000005655FB05400B53697A652E48656967687405000000000000008804 - 401453697A652E506C6174666F726D44656661756C7408045465787406045465 - 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 - 6974650000005450463007544C61796F757400095374796C654E616D65061470 - 726F67726573736261726D696E697374796C6505416C69676E070643656E7465 - 720A53697A652E576964746805000000000033338505400B53697A652E486569 - 6768740500000000009999E104401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508085461624F72646572022E000A545265637461 - 6E676C6500095374796C654E616D65060668747261636B05416C69676E070843 - 6F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000033 - 338505400B53697A652E4865696768740500000000009999E104401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E650758526164697573050000000000000080004007595261646975730500 - 000000000000800040000A5452656374616E676C6500095374796C654E616D65 - 060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F - 6C6F720709784646324138324532064C6F636B6564090748697454657374080A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000009999E104401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 00000000800040075952616469757305000000000000008000400000000A5452 - 656374616E676C6500095374796C654E616D65060676747261636B05416C6967 - 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430343034 - 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 - 00000033338505400B53697A652E4865696768740500000000009999E1044014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E6507585261646975730500000000000000800040075952616469 - 75730500000000000000800040000A5452656374616E676C6500095374796C65 - 4E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46 - 696C6C2E436F6C6F720709784646324138324532064C6F636B65640907486974 - 54657374080A506F736974696F6E2E5905000000000099998D04400A53697A65 - 2E576964746805000000000033338505400B53697A652E486569676874050000 - 0000000000A803401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 - 8000400759526164697573050000000000000080004000000000545046300754 - 4C61796F757400095374796C654E616D65060E636F6D626F656469747374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 0000C805400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 726465720230000C5442727573684F626A65637400095374796C654E616D6506 - 0A666F726567726F756E6400000B54466F6E744F626A65637400095374796C65 - 4E616D650604666F6E7409466F6E742E53697A650500000000000000D0024000 - 0007544C61796F757400095374796C654E616D65060A6261636B67726F756E64 - 05416C69676E0708436F6E74656E74730A53697A652E57696474680500000000 - 000000C805400B53697A652E4865696768740500000000000000C80340145369 - 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 - 095374796C654E616D65060A52656374616E676C653105416C69676E0706436C - 69656E740A46696C6C2E436F6C6F720709784646323032303230074869745465 - 7374080A53697A652E57696474680500000000000000C805400B53697A652E48 - 65696768740500000000000000C803401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463230323032300758 - 5261646975730500000000000000C00040075952616469757305000000000000 - 00C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05 - 0000000000000000000007496E7665727365090C50726F70657274794E616D65 - 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463230 - 323032300953746F7056616C7565070978464634303430343007547269676765 - 72062049734D6F7573654F7665723D747275653B4973466F63757365643D6661 - 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D - 66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 - 6F6E325374796C65084475726174696F6E050000000000000000000007496E76 - 65727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 - 0A537461727456616C756507097846463430343034300953746F7056616C7565 - 07097846463241383245320754726967676572061F49734D6F7573654F766572 - 3D747275653B4973466F63757365643D747275650E54726967676572496E7665 - 727365062049734D6F7573654F7665723D747275653B4973466F63757365643D - 66616C7365000007544C61796F757400095374796C654E616D6506056172726F - 7705416C69676E070846697452696768740B4D617267696E732E546F70050000 - 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF - 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F7369 - 74696F6E2E580500000000005ED99705400A506F736974696F6E2E5905000000 - 0000000080FF3F0A53697A652E5769647468050000000000889AB803400B5369 - 7A652E4865696768740500000000000000B803401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653105416C69676E0708436F6E74656E747307436F - 726E6572730B08546F7052696768740B426F74746F6D5269676874000A46696C - 6C2E436F6C6F7207097846463330333033300748697454657374080A53697A65 - 2E5769647468050000000000889AB803400B53697A652E486569676874050000 - 0000000000B803401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + 654F7665723D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614436F6C6F72416E696D6174696F6E315374796C650844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0C5374726F6B652E436F6C6F720A537461727456616C75650709784646313531 + 3531350953746F7056616C756507097846463241383245320754726967676572 + 060E4973436865636B65643D747275650E54726967676572496E766572736506 + 0F4973436865636B65643D66616C73650000000005545465787400095374796C + 654E616D6506047465787405416C69676E0706436C69656E74064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 + 74666F726D44656661756C740804546578740604546578741654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746500000054504630 + 07544C61796F757400095374796C654E616D650618756C63656E746572726164 + 696F627574746F6E7374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000005655FB05400B53697A652E486569676874050000 + 0000000000A004401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F7264657202290007544C61796F75740005416C69 + 676E0706426F74746F6D0A506F736974696F6E2E590500000000000000880440 + 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 + 68740500000000000000C001401453697A652E506C6174666F726D4465666175 + 6C7408000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0708436F6E74656E747307436F726E6572730B07 + 546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F720709 + 784646323032303230064C6F636B6564090748697454657374080A53697A652E + 57696474680500000000005655FB05400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F720709784646313531353135000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D6506216261636B67726F756E64556C42 + 7574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000 + 000000000000000007496E7665727365090C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 0953746F7056616C756507097846463430343034300754726967676572061049 + 734D6F7573654F7665723D747275650E54726967676572496E76657273650611 + 49734D6F7573654F7665723D66616C736500000A5452656374616E676C650009 + 5374796C654E616D650609636865636B6D61726B05416C69676E0708436F6E74 + 656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C656674 + 000A46696C6C2E436F6C6F720709784646324138324532064C6F636B65640907 + 4869745465737408074F70616369747905000000000000000000000C4D617267 + 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 + 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 + 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A5369 + 7A652E57696474680500000000005655F705400B53697A652E48656967687405 + 000000000000008001401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174 + 696F6E00095374796C654E616D65061A636865636B6D61726B4F706163697479 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D6506074F7061636974790A537461727456616C756505 + 000000000000000000000953746F7056616C7565050000000000000080FF3F07 + 54726967676572060E4973436865636B65643D747275650E5472696767657249 + 6E7665727365060F4973436865636B65643D66616C7365000000000005545465 + 787400095374796C654E616D6506047465787405416C69676E0706436C69656E + 74064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 0000005655FB05400B53697A652E486569676874050000000000000088044014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E + 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C + 61796F757400095374796C654E616D650616756C6C656674726164696F627574 + 746F6E7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000005655FB05400B53697A652E4865696768740500000000000000 + A004401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F72646572022A0007544C61796F75740005416C69676E070642 + 6F74746F6D0A506F736974696F6E2E5905000000000000008804400A53697A65 + 2E57696474680500000000005655FB05400B53697A652E486569676874050000 + 0000000000C001401453697A652E506C6174666F726D44656661756C7408000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0708436F6E74656E747307436F726E6572730B07546F704C65 + 66740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846463230 + 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 + 0500000000005655FB05400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313507585261646975730500000000000000 C0004007595261646975730500000000000000C00040000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 - 6F6E315374796C65084475726174696F6E050000000000000000000007496E76 - 65727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463330333033300953746F7056616C75650709 - 7846463430343034300754726967676572062049734D6F7573654F7665723D74 - 7275653B4973466F63757365643D66616C73650E54726967676572496E766572 - 7365062149734D6F7573654F7665723D66616C73653B4973466F63757365643D - 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F - 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463430343034300953746F70 - 56616C756507097846463137353739430754726967676572061F4973466F6375 - 7365643D747275653B49734D6F7573654F7665723D7472756500000007544C61 - 796F757400095374796C654E616D6506074C61796F75743105416C69676E0706 - 43656E7465720C4D617267696E732E4C656674050000000000000080FF3F0A53 - 697A652E57696474680500000000000000A002400B53697A652E486569676874 - 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 - 080005545061746800095374796C654E616D650605506174683105416C69676E - 0706436C69656E7409446174612E506174680A34000000040000000000000000 - 00C8420000C84201000000000096430000C84201000000000048430000964303 - 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 - 0748697454657374080A53697A652E57696474680500000000000000A002400B - 53697A652E4865696768740500000000000000C001401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 000000000C5442727573684F626A65637400095374796C654E616D6506097365 - 6C656374696F6E0B42727573682E436F6C6F7207097839363241383245320000 - 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 - 676E0706436C69656E740C4D617267696E732E4C656674050000000000000080 - 00400B4D617267696E732E546F7005000000000000008000400D4D617267696E - 732E52696768740500000000000000F003400E4D617267696E732E426F74746F - 6D05000000000000008000400A53697A652E5769647468050000000000000088 + 696D6174696F6E00095374796C654E616D6506216261636B67726F756E64556C + 427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500 + 00000000000000000007496E7665727365090C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463230323032 + 300953746F7056616C7565070978464634303430343007547269676765720610 + 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 + 1149734D6F7573654F7665723D66616C736500000A5452656374616E676C6500 + 095374796C654E616D650609636865636B6D61726B05416C69676E0708436F6E + 74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C6566 + 74000A46696C6C2E436F6C6F720709784646324138324532064C6F636B656409 + 074869745465737408074F70616369747905000000000000000000000C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 + 697A652E57696474680500000000005655F705400B53697A652E486569676874 + 05000000000000008001401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500000000 + 00000080004007595261646975730500000000000000800040000F54466C6F61 + 74416E696D6174696F6E00095374796C654E616D65061A636865636B6D61726B + 4F706163697479416E696D6174696F6E31084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D6506074F7061636974790A53746172 + 7456616C756505000000000000000000000953746F7056616C75650500000000 + 00000080FF3F0754726967676572060E4973436865636B65643D747275650E54 + 726967676572496E7665727365060F4973436865636B65643D66616C73650000 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 0706436C69656E74064C6F636B6564090748697454657374080A53697A652E57 + 696474680500000000005655FB05400B53697A652E4865696768740500000000 + 0000008804401453697A652E506C6174666F726D44656661756C740816546578 + 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 + 5450463007544C61796F757400095374796C654E616D650617756C7269676874 + 726164696F627574746F6E7374796C6505416C69676E070643656E7465720A53 + 697A652E57696474680500000000005655FB05400B53697A652E486569676874 + 0500000000000000A004401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508085461624F72646572022C0007544C61796F75740005 + 416C69676E0706426F74746F6D0A506F736974696F6E2E590500000000000000 + 8804400A53697A652E57696474680500000000005655FB05400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C7408000A5452656374616E676C6500095374796C654E616D65060A62 + 61636B67726F756E6405416C69676E0708436F6E74656E747307436F726E6572 + 730B08546F7052696768740B426F74746F6D5269676874000A46696C6C2E436F + 6C6F720709784646323032303230064C6F636B6564090748697454657374080A + 53697A652E57696474680500000000005655FB05400B53697A652E4865696768 + 740500000000000000C001401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135075852616469 + 75730500000000000000C0004007595261646975730500000000000000C00040 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506216261 + 636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E3108 + 4475726174696F6E050000000000000000000007496E7665727365090C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646343034303430 + 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 + 6572496E7665727365061149734D6F7573654F7665723D66616C736500000A54 + 52656374616E676C6500095374796C654E616D650609636865636B6D61726B05 + 416C69676E0708436F6E74656E747307436F726E6572730B08546F7052696768 + 740B426F74746F6D5269676874000A46696C6C2E436F6C6F7207097846463241 + 38324532064C6F636B656409074869745465737408074F706163697479050000 + 00000000000000000C4D617267696E732E4C656674050000000000000080FF3F + 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E + 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F0A53697A652E57696474680500000000005655F70540 + 0B53697A652E48656967687405000000000000008001401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 + 5852616469757305000000000000008000400759526164697573050000000000 + 0000800040000F54466C6F6174416E696D6174696F6E00095374796C654E616D + 65061A636865636B6D61726B4F706163697479416E696D6174696F6E31084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D650607 + 4F7061636974790A537461727456616C75650500000000000000000000095374 + 6F7056616C7565050000000000000080FF3F0754726967676572060E49734368 + 65636B65643D747275650E54726967676572496E7665727365060F4973436865 + 636B65643D66616C7365000000000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 + 54657374080A53697A652E57696474680500000000005655FB05400B53697A65 + 2E48656967687405000000000000008804401453697A652E506C6174666F726D + 44656661756C74080454657874060454657874165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D65061470726F67726573736261726D696E6973 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F72646572022E000A5452656374616E676C6500095374796C654E616D65 + 060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646343034303430064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000033338505400B53697A652E4865696768 + 740500000000009999E104401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 + 0000000080004007595261646975730500000000000000800040000A54526563 + 74616E676C6500095374796C654E616D65060A68696E64696361746F7205416C + 69676E07044C6566740A46696C6C2E436F6C6F72070978464632413832453206 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65075852616469757305000000000000008000400759526164697573 + 05000000000000008000400000000A5452656374616E676C6500095374796C65 + 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 + 050000000000000080004007595261646975730500000000000000800040000A + 5452656374616E676C6500095374796C654E616D65060A76696E64696361746F + 7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B6564090748697454657374080A506F736974696F6E2E + 5905000000000099998D04400A53697A652E5769647468050000000000333385 05400B53697A652E4865696768740500000000000000A803401453697A652E50 - 6C6174666F726D44656661756C74080000005450463007544C61796F75740009 - 5374796C654E616D650613657870616E646572627574746F6E7374796C650541 - 6C69676E070643656E7465720B4D617267696E732E546F700500000000000000 - 80FF3F0A53697A652E57696474680500000000000000B003400B53697A652E48 - 65696768740500000000000000B003401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F726465720233000554506174 - 6800095374796C654E616D650605506174683105416C69676E070643656E7465 - 7209446174612E506174680A3400000004000000000000000000C8420000C842 - 01000000000096430000C842010000000000484300009643030000000000C842 - 0000C8420A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080D526F746174696F6E416E676C650500000000000000B405400A53697A65 - 2E57696474680500000000000000A002400B53697A652E486569676874050000 - 0000000000C001401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F - 6E00095374796C654E616D650614466C6F6174416E696D6174696F6E31537479 - 6C65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C61 - 74696F6E070843697263756C61720C50726F70657274794E616D65060D526F74 - 6174696F6E416E676C650A537461727456616C75650500000000000000B40540 - 0953746F7056616C756505000000000000000000000754726967676572060F49 - 73457870616E6465643D747275650E54726967676572496E7665727365061049 - 73457870616E6465643D66616C7365000000005450463007544C61796F757400 - 095374796C654E616D650615657870616E646572636865636B626F787374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 00008406400B53697A652E48656967687405000000000000008404401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 7264657202360007544C61796F75740005416C69676E07044C6566740A53697A - 652E57696474680500000000000000C003400B53697A652E4865696768740500 - 0000000000008404401453697A652E506C6174666F726D44656661756C740800 - 0554506174680005416C69676E0706436C69656E7409446174612E506174680A - D80100002700000000000000FEC8BA4402E79244020000002592AD4402E79244 - 020000006D5BA544FEB09E44020000006D5BA544FEB09E440200000093A4A444 - 6A0C9F44020000004A80AC44FC79AA4402000000046EBA44FC79AA4402000000 - 4A00C844FC79AA44020000000080CF44FEB09E44020000000080CF44FEB09E44 - 020000000080CF44FEB09E44020000004C5BC84402E7924402000000FEC8BA44 - 02E7924400000000FE88BA44FE30974402000000B876BF44FE30974402000000 - 0277C344EEA09A44020000000277C34404DE9E44020000000277C344121BA344 - 02000000B876BF44008CA64402000000FE88BA44008CA644020000004C9BB544 - 008CA64402000000009CB144121BA34402000000009CB14404DE9E4402000000 - 009CB144EEA09A44020000004C9BB544FE30974402000000FE88BA44FE309744 - 000000000080BA44045E9B4402000000146EB844045E9B440200000000C0B644 - 54F79C440200000000C0B64400F09E440200000000C0B644ACE8A04402000000 - 146EB844FC81A244020000000080BA44FC81A24402000000EC91BC44FC81A244 - 020000000040BE44ACE8A044020000000040BE4400F09E44020000000040BE44 - 54F79C4402000000EC91BC44045E9B44020000000080BA44045E9B440A46696C - 6C2E436F6C6F7207097836303030303030300748697454657374080C4D617267 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6507585261646975730500000000000000800040075952616469757305000000 + 00000000800040000000005450463007544C61796F757400095374796C654E61 + 6D65060E636F6D626F656469747374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720230000C5442727573684F + 626A65637400095374796C654E616D65060A666F726567726F756E6400000B54 + 466F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E74 + 2E53697A650500000000000000D00240000007544C61796F757400095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 + 730A53697A652E57696474680500000000000000C805400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C7408000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F72070978464632303230323007585261646975730500000000000000C0 + 004007595261646975730500000000000000C00040000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F + 6E315374796C65084475726174696F6E050000000000000000000007496E7665 + 727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A + 537461727456616C756507097846463230323032300953746F7056616C756507 + 097846463430343034300754726967676572062049734D6F7573654F7665723D + 747275653B4973466F63757365643D66616C73650E54726967676572496E7665 + 727365062149734D6F7573654F7665723D66616C73653B4973466F6375736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614436F6C6F72416E696D6174696F6E325374796C6508447572617469 + 6F6E050000000000000000000007496E7665727365090C50726F70657274794E + 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464632413832453207547269 + 67676572061F49734D6F7573654F7665723D747275653B4973466F6375736564 + 3D747275650E54726967676572496E7665727365062049734D6F7573654F7665 + 723D747275653B4973466F63757365643D66616C7365000007544C61796F7574 + 00095374796C654E616D6506056172726F7705416C69676E0708466974526967 + 68740B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A506F736974696F6E2E580500000000005ED997 + 05400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769 + 647468050000000000889AB803400B53697A652E486569676874050000000000 + 0000B803401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060A52656374616E676C65310541 + 6C69676E0708436F6E74656E747307436F726E6572730B08546F705269676874 + 0B426F74746F6D5269676874000A46696C6C2E436F6C6F720709784646333033 + 3033300748697454657374080A53697A652E5769647468050000000000889AB8 + 03400B53697A652E4865696768740500000000000000B803401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6507585261646975730500000000000000C00040075952616469757305000000 + 00000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 + 6F6E050000000000000000000007496E7665727365090C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464633 + 30333033300953746F7056616C75650709784646343034303430075472696767 + 6572062049734D6F7573654F7665723D747275653B4973466F63757365643D66 + 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 + 696F6E325374796C65084475726174696F6E05000000000000000000000C5072 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097846463430343034300953746F7056616C756507097846463137353739 + 430754726967676572061F4973466F63757365643D747275653B49734D6F7573 + 654F7665723D7472756500000007544C61796F757400095374796C654E616D65 + 06074C61796F75743105416C69676E070643656E7465720C4D617267696E732E + 4C656674050000000000000080FF3F0A53697A652E5769647468050000000000 + 0000A002400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080005545061746800095374796C65 + 4E616D650605506174683105416C69676E0706436C69656E7409446174612E50 + 6174680A3400000004000000000000000000C8420000C8420100000000009643 + 0000C842010000000000484300009643030000000000C8420000C8420A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080A53697A652E + 57696474680500000000000000A002400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E650000000000000C5442727573684F626A65 + 637400095374796C654E616D65060973656C656374696F6E0B42727573682E43 + 6F6C6F720709783936324138324532000007544C61796F757400095374796C65 + 4E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D617267 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 000000000000008000400D4D617267696E732E52696768740500000000000000 - 8000400E4D617267696E732E426F74746F6D05000000000000008000400A5369 - 7A652E57696474680500000000000000A003400B53697A652E48656967687405 - 00000000000000E803401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E6508577261704D6F64650703466974 - 000F54436F6C6F72416E696D6174696F6E00084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097836303030303030300953746F7056616C756507 - 08636C61426C61636B0754726967676572060E4973436865636B65643D747275 - 6500000F54436F6C6F72416E696D6174696F6E00084475726174696F6E050000 - 000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C75650708636C61426C61636B0953746F7056616C7565 - 07097836303030303030300754726967676572060F4973436865636B65643D66 - 616C73650000000005545465787400095374796C654E616D6506047465787405 - 416C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D - 617267696E732E4C65667405000000000000008002400B4D617267696E732E54 - 6F7005000000000000008000400D4D617267696E732E52696768740500000000 - 00000080FF3F0A53697A652E57696474680500000000000000C605400B53697A - 652E4865696768740500000000000000F803401453697A652E506C6174666F72 - 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 - 0709784646454545454545165465787453657474696E67732E486F727A416C69 - 676E07074C656164696E670000005450463007544C61796F757400095374796C - 654E616D65060D657870616E6465727374796C6505416C69676E070643656E74 - 65720A53697A652E576964746805000000000000C08607400B53697A652E4865 - 696768740500000000000000CE05401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F726465720239000A5452656374 - 616E676C6500095374796C654E616D65060B626772656374616E676C6505416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324432 - 443244064C6F636B6564090748697454657374080A53697A652E576964746805 - 000000000000C08607400B53697A652E4865696768740500000000000000CE05 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F72070978464631353135313507585261646975730500000000000000C0 - 004007595261646975730500000000000000C000400007544C61796F75740009 - 5374796C654E616D6506074C61796F75743305416C69676E0703546F700A5369 - 7A652E576964746805000000000000C08607400B53697A652E48656967687405 - 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 - 0007544C61796F757400095374796C654E616D6506074C61796F75743405416C - 69676E0708436F6E74656E74730A53697A652E576964746805000000000000C0 - 8607400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653205416C69676E0708436F6E7465 - 6E747307436F726E6572730B07546F704C65667408546F705269676874000A46 - 696C6C2E436F6C6F720709784646323532353235064C6F636B65640907486974 + F003400E4D617267696E732E426F74746F6D05000000000000008000400A5369 + 7A652E576964746805000000000000008805400B53697A652E48656967687405 + 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 + 0000005450463007544C61796F757400095374796C654E616D65061365787061 + 6E646572627574746F6E7374796C6505416C69676E070643656E7465720B4D61 + 7267696E732E546F70050000000000000080FF3F0A53697A652E576964746805 + 00000000000000B003400B53697A652E4865696768740500000000000000B003 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F7264657202330005545061746800095374796C654E616D65060550 + 6174683105416C69676E070643656E74657209446174612E506174680A340000 + 0004000000000000000000C8420000C84201000000000096430000C842010000 + 000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080D526F746174696F6E416E676C + 650500000000000000B405400A53697A652E57696474680500000000000000A0 + 02400B53697A652E4865696768740500000000000000C001401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061446 + 6C6F6174416E696D6174696F6E315374796C65084475726174696F6E05000000 + 0000CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263756C61720C + 50726F70657274794E616D65060D526F746174696F6E416E676C650A53746172 + 7456616C75650500000000000000B405400953746F7056616C75650500000000 + 0000000000000754726967676572060F4973457870616E6465643D747275650E + 54726967676572496E766572736506104973457870616E6465643D66616C7365 + 000000005450463007544C61796F757400095374796C654E616D650615657870 + 616E646572636865636B626F787374796C6505416C69676E070643656E746572 + 0A53697A652E576964746805000000000000008406400B53697A652E48656967 + 687405000000000000008404401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F7264657202360007544C61796F7574 + 0005416C69676E07044C6566740A53697A652E57696474680500000000000000 + C003400B53697A652E48656967687405000000000000008404401453697A652E + 506C6174666F726D44656661756C7408000554506174680005416C69676E0706 + 436C69656E7409446174612E506174680AD80100002700000000000000FEC8BA + 4402E79244020000002592AD4402E79244020000006D5BA544FEB09E44020000 + 006D5BA544FEB09E440200000093A4A4446A0C9F44020000004A80AC44FC79AA + 4402000000046EBA44FC79AA44020000004A00C844FC79AA44020000000080CF + 44FEB09E44020000000080CF44FEB09E44020000000080CF44FEB09E44020000 + 004C5BC84402E7924402000000FEC8BA4402E7924400000000FE88BA44FE3097 + 4402000000B876BF44FE309744020000000277C344EEA09A44020000000277C3 + 4404DE9E44020000000277C344121BA34402000000B876BF44008CA644020000 + 00FE88BA44008CA644020000004C9BB544008CA64402000000009CB144121BA3 + 4402000000009CB14404DE9E4402000000009CB144EEA09A44020000004C9BB5 + 44FE30974402000000FE88BA44FE309744000000000080BA44045E9B44020000 + 00146EB844045E9B440200000000C0B64454F79C440200000000C0B64400F09E + 440200000000C0B644ACE8A04402000000146EB844FC81A244020000000080BA + 44FC81A24402000000EC91BC44FC81A244020000000040BE44ACE8A044020000 + 000040BE4400F09E44020000000040BE4454F79C4402000000EC91BC44045E9B + 44020000000080BA44045E9B440A46696C6C2E436F6C6F720709783630303030 + 3030300748697454657374080C4D617267696E732E4C65667405000000000000 + 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 + 696E732E526967687405000000000000008000400E4D617267696E732E426F74 + 746F6D05000000000000008000400A53697A652E576964746805000000000000 + 00A003400B53697A652E4865696768740500000000000000E803401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6508577261704D6F64650703466974000F54436F6C6F72416E696D617469 + 6F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709783630 + 3030303030300953746F7056616C75650708636C61426C61636B075472696767 + 6572060E4973436865636B65643D7472756500000F54436F6C6F72416E696D61 + 74696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070863 + 6C61426C61636B0953746F7056616C7565070978363030303030303007547269 + 67676572060F4973436865636B65643D66616C73650000000005545465787400 + 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 000000008002400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E5269676874050000000000000080FF3F0A53697A652E576964 + 74680500000000000000C605400B53697A652E48656967687405000000000000 + 00F803401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F72070978464645454545454516546578 + 7453657474696E67732E486F727A416C69676E07074C656164696E6700000054 + 50463007544C61796F757400095374796C654E616D65060D657870616E646572 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 0000000000C08607400B53697A652E4865696768740500000000000000CE0540 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F726465720239000A5452656374616E676C6500095374796C654E616D + 65060B626772656374616E676C6505416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646324432443244064C6F636B65640907486974 54657374080A53697A652E576964746805000000000000C08607400B53697A65 - 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 2E4865696768740500000000000000CE05401453697A652E506C6174666F726D 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 07585261646975730500000000000000C0004007595261646975730500000000 - 000000C0004000000A5452656374616E676C6500095374796C654E616D65060A - 52656374616E676C653105416C69676E0708436F6E74656E747307436F726E65 - 72730B07546F704C65667408546F705269676874000A46696C6C2E436F6C6F72 - 0709784646313531353135064C6F636B6564090748697454657374080A53697A - 652E576964746805000000000000C08607400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65075852616469757305000000000000 - 00C0004007595261646975730500000000000000C00040000F54466C6F617441 - 6E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D6174 - 696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0D496E - 746572706F6C6174696F6E070843697263756C61720C50726F70657274794E61 - 6D6506075363616C652E580A537461727456616C7565050000000000000080FF - 3F0953746F7056616C756505000000000000000000000754726967676572060F - 4973457870616E6465643D747275650E54726967676572496E76657273650610 - 4973457870616E6465643D66616C73650000000007544C61796F757400095374 - 796C654E616D6506074C61796F75743305416C69676E0708436F6E74656E7473 - 0A53697A652E576964746805000000000000C08607400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080005545465787400095374796C654E616D6506047465787405416C6967 - 6E07044C656674084175746F53697A65090A436C6970506172656E7409064C6F - 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 - 000000A002400A506F736974696F6E2E580500000000000000A002400A53697A - 652E576964746805000000000000B8C703400B53697A652E4865696768740500 - 000000000060FF02401453697A652E506C6174666F726D44656661756C740804 - 54657874060454657874165465787453657474696E67732E466F6E74436F6C6F - 720708636C615768697465165465787453657474696E67732E486F727A416C69 - 676E07074C656164696E670000000F54457870616E646572427574746F6E0009 - 5374796C654E616D650606627574746F6E05416C69676E07055269676874064C - 6F636B6564090A506F736974696F6E2E580500000000000080F906400A53697A - 652E57696474680500000000000000A003400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C740800 - 000000005450463007544C61796F757400095374796C654E616D650615616E69 - 696E64696361746F72686F727A7374796C6505416C69676E070643656E746572 - 0A53697A652E57696474680500000000000040C006400B53697A652E48656967 - 687405000000000000008000401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508000A5452656374616E676C6500095374796C654E - 616D65060A52656374616E676C653105416C69676E0706436C69656E740C436C - 69704368696C6472656E090A46696C6C2E436F6C6F7207097846463430343034 - 300A53697A652E57696474680500000000000040C006400B53697A652E486569 - 67687405000000000000008000401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 - 00000000000080FF3F0759526164697573050000000000000080FF3F0005544C - 696E6500095374796C654E616D6506054C696E6531084C696E65547970650706 - 426F74746F6D0A53697A652E57696474680500000000000000A00B400B53697A - 652E48656967687405000000000000008000401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463241383245 - 32105374726F6B652E546869636B6E65737305000000000000008002400A5374 - 726F6B652E4361700705526F756E640B5374726F6B652E446173680704446173 - 680B5374726F6B652E4A6F696E0705526F756E64000F54466C6F6174416E696D - 6174696F6E00095374796C654E616D650603616E6907456E61626C6564090844 - 75726174696F6E0500000000000000800340044C6F6F70090C50726F70657274 - 794E616D65060A506F736974696F6E2E580A537461727456616C756505000000 - 00000000C808C00953746F7056616C7565050000000000000000000007547269 - 67676572060E497356697369626C653D7472756500000000005450463007544C - 61796F757400095374796C654E616D650611616E69696E64696361746F727374 - 796C6505416C69676E070643656E7465720756697369626C6508000454417263 - 00095374796C654E616D65060341726305416C69676E0708436F6E74656E7473 - 0748697454657374080D526F746174696F6E416E676C650500000000000000B4 - 07400A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720708636C61576869746510537472 - 6F6B652E546869636B6E657373050000000000000080004008456E64416E676C - 650500000000000000B405C0000F54466C6F6174416E696D6174696F6E000953 - 74796C654E616D650603616E6907456E61626C656409084475726174696F6E05 - 0000000000000080FF3F044C6F6F70090C50726F70657274794E616D65060D52 - 6F746174696F6E416E676C650A537461727456616C7565050000000000000000 - 00000953746F7056616C75650500000000000000B40740075472696767657206 - 0E497356697369626C653D74727565000000005450463007544C61796F757400 - 095374796C654E616D65060A70616E656C7374796C6505416C69676E07064365 - 6E7465720A53697A652E57696474680500000000000000C006400B53697A652E - 4865696768740500000000000000A406401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A652E57 - 696474680500000000000000C006400B53697A652E4865696768740500000000 - 000000A406401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C000 - 4007595261646975730500000000000000C000400000005450463007544C6179 - 6F757400095374796C654E616D65061970726F67726573736261726D696E6965 - 72726F727374796C6505416C69676E070643656E7465720A53697A652E576964 - 746805000000000033338505400B53697A652E48656967687405000000000099 - 99E104401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C6508000A5452656374616E676C6500095374796C654E616D65060668747261 - 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 - 4646343034303430064C6F636B6564090748697454657374080A53697A652E57 - 6964746805000000000033338505400B53697A652E4865696768740500000000 - 009999E104401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65075852616469757305000000000000008000 - 4007595261646975730500000000000000800040000A5452656374616E676C65 - 00095374796C654E616D65060A68696E64696361746F7205416C69676E07044C - 6566740A46696C6C2E436F6C6F720709784646453232413241064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000000000C80440 + 000000C000400007544C61796F757400095374796C654E616D6506074C61796F + 75743305416C69676E0703546F700A53697A652E576964746805000000000000 + C08607400B53697A652E4865696768740500000000000000C803401453697A65 + 2E506C6174666F726D44656661756C74080007544C61796F757400095374796C + 654E616D6506074C61796F75743405416C69676E0708436F6E74656E74730A53 + 697A652E576964746805000000000000C08607400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653205416C69676E0708436F6E74656E747307436F726E6572730B07546F + 704C65667408546F705269676874000A46696C6C2E436F6C6F72070978464632 + 3532353235064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000000C08607400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135075852616469757305000000000000 + 00C0004007595261646975730500000000000000C0004000000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 + 6E0708436F6E74656E747307436F726E6572730B07546F704C65667408546F70 + 5269676874000A46696C6C2E436F6C6F720709784646313531353135064C6F63 + 6B6564090748697454657374080A53697A652E576964746805000000000000C0 + 8607400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E6507585261646975730500000000000000C000400759526164697573050000 + 0000000000C00040000F54466C6F6174416E696D6174696F6E00095374796C65 + 4E616D650614466C6F6174416E696D6174696F6E315374796C65084475726174 + 696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E07084369 + 7263756C61720C50726F70657274794E616D6506075363616C652E580A537461 + 727456616C7565050000000000000080FF3F0953746F7056616C756505000000 + 000000000000000754726967676572060F4973457870616E6465643D74727565 + 0E54726967676572496E766572736506104973457870616E6465643D66616C73 + 650000000007544C61796F757400095374796C654E616D6506074C61796F7574 + 3305416C69676E0708436F6E74656E74730A53697A652E576964746805000000 + 000000C08607400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C7408000554546578740009537479 + 6C654E616D6506047465787405416C69676E07044C656674084175746F53697A + 65090A436C6970506172656E7409064C6F636B6564090748697454657374080C + 4D617267696E732E4C6566740500000000000000A002400A506F736974696F6E + 2E580500000000000000A002400A53697A652E576964746805000000000000B8 + C703400B53697A652E4865696768740500000000000060FF02401453697A652E + 506C6174666F726D44656661756C740804546578740604546578741654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 + 7453657474696E67732E486F727A416C69676E07074C656164696E670000000F + 54457870616E646572427574746F6E00095374796C654E616D65060662757474 + 6F6E05416C69676E07055269676874064C6F636B6564090A506F736974696F6E + 2E580500000000000080F906400A53697A652E57696474680500000000000000 + A003400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C740800000000005450463007544C61796F75 + 7400095374796C654E616D650615616E69696E64696361746F72686F727A7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000040C006400B53697A652E48656967687405000000000000008000401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 + 05416C69676E0706436C69656E740C436C69704368696C6472656E090A46696C + 6C2E436F6C6F7207097846463430343034300A53697A652E5769647468050000 + 0000000040C006400B53697A652E486569676874050000000000000080004014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E650758526164697573050000000000000080FF3F075952616469 + 7573050000000000000080FF3F0005544C696E6500095374796C654E616D6506 + 054C696E6531084C696E65547970650706426F74746F6D0A53697A652E576964 + 74680500000000000000A00B400B53697A652E48656967687405000000000000 + 008000401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F720709784646324138324532105374726F6B652E546869636B6E + 65737305000000000000008002400A5374726F6B652E4361700705526F756E64 + 0B5374726F6B652E446173680704446173680B5374726F6B652E4A6F696E0705 + 526F756E64000F54466C6F6174416E696D6174696F6E00095374796C654E616D + 650603616E6907456E61626C656409084475726174696F6E0500000000000000 + 800340044C6F6F70090C50726F70657274794E616D65060A506F736974696F6E + 2E580A537461727456616C75650500000000000000C808C00953746F7056616C + 756505000000000000000000000754726967676572060E497356697369626C65 + 3D7472756500000000005450463007544C61796F757400095374796C654E616D + 650611616E69696E64696361746F727374796C6505416C69676E070643656E74 + 65720756697369626C650800045441726300095374796C654E616D6506034172 + 6305416C69676E0708436F6E74656E74730748697454657374080D526F746174 + 696F6E416E676C650500000000000000B407400A53697A652E57696474680500 + 000000000000C804400B53697A652E4865696768740500000000000000C80440 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F720708636C615768697465105374726F6B652E546869636B6E6573730500 + 00000000000080004008456E64416E676C650500000000000000B405C0000F54 + 466C6F6174416E696D6174696F6E00095374796C654E616D650603616E690745 + 6E61626C656409084475726174696F6E050000000000000080FF3F044C6F6F70 + 090C50726F70657274794E616D65060D526F746174696F6E416E676C650A5374 + 61727456616C756505000000000000000000000953746F7056616C7565050000 + 0000000000B407400754726967676572060E497356697369626C653D74727565 + 000000005450463007544C61796F757400095374796C654E616D65060A70616E + 656C7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C006400B53697A652E4865696768740500000000000000A4 + 06401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 097846463230323032300A53697A652E57696474680500000000000000C00640 + 0B53697A652E4865696768740500000000000000A406401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C000400000005450463007544C61796F757400095374796C654E616D6506 + 1970726F67726573736261726D696E696572726F727374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000033338505400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 + 00095374796C654E616D65060668747261636B05416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000003333850540 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 5852616469757305000000000000008000400759526164697573050000000000 - 00008000400000000A5452656374616E676C6500095374796C654E616D650606 - 76747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F - 720709784646343034303430064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000033338505400B53697A652E48656967687405 - 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 - 000080004007595261646975730500000000000000800040000A545265637461 - 6E676C6500095374796C654E616D65060A76696E64696361746F7205416C6967 - 6E0706426F74746F6D0A46696C6C2E436F6C6F72070978464645323241324106 - 4C6F636B6564090748697454657374080A506F736974696F6E2E590500000000 - 0099998D04400A53697A652E576964746805000000000033338505400B53697A - 652E4865696768740500000000000000A803401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 - 6975730500000000000000800040075952616469757305000000000000008000 - 40000000005450463007544C61796F757400095374796C654E616D65060E6C6F - 67627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E - 57696474680500000000000000C005400B53697A652E48656967687405000000 - 00000000C005401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F726465720201000A5452656374616E676C65000953 - 74796C654E616D65060A6261636B67726F756E6405416C69676E0706436C6965 - 6E740C436C69704368696C6472656E090A436C6970506172656E740907436F72 - 6E6572730B08546F7052696768740B426F74746F6D5269676874000A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E - 57696474680500000000000000C005400B53697A652E48656967687405000000 - 00000000C005401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0 - 004007595261646975730500000000000000C00040000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E - 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646343034303430 - 0754726967676572063049734D6F7573654F7665723D747275653B4973507265 - 737365643D66616C73653B4973466F63757365643D66616C73650E5472696767 - 6572496E7665727365063149734D6F7573654F7665723D66616C73653B497350 - 7265737365643D66616C73653B4973466F63757365643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F - 6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463430343034300953746F7056616C7565070978 - 46463137353739430754726967676572062F4973507265737365643D74727565 - 3B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C73 - 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 - 627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C756507097846463241383245320953746F7056616C - 756507097846463137353739430754726967676572062E497350726573736564 - 3D747275653B49734D6F7573654F7665723D747275653B4973466F6375736564 - 3D747275650E54726967676572496E7665727365062F4973507265737365643D - 66616C73653B49734D6F7573654F7665723D747275653B4973466F6375736564 - 3D74727565000005545061746800095374796C654E616D650605506174683105 - 416C69676E0706436C69656E7409446174612E506174680A5C02000032000000 - 000000000000A841CDCCCC40010000000000A8410000C041010000000000C03F - 0000C041010000000000C03F00000000010000009A9969410000000001000000 - 0000A841CDCCCC40030000000000A841CDCCCC400000000000009C410000F040 - 01000000000058410000F04001000000000058410000C03F0100000000004040 - 0000C03F01000000000040400000B4410100000000009C410000B44101000000 - 00009C410000F0400300000000009C410000F04000000000000040410000F040 - 01000000000090400000F04001000000000090400000C0400100000000004041 - 0000C04001000000000040410000F04003000000000040410000F04000000000 - 0000904000001041010000000000904100001041010000000000904100002841 - 0100000000009040000028410100000000009040000010410300000000009040 - 0000104100000000000090400000404101000000000090410000404101000000 - 0000904100005841010000000000904000005841010000000000904000004041 - 0300000000009040000040410000000000009040000070410100000000009041 - 0000704101000000000090410000844101000000000090400000844101000000 - 0000904000007041030000000000904000007041000000000000904000009041 - 010000000000904100009041010000000000904100009C410100000000009040 - 00009C4101000000000090400000904103000000000090400000904100000000 - 000070410000C04001000000333393410000C040010000000000704166662640 - 01000000000070410000C04003000000000070410000C0400A46696C6C2E436F - 6C6F720708636C6157686974650748697454657374080C4D617267696E732E4C - 6566740500000000000000A002400B4D617267696E732E546F70050000000000 - 0000A002400D4D617267696E732E52696768740500000000000000A002400E4D - 617267696E732E426F74746F6D0500000000000000A002400A53697A652E5769 - 64746805000000000000009805400B53697A652E486569676874050000000000 - 00009805401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6508577261704D6F646507034669740000000054 - 50463007544C61796F757400095374796C654E616D65061B7472656576696577 - 657870616E646572627574746F6E7374796C6505416C69676E070643656E7465 - 720B4D617267696E732E546F70050000000000000080FF3F0A53697A652E5769 - 6474680500000000000000B003400B53697A652E486569676874050000000000 - 0000B003401453697A652E506C6174666F726D44656661756C74080756697369 - 626C65080005545061746800095374796C654E616D650605506174683105416C - 69676E070643656E74657209446174612E506174680A34000000040000000000 - 00000000C8420000C84201000000000096430000C84201000000000048430000 - 9643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768 - 6974650748697454657374080D526F746174696F6E416E676C65050000000000 - 0000B405C00A53697A652E57696474680500000000000000A002400B53697A65 - 2E4865696768740500000000000000C001401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F - 6174416E696D6174696F6E00095374796C654E616D650614466C6F6174416E69 - 6D6174696F6E315374796C65084475726174696F6E0500000000000000000000 - 0D496E746572706F6C6174696F6E070843697263756C61720C50726F70657274 - 794E616D65060D526F746174696F6E416E676C650A537461727456616C756505 - 00000000000000B405C00953746F7056616C7565050000000000000000000007 - 54726967676572060F4973457870616E6465643D747275650E54726967676572 - 496E766572736506104973457870616E6465643D66616C736500000000545046 - 3007544C61796F757400095374796C654E616D65060D74726565766965777374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000E106400B53697A652E48656967687405000000000000808107401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508000C54 - 42727573684F626A65637400095374796C654E616D650618416C7465726E6174 - 696E67526F774261636B67726F756E640B42727573682E436F6C6F7207097830 - 4646464646464600000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646323032303230064C6F636B65640907486974546573 - 74080C50616464696E672E4C656674050000000000000080FF3F0D5061646469 - 6E672E5269676874050000000000000080FF3F0A53697A652E57696474680500 - 000000000000E106400B53697A652E4865696768740500000000000080810740 + 0000800040000A5452656374616E676C6500095374796C654E616D65060A6869 + 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 + 09784646453232413241064C6F636B6564090748697454657374080A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000009999E104401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + 800040075952616469757305000000000000008000400000000A545265637461 + 6E676C6500095374796C654E616D65060676747261636B05416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000033 + 338505400B53697A652E4865696768740500000000009999E104401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650758526164697573050000000000000080004007595261646975730500 + 000000000000800040000A5452656374616E676C6500095374796C654E616D65 + 060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E + 436F6C6F720709784646453232413241064C6F636B6564090748697454657374 + 080A506F736974696F6E2E5905000000000099998D04400A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000000 + 00A803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650758526164697573050000000000000080004007 + 595261646975730500000000000000800040000000005450463007544C61796F + 757400095374796C654E616D65060E6C6F67627574746F6E7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000C005 + 400B53697A652E4865696768740500000000000000C005401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 0201000A5452656374616E676C6500095374796C654E616D65060A6261636B67 + 726F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E + 090A436C6970506172656E740907436F726E6572730B08546F7052696768740B + 426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080A53697A652E57696474680500000000000000C005 + 400B53697A652E4865696768740500000000000000C005401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463230323032300953746F + 7056616C756507097846463430343034300754726967676572063049734D6F75 + 73654F7665723D747275653B4973507265737365643D66616C73653B4973466F + 63757365643D66616C73650E54726967676572496E7665727365063149734D6F + 7573654F7665723D66616C73653B4973507265737365643D66616C73653B4973 + 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E + 32084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463430 + 343034300953746F7056616C7565070978464631373537394307547269676765 + 72062F4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 75653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E33084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463241383245320953746F7056616C756507097846463137353739430754 + 726967676572062E4973507265737365643D747275653B49734D6F7573654F76 + 65723D747275653B4973466F63757365643D747275650E54726967676572496E + 7665727365062F4973507265737365643D66616C73653B49734D6F7573654F76 + 65723D747275653B4973466F63757365643D7472756500000554506174680009 + 5374796C654E616D650605506174683105416C69676E0706436C69656E740944 + 6174612E506174680A5C02000032000000000000000000A841CDCCCC40010000 + 000000A8410000C041010000000000C03F0000C041010000000000C03F000000 + 00010000009A99694100000000010000000000A841CDCCCC40030000000000A8 + 41CDCCCC400000000000009C410000F04001000000000058410000F040010000 + 00000058410000C03F01000000000040400000C03F01000000000040400000B4 + 410100000000009C410000B4410100000000009C410000F0400300000000009C + 410000F04000000000000040410000F04001000000000090400000F040010000 + 00000090400000C04001000000000040410000C04001000000000040410000F0 + 4003000000000040410000F04000000000000090400000104101000000000090 + 4100001041010000000000904100002841010000000000904000002841010000 + 0000009040000010410300000000009040000010410000000000009040000040 + 4101000000000090410000404101000000000090410000584101000000000090 + 4000005841010000000000904000004041030000000000904000004041000000 + 0000009040000070410100000000009041000070410100000000009041000084 + 4101000000000090400000844101000000000090400000704103000000000090 + 4000007041000000000000904000009041010000000000904100009041010000 + 000000904100009C41010000000000904000009C410100000000009040000090 + 4103000000000090400000904100000000000070410000C04001000000333393 + 410000C04001000000000070416666264001000000000070410000C040030000 + 00000070410000C0400A46696C6C2E436F6C6F720708636C6157686974650748 + 697454657374080C4D617267696E732E4C6566740500000000000000A002400B + 4D617267696E732E546F700500000000000000A002400D4D617267696E732E52 + 696768740500000000000000A002400E4D617267696E732E426F74746F6D0500 + 000000000000A002400A53697A652E576964746805000000000000009805400B + 53697A652E48656967687405000000000000009805401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650857 + 7261704D6F64650703466974000000005450463007544C61796F757400095374 + 796C654E616D65061B7472656576696577657870616E646572627574746F6E73 + 74796C6505416C69676E070643656E7465720B4D617267696E732E546F700500 + 00000000000080FF3F0A53697A652E57696474680500000000000000B003400B + 53697A652E4865696768740500000000000000B003401453697A652E506C6174 + 666F726D44656661756C74080756697369626C65080005545061746800095374 + 796C654E616D650605506174683105416C69676E070643656E74657209446174 + 612E506174680A3400000004000000000000000000C8420000C8420100000000 + 0096430000C842010000000000484300009643030000000000C8420000C8420A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080D526F + 746174696F6E416E676C650500000000000000B405C00A53697A652E57696474 + 680500000000000000A002400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374 + 796C654E616D650614466C6F6174416E696D6174696F6E315374796C65084475 + 726174696F6E05000000000000000000000D496E746572706F6C6174696F6E07 + 0843697263756C61720C50726F70657274794E616D65060D526F746174696F6E + 416E676C650A537461727456616C75650500000000000000B405C00953746F70 + 56616C756505000000000000000000000754726967676572060F497345787061 + 6E6465643D747275650E54726967676572496E76657273650610497345787061 + 6E6465643D66616C7365000000005450463007544C61796F757400095374796C + 654E616D65060D74726565766965777374796C6505416C69676E070643656E74 + 65720A53697A652E57696474680500000000000000E106400B53697A652E4865 + 6967687405000000000000808107401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508000C5442727573684F626A65637400095374 + 796C654E616D650618416C7465726E6174696E67526F774261636B67726F756E + 640B42727573682E436F6C6F72070978304646464646464600000A5452656374 + 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 + 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230 + 3230064C6F636B6564090748697454657374080C50616464696E672E4C656674 + 050000000000000080FF3F0D50616464696E672E526967687405000000000000 + 0080FF3F0A53697A652E57696474680500000000000000E106400B53697A652E + 48656967687405000000000000808107401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 + 676E0706436C69656E740C436C69704368696C6472656E090B4D617267696E73 + 2E546F70050000000000000080FF3F0A53697A652E5769647468050000000000 + 0000CD06400B53697A652E4865696768740500000000000000F006401453697A + 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 + 5374796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C6F7207 + 097846463241383245320748697454657374080A53697A652E57696474680500 + 000000000000C804400B53697A652E4865696768740500000000000000C80440 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6507585261646975730500000000000000C000400759526164 + 6975730500000000000000C0004000000A5452656374616E676C650009537479 + 6C654E616D650610666F637573656473656C656374696F6E0A46696C6C2E436F + 6C6F7207097846463241383245320748697454657374080A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650B5374726F6B652E446173680703446F74075852 + 61646975730500000000000000C0004007595261646975730500000000000000 + C000400000000A545363726F6C6C42617200095374796C654E616D65060A7673 + 63726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E67 + 6505000000000000000000000B4F7269656E746174696F6E0708566572746963 + 616C0C4D617267696E732E4C65667405000000000000008000400A506F736974 + 696F6E2E580500000000000000D006400A53697A652E57696474680500000000 + 0000008003400B53697A652E4865696768740500000000000000F10640145369 + 7A652E506C6174666F726D44656661756C740800000A545363726F6C6C426172 + 00095374796C654E616D65060A687363726F6C6C62617205416C69676E070642 + 6F74746F6D0B536D616C6C4368616E676505000000000000000000000B4F7269 + 656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F70 + 05000000000000008000400A506F736974696F6E2E58050000000000000080FF + 3F0A506F736974696F6E2E590500000000000000F306400A53697A652E576964 + 74680500000000000000DF06400B53697A652E48656967687405000000000000 + 008003401453697A652E506C6174666F726D44656661756C740800000F54536D + 616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C73 + 63726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E67 + 6505000000000000000000000B4F7269656E746174696F6E0708566572746963 + 616C0C4D617267696E732E4C65667405000000000000008000400A506F736974 + 696F6E2E580500000000000000C605400A506F736974696F6E2E590500000000 + 0000008000400A53697A652E576964746805000000000000008002400B53697A + 652E48656967687405000000000000008002401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C650800000F54536D616C6C5363726F6C + 6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C626172 + 05416C69676E0706426F74746F6D0B536D616C6C4368616E6765050000000000 + 00000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D61 + 7267696E732E546F7005000000000000008000400A506F736974696F6E2E5805 + 000000000000008000400A506F736974696F6E2E590500000000000000E20540 + 0A53697A652E576964746805000000000000009606400B53697A652E48656967 + 687405000000000000008002401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C650800000000545046300A5452656374616E676C6500 + 095374796C654E616D65061174726565766965776974656D7374796C6505416C + 69676E070643656E7465720946696C6C2E4B696E6407044E6F6E650748697454 + 657374080553696465730B06426F74746F6D000A53697A652E57696474680500 + 000000000000AE05400B53697A652E4865696768740500000000000000A00440 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F7207097846463135313531350007544C61796F757400095374796C654E61 - 6D650607636F6E74656E7405416C69676E0706436C69656E740C436C69704368 - 696C6472656E090B4D617267696E732E546F70050000000000000080FF3F0A53 - 697A652E57696474680500000000000000CD06400B53697A652E486569676874 - 0500000000000000F006401453697A652E506C6174666F726D44656661756C74 - 08000A5452656374616E676C6500095374796C654E616D65060973656C656374 - 696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974546573 - 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 - 00000000000000C0004007595261646975730500000000000000C0004000000A - 5452656374616E676C6500095374796C654E616D650610666F63757365647365 - 6C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532074869 - 7454657374080A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000000C804401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F - 6B652E446173680703446F7407585261646975730500000000000000C0004007 - 595261646975730500000000000000C000400000000A545363726F6C6C426172 - 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 - 696768740B536D616C6C4368616E676505000000000000000000000B4F726965 - 6E746174696F6E0708566572746963616C0C4D617267696E732E4C6566740500 - 0000000000008000400A506F736974696F6E2E580500000000000000D006400A - 53697A652E576964746805000000000000008003400B53697A652E4865696768 - 740500000000000000F106401453697A652E506C6174666F726D44656661756C - 740800000A545363726F6C6C42617200095374796C654E616D65060A68736372 - 6F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E6765 - 05000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E - 74616C0B4D617267696E732E546F7005000000000000008000400A506F736974 - 696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500000000 - 000000F306400A53697A652E57696474680500000000000000DF06400B53697A - 652E48656967687405000000000000008003401453697A652E506C6174666F72 - 6D44656661756C740800000F54536D616C6C5363726F6C6C4261720009537479 - 6C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E070552 - 696768740B536D616C6C4368616E676505000000000000000000000B4F726965 - 6E746174696F6E0708566572746963616C0C4D617267696E732E4C6566740500 - 0000000000008000400A506F736974696F6E2E580500000000000000C605400A - 506F736974696F6E2E5905000000000000008000400A53697A652E5769647468 - 05000000000000008002400B53697A652E486569676874050000000000000080 - 02401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 0800000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F - 68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D - 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E - 070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000000000 - 8000400A506F736974696F6E2E5805000000000000008000400A506F73697469 - 6F6E2E590500000000000000E205400A53697A652E5769647468050000000000 - 00009606400B53697A652E48656967687405000000000000008002401453697A - 652E506C6174666F726D44656661756C74080756697369626C65080000000054 - 5046300A5452656374616E676C6500095374796C654E616D6506117472656576 - 6965776974656D7374796C6505416C69676E070643656E7465720946696C6C2E - 4B696E6407044E6F6E650748697454657374080553696465730B06426F74746F - 6D000A53697A652E57696474680500000000000000AE05400B53697A652E4865 - 696768740500000000000000A004401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F7207097846463135313531350B5374 - 726F6B652E4A6F696E0705526F756E640756697369626C6508000C5453706565 - 64427574746F6E00095374796C654E616D650606627574746F6E05416C69676E - 07044C6566740A53697A652E57696474680500000000000000A003400B53697A - 652E4865696768740500000000000000A004401453697A652E506C6174666F72 - 6D44656661756C74080B5374796C654C6F6F6B7570061B747265657669657765 - 7870616E646572627574746F6E7374796C65000007544C61796F75740005416C - 69676E0708436F6E74656E74730C4D617267696E732E4C656674050000000000 - 0000A003400A53697A652E576964746805000000000000008605400B53697A65 - 2E4865696768740500000000000000A004401453697A652E506C6174666F726D - 44656661756C7408000954436865636B426F7800095374796C654E616D650605 - 636865636B05416C69676E07044C6566740843616E466F637573081244697361 - 626C65466F637573456666656374090A53697A652E5769647468050000000000 - 0000A003400B53697A652E4865696768740500000000000000A004401453697A - 652E506C6174666F726D44656661756C740800000654476C7970680009537479 - 6C654E616D65060A676C7970687374796C650C4D617267696E732E4C65667405 - 000000000000008000400B4D617267696E732E546F70050000000000000080FF - 3F0D4D617267696E732E526967687405000000000000008000400E4D61726769 - 6E732E426F74746F6D050000000000000080FF3F05416C69676E07044C656674 - 0A506F736974696F6E2E580500000000000000B003400A506F736974696F6E2E - 59050000000000000080FF3F0A53697A652E5769647468050000000000000080 - 03400B53697A652E48656967687405000000000000009804401453697A652E50 - 6C6174666F726D44656661756C7408000005545465787400095374796C654E61 - 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 - 697454657374080A53697A652E57696474680500000000000000D803400B5369 - 7A652E4865696768740500000000000000A004401453697A652E506C6174666F - 726D44656661756C74080454657874060454657874165465787453657474696E - 67732E466F6E74436F6C6F720708636C61576869746515546578745365747469 - 6E67732E576F72645772617008165465787453657474696E67732E486F727A41 - 6C69676E07074C656164696E670000000A5452656374616E676C650005416C69 - 676E07074669744C6566740946696C6C2E4B696E6407044E6F6E650748697454 - 657374080E4D617267696E732E426F74746F6D050000000000000080FF3F0553 - 696465730B044C656674000A53697A652E576964746805000000000098858905 - 400B53697A652E48656967687405000000000000009C04401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 324138324532105374726F6B652E546869636B6E657373050000000000000080 - 0040000000} + 6C6F7207097846463135313531350B5374726F6B652E4A6F696E0705526F756E + 640756697369626C6508000C545370656564427574746F6E00095374796C654E + 616D650606627574746F6E05416C69676E07044C6566740A53697A652E576964 + 74680500000000000000A003400B53697A652E48656967687405000000000000 + 00A004401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B7570061B7472656576696577657870616E646572627574746F6E7374 + 796C65000007544C61796F75740005416C69676E0708436F6E74656E74730C4D + 617267696E732E4C6566740500000000000000A003400A53697A652E57696474 + 6805000000000000008605400B53697A652E4865696768740500000000000000 + A004401453697A652E506C6174666F726D44656661756C740800095443686563 + 6B426F7800095374796C654E616D650605636865636B05416C69676E07044C65 + 66740843616E466F637573081244697361626C65466F63757345666665637409 + 0A53697A652E57696474680500000000000000A003400B53697A652E48656967 + 68740500000000000000A004401453697A652E506C6174666F726D4465666175 + 6C740800000654476C79706800095374796C654E616D65060A676C7970687374 + 796C650C4D617267696E732E4C65667405000000000000008000400B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 05000000000000008000400E4D617267696E732E426F74746F6D050000000000 + 000080FF3F05416C69676E07044C6566740A506F736974696F6E2E5805000000 + 00000000B003400A506F736974696F6E2E59050000000000000080FF3F0A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 000000000000009804401453697A652E506C6174666F726D44656661756C7408 + 000005545465787400095374796C654E616D6506047465787405416C69676E07 + 06436C69656E74064C6F636B6564090748697454657374080A53697A652E5769 + 6474680500000000000000BC04400B53697A652E486569676874050000000000 + 0000A004401453697A652E506C6174666F726D44656661756C74080454657874 + 060454657874165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C615768697465155465787453657474696E67732E576F726457726170081654 + 65787453657474696E67732E486F727A416C69676E07074C656164696E670000 + 000A5452656374616E676C650005416C69676E07074669744C6566740946696C + 6C2E4B696E6407044E6F6E650748697454657374080E4D617267696E732E426F + 74746F6D050000000000000080FF3F0553696465730B044C656674000A53697A + 652E576964746805000000000098858905400B53697A652E4865696768740500 + 0000000000009C04401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646324138324532105374726F6B652E54 + 6869636B6E6573730500000000000000800040000000} end> - Left = 8 - Top = 408 + Left = 64 + Top = 144 end object AERModernAnimatedStyle: TStyleBook StyleName = 'AER Modern Smooth Style' @@ -17786,19 +17782,19 @@ object MainForm: TMainForm 696474680500000000000000C004400B53697A652E4865696768740500000000 000000C004401453697A652E506C6174666F726D44656661756C7408000000} end> - Left = 8 - Top = 368 + Left = 64 + Top = 96 end object mainLayout: TLayout Align = Contents - Size.Width = 1212.000000000000000000 - Size.Height = 671.000000000000000000 + Size.Width = 1220.000000000000000000 + Size.Height = 617.000000000000000000 Size.PlatformDefault = False TabOrder = 43 object bottomButtonsLayout: TLayout Align = Bottom - Position.Y = 623.000000000000000000 - Size.Width = 1212.000000000000000000 + Position.Y = 569.000000000000000000 + Size.Width = 1220.000000000000000000 Size.Height = 48.000000000000000000 Size.PlatformDefault = False object launchButton: TButton @@ -18836,14 +18832,6 @@ object MainForm: TMainForm Stroke.Kind = None end end - object XMLOpenDialog: TOpenDialog - Filter = - 'All compatible files|*.aer;*.xml|Launcher configuration|*.aer|XM' + - 'L Launcher configuration|*.xml|All Files|*.*' - Title = 'Launcher configuration' - Left = 72 - Top = 488 - end object Button1: TButton Align = MostRight Enabled = False @@ -18897,10 +18885,10 @@ object MainForm: TMainForm end object TasksToolbar: TToolBar PopupMenu = ToolbarPopupMenu - Size.Width = 1212.000000000000000000 + Size.Width = 1220.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False - object Label5: TLabel + object TasksLabel: TLabel Align = Left StyledSettings = [Family, FontColor] Margins.Left = 16.000000000000000000 @@ -18918,7 +18906,7 @@ object MainForm: TMainForm Margins.Top = 4.000000000000000000 Margins.Right = 4.000000000000000000 Margins.Bottom = 4.000000000000000000 - Position.X = 1104.000000000000000000 + Position.X = 1112.000000000000000000 Position.Y = 4.000000000000000000 Size.Width = 104.000000000000000000 Size.Height = 24.000000000000000000 @@ -18937,7 +18925,7 @@ object MainForm: TMainForm Margins.Top = 4.000000000000000000 Margins.Right = 4.000000000000000000 Margins.Bottom = 4.000000000000000000 - Position.X = 1000.000000000000000000 + Position.X = 1008.000000000000000000 Position.Y = 4.000000000000000000 Size.Width = 96.000000000000000000 Size.Height = 24.000000000000000000 @@ -18957,70 +18945,214 @@ object MainForm: TMainForm Margins.Right = -1.000000000000000000 Margins.Bottom = -1.000000000000000000 PopupMenu = TasksPopupMenu - Size.Width = 1214.000000000000000000 - Size.Height = 593.000000000000000000 + Size.Width = 1222.000000000000000000 + Size.Height = 515.000000000000000000 Size.PlatformDefault = False StyleLookup = 'treeviewstyle' + OnDragDrop = TasksTreeViewDragDrop OnMouseMove = TasksTreeViewMouseMove AllowDrag = True AlternatingRowBackground = True ItemHeight = 24.000000000000000000 OnDragChange = TasksTreeViewDragChange OnKeyDown = TasksTreeViewKeyDown - Viewport.Width = 1212.000000000000000000 - Viewport.Height = 592.000000000000000000 - object TreeViewItem2: TTreeViewItem + Viewport.Width = 1220.000000000000000000 + Viewport.Height = 514.000000000000000000 + object TasksIsEmpty: TLayout + Align = Client + Size.Width = 1220.000000000000000000 + Size.Height = 514.000000000000000000 + Size.PlatformDefault = False + object TasksIsEmptyLabel: TLabel + Align = Center + AutoSize = True + StyledSettings = [Family, FontColor] + Margins.Right = 112.000000000000000000 + Size.Width = 177.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Size = 24.000000000000000000 + TextSettings.Font.StyleExt = {00070000000000000004000000} + TextSettings.HorzAlign = Center + TextSettings.WordWrap = False + Text = 'No active tasks.' + end + object TeskIsEmptyAddLabel: TLabel + Align = Center + AutoSize = True + Cursor = crHandPoint + StyledSettings = [Family, FontColor] + HitTest = True + Margins.Left = 185.000000000000000000 + Size.Width = 106.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'linklabelstyle' + TextSettings.Font.Size = 24.000000000000000000 + TextSettings.Font.StyleExt = {04070000000000000004000000} + TextSettings.HorzAlign = Center + TextSettings.WordWrap = False + Text = 'Add one?' + OnClick = AddTaskButtonClick + end + object Label5: TLabel + Align = Center + AutoSize = True + Enabled = False + StyledSettings = [Family, FontColor] + Opacity = 0.500000000000000000 + Size.Width = 290.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Size = 24.000000000000000000 + TextSettings.Font.StyleExt = {00070000000000000004000000} + TextSettings.HorzAlign = Center + TextSettings.WordWrap = False + Text = 'No active tasks. Add one?' + Visible = False + end + object DebugLabel: TLabel + Anchors = [akLeft, akBottom] + AutoSize = True + Position.X = 32.000000000000000000 + Position.Y = 472.000000000000000000 + Size.Width = 64.000000000000000000 + Size.Height = 16.000000000000000000 + Size.PlatformDefault = False + TextSettings.WordWrap = False + Text = 'DebugLabel' + Visible = False + end + end + end + object GridPanelLayout4: TGridPanelLayout + Align = Top + Position.Y = 32.000000000000000000 + Size.Width = 1220.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + ColumnCollection = < + item + Value = 100.000000000000000000 + end + item + SizeStyle = Absolute + Value = 100.000000000000000000 + end + item + SizeStyle = Absolute + Value = 100.000000000000000000 + end + item + SizeStyle = Absolute + Value = 100.000000000000000000 + end> + ControlCollection = < + item + Column = 0 + Control = Label1 + Row = 0 + end + item + Column = 1 + Control = Label2 + Row = 0 + end + item + Column = 2 + Control = Label3 + Row = 0 + end + item + Column = 3 + Control = Label4 + Row = 0 + end> + RowCollection = < + item + Value = 100.000000000000000000 + end + item + SizeStyle = Auto + end> + object Label1: TLabel + Align = Left StyledSettings = [Family, Size, FontColor] + Margins.Left = 20.000000000000000000 + Position.X = 20.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} - IsChecked = False - IsExpanded = True - IsSelected = False - Text = 'Project' - object TreeViewItem10: TTreeViewItem - IsChecked = False - IsExpanded = False - IsSelected = False - Text = 'Composition' - object CompLabel1: TCompLabel - Align = Client - Size.Width = 1192.000000000000000000 - Size.Height = 24.000000000000000000 - Size.PlatformDefault = False - InFrame = '3600' - OutFrame = '6310' - Split = '64' - end - end + Text = 'Composition' + end + object Label2: TLabel + Align = Left + StyledSettings = [Family, Size, FontColor] + Position.X = 920.000000000000000000 + Size.Width = 71.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.StyleExt = {00070000000000000004000000} + Text = 'Start Frame' + end + object Label3: TLabel + Align = Left + StyledSettings = [Family, Size, FontColor] + Position.X = 1020.000000000000000000 + Size.Width = 71.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.StyleExt = {00070000000000000004000000} + Text = 'End Frame' + end + object Label4: TLabel + Align = Left + StyledSettings = [Family, Size, FontColor] + Position.X = 1120.000000000000000000 + Size.Width = 71.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.StyleExt = {00070000000000000004000000} + Text = 'Split' end end end object TasksPopupMenu: TPopupMenu OnPopup = TasksPopupMenuPopup - Left = 984 - Top = 168 - object MenuItem1: TMenuItem - Text = 'MenuItem1' + Left = 456 + Top = 144 + object TaskItemDisplay: TMenuItem + Enabled = False + Text = '[item]' + end + object TasksPopupSeparator1: TMenuItem + Text = '-' + end + object AddTaskPopupItem: TMenuItem + Text = 'New Task' + OnClick = AddTaskButtonClick end - object MenuItem2: TMenuItem - Text = 'MenuItem2' + object EditTaskPopupItem: TMenuItem + Text = 'Edit Task' end - object MenuItem3: TMenuItem - Text = 'MenuItem3' + object DeleteTaskPopupItem: TMenuItem + Text = 'Delete Task' end end - object Popup1: TPopup + object TaskEditorPopup: TPopup ClipChildren = True Placement = BottomCenter PlacementTarget = TasksToolbar - Position.X = 272.000000000000000000 + Position.X = 550.000000000000000000 Position.Y = 88.000000000000000000 Size.Width = 640.000000000000000000 Size.Height = 384.000000000000000000 Size.PlatformDefault = False StyleLookup = 'popupbackgroundstyle' VerticalOffset = -1.000000000000000000 - OnPopup = Popup1Popup - object NewTaskTabControl: TTabControl + OnPopup = TaskEditorPopupPopup + object TaskEditorTabControl: TTabControl Align = Contents Margins.Left = -2.000000000000000000 Margins.Top = -2.000000000000000000 @@ -19031,12 +19163,13 @@ object MainForm: TMainForm Size.PlatformDefault = False TabIndex = 0 TabPosition = Dots + OnChange = TaskEditorTabControlChange Sizes = ( 640s 384s 640s 384s) - object NewTaskStepOne: TTabItem + object TaskEditorStepOne: TTabItem CustomIcon = < item end> @@ -19047,26 +19180,30 @@ object MainForm: TMainForm StyleLookup = '' TabOrder = 0 Text = 'Basic properties' + ExplicitSize.cx = 8.000000000000000000 + ExplicitSize.cy = 8.000000000000000000 object launcherLayout: TLayout Align = Client Size.Width = 640.000000000000000000 - Size.Height = 351.000000000000000000 + Size.Height = 322.000000000000000000 Size.PlatformDefault = False object inputFileLayout: TLayout Align = Top - Margins.Left = 5.000000000000000000 - Margins.Right = 5.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 Position.X = 5.000000000000000000 Size.Width = 630.000000000000000000 - Size.Height = 60.000000000000000000 + Size.Height = 30.000000000000000000 Size.PlatformDefault = False + Visible = False object InputLabels: TLayout Align = Left Size.Width = 113.000000000000000000 - Size.Height = 60.000000000000000000 + Size.Height = 30.000000000000000000 Size.PlatformDefault = False - object projectPathLabel: TLabel + object _projectPathLabel: TLabel Align = Client + Enabled = False Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 33.000000000000000000 @@ -19074,25 +19211,25 @@ object MainForm: TMainForm Size.Height = 22.000000000000000000 Size.PlatformDefault = False Text = 'Project file path: ' + Visible = False end - object outputPathLabel: TLabel + object _outputPathLabel: TLabel Align = Client Margins.Top = 33.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 Size.Width = 108.000000000000000000 - Size.Height = 22.000000000000000000 + Size.Height = 0.000000000000000000 Size.PlatformDefault = False - StyleLookup = 'Label2Style1' Text = 'Output file path:' end end object pathLayout: TLayout Align = Client Size.Width = 404.000000000000000000 - Size.Height = 60.000000000000000000 + Size.Height = 30.000000000000000000 Size.PlatformDefault = False - object outputPath: TEdit + object _outputPath: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Client Margins.Left = 5.000000000000000000 @@ -19100,12 +19237,13 @@ object MainForm: TMainForm Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 Size.Width = 394.000000000000000000 - Size.Height = 22.000000000000000000 + Size.Height = 0.000000000000000000 Size.PlatformDefault = False end - object projectPath: TEdit + object _projectPath: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Client + Enabled = False Margins.Left = 5.000000000000000000 Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 @@ -19113,18 +19251,20 @@ object MainForm: TMainForm Size.Width = 394.000000000000000000 Size.Height = 22.000000000000000000 Size.PlatformDefault = False - OnDragOver = projectPathDragOver - OnDragDrop = projectPathDragDrop + Visible = False + OnDragOver = _projectPathDragOver + OnDragDrop = _projectPathDragDrop end end object fileChooseLayout: TLayout Align = Right Position.X = 517.000000000000000000 Size.Width = 113.000000000000000000 - Size.Height = 60.000000000000000000 + Size.Height = 30.000000000000000000 Size.PlatformDefault = False object openFile: TButton Align = Client + Enabled = False Margins.Left = 5.000000000000000000 Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 @@ -19133,44 +19273,44 @@ object MainForm: TMainForm Size.Height = 22.000000000000000000 Size.PlatformDefault = False Text = 'Choose file...' + Visible = False OnClick = openFileClick end - object saveFile: TButton + object _saveFile: TButton Align = Client Margins.Left = 5.000000000000000000 Margins.Top = 33.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 Size.Width = 103.000000000000000000 - Size.Height = 22.000000000000000000 + Size.Height = 0.000000000000000000 Size.PlatformDefault = False Text = 'Choose file...' - OnClick = saveFileClick + OnClick = _saveFileClick end end end object properties: TGroupBox Align = Top - Margins.Left = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 118.000000000000000000 - Size.Width = 630.000000000000000000 - Size.Height = 149.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 96.000000000000000000 + Size.Width = 624.000000000000000000 + Size.Height = 152.000000000000000000 Size.PlatformDefault = False Text = 'Properties' object memUsageLayout: TLayout Align = Bottom - Position.Y = 120.000000000000000000 - Size.Width = 630.000000000000000000 - Size.Height = 29.000000000000000000 + Position.Y = 124.000000000000000000 + Size.Width = 624.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False object memUsageLabel: TLabel Align = Left - Margins.Left = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 + Margins.Left = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 16.000000000000000000 Size.Width = 140.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False @@ -19181,7 +19321,7 @@ object MainForm: TMainForm CanParentFocus = True Orientation = Horizontal Margins.Top = 5.000000000000000000 - Size.Width = 347.000000000000000000 + Size.Width = 339.000000000000000000 Size.Height = 17.000000000000000000 Size.PlatformDefault = False Value = 100.000000000000000000 @@ -19191,11 +19331,11 @@ object MainForm: TMainForm Align = Right Cursor = crHandPoint HitTest = True - Margins.Right = 15.000000000000000000 + Margins.Right = 16.000000000000000000 Margins.Bottom = 5.000000000000000000 - Position.X = 502.000000000000000000 + Position.X = 495.000000000000000000 Size.Width = 113.000000000000000000 - Size.Height = 24.000000000000000000 + Size.Height = 23.000000000000000000 Size.PlatformDefault = False StyleLookup = 'linklabelstyle' TextSettings.FontColor = claWhite @@ -19223,15 +19363,15 @@ object MainForm: TMainForm end object cacheUsageLayout: TLayout Align = Bottom - Position.Y = 91.000000000000000000 - Size.Width = 630.000000000000000000 - Size.Height = 29.000000000000000000 + Position.Y = 96.000000000000000000 + Size.Width = 624.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False object cacheUsageLimitLabel: TLabel Align = Left - Margins.Left = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 + Margins.Left = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 16.000000000000000000 Size.Width = 140.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False @@ -19242,7 +19382,7 @@ object MainForm: TMainForm CanParentFocus = True Orientation = Horizontal Margins.Top = 5.000000000000000000 - Size.Width = 347.000000000000000000 + Size.Width = 339.000000000000000000 Size.Height = 17.000000000000000000 Size.PlatformDefault = False Value = 100.000000000000000000 @@ -19252,9 +19392,9 @@ object MainForm: TMainForm Align = Right Cursor = crHandPoint HitTest = True - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 502.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 495.000000000000000000 Size.Width = 113.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False @@ -19285,8 +19425,8 @@ object MainForm: TMainForm end object GridPanelLayout3: TGridPanelLayout Align = Client - Size.Width = 630.000000000000000000 - Size.Height = 91.000000000000000000 + Size.Width = 624.000000000000000000 + Size.Height = 96.000000000000000000 Size.PlatformDefault = False ColumnCollection = < item @@ -19316,32 +19456,32 @@ object MainForm: TMainForm object properiesLayout2: TLayout Align = Client Anchors = [] - Margins.Top = 10.000000000000000000 - Size.Width = 315.000000000000000000 - Size.Height = 81.000000000000000000 + Margins.Top = 16.000000000000000000 + Size.Width = 312.000000000000000000 + Size.Height = 80.000000000000000000 Size.PlatformDefault = False object customProp: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Top - Position.X = 10.000000000000000000 - Position.Y = 34.000000000000000000 + Position.X = 16.000000000000000000 + Position.Y = 31.000000000000000000 Enabled = False - Margins.Left = 10.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 10.000000000000000000 - Size.Width = 295.000000000000000000 + Margins.Left = 16.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 16.000000000000000000 + Size.Width = 280.000000000000000000 Size.Height = 23.000000000000000000 Size.PlatformDefault = False TextPrompt = 'Separate flags with spaces!' end object customCheckbox: TCheckBox Align = Top - Margins.Left = 10.000000000000000000 - Margins.Top = 10.000000000000000000 - Margins.Right = 10.000000000000000000 - Position.X = 10.000000000000000000 - Position.Y = 10.000000000000000000 - Size.Width = 295.000000000000000000 + Margins.Left = 16.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Right = 16.000000000000000000 + Position.X = 16.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 280.000000000000000000 Size.Height = 19.000000000000000000 Size.PlatformDefault = False Text = 'Custom Properies' @@ -19349,43 +19489,43 @@ object MainForm: TMainForm end object propertiesLayout1: TLayout Align = Client - Margins.Top = 10.000000000000000000 - Size.Width = 315.000000000000000000 - Size.Height = 81.000000000000000000 + Margins.Top = 16.000000000000000000 + Size.Width = 312.000000000000000000 + Size.Height = 80.000000000000000000 Size.PlatformDefault = False object missingFilesCheckbox: TCheckBox Align = Top - Margins.Left = 15.000000000000000000 - Margins.Top = 10.000000000000000000 - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 - Position.Y = 10.000000000000000000 - Size.Width = 285.000000000000000000 + Margins.Left = 16.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 16.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 280.000000000000000000 Size.Height = 19.000000000000000000 Size.PlatformDefault = False Text = 'Render with missing files' end object threadedRender: TCheckBox Align = Top - Margins.Left = 15.000000000000000000 - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 - Position.Y = 58.000000000000000000 - Size.Width = 285.000000000000000000 + Margins.Left = 16.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 16.000000000000000000 + Position.Y = 54.000000000000000000 + Size.Width = 280.000000000000000000 Size.Height = 19.000000000000000000 Size.PlatformDefault = False Text = 'Enable CPU Multithreading' end object soundCheckbox: TCheckBox Align = Top - Margins.Left = 15.000000000000000000 - Margins.Right = 15.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 15.000000000000000000 - Position.Y = 34.000000000000000000 - Size.Width = 285.000000000000000000 + Margins.Left = 16.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 16.000000000000000000 + Position.Y = 31.000000000000000000 + Size.Width = 280.000000000000000000 Size.Height = 19.000000000000000000 Size.PlatformDefault = False Text = 'Play sound when render finishes' @@ -19396,29 +19536,29 @@ object MainForm: TMainForm object outputModuleLayout: TLayout Align = Top EnableDragHighlight = False - Margins.Left = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 60.000000000000000000 - Size.Width = 630.000000000000000000 - Size.Height = 29.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 32.000000000000000000 + Size.Width = 624.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False object outputModuleBox: TComboBox Align = Client DropDownKind = Custom - Margins.Left = 10.000000000000000000 - Margins.Top = 3.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 3.000000000000000000 - Size.Width = 487.000000000000000000 - Size.Height = 23.000000000000000000 + Margins.Left = 16.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 472.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False OnChange = outputModuleBoxChange end object outputModuleLabel: TLabel Align = Left Size.Width = 128.000000000000000000 - Size.Height = 29.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.WordWrap = False Text = 'Output Module Preset:' @@ -19427,29 +19567,29 @@ object MainForm: TMainForm object renderSettingsLayout: TLayout Align = Top EnableDragHighlight = False - Margins.Left = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 89.000000000000000000 - Size.Width = 630.000000000000000000 - Size.Height = 29.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 64.000000000000000000 + Size.Width = 624.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False object renderSettingsBox: TComboBox Align = Client DropDownKind = Custom - Margins.Left = 10.000000000000000000 - Margins.Top = 3.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 3.000000000000000000 - Size.Width = 487.000000000000000000 - Size.Height = 23.000000000000000000 + Margins.Left = 16.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 472.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False OnChange = renderSettingsBoxChange end object renderSettingsLabel: TLabel Align = Left Size.Width = 128.000000000000000000 - Size.Height = 29.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.WordWrap = False Text = 'Render Settings:' @@ -19825,48 +19965,50 @@ object MainForm: TMainForm end end end - object NewTaskStepOneStatusBar: TStatusBar - Margins.Left = 1.000000000000000000 - Margins.Right = 1.000000000000000000 - Margins.Bottom = 1.000000000000000000 - Position.X = 1.000000000000000000 - Position.Y = 322.000000000000000000 - ShowSizeGrip = True - Size.Width = 638.000000000000000000 - Size.Height = 28.000000000000000000 + object Layout3: TLayout + Align = Top + EnableDragHighlight = False + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 8.000000000000000000 + Size.Width = 624.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False - object NewTaskCompButton: TButton - Align = Right - Margins.Left = 4.000000000000000000 + object outputPathLabel: TLabel + Align = Left + Size.Width = 128.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.WordWrap = False + Text = 'Output file path:' + end + object outputPath: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + Margins.Left = 16.000000000000000000 Margins.Top = 4.000000000000000000 - Margins.Right = 4.000000000000000000 Margins.Bottom = 4.000000000000000000 - Position.X = 530.000000000000000000 - Position.Y = 4.000000000000000000 - Size.Width = 104.000000000000000000 - Size.Height = 20.000000000000000000 + Size.Width = 372.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False - Text = 'Compositions >>' - OnClick = NewTaskCompButtonClick end - object NewTaskCancelButton: TButton - Align = Left - ModalResult = 2 + object saveFile: TButton + Align = Right Margins.Left = 4.000000000000000000 Margins.Top = 4.000000000000000000 - Margins.Right = 4.000000000000000000 + Margins.Right = 8.000000000000000000 Margins.Bottom = 4.000000000000000000 - Position.X = 4.000000000000000000 + Position.X = 520.000000000000000000 Position.Y = 4.000000000000000000 - Size.Width = 64.000000000000000000 - Size.Height = 20.000000000000000000 + Size.Width = 96.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False - Text = 'Cancel' - OnClick = NewTaskCancelButtonClick + Text = 'Choose file...' + OnClick = _saveFileClick end end end - object NewTaskStepOneToolbar: TToolBar + object TaskEditorStepOneToolbar: TToolBar Margins.Left = 1.000000000000000000 Margins.Top = 1.000000000000000000 Margins.Right = 1.000000000000000000 @@ -19876,21 +20018,87 @@ object MainForm: TMainForm Size.Width = 638.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False - object NewTaskStepOneLabel: TLabel + object TaskEditorStepOneLabel: TLabel Align = Left + AutoSize = True StyledSettings = [Family, FontColor] Margins.Left = 16.000000000000000000 Position.X = 16.000000000000000000 - Size.Width = 120.000000000000000000 + Size.Width = 101.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 16.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} + TextSettings.WordWrap = False Text = 'Project Setup' end + object projectPath: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 347.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + OnDragOver = _projectPathDragOver + OnDragDrop = _projectPathDragDrop + end + object projectPathLabel: TLabel + Align = Left + AutoSize = True + Margins.Left = 64.000000000000000000 + Position.X = 181.000000000000000000 + Size.Width = 90.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.WordWrap = False + Text = 'Project file path: ' + end + end + object TaskEditorStepOneStatusBar: TStatusBar + Margins.Left = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 355.000000000000000000 + ShowSizeGrip = True + Size.Width = 638.000000000000000000 + Size.Height = 28.000000000000000000 + Size.PlatformDefault = False + object TaskEditorCompButton: TButton + Align = Right + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 530.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 104.000000000000000000 + Size.Height = 20.000000000000000000 + Size.PlatformDefault = False + Text = 'Compositions >>' + OnClick = TaskEditorCompButtonClick + end + object TaskEditorCancelButton: TButton + Align = Left + ModalResult = 2 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 4.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 64.000000000000000000 + Size.Height = 20.000000000000000000 + Size.PlatformDefault = False + Text = 'Cancel' + OnClick = TaskEditorCancelButtonClick + end end end - object NewTaskStepTwo: TTabItem + object TaskEditorStepTwo: TTabItem CustomIcon = < item end> @@ -19901,7 +20109,9 @@ object MainForm: TMainForm StyleLookup = '' TabOrder = 0 Text = 'Compositions' - object StatusBar1: TStatusBar + ExplicitSize.cx = 8.000000000000000000 + ExplicitSize.cy = 8.000000000000000000 + object TaskEditorStepTwoStatusBar: TStatusBar Margins.Left = 1.000000000000000000 Margins.Right = 1.000000000000000000 Margins.Bottom = 1.000000000000000000 @@ -19911,20 +20121,20 @@ object MainForm: TMainForm Size.Width = 638.000000000000000000 Size.Height = 28.000000000000000000 Size.PlatformDefault = False - object NewTaskCreateButton: TButton + object TaskEditorSaveButton: TButton Align = Right ModalResult = 1 Margins.Left = 4.000000000000000000 Margins.Top = 4.000000000000000000 Margins.Right = 4.000000000000000000 Margins.Bottom = 4.000000000000000000 - Position.X = 538.000000000000000000 + Position.X = 434.000000000000000000 Position.Y = 4.000000000000000000 Size.Width = 96.000000000000000000 Size.Height = 20.000000000000000000 Size.PlatformDefault = False - Text = 'Create Task' - OnClick = NewTaskCreateButtonClick + Text = 'Save Task' + OnClick = TaskEditorSaveButtonClick end object Button3: TButton Align = Left @@ -19939,9 +20149,9 @@ object MainForm: TMainForm Size.Height = 20.000000000000000000 Size.PlatformDefault = False Text = 'Cancel' - OnClick = NewTaskCancelButtonClick + OnClick = TaskEditorCancelButtonClick end - object NewTaskProjectButton: TButton + object TaskEditorProjectButton: TButton Align = Left Margins.Left = 4.000000000000000000 Margins.Top = 4.000000000000000000 @@ -19953,10 +20163,25 @@ object MainForm: TMainForm Size.Height = 20.000000000000000000 Size.PlatformDefault = False Text = '<< Project Setup' - OnClick = NewTaskProjectButtonClick + OnClick = TaskEditorProjectButtonClick + end + object TaskEditorCreateTaskButton: TButton + Align = Right + ModalResult = 1 + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 538.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 96.000000000000000000 + Size.Height = 20.000000000000000000 + Size.PlatformDefault = False + Text = 'Create Task' + OnClick = TaskEditorCreateTaskButtonClick end end - object NewTaskStepTwoToolbar: TToolBar + object TaskEditorStepTwoToolbar: TToolBar Margins.Left = 1.000000000000000000 Margins.Top = 1.000000000000000000 Margins.Right = 1.000000000000000000 @@ -19978,7 +20203,7 @@ object MainForm: TMainForm TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'Compositions' end - object NewTaskCompCount: TSpinBox + object TaskEditorCompCount: TSpinBox Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Right Cursor = crIBeam @@ -19994,9 +20219,9 @@ object MainForm: TMainForm Size.Width = 80.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False - OnChange = NewTaskCompCountChange + OnChange = TaskEditorCompCountChange end - object NewTaskCompCountLabel: TLabel + object TaskEditorCompCountLabel: TLabel Align = Right AutoSize = True Position.X = 515.000000000000000000 @@ -20008,7 +20233,7 @@ object MainForm: TMainForm Text = 'Count:' end end - object NewTaskCompGrid: TStringGrid + object TaskEditorCompGrid: TStringGrid Align = Client CanFocus = True ClipChildren = True @@ -20020,19 +20245,26 @@ object MainForm: TMainForm Size.Height = 314.000000000000000000 Size.PlatformDefault = False RowCount = 1 + Options = [Editing, AlwaysShowEditor, ColumnResize, ColLines, RowLines, RowSelect, Tabs, Header, AutoDisplacement] + OnEditingDone = TaskEditorCompGridEditingDone Viewport.Width = 628.000000000000000000 Viewport.Height = 289.000000000000000000 - object StringColumn4: TStringColumn + object CompNumCol: TIntegerColumn + Header = '#' + ReadOnly = True + Size.Width = 20.000000000000000000 + end + object CompositionCol: TStringColumn Header = 'Composition title' Size.Width = 300.000000000000000000 end - object IntegerColumn1: TIntegerColumn + object StartFrameCol: TIntegerColumn Header = 'Start Frame' end - object IntegerColumn2: TIntegerColumn + object EndFrameCol: TIntegerColumn Header = 'End Frame' end - object IntegerColumn3: TIntegerColumn + object SplitCol: TIntegerColumn Header = 'Split' end end @@ -20058,8 +20290,8 @@ object MainForm: TMainForm end end object ToolbarPopupMenu: TPopupMenu - Left = 984 - Top = 248 + Left = 456 + Top = 192 object ToolbarIconsOnly: TMenuItem AutoCheck = True GroupIndex = 10 @@ -20080,11 +20312,19 @@ object MainForm: TMainForm Text = 'Text Only' end end + object XMLOpenDialog: TOpenDialog + Filter = + 'All compatible files|*.aer;*.xml|Launcher configuration|*.aer|XM' + + 'L Launcher configuration|*.xml|All Files|*.*' + Title = 'Launcher configuration' + Left = 224 + Top = 192 + end object BindingsList1: TBindingsList Methods = <> OutputConverters = <> - Left = 136 - Top = 488 + Left = 344 + Top = 192 object LinkControlToPropertyEnabled: TLinkControlToProperty Category = 'Quick Bindings' Control = customCheckbox @@ -20222,7 +20462,7 @@ object MainForm: TMainForm UserAgent = 'Embarcadero URI Client/1.0' OnRequestCompleted = UpdateNetHTTPClientRequestCompleted OnRequestError = UpdateNetHTTPClientRequestError - Left = 136 - Top = 448 + Left = 344 + Top = 144 end end diff --git a/src/MainUnit.pas b/src/MainUnit.pas index b8541d5..c18ac5f 100644 --- a/src/MainUnit.pas +++ b/src/MainUnit.pas @@ -2,10 +2,10 @@ (* AErender Launcher *) (* MainUnit.pas *) -(* Lily Stilson // 2019 - 2020 *) +(* Lily Stilson // 2019 - 2021 *) (* MIT License *) (* *) -(* Copyright (c) 2019 - 2020 Alice Romanets *) +(* Copyright (c) 2019 - 2021 Alice Romanets *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a copy *) (* of this software and associated documentation files (the "Software"), to deal *) @@ -86,6 +86,7 @@ interface FMX.BufferedLayout, FMX.CompLabel, FMX.TreeView, + FMX.TabControl, {$ENDREGION} {$REGION ' Data Lib Namespaces '} @@ -99,16 +100,15 @@ interface {$ENDREGION} {$REGION ' Additional Liraries '} - AErenderLauncher.MathExpParser, AErenderLauncher.Localization, AErenderLauncher.IO, AErenderLauncher.Rendering, AErenderLauncher.Math, + AErenderLauncher.Math.ExpParser, {$ENDREGION} {$REGION ' Windows Only Libraries '}{$IFDEF MSWINDOWS} - Winapi.ShellAPI, Winapi.Windows, FMX.Platform.Win, Winapi.TlHelp32, WinApi.DwmApi, WinApi.UxTheme, WinApi.Messages, - FMX.TabControl; + Winapi.ShellAPI, Winapi.Windows, FMX.Platform.Win, Winapi.TlHelp32, WinApi.DwmApi, WinApi.UxTheme, WinApi.Messages; {$ENDIF MSWINDOWS}{$ENDREGION} {$REGION ' macOS Only Libraries '}{$IFDEF MACOS} @@ -205,16 +205,16 @@ TComboEdit = class(TCustomComboEdit) property OnValidating; end; TMainForm = class(TForm) - projectPathLabel: TLabel; + _projectPathLabel: TLabel; inputFileLayout: TLayout; - outputPathLabel: TLabel; + _outputPathLabel: TLabel; InputLabels: TLayout; pathLayout: TLayout; - projectPath: TEdit; + _projectPath: TEdit; fileChooseLayout: TLayout; - outputPath: TEdit; + _outputPath: TEdit; openFile: TButton; - saveFile: TButton; + _saveFile: TButton; properties: TGroupBox; soundCheckbox: TCheckBox; missingFilesCheckbox: TCheckBox; @@ -329,45 +329,62 @@ TMainForm = class(TForm) recentItem: TMenuItem; separatorItem3: TMenuItem; TasksToolbar: TToolBar; - Label5: TLabel; + TasksLabel: TLabel; RemoveTaskButton: TButton; AddTaskButton: TButton; TasksTreeView: TTreeView; - TreeViewItem2: TTreeViewItem; - TreeViewItem10: TTreeViewItem; - CompLabel1: TCompLabel; TasksPopupMenu: TPopupMenu; - MenuItem1: TMenuItem; - MenuItem2: TMenuItem; - MenuItem3: TMenuItem; - Popup1: TPopup; + AddTaskPopupItem: TMenuItem; + EditTaskPopupItem: TMenuItem; + DeleteTaskPopupItem: TMenuItem; + TaskEditorPopup: TPopup; PopupAniOpen: TFloatAnimation; PopupAniClose: TFloatAnimation; - NewTaskCompButton: TButton; + TaskEditorCompButton: TButton; ToolbarPopupMenu: TPopupMenu; ToolbarIconsOnly: TMenuItem; ToolbarIconsAndText: TMenuItem; ToolbarTextOnly: TMenuItem; - NewTaskTabControl: TTabControl; - NewTaskStepOne: TTabItem; - NewTaskStepTwo: TTabItem; - NewTaskStepOneStatusBar: TStatusBar; - NewTaskCancelButton: TButton; - StatusBar1: TStatusBar; - NewTaskCreateButton: TButton; + TaskEditorTabControl: TTabControl; + TaskEditorStepOne: TTabItem; + TaskEditorStepTwo: TTabItem; + TaskEditorStepOneStatusBar: TStatusBar; + TaskEditorCancelButton: TButton; + TaskEditorStepTwoStatusBar: TStatusBar; + TaskEditorSaveButton: TButton; Button3: TButton; - NewTaskProjectButton: TButton; - NewTaskStepOneToolbar: TToolBar; - NewTaskStepOneLabel: TLabel; - NewTaskStepTwoToolbar: TToolBar; + TaskEditorProjectButton: TButton; + TaskEditorStepOneToolbar: TToolBar; + TaskEditorStepOneLabel: TLabel; + TaskEditorStepTwoToolbar: TToolBar; NewTaskStepTwoLabel: TLabel; - NewTaskCompGrid: TStringGrid; - StringColumn4: TStringColumn; - IntegerColumn1: TIntegerColumn; - IntegerColumn2: TIntegerColumn; - IntegerColumn3: TIntegerColumn; - NewTaskCompCount: TSpinBox; - NewTaskCompCountLabel: TLabel; + TaskEditorCompGrid: TStringGrid; + CompositionCol: TStringColumn; + StartFrameCol: TIntegerColumn; + EndFrameCol: TIntegerColumn; + SplitCol: TIntegerColumn; + TaskEditorCompCount: TSpinBox; + TaskEditorCompCountLabel: TLabel; + CompNumCol: TIntegerColumn; + projectPath: TEdit; + projectPathLabel: TLabel; + Layout3: TLayout; + outputPathLabel: TLabel; + outputPath: TEdit; + saveFile: TButton; + GridPanelLayout4: TGridPanelLayout; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + TasksIsEmptyLabel: TLabel; + TasksIsEmpty: TLayout; + TeskIsEmptyAddLabel: TLabel; + Label5: TLabel; + DebugLabel: TLabel; + TaskEditorCreateTaskButton: TButton; + TasksPopupSeparator1: TMenuItem; + TaskItemDisplay: TMenuItem; procedure FormResize(Sender: TObject); procedure compSwitchSwitch(Sender: TObject); procedure FormCreate(Sender: TObject); @@ -379,7 +396,7 @@ TMainForm = class(TForm) procedure threadsCount1Change(Sender: TObject); procedure openFileClick(Sender: TObject); procedure launchButtonClick(Sender: TObject); - procedure saveFileClick(Sender: TObject); + procedure _saveFileClick(Sender: TObject); procedure infoButtonClick(Sender: TObject); procedure exitItemClick(Sender: TObject); procedure docsItemClick(Sender: TObject); @@ -390,17 +407,14 @@ TMainForm = class(TForm) procedure cacheUsageTrackBarChange(Sender: TObject); procedure memUsageInfoClick(Sender: TObject); procedure memUsageInfoEditValidate(Sender: TObject; var Text: string); - procedure cacheUsageInfoEditValidate(Sender: TObject; - var Text: string); + procedure cacheUsageInfoEditValidate(Sender: TObject; var Text: string); procedure cacheUsageInfoClick(Sender: TObject); procedure cacheUsageInfoEditExit(Sender: TObject); procedure memUsageInfoEditExit(Sender: TObject); procedure downloadButtonClick(Sender: TObject); procedure ffmpegConfigButtonClick(Sender: TObject); - procedure projectPathDragDrop(Sender: TObject; const Data: TDragObject; - const Point: TPointF); - procedure projectPathDragOver(Sender: TObject; const Data: TDragObject; - const Point: TPointF; var Operation: TDragOperation); + procedure _projectPathDragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); + procedure _projectPathDragOver(Sender: TObject; const Data: TDragObject; const Point: TPointF; var Operation: TDragOperation); procedure outFrameValidate(Sender: TObject; var Text: string); procedure outputModuleBoxChange(Sender: TObject); procedure compNameTyping(Sender: TObject); @@ -408,10 +422,8 @@ TMainForm = class(TForm) procedure winOutModuleEditorItemClick(Sender: TObject); procedure inFrameValidate(Sender: TObject; var Text: string); procedure threadsCountChange(Sender: TObject); - procedure UpdateNetHTTPClientRequestError(const Sender: TObject; - const AError: string); - procedure UpdateNetHTTPClientRequestCompleted(const Sender: TObject; - const AResponse: IHTTPResponse); + procedure UpdateNetHTTPClientRequestError(const Sender: TObject; const AError: string); + procedure UpdateNetHTTPClientRequestCompleted(const Sender: TObject; const AResponse: IHTTPResponse); procedure ReadAERQ(Path: String); procedure SetLanguage(LanguageCode: Integer); procedure UpdateOutputModules; @@ -420,29 +432,38 @@ TMainForm = class(TForm) procedure threadsCountExit(Sender: TObject); procedure AddToRecents(Item: String); procedure RecentProjectSelected(Sender: TObject); + procedure InflateRecents; procedure ReInflateRecents; - procedure compGridEditingDone(Sender: TObject; const ACol, - ARow: Integer); + + procedure compGridEditingDone(Sender: TObject; const ACol, ARow: Integer); procedure renderSettingsBoxChange(Sender: TObject); - procedure TasksTreeViewDragChange(SourceItem, DestItem: TTreeViewItem; - var Allow: Boolean); - procedure TasksTreeViewKeyDown(Sender: TObject; var Key: Word; - var KeyChar: Char; Shift: TShiftState); - procedure TasksTreeViewMouseMove(Sender: TObject; Shift: TShiftState; - X, Y: Single); + procedure TasksTreeViewDragChange(SourceItem, DestItem: TTreeViewItem; var Allow: Boolean); + procedure TasksTreeViewKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); + procedure TasksTreeViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); procedure TasksPopupMenuPopup(Sender: TObject); procedure AddTaskButtonClick(Sender: TObject); procedure RemoveTaskButtonClick(Sender: TObject); procedure FloatAnimation1Finish(Sender: TObject); procedure PopupAniOpenFinish(Sender: TObject); - procedure NewTaskCancelButtonClick(Sender: TObject); + procedure TaskEditorCancelButtonClick(Sender: TObject); procedure PopupAniCloseFinish(Sender: TObject); - procedure Popup1Popup(Sender: TObject); - procedure NewTaskCompButtonClick(Sender: TObject); - procedure NewTaskProjectButtonClick(Sender: TObject); - procedure NewTaskCreateButtonClick(Sender: TObject); - procedure NewTaskCompCountChange(Sender: TObject); + procedure TaskEditorPopupPopup(Sender: TObject); + procedure TaskEditorCompButtonClick(Sender: TObject); + procedure TaskEditorProjectButtonClick(Sender: TObject); + procedure TaskEditorCreateTaskButtonClick(Sender: TObject); + procedure TaskEditorCompCountChange(Sender: TObject); + procedure TaskEditorTabControlChange(Sender: TObject); + procedure TaskEditorCompGridEditingDone(Sender: TObject; const ACol, ARow: Integer); + + procedure UpdateTasksList; + + procedure RenderTasksOnNotify(Sender: TObject; const Item: TRenderTask; Action: TCollectionNotification); + + procedure TasksTreeViewDragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); + + procedure TasksTreeViewItemDblClick(Sender: TObject); + procedure TaskEditorSaveButtonClick(Sender: TObject); private { Private declarations } FCurrentItem: String; @@ -550,7 +571,7 @@ procedure TMainForm.WMNCPaint(var AMessage: TMessage); begin var hWnd: HWND := FormToHWND(Self); - SetClassLong(hWnd, GCL_STYLE, GetClassLong(hWnd, GCL_STYLE) or CS_DROPSHADOW); + SetClassLong(hWnd, GCL_STYLE, GetClassLong(hWnd, GCL_STYLE) or CS_DROPSHADOW); {var v: Integer := 2; @@ -567,24 +588,17 @@ procedure TMainForm.WMNCPaint(var AMessage: TMessage); {$ENDIF MSWINDOWS} function GetPlatformMemorySize: Int64; //BYTES, BLYAD -var - {$IFDEF MSWINDOWS} - MS_Ex: MemoryStatusEx; - {$ENDIF MSWINDOWS} - {$IFDEF MACOS} - res: Int64; - len: size_t; - {$ENDIF MACOS} begin {$IFDEF MSWINDOWS} - FillChar (MS_Ex, SizeOf (MemoryStatusEx), #0); - MS_Ex.dwLength := SizeOf (MemoryStatusEx); - GlobalMemoryStatusEx (MS_Ex); + var MS_Ex: MemoryStatusEx; + FillChar(MS_Ex, SizeOf(MemoryStatusEx), #0); + MS_Ex.dwLength := SizeOf(MemoryStatusEx); + GlobalMemoryStatusEx(MS_Ex); Result := MS_Ex.ullTotalPhys; {$ENDIF MSWINDOWS} {$IFDEF MACOS} - len := SizeOf (Result); - res := SysCtlByName ('hw.memsize', @Result, @len, nil, 0); + var len: size_t := SizeOf (Result); + var res: Int64 := SysCtlByName ('hw.memsize', @Result, @len, nil, 0); if res <> 0 then RaiseLastOSError; {$ENDIF MACOS} @@ -1099,18 +1113,121 @@ procedure TMainForm.ReInflateRecents; InflateRecents; end; +procedure TMainForm.RenderTasksOnNotify(Sender: TObject; const Item: TRenderTask; Action: TCollectionNotification); +begin + + /// Because method [Clear()] calls [BeginUpdate()] and [EndUpdate()] + /// we call it first here + TasksTreeView.Clear; + + TasksTreeView.BeginUpdate; + for var Task: TRenderTask in RenderTasks do begin + var ProjectItem: TTreeViewItem := TTreeViewItem.Create(nil); + ProjectItem.Text := ExtractFileName(Task.Project); + ProjectItem.Parent := TasksTreeView; + ProjectItem.StyledSettings := [TStyledSetting.FontColor, TStyledSetting.Family, TStyledSetting.Size]; + ProjectItem.TextSettings.Font.Style := [TFontStyle.fsBold]; + ProjectItem.IsExpanded := True; + ProjectItem.OnDblClick := TasksTreeViewItemDblClick; + + for var Comp: TComposition in Task.Compositions do begin + var CompItem: TTreeViewItem := TTreeViewItem.Create(nil); + CompItem.Text := Comp.CompName; + CompItem.Parent := ProjectItem; + CompItem.OnDblClick := TasksTreeViewItemDblClick; + + var СompLabel: TCompLabel := TCompLabel.Create(nil); + СompLabel.Parent := CompItem; + СompLabel.Align := TAlignLayout.Client; + СompLabel.InFrame := IntToStr(Comp.Frames.StartFrame); + СompLabel.OutFrame := IntToStr(Comp.Frames.EndFrame); + СompLabel.Split := IntToStr(Comp.Split); + end; + end; + TasksTreeView.EndUpdate; + + TasksTreeView.AllowDrag := True; +end; + +procedure TMainForm.UpdateTasksList; +begin +// TasksTreeView.BeginUpdate; +// /// +// TasksTreeView.Clear; +// +// for var Task: TRenderTask in RenderTasks do begin +// var ProjectItem: TTreeViewItem := TTreeViewItem.Create(nil); +// ProjectItem.Text := ExtractFileName(Task.Project); +// ProjectItem.Parent := TasksTreeView; +// ProjectItem.StyledSettings := [TStyledSetting.FontColor, TStyledSetting.Family, TStyledSetting.Size]; +// ProjectItem.TextSettings.Font.Style := [TFontStyle.fsBold]; +// ProjectItem.IsExpanded := True; +// +// for var Comp: TComposition in Task.Compositions do begin +// var CompItem: TTreeViewItem := TTreeViewItem.Create(nil); +// CompItem.Text := Comp.CompName; +// CompItem.Parent := ProjectItem; +// +// var СompLabel: TCompLabel := TCompLabel.Create(nil); +// СompLabel.Parent := CompItem; +// СompLabel.Align := TAlignLayout.Client; +// СompLabel.InFrame := IntToStr(Comp.Frames.StartFrame); +// СompLabel.OutFrame := IntToStr(Comp.Frames.EndFrame); +// СompLabel.Split := IntToStr(Comp.Split); +// end; +// end; +// TasksTreeView.EndUpdate; +end; + procedure TMainForm.RemoveTaskButtonClick(Sender: TObject); begin //Popup1.IsOpen := False; + RenderTasks.Clear; end; procedure TMainForm.AddTaskButtonClick(Sender: TObject); begin - //Popup1.Height := 1; - //Popup1. - Popup1.PopupModal; + var TempStr: String := ''; + +{$IFDEF MACOS} + var NSWin: NSWindow := WindowHandleToPlatform(Screen.ActiveForm.Handle).Wnd; + + var FOpenFile: NSSavePanel := TNSOpenPanel.Wrap(TNSOpenPanel.OCClass.openPanel); + FOpenFile.setDirectory(StrToNSStr(DEFPRGPATH)); + FOpenFile.setAllowedFileTypes(ArrayToNSArray(['aep'])); + FOpenFile.setPrompt(StrToNSStr('Open After Effects project')); + + objc_msgSendP2( // We are calling here method straight from MacApi + (FOpenFile as ILocalObject).GetObjectID, // Provide object with callable method + sel_getUid(PAnsiChar('beginSheetModalForWindow:completionHandler:')), // Provide method UID + (NSWin as ILocalObject).GetObjectID, // Provide first method parameter + TObjCBlock.CreateBlockWithProcedure(procedure (p1: NSInteger) begin // Provide callback procedure (thanks NightFlight!) + if p1 = 0 then + // Handle + else begin + TempStr := NSStrToStr(FOpenFile.URL.relativePath); + //AddToRecents(TempStr); + end; + end) + ); +{$ELSE MSWINDOWS} + with AEPOpenDialog do + if Execute then begin + TempStr := AEPOpenDialog.FileName; + end; +{$ENDIF} - //PopupAniOpen.Enabled := True; + if TempStr <> '' then begin + TaskEditorTabControl.TabIndex := 0; + if (TasksTreeView.ItemByText(ExtractFileName(TempStr)) <> nil) or (GetTaskByProject(ExtractFileName(TempStr)) <> nil) then + TasksTreeViewItemDblClick(TasksTreeView.ItemByText(ExtractFileName(TempStr))) + else begin + TaskEditorSaveButton.Visible := False; + TaskEditorCreateTaskButton.Visible := True; + TaskEditorPopup.PopupModal; + AddToRecents(TempStr); + end; + end; end; procedure TMainForm.renderSettingsBoxChange(Sender: TObject); @@ -1144,9 +1261,91 @@ procedure TMainForm.AddToRecents(Item: String); ReInflateRecents; end; -procedure TMainForm.NewTaskProjectButtonClick(Sender: TObject); +procedure TMainForm.TaskEditorProjectButtonClick(Sender: TObject); begin - NewTaskTabControl.TabIndex := 0; + TaskEditorTabControl.TabIndex := 0; +end; + +procedure TMainForm.TaskEditorSaveButtonClick(Sender: TObject); +begin + var ErrorStr: String := ''; + for var i := 0 to StrToInt(TaskEditorCompCount.Text) - 1 do begin + /// EC001 :: Composition name is empty + if TaskEditorCompGrid.Cells[1, i] = '' then + ErrorStr := ErrorStr + Format('Composition[%d]: (EC001) %s%s', [i + 1, 'Composition name is empty', #13#10]); + + /// EC002 :: [Start Frame] and [End Frame] can''t be empty with [Split] more than 1 + if (TaskEditorCompGrid.Cells[2, i] = '') and (TaskEditorCompGrid.Cells[3, i] = '') and (TaskEditorCompGrid.Cells[4, i] <> '1') then + ErrorStr := ErrorStr + Format('Composition[%d]: (EC002) %s%s', [i + 1, '[Start Frame] and [End Frame] can''t be empty with [Split] more than 1', #13#10]); + + /// New line for each comp + if ErrorStr <> '' then + ErrorStr := ErrorStr + #13#10; + end; + + if ErrorStr <> '' then begin + raise AERParamException.Create(Format('%s%s%s', [Language[LANG].Errors.errorsOccured, #13#10, ErrorStr])); + end else begin + var TaskIndex: Integer := RenderTasks.IndexOf(GetTaskByProject(ExtractFileName(projectPath.Text))); + var Compositions: TList := TList.Create; + + for var i := 0 to Trunc(TaskEditorCompCount.Value) - 1 do begin + Compositions.Add(TComposition.Create( + TaskEditorCompGrid.Cells[1, i], + TFrameSpan.Create(TaskEditorCompGrid.Cells[2, i], TaskEditorCompGrid.Cells[3, i]), + StrToInt(TaskEditorCompGrid.Cells[4, i]) + )); + end; + + /// Instead of re-creating whole task, + /// it's faster to rewrite contents of existing one + RenderTasks.Items[TaskIndex].Project := projectPath.Text; + RenderTasks.Items[TaskIndex].Output := outputPath.Text; + RenderTasks.Items[TaskIndex].OutputModule := outputModuleBox.Items[outputModuleBox.ItemIndex]; + RenderTasks.Items[TaskIndex].RenderSettings := renderSettingsBox.Items[renderSettingsBox.ItemIndex]; + RenderTasks.Items[TaskIndex].MissingFiles := missingFilesCheckbox.IsChecked; + RenderTasks.Items[TaskIndex].Sound := soundCheckbox.IsChecked; + RenderTasks.Items[TaskIndex].Multiprocessing := threadedRender.IsChecked; + RenderTasks.Items[TaskIndex].CustomProperties := IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''); // yeet + RenderTasks.Items[TaskIndex].CacheLimit := cacheUsageTrackBar.Value; + RenderTasks.Items[TaskIndex].MemoryLimit := memUsageTrackBar.Value; + + RenderTasks.Items[TaskIndex].Compositions.Free; + RenderTasks.Items[TaskIndex].Compositions := TList.Create(Compositions); + + {$IFDEF DEBUG_MODE} + ShowMessage(RenderTasks.Items[TaskIndex].ToString); + //ShowMessage(IntToStr(RenderTasks.Items[0].Count)); + {$ENDIF} + + Compositions.Free; + + RenderTasksOnNotify(Sender, RenderTasks.Items[TaskIndex], cnAdded); + + PopupAniClose.Enabled := True; + + TaskEditorCompCount.Value := 1; + TaskEditorCompGrid.Cells[0, 0] := '1'; + TaskEditorCompGrid.Cells[1, 0] := ''; + TaskEditorCompGrid.Cells[2, 0] := ''; + TaskEditorCompGrid.Cells[3, 0] := ''; + TaskEditorCompGrid.Cells[4, 0] := '1'; + + //UpdateTasksList; + + TasksIsEmpty.Visible := RenderTasks.Count = 0; + + end; +end; + +procedure TMainForm.TaskEditorTabControlChange(Sender: TObject); +begin + + if (TaskEditorTabControl.TabIndex = 1) and (TaskEditorCompGrid.Cells[4, 0] = '') + and (TaskEditorCompGrid.Cells[0, 0] = '') then begin + TaskEditorCompGrid.Cells[0, 0] := '1'; + TaskEditorCompGrid.Cells[4, 0] := '1'; + end; end; procedure TMainForm.RecentProjectSelected(Sender: TObject); @@ -1391,7 +1590,7 @@ procedure TMainForm.docsItemClick(Sender: TObject); procedure TMainForm.downloadButtonClick(Sender: TObject); begin - Open(gitDownload); + Open(gitDownload, []); end; procedure TMainForm.exitItemClick(Sender: TObject); @@ -1419,19 +1618,19 @@ procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); SaveConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); if StrToBool(DelTempFiles) = True then begin - var AerenderDirectory: TArray := GetDirectoryFiles(APPFOLDER); - for var i := 0 to High(AerenderDirectory) do + var LauncherDirectory: TArray := GetDirectoryFiles(APPFOLDER); + for var i := 0 to High(LauncherDirectory) do begin {$IFDEF MSWINDOWS} - if (AerenderDirectory[i].Contains('.bat')) then - System.SysUtils.DeleteFile(PWideChar(AerenderDirectory[i])); + if (LauncherDirectory[i].Contains('.bat')) then + System.SysUtils.DeleteFile(PWideChar(LauncherDirectory[i])); {$ENDIF MSWINDOWS} {$IFDEF MACOS} - if (AerenderDirectory[i].Contains('.command')) then - System.SysUtils.DeleteFile(PWideChar(AerenderDirectory[i])); + if (LauncherDirectory[i].Contains('.command')) then + System.SysUtils.DeleteFile(PWideChar(LauncherDirectory[i])); {$ENDIF MACOS} - if (AerenderDirectory[i].Contains('.log')) then - System.SysUtils.DeleteFile(PWideChar(AerenderDirectory[i])); + if (LauncherDirectory[i].Contains('.log')) then + System.SysUtils.DeleteFile(PWideChar(LauncherDirectory[i])); end; end; end; @@ -1501,16 +1700,23 @@ procedure TMainForm.FormCreate(Sender: TObject); InflateRecents; - outputModuleBox.ListBox.AniCalculations.Animation := True; + var AnimSetupThread: TThread := TThread.CreateAnonymousThread(procedure begin + outputModuleBox.ListBox.AniCalculations.Animation := True; - compGrid.AniCalculations.AutoShowing := False; - compGrid.AniCalculations.Animation := True; + compGrid.AniCalculations.AutoShowing := False; + compGrid.AniCalculations.Animation := True; - threadsGrid.AniCalculations.Animation := True; + threadsGrid.AniCalculations.Animation := True; + + TaskEditorCompGrid.AniCalculations.Animation := True; + TaskEditorCompGrid.Model.ScrollDirections := (TScrollDirections.Vertical); + end); threadsCount.OnValidate := threadsCount.OnValidateEvent; threadsCount.OnValidating := threadsCount.OnValidatingEvent; + RenderTasks.OnNotify := MainForm.RenderTasksOnNotify; + //ShowMessage(AErenderPath); end; @@ -1541,6 +1747,30 @@ procedure TMainForm.FormResize(Sender: TObject); procedure TMainForm.FormShow(Sender: TObject); begin + + /// To speed up startup we will check for FFMPEG in a separate thread + var FFMPEGCheckThread: TThread := TThread.CreateAnonymousThread(procedure begin + try + if GetFFMPEGPath <> '' then + begin + FFMPEG := True; + ffmpegPath := GetFFMPEGPath; + //ffmpegCheckBox.Enabled := True; + end + else + raise Exception.Create('FFMPEG not found'); + except + on Exception do + begin + FFMPEG := False; + //ffmpegCheckBox.Enabled := False; + //ffmpegCheckBox.Hint := 'FFMPEG is not found at' + {$IFDEF MSWINDOWS} 'C:\ProgramData\AErender\' {$ENDIF MSWINDOWS} + // {$IFDEF MACOS} '~/Documents/AErender/' {$ENDIF MACOS} + 'directory'; + end; + end; + end); + + //// Check for available languages // It's better to do it in a Show thread, since OnCreate event of main form // don't have access to other forms that are not yet created @@ -1560,29 +1790,35 @@ procedure TMainForm.FormShow(Sender: TObject); SettingsForm.HandleCheckBox.IsChecked := StrToBool(AERH); SettingsForm.delFilesCheckBox.IsChecked := StrToBool(DelTempFiles); - {$IFDEF MACOS} - if LANG = 1 then begin - outputModuleLabel.Width := 148; - renderSettingsLabel.Width := 148; - end; - {$ENDIF MACOS} + var FormVisualUpdateThread: TThread :=TThread.CreateAnonymousThread(procedure begin - if memUsageTrackBar.Value = 100 then - memUsageInfo.Text := Language[LANG].MainForm.Unlimited - else - memUsageInfo.Text := Trunc(memUsageTrackBar.Value).ToString + '% (' + Trunc((GetPlatformMemorySize/1024/1024) * (memUsageTrackBar.Value / 100)).ToString + ' MB)'; - if cacheUsageTrackBar.Value = 100 then - cacheUsageInfo.Text := Language[LANG].MainForm.Unlimited - else - cacheUsageInfo.Text := Trunc(cacheUsageTrackBar.Value).ToString + '%'; + {$IFDEF MACOS} + if LANG = 1 then begin + outputModuleLabel.Width := 148; + renderSettingsLabel.Width := 148; + end; + {$ENDIF MACOS} - StringColumn1.Width := compGrid.Width - 5; - StringColumn2.Width := threadsGrid.Width * 0.5; - StringColumn3.Width := threadsGrid.Width * 0.5; + if memUsageTrackBar.Value = 100 then + memUsageInfo.Text := Language[LANG].MainForm.Unlimited + else + memUsageInfo.Text := Trunc(memUsageTrackBar.Value).ToString + '% (' + Trunc((GetPlatformMemorySize/1024/1024) * (memUsageTrackBar.Value / 100)).ToString + ' MB)'; + if cacheUsageTrackBar.Value = 100 then + cacheUsageInfo.Text := Language[LANG].MainForm.Unlimited + else + cacheUsageInfo.Text := Trunc(cacheUsageTrackBar.Value).ToString + '%'; + + StringColumn1.Width := compGrid.Width - 5; + StringColumn2.Width := threadsGrid.Width * 0.5; + StringColumn3.Width := threadsGrid.Width * 0.5; + end); SplashScreenForm.Close; SplashScreenForm.Free; + FFMPEGCheckThread.Start; + FormVisualUpdateThread.Start; + if (ParamCount > 0) and (ParamStr(1) = '-aer') then begin ImportUnit.PARAMSTART := True; ImportUnit.XMLPath := ParamStr(2); @@ -1592,24 +1828,8 @@ procedure TMainForm.FormShow(Sender: TObject); ReadAERQ(ParamStr(2)); end; - try - if GetFFMPEGPath <> '' then - begin - FFMPEG := True; - ffmpegPath := GetFFMPEGPath; - //ffmpegCheckBox.Enabled := True; - end - else - raise Exception.Create('FFMPEG not found'); - except - on Exception do - begin - FFMPEG := False; - //ffmpegCheckBox.Enabled := False; - //ffmpegCheckBox.Hint := 'FFMPEG is not found at' + {$IFDEF MSWINDOWS} 'C:\ProgramData\AErender\' {$ENDIF MSWINDOWS} - // {$IFDEF MACOS} '~/Documents/AErender/' {$ENDIF MACOS} + 'directory'; - end; - end; + //ShowMessage(RenderTasks.Count.ToString); + TasksIsEmpty.Visible := RenderTasks.Count = 0; // Check updates in separate thread to fasten startup MainForm.UpdateNetHTTPClient.Get(AERL_REPO_RELEASES); @@ -1686,7 +1906,7 @@ exec = record //Error Codes if not (SettingsForm.HandleCheckBox.IsChecked and isRendering) then begin emptyComps := 0; - if AERPATH.IsEmpty then + if AErenderPath.IsEmpty then ERR := ERR + #13#10 + '[Error 1]: ' + Language[LANG].Errors.aerenderIsEmpty; if projectPath.Text.IsEmpty then ERR := ERR + #13#10 + '[Error 2]: ' + Language[LANG].Errors.projectIsEmpty; @@ -1713,12 +1933,14 @@ exec = record end else begin - var Compositions: TArray; + {var Compositions: TList; if compSwitch.IsChecked then SetLength(Compositions, StrToInt(compCount.Value.ToString)) else SetLength(Compositions, 1); - for var i := 0 to High(Compositions) do begin + for var i := 0 to StrToInt(compCount.Value.ToString) High(Compositions) do begin + var TempCompName: String; + if compSwitch.IsChecked then Compositions[i].CompName := compGrid.Cells[0, i] else @@ -1729,11 +1951,11 @@ exec = record if inFrame.Text = '' then ShowMessage('Empty'); - var tempInFrame: Integer; var tempOutFrame: Integer; - if inFrame.Text = '' then tempInFrame := -1 else tempInFrame := StrToInt(inFrame.Text); - if inFrame.Text = '' then tempOutFrame := -1 else tempOutFrame := StrToInt(outFrame.Text); + var TempInFrame: Integer; var tempOutFrame: Integer; + if inFrame.Text = '' then TempInFrame := -1 else TempInFrame := StrToInt(inFrame.Text); + if inFrame.Text = '' then TempInFrame := -1 else TempInFrame := StrToInt(outFrame.Text); - Compositions[i].Frames := TFrameSpan.Create(tempInFrame, tempOutFrame); + Compositions[i].Frames := TFrameSpan.Create(TempInFrame, tempOutFrame); Compositions[i].Split := IfThenElse(threadsSwitch.IsChecked = True, StrToInt(threadsCount.Text), 0); // yeet end; @@ -1751,13 +1973,13 @@ exec = record memUsageTrackBar.Value, Compositions ); - - RenderTasks.Add(Task); + } + //RenderTasks.Add(Task); {$IFDEF DEBUG_MODE} ShowMessage(RenderTasks.Items[0].ToString); ShowMessage(IntToStr(RenderTasks.Items[0].Count)); {$ENDIF} - RenderTasks.Remove(Task); + //RenderTasks.Remove(Task); // if threadsSwitch.IsChecked then // begin // threads := threadsCount.Text.ToInteger; @@ -2064,7 +2286,7 @@ procedure TMainForm.outputModuleBoxChange(Sender: TObject); + '_' + OutputModules[outputModuleBox.ItemIndex].Mask; end; -procedure TMainForm.Popup1Popup(Sender: TObject); +procedure TMainForm.TaskEditorPopupPopup(Sender: TObject); begin PopupAniOpen.Enabled := True; end; @@ -2072,9 +2294,9 @@ procedure TMainForm.Popup1Popup(Sender: TObject); procedure TMainForm.PopupAniCloseFinish(Sender: TObject); begin PopupAniClose.Enabled := False; - Popup1.IsOpen := False; - Popup1.Height := 384; - NewTaskTabControl.TabIndex := 0; + TaskEditorPopup.IsOpen := False; + TaskEditorPopup.Height := 384; + TaskEditorTabControl.TabIndex := 0; end; procedure TMainForm.PopupAniOpenFinish(Sender: TObject); @@ -2082,12 +2304,12 @@ procedure TMainForm.PopupAniOpenFinish(Sender: TObject); PopupAniOpen.Enabled := False; end; -procedure TMainForm.NewTaskCancelButtonClick(Sender: TObject); +procedure TMainForm.TaskEditorCancelButtonClick(Sender: TObject); begin PopupAniClose.Enabled := True; end; -procedure TMainForm.projectPathDragDrop(Sender: TObject; +procedure TMainForm._projectPathDragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); begin if Data.Source <> nil then @@ -2096,13 +2318,13 @@ procedure TMainForm.projectPathDragDrop(Sender: TObject; projectPath.Text := Data.Files[0]; end; -procedure TMainForm.projectPathDragOver(Sender: TObject; const Data: TDragObject; +procedure TMainForm._projectPathDragOver(Sender: TObject; const Data: TDragObject; const Point: TPointF; var Operation: TDragOperation); begin Operation := TDragOperation.Link; end; -procedure TMainForm.saveFileClick(Sender: TObject); +procedure TMainForm._saveFileClick(Sender: TObject); {$IFDEF MACOS} var FSaveFile: NSSavePanel; @@ -2163,15 +2385,98 @@ procedure TMainForm.settingsButtonClick(Sender: TObject); SettingsForm.ShowModal; end; -procedure TMainForm.NewTaskCompCountChange(Sender: TObject); +procedure TMainForm.TaskEditorCompCountChange(Sender: TObject); begin - NewTaskCompGrid.RowCount := StrToInt(NewTaskCompCount.Text); + TaskEditorCompGrid.RowCount := StrToInt(TaskEditorCompCount.Text); + for var i := 0 to TaskEditorCompGrid.RowCount - 1 do begin + TaskEditorCompGrid.Cells[0, i] := IntToStr(i + 1); + if TaskEditorCompGrid.Cells[4, i] = '' then + TaskEditorCompGrid.Cells[4, i] := '1'; + end; +end; + +procedure TMainForm.TaskEditorCompGridEditingDone(Sender: TObject; const ACol, ARow: Integer); +begin + {case ACol of + 3: begin + if StrToInt(TaskEditorCompGrid.Cells[ACol, ARow]) > 128 then + TaskEditorCompGrid.StylesData['selection.fill.color'] := $FFFF6157 + else + TaskEditorCompGrid.StylesData['selection.fill.color'] := $FF2A82E2; + end; + end; } end; procedure TMainForm.TasksPopupMenuPopup(Sender: TObject); begin - if (TasksTreeView.ItemByText(FCurrentItem) <> nil) and (FCurrentItem <> 'nil') then + if (TasksTreeView.ItemByText(FCurrentItem) <> nil) and (FCurrentItem <> 'nil') {or (TasksTreeView.Selected <> nil)} then begin TasksTreeView.ItemByText(FCurrentItem).IsSelected := True; + EditTaskPopupItem.Enabled := True; + DeleteTaskPopupItem.Enabled := True; + if TasksTreeView.ItemByText(FCurrentItem).ParentItem <> nil then // Composition + TaskItemDisplay.Text := Format('Composition: %s', [FCurrentItem]) + else // Project + TaskItemDisplay.Text := Format('Project: %s', [FCurrentItem]); + end else begin + TaskItemDisplay.Text := 'No task is selected!'; + EditTaskPopupItem.Enabled := False; + DeleteTaskPopupItem.Enabled := False; + end; +end; + +procedure TMainForm.TasksTreeViewItemDblClick(Sender: TObject); +begin + //TasksTreeView.AllowDrag := False; + + var ProjectItem: TTreeViewItem; + var Task: TRenderTask; + var SelectedComp: String := ''; + + if TTreeViewItem(Sender).ParentItem <> nil then begin // If composition item was dblclicked + ProjectItem := TTreeViewItem(Sender).ParentItem; + TaskEditorTabControl.TabIndex := 1; + SelectedComp := TTreeViewItem(Sender).Text; + end else begin // We know for sure that it's a project item + ProjectItem := TTreeViewItem(Sender); + TaskEditorTabControl.TabIndex := 0; + end; + + Task := GetTaskByProject(ProjectItem.Text); + + if ProjectItem <> nil then begin // Ensure, that we won't get an Access Violation + projectPath.Text := Task.Project; + outputPath.Text := Task.Output; + + outputModuleBox.Index := outputModuleBox.Items.IndexOf(Task.OutputModule); + renderSettingsBox.Index := renderSettingsBox.Items.IndexOf(Task.RenderSettings); + + missingFilesCheckbox.IsChecked := Task.MissingFiles; + soundCheckbox.IsChecked := Task.Sound; + threadedRender.IsChecked := Task.Multiprocessing; + + customCheckbox.IsChecked := not Task.CustomProperties.IsEmpty; + customProp.Enabled := not Task.CustomProperties.IsEmpty; + customProp.Text := Task.CustomProperties; + + cacheUsageTrackBar.Value := Task.CacheLimit; + memUsageTrackBar.Value := Task.MemoryLimit; + + TaskEditorCompCount.Value := Task.Compositions.Count; + for var i := 0 to Task.Compositions.Count - 1 do begin + TaskEditorCompGrid.Cells[1, i] := Task.Compositions.Items[i].CompName; + TaskEditorCompGrid.Cells[2, i] := Task.Compositions.Items[i].Frames.StartFrame.ToString; + TaskEditorCompGrid.Cells[3, i] := Task.Compositions.Items[i].Frames.EndFrame.ToString; + TaskEditorCompGrid.Cells[4, i] := Task.Compositions.Items[i].Split.ToString; + end; + end; + + if SelectedComp <> '' then + TaskEditorCompGrid.SelectRow(GetCompIndexInTask(Task, SelectedComp)); + + TaskEditorSaveButton.Visible := True; + TaskEditorCreateTaskButton.Visible := False; + + TaskEditorPopup.PopupModal; end; procedure TMainForm.TasksTreeViewDragChange(SourceItem, DestItem: TTreeViewItem; var Allow: Boolean); @@ -2194,18 +2499,39 @@ procedure TMainForm.TasksTreeViewDragChange(SourceItem, DestItem: TTreeViewItem; if (SourceItem.Level = 2) and (DestItem.Level = 2) then // Project[0].Comp -> Project[1].Comp Allow := False; - + //ShowMessage(Format('%d --> %d', [SourceItem.Level, DestItem.Level])); except - if SourceItem.Level = 1 then - Allow := True - else + if (SourceItem.Level = 1) and (RenderTasks.Count > 1) then begin + Allow := True; + RenderTasks.Move(RenderTasks.IndexOf(GetTaskByProject(SourceItem.Text)), RenderTasks.Count - 1); + //ShowMessage(Format('%d --> %d', [SourceItem.Level, -1])); + ShowMessage(Format('LastTask.Project = %s', [RenderTasks.Items[RenderTasks.Count - 1].Project])); + end else Allow := False; end; + +end; + +procedure TMainForm.TasksTreeViewDragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); +begin + if Data.Source = nil then begin // Ensure that we're recieving drag from outside + if LowerCase(ExtractFileExt(Data.Files[0])) = LowerCase('.aep') then begin + projectPath.Text := Data.Files[0]; + AddTaskButtonClick(Sender); + end; + + if LowerCase(ExtractFileExt(Data.Files[0])) = LowerCase('.aerq') then + ShowMessage('Queue dropped'); + + if LowerCase(ExtractFileExt(Data.Files[0])) = LowerCase('.aer') then + ShowMessage('Project configuration dropped'); + end; end; /// Implements basic hot-keys for main treeview /// [Ctrl + D] = Duplicate selected /// [Del] = Delete selected +/// [Ctrl + N] = New task procedure TMainForm.TasksTreeViewKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin if ssCtrl in Shift then @@ -2231,12 +2557,32 @@ procedure TMainForm.TasksTreeViewKeyDown(Sender: TObject; var Key: Word; var Key end else case Key of - 46: begin // [Del] - //Temporary := (TasksTreeView.Selected.Clone(nil) as TTreeViewItem); - //Temporary.Parent := TasksTreeView.Selected.Parent; - FreeAndNil(TasksTreeView.Selected); + 8, 46: begin // [Backspace], [Del] + if TasksTreeView.Selected <> nil then // We can only delete something selected, othewise - access violation + if TasksTreeView.Selected.ParentItem <> nil then begin // If composition item was deleted + var Task: TRenderTask := GetTaskByProject(TasksTreeView.Selected.ParentItem.Text); + RenderTasks.Items[RenderTasks.IndexOf(Task)].Compositions.Remove(GetCompByName(Task, TasksTreeView.Selected.Text)); + + RenderTasksOnNotify(Sender, Task, cnRemoved); + + //raise ENotImplemented.Create('Not implemented yet') + end else begin // We know for sure that it's a project item + RenderTasks.Remove(GetTaskByProject(TasksTreeView.Selected.Text)); + FreeAndNil(TasksTreeView.Selected); + end; + + //TasksIsEmpty.Visible := RenderTasks.Count = 0; + end; + 19: begin // [Pause/Break] + {$IFDEF DEBUG_MODE} + if DebugLabel.Visible then + DebugLabel.Visible := False + else + DebugLabel.Visible := True; + {$ENDIF} end; end; + {$IFDEF DEBUG_MODE}DebugLabel.Text := Format('key = %d', [Key]);{$ENDIF} end; procedure TMainForm.TasksTreeViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); @@ -2438,14 +2784,80 @@ procedure TMainForm.memUsageTrackBarChange(Sender: TObject); memUsageInfo.Text := Trunc(memUsageTrackBar.Value).ToString + '% (' + Trunc((GetPlatformMemorySize/1024/1024) * (memUsageTrackBar.Value / 100)).ToString + ' MB)'; end; -procedure TMainForm.NewTaskCompButtonClick(Sender: TObject); +procedure TMainForm.TaskEditorCompButtonClick(Sender: TObject); begin - NewTaskTabControl.TabIndex := 1; + TaskEditorTabControl.TabIndex := 1; end; -procedure TMainForm.NewTaskCreateButtonClick(Sender: TObject); +procedure TMainForm.TaskEditorCreateTaskButtonClick(Sender: TObject); begin - PopupAniClose.Enabled := True; + var ErrorStr: String := ''; + for var i := 0 to StrToInt(TaskEditorCompCount.Text) - 1 do begin + /// EC001 :: Composition name is empty + if TaskEditorCompGrid.Cells[1, i] = '' then + ErrorStr := ErrorStr + Format('%s[%d]: (EC001) %s%s', ['Composition', i + 1, 'Composition name is empty', #13#10]); + + /// EC002 :: [Start Frame] and [End Frame] can''t be empty with [Split] more than 1 + if (TaskEditorCompGrid.Cells[2, i] = '') and (TaskEditorCompGrid.Cells[3, i] = '') and (TaskEditorCompGrid.Cells[4, i] <> '1') then + ErrorStr := ErrorStr + Format('%s[%d]: (EC002) %s%s', ['Composition', i + 1, '[Start Frame] and [End Frame] can''t be empty with [Split] more than 1', #13#10]); + + /// New line for each comp + if ErrorStr <> '' then + ErrorStr := ErrorStr + #13#10; + end; + + if ErrorStr <> '' then begin + raise AERParamException.Create(Format('%s%s%s', [Language[LANG].Errors.errorsOccured, #13#10, ErrorStr])); + end else begin + /// Create all the compositions beforehand + /// to append them to [Task] + /// Also, lists should be created on initialization + /// they are not TArray<> :c + var Compositions: TList := TList.Create; + + for var i := 0 to Trunc(TaskEditorCompCount.Value) - 1 do begin + Compositions.Add(TComposition.Create( + TaskEditorCompGrid.Cells[1, i], + TFrameSpan.Create(TaskEditorCompGrid.Cells[2, i], TaskEditorCompGrid.Cells[3, i]), + StrToInt(TaskEditorCompGrid.Cells[4, i]) + )); + end; + + var Task: TRenderTask := TRenderTask.Create( + projectPath.Text, + outputPath.Text, + outputModuleBox.Items[outputModuleBox.ItemIndex], + renderSettingsBox.Items[renderSettingsBox.ItemIndex], + missingFilesCheckbox.IsChecked, + soundCheckbox.IsChecked, + threadedRender.IsChecked, + IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''), // yeet + cacheUsageTrackBar.Value, + memUsageTrackBar.Value, + TList.Create(Compositions) + ); + + RenderTasks.Add(Task); + {$IFDEF DEBUG_MODE} + ShowMessage(RenderTasks.Items[0].ToString); + //ShowMessage(IntToStr(RenderTasks.Items[0].Count)); + {$ENDIF} + + Compositions.Free; + + PopupAniClose.Enabled := True; + + TaskEditorCompCount.Value := 1; + TaskEditorCompGrid.Cells[0, 0] := '1'; + TaskEditorCompGrid.Cells[1, 0] := ''; + TaskEditorCompGrid.Cells[2, 0] := ''; + TaskEditorCompGrid.Cells[3, 0] := ''; + TaskEditorCompGrid.Cells[4, 0] := '1'; + + //UpdateTasksList; + + TasksIsEmpty.Visible := RenderTasks.Count = 0; + end; end; procedure TMainForm.cacheUsageInfoClick(Sender: TObject); diff --git a/src/MainUnit.vlb b/src/MainUnit.vlb index 28027d6..429514c 100644 --- a/src/MainUnit.vlb +++ b/src/MainUnit.vlb @@ -19,9 +19,6 @@ Coordinates=1960,10,113,51 [memUsageLayout] Coordinates=799,1328,103,33 -[saveFile] -Coordinates=201,1120,54,51 - [properiesLayout2] Coordinates=659,1328,100,33 @@ -70,9 +67,6 @@ Coordinates=881,10,74,69 [outModuleEditorItem0] Coordinates=1309,1266,123,33 -[projectPath] -Coordinates=1897,1036,70,51 - [memUsageInfoEdit] Coordinates=89,1036,107,51 @@ -210,9 +204,6 @@ Coordinates=1323,1,144,33 [OnyxBlueStyle] Coordinates=818,1002,87,33 -[outputPath] -Coordinates=553,1036,68,51 - [threadsSwitch] Coordinates=160,571,84,177 @@ -282,21 +273,12 @@ Coordinates=1024,1120,94,33 [helpItem] Coordinates=934,1120,56,33 -[openFile] -Coordinates=1518,1036,56,51 - [compGrid] Coordinates=513,172,62,87 [cacheUsageLimitLabel] Coordinates=2397,1036,125,51 -[projectPathLabel] -Coordinates=122,1120,97,51 - -[outputPathLabel] -Coordinates=10,1036,95,51 - [startFrameLabel] Coordinates=1179,1036,94,51 @@ -314,3 +296,21 @@ ExplicitSubNodes=Enabled;Visible [renderSettingsBox] Coordinates=614,10,87,123 +[_projectPathLabel] +Coordinates=122,1120,97,51 + +[_projectPath] +Coordinates=1897,1036,70,51 + +[_outputPathLabel] +Coordinates=10,1036,95,51 + +[_outputPath] +Coordinates=553,1036,68,51 + +[openFile] +Coordinates=1518,1036,56,51 + +[_saveFile] +Coordinates=201,1120,54,51 + diff --git a/src/OutputModuleEditorUnit.fmx b/src/OutputModuleEditorUnit.fmx index 423742c..f02c093 100644 --- a/src/OutputModuleEditorUnit.fmx +++ b/src/OutputModuleEditorUnit.fmx @@ -297,8 +297,8 @@ object OutputModuleEditorForm: TOutputModuleEditorForm DefaultItemStyles.GroupHeaderStyle = '' DefaultItemStyles.GroupFooterStyle = '' OnChange = outputModulesBoxChange - Viewport.Width = 196.000000000000000000 - Viewport.Height = 338.000000000000000000 + Viewport.Width = 200.000000000000000000 + Viewport.Height = 342.000000000000000000 end object Splitter1: TSplitter Align = Left diff --git a/src/OutputModuleEditorUnit.pas b/src/OutputModuleEditorUnit.pas index 9bc9d08..557dad8 100644 --- a/src/OutputModuleEditorUnit.pas +++ b/src/OutputModuleEditorUnit.pas @@ -2,10 +2,10 @@ (* AErender Launcher *) (* OutputModuleEditorUnit.pas *) -(* Lily Stilson // 2019 - 2020 *) +(* Lily Stilson // 2019 - 2021 *) (* MIT License *) (* *) -(* Copyright (c) 2019 - 2020 Alice Romanets *) +(* Copyright (c) 2019 - 2021 Alice Romanets *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a copy *) (* of this software and associated documentation files (the "Software"), to deal *) diff --git a/src/RenderingUnit.pas b/src/RenderingUnit.pas index 8fb2916..e24a4e2 100644 --- a/src/RenderingUnit.pas +++ b/src/RenderingUnit.pas @@ -2,10 +2,10 @@ (* AErender Launcher *) (* RenderingUnit.pas *) -(* Lily Stilson // 2019 - 2020 *) +(* Lily Stilson // 2019 - 2021 *) (* MIT License *) (* *) -(* Copyright (c) 2019 - 2020 Alice Romanets *) +(* Copyright (c) 2019 - 2021 Alice Romanets *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a copy *) (* of this software and associated documentation files (the "Software"), to deal *) diff --git a/src/SettingsUnit.fmx b/src/SettingsUnit.fmx index 9e983b9..0ee3083 100644 --- a/src/SettingsUnit.fmx +++ b/src/SettingsUnit.fmx @@ -39,8 +39,8 @@ object SettingsForm: TSettingsForm Align = Left AutoSize = True StyledSettings = [Family, FontColor] - Margins.Left = 20.000000000000000000 - Position.X = 20.000000000000000000 + Margins.Left = 16.000000000000000000 + Position.X = 16.000000000000000000 Size.Width = 208.000000000000000000 Size.Height = 33.000000000000000000 Size.PlatformDefault = False @@ -69,14 +69,14 @@ object SettingsForm: TSettingsForm Align = Top StyledSettings = [Family, Size, FontColor] TextSettings.Font.StyleExt = {00070000000000000004000000} - Margins.Left = 5.000000000000000000 - Margins.Top = 10.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 10.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 341.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 345.000000000000000000 ShowCheck = False - Size.Width = 564.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 130.000000000000000000 Size.PlatformDefault = False Text = 'Behaviour' @@ -84,7 +84,7 @@ object SettingsForm: TSettingsForm ContentSize = '105' object Layout2: TLayout Align = Top - Size.Width = 564.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -92,9 +92,9 @@ object SettingsForm: TSettingsForm Align = Client Hint = 'Not available on macOS now!' IsChecked = True - Margins.Left = 10.000000000000000000 - Margins.Right = 10.000000000000000000 - Size.Width = 544.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Size.Width = 542.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -105,27 +105,39 @@ object SettingsForm: TSettingsForm object Layout3: TLayout Align = Top Position.Y = 32.000000000000000000 - Size.Width = 564.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 1 object delFilesCheckBox: TCheckBox Align = Client IsChecked = True - Margins.Left = 10.000000000000000000 - Margins.Right = 10.000000000000000000 - Size.Width = 544.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Size.Width = 414.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Text = 'Delete temporary files on close' OnChange = delFilesCheckBoxChange end + object TempFilesLabel: TLabel + Align = Right + AutoSize = True + Enabled = False + Margins.Right = 16.000000000000000000 + Position.X = 430.000000000000000000 + Size.Width = 112.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.WordWrap = False + Text = 'XXXX Temporary files' + end end object onRenderStartLayout: TLayout Align = Top Position.Y = 64.000000000000000000 - Size.Width = 564.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 2 @@ -136,19 +148,19 @@ object SettingsForm: TSettingsForm 'Minimize Launcher' 'Close Launcher') ItemIndex = 0 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 389.000000000000000000 - Size.Height = 22.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 382.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False TabOrder = 0 OnChange = onRenderStartBoxChange end object onRenderStartLabel: TLabel Align = Left - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Left = 8.000000000000000000 + Position.X = 8.000000000000000000 Size.Width = 160.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False @@ -161,13 +173,13 @@ object SettingsForm: TSettingsForm Align = Top StyledSettings = [Family, Size, FontColor] TextSettings.Font.StyleExt = {00070000000000000004000000} - Margins.Left = 5.000000000000000000 - Margins.Top = 10.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 235.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 241.000000000000000000 ShowCheck = False - Size.Width = 564.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 96.000000000000000000 Size.PlatformDefault = False Text = 'User Interface' @@ -175,7 +187,7 @@ object SettingsForm: TSettingsForm ContentSize = '71' object styleLayout: TLayout Align = Top - Size.Width = 564.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -186,19 +198,19 @@ object SettingsForm: TSettingsForm 'AErender Modern Animated' 'Onyx Blue (Old Style)') ItemIndex = 0 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 389.000000000000000000 - Size.Height = 22.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 382.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False TabOrder = 0 OnChange = styleBoxChange end object styleLabel: TLabel Align = Left - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Left = 8.000000000000000000 + Position.X = 8.000000000000000000 Size.Width = 160.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False @@ -334,7 +346,7 @@ object SettingsForm: TSettingsForm object langLayout: TLayout Align = Top Position.Y = 32.000000000000000000 - Size.Width = 564.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 2 @@ -344,19 +356,19 @@ object SettingsForm: TSettingsForm 'English' #1056#1091#1089#1089#1082#1080#1081' (Russian)') ItemIndex = 0 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 389.000000000000000000 - Size.Height = 22.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 382.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False TabOrder = 0 OnChange = langBoxChange end object langLabel: TLabel Align = Left - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Left = 8.000000000000000000 + Position.X = 8.000000000000000000 Size.Width = 160.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False @@ -398,33 +410,33 @@ object SettingsForm: TSettingsForm Align = Top StyledSettings = [Family, Size, FontColor] TextSettings.Font.StyleExt = {00070000000000000004000000} - Margins.Left = 5.000000000000000000 - Margins.Top = 10.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 43.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 41.000000000000000000 ShowCheck = False - Size.Width = 564.000000000000000000 - Size.Height = 182.000000000000000000 + Size.Width = 558.000000000000000000 + Size.Height = 192.000000000000000000 Size.PlatformDefault = False Text = 'Rendering' TabOrder = 2 - ContentSize = '157' + ContentSize = '167' object aerenderPathLayout: TLayout Align = Top - Size.Width = 564.000000000000000000 - Size.Height = 55.000000000000000000 + Size.Width = 558.000000000000000000 + Size.Height = 64.000000000000000000 Size.PlatformDefault = False object aerenderPathLabel: TLabel Align = Top StyledSettings = [Family, Size, FontColor] - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 5.000000000000000000 - Size.Width = 554.000000000000000000 - Size.Height = 17.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 546.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} TextSettings.HorzAlign = Center @@ -433,24 +445,22 @@ object SettingsForm: TSettingsForm object aerenderPath: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Client - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 498.000000000000000000 - Size.Height = 23.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Size.Width = 478.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False end object aerenderPathSelect: TButton Align = Right Hint = 'Choose aerender path' - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 508.000000000000000000 - Position.Y = 27.000000000000000000 - Size.Width = 23.000000000000000000 - Size.Height = 23.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Position.X = 490.000000000000000000 + Position.Y = 28.000000000000000000 + Size.Width = 28.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False Text = '...' OnClick = aerenderPathSelectClick @@ -459,13 +469,12 @@ object SettingsForm: TSettingsForm Align = Right StyledSettings = [Size, FontColor] Hint = 'Detect aerender automatically' - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 536.000000000000000000 - Position.Y = 27.000000000000000000 - Size.Width = 23.000000000000000000 - Size.Height = 23.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Position.X = 522.000000000000000000 + Position.Y = 28.000000000000000000 + Size.Width = 28.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Family = 'Segoe MDL2 Assets' OnClick = refreshAerenderClick @@ -527,8 +536,8 @@ object SettingsForm: TSettingsForm Margins.Top = 4.000000000000000000 Margins.Right = 4.000000000000000000 Margins.Bottom = 4.000000000000000000 - Size.Width = 15.000000000000000000 - Size.Height = 15.000000000000000000 + Size.Width = 20.000000000000000000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None Stroke.Thickness = 0.500000000000000000 @@ -538,14 +547,14 @@ object SettingsForm: TSettingsForm end object defaultProjectsLayout: TLayout Align = Top - Position.Y = 55.000000000000000000 - Size.Width = 564.000000000000000000 + Position.Y = 64.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False object defProjPathLabel: TLabel Align = Left - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Left = 8.000000000000000000 + Position.X = 8.000000000000000000 Size.Width = 160.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False @@ -554,22 +563,22 @@ object SettingsForm: TSettingsForm object defaultProjectsPath: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Client - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 361.000000000000000000 - Size.Height = 22.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 354.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False end object Button2: TButton Align = Right - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 536.000000000000000000 - Position.Y = 5.000000000000000000 - Size.Width = 23.000000000000000000 - Size.Height = 22.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 526.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 24.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Text = '...' OnClick = Button2Click @@ -577,14 +586,14 @@ object SettingsForm: TSettingsForm end object defaultOutputLayout: TLayout Align = Top - Position.Y = 87.000000000000000000 - Size.Width = 564.000000000000000000 + Position.Y = 96.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False object defOutPathLabel: TLabel Align = Left - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Left = 8.000000000000000000 + Position.X = 8.000000000000000000 Size.Width = 160.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False @@ -593,22 +602,22 @@ object SettingsForm: TSettingsForm object defaultOutputPath: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Client - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 361.000000000000000000 - Size.Height = 22.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 354.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False end object Button3: TButton Align = Right - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 536.000000000000000000 - Position.Y = 5.000000000000000000 - Size.Width = 23.000000000000000000 - Size.Height = 22.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 526.000000000000000000 + Position.Y = 4.000000000000000000 + Size.Width = 24.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Text = '...' OnClick = Button3Click @@ -616,8 +625,8 @@ object SettingsForm: TSettingsForm end object GridPanelLayout2: TGridPanelLayout Align = Top - Position.Y = 119.000000000000000000 - Size.Width = 564.000000000000000000 + Position.Y = 128.000000000000000000 + Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False ColumnCollection = < @@ -647,14 +656,14 @@ object SettingsForm: TSettingsForm end> object Layout1: TLayout Align = Client - Size.Width = 366.600006103515600000 + Size.Width = 362.700012207031300000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False object renderingModeLabel: TLabel Align = Left Anchors = [] - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Left = 8.000000000000000000 + Position.X = 8.000000000000000000 Size.Width = 160.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False @@ -662,7 +671,7 @@ object SettingsForm: TSettingsForm end object GridPanelLayout3: TGridPanelLayout Align = Client - Size.Width = 196.600006103515600000 + Size.Width = 194.700012207031300000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False ColumnCollection = < @@ -694,7 +703,7 @@ object SettingsForm: TSettingsForm StaysPressed = True Align = Client GroupName = 'renderingMode' - Size.Width = 58.980003356933590000 + Size.Width = 58.410003662109380000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False Text = 'All at once' @@ -704,7 +713,7 @@ object SettingsForm: TSettingsForm Align = Client GroupName = 'renderingMode' IsPressed = True - Size.Width = 137.619995117187500000 + Size.Width = 136.290008544921900000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False Text = 'Limit simultaneous threads' @@ -713,7 +722,7 @@ object SettingsForm: TSettingsForm end object Layout4: TLayout Align = Client - Size.Width = 197.399993896484400000 + Size.Width = 195.299987792968800000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False object Label1: TLabel diff --git a/src/SettingsUnit.pas b/src/SettingsUnit.pas index 66d1025..b8a9986 100644 --- a/src/SettingsUnit.pas +++ b/src/SettingsUnit.pas @@ -2,10 +2,10 @@ (* AErender Launcher *) (* SettingsUnit.pas *) -(* Lily Stilson // 2019 - 2020 *) +(* Lily Stilson // 2019 - 2021 *) (* MIT License *) (* *) -(* Copyright (c) 2019 - 2020 Alice Romanets *) +(* Copyright (c) 2019 - 2021 Alice Romanets *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a copy *) (* of this software and associated documentation files (the "Software"), to deal *) @@ -127,6 +127,7 @@ TSettingsForm = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; + TempFilesLabel: TLabel; procedure langBoxChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure aerenderPathSelectClick(Sender: TObject); @@ -251,6 +252,16 @@ function DetectAerender: String; Result := maxVerStr; end; +function GetTempFilesCount: Integer; +begin + var LauncherDirectory: TArray := GetDirectoryFiles(APPFOLDER); + var Res: Integer := 0; + for var i := 0 to High(LauncherDirectory) do + if (LauncherDirectory[i].Contains('.bat')) or (LauncherDirectory[i].Contains('.command')) or (LauncherDirectory[i].Contains('.log')) then + inc(Res); + Result := Res; +end; + procedure TSettingsForm.SetLanguage(LanguageCode: Integer); begin SettingsForm.Caption := Language[LanguageCode].SettingsForm.LauncherSettings; @@ -442,15 +453,19 @@ procedure TSettingsForm.FormCreate(Sender: TObject); {var LangFiles: TArray;} begin - try - if AERPATH.IsEmpty then - AERPATH := DetectAerender + {$IFDEF MSWINDOWS}'\Support Files\aerender.exe'{$ENDIF MSWINDOWS} - {$IFDEF MACOS}'/aerender'{$ENDIF MACOS}; - except - on Exception do - AERPATH := ''; - end; - {$IFDEF MSWINDOWS}OpenDialog1.InitialDir := 'C:\Program Files\Adobe';{$ENDIF MSWINDOWS} + var AErenderDetectionThread: TThread := TThread.CreateAnonymousThread(procedure begin + try + if AERPATH.IsEmpty then + AERPATH := DetectAerender + {$IFDEF MSWINDOWS}'\Support Files\aerender.exe'{$ENDIF MSWINDOWS} + {$IFDEF MACOS}'/aerender'{$ENDIF MACOS}; + except + on Exception do + AERPATH := ''; + end; + {$IFDEF MSWINDOWS}OpenDialog1.InitialDir := 'C:\Program Files\Adobe';{$ENDIF MSWINDOWS} + end); + + AErenderDetectionThread.Start; end; procedure TSettingsForm.FormKeyDown(Sender: TObject; var Key: Word; @@ -480,6 +495,7 @@ procedure TSettingsForm.FormShow(Sender: TObject); aerenderPath.TextPrompt := '/Applications/Adobe After Effects CC/aerender'; OpenDialog1.Filter := 'After Effects Render Engine|aerender'; {$ENDIF MACOS} + TempFilesLabel.Text := Format('%d %s', [GetTempFilesCount, 'temporary files']); end; procedure TSettingsForm.HandleCheckBoxChange(Sender: TObject); diff --git a/src/SplashScreenUnit.fmx b/src/SplashScreenUnit.fmx index 7194374..393d8b8 100644 --- a/src/SplashScreenUnit.fmx +++ b/src/SplashScreenUnit.fmx @@ -65,150 +65,150 @@ object SplashScreenForm: TSplashScreenForm PNG = { 89504E470D0A1A0A0000000D4948445200000080000000800806000000C33E61 CB000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 11D749444154785EED9D097415559AC72F84EC7B48C2128210C84242C8026421 - 2C0D08822DAE2D228BDDEAD0226833CDB881DAF6E0443DDA760FA3D8D0B68328 - 03B48E6D0B4454441C810EB2648F842490B08404921092909584CCFD57AAC27B - AFEA55D5CBC2AB4ADDDF39DF79756FBD9043BE7FDDEF7EB7EE3280F40CE1E7F1 - 39909A83C427C07DC118CA74981868A77643E253B82F7CDA4C771D22385370F2 - 206ACE26E6C41BEE0962107E1713813CA64E159C0D6BE5ADC5C4DAA8998AC166 - 21D8EA0CE1FBA64E77A5E64ECD73FAED8B437E36F791D97E01C1112EAEEEFE6E - AEAEBEED0EEEBE1DADADB8CFB091014E4E0D0EED0D358D4D4D35CD4D0D55572A - CF177CFFCD47FB7FF876FB197ABB9E5A03B5266AA66200AA85608B00F05D181C - EF42CD839AD7B4D98BC3E7DDB3E2C1A0611129DEFE01A3681DA38FA9ADAA2C2D - 2B2F38FCD5179B3E3DB87FFB295A5547ED1AB5666A1082EAD640AD00F03D34E3 - 68D6E1789F88F129A31E5DF9F68A3123421638780638D23AC62DA6BDBEF27AD1 - D9A2DD5B373FB7A920EF7029ADAAA1865601A1C2B48F60153502109E7A34F75E - 8E8E8E816B5FDDFD445468CA32273F0FD6B46B80D62BD71AF28B0E7FFCFACB0B - 365FBF7EFD32AD428B2084055911280940703EE2BC6F5050F8E8175277A58EB8 - 2D6C0A6E32B4C5C5F385875F5B7BF74B6565A74A6811AD01FA07B222901380A9 - F307A7CC5A14BBFCC90D7FF4F60F548CF32D2DCD24E7D8519275F408B95C7E91 - D4545771D6780D618AA18487A717F1F5F7273E7E83C99061C3496CD214121D3F - 893839A31196A7B6EA72E9A67756AD39F2C3FF66D16235355911581300EAD1D3 - EF74FECC87E29F7AEE830F5C5CDC7D70D31A2773B2C89E4F76909CE347C9F556 - 8421466FE1ECEC42264C4E240B1E7A98844545F3B5D2D08CA1E6DDB71EFF97C3 - 07FE96418B820890218844202500D4C1D0D3F7A3CD7E68EA3B3F6CF1F60DBC0D - 37A5B8505A42B6BFFF6792917E98AF61F42593A7CE200F2F5F4186078FE46BC4 - A02578F15FA73F46C341112D5EA1860C01023013819400D0DB47AFDE9B76F882 - FFF441EE3B41C1E1C9DC1D0B3A3A3AC8EE9DFF4376FC7533BD46A79371AB1838 - 702059FAE45364FEFD0BC98001526E24E45C4941FA334F4C789A760CCFD3622D - B5EBD4CC1C8566DE14FC4BA873A316B82E75CFD3E15149F7E0862568E237BDF5 - 1A49FB74272D59ED6330FA083C7CD9C77E24572A2F93988424E2E060E94AFA04 - FBFA078F0A8D1F7070FF76F4074CC708BAC0D36E0A0480A7DF2B747CF29871F1 - 539770B516C0F9A9CFAE2607F77DCDD730ECC581BD7BC81B2FFC1B696BC3C32D - 26266CC6E2D0718921F4D28B1A7C6BD65C98CA0637D0EBE79EFE352F6E7F3668 - 78E878DC3005CAFBF39BA924E3C83FF91A86BDA9AC2827B557AE90F8E4145138 - 707075720A1A19E1F1DDDE2DE9B4D848CDAC15306D0184E6DF2369FA03E32246 - 47CCE76A2DD8B5731B39F4ED377C89A115F6A7ED225FFFE333BE644EF8A8F03B - E1537A89515CF8B84B2596210043BD9E77DEBBEA1752C3BBE74BCE909D7FFD0B - 5F62688D8FDFFB2F525176812FDD04BE9C77F7AA07E8A52735F8B80B4100C2D3 - 8FD4CF2B38383209959620D563BD7DEDD2DEDE4EFEF6C166BE644E7008E753F4 - 03E0E3AE56402480E419BF08F5F11F12CCD59AF0537626C964715FF3A47FFF1D - 397DEA245FBA899FEF90910953EF0FA597920200DCB0EF8CDB97FDACB3684EDA - 273BF82B86D6E94CCDC5CC9CF7C80CFA81D15DF89AC3B40540A54BE0D0E030AE - C684E6A6266E7897A10F328FA44BA685014346C2B76801E06B5108E004E0EAEA - 3598AB31811BDBBF2E9D6732B44753630339998DB11F735C3A7D6B5500880B8E - CEEEAEA2173E5947914232F444E68F629F7938BBC1B7C8EE24FB005C2BE0ECEA - E9DD59BC496545057FC5D00B523E73F4F08000BA9E7E602A005C0F7273F6C448 - A019355595FC15432FD4548B7DE6E6C2F91602E8F2BB6908104C04267330F485 - 8CCFCC7C6DDA0200490134B0993CBAA3A11EB3C62531F3B1A50018068309C0E0 - 08CD015E1004508BFAFC4087E825FFA25929FC953618353694F80EF6E74BF214 - E6E71A3284B9B8BA920FD3BEE54B37B96FE6803BE8473E35F4125B7527800103 - 06920FBFDCC74D9254C3F1C307C91F5E7E812F1907B502D05D08F0F6F355ED7C - 103339D1A6EF1B0DDD092060C850FE4A1D8E4E4E24322E9E2F312CD19D00FC6D - 1400C054298634BA1340D048ABCB13AC3231698AD5A9D346477702C0EA185BF1 - 0B0824C1A3C7F0258629BA1200D6CC858E8BE44BB6119FCCD6B34AA12B014C98 - 9CC0A58152343562C6B375583F401A5D0920364172AE2A475EC63172EE4C315F - 12133A2E8A787A8BDE741B1EDD08004F7E6C82E412458E5379B9243F138B61A5 - 412750EEE78D8A6E04303A2C8C78F9585F9D7E2A2F87E4659EE04BD2B0302046 - 3702907B7AB156B1A4B09014E464C9AE5B88A17D088741980FC110D08F0012AD - C77FCC83C72C58BCF48110ACE1E6EE41C2C7CB6FAE6034742100A5F40FCDBF80 - 621848B26F181834C8910B6543470493B1119164C2A40432383090BF7BEBD185 - 00E4D23F800EA040BE06FA01E870C2A9C85AEE5EB484AC5AFB327963F316B2F5 - CB6FC9B66FBE277FF97B1AF9CF8F7692FF78EF7DB2EECD3F9195CFBFC4FFE4AD - 471702904BFF40A18900D01A608D9C35B0ADCAD0A0117CA9F740DF627CFC24F2 - CB55ABC9866D9F928D3B3F272FBCF13659FCEB9564DA9C79645468187176C1A2 - 1C31F6EC97685E009DE99F7501949D2D25D7EAB12D5E2758C5547C12AFBBAD13 - 97D43BA382EE9E9E2465F65CB2FAE5F5E4FDCFD3C84B7FD840E63FB090040E1B - C67F43FB685E009DE99F2F5F1263DAFC0B2886815E10C0ECBBEEA14EFF923CFD - E22B2479E66CAE83A947342F00A5C19B53F9373B80027203422032268EB8BA89 - 963FD844485838B75193DED1BE0064D23F909F217EDA0B7FCA935DCB88981B3D - 71325FEA1E0835FD014D0B4029FDABB8709E545DBEC4976E8281A14293D4508A - 9E66034A2F9FF482A605A094FEE5CAC47AA5301097982CFB6F2BD1DCD47B02B8 - 5456C65FDD7A342D00A5F42FEFC431FE4A8CD28090B7AF1F17C7BB8B9A1600C3 - D21768967270DF5764EBC60DE4F7AB5792D54B1792950BEF25CBEFBB93FCEAE7 - B79325736770FB2DDA0BCD0A4029FDC37675724F3986875B9AE5E3744FC2C00D - 99B10681E3870F91671E5D4236BEFE2AD9FBD927A420379B5CBA5846AE545592 - FADA5AAE1FD1DED6C6FD5FEC856605A094FE95149E32CBFF2DC11FB620279B2F - 49D35BE3017A46B302504AFFF2328EF357D6510A0308016A5718F557B42B0085 - F42F578500940684405C92B127896852004AE91F727CD33780D6282D2E525C17 - 68EFB783F6469302504AFF90E3B7B6E0481C796EDCB8414E6667F22569A2274E - E2560F19154D0A4029FDCB9549FF2C51EA07E00D1D86868D8AE604A094FE81DC - 13CAF15FE0A72CF9012160E4B9829A5B1E8E9EF96B9BFE9B2F4973E29F8768F3 - AE9C8703086A52CA34BE24CDE5F272B27AE98336E5E333E7DF459E78762D5F92 - E6D8A11FC8DBBF93FF4E5FA1DBE5E1B189CAB9F9C42953B97373D49892F301DE - DF7767CD617F408302906FFEFB0AA386014D09A0276BFF7A8A514705352500A5 - F4AF2F091F3F8113A0D1D09400947AFF7D0966F7603B19A3A11901A849FFFA1A - 238601CD08607468A8ECDBBF5B013AA052E7EFF56734330E70FFD25F91858F2D - E74B62EAEB6AC937FFF83B5FEA1E773DF4B0E28E61BF5FFD2429C8557ECFD05F - C601342380F5EF6E266191A2630ABBC021951B5F5FCF97BAC7F3AFBDA5D8CCEF - DAB18D3B1C4B093610D48BA849FFB001444FC151AB4A18AD1FA00901A849FF72 - 25A67FDB8A9A738F8247879080A1FA59D9D353342100A5DEFFC57367B943927B - 4AB99569E49618A915B0BB0054BDFD5331FB470DC289DB4AF4C6D231BD607701 - A849FFD4CCFF538B9A301015379138BB18637F61BB0B4069F227E6D6AB79A7AF - 168849E9F85B4747476EA9B711B0BF0014DEFE9D2E28E8D5FDFE71944AF149F1 - D1AA9618250CD855005CFA1719C597A4B165FA975AD48401BC1E36C2FEC27615 - 80BAF4AFF705A0A62388F502B78DC559CBFD1BBB0A40A9F78F99BF45F9797CA9 - F7385DF01377BCAA12F12A6627E91DBB09404DFA773227AB4FCE2CC61E426A32 - 0B23CC12B29B00D4A47FB6CCFEB595EC63CAFD803111E3B855C4FD19BB0940CD - BEBD79997D27809CE3CAFD006E7F613BCD51BC55D84D0063155EFE9C3D5D4CCE - 165BDFFDBBA7602A388E945362DC8458FECA9CD6D656FECA3AD8A944EBD8ED75 - 30366972F7F0E44B626AAFD6F4F91F107B05F9FAE1487DEB6009BAD47E40E8C3 - C42725CBEEF187790575F4FF610FFAEDB9810C75F4DB730319BD0B1380C16102 - 30384C00068709C0E03001181C260083C304607098000C0E1380C1B11480E426 - 397A3D0DC3C8E0381B2B98F95810002AADEE90E4EB6FECED54F588AF9FACCFBA - FC6DD902B437B6D48BF64137FA7EBA7AC467B0F82D676333E75BB3EDD54C0580 - C9F2ED0D8D75A22DB8F5740A16A313A9F58D2D4DF5B5F40302E85A18611A0250 - D976FD5AD355AEC60435B37718DA426ABE657363237CDB460DBE360B01284019 - AD4DCDF5A2190C38DE14AB6518FA00936D2263E3F9D24D9A1A6BE15BCCB281AF - 450280325A2E5D3C739AAB3101930BA2A90818FA20667292E4035B5E5602DF62 - 976DF8DA4C000095CD07BEDE7AB0B368CECF1F5CC45F31B48E355F7DF7D587F0 - 2DE6B7C1D71C9621A0E978FAEED33555E517B95A13A26893A2348F9F617F12A6 - CD905C6E57555D5E96F163DA197A09014886004E00D4EA4A4A7224E763E32064 - 23AC97D32BD8EB70D1E34FF02573CE1571FBE623C36BA62612004025E2436DDA - A71BF65CADAAEC6A260446868C210F3DF66BBEC4D01A7840874B6C7A0D5FA67D - F1EE6E7A893450100087A900A008ACC3BA96716CEFC9D273B907B85A0BEE59BC - 8CA4CC9AC397185A61FADCF956637F6949D6818C237BB1261EEBECE163EEE907 - 5202C0AAC9EA2DEFFCF6E3AA965AD1847884006C8F161615CDD730EC4D44F404 - B27CCD7392E1193EDCF2DE331FD3CB2BD4E0DBAE0C00586E8BD9F52FD45EBDD4 - 113626D677E4A8F1A2CDFBB0182265F61C7299F615CF97A05FC1B017D3E6DC41 - 7EFB4AAAD5738F320FEEFA6CEF171BF7D2CB726A104057FC079602C08DAE9B47 - 0FED3E9F90BC20DA67F0D0A17C551710017A9CF8C56A8E6763F42E5899B478F9 - 0AB274C5535657279D2ECECE7AF5F93BDEEEE8E8384F8B1805441FCF6C7F1C6B - 1BE37243851D1DED1D27D2F7144E9DB5688AAB9BF8FD229A9C88E8184E085597 - 2A4845D905FE0EA32FC136766BFE3D95FBBB5BCBCA2E55965D5CBF66D6EF1A1A - 6AB1C0B28A9AF0F49B21B7333244D0DED858D776AE24F74CE2D47BA73B3A3A3B - 77DE32074BA8A7DE3E9744C6C4737BFA420C38B28DD17B60642F363199C6FAE7 - C97D4B1EA17F73EB4BEB9B1AEBEB37A42E7EE54C7116CECEADA0564FCD2CF60B - C825F510071C8EDF343C267E4EC26FD67EB8CECF7FF870DC94038B29B10D4BD6 - D174525951416AAAAB484D5515696CE8BDCD9EFA339880833918780D1F40A36F - 5CE214EE7D0C86E495C093BFE9CD4753B38EEFC3DE3A18D0C3F83F9A7ED1D30F - E404807BC812B0619E0FB5E183034786AD5BFFC57321E1B11368D966EC794AB6 - 9EE8EE605B49515676EADA056F55575F28A445381F711F797FD7DB3F4B947E13 - EE0B2D8137B54007078711BF59B7ED9789F1F3EE72F6F131C66E8A1AA7E5EAD5 - E6A327F6EEDEF0FAB28FDADBDBD1E1C3CA5F0CFA084FBED5274F8DD484960022 - C0E440EC993264C4E8A8D0C79FFCE3E2E8B8D8E90E8302E5FA128C3EA2BDED72 - 7B7646C6FF6DD9F4CC8E0B25F945B40A1B21575343874FE8F1CB36BB6ADB1A7C - 0F8664134F3D4E57821002E226CE8D987FDF53778E0A8F8F0DF00F12A58B8CDE - A7B2AAACA2F45446D69ECF367C9993B9BF0055D4E07874F6D0E4E39D3F1CAF18 - 73D50A40002D019E7608013D12A486080DE8287AC74DBE2364DA9C65C941C3C6 - 8E76F3F2F271F7F0F56A7777F5F077F656EEBD30446014CFA1A1E95AC3B59ABA - C6BABAAB65E5C525DF7FBD353DE7C43E8CBEA18947070F711EBD6B8CDA0A933D - 54A760B60A0008AD01461F30EB002D021CEC460D21029F282364E0BE03193810 - DF8578BAF3FB8C089EDC1B349746EA068762881E4D3A9C8C899D70383E51C613 - 8FFB429AA7F8D49BD213870842408B0083B3D132C070DDE9FC4EC733E7DB4EA7 - 083A4D10010C4F390CD7A8173A7936395EA0379C22080126385B30C09CDF7D04 - 1100410C82094EEF96E3190C0683C16030180C863121E4FF0184240A537FCB10 - A70000000049454E44AE426082} + 11D649444154785EED9D097415559AC72F84907D25094B0886250B84AC4016C2 + D28020D8E2DA22B2D8AD0E2D8236D38C1BA86D0F4ED4A36DF7308A0D6D3B8832 + 40EBD8B6404445C411E8204BF64808818425242109210959E191B9FF4A5578EF + 55BDAA7A597855A9FB3BE73BAFEEAD1772C8F7AFFBDDEFD65DFA91EE21FC3C3E + FB537392F804B82F184399763303266A37243E85FBC2A7DD74D521823305270F + A0E662660379C33D410CC2EF622290C7DCA982B3616DBCB59AD9756AE662B05B + 08F63A43F8BEB9D3DDA87950F39A76FBA2513F9BF3C82CFFC0904857378F0077 + 37373F9393879FA9A505F71976E2E4EADAE8646AAC6D6A6EAE6D696EACBE5C75 + BEF0FB6F3EDAF7C3B7DBCED0DB0DD41AA93553331703502D047B0480EFC2E078 + 576A9ED4BCA7CE5A1431F79EE50F060F8D4CF509080CA5758C5EA6AEBAAAB4AC + BCF0D0575F6CFCF4C0BE6D2769553DB5ABD45AA84108AA5B03B502C0F7D08CA3 + 5987E37D23C7A7863EBAE2EDE5A38787CE77F21AEC4CEB18B7185343E5B55367 + 4FEFDAB2E9B98D85F9874A69552D35B40A0815E67D049BA81180F0D4A3B9F776 + 76760E5AF3EAAE27A2C252970EF4F7644DBB0668BB7CB5B1E0D4A18F5F7F79FE + A66BD7AE5DA255681184B0202B02250108CE479CF70B0E8E18F942DACEB4E1B7 + 854FC64D86B6B878BEE8D06B6BEE7EA9ACEC64092DA23540FF40560472023077 + FEA0D4990BE3963DB9FE8F3E01418A71BEB5B585E41E3D42B28F1C2697CA2F92 + DA9A6ACE9AAE224C3194F0F4F2267E0101C4D77F10193C7418894B9E4CA21326 + 92812E6884E5A9ABBE54BAF19D95AB0FFFF0BFD9B458434D5604B604807AF4F4 + 3B9C3FE3A184A79EFBE00357570F5FDCB4C589DC6CB2FB93ED24F7D81172AD0D + 6188D153B8B8B89298494964FE430F93F0A868BE561A9A31D4BEFBD6E3FF7268 + FFDF326951100132049108A404803A187AFAFEB4D90F4B7BE787CD3E7E41B7E1 + A614174A4BC8B6F7FF4C32330EF1358CDE64D294E9E4E165CBC9B090117C8D18 + B4042FFEEBB4C7683838458B97A9214380002C44202500F4F6D1ABF7A11DBE90 + 3F7D90F74E7048440A77C78AF6F676B26BC7FF90ED7FDD44AFD1E964DC2AFAF7 + EF4F963CF9149977FF02D2AF9F941B0939575298F1CC13314FD38EE1795AACA3 + 768D9A85A3D0CC9B837F0975EED482D6A6ED7E3A222AF91EDCB0064DFCC6B75E + 23E99FEEA0259B7D0C462F81872FE7E88FE472D525129B984C9C9CAC5D499F60 + BF8090D0B0847E07F66D437FC07C8CA0133CEDE6400078FABDC3C6A78C1E9B30 + 6531576B059C9FF6EC2A7260EFD77C0DC351ECDFB39BBCF1C2BF91EBD7F1708B + 890D9FBE286C6CD2287AE94D0DBEB5682ECC65831BE8F5734FFFEA17B73D1B3C + 2C6C3C6E9803E5FDF9CD349279F89F7C0DC3D154559493BACB9749424AAA281C + 38B90D1C183C22D2F3BB3D9B3368B1899A452B60DE0208CDBF67F2B407C6468E + 0C9FC7D55AB173C75672F0DB6FF812432BEC4BDF49BEFEC7677CC99288D0B03B + E1537A89515CF8B85325D6210043BD5E77DEBBF21752C3BBE74BCE901D7FFD0B + 5F62688D8FDFFB2F525176812FDD04BE9C7BF7CA07E8A51735F8B8134100C2D3 + 8FD4CF3B24645C322AAD41AAC77AFBDAC5643291BF7DB0892F5912328AF329FA + 01F071672B201240CAF45F84F9060C0EE16ACDF829278B64B1B8AF7932BEFF8E + 9C3E79822FDDC4DF6FF088C429F787D14B4901006ED877FAED4B7FD651B424FD + 93EDFC1543EB74A4E66266CC7D643AFDC0E82E7CCD61DE02A0D2356848483857 + 63464B733337BCCBD00759873324D3C2C0C123E05BB400F0B5280470027073F3 + 1EC4D598C18DED5F93CE3319DAA3B9A9919CC8C1D88F25AE1DBEB52900C40567 + 170F37D10B9FEC234821197A22EB47B1CF3C5DDCE15B6477927D00AE157071F3 + F2E928DEA4AAA282BF62E805299F397B7A42009D4F3F301700AE07B8BB786124 + D082DAEA2AFE8AA1176A6BC43E7377E57C0B0174FADD3C04082602933918FA42 + C66716BE366F0180A4001AD94C1EDDD1D88059E39258F8D85A000C83C1046070 + 84E6002F0802A9457DBEBF5DF4927FE1CC54FE4A1B848E09237E8302F8923C45 + 0579860C61AE6E6EE4C3F46FF9D24DEE9BD1EF0EFA51400DBDC436DD09A05FBF + FEE4C32FF7729324D570ECD001F287975FE04BC641AD007417027CFCFD543B1F + C44E4AB2EBFB46437702081C3C84BF5287F3C081645C7C025F6258A33B0104D8 + 290080A9520C69742780E011369727D86442F2649B53A78D8EEE0480D531F6E2 + 1F184442468EE64B0C73742500AC990B1B3B8E2FD947420A5BCF2A85AE041033 + 29914B03A5686EC28C67DBB07E8034BA12405CA2E45C558EFCCCA3E4DC9962BE + 24266C6C14F1F211BDE9363CBA11009EFCB844C9258A1C27F3F348411616C34A + 834EA0DCCF1B15DD0860647838F1F6B5BD3AFD647E2EC9CF3ACE97A46161408C + 6E0420F7F462AD6249511129CCCD965DB7104BFB104E03301F8221A01F0124D9 + 8EFF98078F59B078E90321D8C2DDC393448C97DF5CC168E842004AE91F9A7F01 + C53090ECD8303060803317CA860C0F216322C791988989645050107FF7D6A30B + 01C8A57F001D4081020DF403D0E1845391B5DCBD703159B9E665F2C6A6CD64CB + 97DF92ADDF7C4FFEF2F774F29F1FED20FFF1DEFB64ED9B7F222B9E7F89FFC95B + 8F2E042097FE81223301A035C01A395B605B9521C1C3F952CF81BEC5F88489E4 + 972B5791F55B3F251B767C4E5E78E36DB2E8D72BC8D4D973496858387171C5A2 + 1C318EEC97685E001DE99F6D01949D2D25571BB02D5E0758C5547C02AFBB6D13 + 9FDC33A3821E5E5E2475D61CB2EAE575E4FDCFD3C94B7F584FE63DB080040D1D + CA7F43FB685E001DE99F1F5F1263DEFC0B2886811E10C0ACBBEEA14EFF923CFD + E22B2465C62CAE83A947342F00A5C19B9305373B8002720342605C6C3C717317 + 2D7FB08B51E111DC464D7A47FB029049FF4041A6F8692FFA295F762D23626EF4 + 84497CA96B20D4F405342D00A5F4AFE2C279527DA9922FDD0403434566A9A114 + DDCD06945E3EE9054D0B4029FDCB9389F54A61203E2945F6DF56A2A5B9E70450 + 5956C65FDD7A342D00A5F42FFFF851FE4A8CD280908F9F3F17C7BB8A9A1600C3 + D21768967260EF5764CB86F5E4F7AB5690554B1690150BEE25CBEEBB93FCEAE7 + B793C573A673FB2D3A0ACD0A4029FDC37675724F3986875B5BE4E37477C2C00D + 99B1068163870E92671E5D4C36BCFE2AD9F3D927A4302F87545E2C2397ABAB48 + 435D1DD78F305DBFCEFD5F1C856605A094FE95149DB4C8FFADC11FB63037872F + 49D353E3017A46B302504AFFF2338FF157B6510A0308016A5718F555B42B0085 + F42F4F8500940684407CB2B127896852004AE91F727CF33780B6282D3EA5B82E + D0D16F071D8D2605A094FE21C76F6BC59138F2DCB871839CC8C9E24BD2444F98 + C8AD1E322A9A148052FA972793FE59A3D40FC01B3A0C0D1B15CD094029FD0379 + C795E3BFC04FD9F20342C0C8730535B73C1C3DF3D736FE375F92E6F83F0FD2E6 + 5D390F0710D4C4D4A97C499A4BE5E564D59207EDCAC767CCBB8B3CF1EC1ABE24 + CDD1833F90B77F27FF9DDE42B7CBC3E3929473F30993A770E7E6A83125E703BC + BFEFCA9AC3BE80060520DFFCF716460D039A124077D6FE7517A38E0A6A4A004A + E95F6F12313E8613A0D1D09400947AFFBD0966F7603B19A3A11901A849FF7A1B + 238601CD0860645898ECDBBF5B013AA052E7EFF56534330E70FF925F91058F2D + E34B621AEAEBC837FFF83B5FEA1A773DF4B0E28E61BF5FF52429CC537ECFD057 + C60134238075EF6E22E1E344C7147682432A37BCBE8E2F758DE75F7B4BB199DF + B97D2B773896126C20A8075193FE610388EE82A35695305A3F4013025093FEE5 + 494CFFB61735E71E858C1C450287E867654F77D18400947AFF17CF9DE50E49EE + 2EE536A6915B63A456C0E10250F5F64FC5EC1F3508276E2BD1134BC7F482C305 + A026FD5333FF4F2D6AC24054FC04E2E26A8CFD851D2E00A5C99F985BAFE69DBE + 5A2026A5E36F9D9D9DB9A5DE46C0F1025078FB77BAB0B047F7FBC7512AC527C4 + 47AB5A639430E0500170E9DFB828BE248D3DD3BFD4A2260CE0F5B011F61776A8 + 00D4A57F3D2F00351D41AC17B86D0CCE5AEEDB3854004ABD7FCCFC3D5590CF97 + 7A8ED3853F71C7AB2A91A0627692DE719800D4A47F2772B37BE5CC62EC21A426 + B330C22C218709404DFA67CFEC5F7BC939AADC0F181D39965B45DC97719800D4 + ECDB9B9FD57B02C83DA6DC0FE0F61776D01CC55B85C3043046E1E5CFD9D3C5E4 + 6CB1EDDDBFBB0BA682E3483925C6C6C4F15796B4B5B5F157B6C14E255AC761AF + 83B1499387A7175F125377A5B6D7FF80D82BC8CF1F47EADB064BD0A5F603421F + 26213945768F3FCC2BA8A7FF0F47D067CF0D64A8A3CF9E1BC8E85998000C0E13 + 80C1610230384C00068709C0E03001181C260083C304607098000C8EB5002437 + C9D1EB69184606C7D9D8C0C2C782005069738724BF00636FA7AA47FCFC657DD6 + E96FEB16C0D4D4DA20DA07DDE8FBE9EA11DF41E2B79C4D2D9C6F2DB657331700 + 26CB9B1A9BEA455B70EBE9142C460752EB1B5B9B1BEAE80704D0B930C23C04A0 + F2FAB5ABCD57B81A33D4CCDE61680BA9F9962D4D4DF0ED756AF0B545084001CA + 686B6E6910CD60C0F1A6582DC3D007986C332E2E812FDDA4B9A90EBEC52C1BF8 + 5A240028A3B5F2E299D35C8D19985C104D45C0D007B19392251FD8F2B212F816 + BB6CC3D7160200A86CD9FFF596031D454B7EFEE042FE8AA1756CF9EABBAF3E84 + 6F31BF0DBEE6B00E01CDC732769DAEAD2EBFC8D59A11459B14A579FC0CC79338 + 75BAE472BBEA9AF2B2CC1FD3CFD04B084032047002A0565F52922B391F1B0721 + 1B61BD9C5EC15E870B1F7F822F5972EE14B76F3E32BC166A22010054223ED4A5 + 7FBA7EF7954B959DCD84C08851A3C9438FFD9A2F31B4061ED061129B5EC397E9 + 5FBCBB8B5E220D1404C0612E002802EBB0AE661EDD73A2F442C17EAED68A7B16 + 2D25A93367F32586569836679ECDD85F7A36777FE6E13D58138F75F6F031F7F4 + 03290160D564CDE6777EFB71756B9D68423C4200B6470B8F8AE66B188E26323A + 862C5BFD9C6478860F37BFF7CCC7F4F23235F8B6330300D6DB6276FE0B75572A + DBC347C7F98D081D2FDABC0F8B215267CD2697685FF17C09FA150C473175F61D + E4B7AFA4D93CF728EBC0CECFF67CB1610FBD2CA7060174C67F602D00DCE8BC79 + E4E0AEF38929F3A37D070D19C257750211A0C7895FACE6783646CF8295498B96 + 2D274B963F657375D2E9E29CEC579FBFE3EDF6F6F6F3B4885140F4F12CF6C7B1 + B5312E3754D8DE6E6A3F9EB1BB68CACC8593DDDCC5EF17D1E44446C77242A8AE + AC20156517F83B8CDE04DBD8ADFEF734EEEF6E2B2BABAC2ABBB86EF5CCDF3536 + D66181653535E1E9B7406E676488C0D4D4547FFD5C49DE99A429F74E73767671 + E9B8650996504FB97D0E19179BC0EDE90B31E0C83646CF8191BDB8A4141AEB9F + 27F72D7E84FECD6D2FAD6F6E6A68589FB6E89533C5D9383BB7825A03358BD82F + 2097D4431C70387ED3B0D884D989BF59F3E15AFF8061C370530E2CA6C4362CD9 + 473248554505A9ADA926B5D5D5A4A9B1E7367BEACB60020EE660E0357C208DBE + F14993B9F731189257024FFEC6371F4DCB3EB6177BEB60400FE3FF68FA454F3F + 901300EE214BC08679BED4860D0A1A11BE76DD17CF8D8A888BA165BB71E429D9 + 7AA2AB836D25A7B273D2D6CC7FABA6E642112DC2F988FBC8FB3BDFFE59A3F49B + 705F68097CA8053939390DFFCDDAADBF4C4A987B978BAFAF317653D438AD57AE + B41C39BE67D7FAD7977E643299D0E1C3CA5F0CFA084FBECD274F8DD484960022 + C0E440EC993278F8C8A8B0C79FFCE3A2E8F898694E0386C8F52518BD84E97A85 + 292733FBFF366F7C66FB85928253B40A1B21D75043874FE8F1CB36BB6ADB1A7C + 0F8664134F3D4E57821002E327CC899C77DF5377864624C40506048BD24546CF + 53555D56517A32337BF767EBBFCCCDDA57882A6A703C3A7B68F2F1CE1F8E578C + B96A05208096004F3B84801E095243840674147DE227DD316AEAECA529C143C7 + 8C74F7F6F6F5F0F4F33679B87906B8F828F75E1822308AE7D4D87CB5F16A6D7D + 537DFD95B2F2E292EFBFDE92917B7C2F46DFD0C4A38387388FDE35466D85C91E + AA53307B050084D600A30F98758016010E76A78610814F94113270DF89F4EF8F + EF423C5DF97D46044FEE0D9A4B2375834331448F261D4EC6C44E381C9F28E389 + C77D21CD537CEACDE98E430421A04580C1D9681960B8EE707E87E399F3EDA743 + 041D26880086A71C866BD40B9D3CBB1C2FD0134E118400139C2D1860CEEF3A82 + 08802006C104A777C9F10C0683C16030180C06C39810F2FF64A80A533637E0C4 + 0000000049454E44AE426082} FileName = 'E:\YandexDisk\Development\Delphi\AErender Launcher\src\AErender ' + 'CC\icon_128.png' @@ -220,310 +220,310 @@ object SplashScreenForm: TSplashScreenForm PNG = { 89504E470D0A1A0A0000000D49484452000001000000010008060000005C72A8 66000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 25E249444154785EED9D077C5455DAFF4F1AE9994C12020124104A28A1242414 - 290151545E9445DDF5B5EDEBAAABEBA28BAEF2BA2EB8C515FDAB6B6F58B0ADBA - BE9645855DBB08882E9D9046127A27BDF7F23FCFF51CF6322433F7CEBD9364E6 - FEBE9FCFF9DCF3DC994926CAF33BCF739E73CFF163BD1B7F7195C8EFEB7895F4 - F6BF07F8061DE22A91B6E355D22EAEBD8EDEE8306AA7A73E7D476AF27E577DA2 - 37FE3DC0F7503B3839B7B43BEB53530B40AF1283DEE2308E0E2DAF01E22A9BB4 - E975EACBF711EA3E009EA433476F1357B2A94F57D9A42D5F577FB64721A7E929 - D4CEAA7666EA078A6B90E8CB265F93EFA3ABBAC9BFA727FF2EE0BB48C7958EAC - 6ED2C95B459FAEB2B5A8EEA9C580FA12BAD7EDF484A390A3126A87978E4D8D9C - BE8FAA05279C3322E2DC593F4BEADB3FB17F4C74FFBE11D1317DC3C26DB12121 - 91B1A1A1E1B17DFA84C53436D4DB6C317EF26703E031AACA3BDA4342C3AA9A9B - EBCB1B1AEACA1A1B6BCAEAEBAACA6A2BCB4BCA2B4F96949C3C74F2FB0DEFED3F - 71A4A886BFBDD9A1911848612001500B02D1AD42D09D0240BF4B36E9F86A870F - 56B590096973FB5DBCE8B6CC21C3526786C747A44604C4D27D00BC82DAB6B2A6 - FA92DA1D07F6EEFC6EED074FADCFC9FAF614BFDDC85B93AAA905412D04B2799C - EE1000E9F4847AB4974E1FC25B286F61E75D74C3F059175C3D67F090B1333A58 - D0E89898D8EEF87E007894F2F2B20ED6D19877E4D09E4D1BBE7C67DD379FBDBA - 97DFAEE7AD8137290A2406EAA880F0B81078DAC164484E4E4F7DE9F8A79D3EC2 - DE37FACE7BFE7645F2D8298BC223A207F37B00F83475B595870B7237AF7EE2E1 - EB3EA8AD28A9E4B7D462208580A20129041E4B0B3C2900E4F0F4F3D5A1BE74FC - 88C0C0C0C8C54B5FBD386DFAA5374685DB06F07B00588AEABAAAE33B367DB2EA - B9476FF8B4B5B595E60B6A799342A04E0D280AF08808784200E8675293233EB5 - D38E4FED17B73C3A23F3A26B6EB545278CE0360096A6BCF264E1FACFDE5CF9E6 - 8BF77CC74D12823ADEA4109008C888C0F494C06C015087FC32DC27C70FE72D6A - E195774FF8AF458B17F7ED37249DDB00001525A70E6E5BF3E1B3CFAE79FFB1DD - DCACE64D0A817A7E80302D1A305300D421BF9CD90FE32D2A2424D2BEE2A97577 - 46C70DB91C137B00740D4D1856961EFC70D992394F3436D654F05B2404344720 - 2B06A6A604E4AC66E0E8FC34EA47F2169D34327DF0034F6F786CD0E051734343 - C3E0FC0038817CC41E3B60CCEC79D7A6E6EEDEB8A3A2EC38393D219D5EA601E4 - 4B86D3013304403A3F85FC54D693CE6F9FFB5F374D58B2FCADA763ECF123B90D - 00D04858B82D61E67957CEAEAA2ACD3B50B483E605A4E313A68980D11159EDFC - 32E4A7893EFB8D8B9FBAE0BC85BF581E161449F74CA7B2AC8CED2FDCC32ACA4A - 7F6CA5A5AC5CD5AFADAE621D1D86FEDB00A0E0E7EFCFA26CD1CC1E1BCB5B1CB3 - C7F5FDF1AAF4E3D8B0E4D12C2A3A5ABCDB5C5A5A6AEB3EFF64D503AB9EBDE32B - 6E524A4095029912D0BC00FD23773B1D3022009D397F54606060CCEF1F587BFD - C4C9E937FBF9C5D27B4CE3F8E1436CEBA60D6CEB771BD8DEFC3C7117809EC5CF - CF9F25A78C63E9D3672AADFFC041E21573E8E8286BDFBE65CB4B0F2FBFF4F5D6 - D6D6327E8B22025344C05D01A0CF9173530A41CE4FB3FC91DCF9E31E7961EBBD - 43874FBC94DB86A1119C1C7DEB77EB15A73F71F488780580DECBA0214359C68C - 59BC65B2A491C9E2AE71F6EDDDF5F1EF6ECD7848250254252011A08941393FA0 - 0B7704803E434D3ABF32F2F31673DF83FFBC316DDAFC5B78DF30E4F86FBFF81C - CBDFBD4BDC01C0FB989031855D7DF3AF59E2B0E1E28E31B66DFE74E58ADFCD7F - 9577CB795357086475409708B8330928477EF56CBFFD86DB9E9C9779C1FCBBFD - FC8CCDF49FE4A3FCCB4F3CCAFEF6FCD3ACF4D449711700EFE4D4F163ECEBB51F - 2B578A06C222688ACC7D1206C6A48586F73FB46BEBE7C7B8291708A9AB031E15 - 00727E6A72759F32E137F7A21B522FBFFEDE87FA04445344E016D59515ECED97 - 5E602B1F79901D39B05FDC05C03738BC7F2FFBE2E3D5ACBEAE9625258F627D82 - DD7BB89506D8C12353A6559C3AB9FDE0BE5D34294823BF6CD2F9358B801E0150 - E7FDF4ED29EF8F1E969C3EE4CE656F3D1E1E6A8BE1B65B7CFFCD57EC81BB97B0 - 829CDD98B9073E4B7B7B3B2BCCCD512282418943D98073DC7BF62D2820386874 - 6A6646D6D62F3754969FA095827295A05A0434A155001CF37E727E5B444474FC - 5FFEBAEE91E8B87E6E25381D1DEDECBDD75E666F3CFB246B6DA5BF0100DFA7A5 - B999FDB0EE6B16D4278825A78CE7A3BAFEAC39B84F48E484C9178FF9FA9FAFAC - 6F6D6D962B04A9E99A0CD42A0032F497793F85FE312B9EDE78F7394347CFE67D - DD343634B0A7FFF247AE869F883B00588B9C1DDBD8A9E34759EA94735940809E - 60FC4722226CFD2766CC8BFE72EDCBDBB8A91601CDA98096DFDA59E86F5F70C5 - 928C495317DD1D1A1AAA5BBE4A4E9E602B962E61F95998E107D6E6F0FE7D2C7B - FB569636753A0B097363CD9C7FF0A8D696FAED457BB694704BAE0BD09C0A9063 - BB420A008DFE5200A2162CFCCD2D76BB5DB7F35379EFF7B7DEA8FCE10000633E - 410FD72DB8E2CE9B7997AA71E49BE4A3E4ABE4B32EFDD35504A01EFD29F75766 - FDAFB971C5ECC9332EBD96F7754123FFFDBFBD8DD55455893B0000A2A1BE9EED - F8F7263663EE3C16124A59B6762223ED09FEFE814539BBD61DE5264501EAA706 - 9DE22A02900220CB7EE13C57B1CDB9E8FA9B785F17F4073EBAFC1E383F005D50 - 565CCC1EBBEF5ED6D2221F00D4CEDCF937DC44BEC9BB140590AF92CFBA8C029C - 4500EAD19FC20A65F4BFF5EE972F4D99907909EF6B8666FB9FFACB1FB0AA0F00 - 17949514B3F2D262967EEE4C5DD581B0B0C8187BEC80935BBF5F4379046D32AA - 290A701501C8D19F04202C2C2AC63E79D665FF432FE8E1FF5E7D996DDBB45158 - 000067ACFFEC5FECD30FDF13967626675E7E3DF928EFD26C22F9AC8C02BAC4D9 - 8B243FD4A40084DFF1BFAF5D668BB0F7E37DCD6CFAE64BF6D1DB6F0A0B00A085 - BFBDF02CCBDABA5958DA20DF5CB2F4B545BC2B2703C977A51F774A5702203F44 - E13FCD282AF9FFE8313317F0AB66AA2ACAD9CB8F3D2C2C008056286D7EEEA1FB - 95B9333D8C1E3B83D273390F40BE4B3EDCA5083813007A4DCEFE87669E7FCD88 - 08BB7D20EF6BE6C3375F5316FC0000F4535D59C9FEF9FEDF85A58D487BCCC099 - E75D45BB6D5329817C977C987C59970010F49AACFD87CE9C7BF52CBAA9157A76 - 9FD63C0300DC67CDFFBDC32ACBE9F17FEDCC3C4FF1551200F25DB926A0533A7B - 41860BF41AE510144A84250E9D30955F35F3EE2B2B595B1B4D420200DCA5A9B1 - 5189A4F5903472DC147EA18940C772E059514057CA40F765FE1F9C3C6E7A7FFF - A010CD0FFC14E5E5B2CD1BBE151600C0081449EBD90DCB2F2062C4A831D368B2 - 5E4600320D388BCE6E4AA590F97FC845972E9EAE753F7F7A9C9776F201009803 - 3D46FCEEAA1785E51AF2D58B7F72DB74DEA50840CE03688A00E41BE83E850EF4 - E1E0E4D1933587FF4579396C4F7696B0000066B079FD3A65B72CAD8C1839691A - BF5004403E2CD300E20C11E82A0220C55004203E7E882D3E2A721CBDA0852D1B - 37881E00C04CB67DBF51F45C131F631F47BECBBB5200641470069D0900DD9322 - 1094317D615240643CE5112EA1F09F76F00500988F9ED5B4E4B319332E1DCABB - 720E807CFA2C7F77BC211582EE936A04C52724C62B773470ECD04165F3430080 - F914E4E4287B676A252E7E304D049200E84E01E8BE920644DBFBF7A59B5AC07A - 7F003C07AD0EDCFEC32661B9C61E9710C72F32FC279F3EC3F909970210618BD5 - BCD9271DDE0100F01C7A06595B441CF9AE4101888AD62400E525C56C5F41BEB0 - 00009E80B60F6B6A6A149673226C76B70480382D0211E1767ABCD025FB0B0B44 - 0F00E0299A9B9A349F9B11161E4DBEDBA5F3138E02406F524700012161919A04 - 804EE50500781E3A195B0BA1E18AEF2A7ECC9B14813384C0510008F906450802 - 8322A996E8123A921B00E079B40EB60141117466B97AF43FC3F989AE0440717E - BA464634D26EA32E41040040F7A075B08D8C6822DF3DEDCBA29D81A300C837C8 - 37FB6B3DE3BF1C020040B7A075B015BEEBE8FCF2AAD09573CB0F9CF166672005 - 00A07BD039D83AF5E5CE0440FD46ED025046079300003C8DCEC1D6A93F3B0BEF - E9CD9A05A0B6BA5AF400009EA4A6AA52F434E1D48F9D09802E70AC3700DD4387 - B663FF34619A000000BC0F08000016060200808581000060612000005818C7F2 - 003D3A483B8946F1D69FB7C1ABD775ACE65797FCF779B40929E88AC93333594A - 5ABAB0CCA3F8C409E5F4185461AC43746C2C5BF9FE27C272CEA2397E7456E061 - DE4EF246B57A7A96B8953705084037F1F4DBEFB3F88401C232973FDFB11847AF - 5B0833050029403761D3B6AD825BA44F9F297A00E80302D00D040505B1E0103A - AACD33A44D43F405DC0302D00D84475246E53912069DC3FAF306805E2000DD40 - 44A4A62D150C9136E55CD103403B10806E20D2461BB37896B4691000A01F0840 - 3770CED024D1F31CA3C74F64A161E1C202401B10806E60D8A831A2E739020203 - D9F8F40C6101A00D0840373062B4E70580489B8A6A00D00704C0C3C4C6C7B301 - 831385E55952A74E637E7EF85F0AB4837F2D1E66E2643AA6BD7B888AB6B361C9 - A38405806B20001E66E2E4A9A2D73DA01A00F40001F0208181416CDCA4EE9D98 - C33C00D00304C08324A78C6321A19E5B02DC1943468C6431719A4F7407160702 - E041264EE9BEFC5F4D6A0FFD5EE07D40003C88BBF9FFDEFC3CD6D6D6262CFDE0 - E120A015088087A0F29FBB2B00B7FFF01DDB57902F2CFDA44C4A67417DFA080B - 80AE8100780823E5BF829CDD2C6FD74E61E9273838848D9998262C00BA0602E0 - 21DC0DFF29F4DF979FCFF2B3DC170062D2549403816B20001EC048F9EFE0DE42 - D6D4D4A84401EDEDEDE2AE7E52B900F8F9693ED90D58140880073052FE2BC8DE - AD5C1B1B1AD8BE3DEECF03F4ED9FC006260E1116009D0301F00046CA7F34F24B - 8CA601A806005740003C8091E5BF0539D9A2C758AE5101C0AA40E0020880C918 - 29FF159F38CE2ACBCB84C558A1C17980E4941416E1E1FD08817703013019A3E5 - 3F350DF5F56C7FE11E61E9871E0D9ED0CD0F2301EF020260326685FF1223EB01 - 083C1D089C01013011A34FFFEDC9CE12BDFF6074227062C654161010202C00CE - 0402602246CA7F75B5B5ECD8A143C2FA0F7BB277B38E0EF7E701C22323D98831 - 29C2B21E247E340F42C7B20D1D91CCC6A64E625366CD6673E62F600B7E7615FB - D90DBF64BFF8CD6FD90D4BEE52CE57B01A381BD044AEB96531BBE4CAAB85A58F - 9D9B7F600FDF7BB7B0CEE4C11756B124033BFD7CF2EEDBEC9D979E1796EF4191 - 176DBB4693AF839392D8394392D8A0214395EDD843C3C2C4BB5CF3C11BAFF2B6 - 4A58BD179C0DD84B3196FF9F3901A8262F6B87E8B9479A8F2C0BA6958DFD060C - 64193366B1CBAEBD9E2DB9EF7EF6D7D7DE666F7CFA357BE49537D8EDCBFEC816 - 5E759DB2FE81467C3DCE4F0406D2F8672D20002661A4FC471476320128C93538 - 1148A3617C4282B0BC0BDADC24F3C28BD9E27BFFC05E78FF63F6D45BEFB1BBEE - 7F4809DDA7CD99CB06250EC11C870120002661A4FCA73C00E464D92F2D0F3632 - 0F40A47AC9D16174B8C9243E825F7FFB9DEC313EBA3FFFDE47ECD67B96B39917 - 5CC8A26362C5BB805940004CC248F87FA0B0407900A82BEAEB6AD981A22261B9 - 476F5E161C69B3B10B2EF909FBE393CFB1559F7CC696AE78845DB4E80A3CCBD0 - 0D40004CC068F9CF59FE2FC9DB656C1E606C6A5AB7EF4FE88CE0901036FDBC0B - D8FF72675FF9C11A76E39D4B95E3CDFCFDF14FB23BC17F6D1330BAF9A7160130 - BA1E80442A252D5D583D07ED5444CEFED23FD6B2DB97FF49894C90C3F71C1000 - 1330BAF967672B001DA145421D1D1DC2728FDEF070D0D0E12395703F38A4F744 - 23560602600246F2FF53C78FB1AA8A7261750D2D143AB4D7E03C003609010E40 - 000C62B4FC472BFDB49267300DA0052443F808DC933434D48B1EE80D40000C62 - F4ECBF9C1DDB44CF35B9062702899E7E38889E7004BD070880418C84FF841E01 - F8711EC0D87A809E2E073642007A15100003182DFF1D3B74905594950ACB3575 - 35356C7F6181B0DC6358F26866B3C708ABFB410AD0BB800018C068F92F5BC7E8 - 2FC9DEAEFF338EF4E4D1616DADADACA5A54558A0A7810018C068F92F7BFB56D1 - D38E3B9F710469009040000C6024FFA75C3E3F6B97B0B453989BCD5A9A9B85E5 - 1EE3D3272BE94B4FD11B27029B9B9AD8418365566F04FB01B80995FF9E7B57D3 - 7F9A4E29CACB65F7DD76B3B0F4B1ECD1270DCD3D102B96DE614A34E10EF4E8EE - E0A4E1C2328F9AAA2A76F2D851A59D3A4EED18ABADAE66CD5C305B79DAD1D2DC - 74BAFFE3B55911D396E616D6D6D66A78A1557781FD007A01B4D59611F4CCFE3B - E2CEDC81233DB947001D7A62060DF5756CCBC6F5ECE5C71F61B75D7539FBE5A2 - F98AA83EF7D0FDCAE61E1BBFFC5CD9682577E77665B9354DA01E3D78401188F2 - 9262565D59A94423ADAD2D5EE3FC6603017013C3F9FF0EF747DF1C93E6017A6A - 55607BBB39CEF6FA334FB0C7FFF87BF6F5DA8F59E9291AE0805E20006E60B4FC - 47F966516E8EB0F443B96A6D0D4573EE433BEB58710F3C7026100037305AFEA3 - 053D464A61745848EE4E3356055A6BDE069C0D04C00D7AA2FCE7882969008E0E - B33C10003730BEFC77BBE8B98F191381C9E3C6B3F0880861012B0201D089D1A7 - FF287737A3DE4C252EA3135FB41107AD0900D60502A01333CA7F461FE821A86C - 65C6B260CC03581B08804E8CE6FF6684FF12236B0924F43833F6E1B32EF83FAF - 03A3E53FC2CCD577393B8D8B09EDC83B7CD4186101AB0101D081D1F25FC9C913 - ACF8C471611987B6123BBC7FAFB0DC076980758100E8C08CF0DFEC25A7A63C1E - EC23478701FD40007460B4FC6764F96F5798310F90386CB852DD00D60302A011 - A3E53FC2CC094049FEEE5DCAD1624649F392A3C380B940003462B4FC47B97A75 - 6585B0CC839EAC2BCA73FFB90209E601AC09044023C697FF1A0FD5BBC28CCA02 - 9D1A141C4C5B41002B0101D08019E53F3372F5AE30435CE8C8AE31A969C20256 - 013B026960ECC43476DFE3CF08CB3D563DF1286B6CD4B71186D68A41406020FB - D5D2DF1B7EBEFFCB351F29DFD3D3FCE9A917D8A871E385E53E2F3CFC005BFFF9 - A7C2B20E66EE080401D0C035B72C66975C79B5B07C97B2E26276DB5597797C77 - 1C088031B025583763B4FCE72DFC58E918262C600520002E30A3FCE74DF4F4D1 - 61A07B8100B8C068F9CFDBE8C9CD4241F703017081D1F29FB731624C8AF28010 - B0061000279851FEF336A89260F4C463E03D40009C60F4E93F6F05AB02AD0304 - C009560BFF251332262B6B0B80EF0301708255CA7F8E84854728D10FF07D2000 - 5D60B5F29F23D832DC1A4000BAC06AE53F47500EB40610802EB06AFE2F193038 - 91F51F384858C0578100748215CB7F9D81ADC27C1F08402758B5FCE708D200DF - 0702D009560FFF256326A4B2D0B03061015F0402D009562DFF39426B01900AF9 - 36D80FC0012AFF3DF7AEA63FB94BB66C5CCF9EF8D3B21F8D1EE2E1975F678393 - 860BCB7DBEFDEC9F6CE5230F0ACB1CB01F8031B01F800731A3FC97BD6D8BB2A9 - 464FB6ACAD5BC4B731462A4F87FCFCF0CFC457C1FF5907264E3141003CB8FF9F - 5676731132039B3D86258D4C1616F03520002A7E2CFF193B2E9B8EECA6A3BB7B - 9A3DD959ACB9A94958C6C0C341BE0B04408519E53FDAA19742F09EA6A5B999E5 - 67ED149631B01EC0778100A830A3FCE789E3BFDC25CBA4348052007B6C9CB080 - 2F0101506146F9CF13C77FB98B59F30044EA54AC8DF045200002339EFEF3D4F1 - 5FEE72ECD041565E5A222C63A4E2EC409F04022030A5FCE7C1E3BFDC81E622CC - 8A02C6A76728A70701DF02022030A5FC67C2197D666396000487842A4B83816F - 0101E09851FE6B6B6D554A6FBD0D1225B3AA122807FA1E10008E19E5BFC2BC1C - E5A8EEDE464D55153B5058202C63D03C80D1F30741EF0202C031A5FCD7CBF27F - 3566A501F109096CE0E04461015F0002C031A5FCD70BF37F49D6D6CDA2671CA4 - 01BE85E505C08CF25F437D3DDB57902FACDE47515EAE69E9095605FA16961700 - 33CA7F79BB76B0B6B63661F53E5A5B5B582EFF8E66909C329E4544D2D3E2C017 - 8000F8C8D37FAED86D521AE0EFEFCF26644C1116F0762C2D006694FF88DE9CFF - 4BCC7A2E80401AE03B585A00CC28FF559695B163870F09ABF772EAD8515672F2 - 84B08C415153404080B0803763690130EBE9BFDEF0F8AF2BCC5C164C730023C6 - 8C1516F066AC2D002694FF7A73FDDF1153CB81383ACC27B0AC009875F65F8E17 - 4C004A72776EE79140BBB08C817900DFC0B2026046F9CFCCC76DBB83BADA5A56 - 949F272C639078F6ED9F202CE0AD5857002C52FE73C4AC72208128C0FBB1A400 - 9855FEEB8D8FFFBA62B749DB8513383ACCFBB1A4009851FE6B6F6F67F959BB84 - E53DD092E5FABA5A6119636CEA24161C42E7C8006FC592026046F96FDF1EF31C - A93BA125CB66552E828282584A5ABAB08037624D0130A3FCD78B76FFD58B999B - 85220DF06E2C2700A695FFBCA8FEEF88A902306D3A3609F1622C2700E34D98FC - 6B6A6A64457939C2F23E6849F089A34784650C3A2F2071F80861016FC3720210 - 141C2C7AEEF3EF75DFB0969616617927EBFEB546F48C13658B163D6D34730135 - 83A646738E3EB332963B1E9C4EBA4D1C36CCED2A006DFE71E4C07EA50AE0CD50 - D8DE7FE02066B3DBC51DF7A8AFAB6387F7EF139636468F9FC8322F9AAF9463DD - A5B2BC8CAD7EEB75657193D530F37870CB090000DE8E990260C92A0000E04720 - 0000581808000016060200808581000060612000005818080000160602008085 - 8100006061200000581808000016060200808581000060612000005818080000 - 1606020080858100006061200000581808000016060200808581000060614C13 - 009C0E0340F7E077D666DEEE639A004444D14EE200004F1315ADEF2016679826 - 00F6D8BEA20700F024D1B171A2671C6702D0219A26EC71E67D290040D744C7C4 - 889E269CFA71670220DFAC7CB0BCBC4C9308C498A84A0080AEB1C7C48A9E733A - 3ACAE8FC3AB5009CE5CB5D4500F2431D612CB846B9E3023AAE0800E079B4A600 - 35B58AEF9EF665BAE788A300C837C90FB4D7B3DA4AE58E0BE898680080E7D11A - 01B436D754F18BD328A0AB1440717EDEDA1A6BABE987B804020040F760D32800 - 75F5353478B7F1E62802A7E94A00E8034AABABA9D41401248D1C257A00004F41 - 47AA270E1B2E2CE734D49693EF9EF665DE5C0A80540929026DB57515E5FCEA92 - D8F8782E02C9C202007882B1699358685898B09C53535D51C12F8E1100B5D374 - 35092815A3ADAAAA44930010E93366891E00C013A44F9F297AAEA9AA507C570A - 00B5B3703607401F6C2D2F3D5E4637B590311D0200802799346DBAE8B9A6A2FC - 4429BFB4F246BE7CD6E84F389B035004A0E4D461FA219A183464288B4F18202C - 00809924258F623171DA57DC96141F520B00F9B46E0168D9F6C3DAC39525C5F4 - 435C420F0465200D00C023E809FFC967B7FFF0AF23BCDBC29B6601A037480120 - A76F292D3E545DD75091CFFB9AC89891297A000033493F57BB00D43494E691EF - F22E0900F9B214803344C05904A008006F4DF9B9DF6FE7574D24A78C6323C78E - 131600C00C52A79ECB06270D13966B0AB33793CF36F1E6280067E06C12903ED4 - CC5BC3976B5EDC52515171D6873B83D2806B7FB558580000A3904F5D75D3AF84 - E51AF2D5CFD6BCB085771B78231F265F967E7D069DA50004E50CD4E8C38D85F9 - 9B4F3636D61CA417B4401100E60200308759F32ED235FAB734571CD85BB0F514 - EF36F2463E2CFD993843049C4500F4012505E0ADE160C1B61DFCAA19522C7FFF - CE7E3C00402B414141ECA7BFF8A5B0B4B12F7FFB4E7EA9E74DA600E4CBD2AFCF - A02B0F950240A103FD90FA8DEBFEFE03BF6A66C0E0443667FE25C20200B8C385 - 8BAE6071F1FD84A58DF5EBDE255FA5F09F7C977C580AC059388B0068D2E07404 - F0C3860FF65595965258A1999FFECF8D2C3838445800003D848547B085575F27 - 2C6D5457969EDCBCE11FFB78570A00F970A71500C2598C4E6F3E1D01F0569795 - F5D537FCAA19DA23E0A6DF2E151600400FB72CBD974546D984A58DAC1D5F908F - D6F12653003901D82901E2DA15B4FD28BD2788B73ED9DBBF2E9E77C98DB3FB04 - 876B7B1A81434F2E353735B1829C6C710700E08A2B78F43C6FE1226169A3B6A6 - A4ECCF775FFC744B4B630937E9317E12023909D8A908389B03A026E7016836B1 - AEAEAEB27CDD17EFACE67D5DFCF74DBF52EA980000D74C99359B5DFEF3EB85A5 - 9D6F3E7FE71FE4A3BC4B8E4F3EABCEFF750900411F50CF03D00FAD79FDF9A55F - 979F3A7E94F73543D580DF2CFF131B943844DC0100740645CCBFFEDD72E6E7E7 - CC35CFA6B8F4F891375E584AE13F6D0346BEEA98FF778AABDF421F2415511604 - F156DBDEDE52B9F6A3A7DFE37D5D848685B3A52B1E611191383F0080CEA0FDFE - 973EF0300B0E091577B4F3E9074FBD47BEC9BBB5BC392E00EA12577300129A0B - 20B1A016B8276753F5ACB9D78C8BB4E9DB078C9C3F79DC78B6EDBB8DACB99904 - 0A004044DA6CEC9E07FFAA3C51AB9763470AF73CFEC0557FE35DCAFD69131075 - 0A4002D0A5086899049448115026051BEAAB2B468ECD9C1D1A1AAAEB9C22AA69 - 4EC99CC3B2B76F6535559A761B03C0A7A1557E7F78FC1976CED02471473BB4EC - F79D55BF7FE6D0FEDD54FAA3BD3B2805A00A00450014FE3B456B0420391D091C - DC97559F3EF5C2FEF1FD87EA962C8A046879E3E1FDFBD8C9A3F4C42200D664D2 - B9339491DF66D775D8C769F615FCFBDBD79EBFEB13DE9533FF94025078ED74F2 - 4FA245001C47F8D391C077EB3FD83763CE4F5322A3F41F0A1014D4879D3BE77C - A54458988B1221B01E3FB9FA3A76F35DF7B0A03E7DC41D7D9C385A5478EF92CC - 27DB5B5B68811E85FE34FA53FE4FA1BFCBD19FD01B0148942880FF62BFACEDDF - 14CD3CEFA7538375AC0D90D0534EE3D3272BBB08EDDEBA85B5B5D1F706C0B7A1 - D5B1B7DEB38CCDBFE24AC507DCA1B2ACB4F4FEA5F3FE5F65F9090AA1A9F447CF - FE3BD6FD9D8EFE84560170FC96F4839548A0BAAAA4F5F8B1BD87274E3FFFDC3E - 016181CAAB3A491C3682CDB978016B68A86787F616B18E0E97DF1B00AF83CAE1 - E72F58C87E7BFF8386F6CC68A9AC6C7CE6C95F3E9A9FB3710F3729EF97A3BFCB - 957F8EB81B014814213876784F43907F70E5C0C4F119A1A1616E495A485898B2 - E1E1B4D973597969093B7EF890780500EF8776CABAEBFE8758E685F35948A8EE - 60F9347456E747AB1F7FF1CB352F6DE626E5FD34FACBD29FD375FF9DE1AE00C8 - 1F2EAF7EB9591B4A878F4C0D4A4C4A192DEEB945A42D5A991B183729831D3F74 - 889595148B5700F03E68A4FFCD7D7F66975C79B552EA33CAD6EF3E5EFDEA7377 - ACE55D720C19FACBBABF2EE727DC19AD29FFA7CFD1F301C1BC85F366E72D8EC7 - 38092B9E58B778CCF85933B86D184A05F66467F13F7A03DBB669032B3E7142BC - 0240EF253E2181A54F9FA56C8A336ADC04B7F37C47F2766FF86ED99D739E63ED - EDE408B4E3AFACF9CB557FE4F89A26FF24EE7C33FA0C351202CAF969D952046F - D1BC9108F4BBF3776F5D993269DEC298985873FE720E89C19103FBB8106CE482 - B0911D282A10AF00D0F30C1D91CC1D7EA6E2F854CF37CBE9090AFB77EFFCFCA3 - A71EBCEE3DEEFC34E3AF767EF5ACBFAED19F70F75BAA458022017AE8FF3F22C0 - 58DFCBAF593EFB273FBFE386883EB11425984E69F129B6BF600FCD86B272DE2A - A895FEE75A5B43911100E6406B57EC7171CA21B8F21AC31B1DD54DFBF5EBDDB4 - 432BB5CD654D1FBDF9F8AB1FBEFDE0B7DCA49C9F9C5F2EF9A5D57EBAF37E3546 - 644A8A00CD23C874804480121D5A17D077CACC4529BFBE6BE5ED51B678F75639 - 18A0A3435724048053F43E9C6306D555C5E5CF3E7AF3335B377D9CC34D727E9A - F1978B7D343DEDE70A230240A84580D201190944F2A6CC0B0C1C3C3A71D98AD5 - B7270C4AD676A42900801D3F5AB0F7C1658B9E3976389FCA6132E4A7529F69CE - 4F182D034AE417A06197BED4E9565355DAF8D5BFDED83E72CCD498F8FE4312CD - CC8D00F03568AE2B7BE7B71B962FC97CBAA2FC043D762F4B7D72A18FACF51B76 - 7EC22C0120E497711481D6B6B6E6D66FBF7823FBE4D17D4583868CE91F658BD3 - BD7418005FE7E8E13D45AB9EBD63E51B2BEF5EDBD6D642653E727E1AF9C9F9D5 - 5B7CB99DF33B62E6702CD301591D9015022A13524A4073039416D817FEECAEC9 - 0B2EBBE3B2B87E8312B80D80A5395572F4F8A71F3CB9FAE3F71EA3C33CC8E1A9 - 51AE2F37F79033FDA63A3F61763C2E45809A7A72500A01ED06422DDADF3FC87E - ED4D2B3233E7FD7C414C6C3F1206002C4579D9A98AF55FBCB9F6AD5796AD6F6F - 6F21A7A7D97D1AED65B84F8E2F6BFCEA90DF14E727CC1600420A0021270765A9 - 90D64052A3888084C01616668BB9E9F6672E4CCDB86856746C5F5D1B8C00E08D - 54969594EEDCFAD986579EB9FDF3FAFA2ACAEF69B427A797CFF25393253E99EF - 13A63A3FE10901904821A09440AE17A0E71ED51181AC189018444C9A764952E6 - 9CABD293474D1BD77750E239983004BE004DEC151F3D78A470CFBFB3D7AFFBFB - B6ED3FACA1CD3B6884974E4F33FBEA119F96F5CAFABEA921BF239EF630290204 - 45033222904240D1801403D9947B4386A7F69B77C94D6963C7674E1838A8EFF0 - 80C07833272C01F0286DADC56DC78E14EFCDCDDE90F5C59A57761CDCBB9356F0 - 9183D3E84ECE2E9BBC271D5F8EF81E1BF5D574C7102B7F8714038A061C854046 - 059426C85481AE742F34B6EFA0C80969E79FD3B75F62AC2D2E21C66EEF1B1D16 - 1967B345C644850547474584DA2243EC11E18818407740237A63456D5D6D4355 - 4D7D5365755D4D7975754D69554545496555E989F2925387CAB2767C75A4ACE4 - 288DEEE4E0D428A497A1BDB4C9E91D1DDF71C4F798F313DDE931CE8480D203BA - 9210A845814440DA7495EF934D46157EFEFE41FCDA217FB6FC5D009889704CBF - 8EF6F616392927476B394B4F8DC277726AE9DC8ECE4E57F9BE1E717C494F388A - FC9DD251E51C81140379950E2FE70ED44EAF767EF9796AF26702E029A493CAFC - 9C9A14014721206727279782209D5DEDF43DE2F8929E7416F9BBE5553AB01403 - E9DC6AC777747869D3E7E46701F0346AA7558B80BAAF1603F53DEACBCF113DE2 - F812E97C3D8D746089A3534B9B1C5EDE97AFA96D6A00781AE9FCEA261D9B1A39 - BABCA7BE2F9D9E90F77A94DEE830F23BA9BF1BF5E5E8AE7EBDB3F7128E360066 - E0E8B0D2563BB3BC4AC79738BEDE2BE8ED8EA2FE7ECEBE2B1C1EF404CE9CB933 - E707000000000000000000000000000000000000000000000000000000000030 - 0063FF1FAB803D3AE7B2ABCC0000000049454E44AE426082} + 25E549444154785EED9D077C5455DAFF4F1A492665326924B44028A184929050 + A40444117D511675D7D7B6AFABAEAE8B2EBACAEBBAE01657F4AFAEBD612FABAE + AF652DB06B1701D1A504086990D0420DE9BD97FF7D2EE7B0972199B977EE9D49 + 66EEEFFBF99CCF3DCF9D9964A23CBFF33CE739F71C3FD6BFF1E75781F8BEF657 + 417FFF7B806FD0CDAF0261DB5F055DFCDAEFE88F0EA3747AEAD377A426EEF7D6 + 27FAE3DF037C0FA58393730BBBA73E35A500F42B31E82F0E63EFD0E21AC0AFA2 + 099B5EA7BE781FA1EC03E04E7A72F44E7E259BFA74154DD8E275E567FB14729A + BE42E9AC4A67A67E20BF06F1BE68E235F13EBA2A9BF87BFAF2EF02BE8B705CE1 + C8CA269CBC83F7E92A5ABBE29E520CA82FA07B1EA72F1C851C95503ABC706C6A + E4F403142D3871E8E8F073E6FE2C392E2129213A2A212E3C2A3ACE12668D0909 + 8988090D0D8B1930C012DDD2D860B5C6FA899F0D80DBA8ADE8EE0A090BAF6D6B + 6BAA6A6E6EAC6C69A9AF6C6AACAD6CA8A92AAFAA292D2F2F2D29FD61E37B074E + 1C29AE97DEDE66D7480C84309000280581F0A810785200E87789261C5FE9F0C1 + 8A1632397DC1C00B97DE9A357C64DA9CB0F8F0B4F08018BA0F8057D0D059D9DA + 54DEB0E3E0BE9DDFAFFBE0C90D7939DF9D946EB748AD55D19482A01402D1DC8E + 270440383DA11CED85D387482D546A9673175D3F6AEEF957CD1F367CC2ECCEAE + 8071B1B1719EF87E00B8958A8AF26E7FBFB68223257B366FFCEA9DF5DF7EFEEA + 3EE97693D49AA5264481C4401915106E1702773B9808C9C9E9A92F1CFFB4D387 + DBE2A2EEB8FB6F97A74C98BE342C3C6A98740F009FA6B1A1E6F0DEFC2D1F3DFE + D0B51F345497D748B79462208480A20121046E4B0BDC2900E4F0F4F395A1BE70 + FCF0C0C0C088652B5EBD307DD625374486590749F7003015758DB5C7776CFEF4 + 95671FB9FEB38E8E0E9A2F68909A1002656A4051805B44C01D02403F939A18F1 + A99D767C6ABFB8F991D9598BAEBEC51A95385AB20130355535A5451B3E7F73CD + 9B2FDCFDBD649210344A4D0801898088080C4F098C160065C82FC27D72FC30A9 + 452EB9E2AEC9FFB574D9B2B881C333241B00A0A0FCE4A1ED6B3F7CE699B5EF3F + BA5B32EBA4268440393F4018160D182900CA905FCCEC5BA416191212615BFDE4 + FA3B22A3875D86893D007A87260CEBAA0E7FB872F9FCC75B5AEAABA55B240434 + 47202A0686A604E4AC4660EFFC34EA47482D2A794CC6B0FB9FDAF8E890616317 + 582C61707E001C403E628B19347EDEC26BD2F2776FDA515D799C9C9E104E2FD2 + 00F225DDE9801102209C9F427E2AEB09E7B72DF8AF1B272F5FF5D653D1B6F831 + 920D00508925CC9A38E7DC2BE6D5D656141C2CDE41F302C2F109C34440EF88AC + 747E11F2D3449FED86654F9E7FEE925FACB20445D03DC3A9A9AC64078AF6B0EA + CA8A53ADA2825529FA0D75B5ACBB5BD77F1B0064FCFCFD59A4358AD96262A416 + CB6CB171A7AE723F968D4C19C722A3A2F8BB8DA5BDBDA1F18B4F5FB9FF95676E + FF5A322925A04A814809685E80FE91BB9C0EE811809E9C3F32303030FAF7F7AF + BB6ECAB4F49BFCFCE2E83D8671FC7009DBB67923DBF6FD46B6AFB080DF05A06F + F1F3F36729A91359C6AC39724B183C84BF620CDDDDE55DD95BB7BFF8D0AA4B5E + EFE8E8A8946E5144608808B82A00F439726E4A21C8F969963F4272FED8879FDF + 76CF8851532E916CDDD0084E8EBEEDFB0DB2D39F387A84BF0240FF65C8F0112C + 73F65CA965B1E43129FCAE7EF6EFDBF5C9EF6EC97C50210254252011A0894131 + 3FA0095704803E434D38BF3CF24B2DFADE07FE7943FACC8B6E96FABA21C77FFB + 856759E1EE5DFC0E00DEC7E4CCE9ECAA9B7ECD92468EE277F4B17DCB676B56FF + EEA257A56E95D4941502511DD02402AE4C028A915F39DB6FBBFED62716669DBF + E82E3F3F7D33FDA5D228FFD2E38FB0BF3DF714AB3859CAEF02E09D9C3C7E8C7D + B3EE13F94AD180259CA6C85C277170547A685862C9AE6D5F1C934CB14048591D + 70AB0090F35313ABFBE409BF058BAE4FBBECBA7B1E1C1060A388C025EA6AAAD9 + DB2F3ECFD63CFC003B72F000BF0B806F70F8C03EF6E5271FB1A6C606969C3296 + 0D0876EDE1561A60878D499D597DB234FBD0FE5D34294823BF68C2F9558B8016 + 0150E6FDF4ED29EF8F1A999231FC8E956F3D16166A8D966C97F8E1DBAFD9FD77 + 2D677BF37663E61EF82C5D5D5DAC283F4F8E0886248D608386BAF6EC5B504070 + D0B8B4ACCC9C6D5F6DACA93A412B05C52A41A508A842AD00D8E7FDE4FCD6F0F0 + A8F8BFFC75FDC351B1035D4A70BABBBBD87BAFBDC4DE78E609D6D1417F0300BE + 4F7B5B1BFB71FD372C6840104B499D248DEADAB3E6E001211193A75D38FE9B7F + BEBCA1A3A34DAC10A4A6693250AD0088D05FE4FD14FA47AF7E6AD35D43478C9B + 27F535D3D2DCCC9EFACB1F2535FC94DF01C05CE4EDD8CE4E1E3FCAD2A69FC302 + 02B404E3A7080FB7264CC95C18F5D5BA97B64BA6520454A7026A7E6B4FA1BF6D + F1E5CB33D3A62DB9CB62B16896AFF2D2136CF58AE5AC300733FCC0DC1C3EB09F + E5666F63E93366B1108BF635735D2C686C67477376F19EADE59229D605A84E05 + C8B19D210480467F2100918B97FCE6E6989818CDCE4FE5BDDFDF7283FC870300 + F4F9043D5CB7F8F23B6E92BA548D23DF241F255F259F75EA9FCE2200E5E84FB9 + BF3CEB7FF50DABE74D9B7DC935525F1334F2DFF7DB5B597D6D2DBF0300209A9B + 9AD88E7F6F66B3172C6421A19465AB2722C296E8EF1F589CB76BFD51C9A42840 + F9D4A0439C4500420044D92F4CCA55ACF3175D77A3D4D704FD818FACBA1BCE0F + 402F549695B147EFBD87B5B78B0700D5B3E0A2EB6F24DF94BA140590AF92CF3A + 8D021C4500CAD19FC20A79F4BFE5AE972E499D9C75B1D4570DCDF63FF9973F60 + 551F004EA82C2F635515652CE39C399AAA03164B44B42D6650E9B61FD6521E41 + 9B8CAA8A029C450062F42701B05822A36DD3E65EFA3FF48216FEEFD597D8F6CD + 9BB8050070C486CFFFC53EFBF03D6EA9675AD665D7918F4A5D9A4D249F155140 + AF387A91E4879A1080B0DBFFF7B54BADE1B681525F359BBFFD8A7DFCF69BDC02 + 00A8E16FCF3FC372B66DE1963AC83797AF786DA9D4159381E4BBC28F7BA43701 + 101FA2F09F6614E5FC7FDCF8398BA5AB6A6AABABD84B8F3EC42D00805A286D7E + F6C1FBE4B9332D8C9B309BD273310F40BE4B3EDCAB083812007A4DCCFE87669D + 77F5E8709B6DB0D457CD876FBE262FF8010068A7AEA686FDF3FDBF734B1D11B6 + E8C173CEBD9276DBA65202F92EF930F9B2260120E83551FB0F9DB3E0AAB97453 + 2DF4EC3EAD790600B8CEDAFF7B87D554D1E3FFEA9973AEECAB2400E4BB624D40 + 8FF4F4820817E835CA212894B0248D983C43BAAAE6DD97D7B0CE4E9A840400B8 + 4A6B4B8B1C496B2179CCC4E9D2852602EDCB81674501BD2903DD17F97F70CAC4 + 59092C6080EA077E8A0BF2D9968DDF710B00A0078AA4B5EC86D5ED67193D76FC + 4C9AAC1711804803CEA2A79B422944FE1FB2E89265B3D4EEE74F8FF3D24E3E00 + 0063A0C788DF7DE5056E39877CF5C29FDC3A4BEA520420E601544500E20D749F + 4207FA7070CAB869AAC3FFE2823CB62737875B000023D8B261BDBC5B965A468F + 993A53BA5004403E2CD200E20C11E82D0220C59005203E7EB8353E326C22BDA0 + 86AD9B36F21E00C048B6FFB089F79C131F6D9D48BE2B7585008828E00C7A1200 + BA2744202873D692E4808804CA239C42E13FEDE00B00301E2DAB69C96733675F + 3242EA8A3900F2E9B3FCDDFE865008BA4FAA11149F98142FDF51C1B19243F2E6 + 870000E3D99B9727EF9DA996D8F86134114802A03905A0FB721A10654B88A39B + 6AC07A7F00DC07AD0ECCFE7133B79C638B4D8C952E22FC279F3EC3F909A70210 + 6E8D51BDD9271DDE0100701F5A06596B782CF9AE4E01888C52250055E5656CFF + DE426E0100DC016D1FD6DADAC22DC7845B6D2E0900715A04C2C36CF478A1530E + 14EDE53D0080BB686B6D557D6E86252C8A7CB757E727EC0580DEA48C0002422C + 11AA04804EE50500B81F3A195B0DA161B2EFCA7E2C352102670881BD0010E20D + B210040645502DD12974243700C0FDA81D6C0382C2E9CC72E5E87F86F313BD09 + 80ECFC748D086FA2DD469D82080000CFA076B08D086F26DF3DEDCBBC9D81BD00 + 88378837FBAB3DE3BF0A02008047503BD872DFB5777E7195E9CDB9C507CE78B3 + 23900200E019340EB60E7DB9270150BE51BD0054D2C124000077A371B075E8CF + 8EC27B7AB36A0168A8ABE33D00803BA9AFADE13D5538F4634702A0091CEB0D80 + 67E85677EC9F2A0C13000080F7010100C0C440000030311000004C0C04000013 + 635F1EA047076927D148A925486DD847EBBB3F92AE4EF9EF73691352D01BD3E6 + 64B1D4F40C6E1947D98913F2E931A8C29887A89818B6E6FD4FB9E598A5F3FDE8 + ACC0C3522B951AD5EAE959E20EA9C940003CC4536FBFCFE2130771CB58FE7CFB + 321CBD6E228C1400A4001EC2AA6E5B0597C8983587F700D00604C003040505B1 + E0103AAACD3DA4CF44F4055C0302E001C22228A3721F894386B204A901A01508 + 8007088F50B5A5822ED2A79FC37B00A80702E00122ACB4318B7B499F090100DA + 81007880A1239279CF7D8C9B3485855AC2B805803A20001E60E4D8F1BCE73E02 + 0203D9A48C4C6E01A00E088007183DCEFD0240A4CF403500680302E06662E2E3 + D9A06149DC722F693366323F3FFC2F05EAC1BF163733651A1DD3EE1922A36C6C + 64CA586E01E01C08809B99326D06EF79065403801620006E243030884D9CEAD9 + 8939CC03002D4000DC484AEA441612EABE25C03D317CF418161DABFA44776072 + 20006E64CA74CFE5FF4AD2FAE8F702EF0302E0465CCDFFF71516B0CECE4E6E69 + 070F0701B54000DC0495FF5C5D0198FDE3F76CFFDE426E6927756A060B1A3080 + 5B00F40E04C04DE829FFEDCDDBCD0A76EDE49676828343D8F829E9DC02A07720 + 006EC2D5F09F42FFFD8585AC30C7750120A6CE403910380702E006F494FF0EED + 2B62ADAD2D7214D0D5D5C5EF6A274D12003F3FD527BB0193020170037ACA7F7B + 7377CBD796E666B67F8FEBF3007109896C70D2706E01D033100037A0A7FC4723 + BF406F1A806A00700604C00DE859FEBB372F97F718CBD72B005815089C000130 + 183DE5BFB213C7594D5525B7182BD2390F90929ACAC2DDBC1F21F06E200006A3 + B7FCA7A4B9A9891D28DAC32DEDD0A3C1933DFC3012F02E2000066354F82FD0B3 + 1E80C0D381C011100003D1FBF4DF9EDC1CDEFB0F7A2702A764CE60010101DC02 + E04C200006A2A7FCD7D8D0C08E959470EB3FECC9DDCDBABB5D9F07088B8860A3 + C7A772CB7C90F8D13C081DCB3662740A9B9036954D9F3B8FCDBF68315BFCB32B + D9CFAEFF25FBC56F7ECBAE5F7EA77CBE82D9C0D9800672F5CDCBD8C5575CC52D + 6DECDCF2237BE89EBBB875260F3CFF0A4BD6B1D3CFA7EFBECDDE79F1396EF91E + 1479D1B66B34F93A2C39990D1D9ECC860C1F216FC71E6AB1F07739E783375E95 + DA2BDCEABFE06CC07E8ABEFCFFCC09402505393B78CF35D27D645930AD6C1C38 + 6830CB9C3D975D7ACD756CF9BDF7B1BFBEF6367BE3B36FD8C32FBFC16E5BF947 + B6E4CA6BE5F50F34E26B717E223090C63F73010130083DE53FA2A887094041BE + CE89401A0DE31313B9E55DD0E62659175CC896DDF307F6FCFB9FB027DF7A8FDD + 79DF8372E83E73FE0236246938E63874000130083DE53FF9012007CB7E6979B0 + 9E790022CD4B8E0EA3C34DA64A23F875B7DDC11E9546F7E7DEFB98DD72F72A36 + E7FC0B5854740C7F17300A088041E809FF0F16ED951F00EA8DA6C60676B0B898 + 5BAED19F97054758ADECFC8B7FC2FEF8C4B3EC954F3F672B563FCC162DBD1CCF + 327800088001E82DFF39CAFF0505BBF4CD034C484BF7F8FE848E080E0961B3CE + 3D9FFDAFE4EC6B3E58CB6EB863857CBC99BF3FFE497A12FCD73600BD9B7FAA11 + 00BDEB0148A452D333B8D577D04E45E4EC2FFE631DBB6DD59FE4C804397CDF01 + 013000BD9B7FF6B402D01E5A24D4DDDDCD2DD7E80F0F078D1835460EF78343FA + 4F346266200006A027FF3F79FC18ABADAEE256EFD042A1927D3AE701B04908B0 + 0302A013BDE53F5AE9A796029D69002D20192E8DC07D49737313EF81FE000440 + 277ACFFECBDBB19DF79C93AF732290E8EB8783E80947D07F8000E8444FF84F68 + 118053F300FAD603F47539B00502D0AF8000E8406FF9EF58C921565D59C12DE7 + 34D6D7B303457BB9E51A2353C631AB2D9A5B9E072940FF0202A003BDE5BF5C0D + A3BF20375BFB67ECE9CBA3C33A3B3A587B7B3BB7405F0301D081DEF25F6EF636 + DE538F2B9FB107690010400074A027FFA75CBE306717B7D453949FCBDADBDAB8 + E51A9332A6C9E94B5FD11F2702DB5A5BD9219D65566F04FB01B80895FF9E7D57 + D57F9A1E292EC867F7DE7A13B7B4B1F2912774CD3D10AB57DC6E4834E10AF4E8 + EEB0E451DC328EFADA5A567AECA8DC4E1EA7768C35D4D5B13649303BA4B4A3BD + ADF574FFD4B54D16D3F6B676D6D9D9A17BA195A7C07E00FD00DA6A4B0F5A66FF + ED7165EEC09EBEDC23800E3D3182E6A646B675D306F6D2630FB35BAFBC8CFD72 + E945B2A83EFBE07DF2E61E9BBEFA42DE68257F67B6BCDC9A26508F1E3A280B44 + 557919ABABA991A3918E8E76AF717EA38100B888EEFC7F87EBA36F9E41F3007D + B52AB0ABCB18677BFDE9C7D9637FFC3DFB66DD27ACE2240D70402B100017D05B + FEA37CB3383F8F5BDAA15CB5A19EA239D7A19D75CCB8071E381308800BE82DFF + D1821E3DA5303A2C247FA711AB02CD356F03CE0602E0027D51FEB3C790340047 + 87991E08800BE85FFE9BCD7BAE63C44460CAC4492C2C3C9C5BC08C400034A2F7 + E93FCADD8DA83753894BEFC4176DC4416B028079810068C488F29FDE077A082A + 5B19B12C18F300E60602A011BDF9BF11E1BF40CF5A02013DCE8C7DF8CC0BFECF + 6B406FF98F3072F55DDE4EFD62423BF28E1A3B9E5BC06C400034A0B7FC575E7A + 82959D38CE2DFDD05662870FECE396EB200D302F10000D1811FE1BBDE4D490C7 + 837DE4E830A01D088006F496FFF42CFFED0D23E60192468E92AB1BC07C400054 + A2B7FC471839012828DCBD4B3E5A4C2FE95E727418301608804AF496FF2857AF + ABA9E69671D09375C505AE3F5720C03C80398100A844FFF25FFDA17A6F185159 + A053838283692B08602620002A30A2FC6744AEDE1B46880B1DD9353E2D9D5BC0 + 2C604720154C9892CEEE7DEC696EB9C62B8F3FC25A5AB46D84A1B662101018C8 + 7EB5E2F7BA9FEFFF6AEDC7F2F774377F7AF2793676E2246EB9CEF30FDDCF367C + F119B7CC83913B0241005470F5CDCBD8C5575CC52DDFA5B2AC8CDD7AE5A56EDF + 1D0702A00F6C09E661F496FFBC8553958E91DC02660002E00423CA7FDE445F1F + 1D063C0B04C0097ACB7FDE465F6E160A3C0F04C0097ACB7FDEC6E8F1A9F20342 + C01C40001C6044F9CFDBA04A82DE138F81F700017080DEA7FFBC15AC0A340F10 + 0007982DFC174CCE9C26AF2D00BE0F04C0016629FFD963090B97A31FE0FB4000 + 7AC16CE53F7BB065B8398000F482D9CA7FF6A01C680E2000BD60D6FC5F306858 + 124B183C845BC0578100F48019CB7F3D81ADC27C1F08400F98B5FC670FD200DF + 0702D003660FFF05E327A7B1508B855BC0178100F48059CB7FF6D05A00A442BE + 0DF603B083CA7FCFBEABEA4FEE95AD9B36B0C7FFB4F294D1473CF4D2EB6C58F2 + 286EB9CE779FFF93AD79F8016E1903F603D007F60370234694FF72B76F9537D5 + E8CB96B36D2BFF36FA4893D2213F3FFC33F155F07FD68E29D30D100037EEFFA7 + 96DD92081981D516CD92C7A4700BF81A100005A7CA7FFA8ECBA623BBE9E8EEBE + 664F6E0E6B6B6DE5963EF07090EF0201506044F98F76E8A510BCAF696F6B6385 + 393BB9A50FAC07F05D20000A8C28FFB9E3F82F57C931280DA014C01613CB2DE0 + 4B4000141851FE73C7F15FAE62D43C009136036B237C110800C788A7FFDC75FC + 97AB1C2B39C4AA2ACAB9A58F349C1DE8934000388694FFDC78FC972BD05C8451 + 51C0A48C4CF9F420E05B4000388694FF0C38A3CF688C1280E09050796930F02D + 2000124694FF3A3B3AE4D25B7F8344C9A8AA04CA81BE070440C288F25F51419E + 7C54777FA3BEB6961D2CDACB2D7DD03C80DEF30741FF0202206148F9AF9FE5FF + 4A8C4A03E21313D9E06149DC02BE000440C290F25F3FCCFF0539DBB6F09E7E90 + 06F816A6170023CA7FCD4D4D6CFFDE426EF53F8A0BF20D4B4FB02AD0B730BD00 + 1851FE2BD8B58375767672ABFFD1D1D1CEF2A5EF680429A9935878043D2D0E7C + 0108808F3CFDE78CDD06A501FEFEFE6C72E6746E016FC7D4026044F98FE8CFF9 + BFC0A8E70208A401BE83A905C088F25F4D65253B76B8845BFD9793C78EB2F2D2 + 13DCD207454D010101DC02DE8CA905C0A8A7FFFAC3E3BFCE30725930CD018C1E + 3F815BC09B31B7001850FEEBCFF57F7B0C2D07E2E8309FC0B40260D4D97F795E + 300128C8DF992D45025DDCD207E6017C03D30A8011E53F231FB7F5048D0D0DAC + B8B0805BFA20F18C4B48E416F056CC2B002629FFD9635439904014E0FD985200 + 8C2AFFF5C7C77F9DB1DBA0EDC2091C1DE6FD9852008C28FF757575B1C29C5DDC + F21E68C972536303B7F431216D2A0B0EA1736480B7624A0130A2FCB77F8F718E + E44968C9B251958BA0A020969A9EC12DE08D9853008C28FFF5A3DD7FB562E466 + A14803BC1BD3098061E53F2FAAFFDB63A800CC9C854D42BC18D309C0240326FF + 5A5B5B5871411EB7BC0F5A127CE2E8116EE983CE0B481A359A5BC0DB309D0004 + 0507F39EEBFC7BFDB7ACBDBD9D5BDEC9FA7FADE53DFD445AA3784F1D6D92801A + 416B8B31479F9919D31D0F4E27DD268D1CE972158036FF3872F0805C05F06628 + 6C4F183C84596D367EC7359A1A1BD9E103FBB9A58E7193A6B0AC4517C9E55857 + A9A9AA641FBDF5BABCB8C96C18793CB8E90400006FC748013065150000700A08 + 0000260602008089810000606220000098180800002606020080898100006062 + 2000009818080000260602008089810000606220000098180800002606020080 + 898100006062200000981808000026060200808981000060622000009818C304 + 00A7C300E019FCCEDACCDB750C1380F048DA491C00E06E22A3B41DC4E208C304 + C01613C77B000077121513CB7BFA712400DDBCA9C2166BDC970200F44E547434 + EFA9C2A11FF72400E2CDF2072B2ACA558940B481AA0400E81D5B740CEF39A6BB + BB9CCEAF530AC059BEDC5B04203ED41DEE1F5A2FDF71021D570400703F6A5380 + FA06D9774FFB32DDB3C75E00C49BC407BA9A58438D7CC709744C3400C0FDA88D + 003ADAEA6BA58BC328A0B71440767EA975B634D4D10F710A040000CF60552900 + 8D4DF53478774ACD5E044ED39B00D007E4D6585FA32A02481E3396F70000EE82 + 8E544F1A398A5B8E696EA822DF3DEDCB52732A004225840874363456574957A7 + C4C4C74B2290C22D00803B98903E95855A2CDC724C7D5D75B574B18F00A89DA6 + B74940A1189DB5B5E5AA0480C8983D97F70000EE2063D61CDE734E6DB5ECBB42 + 00A89D85A33900FA604755C5F14ABAA986CC59100000DCC9D499B378CF39D555 + 272AA44B87D4C897CF1AFD09477300B200949F3C4C3F441543868F60F18983B8 + 05003092E494B12C3A56FD8ADBF2B212A500904F6B1680F6ED3FAE3B5C73B294 + 7E8853E881A04CA40100B8052DE13FF96CF68FFF3A2275DBA5A65A00E80D4200 + C8E9DB2BCA4AEA1A5B6B0BA5BE2A326767F11E00C04832CE512F00F5AD5505E4 + BB529704807C5908C01922E028029005406AAD85F93F644B5755A4A44E646326 + 4CE41600C008D2669CC386258FE496738A72B790CFB64ACD5E00CEC0D124207D + A84D6ACD5FAD7D616B6565E5591FEE094A03AEF9D5326E0100F4423E75E58DBF + E29673C8573F5FFBFC56A9DB2C35F261F265E1D767D0530A4050CE408D3EDC52 + 54B8A5B4ADADF110BDA0068A003017008031CC5DB848D3E8DFD9517B70DFDE6D + 27A56E8BD4C887853F13678880A308803E20A700526B3EB477FB0EE9AA1A522C + 7FFF9E7E3C00402D414141ECA7BFF825B7D4B1BF307BA77469929A4801C89785 + 5F9F416F1E2A04804207FA214D9BD6FFFD47E9AA9A41C392D8FC8B2EE61600C0 + 152E587A398B8D1FC82D756C58FF2EF92A85FFE4BBE4C34200CEC25104409306 + A723801F377EB0BFB6A282C20AD5FCF47F6E60C1C121DC020068C11216CE965C + 752DB7D451575351BA65E33FF64B5D2100E4C33D56000847313ABDF9740420B5 + C69C9CAFBF95AEAAA13D026EFCED0A6E0100B470F38A7B5844A4955BEAC8D9F1 + 25F968A3D4440A2026007B24805F7B83B61FA5F704496D406EF637650B2FBE61 + DE80E030754F2348D0934B6DADAD6C6F5E2EBF030070C6E552F4BC70C9526EA9 + A3A1BEBCF2CF775DF8547B7B4BB964D263FC24046212B04711703407404DCC03 + D06C626363634DD5FA2FDFF948EA6BE2BF6FFC955CC704003867FADC79ECB29F + 5FC72DF57CFBC53BFF201F95BAE4F8E4B3CAFC5F930010F401E53C00FDD0FAD7 + 9F5BF14DD5C9E347A5BE6AA81AF09B557F62439286F33B00809EA088F9D7BF5B + C5FCFC1CB9E6D994551C3FF2C6F32B28FCA76DC0C857EDF3FF1E71F65BE883A4 + 22F28220A9357475B5D7ACFBF8A9F7A4BE26422D616CC5EA87597804CE0F00A0 + 2768BFFF15F73FC4824342F91DF57CF6C193EF916F4ADD06A9D92F00EA156773 + 00029A0B20B1A016B8276F73DDDC05574F8CB06ADB078C9C3F65E224B6FDFB4D + ACAD8D040A00404458ADECEE07FE2A3F51AB9563478AF63C76FF957F93BA94FB + D32620CA148004A05711503309281022204F0A3637D5558F1A37679EC562D174 + 4E11D534A767CD67B9D9DB587DADAADDC600F0696895DF1F1E7B9A0D1D91CCEF + A88796FDFEFDD5954F971CD84DA53FDABB835200AA00500440E1BF43D4460082 + D391C0A1FD394D99331725C4278CD02C591409D0F2C6C307F6B3D2A3F4C42200 + E664EA39B3E591DF6AD374D8C7690E146DF9EEB5E7EEFC54EA8A997F4A0128BC + 7638F927502300F623FCE948E0FB0D1FEC9F3DFFA7A91191DA0F05080A1AC0CE + 997F9E5C222CCA478910988F9F5C752DBBE9CEBB59D08001FC8E364E1C2D2EBA + 6779D6135D1DEDB4408F427F1AFD29FFA7D0DFE9E84F688D0004721420FD62BF + 9CEC6F8BE79CFBD319C11AD60608E829A74919D3E45D84766FDBCA3A3BE97B03 + E0DBD0EAD85BEE5EC92EBAFC0AD9075CA1A6B2A2E2BE150BFF5F4DD5090AA1A9 + F447CFFEDBD7FD1D8EFE845A01B0FF96F483E548A0AEB6BCE3F8B17D87A7CC3A + EF9C01019640F9558D248D1CCDE65FB898353737B1927DC5ACBBDBE9F706C0EB + A072F8798B97B0DFDEF780AE3D33DA6B6A5A9E7EE2978F14E66DDA239994F78B + D1DFE9CA3F7B5C8D0004B2101C3BBCA739C83FB82671686AA6C512E692A48558 + 2CF2868733E72D605515E5ECF8E112FE0A00DE0FED9475E77D0FB2AC0B2E6221 + A19A83E5D3D0599D9F7CFCF80B5FAD7D718B6452DE4FA3BF28FD395CF7DF13AE + 0A80F8E1E2EA979FB3B162744A7A505272EA387ECF2522AC51F2DCC0C4A999EC + 784909AB2C2FE3AF00E07DD048FF9B7BFFCC2EBEE22AB9D4A797ED9B3FFDE8D5 + 676F5F2775C93144E82FEAFE9A9C9F7065B4A6FC9F3E47CF07044B2D4C6A36A9 + C54A314EE2EAC7D72F1B3F69EE6CC9D60DA5027B7273D8B6EF374A7FF8465676 + E2047F0580FE4B7C6222CB983557DE1467ECC4C92EE7F9F614ECDEF8FDCA3BE6 + 3FCBBABAC81168C75F51F317ABFEC8F1554DFE095CF966F4196A240494F3D3B2 + A570A945498D4460E01DBF7BEB8AF169E72D898D8D33E62F972031387270BF24 + 049B2441D8C40E16EFE5AF00D0F78C189D2239FC1CD9F1A99E6F94D31314F6E7 + E57CF5F1930F5CFB9EE4FC34E3AF747EE5ACBFA6D19F70F55B2A458022017AE8 + FF3F22C058DC6557AF9AF7939FDF7E7DF880188A120CA7A2EC243BB0770FCD86 + B22AA95553ABF8CFB5A19E2223008C81D6AED86263E54370C5355A6A745437ED + D7AF75D30EB534B455B67EFCE663AF7EF8F603DF4926E5FCE4FC62C92FADF6D3 + 9CF72BD123534204681E41A403240294E8D0BA80B8E97396A6FEFACE35B7455A + E35D5BE5A083EE6E4D9110000ED1FA708E11D4D596553DF3C84D4F6FDBFC499E + 6492F3D38CBF58ECA3EA693F67E81100422902940E884820426AF2BCC0E061E3 + 9256AEFEE8B6C42129EA8E340500B0E347F7EE7B60E5D2A78F1D2EA4729808F9 + A9D46798F3137ACB8002F10568D8A52F75BAD5D756B47CFDAF37B2C78C9F111D + 9F303CC9C8DC08005F83E6BA72777EB771D5F2ACA7AAAB4ED063F7A2D42716FA + 885ABF6EE7278C1200427C197B11E8E8EC6CEBF8EECB37724B8FEE2F1E327C7C + 42A43556F3D261007C9DA387F714BFF2CCED6BDE5873D7BACECE762AF391F3D3 + C84FCEAFDCE2CBE59CDF1E238763910E88EA80A81050999052029A1BA0B4C0B6 + E467774E5B7CE9ED97C60E1C9228D900989A93E5478F7FF6C1131F7DF2DEA374 + 9807393C35CAF5C5E61E62A6DF50E7278C8EC7850850534E0E0A21A0DD40A845 + F9FB07D9AEB9717556D6C29F2F8E8E1948C20080A9A8AA3C59BDE1CB37D7BDF5 + F2CA0D5D5DEDE4F434BB4FA3BD08F7C9F1458D5F19F21BE2FC84D10240080120 + C4E4A02815D21A486A14119010582D166BF48DB73D7D415AE6A2B95131719A36 + 1801C01BA9A92CAFD8B9EDF38D2F3F7DDB174D4DB594DFD3684F4E2F9EE5A726 + 4A7C22DF270C757EC21D02201042402981582F40CF3D2A230251312031089F3A + F3E2E4ACF95766A48C9D39316E48D2504C18025F8026F6CA8E1E3A52B4E7DFB9 + 1BD6FF7D7BF68F6B69F30E1AE185D3D3CCBE72C4A765BDA2BE6F68C86F8FBB3D + 4C880041D18088088410503420C44034F9DEF0516903175E7C63FA8449599307 + 0F891915109860E48425006EA5B3A3B4F3D8918A7DF9B91B73BE5CFBF28E43FB + 76D20A3E72701ADDC9D94513F784E38B11DF6DA3BE124F0CB1E2770831A068C0 + 5E0844544069824815E84AF74263E286444C4E3F6F68DCC0A4186B6C62B4CD16 + 17658988B55A23A2232DC15191E1A1D688105B78182206E00968446FA96E686C + 68AEAD6F6AADA96BACAFAAABABAFA8ADAE2EAFA9AD3851557EB2A43267C7D747 + 2ACB8FD2E84E0E4E8D427A11DA0B9B9CDEDEF1ED477CB7393FE1498F71240494 + 1ED0958440290A2402C2A6AB789F6822AAF0F3F70F92AEDDE2678BDF05809170 + C7F4EBEEEA6A17937262B416B3F4D4287C27A716CE6DEFEC7415EFEB13C717F4 + 85A388DF291C55CC1108311057E1F062EE40E9F44AE7179FA7267E2600EE4238 + A9C8CFA90911B01702727672722108C2D9954EDF278E2FE84B6711BF5B5C8503 + 0B3110CEAD747C7B8717367D4E7C160077A3745AA50828FB4A3150DEA3BEF81C + D1278E2F10CED7D7080716D83BB5B0C9E1C57DF19AD2A60680BB11CEAF6CC2B1 + A991A38B7BCAFBC2E90971AF4FE98F0E23BE93F2BB515F8CEECAD77B7A2F616F + 036004F60E2B6CA5338BAB707C81FDEBFD82FEEE28CAEFE7E8BBC2E1415FE0C8 + 997B727E00000000000000000000000000000000000000000000000000000000 + 00001D30F6FF01967F3F46ED7D2A740000000049454E44AE426082} FileName = 'E:\YandexDisk\Development\Delphi\AErender Launcher\src\AErender ' + 'CC\icon_256.png' @@ -535,684 +535,684 @@ object SplashScreenForm: TSplashScreenForm PNG = { 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 549B49444154785EEDDD077C1CC5DDFFF151EFB625DB72EFBDDB72078C6D8A29 - A1F3E40143020904082990841020104842092D05481E5268212424E14F0BD554 - 630810F722F75E254BB6E4AA5EFEFB3B769CF1F9249FA4DBDBBDDBCFFBF59AEC - CC4ABA93CFC4BFEFCEEEEC262844937CDE7CE600105AA3DD100514A3C84BB4B7 - CDE1730780A38553F81BEC2D228042D4364D157BF373D5FDE0CFBAA9CF9EBF13 - 00F1AAA9221FBC5F8FCDFD4DFD2CA1A09528362D13AAE09B9FA1F975BD3FD43E - D986FAEC43ED03807812AA90CBBE50455F17F750FB44A8D72210848982D3BC50 - 855A8FCDAFE9BEB94F177E199B7DF37BF45698FB01205E99C55EE8BEDEAFC752 - C8CDBE30BF477F2DB86F32BF8620149C63852AC47A9FDE2FDBE0021F6A6BB6E0 - 7D426FF56B09BDAF29C7FB3A00B8E578C5D6FC7AF0D1BD2ED6D274F10FB52F78 - 2BCCBE6C753385DAE76B1493FF328BB090CFC66CFAEBBAAF0BBAEE0737FDB5A6 - B622B8AF49DF1C03402C0B2EBEBA1FAA8837B70DD5CCAF495FE8BED94CF275DF - F37B91D1C557D39F4770A14EB29A1E9B4DF607F7CD7D7A1CEA6785F91ED29726 - F41600E2852EC266410E2EDA6693FDF541FBF4D8DC1FFC3DD2F4CF0A3D96ADD0 - EFA7E9FDBEE3D742A38BAE661662D9CAD82CDCD2370BBB1E1FAF25AAE4E4E413 - A75D9C3F72CC8C3E5DBB0FEC9393DBB95B5A6A5A5672726A6672725266624A46 - 466A637266627A52467D725A4666637546424D6DB2F5B30010371A5353EA2A12 - D22A93EAAA2B1BAAEA2B6B12EA2A1A6A2B2BEBEAEA2BEAEA6A2AAA6BAA0F1F2C - 2F2D2ADEB5616BE1B2B95BFFFDF18B25AAAEAECEFA5129D052CCC369F2BDE6F7 - 4B5F87013304E8FD26FD35DFF05B00D0455EE83FBB2EF87AFB45E13EB698EB26 - C5596F8FF4C519177CA7DF8891D38676EADCD32AF41D7B676777E899519FD423 - A9438774EB7B000061AADFB7AFAA32A97EE7A143FB761C2CDFBB6D4FE98EAD2B - 0B3F5E33E795DF6EB6728104036952D883FBBAF807371D0C741030038119067C - 1304FC1200820BBF1EEBBE1471D9EAFE51C5DDDEA6D87DBD4D3EF5ACAFF59A7A - F29727F4E83D747C56A7EE637252D3F3ACFD0000871CACA92A3B5CBA6BE9CEED - 6B167F36EF8585EFBFF5CC766BB70E01B5C6568ABD190C745F0ABC0E033A0808 - B32FE23E08C47B0068AAF04B41378BBF6E4D157BD9A64E98FCA5FC53CFF9C694 - 9E7D868DEFDCA9D798B48CCC2ED67E00804BAA2B2B7697EED9BE6CC7D6D58BDE - 7FFD89CF17FEE78D126B778DD5CC30102A14E8A60BBFF4856F8240BC0680E315 - 7ED9EAE2AF0BBCF4538DB1F453BA771F9473F935F7CD183A6AEA192A217D7C5E - 5EC778FDCC0020A69595ED6D548D558BD6ACF86CCE5FFFF4E3B9BB76AD3F68ED - 96C26F0602E94BB1D7631D0264EBAB20106FC54CFE3CFACFA4B752E875D3855F - 8ABC6E52EC7593A29F9A9C9C9E7EE5371F9C3076D2AC33BBE5779D9694D63EC3 - DA0F008811F5D5FB2B8B4A8A3F5E3AFFEDB7FFFCFB5B17D6D5555559BBA5F8EB - 30A09B8400DD741090AD6E420701D99AA120A6C5530090C2AEC99F4BC6B20D3E - DA0F59F4AD9636F38C2B7A9F75D10D1774EB3DECB4ECF4CCCED63E00408C3B54 - 55515AB46DF57B6FBDF4E82B1FCE79769BB5ABDA6ACD8581E05901E9C7DD6C40 - 3C0400F933E83F8759F875D1D74D177E5DF08F14FEB32FFAEEC0B32FBCE18AEE - 3D724F4948E868060900409C686CDCDBB06B67F9076FBEFCE8B36FBEF4D8066B - 971904CC40A043806E3A00984140B666288839B11C00CCC22FCCA2DFD4117FA0 - E0EBED972FFBF1A899E75EF3D5F4B4F627E6E6E6C6F267010008537979796355 - F5FE7FBFFFDA1F9F7DF16FBF28B476E920A0B7CDCD0804CF06C46C1088D5A267 - 167F5DF8656B1EF14BC197E26F1EEDCB7AFCB4AF5C73FFF819A77FE58A8E9D7B - 4CB4C600009FDABB67E7FCB973FEF2EC734FDCB6D81A4A0030AF1590260140C2 - 80392320053FE667036231009853F4BAF8EBA3FEA68EF8A5A59F7BF1F7865C78 - D92D37E6E6751D678D010008D8535ABCF8957FFCE2D1375E7C74AD3594102061 - A0A91981A66603641C33622900C8EFAA7F5F5DF8651B7CD46F1EF1070A7FCFBE - 23F2BE7FDBB357F71BD4E7A284848EF27D00001CA5B1716FFDA6755B5FFCE5BD - 973F59B47D4DB9B54B07017346206E6603622500842AFEFAC8DF3CEA370B7F86 - 4A4ECEB8F1E6A74F9B7AF245DF4E4BCFEC64ED0300A059D555157B3E9BF7D2EF - 1E79E8EBEFA9BABA4A6B9734330884BA3E20E642402C040029F45AF0517FA8C2 - 2FE7F9334E3DF3AA01977CFDE7DFEB9CDF6382350600A0454A4B762EFCC7D377 - FEE6FDB79FDA680D250404CF08E820103C1B203C1F02BC1E0074F1D747FD66F1 - 97C22F01409FE30F1CF5A7A76767DDF5F09CAB06F71E7C59624E27F91E00005A - A5E1E09EDA75DBD6FDED673F3CE3A9AAAA4387AD5D7A3640370900E669011D02 - 74F1D781C073A4907A5570F197A60BBF3EEA0F1CED5B2DD36A5993A69ED7E7A7 - 0FBFFD40CF3EC36725A4657AF9CF06008801524B3AE5F71A7BDA595F9BB063CB - DAE5453BD7CB2C80D425DD84EE873AE26F6ABFEBBC5824E5C30A2EFEF27BEA73 - FD474DF55B4D8A7FF6B537FC76FAE5D7DEF350564E5E6F6B0C0040C4A467E674 - 193BE5C2333A75EABA63F1FCB7765BBB74D1D74D33FB5AA87DAEF35A00303F48 - D9EAE2AF03C07F2FF0B38B7F5656FBF6F7FC66DEF54346CDB8313BBB1DCFDD07 - 0038222D2D25BD73D741A79E70F245599F7DF4C2CADADA6A39B237EB5673C2F9 - 9EA8F25200303F44D99AC55F4FF94BD19722FFC594FF4917F6FBC943731EE8D9 - 7BF0291919199EFB700100F1456A4DC7CE3D469E72D655E38BB6AD5BB673C75A - B926C0AC5D7ABABFA9D3019EE19500201F8AF901EAC26F1EF5EB23FF40F1BFE2 - BA074EF8DAF5F7FF2A3BAB432F6B0C0040D4A46764E54F39F9FC333332DB6F5A - B6E8BD126B9759DC830BBD8C752008FE9A6BBCF08BC8EFA07F0F39EAD74D8ABF - 3EF237A7FDB3BE7BCBD3A7CF38F19C1FC7CB55FED5D555AA78C70EB56BFB36B5 - 6BDB56B5A7A458551EAE50959515AAAAC2DA5AADAAF2B0BDAD548D0D9EBC9E04 - 808F252525A9B48C0C9591991968E919F6D66A9959D9AA4BB7EEAA5BAFDEAABB - D5BAF4E8A19293E3E29F6F557FB0B476EE27AFDFFBDB07AF7ACF1AEA5502E67D - 03F452417DAF00CF2C13743B001CAFF8EB237F99F6CFB25AE6ADF7BCFA3F8386 - 9D78435E5E47B77FF756292B2D51854B16A94D6BD7A89D56B12FB28AFE9E12B9 - 9E0400FC21313151E5DB81A047EF3E6AD0B0116AF8D80295D3BEBDFD1DB1A5AC - 6C6FE3FAD5FF7EF4FE3BCEFF7FD6B0C26A120464B58034CF8600378BA859FC65 - 2B53FEC1C55F5FE92F77F5CBB9F797EF5F357CF4C95758E3987160DF3EB56AD9 - 62B572F122B5C22AFCC53BB6DB5F010098FA0C18A8468C1BAF465A6DE8E83181 - 99835852B86CDEB33FF9E1A94FA9BABA83D650CF04E89B07992140DF2F40B816 - 02DC0A002D29FE99494969ED1EFAC3FC1FF41B30FA1C6BEC79BB77ED541FBFFB - B69AFFF13CB56D933C721A00D0120909896AC090A16ACA8C99EAC45367A9DC8E - B17137F72D1B97BFF6C3EB26FDBABEBEFA803594D900CF8600B70280147B21EF - 2F7D7DC1DF31C5BF7DFBFCDC07FEEFF33BBB74EF37CD1A7BD6E18307D5E71F7D - A0E6BDF3B65A5BB8DCDE0B00682B0903A3274C54D34E3F534D3C699A4A4B97F2 - E05DC5BB367C7CEBB74EFCF9FEFD25F240A1A6428004000902BAF0EBD30251E3 - 460068AEF8EBA57E81E29F9696D5EED74F2CF979B79E834EB2C69ED3D8D8A096 - CEFF8FFAE8ED37D5A24F3F56B5B5F2F70A00704A7A46869A3C7DA69A71E697D4 - D05163AC70E0D6716CF324047CE78A917705CD04480B7E86806B2120DA9F9CBC - 9F6EBAF84B93C2AFAFF60F2CF34B4A4ACA79E80F8B6FF2E2B47F434383FA6CEE - FBEA95BF3EABB66FDE64EF050044D3E0E123D5855FB9528D9D3CD5934160F3C6 - E5AFDF7C5DC12FEBEBEBE59A00B9305082805E1D204D02801902A27A2A209A9F - 5870F1972647FED2CC697FB9DA3FFBEE47E65E3372F4F4AF587DCFA8ABAB551F - BF3B47BDFAFC735CCC07001ED177D06075E1E557AA49D34E0E9C2EF092954BE7 - FDE58EEF4F7FC2EA1EB29A5E26A84F07C82C80BE2620EA21408EBEA341177E71 - DCE27FEB3DAF7CB960E219D7587D4F90C2FFDE6BAFAA477E7E67E0E2BE430764 - 460700E005FBCAF6AACFE77EA03EFFE8C3C0CA815EFDFA7B664620BF6B9F317D - 078C3DF8EF0FFF2157849B055E9A9EF2D7055FB651FBC5A315007424D3C55FDE - 579FF3D7012050FCBFFDA327CF183976D60F3332323DF1B7B772C922F5E0ED3F - 52F3DE794B551C96F00600F0A283FBF7A9059F7CA496CDFF8FEA3B688867560E - 64E6749ED4ABCFE09D0B3EFDD7366BA80BBF59F4755FE81060EE7344340280FC - 4174D3C55F5FF427C53F70C19FD5B2BF72CDFD53CF3E7DF65D991D3A452B9834 - 69DFDEBDEA4FBF7A503DF787DF59FF51EDB7F70200BCAE6C4FA9FAE08DD7D401 - 2B100C1E314AA5A6CAB1A67BE480B66FD7DE27A466775CB77CF17B72E73773BA - 3FEA53FF9AD385F678C55F8EFC03C57FD24917F4FDEAF50F3C9C9AD95E02816B - EAEBEBD53BAFBCA87E79D78FD5A6756BECBD0080D8D2A836AE59ADE6BEF586EA - 90D751F5EE3FC0D5D30209699949FD86144CDDB271C5C7453BD6C9747270F18F - 3AA73F8DE0A97F29FCC714FFACAC761D1E7B66DD23B99DBA0CB3C6AED9B669A3 - FABFFBEF565B36ACB7F70000E2C1F0B1E3D4B76EB94375EAD2D5DEE38E7D65BB - 577DE78AC1DF3B7CF8C03E6B281706CACA00F31E01D2241848137A1B714ECE00 - 9847FFF23EFAE85F9FF73F32F57FF7AFE77EB367DFA1D3ADBE2B1A1B1B0329F1 - 9777DEA6CA4A4BEDBD008078515A5CAC3E7AE72DD5B36FBFC00389DC929E91DD - 79F89819E9EFBFF9E4526BA8670082B7C2F15901A7028059FC9B3DEFFF8DEF3C - 3A7DEAF48BBF63F55D214FD7FBC343F7A9979FFBB36AA897E598008078545B53 - A33EFDE0DDC09355478C2B5089894E1E03372D29257B78C78E5D372D593067A7 - 3594A26F3629FC8E177FE1D49FDE9CFA97C22FEF635EF11F28FE0513CFEA7BC5 - F5F7DF97949422FBA34EEED37FEFCDDF532B972EB6F70000E2DDFA55856AF9C2 - F96AF484492A333BFA0F1CCAC8C848E83768F4844D6B977C52B46B835C0F105C - FC839B1C4CCB36A29C0800E6D1BFBCBE0E01120074F1CFCACA6AD7EEAE87E7DC - 9B9DD3B197358EBAB96FBFA11EFEC96D6A7F7999BD0700E017B252E0A3396FAA - DEFD06A86E3DA35F86E4C07754C18CA1EFBFF1C487B5B5D5FA6E8066D3053FE2 - 855F8B7400308BBF39F51F7CDE3FEBCE87DFFD469F7E234FB5FA5125E7FB5FFA - CB33EAD9DF3DC2943F00F8D817A704DE571DF3F355BF4183EDBDD19391D92E7F - E88893123F78FB6979825C70F137438023221D00CCA97FF3C8FFA8A3FF19675E - 39E4E41997DF929E99A9BF3F2AE41EFECFFCF637EAB5BFFFD5DE0300F0B746B5 - E8D34F544A6AAA1A327274D4970A76CCCA1A56525EF2D9960DCB64558014FDE0 - 6703485F485F7EB9888582480680E0A37F29FEE6D1BF14FFCCA4A4A476B7DDF3 - CA1D1D3B77EB6E8DA3469ED4F7DB7B7F1698F20100C054B878A1AA3C7C588D9E - 3831AA2140EE0F30706041EF375F79ECA3C6C646FD5C00F394800E021117C900 - A08FE6E535750B9EFACFFEF64D4F9C3172DC8C8BAD7ED454561C0EDCCE77C9E7 - 9FDA7B000038DAFAD52BD5EE5D3B55C1D413A3BA422033BB7DD7BC4E3DE456C1 - 5BAC61A8EB01B488CE0244EA4F187CF42FCDBCE18F0480AC9E7D8675BEE29B8F - FE2C2D2D45C65121C5FFEE9B6E50EB0A57D87B0000084D6E082737839B327DA6 - 1502A27796BA739721C33FFFE4FFBD7BE8C05EB9295053170546742620520120 - F8E8DF3CF71F28FE56CBB9FD176F5CD7BD67DF71563F2A64DA5F8EFC29FE0080 - 7015EDD8AEF6ECDEAD269C7852D44E07A4A5A5660C1E3639FDDD379E9075E912 - 007433038088D82C40240240F0D1BF79EEFFC8857F679E7FFDC859E75C7C6342 - 42742EFC930BFE1EBBF7A74CFB03005A6CEBC60DAAA6BA3A70AF8068C9EB943E - A8BCECC0828DEB16EEB586C121409841A0CD221100A4A0EBE26F1EFD4BF19716 - 78CCEF6D77BF72476656746EC22C4BFD9E79ECD76ADE9CB7EC3D0000B4CCBA95 - 2B547A4666E08982D12007C87D068EEBF3FA0BBF7ADF1A4AE1D7170506CF0268 - 6D0A036D0D00A18EFEE5DCBF9EFA0F5CF93FFB6B3F9F3CE184732EB3FA5121EB - FC5FFB074BFD00006D23770CECD2BDA7EA3360A0BDC7595959EDF21312135716 - 2E9D5B640DA5E84B08903020C55E5AC46601DA3A1D2F855FC8EBE826A1428780 - 40109879FA95B3AD6D547CF8D6EBEA85679EB0470000B4CDEF1FBC37B04C305A - A6CFFA9AD44C3988961A2A17D34B4D95DA6AD65AA16B70ABE817690DFDC67A06 - 407E39F31440A0F89F77E9CD233B77EF3DC6EA3B4ECED93CF59B87ED1100006D - 575F5FAF1EBDE7A76ADF5E3935EFBCAE5D7B8F3DEFCB378DB4BA721A5DD753A9 - ADBACEEABA2BF4B6C5DA1200343391E853007A0960DAACB3AFBDD4DA3A4E9EEE - F49B9FDD11B8F21F0080483AB0AF3C7061B95C601E0DB3CEFDA6D44E09007A06 - 409AD458B3E6B6892489D6D0E94337791DB3F0CB857F59A79F73EDF053CFBCF2 - 1AABEF28B9E8EFF70FFD42AD5AB6C4DE03004064951617A9848444357CACF3AB - D9DBB5CFEB5156BAEBF34DEB17EB15017274AB5704982B035AADAD09428ABFBC - 869E969000A0A72BD2CFFB9FEF5F626D1DF7E19BAFAB7FBFFF8E3D0200C0192F - 3EFB945AB964913D72D6B997FC406AA8791A406AACAEB7527BA506B75A6B0380 - 79F42FAF21CD5C019076D2CC4BFB66E6743EC9EA3B4A9EE9FFF463BFB2470000 - 3847669C1FBBF7675179947CCF5E9D4F9A76CAEC3E565766D6A5B64A9D354F03 - 98B5B8C55A1300CC37D201E09819802F5D7CE3D979791D5BF54B854B2ECCF8ED - 7D77071EE908004034EC2BDBAB9EF8B5F3179C2724744C3CFBA2EF7EC9EAEA19 - 00694DCD00B4B8DEB6260068F2B3BAF89B17FFA5A6A66666F61B307ABAD577D4 - 9C57FE5F6006000080685AF0C9476AE9FCCFED9173FAF61F3D5D6AAAD5D53300 - 526765AB4340ABEB786B7E5052864E1AA14240EAFF7EEDCEF169E999B956DF31 - E57BF7A8179E66BD3F00C01D4F3FFA2BC767A0D333B2722FB9F227055657CF00 - 842AFE665D0E5B4B03807E03D99AC5FFC8D1BFD5D2264CFDD2A9D6D6517F79FC - B1C0D23F0000DC208F0E7EF5F9E7EC9173264C3D476AAABE0E40D75B330498B5 - 396C2D0D009ABC890E01F24BE81090DAB5C7C0F61D7B7673F4E9092B162D509F - 7EF09E3D0200C01DAFFEEDD9401070525EAF6E933B77EDD7DEEAEA00A0EBAE2E - FE2D2AFC5A4B03807E2369FA1790E98823D3FF977CF5CE69D9C91D25A938426E - F4F3D423BFB4470000B8476A929C0A90D5014E919A3AFBEB3F9555753A00E8BA - ABEBB0599BC3D6920060BEB04E1DFACD03C55FDAF071D3665A5BC77CF0C6BF02 - CF6A0600C00BE46240A7EF0D306AF4C9525B0375D66AE62C80D462B396871D02 - 5A3A0320F4CFC8569A4E22C9630A4EEF9A92D27E84D577445D5D6D54CEB70000 - D0122F3FF767BBE78CC4D49C915263ADEE919A2BBBED26F4366C2DF9014915BA - C9CFE9F4716406E09433BF3621373737ECF4D152F3E6BCADCA4A4BEC110000DE - B072E962B56EE50A7B1479725F9D99675D39DEEA06CF0048939A6CD6E8B0841B - 00825F50BF992EFE81D667D0E8D1D6D61172D39F57FEF6AC3D0200C05B9C9E05 - E8DB6F8C3C59F748CDB59AD460A9C5C1B53CAC10106E00D0E4FB759337962988 - C036292929AD4B977EF2F842477CF6E1FBAAA468973D0200C05B96FCE733B565 - FD3A7B1479799DFB8D905A6B758FD45E7B6BD6E6B0B5E89B6D922CF4D1BFFE05 - 52A64EFBDF9E72C302AB1F718D8D0DEAE5BF3A9BAC000068AB971D9CA9CE6997 - 953775DAC53DADAE1CFD9BC55FD7E516093700E81797A653863479F3C054C4D4 - E9178EB5B68E58FCD9A76AE7D62DF60800006F9A3F6FAE2ADEB9C31E45DEA493 - 02B5D63C05A0438034B3561F97FCC0F104BF908CF59BEA96DCABEF28C7CEFFCF - 7DFB4DBB07008077C9FD003E7EF76D7B1479FD068D1D656DF4D1BFD942D5EA66 - 851300349D3074CA08147E69494949A99DBAF51E6EF523EEE081FD6AF1E7FFB6 - 470000789B0400A76E0C94DFA5F770ABE6EA53003A08484D366B7458C2FE469B - BC897E239D3A52669E7955DF8CB4CC1CAB1F7172F15F7D5D9D3D0200C0DB4A8A - 8AD4DA42679604A6A665B6B36A6E3FABAB6BB034A9C9BA3E872D9C0060BEA859 - FC8F8480E1A34E1C646D1D31EF9DB7EC1E0000B1C1C9D30043BFA8B9FA1A00B3 - 269BB55AF79B144E00D0F40BEA76240074EAD257AE4A8CB85DDBB7A90DAB57D9 - 2300006283CC5E3BF5A8E0AE5DFBF6B03681FA6B355DF8CD16969604007154E1 - B75AE01C4487BC6EDDAD6DC43999A00000704AC5E1436AF167CE5CBFD62E375F - 0280790D801904C276BC00A05F4C177EFD066608486A9FD3CE910030FFE38FEC - 1E0000B1C5A91A96D33EAF9BB5D145DF2CFE669D167A1B927C6338CC1739EA8D - 525333521AEA93BAC8172269DFDEBDACFD0700C42C793E8013AB01721213BB24 - 25A5EAA37FB3266BCD167E2DDC0020E40575939F0B1CFD8F9E34AB4B874E9DE5 - 1789A8954B9D7DB42200004EDA57B657EDDAB6D51E454E524EE79482C967C881 - 77A00E5B4D8700DDC2D2920020E4FB75F10F6C870D3FC1910B000B1D7EB63200 - 004E5BE9502D1B3CFC845ED6E6482DB6B7D2C216CE379B47FDC21C27F6E83548 - 2E468838A73E340000A2C5A983D91E3D8748EDD5455FD765113C6E922EEA4D09 - 7E0119EB379496D42EAF5BC4CFFFCB4D14A4010010CB562D5D1278A05DA4E575 - EE966F6DCC237F69A16A7693E4079AD254F117BA9F9096929E11D813419CFF07 - 00C48343070FA8AD1B37DAA3C8494949CFB436476AB1ECB3B428043417004CE6 - 0B986F9898929616F100B071CD6ABB0700406CDBB826F237B44B490DD4DE23B5 - D8DE6A66BF49E104007921B31DF586A9C9919F01D8B53DF2574D0200E006B9AB - 6DA425A7A6A75B9B636A72506B56380140D32F66BE7862726AAA030120F21F16 - 00006E70A2A6A5AA40ED358BBE66F69BD5920020F4F7EB374C484A494E0BEC89 - 90CA8AC3819B000100100F8A1C08004919C97A06C06C2DAAE9E17CB3BCA84927 - 0ED926AAE424F92522A668FB76BB070040EC2B29DAA5EAEA6AED51642427040E - BEBFA8C3FF0D00A6E0F131C209005A132F9611D100B0D381BB260100E0968686 - 06B57BE74E7B141949E9C7D45E5DA38F5BF8B5960400D37F1347654584670038 - FF0F00882F91BE0E20B5E6B0790AA055B53CDC1F329385EE07342625CB8D0822 - A67477B1DD0300203EEC89706D3B50971CEA193C66AD3EAED6CE008863C24024 - C845800000C493CACA0ABB1751661D6E713DF6600070E4430200C03555CED4B6 - 36D5E1960400F34D225EF835873E2400005CE3F0C16DABEA734B6700E4851D2B - FEC2A1691200005C53159DDAD6A2FADCD6530011C70C000020DE383803A06B71 - 8B6B725B0280887808E01A000040BCA9AAACB47B11D5A61ADCD60010710E7D48 - 0000B8C68BB3DB9E0B008D8D0D760F0080F8D0E0C1DAE6B9000000009C470000 - 00C08708000000F810010000001F22000000E043040000007C88000000800F11 - 000000F021020000003E44000000C08708000000F810010000001F6AEE5182F2 - 356949564BB65A9AD532AC966DB57656CB93F6D44B65CFE7E6E646ECB1C0979E - 72A2DD035A273D234375CAEF628FBC6DFFBE727570FF7E7B04205EF51F3254DD - F7F893F6A8EDCACBCB1BAFBA286FB6D52DB3DB01AB1DB29A3C52B7DA6A7556AB - B75AA3DD8E4100405C1933698AFAFE5DF7044240AC285CBC50DD7BF3F7546363 - C8FF8F0288035E0C009C02405C3979D6993155FCC5C882096ADC9413EC110044 - 07010071A57BAFDE762FB64C3BED0CBB0700D14100405CC9CA96B353B167CCA4 - C92A2959CEB401407410001057B2DBE5D8BDD8929995AD868C1C658F00C07904 - 00C48DA4A4A440218D55055C0700208A0800881B99D9B15BFC45C11456C00088 - 1E0200E246764E6C9EFFD7BAF7EEA3BA74EF618F00C0590400C48DEC76B11D00 - 04CB0101440B01007123D66700C4F8A99C0600101D0400C48D789801183E669C - CAC8CCB44700E01C0200E246561CCC00C8BD00468D9F688F00C0390400C48D0E - 791DED5E6CE33A0000D1400040DCE83768B0DD8B6D723F808404FEAF09C059FC - 2B83B8909090A0060E1D6E8F625BFBDC3CD57FF0107B0400CE2000202E74E9D1 - 5365E5C4E66D8043E1340000A711001017060E1D66F7E24301CB0101388C0080 - B83070D808BB171FE414406EC74EF60800228F0080B8307844FC3D496FDC94A9 - 760F00228F00809817AF17CD8D9BCC7500009C430040CC1B3371B2DD8B2FA327 - 4C5429A9A9F60800228B0080983776D214BB175FD2D23302B706060027100010 - D3121313D5E88993EC51FC61392000A7100010D3E4E63FF1F014C0A6144C3931 - 709323008834020062DAD8C9F139FDAFE577EBA67AF4EE638F00207208008869 - 6327C5FF52394E030070020100312BB0FC6FC8507B14BFB82B200027100010B3 - E275F95FB0212347C7F5750E00DC410040CC8AD7E57FC164A5835FC20E80E821 - 002026C5FBF2BF605C070020D208008849F1BEFC2F98AC76484A4AB24700D076 - 0400C4243796FF6DDBB4D1EE459F849D41C3E3EB898700DC4500404C7263F9DF - 4B7F79461D3E78D01E451FA701004412010031C7ADE57FEB5717AA3585CBED51 - F4C95D01012052080088396E5C11BF6FEF5E55565AAAD6AE5866EF89BE5EFDFA - ABCE5DBBD92300681B0200628E1BCBFF36AC59A51A1B1BD59AE5EE0500C16900 - 00914200404C716BF9DF86D52B03DB4DEBD6AADA9A9A40DF0D05040000114200 - 404C716BF9DFFAD5AB02DBBABA5AABFF451870C38871E3555A7ABA3D0280D623 - 0020A6B8B1FC4FA6FE37AD5D638F945ABBC2BD0B01535252D4C88209F608005A - 8F008098E2C6F2BF9DDBB6AACA8AC3F648B9BA1240701A00402410001033DC5A - FEB7D19EFED7D615AE508D8D0DF628FAE4E980090909F608005A87008098E1D6 - 0371F405809ACC066CDDE8DE5D01733B76527D060EB24700D03A0400C40CB79E - FEB761CD6ABBF75F6B5CBC1F802898CC6900006D4300404C706BF99F2CF9DBB6 - F9D8A37D376F0824E4340000B405010031C1ADE57F9BD7AF55F57575F6E8BFD6 - B8B812400C183A2C704D0400B416010031C18DE57F6243D005805AF9DE3DAAA4 - 68973D8A3EB908D0ADCF04407C20002026B8B1FC4FC82D809BB2DAE5DB02731D - 0080B62000C0F3DC5AFE2782570098D616BA1B00464F9CAC929353EC1100B40C - 01009EE7D6F2BF83FBF7ABD2E2627B742CB7AF03C8C8CC5443478FB14700D032 - 0400789E6BCBFFACA37FB90D70538AB66F0B84043771574000AD450080A7B9B5 - FC4F3477FE5F041E0FECF67240020080562200C0D3DC5AFE2742DD002898DB01 - A06BCF5EAA9BD500A0A50800F034B796BAC9BDFED7AF2CB4474D73F3C9801A37 - 0502D01A0400789A5BCBFFB66C58AF2A0E1FB2474DDBBC619DAAAAACB447EEE0 - 340080D62000C0B3DC5CFEB77AD952BBD73CB94BE0EAE5E17DAF53868E1EAB32 - B3B2ED110084870000CF726BF99F58B56C89DD3BBE954B16D93D77242525A9D1 - 13DCB95012B147FE7B9125A4ED3A74501DF3F303D790F4EE3F500D1C365C0D1D - 35865B4CFB48730F1597AF494BB25AB2D5D2AC96613539D490ABB2E4BF92BCA7 - 5E2A7B3E373737620F27BFF414CE67E20B37DCF13375C229A7D9A3E891ABFBAF - B9E06C75E8E0017B4FF3FA0E1AACEEFFC3D3F6C81D1FCD794B3DFEC03DF6087E - 909090A872DAB7571DF23A5A2D2F68FB456B9F9BABD23332556A5A9A4A494D0D - 6C6565CDF1BCF7DA2BEA895F3F648F1009329B79DFE34FDAA3B62B2F2F6FBCEA - A2BCD956B7CC6EF20F969CB7947392D556938798D45B4DD632875CCF4C008027 - C93F527F7CF90D5756006CDBB441FDE81B57DAA3E3937F88FFF48A3BBFAB7660 - DF3EF5CDFF3957353434D87B100F72DAB50F1CA177EB25AB3D7A07FAF9DDBBDB - C53D2FAC62DE1A72FD8B84E0FA7AA91F88042F06004E01C093DC5CFEB72ACCF3 - FF9AAC1858B964B13D72874CE7CA1302117B92929355EFFE03D4E4E933D50597 - 5FA1AEBFE50EF5F3DFFEC10A956F069AF4659F7C4DBEA7DFA0212AB76327C78A - BF906B4AB8CD74FC2300C093DC7CD2DDEA169CFFD7DCBE0E408C633580E749B1 - EF3B70903AE54BE7AAABBF7FB3BAF7F127D4336FBCA71E7CE259F5FDBBEE5197 - 5E7D9D9A7EC6596AF0F09181A37FC049040078925BCBFF446BAEEA2F5CBCD0EE - B9A7600AA7CFBC448ED04315FBFBFFF88CBAF6A65BD5E9E75EA0060C19A65252 - 38D2863B0800F09C761D725D5BFEB763EB96C0F9F4962ADAB15D95EFDD638FDC - 21C526AF73BE3D42B4252424A82EDD7B040AFBF77F7AAFFAD3CB6F52ECE16904 - 00788E9BCBFF5A33FD2F64E540E162F74F037053A0E892ABF0A7CE382550E41F - FDEB0BEA91E7FE1938DA9F7CF20C959593637F17E04D040078CEB8C9EE4DFFB7 - 64FD7FB0C225EE9F06E03A0067C932BA51E327AACBAEFD5660E9A71CE5DF78E7 - DD8169FECE5DBBD9DF05C40602003C45CE9BBAF5F43F11EE1D0043717B258018 - 55302150A41019F2DFA39C8E3A7FF657D54F7EF9A87AF25F73D4ED0FFD469D77 - E9E581FB3F00B18C00004F7173F99F9CC7DF57B6D71EB5DC9EDDC56AF7AE9DF6 - C81D52FC478C2DB047688DB4F4F4C00DA8E4AA7CB91785ACDD9E7DCD37D58871 - E339878FB8420080A7B8B9FCAF2DD3FF9A175603701AA0E56479DED84953D4B7 - 6FBB53FDF1A5D70377A19435F76EDEDC09701A01009EE2E6F2BF554B2310003C - 703F00793CB05C918EE6C96724EBEDAFBAE107EAF17FBEAA6EBDFF976ADAE967 - A8B474B9E12910FF0800F00C3797FF89D6AE003079E13A804EF95D54AF7EFDED - 1182F5ECD3575D72D5B5EA91E75E08DC656FD6051707EEA408F80D01009EE1E6 - F23F39775FB6A7D41EB5DE817DE56ADBA68DF6C83D2C073C5A7A46863AF792CB - 02EBF21F7EFAAFEAC2AF5CA9F2BB71D53EFC8D0000CF88D5E57FC1B82DB0B7C8 - 236FEFFBFD53EAF2EBBE1DB85912802F1000E009B1BCFC2F9817AE03183C6264 - E02635506AF4F849AA7BAFDEF6088046008027B8B9FC4F44720640C2843C21D0 - 4DF28862B9AA1D4A75EAD2D5EE01301100E0096E2EFF93F5FBD222459EA5BE71 - ED1A7BE49E7193390D202A2B2AEC1E001301009EE0EAF2BF081EFD6B5EB80E60 - CCA42981F5ED7E77F8D001BB07C0440080EBDC5FFE17B9F3FF9A171E0C94959D - AD868C18658FFCEBF0C183760F80890000D7B9B9FC4FAC5C1AF962BDAE7085AA - ABABB547EE6135000100680A0100AE7373F95F49D12EAB15D9A3C8A9AEAE52EB - 5616DA23F7703F003905400000422100C0556E2FFF5BE1E0BDFBBD701D408F3E - 7D5597EE3DEC913F1D6206000889000057B9BDFCAF70D102BB17795EB80E40F8 - FD3400A70080D0080070959BCBFF849337EDD9B06695AAAAACB447EEF1FB6980 - AACA0AD5D0E0EE7D19002F2200C0556E2EFFDBB261BD3AB87FBF3D8ABCFABABA - 883C60A8AD868F1DA7323233ED91FF343636721D0010020100AE717BF95FE162 - E7A6FFB5158B9CBBC6205CC9C9296A64C1447BE44F9C06008E4500806BDC5EFE - 178DE2BC220A21231C7E3F0D5071E890DD03A01100E01A3797FFC9F4FC9A15CB - EC9173766CD9ACF69797D923F78C9B3235F07C00BFE21400702C02005CE1F6F2 - BFB52B57A8EAAA2A7BE41C39FF5CE8E052C37075C8EBA8FA0D1E6C8FFC870000 - 1C8B000057B8BFFC2F7A45D90BD70188822927DA3DFFA9AD71FFAE8C80D71000 - E00AD797FF45F1A8DC0B3300C2CFD701D4D7D7D93D84A36C4FA9AAA9A9B64788 - 570400B8C2CDE57FF278D88D6B57DB23E7ED29D9AD8A776CB747EE9115171D3A - 76B447FE22D77CF8557D7DBD3A74F04060C9AB6C0F1F3A64FD7FE070E01E1572 - CBEADA9A9AC0732BE4FB1A1B1B5491F5DFEAEBFF783E70FA0AF12DC1DE86225F - 9396643579A6689AD532AC966D3599BBCD93F6D44B65CFE7E6E636F73A2D72E9 - 29FE9DA6F40B59FEF7C7975EB747D1B7E8B37FAB876EFF913D8A8EABBFF74375 - FA7917DA23F7FCE1E15FA80FDF74EFB377CB5537FC40CDBAE0627B14DB0E1ED8 - AF76EFDCA97617ED5407CACB03D737485197A58E81BEB5AD387C28700BE40A6B - 2CD7BA50CCDD2701FCBEC79FB4476D575E5EDE78D54579B3ADAE5C652C4D9E7B - 2DCB5DE4EE63327D23A9B7DE6AF2971FF23F0066001075EE2FFF8BFED23C37DE - 3314BF9E06A88BB1530007F695ABB585CBD54773DE52FF7CEA4FEAD17BEE523F - BEFE6A75F5F967AA6B2E385BDDF1ED6BD463F7FC54FDF9778FA8FFF7E7A7D45B - 2FFE53CD7BE72DB5E8D34F02AB5BB66DDAA8CA4A4B0247F9147F34850080A873 - 73F99F70F2FEFF4D59B974B127FE211E3D61924A4949B147FE515F270742DE25 - 53F39F7DF8BEFAFD83F7A96FFDEF05EADA8BCE5177DD70BD7AFC817BD44BCF3D - A33EFDE03DB569ED1A6E688488220020AADC5EFEB76FEF5EB573DB567B143DF2 - 0FF7E6756BED917BD2D233D4B031E3EC917F3434782B00C8B9F6752B57A8179E - 7942DDF1AD6BD4B5177E493D72F79D6AEEDB6F042EC003A2810080A8727BF99F - 3CFED7AD2371EE0A086DD5B2A5EACEEF7E53BDF8ECD3818746F1B022B8810080 - A8727FF99F7B45D833F703987A924A4888D875BB006214010051E5E6F23FB1C2 - C567F4CB946F6DADFB37A4C9EFD64D75EFDDC71E01F02B0200A2C6EDA7FFEDDA - BE2D7065B45B6AAAABD5DA283C7F201C9C0600400040D4B8BDFCCF8DABFF8379 - E534C0380200E07B0400448DDBCBFFDC9CFED7BC7221E0D0516354564E8E3D02 - E04704004485DBCBFF64D9D5AA658BED917BB6AC5F17B86B9BDBE4EFC3ED1919 - 00EE2200202ADC5EFEB7D123375191E55E2B97B83F1321C64DE63400E0670400 - 4485FBCBFFBC517485576E0B3C6ECAD4C04C00007FE2FFFD880AD797FF79A4E8 - 0AAF3C1E586664060D1F698F00F80D01008E737BF99F3CEE54D6E07B45F1CE1D - 6A6F897BCB114D0553390D00F81501008E73FB6233793A9A8400AF905B117B65 - 3500D70100FE450080E3DC3EFF2FF7FFF71AAFDC0FA077FF01AA5397AEF60880 - 9F1000E0282F2C37F3CA39779357560208EE0A08F81301008E727BF99F2CFD93 - B5F75EB3AF6CAFDABE79933D7217770504FC89000047B9BEFCCF3AD2F6EAA356 - BD721DC0C882092A2D3DDD1E01F00B02001CE5F6F23F2F4EFF6B5EB90E202525 - 458D1C37DE1E01F00B02001CE3F6F23FE1C50B00B535CB97AAFAFA7A7BE42E4E - 0300FE43008063DCBEF86F4FC96EB57BE70E7BE43D9515156AC3EA95F6C85D05 - 534F54090909F608801F1000E018F76FFFBB30B0E6DECBBC721A20AF5367D567 - C0407B04C00F080070841796FF79A5B836C74BD728144C39D1EE01F00302001C - E1F6F23FE1A5B5F64DD9B07A95AAAEAAB447EEE23A00C05F08007084DBD3FFB2 - C65ED6DA7B5D5D5DAD5AB56CA93D72D7C061C303176E02F00702001CE1FAD3FF - 3CB2C63E1C5E7952A15C0438CEE5E006207A080088382F2CFF2B5CECFDE97FCD - 4BBF2BA70100FF200020E2DCBEF84FEEFCB77AD9127BE47D72BAE2C0BE727BE4 - 2EF9BB4B4E4EB14700E219010011E7F6F9FFF5AB0A036BEC6345636383676E58 - 949199A5868C1A6D8F00C433020022CA1B4FFF8B9DE97FADD0434B16C74F6539 - 20E007040044941796FF79E5A2BA96F0D22D8BB90E00F007020022CAEDE97F59 - 532F6BEB63CD9EDDC5AAD823B72DEED6B357A001886F04004494DBCBFF562F5F - 16585B1F8B980500104D0400448C279EFE1783D3FF9AB76E0B4C0000E21D0100 - 11E3F6C57FC24B45B4A5562D59EC9987170D1B332EB0220040FC6AEEF99FF235 - 6949564BB65A9AD532AC966D35B9CA2B4FDA532F953D9F9B9B1BB1E7885E7A0A - 5720C7AAEFDEF15375E229A7DB2377C80C80DC07E0B8C22CB4E17C57D8453B8C - EF1B397EA24A49F1C63AFC5FFFEC0EF59F8F3EB447B16DF635DF54E7CFFEAA3D - 72DFCAA58BD5DD3FF8AE3D821FC8ECE87D8F3F698FDAAEBCBCBCF1AA8BF2665B - DD32BB1DB0DA21ABC9C345AAAD5667B57AABC93F3C21FFF12100202264F9DF1F - 5F7EC3F51500889C8FE6BCA51E7FE01E7B14DB0800709B170300A70010115E58 - FE87C81A3779AA4A48E09F08205EF1FF6E4484DBCBFF1079ED3A74500386BA7B - 512700E7100010116E2FFF83330AB82B2010B7080068332F2CFF83330A26B31C - 1088570400B4991796FFC1197D070D56799D3ADB2300F184008036E3FC7F7CE3 - AE80407C2200A04DBCF0F43F388BEB0080F84400409BB0FC2FFE8D2C18AF52D3 - E4362000E20901006DC2F47FFC4B4B4B57C3C78CB34700E20501006DC2F23F7F - E03400107F0800683596FFF9873C1D3021216277FC06E0010400B41A17FFF947 - A72E5D55CFBEFDEC118078400040AB71FEDF5F0AA6701A0088270400B40ACBFF - FCA7602AF70300E2090100ADC2F23FFF193C62A4CA69D7DE1E0188750400B40A - D3FFFE238F061E3389591F205E1000D02A2CFFF327AE0300E20701002DC6F23F - FF1A33698A4A4A4AB24700621901002DC6C57FFE95959DAD068F18658F00C432 - 02005A8CF3FFFEC65D0181F84000408BB0FC0F3C1E18880F0400B408CBFFD0B3 - 4F5F95DFADBB3D0210AB08006811A6FF21E4D90000621B01002DC2F23F08AE03 - 00621F01006163F91FB4E163C7A9F48C0C7B042016110010362EFE83969C9CA2 - 468D9F688F00C4220200C2C6F97F98B82B2010DB0800080BCBFF106CDCE4A981 - E70300884DFCBF176161F91F8275E8D851F51B34C81E01883504008485E97F84 - C26A0020761100101696FF2114AE0300625782BD0D45BE264D1EFD956CB534AB - C9BA9F6CABC95C709EB4A75E2A7B3E3737B7B9D769914B4FE11F14AF91E57F7F - 7CE9757BE49E7F3EF527F5CADF9EB547FE74D76F7EA7868C1C6D8FBCE19BFF73 - 9EDA57B6D71E79D3EC6BBEA9CE9FFD557BE4BE954B17ABBB7FF05D7B043F9025 - D4F73DFEA43D6ABBF2F2F2C6AB2ECA9B6D75CBEC76C06A87AC5669B56AABD559 - ADDE6A8D763B063300382EAF5CFCB77CE17CD5D0D0E0EBB66CC17CFBD3F00EB9 - 181040EC2100E0B8BC70FEBFE2F021B569DD1A7BE45FCB17FEC7EE7947C1546E - 0B0CC42202009AE595E57F2B972C0E1C01FBDDA6B56BD4E18307ED91378C1A3F - 49A5A4A4D82300B1820080667965F9DF8AC50BED9EBF49085AB178813DF206B9 - 25F0D0D163ED118058410040B3BCB2FCAF7091B78A9E9BE45A08AF19CF724020 - E61000D02C2F2CFF2B2B2D51453BB6DB232CF7E08580723F808484882D060210 - 05040034C92B4FFF5BB168A16A6C0CB98AC597F694EC56BBB66DB547DE90DFAD - BBEAD6ABB73D02100B080068925796FF79ED9CB71778F13400370502620B0100 - 4DF2CCF9FFC58BEC1EB4650B580E08A06D080008C92BCBFFB66FDEE4F9BBCCB9 - 61D5B225AABE4E6EF4E51D43478D5159D972A35000B180008090BCB3FC8FE9FF - 50AAABAAD49AC2E5F6C81B24348EE691D140CC20002024A6FFBDCF93A701B80E - 008819040084E485E57F72D39BD5CB96D82304F3E28580121C65260080F7F1FF - 541CC32BCBFFD6AF2A54951515F608C1B66ED8A00EECDB678FBC21A75D7B3570 - D8087B04C0CB080038866796FF2DE2F6BFCD696C6CB03E236FDE140880F71100 - 700CEF9CFFE702C0E3F1E2E3810BA6B01C10880504001CC52BCBFFAA2A2BD5FA - D5ABEC119AB2DC833300BDFB0F509DF2BBD823005E4500C051BCB2FC4F2EFEF3 - DA3A772FDAB777AFDAB669A33DF28E71CC02009E4700C051BC32FDCFF9FFF02D - 5FE8C5BB02721D00E07504001CC50BCBFF0437000A9F17AF0318396EBC4A4B4B - B74700BC88008023BCB2FC6F7F7999DAB165B33DC2F1AC2D5CAE6A6B6AEC9137 - A4A4A6AA1105E3ED11002F2200E0082F2DFFE3F1BFE1ABA9AE0E3C1BC06B580D - 00781B0100477867F91FE7FF5BCA9B8F073E41252424D823005E430040805796 - FF090240CB793100E475CE0F2C0904E04D0400047865F95FD18EED6A4FC96E7B - 8470C93513E57BF7D823EF603500E05D0400047867F91F57FFB7865C33B1DC93 - 77052400005E450040806796FFB1FEBFD5BC781A60E0B0E1AA5D870EF6088097 - 1000E099E57FF2709B55CB16DB23B494DC16D86BAB27E42240AF844B00472300 - C03317FF6D5CBB461D3E78D01EA1A50EEEDFAF36AF5F678FBCA3602ACB01012F - 2200C03BCBFF98FE6F332F9E06908099949C6C8F00780501C0E7BCB4FC8F0B00 - DB6EF902EF3D172023334B0D1D39DA1E01F00A0280CF7965F99FDCCD6EDDAA42 - 7B84D65AB7B250555755DA23EF603920E03D04009FF3CAF4BF17EF671F8BEAEA - 6AD5CA25DEBB90920000780F01C0E7BCB3FC8FE9FF4859E6C1D300DD7AF6525D - AD06C03B08003EE695E57F82F5FF91E3C50B0145C1645603005E4200F031AF5C - FC77E8E001B565C37A7B84B62ADEB943EDD95D6C8FBC83E58080B710007CCC4B - 4FFF939B002132E466405E3C0D306CF4D8C08A0000DE4000F0296F2DFF63FA3F - D2BC781A40EE05307AC2447B04C06D04009FF2CAF23FC105809157B864912767 - 55783810E01D04009FF2CAF47F495191D576D923448ADC5279FDEA55F6C83BC6 - 4D99AA1212F86707F002FE9FE8539E59FEB798A37FA778F1F1C0B2F264804756 - 9E007E4700F0212F2DFF2B64FADF319E5D0EC86A00C01308003EE4958BFF849C - AB863336AE59A52A0E1FB247DEC17500803710007CC82BE7FF65EDBF3CC216CE - A8AFAF57858BBD17B0FA0E1AACF23A75B64700DC4200F0192F2DFF2BE4FCBFE3 - BC7A1A60DC646F5C8302F81901C067BCB5FC8FF5FF4E5BBED07B3704123C1C08 - 701F01C067BC32FD2F4FAD5BB362993D8253649965F18EEDF6C83B468E9FA052 - 5253ED11003710007CC62BCBFFD615CA73EBABEC119CE4C5D3006969E96AF8D8 - 027B04C00D04001FF1D4D3FF38FF1F35CB3C7A1DC0F8292C0704DC4400F0112F - 2DFFE3F6BFD1B36AE9E2C08A00AF91EB00121212EC1180682300F88857CEFFCB - DAF4CDEBD6DA2338ADB2A242AD5BB9C21E7947A72E5D558F3E7DED1180682300 - F8849796FFAD5CE2CD23D278E6DDBB02B21A00700B01C0273CB5FC6F31CBFFA2 - 6DD9028F2E07E4AE80806B08003EE195E97FC1FDFFA36FCBFA75EAE001EFDD75 - 71C8C8919E09A680DF10007CC22BCBFFCAF694AA220FAE4B8F770D0D0D56F0F2 - DECC8B3C1A78CC24EF8453C04F08003EE0A9E57F56116A6C6CB4478826CF9E06 - E0E980802B08003EE0A9A7FFB1FEDF35CB3D7AEA4566A7929292EC1180682100 - F88097CEFF7301A07BCA4A4BD48EAD5BEC9177646567AB41C347DA2300D14200 - F08161A3C6D83D77EDD8B259EDDBBBD71EC10DCB3DBB1A80D30040B411007C40 - 2E00F3824F3F7CDFEEC12DF33FFEC8EE794B564E8EDD03102D04001F3874F0A0 - DD73CFE14387D49C975FB047708B3C81F1C3B75EB747DE71E8E001BBE78C1D5B - BC75EA4366C300B73577236EF99A34B93A27D96A6956CBB05AB6D564E16E9EB4 - A75E2A7B3E3737376237F4BEF4146E0C12699DBB760B5C0898EDC25196CC3E6C - 5EBF2E702B5A9EFEE70DB2F4AE57BFFE6AC8C85181F3EF6E2B2FDBAB3EFFF003 - 555DEDDC7F1F39EDDAAB07FEF48CCAEB9C6FEF718F84E1876EFF118FC3F61959 - 8975DFE34FDAA3B62B2F2F6FBCEAA2BCD956B7CC6E92A20F59ADD26AD556ABB3 - 9ADC7255965D855C7A450000E00BF2E0A1DEFD07A80E1D3BD97BA2AFAAA2426D - 58B34AD5D7C9BFCDF0130240180800008078E3C500C035000000F81001000000 - 1F22000000E043040000007C88000000800F11000000F021020000003E440000 - 00C08708000000F810010000001F22000000E043040000007C88000000800F11 - 000000F021020000003E44000000C08708000000F810010000001F22000000E0 - 43040000007C88000000800F11000000F021020000003E44000000C087080000 - 00F810010000001F22000000E043040000007C88000000800F11000000F02102 - 0000003E44000000C08708000000F810010000001F22000000E043040000007C - 88000000800F11000000F021020000003E44000000C08708000000F810010000 - 001F22000000E043040000007CC873012021814C0200882F8989DEAB6D9EFB8D - D233D2ED1E0000F1213D23D3EE7987070380F73E240000DA223D23C3EE7987E7 - 02404626010000105F0800614827000000E24C5A3A01E0B83232B3EC1E0000F1 - C1A11980467BDB2A6D0900F2C66D7AF3503805000088370E9E0268751D6E6900 - 70A4E89B080000807813850BDC5B5C9F5B1200CC173ED24F68A8AFB7BB11D131 - BF8BDD0300203EE477ED66F72223A1BECEACBD21EBF3F1B4F9144066427AF517 - C3C8E8D1BB8FDD0300203E74EBD5CBEE4548466695F5BF813A1C18B7429B0340 - 5D5AA5FC1211D3AD576FBB0700407CE8D2A3A7DD8B9440ED3503408B8340B801 - C07CE1A3DEA4AEA63EA201A03B01000010473AE6E7ABB4B408DFE5B63664ED6D - 511868CD4580A2C16AD26FACAD8F6C00C8CCCA56ED73F3EC110000B1AD5BCFC8 - 1FD8D6D5D6CAE9F7401DB69AD4E4166BED458047D456554734000866010000F1 - A25BCF089FFFB7D45537597B43D6EA50C20900C12FA68FFE65DB50D75013F900 - C08580008038E14400A8ADAF92DA1BA8C3560B350B70DC20D0D25300E61BC88B - 37565755443C00F41F32D4EE010010DB060E1B6EF722A7E68B1980401D0EECF8 - 42700868566B4E01C8F648E2A8AEADAC949D913472DC78BB070040EC928BFF06 - 0C19668F22A7A6AAAAC2DA9847FF668D0E4BB8A700CC76D41BEE2FDB5D6A6D23 - 2ABF5B77D5891B02010062DC9051A3555272B23D8A9CF2F262A9BDC7D4E4A0D6 - AC706700CC1792FE9137DCB56DED2ED919490909096A4401B3000080D836625C - 81DD8BAC5D3B564BED0D2EFE9AD96F52730120F805F49B88236FB876D5E7110F - 0082D3000080583762AC33B56CCD8ACF8BACCD915A2CFB2CC14140048F8F68E9 - 458042DE40B7FAA50BDED95D5F5F1AD1E7018811639D494D000044833CDCAEDF - E021F62872F6ED29AD5BBEF8BDDD56576AAF59939B2CF6A11C2F00C88BE9A65F - FCA87DB5B55575070E259658FD88CAEB9CEFC8D2090000A261E8A8312A2929C9 - 1E454E634A42A9D45EAB1B5C9745A87D21B5740640A70C69923C02ED705969B1 - B58DB889D3A6DB3D000062CBA49367D8BDC83AF445CD3D5283AD66D6E6B0B524 - 00988942BF61E0CDF794EF7224009C7CFA99760F0080D891929AAA263B1400CA - F7EE94F3FF66009066D6E8B0841B00CC1794C27F5408282DDEE4C885803DFBF6 - 53FD1D387F02008093269C7052E0D9364E28DEBD556AAEAEC1BA26CB560B2B04 - B4240004BFD191E4B16EE5E79BADAD234E9E7596DD030020364C7370067B6DE1 - BFB7589B2335D86A666DD6FDE30AE722409359FC8F84800FDE7E767345F541B9 - 2B51C49D70CA698E5C440100801372DAB75763264EB64791555376E8F0DC779E - 93836EA9BFFA42403304989A0D022DBD08505E4C37793379F3BA8686DABABDBB - B6ACB5FA11D7AE43AE1A3B698A3D0200C0DB4E98691DB83A70F73F517C60CB5A - A9B956579A59F8750B5B3801C07C6169478EFC8D56BB79FDB255D6D611279F71 - B6DD0300C0DBA69FF925BB17799B37046A6DADD582EB70701090D6ACD6CE0098 - 2120F08BFCE7B37F391600269E74B2EACA3D0100001E3762DC78472F5EFFFC93 - 57A4D61EA9BD76338B7FD85A1200E40D7493379137D55310B59FCE7B715B55D5 - E103563FE2121313D505977DD51E0100E04D175E7E85DD8BBCAAB243073EFFF8 - A5ED56578ABF791A401F98EB1696704F019874F1D7ED8B5FA2A1A176D7CE0D8E - 5C0720A69D76064F08040078963CF75F66009C52B467E31AA9B55657177EB385 - AAD5CD0A7706405E48373365C89BCA2F23AD66F39A458E9D06900B2ACE9BFD15 - 7B040080B75C78F99581A7D93A65E386408DADB19AAEBB5283CD9A6CD6EAE36A - E9350042BFB84E1D92440289E483F79F5B666D1D33F3AC735487BC8EF6080000 - 6FE8DD7F802A987A823D72C687EF3DB7DCDA1CA9B956D37538ECA26F6A6900D0 - 0943A70D3304D4AC5AF2617149F196F556DF11726BC5732FB9CC1E0100E00DE7 - 5FF655EBE8BF35C7D4E129DAB9659DD458AB2B330066F1378FFE651BB6969C02 - D0CC00A093C891B66CC1BB9F5A5BC79C7EDE852ABF5B377B040080BB060C19A6 - A6CE38D51E3963F99239525B8FAAB756931A6C0600CDEC37A92571455E503779 - 339D3E8ECC00487BE16FBFF8CFBED212193B22352D4D7DFD869BEC110000EE91 - 73FE577FEF8781D56A4EA93F5852FBD25F7EF11FAB1BA8B356336700A4E900A0 - 5B585AF31BEB17D7A943CF0204424069F1E6FDFBF6152DB5FA8E1937796AE0DE - 000000B8E9B4732F50FD870CB547CED85CBC6B5949C9565966AF8B7FF0D1BFD0 - DBB0B57406406FE58D647BCC0C80D5AA3FFBF415474F03882BBF7DA34A4B4BB7 - 4700004497DCF3FF92ABAFB547CE59F0EF57FE6D6DAAAD166A0640D7644DD7EA - E36AE90C801902F49B4BD3E72302BFDCABCF3FB8ACB2EAF041ABEF984E5DBAAA - 8BAFF8BA3D020020BA2EBFEEDB2A3BA79D3D7286DC60EFD5BF3F242BEC74F1D7 - F5363804E816B6D69E02D04D5287FE258ECC025457571C5EBF66C102ABEFA8B3 - BF7C89EAD1A7AF3D0200203A068F18A5A69FE1FCE3EA37AC5EB0C0AAA9F2B45D - 1D00CCC2AF67E35B54F8B5B6CC00E80020BF843EFA976D609AE28D171F7DBFBC - BCBC55BF54B8929353D4B76FFD89634F5D020020587A4686FAD62DB73BBAEC4F - 480D7DEDA5473FB0BA525FCD5300526B43058016D5DCD6FEF6FA0DE5CD750890 - 54A20340F5FC4F5EDEBABF7C87A317030AB9F8E2ABD77FD71E0100E0AC6B6FBA - 352A0FA83BB077C712AB966EB1BA81BA6A35A9B37A0640D75F5D8F5B54FC456B - 4F0108FDC6F28BE800A0D34995D5AA5FFDC7C3AF5B5BC79D71C1C56AD2B4E9F6 - 080000679CFAA5F3D409A79C668F9CF5F23F1F941AAA6B6AF0D1BF34A9C1528B - 5BA52D0140E804A203803E1510F885E7BEF3ECFA6DDBD7AEB4FA8E927598D7DD - FC63D5B92B3708020038A357BFFEEACAEF7CCF1E396BDBB6352B3F7AF7B90D56 - B7A9E2AFEBAF16951900216F64B6E000A0A72BAADE7EE9D1A8CC02646567ABEF - DD7537D7030000224E969D7FEFCEBB0337A38B86375F0CD4CEC06CBADD7400D0 - A70082EB708BB5F50A065DFCCD59007D2A201000DE7AE5FF56EFDCB6C9B1E703 - 98E4768C577EEB067B040040645C73D32D515B7556B473FDBA39FF7A5C9EFC27 - 0140CF00E8FA2AB556B756157E2DC9DEB685840879FEA134E94B93D7952687E3 - C9A9A9E91563279E3ED5EA3B6EC0D0E1B20E51AD2D5C61EF0100A0F52EBBE67A - 75FAF917DA23E7BDF8FC037F5E5BF8E956AB7BC86A87AD566937F33480147F39 - F86EF50C405B02802EFAC22CFED23F2A00AC59FDD9FEE9B3BE3E2627A77DAE35 - 76DCC882096A4F49B1DABA212A130F00803875F6C597A82F7FFD1B816BCDA2A1 - 64F7A64D0FFF7CF63F5563A3DC4C4F8ABF0E003213609E0230CFFFB74A5B0280 - D021407F32B20D9E0548B2FE20C9870F96EF1E3C62DAB48C8C4CC73F45F98B2A - 9872A2DAB2619D2ADAB1DDDE0B0040F84E3CE57475CD4D373BBEDE5F2B2BDBDB - F8D73FDEF67F5B362EDB610D9B3AFA9700A08FFC45AB4F03B4F54FA5A71EE497 - D14D92897931A0A496CAB9EFFC795DD1F6151F5BFDA8484A4A5237DEF9F3C0DD - 9A0000688951E327AAEB6F75FE663FA65DDB0AE7CD7DEF2FEBACAE3EF76F5EFC - A78FFA75D3F5B7D522110034E9CB2FA82F54382A00487BEC81AB5FDC77F890A4 - 9AA890AB367F74DF83AA77FF01F61E00009A271794FFE067F705EE361B2D9595 - 870EFEF6C1AB5F94AEDDCC00A0EBAA3EF7AFB52900B4F51440307D0AC03C1520 - 2D703DC0E143E50D79795D6B860C9F3CD61A47852CD9983AF354B566C572B5B7 - B4C4DE0B00C0B1E41AB25BEFFFA5CAC8CCB4F744C79C571F7FFEE30F9E2FB4BA - 72906C4EFF4B10901020C55FCF0248E16F53F117910A0052F075D3740890F7D0 - DBA4A5F3DF299D79C615C3B37372F3AC7154480838E1D4D3D4D68D1B5431D704 - 0000429832FD14F5FD9FDDABD2D2A3FBA8F9E25D9B36DC7DEB397FB36ABA5CF8 - D7DC95FFBAF80BCF0400930E013A00C8D608018D89A5253B8A4F987ECAB48404 - E72F08D4929393D554EB2F776FC9EE40100000409B75FE45EABA9B6F0BD48A68 - 6A68D8D3F0BB876FFCDDCE6DAB765A437DF42F4FFFD3C55F9F0288D8B97F2D92 - 01C02CFCA19A040069C93BB7ADAE183A62664EB71E83A27A723E3131514D3871 - 9AAAADE13E0100802FFCCF9557ABCBAEFD56A04644DB92F9F3DEFDDB53B7CFB5 - BA52F8F5D23F09007AEADF2CFED284E702809042AF852AFED2E43D933EFFF4D5 - 2DD34EFBEAE8ECECF61DAC71D4C81241B9BA33C77ADB158B16A8C606FD790200 - FC242525455DF3835BD497BE7C49A03644DBEEDDDBB7FEE40733FE585F5B73C0 - 1AEAA37FF302C050EBFE2352FC855301C0DC9A4D078044EB0F9CB079C3924DA3 - 675E784266727AF42EB5B40D1C3A5C8D9938D90A010B5545F4162600003C401E - E7FBE3077FADC64D8ECA4D6A8FB1A77A7FE5A33FF9F2AF8B76AE2FB6865284E4 - C85F1FFD9BC55F9A39EDEFD90020CCE2AF9901E0C84C4069F196EAACE4F47D23 - C7CE186F8DA32EAF5367357DD659AA68C736B56B9BDC75110010EF6465D82DF7 - 3DA83A77E96AEF89BE7F3DF7E0531FBEF3E7E6AEFA9716F10BFF4C4E04005370 - 18D041E04818285C3A77EFD091D33A74EDDE3F3A4F590812582638E35495D3AE - 9D5AB17821A70400204EC994FF5537DEA4667FE39B2A2535D5DE1B7D4B17BEF7 - D1EF1EBAEA4DAB6B4EFDEB0BFFCCA37F29483A00E816314E0580E0822F745FB7 - 23B301F33F7965D3B4D32F1B9D95D5A1BD358E3A39F73370D8083576D214B566 - F95275F0C07EFB2B008078D0B36F3F75EB2F1E5605534F0CFC9BEF969292ADDB - 7F72E3CCDFD7D5554BA1093EFAD7C55F9A147E990170E4E85F38390310EA13D6 - FB74089096687D106AEBC6159B46CD387FAA1BD70368724AE09473CE0FAC015D - B77285AAAF97CF1E0010ABE4DFF3D9DFB84E5DFFA3DB555EE7CEF65E77C879FF - C77E36FB373BB7AF95F3FE72C5BFBEEA3FD4D4BFA3C55F387D0A4033C3C051C5 - 5FF74B8A375725D6D7978E1E376E7C4242A6EC77853C4360E8A831EAA4D366A9 - 92A25DAA68FB36FB2B0080583269DA7475CB7D0F076677DD58E2676A68D853FF - C2D3F7FF69DEBB7F5D690DCD1BFE984BFEA4393EF5AF393D0320CDA4C7E6D78E - 8480B5859F966566E61F1C3AF2843181AFB8282B3B27F024A87E8387AAF5AB0A - 592900003122BF5B77F59DDBEF52177DE56B2A332BCBDEEBAE575F78FC2FFF78 - FAA79F5A5DB3F84BD34BFE74F1D701C091A26F8AC60C8059F483E920A05BE2D2 - 85EF16E777EDD7D86FE0D8A1D6D875DD7BF556A79E739EF51F5176E00E82D555 - F2770500F09A0E791D0337F5B9FE96DB55CF3EAE5C571ED2FB739E7DF94FBFF9 - D6BB56574FFB9BE7FDF5D1BF14FE5057FD3B16044215E5483BAAC05B4D42879C - E79726375CCEB05AB6DD72ACD64EDA4FEE7F7376C1E4B34EB1FA9E51535DAD3E - 78F335F5AFBFFF5595F1602100F0844EF95DD479B3BFA2669E758EAB57F787B2 - F0F337DEBFF7B6739EB7BA52F8E5AA7F6952FC2504E800A02FFC330380A3C55F - 442300087DF245B6660890BFA934ABC91C8D3C7A49428004002B0824B6BFFFD1 - 4FBE3164D4D489D6D853EAEA6AD5BC396FAB579FFF8BDABD4B6EDF0C0088B6AE - 3D7AAA0B2EBF2270CD56341FDD1BAEB52B3E5B70EB0D273D61D574B9E25F0ABF - 3EFA97F3FE1202F4D4BF59FCA509BD754CB402809E01103A04C8131774080839 - 13909C96D1FE57BF5FF8DD5E7D870FB7C69E23AB04E67FFC911506DE54CB16FC - 4735700F010070945CCC3766D21435E38CB3D584934E0E5CB8ED45DB36AD5879 - D3B726FFB6AEBA32B8F89B47FEBAF89B17FE09C78FFE45B40280D021409A1902 - A449009099000901321B2001408240FB76ED3AE7DDF3C8DCEBBD1A02B47D657B - D5A71FBCA7E6BDF396DAB261BDBD170010097D070D5627CF3A33707176FBE83D - 4DBE55B66F59B5EA8E1B673C7EE040E95E6B68167F7DDE5F8EFC25009817FD49 - 8BCAD4BF16CD0020824380443769320BA06702E454C051A7036426E09E87DEFF - BA174F0784B26DD3062B08CC51F33F9E1B584A08006839B99A7FD2B41981C2DF - BB7F541F1EDB6A32ED7FC7CDA73E6D1FF9EBF3FE7ADA3F78C99F5EEF1FF5E22F - A21D0084147E6186007D3A406601F4E980E06B02DADDFE8BD7FE77C294B3675A - E398B16777B15AB964B12A5CB248152E5EA8CAF7EEB1BF020030E576ECA44616 - 4C5023C78D5723C615A84E2EDEABBF35167DFAFA07F7DC7EFE0B563DD747FD66 - F1D7D3FEE6AD7E83AFFAD7A700A2C28D00205A1A02E49440A0DD78DBB367CF98 - F5D5F3AD7ECC696C6C54C53B770482C0C635ABD5AEEDDB02371AE2D6C300FC26 - A75D7BD5AD57EFC052EB014387050ABF5CD4E7E66D7ADBE283B7FFFCCA630F7C - ED2DAB2B855F37CF167FE1D6272DEFABDF5BB6120024084808304F079821E048 - 10B8F2BA874E3EEF7FBF76596262271D24629A040009023BB76D0D6C4B7717AB - AA8A0A5569B5AACA2FB6BA2F4B1101C08B64095E4666A6D5B202DBF40CE95B5B - ABC993F7BAF7EE1328F852F82500C403B9C3DFBFFEF9CCF37FFEC3CDF3ACA159 - F8838BBF9EF6D7E7FC2500E8E21FD5A97FCDCDA865860029E4C13301C121402E - 0ED42120FBC24B7E3461F6A5B77D2DA54307F91EDF9095063CB11080E75847EE - 5EBD22DF29B5FBF6553DFFF75F3CF3F23F1E5C680DA5E0EBE22F17FB0517FFE0 - 237FFD0FB92BC55FB81900447321409A793AE098D98051E366F6B9E196A7AEEE - D4A56F4F6B0C004054ECD9BD65C7A30F5CF5E48A251F6EB586C147FDD2A4F0EB - 697F29FC9E2AFEC22B714D4240F087A03F98504D3496146FA978EF8DA7160D18 - 3A21BB6BF7017DECFD00003866E9A2773FBEE3C6994F184FF5D3C5BFA9237F29 - FC9E2AFEC24BF335C12120B86F36F90003DBBABA9AFA8FDEF9CB9A0495583AB8 - EF986149E9E9327300004044D5ECDB57F5C2DFEFFFCBEF1EFAC65B56ED31D7F7 - CB56AFF1D747FDE6B4BF2EFC9E29FEC26B276C7408303F18DDD7FB75F1D7FD40 - 2B5C36B778F59ACF0B4716CCEC9F95D5213EAE2E0100784249C9D6EDF7FFEC7F - 7F37F79D670BADA1147C5DFCA5F0EB237F5DFCA5F04B00308FFC836B99EBBC78 - C586BE26C0A43FB0E0261FAA7CB8817EE9EEAD87DF7FE3C9C57D068C49EFDA3D - B74F424266A8D70200202C0D0D7B1A16FD67EEDCBBBE7FEA53453BD79B53FEFA - A8DF9CF2378FFC3D5DFC8517038068AA70EB0F4F9A3EFA97BEFE90E59440EDC7 - EFFF6DED964D1B56F51B3CBE67BB76791DACFD0000B4C88E1D1BB6FCDFC337FC - E1EF4FFFE463ABB6C80D5B74E197ADBED8AFA92BFD3D5DFC85570380080E01FA - C393A63F541D02F4F84810D8B96DCD81B75EFEDDA2CCCC7607FA741BD52F39C3 - 63CF880400785255D9A1C3AFFFEBB72FFEE2F6F3FEB973DBEA226B9759F8CD29 - 7F29FE72D4AFA7FD83AFF497BA2474EDF214AF4F91EB1BFDC8EF297DD94A6891 - 26F70AD0F70BD0CB05F59241B967C091FB0774E9D63FEFDB373D717E8F7EA3A7 - E4E575F4FA9F1900E082B2B2BD8DDB362FFBFCF7BFBCE6D5DD459BCAAC5D66A1 - 97BE3EDA0F9EEE37A7FCF5C1A92EF8D2F7242FCF0008F90075C136D393F4839B - 4E5CD2F45F84F4EB0E1F2AAFFEF09D3FAF2A2FDDB16EE0A0093DB272B8481000 - F05FA5BBB66E7BF6F73F7CEAD93FDEFCA15533CAAD5DFA885FB75047FDE6F97E - B3066966DF7362E568587E4FFDBBCA56DF3048B6FAA641E66C40F00D8474CBB4 - 7E24F3DC2F7F7FD459175C3FAB5BF701FDAC7D00009F2ADAB961F35BAF3EFECE - 6B2FFC668555AFCDF3FA66D347FD52F0CD73FD7A899F0E0072302AF481A9A7C5 - 4A0010A142806CF529011D04240498A705F4564E079861207DD6B9D70D3BE7E2 - 1B67F5EA336C90350600F8C4D64D85EBDE78F9B177DE7DFD8F6BACA11477B3E0 - 4B08D0D3FCE674BF345DF8F54CB39E818EA9E22F62290068FABA00111C027410 - D0B301C161E048F137C6E9279F3A7BE0B997DE72FAC0816346586300409CDAB0 - 61D9CAD7FEF1D03BF3DEFBEB466BA80BBF6CCD10105CF4CDA37E5DF8CDE2AF79 - 7ACA3F582C060021BFB7FEDD651B2A084808089E11D04120544B9B70E2057DCF - 39FF5B270D1A35656C667A8ECC180000625C45D5C18AF52B3E5FFAE62BBFFD78 - FEA7FF927BF7EB23FB504DBE167CC46F5EE46716FE983BEA37C56A0010660810 - 660890BE9E0D686A46408701331404FAA9195919E75C78E3A813A65F3CB16FFF - 9EC39292F3E5B5000031A2BEAEA47ECBA61DAB3FFDE8C505AFBFFCC88A9ACAC3 - E691BD59EC43157DF3885F1FF54BC10F75D41F93C55FC47200D0CC5302F2E7D1 - 41408780E02060860129F8B2D5C5DF6C81FDF9DDFAB53FFFCB3F185F3079D6F8 - AEDD07F3C02100F0B0E25DEBB62E9CFFEEC2D7FEF9CBC525459BE5E63D52E0A5 - A0EB22AF9BB9DF2CFAC1855F177F5DF8CD626F068198130F01406B2A08E81020 - 631D0242CD0A48D385DF0C017A9B327CF4C95D4F9A79C9888143A60CECD177D0 - 80CC0C4E1300809B2A2A0F56ECDCB27AE386B50B377CF2E13F56AE5A3E4F6ED7 - 2B45DC2CEEBAE807177CDD74D1D75B7DB46F1EF1C74DE1D7E2290008F9F3E83F - 93DEEA9900330C483383806C750890B12EFAA19A7CDD6A89A9934E3AAFE7C4A9 - E70E1E38A46050F78E7DFBA676E8203309000087C813F9B6EDDDBA79CBDA451B - 167CF6DABAF99FFC6B87558F7511D7853F5493C26F7EDD2CF8B2D5055F177DD9 - EA42AF8BBF6CCD2010D3E22D0068A1660344A820D05418907E50D13FAAAF5BE0 - E7929353534F987E71EF41234FECD5B56BBFFCCEF9BDF233F3BA76EAD82E2137 - 31B193F9FB00008E431EC2B3F74063794559F19ED292ED25C5C59B4BD617FE7B - FBA71FBDB8ADAEAE460AB859BCCDA6BFA6FB7A7CBCA26F167E119747FDA6780D - 005A384140F6C9560AB9DE0687013D3EA6F0076D753BF27AA9E99929C3479EDC - 79E0D0095D7AF61C9C9FD7B95B5E4A46765A7A6A7A7A4A62665A7266525A5A72 - 4E6A4A5A5A5A636A5D6ACD2195CAED8A01C41BB9CD6E6AB6AA49A849AEA9ADB6 - D41DACA9ABA8AFAE6DA8A8AEAAA9AAAAAD3C545D565A54B663C7BA920D6B16EE - 5E5538AFB4A6AA42176929D87AAB9B59C8F5D66CB22FB8E84B335F4F8ABA6C7D - 55F8353F141AF9339A7F4EE99B41406FA5E93070A480DB5B29F0663F78ABBFA6 - 9B7E0DB3C96BEBA67F07732BAC6D62626A6AAAEC0380B85153536315D206B3B8 - CA568FCDAD6E5290839B2EE2C14D1778BD95EF35FB7A2BCD7C6DA1B7FA77D0A4 - 6F8EE38E2E3C7E611656F9B39B4DBE66B650455C1777B3D0EBAD0E024D35790F - D9CA6BEBF733B742B6BA2FCC3E00C4A2A68AAA6C75D135B75290A5AF8B74A826 - C55DB666810F55ECCD26AF6D36790FB369F2355FF06B8191A2ABE9CFA0A9C2AC - 8BB62EE4665F9A0400D9A7B7C1DF63EED3CD7C7DDD17D20FB5058058A58B6BF0 - D62CC2BAAF8BB3345DB4CD02AEB7CD15F9E07EF0EBEBAD90BEA6F7F986DF0B8C - 2EBC9A7C1E660B2ED6B295626EF6838B7BA87D66335F2F5433058F0120D69845 - 56C83854338B73A86616F650FBE467CD7EF0D66C26F9BA2F5160BED054F1359B - 146D21C55D842AEA4DED93BEFC9C7EAD504D93EF0780786416DBE0A26C3629E4 - B295EF370BB9D982F709F939A1BF6E3653A87DBE63161E7C21B8200BBDCFFC9A - 59E485EE076F851E0737A1BF47E87DC2EC03402C338BADD9D7855B1764B3E9AF - E9621EBC15E63E217DB39942EDF3358A4CF3CCE2ACE9CF4CB6BA09FDBD3236FB - C1DF17DCD75BDD078078671663731BDC37F705177E11FC3D7A6BD2DF8B20149D - 9609271088E6F689E65E0700E2DDF10AB559D0838B7BA87D260A7E98283A6D13 - AA900BF3730D15009AFADC9BFBFB68EE6B00E025A10AB3D6D4D7CCFDA10A7C53 - 3F47C16F258A4A64C9E779BCCFB4B59F397F5700624553C5FA788EF773F2F5D6 - BE36825054A2279C7000007E4791070000000000000000000000000000000000 + 549849444154785EEDDD077C5D65F9C0F1377BB72549D3A67BEF996EA0B4EC21 + 5354282A28531CA02282822032643900FDE36009282AB2649659868074B7E9DE + 3BCDE84A9B3DFEE7B99CB7BEBDBD496F927BEE39F79EDFF7F3797DDFF724B937 + BDC53ECF79D749508826F9BCF9CC0120B466BB200A0846919768D7ADE1730780 + 438513F89BEC1A114020EA989682BDF9B9EA76F067DDD267CFDF098078D55290 + 0FBEAEFBE6F5967E96A4A09D08366D132AE09B9FA1F9757D3DD435A9437DF6A1 + AE01403C0915C8E55AA8A0AF837BA86B22D46B9110848980D3BA50815AF7CDAF + E9B6794D077EE99B6DF37B742DCCEB0010AFCC602F745B5FD77D09E4665B98DF + A3BF16DC36995F431002CEE14205627D4D5F973A38C087AACD127C4DE85ABF96 + D0D75A72A4AF03805B8E146CCDAF07DFDDEB602D4507FF50D7826B61B6A5D6C5 + 14EA9AAF114CFEC70CC2423E1BB3E8AFEBB60EE8BA1D5CF4D75AAA45705B93B6 + D9078058161C7C753B54106FAD0E55CCAF495BE8B6594CF275DFF37B90D1C157 + D39F4770A04EB28AEE9B45AE07B7CD6BBA1FEA6785F91ED29622740D00F14207 + 61332007076DB3C8F5C6A06BBA6F5E0FFE1E29FA6785EE4B2DF4FB69FABAEFF8 + 35D0E8A0AB9981586AE99B815BDA6660D7FD239544959C9C7CCCF4F30B468D9D + D9B77B8F417D738EEA5A98969A96959C9C9A999C9C949998929191DA9C9C9998 + 9E94D1989C9691D95C9B9150579B6CFD2C00C48DE6D4B486AA84B4EAA486DAEA + A69AC6EABA8486AAA6FAEAEA8686C6AA8686BAAADABADA0395BBCB76946C5FBB + A978F19C4DFFF9F0B952D5D0D060FDA8046809E6E114F95EF3FBA5AD93013309 + D0D74DFA6BBEE1B704400779A1FFEC3AE0EBFAF3C07D7830D74582B3AE0FB6C5 + A9E77EB7FFC851D387E577ED6505FABC3ED9D95D7A653426F54CEAD225DDFA1E + 0040981AF7ECA9A94E6ADCB67FFF9EAD95BB2B3697976DDDB4ACF8C395B35FFC + DD062B2F90C4408A04F6E0B60EFEC14527063A113013023319F04D22E0970420 + 38F0EBBE6E4B10975AB70F09EE769D62B7759D7CE2E9DFE83DEDB82F4FECD967 + D884ACFC1E637352D373ADEB00008754D6D5EC3A50B67DD1B62D2B177CF2C1B3 + F3DE79FD892DD6659D04D41BB5047B3331D06D09F03A19D0898030DB22EE1381 + 784F005A0AFC12D0CDE0AF4B4BC15EEAD48953BE5070E299974FEDD577F884AE + F9BDC7A6656476B3AE03005C525B5DB5B3AC7CCBE2AD9B56CC7FE795473E9DF7 + DF574BADCB75563193815049812E3AF04B5BF8261188D704E048815F6A1DFC75 + 809776AAD197764A8F1E8373BE7AC55D33878D9E766A5373EA84FCFCAEF1FA99 + 01404C2B2F2F6B4E4CA89BBF72E927B3FFFAE79FCED9BE7D4DA5755902BF9910 + 485B82BDEEEB24406A5F2502F116CCE4CFA3FF4CBA9640AF8B0EFC12E4759160 + AF8B04FDD4E4E4F4F44BBE75EFC471934F39ADB0A0FBF4A4B4CE19D67500408C + 68ACDD5BBDA3B4E4C3459FBDF1C65FFE70E3BC86869A1AEBB2047F9D0CE82249 + 802E3A11905A17A11301A9CDA420A6C5530220815D933F97F4A50EBEDB0F19F4 + AD9276FCA917F739FD8BD79C5BD867F849D9E9995DAD6B008018B7BFA6AA6CC7 + E6156FBFFEFC832FBE37FBC9CDD6A55AABB4960C048F0A483BEE4603E2210190 + 3F83FE7398815F077D5D74E0D701FF60E03FE38BDF1B74C679D75CDCA367E713 + 1212BA9A890400204E343797356DDFB6F7DDD75E78F0C9D79E7F68AD75C94C04 + CC84402701BAE804C04C04A43693829813CB098019F88519F45BBAE30F047C5D + 7FF9A29F8E3EFEAC2BBE9E9A92734C5E5E5E2C7F1600803055545434D7D557FE + E79D97FFF4E4737FFB65B175492702BA6E6D4420783420661381580D7A66F0D7 + 815F6AF38E5F02BE047FF36E5FF6E3A77DED8ABB27CC3CF96B17E775ED39C9EA + 03007CAAA27CDB6773663FF5E4D38FFC6481D59504C05C2B204512004906CC11 + 0109F8313F1A108B09803944AF83BFBEEB6FE98E5F4AFA59E77F7FE87917DD70 + ED51B9DDC75B7D000002CACB4A16BCF88F5F3EF8EA730FAEB2BA92044832D0D2 + 88404BA301D28F19B19400C8EFAA7F5F1DF8A50EBEEB37EFF80381BF57BF91B9 + 3FF8C99397F51FDCFB8B09095DE5FB00003844737359E3FAD55B9EFBD59D5F7D + 74C79695BBAD4B3A11304704E266342056128050C15FDFF99B77FD66E0CF50C9 + C919D75EFFF849D38EFBE277D2D233F3AD6B0000B4AAB6A6AAFC930F9EFFFD03 + F77DF36DD5D0506D5D92622602A1D607C45C12100B0980047A2DF8AE3F54E097 + 79FE8C134FBB74E005DFFCC5F7BB16F49C68F501006893B2D26DF3FEF1F82DBF + 7DE78DC7D6595D49028247047422103C1A203C9F04783D01D0C15FDFF59BC15F + 02BF24007A8E3F70D79F9E9E9D75EBFDB32F1DD267D045893905F23D0000B44B + 536569FDEACD6BFF76DB8F4E7DACA666FF01EB921E0DD0451200735A4027013A + F8EB84C07324907A5570F097A203BFBEEB0FDCED5B25D32A5993A79DDDF7E7F7 + BF714FAFBE234E4948CBF2F29F0D0010032496E417F41E77D2E9DF98B875E3AA + 253BB6AD915100894BBA08DD0E75C7DFD275D7793148CA87151CFCE5F7D473FD + 870CF55B45827FF695D7FC6EC657AFBCE3BEAC9CDC3E561F00808849CFCCE936 + 6EEA79A7E6E777DFBAE0B3D7775A9774D0D74533DB5AA86BAEF35A02607E9052 + EBE0AF1380FF2DF0B3837F5656E7CE77FCF683AB078F3CEEDA9C9CCE3C771F00 + E088B4B494F4BC8281271E33E3FCAC4FDE7F76597D7DADDCD99B71AB35E17C4F + 54792901303F44A9CDE0AF87FC25E84B90FF7CC8FFD8F3FAFFECBED9F7F4EA33 + E484CCCC4CCF7DB80080F822B126AF6BCF51279C7EE9841D9B572FDEB67595AC + 093063971EEE6F693AC033BC9200C887627E803AF09B77FDFACE3F10FC2FBEEA + 9EA3BF71F5DDBFCECEEAD2DBEA03001035E9195905538F3BE7B48CCCCEEB17CF + 7FBBD4BA6406F7E0402F7D9D10047FCD355EF845E477D0BF87DCF5EB22C15FDF + F99BC3FE59DFBBE1F193671E73C64FE365957F6D6D8D2AD9BA556DDFB2596DDF + BC49959796A8EA0355AABABA4AD55459B5556AAA0FD875B56A6EF2E47A12003E + 969494A4D2323254466666A0A467D8B55532B3B255B7C21EAAB0771FD5C32ADD + 7AF654C9C971F1CFB76AACDC593FE7A3D7EEFCDDBD97BE6D75F52E01F3DC00BD + 55509F15E0996D826E2700470AFEFACE5F86FDB3AC9279E31D2F7D69E0D069D7 + E4E77775FB776F975D65A5AA78E17CB57ED54AB5CD0AF63BACA05F5E2AEB4900 + C01F12131355819D10F4ECD3570D1E3E528D1857A4723A77B6BF23B694979735 + AF5BF5C98377DF7CCEBFAC6E9555241190DD02523C9B04B81944CDE02FB50CF9 + 07077FBDD25F4EF5CBB9F357EF5C3A62CC71175BFD98B16FCF1EB57CF102B56C + C17CB5D40AFC255BB7D85F010098FA0E1CA4468E9FA0465965D898B181918358 + 52BCF883277FF6A3131F530D0D9556578F04E8C383CC24409F17205C4B02DC4A + 00DA12FC339392D23ADDF7C7CF7ED87FE09833ADBEE7EDDCBE4D7DF8D61BEAB3 + 0F3F509BD7CB23A701006D919090A8060E1DA6A6CE3C5E1D73E229EAA8BCD838 + CD7DE3BA252FFFE8AAC9BF696CACDD67756534C0B349805B0980047B21EF2F6D + BDE0EFB0E0DFB973C151F7FCDFA7B774EBD17FBAD5F7AC039595EAD3F7DF551F + BCF9865A55BCC4BE0A00E8284906C64C9CA4A69F7C9A9A74EC7495962EE1C1BB + 4AB6AFFDF0C66F1FF38BBD7B4BE581422D250192004822A003BF9E16881A3712 + 80D682BFDEEA1708FE6969599D7EF3C8C25F14F61A7CACD5F79CE6E626B5E8B3 + FFAAF7DF784DCDFFF843555F2F7FAF0000A7A46764A829338E57334FFB821A36 + 7AAC951CB8751FDB3A4902BE7BF1A85B834602A4043F43C0B52420DA9F9CBC9F + 2E3AF84B91C0AF57FB07B6F9252525E5DCF7C705D77971D8BFA9A9497D32E71D + F5E25F9F545B36ACB7AF0200A269C88851EABCAF5DA2C64D99E6C94460C3BA25 + AF5C7F55D1AF1A1B1B654D802C0C944440EF0E90220980990444752A209A9F58 + 70F0972277FE52CC617F59ED9F7DFB0373AE183566C6D7ACB6673434D4AB0FDF + 9AAD5E7AE66916F3018047F41B3C449DF7D54BD4E4E9C705A60BBC64D9A20F9E + BAF907331EB19AFBADA2B709EAE9001905D06B02A29E04C8DD7734E8C02F8E18 + FC6FBCE3C52F174D3AF50AABED0912F8DF7EF925F5C02F6E092CEEDBBF4F4674 + 00005EB0675785FA74CEBBEAD3F7DF0BEC1CE8DD7F806746040ABAF71DDB6FE0 + B8CAFFBCF70F59116E0678297AC85F077CA9A3F68B472B01D029990EFEF2BE7A + CE5F270081E0FF9D1F3F7AEA883127FD283333CB137F7BCB16CE57F7DEF463F5 + C19BAFABAA0392BC0100BCA872EF1E35F7A3F7D5E2CFFEABFA0D1EEA999D03E9 + 597993FBF41BBA6DEEC7FFDE6C7575E03783BE6E0B9D0498D71C118D0440FE20 + BAE8E0AF17FD49F00F2CF8B34AF6D7AEB87BDA19275F706BD65105D14A4C5AB4 + A7A242FDF9D7F7AAA7FFF87BEB3FAABDF6550080D7ED2A2F53EFBEFAB2DA6725 + 0443468E56A9A972AFE91EB9A1EDD7BDD7D1A9D9F9AB972C785B4E7E3387FBA3 + 3EF4AF391D688F14FCE5CE3F10FC271F7B6EBFAF5F7DCFFDA9995D2421704D63 + 63A37AF3C5E7D4AF6EFDA95ABF7AA57D1500105B9AD5BA952BD49CD75F555D72 + F3549F01035D9D164848CB4AEA3FB468DAC6754B3FDCB175B50C270707FFA873 + FAD3081EFA97C07F58F0CFCAEAD4E5A127563F70547EB7E156DF359BD7AF53FF + 77F7ED6AE3DA35F61500403C18316EBCFAF60D37ABFC6EDDED2BEED8B36BE7F2 + EF5E3CE4FB070EECDB63756561A0EC0C30CF089022898114A1EB88737204C0BC + FB97F7D177FF7ADEFFE0D0FFEDBF99F3AD5EFD86CDB0DAAE686E6E0E6489BFBA + E5276A5759997D1500102FCA4A4AD4FB6FBEAE7AF5EB1F7820915BD233B2BB8E + 183B33FD9DD71E5D6475F50840702D1C1F15702A0130837FABF3FE977FF7C119 + D3669CFF5DABED0A79BADE1FEFBB4BBDF0F45F5453A36CC70400C4A3FABA3AF5 + F1BB6F059EAC3A727C914A4C74F21EB86509499923F2F30BD72F9C3B7B9BD595 + A06F1609FC8E077FE1D49FDE1CFA97C02FEF63AEF80F04FFA249A7F7BBF8EABB + EF4A4A4A91EB5127E7F4DF79FDF7D5B2450BEC2B008078B76679B15A32EF3335 + 66E26495991DFD070E65666626F41F3C66E2FA550B3FDAB17DADAC07080EFEC1 + 456EA6A58E28271200F3EE5F5E5F27019200E8E09F9595D5A9D3ADF7CFBE333B + 27AFB7D58FBA396FBCAAEEFFD94FD4DEDDBBEC2B0000BF909D02EFCF7E4DF5E9 + 3F5015F68A7E18921BDFD1453387BDF3EA23EFD5D7D7EAD300CDA2037EC403BF + 16E904C00CFEE6D07FF0BC7FD62DF7BF7579DFFEA34EB4DA5125F3FDCF3FF584 + 7AF2F70F30E40F003EF6F994C03B2AAFA040F51F3CC4BE1A3D19999D0A868D3C + 36F1DD371E9727C805077F33097044A4130073E8DFBCF33FE4EE7FE669970C3D + EEB85937A46765E9EF8F0A39C3FF89DFFD56BDFCF7BFDA570000FED6ACE67FFC + 914A494D5543478D89FA56C1BCAC8CE1A5BBCB3ED9B876B1EC0A90A01FFC6C00 + 690B69CB2F17B1A420920940F0DDBF047FF3EE5F827F66525252A79FDCF1E2CD + 79053D7A58FDA89127F5FDEECEDB02433E0000988A17CC53D5070EA831932645 + 350990F301060D2AEAF3DA8B0FBDDFDCDCAC9F0B604E09E84420E2229900E8BB + 79794D5D8287FEB3BF73DD23A78E1A3FF37CAB1D35D5550702C7F92EFCF463FB + 0A0000875AB36299DAB97D9B2A9A764C547708646677EE9E9BDF538E0ADE6875 + 43AD07D0223A0A10A93F61F0DDBF14F3C01F4900B27AF51DDEF5E26F3D785B5A + 5A8AF4A34282FFEDD75DA356172FB5AF0000109A1C082787C14D9D71BC950444 + 6F96BA6BB7A1233EFDE85F6FEDDF57218702B5B42830A22301914A0082EFFECD + B9FF40F0B74ACE4DBF7CF5AA1EBDFA8DB7DA5121C3FE72E74FF00700846BC7D6 + 2DAA7CE74E35F19863A3361D9096969A3164F894F4B75E7D44F6A54B02A08B99 + 0088888D0244220108BEFB37E7FE0F2EFC3BED9CAB479D72E679D726244467E1 + 9F2CF87BE8CE9F33EC0F0068B34DEBD6AABADADAC05901D1929B9F3A78F7AECA + B9EB56CFABB0BAC149803013810E8B440220015D077FF3EE5F82BF94C0637E7F + 72FB8B376766758FCA21CCB2D5EF89877EA33E98FDBA7D050080B659BD6CA94A + CFC80C3C51301AE406B9EFA0F17D5F79F6D7EF585D09FC7A5160F02880D6A164 + A0A30940A8BB7F99FBD743FF8195FFB3BEF18B29138F3EF322AB1D15B2CFFFE5 + 7FB0D50F00D031726260B71EBD54DF8183EC2BCECACAEA54909098B8AC78D19C + 1D565782BE2401920C48B09712B151808E0EC74BE017F23ABA4852A193804022 + 70FCC997CCB2EAA878EFF557D4B34F3C62F70000E8983FDC7B67609B60B4CC38 + E51B1233E5265A62A82CA697982AB1D58CB542C7E076D12FD21EFA8DF50880FC + 72E6144020F89F7DE1F5A3BAF6E833D66A3B4EE66C1EFBEDFD760F00808E6B6C + 6C540FDEF173B5A742A6E69DD7BD7B9F71677FF9BA515653A6D1753C95D8AAE3 + AC8EBB42D76DD69104403333123D05A0B700A69D72C695175AB5E3E4E94EBFBD + EDE6C0CA7F00002269DF9EDD8185E5B2C03C1A4E39EB5B123B2501D023005224 + C69A31B7432493680F9D7DE822AF63067E59F89775F299578E38F1B44BAEB0DA + 8E92457F7FB8EF976AF9E285F615000022ABAC64874A48485423C639BF9BBD53 + E7DC9EBBCAB67FBA7ECD02BD2340EE6EF58E00736740BB75348390E02FAFA187 + 252401D0C315E9677FE9071758B5E3DE7BED15F59F77DEB47B000038E3B9271F + 53CB16CEB77BCE3AEB821F4A0C35A70124C6EA782BB1576270BBB5370130EFFE + E535A4983B00D28E3DFEC27EE95979C75A6D47C933FD1F7FE8D7760F0000E7C8 + 88F34377DE169547C9F7EA9D77ECF41366F5B59A32B22EB155E2AC390D60C6E2 + 366B4F0260BE914E000E1B01F8C2F9D79E919FDFB55DBF54B86461C6EFEEBA3D + F048470000A261CFAE0AF5C86F9C5F709E90D035F18C2F7EEF0B56538F004869 + 6904A0CDF1B63D0980263FAB83BFB9F82F35353533B3FFC03133ACB6A366BFF8 + AFC008000000D134F7A3F7D5A2CF3EB57BCEE93760CC0C89A956538F00489C95 + 5A2701ED8EE3EDF941C93274A6112A0948FDCA376E9990969E7994D576CCEE8A + 72F5ECE3ECF70700B8E3F1077FEDF808747A46D651175CF2B322ABA947004205 + 7F332E87ADAD09807E03A9CDE07FF0EEDF2A6913A77DE144AB76D4530F3F14D8 + FA0700801BE4D1C12F3DF3B4DD73CEC469674A4CD5EB0074BC359300333687AD + AD0980266FA29300F925741290DABDE7A0CE79BD0A1D7D7AC2D2F973D5C7EFBE + 6DF7000070C74B7F7B3290083829B777E194AEDDFB77B69A3A01D0715707FF36 + 057EADAD09807E2329FA1790E18883C3FF177CFD96E9D9C97992A938420EFA79 + EC815FD93D0000DC233149A6026477805324A6CEFAE6CF65579D4E0074DCD571 + D88CCD616B4B0260BEB0CE3AF49B0782BF9411E3A71F6FD58E79F7D57F079ED5 + 0C008017C86240A7CF06183DE63889AD81386B1573144062B119CBC34E02DA3A + 0220F4CF482D456722C9638B4EEE9E949433D26A3BA2A1A13E2AF32D0000B4C5 + 0B4FFFC56E3924396B94C458691945C761A1EBB0B5E50724ABD0457E4E671F07 + 47004E38ED1B13F3F2F2C2CE3EDAEA83D96FA85D65A5760F00006F58B668815A + BD6CA9DD8B3C3957E7F8D32F996035834700A4484C36637458C24D00825F50BF + 990EFE81D277F0983156ED0839F4E7C5BF3D69F70000F016A74701FAF51F2B4F + D63D1873AD2231586271702C0F2B09083701D0E4FB759137962188409D949494 + D6AD5B7F797CA1233E79EF1D55BA63BBDD0300C05B16FEF713B571CD6ABB1779 + B95DFB8F94586B350FC65EBB366373D8DAF4CD36C92CF4DDBFFE0552A64DFF4A + 2F39B0C06A475C7373937AE1AF0ECFAF0000D0412F3838529DD3292B77DAF4F3 + 7B594DB9FB3783BF8ECB6D126E02A05F5C8ACE32A4C89B078622A6CD386F9C55 + 3B62C1271FAB6D9B36DA3D0000BCE9B30FE6A8926D5BED5EE44D3E36106BCD29 + 009D04483163F511C90F1C49F00B495FBFA92EC9BDFB8D766CFE7FCE1BAFD92D + 0000BC4BCE03F8F0AD37EC5EE4F51F3C6EB455E9BB7FB3848AD5AD0A2701D074 + 86A1B38C40E097929494949A5FD86784D58EB8CA7D7BD5824FFF63F70000F036 + 49009C3A18A8A05B9F1156CCD553003A1190986CC6E8B084FD8D367913FD463A + EB4839FEB44BFB65A465E658ED8893C57F8D0D0D760F00006F2BDDB143AD2A76 + 664B606A5A66272BE6F6B79A3A064B9198ACE373D8C24900CC173583FFC12460 + C4E863065BB5233E78F375BB0500406C70721A60D8E73157AF013063B219AB75 + BB45E124009A7E415D0E2600F9DDFAC9AAC488DBBE65B35ABB62B9DD03002036 + C8E8B5538F0AEEDEBD5F4FAB0AC45FABE8C06F96B0B425011087047EAB04E620 + BAE416F6B0EA887332830200C0295507F6AB059F38B37EADD351059200986B00 + CC44206C474A00F48BE9C0AFDFC04C02923AE774722401F8ECC3F7ED160000B1 + C5A91896D339B7D0AA74D03783BF19A785AE43926F0C87F92287BC516A6A464A + 537D4237F94224EDA9A860EF3F002066C9F3019CD80D9093A8BA2525A5EABB7F + 33266BAD067E2DDC0440C80BEA223F17B8FB1F33F9946E5D0ABAC92F1251CB16 + 39FB684500009CB4675785DABE7993DD8B9CA49C6E2945534E951BEF401CB68A + 4E0274094B5B120021DFAF837FA01E3EE268471600163BFC6C6500009CB6CCA1 + 583664C4D1BDADEA602CB66B29610BE79BCDBB7E61F6137BF61E2C8B1122CEA9 + 0F0D00806871EA66B667AFA1127B75D0D7715904F75BA4837A4B825F40FAFA0D + A52475CA2D8CF8FCBF1CA22005008058B67CD1C2C003ED222DB76B6181559977 + FE5242C5EC16C90FB4A4A5E02F743B212D253D2370258298FF0700C483FD95FB + D4A675EBEC5EE4A4A4A4675AD5C1582CD72C6D4A025A4B004CE60B986F989892 + 9616F10460DDCA15760B0080D8B66E65E40FB44B490DC4DE83B1D8AE35B3DDA2 + 7012007921B31CF286A9C9911F01D8BE25F2AB26010070839C6A1B69C9A9E9E9 + 5675584C0E2AAD0A2701D0F48B992F9E989C9AEA400210F90F0B0000373811D3 + 525520F69A415F33DBAD6A4B0220F4F7EB374C484A494E0B5C8990EAAA038143 + 80000088073B1C4800923292F5088059DA14D3C3F966795193CE38A44E54C949 + F24B44CC8E2D5BEC160000B1AF74C776D5D0506FF72223392170F3FD791CFE5F + 02600AEE1F269C04406BE1C532229A006C73E0D4240000DCD2D4D4A4766EDB66 + F7222329FDB0D8AB63F41103BFD69604C0F4BF8CE3C0FE088F0030FF0F00882F + 915E07905A57694E01B42B9687FB436666A1DB018D49C9721041C494ED2CB15B + 0000C487F208C7B63D75C9A19EC163C6EA236AEF0880382C1988045904080040 + 3CA9AEAEB25B1165C6E136C7630F26008E7C480000B8A6C699D8D6A138DC9604 + C07C9388077ECDA10F090000D7387C73DBAEF8DCD611007961C782BF70689804 + 0000D7D44427B6B5293E77740A20E218010000C41B074700742C6E734CEE4802 + 20229E04B0060000106F6AAAABED56447528067734018838873E2400005CE3C5 + D16DCF2500CDCD4D760B0080F8D0E4C1D8E6B904000000388F040000001F2201 + 0000C08748000000F021120000007C88040000001F22010000C08748000000F0 + 21120000007C88040000001F22010000C08748000000F0A1D61E25285F939264 + 9564ABA45925C32AD956E964955C298FFCABFC99BCBCBC883D16F8C2138EB15B + 40FBA46764A8FC826E76CFDBF6EED9AD2AF7EEB57B00E2D580A1C3D45D0F3F6A + F73AAEA2A2A2F9F22FE5CFB29ABBECB2CF2AFBAD228FD4ADB54A83551AADD26C + 97C3900020AE8C9D3C55FDE0D63B024940AC285E304FDD79FDF7557373C8FF8F + 0288035E4C009802405C39EE94D3622AF88B514513D5F8A947DB3D00880E1200 + C4951EBDFBD8ADD832FDA453ED160044070900E24A56B6CC4EC59EB193A7A8A4 + 6499690380E82001405CC9EE9463B7624B6656B61A3A6AB4DD0300E79100206E + 242525050269AC2A621D008028220140DCC8CC8EDDE02F8AA6B2030640F49000 + 206E64E7C4E6FCBFD6A34F5FD5AD474FBB0700CE220140DCC8EE14DB0980603B + 208068210140DC88F5110031611AD30000A283040071231E4600468C1DAF3232 + 33ED1E003887040071232B0E4600E42C80D11326D93D00700E0900E24697DC3C + BB15DB580700201A48001037FA0F1E62B7629B9C079090C0FF3501388B7F6510 + 17121212D4A06123EC5E6CEB7C54AE1A3064A8DD0300679000202E74EBD94B65 + E5C4E631C0A1300D00C0692400880B83860DB75BF1A188ED80001C460280B830 + 68F848BB151F640AE0A8BC7CBB070091470280B8306464FC3D496FFCD469760B + 00228F0400312F5E17CD8D9FC23A0000CE210140CC1B3B698ADD8A2F63264E52 + 29A9A9760F00228B0400316FDCE4A9762BBEA4A567048E06060027900020A625 + 2626AA319326DBBDF8C37640004E2101404C93C37FE2E129802D299A7A4CE090 + 230088341200C4B47153E273F85F2B282C543DFBF4B57B00103924008869E326 + C7FF5639A6010038810400312BB0FD6FE830BB17BF3815108013480010B3E275 + FB5FB0A1A3C6C4F53A0700EE200140CC8AD7ED7FC164A7835F921D00D1430280 + 9814EFDBFF82B10E0040A491002026C5FBF6BF60B2DB212929C9EE0140C79100 + 2026B9B1FD6FF3FA75762BFA24D9193C22BE9E7808C05D240088496E6CFF7BFE + A927D481CA4ABB177D4C030088241200C41CB7B6FFAD5951AC56162FB17BD127 + A7020240A4900020E6B8B1227E4F4585DA5556A6562D5D6C5F89BEDEFD07A8AE + DD0BED1E00740C0900628E1BDBFFD6AE5CAE9A9B9BD5CA25EE25008269000091 + 42028098E2D6F6BFB52B9605EAF5AB57A9FABABA40DB0D452400002284040031 + C5ADED7F6B562C0FD40D0DF556FBF364C00D23C74F5069E9E9760F00DA8F0400 + 31C58DED7F32F4BF7ED54ABBA7D4AAA5EE2D044C494951A38A26DA3D00683F12 + 00C41437B6FF6DDBBC4955571DB07BCAD59D00826900009140028098E1D6F6BF + 75F6F0BFB6BA78A96A6E6EB27BD1274F074C4848B07B00D03E240088196E3D10 + 472F00D4643460D33AF74E053C2A2F5FF51D34D8EE0140FB90002066B8F5F4BF + B52B57D8ADFF59E9E27900A2680AD300003A86040031C1ADED7FB2E56FF386C3 + EFF6DD3C1048C83400007404090062825BDBFF36AC59A51A1B1AECDEFFAC7471 + 278018386C78604D0400B417090062821BDBFFC4DAA00580DAEE8A7255BA63BB + DD8B3E5904E8D66702203E90002026B8B1FD4FC811C02D59E1F2B1C0AC0300D0 + 112400F03CB7B6FF89E01D00A655C5EE260063264D51C9C929760F00DA860400 + 9EE7D6F6BFCABD7B55594989DD3B9CDBEB00323233D5B03163ED1E00B40D0900 + 3CCFB5ED7FD6DDBF1C03DC921D5B3607920437712A2080F6220180A7B9B5FD4F + B436FF2F028F07767B3B2009008076220180A7B9B5FD4F843A002898DB0940F7 + 5EBD55A15500A0AD4800E0696E6D7593B3FED72C2BB67B2D73F3C9801A870201 + 680F1200789A5BDBFF36AE5DA3AA0EECB77B2DDBB076B5AAA9AEB67BEE601A00 + 407B9000C0B3DCDCFEB762F122BBD53A392570C592F0BED729C3C68C539959D9 + 760F00C2430200CF726BFB9F58BE78A1DD3AB2650BE7DB2D77242525A93113DD + 592889D823FFBDC816D24E5DBAA8BC8282C01A923E0306A941C347A861A3C772 + C4B48FB4F65071F99A9424AB245B25CD2A1956915B0D599525FF95E43EF2AFF2 + 67F2F2F222F670F20B4F603E139FBBE6E6DBD4D1279C64F7A24756F75F71EE19 + 6A7FE53EFB4AEBFA0D1EA2EEFEE3E376CF1DEFCF7E5D3D7CCF1D760F7E909090 + A8723A77565D72F3AC921B547F5E3A1F75944ACFC854A969692A25353550CBCE + 9A2379FBE517D523BFB9CFEE21126434F3AE871FB57B1D575151D17CF997F267 + 59CD5D76917FB064DE52E6246BAD220F3169B48AEC650EB99F9904009E24FF48 + FDE985575DD901B079FD5AF5E3CB2FB17B4726FF10FFF945777E576DDF9E3DEA + 5B5F3A4B353535D957100F723A750EDCA117F696DD1E7D02ED821E3DECE09E1B + 56306F0F59FF22497063A3C40F4482171300A600E0496E6EFF5B1EE6FCBF263B + 06962D5C60F7DC21C3B9F28440C49EA4E464D567C0403565C6F1EADCAF5EACAE + BEE166F58BDFFDD14A2A5F0B1469CB35F99A7C4FFFC143D55179F98E057F216B + 4A38663AFE9100C093DC7CD2DD8A36CCFF6B6EAF0310E3D90DE07912ECFB0D1A + AC4EF8C259EAB21F5CAFEE7CF811F5C4AB6FAB7B1F7952FDE0D63BD485975DA5 + 669C7ABA1A326254E0EE1F701209003CC9ADED7FA23DABFA8B17CCB35BEE299A + CAF49997C81D7AA8607FF79F9E50575E77A33AF9AC73D5C0A1C3554A0A77DA70 + 0709003CA75397A35CDBFEB775D3C6C07C7A5BEDD8BA45EDAE28B77BEE906093 + DBB5C0EE21DA12121254B71E3D0381FD073FBF53FDF985D708F6F0341200788E + 9BDBFFDA33FC2F64E740F102F7A701381428BA6415FEB499270482FC837F7D56 + 3DF0F43F0377FB538E9BA9B27272ECEF02BC8904009E337E8A7BC3FF6DD9FF1F + AC78A1FBD300AC0370966CA31B3D6192BAE8CA6F07B67ECA5DFEB5B7DC1E18E6 + EFDABDD0FE2E20369000C05364DED4ADA7FF89704F000CC5ED9D006274D1C440 + 904264C87F8F321D75CEACAFAB9FFDEA41F5E8BF67AB9BEEFBAD3AFBC2AF06CE + 7F00621909003CC5CDED7F328FBF675785DD6BBBF29D256AE7F66D76CF1D12FC + 478E2BB27B688FB4F4F4C00154B22A5FCEA290BDDBB3AEF8961A397E0273F888 + 2B2400F01437B7FF7564F85FF3C26E00A601DA4EB6E78D9B3C557DE727B7A83F + 3DFF4AE0144AD973EFE6E14E80D34800E0296E6EFF5BBE2802098007CE0390C7 + 03CB8A74B44E3E23D96F7FE9353F540FFFF32575E3DDBF52D34F3E55A5A5CB81 + A740FC23018067B8B9FD4FB4770780C90BEB00F20BBAA9DEFD07D83D04EBD5B7 + 9FBAE0D22BD5034F3F1B3865EF9473CF0F9CA408F80D09003CC3CDED7F3277BF + ABBCCCEEB5DFBE3DBBD5E6F5EBEC9E7BD80E78A8F48C0C75D6051705F6E5DFFF + F85FD5795FBB441514B26A1FFE460200CF88D5ED7FC13816D85BE491B777FDE1 + 31F5D5ABBE13382C09C0E74800E009B1BCFD2F9817D6010C19392A70480D941A + 3361B2EAD1BB8FDD03A09100C013DCDCFE2722390220C9843C21D04DF2886259 + D50EA5F2BB75B75B004C2400F00437B7FFC9FE7D299122CF525FB76AA5DD73CF + F8294C0388EAAA2ABB05C04402004F7075FB5F04EFFE352FAC03183B796A607F + BBDF1DD8BFCF6E01309100C075EE6FFF8BDCFCBFE6850703656567ABA12347DB + 3DFF3A505969B700984800E03A37B7FF89658B221FAC57172F550D0DF576CF3D + EC062001005A420200D7B9B9FDAF74C776ABECB07B91535B5BA3562F2BB67BEE + E13C00990220010042210180ABDCDEFEB7D4C1B3FBBDB00EA067DF7EAA5B8F9E + 76CF9FF63302008444020057B9BDFDAF78FE5CBB15795E580720FC3E0DC01400 + 101A09005CE5E6F63FE1E4A13D6B572E5735D5D576CF3D7E9F06A8A9AE524D4D + EE9ECB00781109005CE5E6F6BF8D6BD7A8CABD7BED5EE435363444E401431D35 + 62DC7895919969F7FCA7B9B999750040082400708DDBDBFF8A173837FCAF2D9D + EFDC1A83702527A7A8514593EC9E3F310D001C8E0400AE717BFB5F3482F3D228 + 2419E1F0FB3440D5FEFD760B80460200D7B8B9FD4F86E7572E5D6CF79CB375E3 + 06B577F72EBBE79EF153A7059E0FE0574C0100872301802BDCDEFEB76AD95255 + 5B5363F79C23F3CFC50E6E350C5797DC3CD57FC810BBE73F2400C0E14800E00A + F7B7FF452F287B611D80289A7A8CDDF29FFA3AF74F6504BC860400AE707DFB5F + 14EFCABD300220FCBC0EA0B1B1C16E211CBBCACB545D5DADDD43BC2201802BDC + DCFE278F875DB76A85DD735E79E94E55B2758BDD738FECB8E8929767F7FC45D6 + 7CF8556363A3DA5FB92FB0E555EA03FBF75BFF1F381038A3428EACAEAFAB0B3C + B742BEAFB9B949EDB0FE5B7DE51FCF04A6AF10DF12EC3A14F99A9424ABC83345 + D3AC9261956CABC8D86DAE9447FE55FE4C5E5E5E6BAFD326179EE0DF614ABF90 + ED7F7F7AFE15BB177DF33FF98FBAEFA61FDBBDE8B8ECFB3F52279F7D9EDD73CF + 1FEFFFA57AEF35F73E7BB75C7ACD0FD529E79E6FF7625BE5BEBD6AE7B66D6AE7 + 8E6D6ADFEEDD81F50D12D465AB63A06DD55507F6078E40AEB2FAB2D68560EE3E + 49C0EF7AF851BBD771151515CD977F297F96D59455C652E4B9D7B2DD454E1F93 + E11BC97A1BAD227FF921FF0360040051E7FEF6BFE86FCD73E33D43F1EB344043 + 8C4D01ECDBB35BAD2A5EA2DE9FFDBAFAE7637F560FDE71ABFAE9D597A9CBCE39 + 4D5D71EE19EAE6EF5CA11EBAE3E7EA2FBF7F40FDEB2F8FA9D79FFBA7FAE0CDD7 + D5FC8F3F0AEC6ED9BC7E9DDA55561AB8CB27F8A3252400883A37B7FF0927CFFF + 6FC9B2450B3CF10FF1988993554A4A8ADDF38FC606B911F22E199AFFE4BD77D4 + 1FEEBD4B7DFB2BE7AA2BBF78A6BAF59AABD5C3F7DCA19E7FFA09F5F1BB6FABF5 + AB5672A011228A040051E5F6F6BF3D15156ADBE64D762F7AE41FEE0DAB57D93D + F7A4A567A8E163C7DB3DFF686AF256022073EDAB972D55CF3EF188BAF9DB57A8 + 2BCFFB827AE0F65BD49C375E0D2CC003A281040051E5F6F63F79FCAF5B77E29C + 0A086DF9E245EA96EF7D4B3DF7E4E3818746F1B022B881040051E5FEF63FF782 + B067CE039876AC4A4888D8BA5D00318A040051E5E6F63FB1D4C567F4CB906F7D + BDFB07D2141416AA1E7DFADA3D007E450280A871FBE97FDBB76C0EAC8C764B5D + 6DAD5A1585E70F84836900002400881AB7B7FFB9B1FA3F9857A601C6930000BE + 470280A8717BFB9F9BC3FF9A5716020E1B3D5665E5E4D83D007E440280A8707B + FB9F6CBB5ABE7881DD73CFC635AB03A7B6B94DFE3EDC1E9101E02E12004485DB + DBFFD679E41015D9EEB56CA1FB231162FC14A601003F23014054B8BFFDCF1B41 + 5778E558E0F153A705460200F813FFEF4754B8BEFDCF23415778E5F1C0322233 + 78C428BB07C06F4800E038B7B7FFC9E34E650FBE57946CDBAA2A4ADDDB8E682A + 9AC63400E0572400709CDB8BCDE4E968920478851C45EC95DD00AC0300FC8B04 + 008E737BFE5FCEFFF71AAF9C07D067C04095DFADBBDD03E0272400709417B69B + 7965CEDDE4959D00825301017F220180A3DCDEFE275BFF64EFBDD7ECD955A1B6 + 6C586FF7DCC5A980803F9100C051AE6FFFB3EEB4BDFAA855AFAC0318553451A5 + A5A7DB3D007E41020047B9BDFDCF8BC3FF9A57D601A4A4A4A851E327D83D007E + 410200C7B8BDFD4F787101A0B672C922D5D8D868F7DCC53400E03F2400708CDB + 8BFFCA4B77AA9DDBB6DA3DEFA9AEAA526B572CB37BEE2A9A768C4A4848B07B00 + FC8004008E71FFF8DF79813DF75EE6956980DCFCAEAAEFC041760F801F9000C0 + 115ED8FEE795E0DA1A2FAD51289A7A8CDD02E00724007084DBDBFF8497F6DAB7 + 64ED8AE5AAB6A6DAEEB98B750080BF9000C0116E0FFFCB1E7BD96BEF750D0DF5 + 6AF9E24576CF5D83868F082CDC04E00F24007084EB4FFFF3C81EFB7078E54985 + B20870BCCB891B80E8210140C47961FB5FF102EF0FFF6B5EFA5D990600FC8304 + 0011E7F6E23F39F96FC5E28576CFFB64BA62DF9EDD76CF5DF277979C9C62F700 + C4331200449CDBF3FF6B961707F6D8C78AE6E626CF1C58949199A5868E1E63F7 + 00C43312004494379EFE173BC3FF5AB187B62C4E98C67640C00F480010515ED8 + FEE79545756DE1A5238B590700F803090022CAEDE17FD9532F7BEB634DF9CE12 + 55E291638B0B7BF50E1400F18D040011E5F6F6BF154B1607F6D6C72246010044 + 13090022C6134FFF8BC1E17FCD5BC702930000F18E040011E3F6E23FE1A520DA + 56CB172EF0CCC38B868F1D1FD81100207EB5F6FC4FF99A9424AB245B25CD2A19 + 56C9B68AACF2CA95F2C8BFCA9FC9CBCB8BD873442F3C8115C8B1EA7B37FF5C1D + 73C2C976CF1D320220E7001C519881369CEF0A3B6887F17DA3264C522929DED8 + 87FF9BDB6E56FF7DFF3DBB17DB665DF12D75CEACAFDB3DF72D5BB440DDFEC3EF + D93DF8818C8EDEF5F0A376AFE32A2A2A9A2FFF52FE2CABB9CB2EFBACB2DF2AF2 + 70915AAB3458A5D12AF20F4FC87F7C48001011B2FDEF4F2FBCEAFA0E0044CEFB + B35F570FDF7387DD8B6D2400709B171300A60010115ED8FE87C81A3F659A4A48 + E09F08205EF1FF6E4484DBDBFF10799DBA74510387B9BBA8138073480010116E + 6FFF83338A381510885B2400E8302F6CFF83338AA6B01D1088572400E8302F6C + FF8333FA0D1EA272F3BBDA3D00F18404001DC6FC7F7CE35440203E9100A043BC + F0F43F388B7500407C22014087B0FD2FFE8D2A9AA052D3E4181000F18404001D + C2F07FFC4B4B4B5723C68EB77B00E20509003A84ED7FFEC03400107F4800D06E + 6CFFF30F793A604242C44EFC06E0012400683716FFF9477EB7EEAA57BFFE760F + 403C200140BB31FFEF2F4553990600E2090900DA85ED7FFE53348DF300807842 + 02807661FB9FFF0C19394AE574EA6CF700C43A1200B40BC3FFFE238F061E3B99 + 511F205E9000A05DD8FEE74FAC0300E2070900DA8CED7FFE3576F25495949464 + F700C4321200B4198BFFFC2B2B3B5B0D1939DAEE01886524006833E6FFFD8D53 + 0181F84002803661FB1F783C30101F4800D0266CFF43AFBEFD5441610FBB0720 + 569100A04D18FE8790670300886D24006813B6FF41B00E00887D2400081BDBFF + A08D18375EA56764D83D00B18804006163F11FB4E4E414357AC224BB07201691 + 00206CCCFFC3C4A980406C23014058D8FE8760E3A74C0B3C1F00406CE2FFBD08 + 0BDBFF10AC4B5E9EEA3F78B0DD03106B4800101686FF110ABB0180D8450280B0 + B0FD0FA1B00E00885D09761D8A7C4D8A3CFA2BD92A6956917D3FD95691B1E05C + 298FFCABFC99BCBCBCD65EA74D2E3C817F50BC46B6FFFDE9F957EC9E7BFEF9D8 + 9FD58B7F7BD2EEF9D3ADBFFDBD1A3A6A8CDDF3866F7DE96CB5675785DDF3A659 + 577C4B9D33EBEB76CF7DCB162D50B7FFF07B760F7E205BA8EF7AF851BBD77115 + 1515CD977F297F96D5DC65977D56D96F956AABD45AA5C12A8D5669B6CB611801 + C0117965F1DF92799FA9A6A6265F97C5733FB33F0DEF90C58000620F09008EC8 + 0BF3FF5507F6ABF5AB57DA3DFF5A32EFBF76CB3B8AA6712C30108B4800D02AAF + 6CFF5BB67041E00ED8EFD6AF5AA90E5456DA3D6F183D61B24A4949B17B006205 + 09005AE595ED7F4B17CCB35BFE2649D0D20573ED9E37C891C0C3C68CB37B0062 + 0509005AE595ED7FC5F3BD15F4DC246B21BC6602DB018198430280567961FBDF + AEB252B563EB16BB87251E5C0828E7012424446C331080282001408BBCF2F4BF + A5F3E7A9E6E690BB587CA9BC74A7DABE7993DDF38682C21EAAB0771FBB072016 + 9000A0455ED9FEE7B5396F2FF0E23400870201B18504002DF2CCFCFF82F9760B + DAE2B96C0704D031240008C92BDBFFB66C58EFF953E6DCB07CF142D5D820077D + 79C7B0D1635556B61C140A201690002024EF6CFF63F83F94DA9A1AB5B27889DD + F306491AC7F0C86820669000202486FFBDCF93D300AC03006206090042F2C2F6 + 3F39F466C5E285760FC1BCB810501247190900E07DFC3F1587F1CAF6BF35CB8B + 55755595DD43B04D6BD7AA7D7BF6D83D6FC8E9D4590D1A3ED2EE01F03212001C + C633DBFFE673FC6F6B9A9B9BACCFC89B870201F03E12001CC63BF3FF2C003C12 + 2F3E1EB8682ADB018158400280437865FB5F4D75B55AB362B9DD434B96787004 + A0CF80812ABFA09BDD03E0552400388457B6FFC9E23FAFED73F7A23D15156AF3 + FA7576CF3BC6330A00781E09000EE195E17FE6FFC3B7649E174F05641D00E075 + 2400388417B6FF090E000A9F17D7018C1A3F41A5A5A5DB3D005E44028083BCB2 + FD6FEFEE5D6AEBC60D760F47B2AA7889AAAFABB37BDE90929AAA46164DB07B00 + BC880400077969FB1F8FFF0D5F5D6D6DE0D9005EC36E00C0DB4800709077B6FF + 31FFDF56DE7C3CF0D12A2121C1EE01F01A1200047865FB9F2001683B2F2600B9 + 5D0B025B02017813090002BCB2FD6FC7D62DAABC74A7DD43B864CDC4EE8A72BB + E71DEC0600BC8B040001DED9FEC7EAFFF69035134B3C792A200900E055240008 + F0CCF63FF6FFB79B17A701060D1FA13A75E962F700780909003CB3FD4F1E6EB3 + 7CF102BB87B6926381BDB67B4216017A25B904702812007866F1DFBA552BD581 + CA4ABB87B6AADCBB576D58B3DAEE7947D134B603025E440200EF6CFF63F8BFC3 + BC380D2009665272B2DD03E01524003EE7A5ED7F2C00ECB82573BDF75C808CCC + 2C356CD418BB07C02B48007CCE2BDBFFE434BBD5CB8BED1EDA6BF5B262555B53 + 6DF7BC83ED8080F79000F89C5786FFBD789E7D2C6A68A857CB167A6F21250900 + E03D24003EE79DED7F0CFF47CA620F4E0314F6EAADBA5B0580779000F89857B6 + FF09F6FF478E1717028AA229EC0600BC8404C0C7BCB2F86F7FE53EB571ED1ABB + 878E2AD9B65595EF2CB17BDEC17640C05B48007CCC4B4FFF9343801019721890 + 17A701868F1917D81100C01B48007CCA5BDBFF18FE8F342F4E03C8590063264E + B27B00DC4602E0535ED9FE2758001879C50BE77B725485870301DE4102E0535E + 19FE2FDDB1C32ADBED1E22458E545EB362B9DDF38EF153A7A98404FED901BC80 + FF27FA9467B6FF2DE0EEDF295E7C3CB0EC3C19E8919D2780DF9100F89097B6FF + 1533FCEF18CF6E07643700E00924003EE495C57F42E6AAE18C752B97ABAA03FB + ED9E77B00E00F00612001FF2CAFCBFECFD9747D8C2198D8D8DAA7881F712AC7E + 8387A8DCFCAE760F805B48007CC64BDBFF8A99FF779C57A701C64FF1C61A14C0 + CF48007CC65BDBFFD8FFEFB425F3BC772090E0E14080FB48007CC62BC3FFF2D4 + BA954B17DB3D3845B659966CDD62F7BC63D484892A2535D5EE0170030980CF78 + 65FBDFEA62796E7D8DDD8393BC380D909696AE468C2BB27B00DC4002E0239E7A + FA1FF3FF51B3D8A3EB00264C653B20E02612001FF1D2F63F8EFF8D9EE58B1604 + 7604788DAC03484848B07B00A28D04C047BC32FF2F7BD337AC5E65F7E0B4EAAA + 2AB57AD952BBE71DF9DDBAAB9E7DFBD93D00D14602E0135EDAFEB76CA137EF48 + E399774F05643700E01612009FF0D4F6BF056CFF8BB6C5733DBA1D90530101D7 + 9000F8845786FF05E7FF47DFC635AB55E53EEF9DBA3874D428CF24A680DF9000 + F88457B6FFED2A2F533B3CB82F3DDE353535598997F7465EE4D1C063277B2739 + 05FC8404C0073CB5FDCF0A42CDCDCD760FD1E4D969009E0E08B88204C0073CF5 + F43FF6FFBB668947A75E64742A2929C9EE01881612001FF0D2FC3F0B00DDB3AB + AC546DDDB4D1EE79475676B61A3C6294DD03102D24003E307CF458BBE5AEAD1B + 37A83D1515760F6E58E2D9DD004C0300D14602E003B200CC0B3E7EEF1DBB05B7 + 7CF6E1FB76CB5BB27272EC1680682101F081FD959576CB3D07F6EF57B35F78D6 + EEC12DF204C6F75E7FC5EE79C7FECA7D76CB195B377A6BEA4346C300B7B57610 + B77C4D8AACCE49B64A9A5532AC926D15D9B89B2BE5917F953F93979717B103BD + 2F3C81834122AD6BF7C2C042C06C17EEB264F461C39AD581A36879FA9F37C8D6 + BBDEFD07A8A1A34607E6DFDDB67B5785FAF4BD77556DAD73FF7DE474EAACEEF9 + F3132AB76B817DC53D920CDF77D38F791CB6CFC84EACBB1E7ED4EE755C454545 + F3E55FCA9F653577D945B2E8FD56A9B64AAD551AAC2247AECAB6AB905BAF4800 + 00F8823C78A8CF8081AA4B5EBE7D25FA6AAAAAD4DA95CB556383FCDB0C3F2101 + 080309000020DE783101600D0000003E44020000800F91000000E04324000000 + F810090000003E44020000800F91000000E04324000000F810090000003E4402 + 0000800F91000000E04324000000F810090000003E44020000800F91000000E0 + 4324000000F810090000003E44020000800F91000000E04324000000F8100900 + 00003E44020000800F91000000E04324000000F810090000003E44020000800F + 91000000E04324000000F810090000003E44020000800F91000000E043240000 + 00F810090000003E44020000800F91000000E04324000000F810090000003E44 + 020000800F91000000E04324000000F810090000003E44020000800F91000000 + E04324000000F890E712808404721200407C494CF45E6CF3DC6F949E916EB700 + 00880FE9199976CB3B3C980078EF430200A023D23332EC9677782E01C8C82401 + 0000C417128030A493000000E24C5A3A09C011656466D92D0000E283432300CD + 76DD2E1D4900E48D3BF4E6A13005000088370E4E01B43B0EB735017024E89B48 + 000000F1260A0BDCDB1C9FDB9200982F7CB09DD4D4D868372322AFA09BDD0200 + 203E14742FB45B9191D4D860C6DE90F1F9483A3C0590999459FB7937327AF6E9 + 6BB70000880F85BD7BDBAD08C9CAAEB1FE37108703FD76E87002D090562DBF44 + C414F6EE63B70000880FDD7AF6B25B911288BD6602D0E64420DC04C07CE143DE + A4A1AE31A209400F120000401CC92B28506969113EE5B63E64EC6D5332D09E45 + 80A2C92AD26EAE6F8C6C02909995AD3A1F956BF70000886D85BD227F63DB505F + 2FD3EF81386C1589C96DD6DE458007D5D7D4463401108C020000E24561AF08CF + FF5B1A6A5B8CBD21637528E12400C12FA6EFFEA56E6A68AA8B7C02C042400040 + 9C702201A86FAC91D81B88C35609350A70C444A0AD5300E61BC88B37D7D65445 + 3C0118307498DD020020B60D1A3EC26E454EDDE7230081381CB8F0B9E024A055 + ED990290FA60C6515B5F5D2D172369D4F809760B0080D8258BFF060E1D6EF722 + A7AEA6A6CAAACCBB7F33468725DC2900B31CF2867B77ED2CB3EA882A28ECA1F2 + 3910080010E3868E1EA3929293ED5EE4ECDE5D22B1F7B0981C545A15EE0880F9 + 42D23EF886DB37AFDA2E1723292121418D2C6214000010DB468E2FB25B91B57D + EB0A89BDC1C15F33DB2D6A2D01087E01FD26E2E01BAE5AFE69C41300C1340000 + 20D68D1CE74C2C5BB9F4D31D56753016CB354B70222082FB07B57511A09037D0 + A571D1DC37773636EE8CE8F300C4C871CE644D000044833CDCAEFF90A1762F72 + F694EE6C58B2E0ED9D565362AF19935B0CF6A11C29019017D345BFF821D7EAEB + 6B1AF6ED4F2EB5DA1195DBB5C091AD13000044C3B0D16355525292DD8B9CE6B4 + A43289BD5633382E8B50D7426AEB0880CE32A448E61128077695955875C44D9A + 3EC36E0100105B261F37D36E45D6FECF63EEC1186C15333687AD2D09809951E8 + 370CBC79F9EEED8E2400C79D7C9ADD02002076A4A4A6AA290E2500BB2BB6C9FC + BF99004831637458C24D00CC1794C07F48125056B2DE918580BDFAF557031C98 + 3F0100C049138F3E36F06C1B2794ECDC243157C7601D93A5D6C24A02DA920004 + BFD1C1CC63F5B24F3758B5238E3BE574BB0500406C98EEE008F6AAE2FF6CB4AA + 8331D82A666CD6ED230A6711A0C90CFE07938077DF787243556DA59C4A147147 + 9F7092238B28000070424EE7CE6AECA429762FB2EA76ED3F30E7CDA7E5A65BE2 + AF5E08682601A6561381B62E029417D345DE4CDEBCA1A9A9BEA162FBC655563B + E23A75394A8D9B3CD5EE0100E06D471F6FDDB83A70FA9F28D9B77195C45CAB29 + C50CFCBA842D9C04C07C612907EFFC8D52BF61CDE2E556ED88E34E3DC36E0100 + E06D334EFB82DD8ABC0D6B03B1B6DE2AC17138381190D2AAF68E00984940E017 + F9EF27FF762C019874EC71AA3B670200003C6EE4F8098E2E5EFFF4A31725D61E + 8CBD7631837FD8DA9200C81BE8226F226FAA8720EA3FFEE0B9CD353507F659ED + 884B4C4C54E75EF475BB070080379DF7D58BED56E4D5ECDABFEFD30F9FDF6235 + 25F89BD300FAC65C97B0843B0560D2C15F97CF7F89A6A6FAEDDBD63AB20E404C + 3FE9549E100800F02C79EEBF8C00386547F9BA95126BADA60EFC660915AB5B15 + EE0880BC902E6696216F2ABF8C94BA0D2BE73B360D200B2ACE9EF535BB070080 + B79CF7D54B024FB375CABAB581185B67151D7725069B31D98CD547D4D6350042 + BFB8CE3A2413096424EFBEF3F462AB76CCF1A79FA9BAE4E6D93D0000BCA1CF80 + 81AA68DAD176CF19EFBDFDF412AB3A1873ADA2E370D841DFD4D6044067183ADB + 309380BAE50BDF2B292DD9B8C66A3B428E563CEB828BEC1E0000DE70CE455FB7 + EEFEDB734F1D9E1DDB36AE96186B356504C00CFEE6DDBFD4616BCB1480662600 + 3A13395816CF7DEB63AB76CCC9679FA70A0A0BED1E0000EE1A3874B89A36F344 + BBE78C250B674B6C3D24DE5A4562B099006866BB456D4957E405759137D3D9C7 + C1110029CFFEED97FFDDB3B344FA8E484D4B53DFBCE63ABB0700807B64CEFFB2 + EFFF28B05BCD298D9525F5CF3FF5CBFF5ACD409CB58A390220452700BA84A53D + BFB17E719D75E8518040125056B261EF9E7D3B17596DC78C9F322D7036000000 + 6E3AE9AC73D580A1C3EC9E333694942C2E2DDD24DBEC75F00FBEFB17BA0E5B5B + 4700742D6F24F561230056A9FDE4E3171D9D0610977CE75A9596966EF7000088 + 2E39F3FF82CBAEB47BCE99FB9F17FF6355B556093502A063B2A663F511B57504 + C04C02F49B4BD1F311815FEEA567EE5D5C5D73A0D26A3B26BF5B7775FEC5DFB4 + 7B000044D757AFFA8ECACEE964F79C2107ECBDF4F7FB64879D0EFE3ADE062701 + BA84ADBD5300BA48D6A17F8983A300B5B55507D6AC9C3BD76A3BEA8C2F5FA07A + F6ED67F70000888E212347AB19A73AFFB8FAB52BE6CEB562AA3C6D57270066E0 + D7A3F16D0AFC5A474600740220BF84BEFB973A304CF1EA730FBE535151D1AE5F + 2A5CC9C929EA3B37FECCB1A72E0100102C3D23437DFB869B1CDDF6272486BEFC + FC83EF5A4D89AFE61480C4DA5009409B626E7B7F7BFD86F2E63A0990AC442700 + B59F7DF4C2A6CABDDB1D5D0C2864F1C5D7AFFE9EDD0300C059575E7763541E50 + B77FF7F685562CDD68350371D52A1267F508808EBF3A1EB729F88BF64E0108FD + C6F28BE8044067273556A97DE91FF7BF62D58E3BF5DCF3D5E4E933EC1E0000CE + 38F10B67ABA34F38C9EE39EB857FDE2B3154C7D4E0BB7F2912832516B74B4712 + 00A133109D00E8A980C02F3CE7CD27D76CDEB26A99D57694ECC3BCEAFA9FAAAE + DD39200800E08CDEFD07A84BBEFB7DBBE7ACCD9B572E7BFFADA7D75ACD9682BF + 8EBF5A54460084BC91598213003D5C51F3C6F30F466514202B3B5B7DFFD6DB59 + 0F00008838D976FEFD5B6E0F1C46170DAF3D17889D81D174BBE804404F0104C7 + E136EBE80A061DFCCD51003D151048005E7FF1FF566CDBBCDEB1E70398E438C6 + 4BBE7D8DDD03002032AEB8EE86A8ED3ADBB16DCDEAD9FF7E589EFC2709801E01 + D0F15562AD2EED0AFC5A925D77842411F2FC4329D29622AF2B456EC7935353D3 + ABC64D3A799AD576DCC06123641FA25A55BCD4BE020040FB5D74C5D5EAE473CE + B37BCE7BEE997BFEB2AAF8E34D5673BF550E58A5DA2EE63480047FB9F96EF708 + 404712001DF48519FCA57D4802B072C5277B679CF2CDB139399D8FB2FA8E1B55 + 3451959796A84D6BA332F000008853679C7F81FAF2372F0FAC358B86D29DEBD7 + DFFF8B59FF54CDCD72989E047F9D00C84880390560CEFFB74B471200A19300FD + C9481D3C0A9064FD41920F54EEDE3968F831D33333B31CFF14E52FAA68EA316A + E3DAD56AC7D62DF6550000C277CC0927AB2BAEBBDE8A2912D29C575E5ED6FCB7 + 3FFFF4FF36AE5BBCD5EAB674F72F0980BEF317ED9E06E8E89F4A0F3DC82FA38B + 6426E66240C95AAAE7BCF997D53BB72DFBD06A4745525292BAF6965F044E6B02 + 00A02D464F98A4AEBED1F9C37E4C255B977F30E7EDA7565B4D3DF76F2EFED377 + FDBAE8F8DB6E9148003469CB2FA8172A1C92004879E89ECB9EDB7360BF643551 + 21AB367F7CD7BDAACF8081F61500005A270BCA7F78DB5D81D366A3A5BA7A7FE5 + EFEEBDEC3969DAC54C00745CD573FF5A8712808E4E0104D35300E6548094C07A + 8003FB7737E5E676AF1B3A62CA38AB1F15B26563DAF127AA954B97A88AB252FB + 2A00008793356437DEFD2B959199695F898ED92F3DFCCC87EF3E536C35E526D9 + 1CFE974440920009FE7A1440027F8782BF88540220015F174D2701F21EBA4E5A + F4D99B65C79F7AF188EC9CA372AD7E54481270F48927A94DEBD6AA12D6040000 + 42983AE304F583DBEE5469E9D17DD47CC9F6F56B6FBFF1CCBF59315D16FEB5B6 + F25F077FE19904C0A493009D00486D2401CD8965A55B4B8E9E31737A4282F30B + 02B5E4E46435CDFACBAD28DD1948040000D04E39E78BEAAAEB7F128815D1D4D4 + 54DAF4FBFBBFFFFB6D9B976FB3BAFAEE5F9EFEA783BF9E0288D8DCBF16C904C0 + 0CFCA18A24005292B76D5E51356CE40939853D074775723E3131514D3C66BAAA + AFE39C0000C0E7BE74C965EAA22BBF1D8811D1B6F0B30FDFFADB6337CDB19A12 + F8F5D63F4900F4D0BF19FCA508CF25004202BD162AF84B91F74CFAF4E397364E + 3FE9EB63B2B33B77B1FA51235B046575678EF5B64BE7CF55CD4DFAF30400F849 + 4A4A8ABAE28737A82F7CF982406C88B69D3BB76CFAD90F67FEA9B1BE6E9FD5D5 + 77FFE602C050FBFE2312FC85530980599B45270089D61F3861C3DA85EBC71C7F + DED199C9E9D15B6A691B346C841A3B698A9504CC5355D1DB980000F000799CEF + 4FEFFD8D1A3F252A87D41EA6BC766FF5833FFBF26F766C5B5362752508C99DBF + BEFB3783BF1473D8DFB309803083BF662600074702CA4A36D66625A7EF19356E + E604AB1F75B9F95DD58C534E573BB66E56DB37CBA98B008078273BC36EB8EB5E + D5B55B77FB4AF4FDFBE97B1F7BEFCDBFB4B6EA5F4AC417FE999C48004CC1C980 + 4E040E2603C58BE6540C1B35BD4BF71E03A2F3948520816D82334F54399D3AA9 + A50BE631250000714A86FC2FBDF63A35EBF26FA994D454FB6AF42D9AF7F6FBBF + BFEFD2D7ACA639F4AF17FE9977FF12907402A04BC438950004077CA1DBBA1C1C + 0DF8ECA317D74F3FF9A23159595D3A5BFDA893B99F41C347AA7193A7AA954B16 + A9CA7D7BEDAF0000E241AF7EFDD58DBFBC5F154D3B26F06FBE5B4A4B376DF9D9 + B5C7FFA1A1A156024DF0DDBF0EFE5224F0CB08802377FFC2C91180509FB0BEA6 + 93002989D607A136AD5BBA7EF4CC73A6B9B11E4093298113CE3C27B00774F5B2 + A5AAB1513E7B0040AC927FCF675D7E95BAFAC737A9DCAE5DEDABEE9079FF876E + 9BF5DB6D5B56C9BCBFACF8D7ABFE430DFD3B1AFC85D353009A990C1C12FC75BB + B464434D626363D998F16327242464C97557C83304868D1EAB8E3DE91455BA63 + BBDAB165B3FD1500402C993C7D86BAE1AEFB03A3BB6E6CF133353595363EFBF8 + 3D7FFEE0ADBF2EB3BAE6813FE6963F298E0FFD6B4E8F004831E9BEF9B58349C0 + AAE28F77656676AB1C36EAE8B181AFB8282B3B27F024A8FE4386A935CB8BD929 + 000031A2A0B087FAEE4DB7AA2F7EED1B2A332BCBBEEAAE979EFDC353FF78FCE7 + 1F5B4D33F84BD15BFE74F0D709802341DF148D110033E807D389802E898BE6BD + 5552D0BD7F73FF41E386597DD7F5E8DD479D78E6D9D67F44D98113046B6BE4EF + 0A00E0355D72F30287FA5C7DC34DAA575F57D69587F4CEEC275FF8F36FBFFD96 + D5D4C3FEE6BCBFBEFB97C01F6AD5BF638940A8A01C69870478AB48D221F3FC52 + E4C0E50CAB64DB25C72A9DA4FCECEED766154D39FD04ABED1975B5B5EADDD75E + 56FFFEFB5FD52E1E2C04009E905FD04D9D3DEB6BEAF8D3CF7475757F28F33E7D + F59D3B7F72E633565302BFACFA9722C15F92009D00E8857F6602E068F017D148 + 00849E7C91DA4C02E46F2ACD2A3246238F5E92244012002B1148EC7CF7831F5D + 3E74F4B44956DF531A1AEAD507B3DF502F3DF394DAB95D8E6F0600445BF79EBD + D4B95FBD38B0662B9A8FEE0DD7AAA59FCCBDF19A631FB162BAACF897C0AFEFFE + 65DE5F92003DF46F067F2942D78E895602A04700844E02E4890B3A0908391290 + 9C96D1F9D77F98F7BDDEFD468CB0FA9E23BB043EFBF07D2B19784D2D9EFB5FD5 + C4190200E02859CC3776F25435F3D433D4C4638F0B2CDCF6A2CDEB972EBBEEDB + 537ED7505B1D1CFCCD3B7F1DFCCD857FC2F1BB7F11AD0440E824408A99044891 + 04404602240990D10049002411E8DCA953D7DC3B1E9873B55793006DCFAE0AF5 + F1BB6FAB0FDE7C5D6D5CBBC6BE0A0088847E8387A8E34E392DB038BB73F49E26 + DF2E5B362E5F7EF3B5331FDEB7AFACC2EA9AC15FCFFBCB9DBF2400E6A23F2951 + 19FAD7A2990088E02440523729320AA04702642AE090E9001909B8E3BE77BEE9 + C5E9805036AF5F6B2502B3D5671FCE096C250400B49DACE69F3C7D6620F0F719 + 10D587C7B69B0CFBDF7CFD898FDB77FE7ADE5F0FFB076FF9D3FBFDA31EFC45B4 + 130021815F9849809E0E9051003D1D10BC26A0D34DBF7CF92B13A79E71BCD58F + 19E53B4BD4B2850B54F1C2F9AA78C13CB5BBA2DCFE0A00C074545EBE1A553451 + 8D1A3F418D1C5FA4F25D3CABBF3DE67FFCCABB77DC74CEB3563CD777FD66F0D7 + C3FEE651BFC1ABFEF5144054B8910088B6260132251028D7FEE4C933669EF2F5 + 73AC76CC696E6E5625DBB6061281752B57A8ED5B36070E1AE2E861007E93D3A9 + B32AECDD27B0D57AE0B0E181C02F8BFADC3CA6B723DE7DE32F2F3E74CF375EB7 + 9A12F875F16CF0176E7DD2F2BEFABDA596044012014902CCE90033093898085C + 72D57DC79DFD958B2F4A4C2CD089444C93044012816D9B3705EAB29D25AAA6AA + 4A555BA5A6FAF35AB7652B220078916CC1CBC8CCB44A56A04ECF90B6555B459E + BCD7A34FDF40C097C02F09403C9013FEFEFDCF279FF9CB1FAFFFC0EA9A813F38 + F8EB617F3DE72F09800EFE511DFAD7DC4CB5CC24400279F048407012208B0375 + 12907DDE053F9E38EBC29F7C23A54B17F91EDF909D063CB11080E75877EE5E5D + 91EF94FA3D7B6A9EF9FB2F9F78E11FF7CEB3BA12F075F097C57EC1C13FF8CE5F + FF43EE4AF0176E2600A2B524408A391D70D868C0E8F1C7F7BDE686C72ECBEFD6 + AF97D50700202ACA776EDCFAE03D973EBA74E17B9BAC6EF05DBF1409FC7AD85F + 02BFA782BFF04ABA264940F087A03F9850453497966CAC7AFBD5C7E60F1C3631 + BB7B8F817DEDEB00003866D1FCB73EBCF9DAE31F319EEAA7837F4B77FE12F83D + 15FC8597C66B829380E0B659E4030CD40D0D758DEFBFF9D4CA04955836A4DFD8 + E149E9E9327200004044D5EDD953F3ECDFEF7EEAF7F75DFEBA157BCCFDFD52EB + 3DFEFAAEDF1CF6D781DF33C15F786DC2462701E607A3DBFABA0EFEBA1D28C58B + E794AC58F969F1A8A2E307646575898FD52500004F282DDDB4E5EEDBBEF2FB39 + 6F3E596C7525E0EBE02F815FDFF9EBE02F815F1200F3CE3F3896B9CE8B2B36F4 + 9A0093FEC0828B7CA8F2E106DA653B371D78E7D54717F41D3836BD7B8FCE7D13 + 12B242BD16000061696A2A6D9AFFDFF7E7DCFA83131FDBB16D8D39E4AFEFFACD + 217FF3CEDFD3C15F783101102D056EFDE149D177FFD2D61FB24C09D47FF8CEDF + 566D5CBF6E79FF21137A75EA94DBC5BA0E00409B6CDDBA76E3FFDD7FED1FFFFE + F8CF3EB4628B1CD8A203BFD47AB15F4B2BFD3D1DFC85571300119C04E80F4F8A + FE507512A0FB0713816D9B57EE7BFD85DFCFCFCCECB4AF6FE1E8FEC9191E7B46 + 2400C0936A76ED3FF0CABF7FF7DC2F6F3AFB9FDB36AFD8615D3203BF39E42FC1 + 5FEEFAF5B07FF04A7F894B42C72E4FF1FA10B93EE8477E4F694B2D498B14392B + 409F17A0B70BEA2D837266C0C1F303BA150EC8FDCE758F9C53D877D4D4FCFCAE + 5EFF3303005C505E5ED6BC75D3D24FFFF0AB2B5EDAB963FD2EEB9219E8A5ADEF + F68387FBCD217F7D73AA03BEB43DC9CB2300423E401DB0CDEC49DAC145675C52 + F45F84B41B0EECDF5DFBDE9B7F59BEA77CDBEA418327F6CCCA61912000E07FCA + B66FDAFCD41FAF7FECC93F5DFF9E1533765B97F41DBF2EA1EEFACDF97E330669 + 66DB7362E56E587E4FFDBB4AAD0F0C925A1F1A648E06041F20A44BA6F5239967 + 7DF907A34F3FF7EA530A7B0CEC6F5D0300F8D48E6D6B37BCFED2C36FBEFCEC6F + 975AF1DA9CD7378BBEEB97806FCEF5EB2D7E3A01909B51A16F4C3D2D56120011 + 2A09905A4F09E844409200735A40D7321D602603E9A79C75D5F033CFBFF694DE + 7D870FB6FA00009FD8B4BE78F5AB2F3CF4E65BAFFC69A5D595E06E067C4902F4 + 30BF39DC2F45077E3DD2AC47A0632AF88B584A0034BD2E400427013A11D0A301 + C1C9C0C1E06FF4D38F3B71D6A0B32EBCE1E44183C68EB4FA008038B576EDE265 + 2FFFE3BE373F78FBAFEBACAE0EFC529B494070D037EFFA75E03783BFE6E921FF + 60B1980008F9BDF5EF2E75A844409280E011019D08842A69138F39B7DF99E77C + FBD8C1A3A78ECB4CCF91110300408CABAAA9AC5AB3F4D345AFBDF8BB0F3FFBF8 + DF7276BFBEB30F55E46BC177FCE6223F33F0C7DC5DBF29561300612601C24C02 + A4AD47035A1A11D0C980991404DAA9195919679E77EDE8A3679C3FA9DF801EC3 + 9392BBCB6B01006244634349E3C6F5DB577CFCFE73735F79E181A575D507CC3B + 7B33D8870AFAE61DBFBEEB97801FEAAE3F2683BF88E5044033A704E4CFA31301 + 9D04042702663220015F6A1DFCCD12B85E50D8BFF3395FFEE184A229A74CE8DE + 63080F1C02000F2BD9BE7AD3BCCFDE9AF7F23F7FB5A074C70639BC4702BC0474 + 1DE47531AF9B413F38F0EBE0AF03BF19ECCD4420E6C44302A0B59408E82440FA + 3A0908352A2045077E3309D075CA8831C7753FF6F80B460E1A3A7550CF7E8307 + 6666304D00006EAAAAAEACDAB671C5BAB5ABE6ADFDE8BD7F2C5BBEE40339AE57 + 82B819DC75D00F0EF8BAE8A0AF6B7DB76FDEF1C74DE0D7E2290110F2E7D17F26 + 5DEB910033199062260252EB2440FA3AE8872AF275AB24A64E3EF6EC5E93A69D + 3564D0D0A2C13DF2FAF54BEDD245461200000E9127F26DAED8B461E3AAF96BE7 + 7EF2F2EACF3EFAF7562B1EEB20AE037FA82281DFFCBA19F0A5D6015F077DA975 + A0D7C15F6A33118869F1960068A1460344A844A0A56440DA4141FF90B62E819F + 4B4E4E4D3D7AC6F97D068F3AA677F7EEFD0BBA16F42EC8CCED9E9FD7A9F9A8C4 + C402F3F701001C813C84A7625FC2EEAA5D25E565A55B4A4B4A3694AE29FECF96 + 8FDF7F6E7343439D047033789B457F4DB775FF4841DF0CFC222EEFFA4DF19A00 + 68E12402724D6A09E4BA0E4E0674FFB0C01F54EB72F0F552D33353468C3AAEEB + A06113BBF5EA35A420B76B616E4A46765A7A6A7A7A4A62665A7266525A5A724E + 6A4A5A5A5A736A436ACDBEA6548E2B06106FE498DDF44E89750975C975F5B596 + 86CABA86AAC6DAFAA6AADA9ABA9A9AFAEAFDB5BBCA76ECDABA7575E9DA95F376 + 2E2FFEA0ACAEA64A076909D8BAD6C50CE4BA368B5C0B0EFA52CCD793A02EB5AF + 02BFE68740237F46F3CF296D3311D0B5149D0C1C0CE0762D01DE6C07D7FA6BBA + E8D7308BBCB62EFA77306B61D58989A9A9A9720D00E2465D5D9D15489BCCE02A + B5EE9BB52E1290838B0EE2C14507785DCBF79A6D5D4B315F5BE85AFF0E9AB4CD + 7EDCD181C72FCCC02A7F76B3C8D7CC122A88EBE06E067A5DEB44A0A522EF21B5 + BCB67E3FB31652EBB630DB00108B5A0AAA52EBA06BD61290A5AD8374A822C15D + 6A33C0870AF66691D7368BBC875934F99A2FF835C048D0D5F467D05260D6415B + 0772B32D451200B9A6EBE0EF31AFE962BEBE6E0B6987AA012056E9E01A5C9B41 + 58B7757096A283B619C075DD5A900F6E07BFBEAE85B4357DCD37FC1E6074E0D5 + E4F3304B70B0965A82B9D90E0EEEA1AE99C57CBD50C514DC07805863065921FD + 50C50CCEA18A19D8435D939F35DBC1B5594CF2755F22C07CAEA5E06B1609DA42 + 82BB0815D45BBA266DF939FD5AA18A26DF0F00F1C80CB6C141D92C12C8A596EF + 3703B95982AF09F939A1BF6E1653A86BBE63061E7C2E38200B7DCDFC9A19E485 + 6E07D742F7838BD0DF23F43561B601209699C1D66CEBC0AD03B259F4D774300F + AE85794D48DB2CA650D77C8D20D33A33386BFA33935A17A1BF57FA663BF8FB82 + DBBAD66D008877663036EBE0B6792D38F08BE0EFD1B5497F2F821074DA269C84 + 40B4764DB4F63A0010EF8E14A8CD801E1CDC435D3311F0C344D0E99850815C98 + 9F6BA804A0A5CFBDB5BF8FD6BE06005E122A306B2D7DCDBC1E2AC0B7F47304FC + 7622A844967C9E47FA4CDBFB99F377052056B414AC8FE4483F275F6FEF6B2308 + 41257AC2490E00C0EF08F2000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000C07F94FAFF7C41D8 - 4937BF6CA10000000049454E44AE426082} + 000000000000000000000000000000000000000000F88F52FF0FC8CDDA5741E0 + 81170000000049454E44AE426082} FileName = 'E:\YandexDisk\Development\Delphi\AErender Launcher\src\AErender ' + 'CC\icon_512.png' @@ -1224,1574 +1224,1574 @@ object SplashScreenForm: TSplashScreenForm PNG = { 89504E470D0A1A0A0000000D49484452000004000000040008060000007F1D2B 83000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - C51E49444154785EECDD077C6545D9F8F1C9A6275BB2D9C2F6BE6C2FC9B6ECD2 - A429202888A0A8D8F07DED282A166C7F5154AC585E2BA888D81510A42BA28022 - DB93EDBDB76CCDA6B7FF79EECE84C9C9B9C94D72EFCD29BFAF9FF9CC3C736F36 - F79C64659FE79C3393A18070EAEDEF367F3700000082AD55F73DD5DBAF077C87 - 240741D093DF537EB7010000D01B3D2900503480AF9124C1EFE2FD8EA6F27797 - BF17000000E190CA843CDE9F4D1100BE45A283BED09DDFBB9EFE8EF6E4EBF8FB - 000000104EE9BC9ADF9DAFA35880B422E1415FE8ECF72E91DFC978EFE9EE7C77 - 24E3CF00000040EA2423998EF7677477DED6D97B92F199818491D42015BAFABD - EACEEF9DD77BDD73F1FEBC44DF273A7B0D000000C1D79D443CDE7B13795F67DF - C7ADABF776E7CF02BA44D28354E869A2ED7ECD8EE37D9D99EFCE7BDDE2CD1B5D - BD0E0000007FE869429DC8BC1977E7BD46BCAF113D7D0DE836121BF4464F136A - E1F51E33E77ECD8E65DCD9D78A7863C33DE7F51E116F1E000000FE162F714E24 - 31B7E7E28D0D99EBEC3D268EF7B55D89F79E44BE16E8800407BD9148726D33AF - D9EF71BFDFFD1EAFF77ABD263AFB1A2391F724AAA75F07000080DEE969026C7F - 9D19BBFFACEEBCC7EBF5CE5E139DBDD78BD76B9DBD1F888B04068988F77BD2D9 - EF8FD76B3267CFBBC75EAF79CDDBAFD9CC6BEE79E1FE1AAFF718EED73A7BAFE8 - EA7500000024475789AFFBF544126B776F9339D36CF6D7D8AFD971BC79D1D96B - 86D79C11EFB5CEBE0620714142BC7E4FBA9A3363F7FB2436CDE635DFDB39AF5E - B8C776ECA5B7AF0300002039BA4A701379DD7E8FD7D8DD0B199B66F4664E7436 - 6FF7C2FD1E91E81CD086C405B678BF0F9DFD9ED8AFC9D8FD5E13DBAFB9C7A6B7 - E7853D6737E11EBBFBCEE684D7D89EF3D2D5EBF1F4F4EB000000A2A6A7096C57 - 5F675EB7DFE71EBBDF136FCEF4EEB1BB19EE39BB8F37B6D9AF09F7EBB678AF75 - F63588101213D8BC7E1FBA9A93B13B36BDD7FBEC79AFB1BB09E9FB9D197ABED6 - 556C7A33165EAFBB253AD7959E7C0D00004014F52451F5FA9ACEE6DCBD90B1D7 - EBEEF9CEE216A779BD6637E135B6E7841DC79B17F6D848740E114462126DEE9F - 7F67BF0FF66B3276C7A6778FBD62BB0949EECD587A3BD98F37F66AA2AB58B85F - B7B9DF67B8DF070000007F899718BB935F134BEF7E9F3DD7596C376127FFF1C6 - D24B2C64ECD544BC58985ED8F3C21EBBB95FEBECBD0831929A684B24C135F3D2 - 7BBDDF9E37637713D29B04DE24FCEEE695ECDBEFF57ADDBCE6D584FD3ED39BB1 - B0E7EDDEE86E0C000080D4EA2A998D17BB7B2163F77C5749BA34E195E84B335F - 1FEF75BB79BDD7FD1ED3847B6CC49BB7B9DF8F0822798986783FE7CE7EFEF29A - 698619DBF3D227928CDB89BC7BCE7CBDFD9E7873666CCF09F39AB0E7EDF70ABB - 3763E1F5BA9778F3000000E81B5D25BCEE5EC8D8EB757BDE9D94BB9375BBD973 - 5EEF73CFD9AFD9EF71CFD94D98F7087BDEF4C2CCDB736EF15EEBEC6B10022433 - D1E0F573EE6C4E7AFB7513DBAFDB09B6D7D824E466CEAB4FE4757B4EC47B8F70 - 8F33C64C98553061D2EC8183078F2CE83F686861FFC2C10505FD0716E4170C28 - C8CDCB2FC8CD292CC8C9C9C9CFCEC92FC872FACCEC9C829CECBCFC7EAA5F4166 - 4E6E417666767EBF2C95DF98D19C75E68F050000801F65B76636B534A9DAC6E6 - C6DAE686FA9A16D552D3D05857DBDCD850D3D4D050DBD8505BD3E0F4F50DD535 - F575B535B535553535A74FD59CAE3E5E73FA6465F5F1E3076A766EAF38B577E7 - BA1AE78FB313683BE9B6937433965ED8B1D77BDCAF75F5BA8C859913F6EBA609 - 772CDCAFBB253A8710912409E113EFE7EA356FE66209F399618C19B74BA8ADE6 - 4EBADDAF25D267BAE29EF4AAB07050F6B20B5E3F72EAACA5E3468E9A32B6A8F8 - ACB10503868CED5F38606C4E4EDE60790F00000090888686BAE3A7ABABF6D454 - 1DDD73E2D8A13D07F66FDDB365DDBF77BFF0EC1F0F54579F6CD46F7327EC89F6 - CDAE38D1DE3477EC6E42DE234C2CECD7ED79C36B4EC49B4740491285F0F1FAB9 - BAE74C2C7DBCB130C9B6BBB54BC2752F716749BDDDEC39FB7D5E5F1F1BCF9C73 - 7ED18225978F1F3B61C6B821C3C68D1D5834746C6EE1A0B1CD750D238B860CE5 - 0A3D00000052E6C4D1CAA6CCBC9C03F5D527F79C3A51B9E7E891DD7BF6ECDCB0 - 7BC58B8FED5A5FFECF13CE5B245996E4DB9DBCDB49BFFB353317EF35E9EDAF17 - EED7DDCDBC4FC6A68F37B6B963E135870093040BC117EFE7E8352F73A619EE39 - 3B3689B83D965E98D84EDAEDF7D8CDBCCF1E7BBDAF5F66666EE66BAEFFF094D2 - C59795140F1D35B9B0A0686CE1C0FE63B2B20A063AAF03000000BED2D45473AA - FAD4E9BDD53527F65456EEDFBAFABF8FAFFECBEFEFDADADC5C2FC9BB24E4F19A - 24D8D2BB8B04EED7CDD8EB0E026162FB35D3843B165E7386D79C88378F809004 - 0CC1E7F57374CF496C9A61CFC56B266177F75E49BF3BC1778F3D5BA6E3922BDF - 3D61C9B2AB4BC64E985E52543C641EC93E000000824C8A02478F1E5EB37FD796 - 552FBEF0E0AAA71FF9F1CE6687F39224E8F19A9DE0C71B4B93B15731C0EEBB6A - 86D79C70C7C26B0E0122C9198227DECFCD6B5EE64C13A697E45B48EC1EC7EBCD - 38D1443F6E7CE12B6F1C5D76C1F50BC64D9859523874D4BC013979C5CE3C0000 - 00104A550D75C7AA8FEC5FBD77F786552FFCE3772B9F79F2BE7DCEB449E8DD85 - 01AF5892EFCEC6D2CCD8AB17EEB130B1F4A6B979CD8978F3F02949DA103C5E3F - 37F79CC4A609AF5892717BDEC476EFD5BA4AFAEDB9D878F1B9D79C75C12BDF52 - 3A61E2EC922145634A72FB170C77E60100008048AAAFAD3974F4E8DED53B7754 - AC7AF6C95FADFCEF730F1C72A62529B7937F19DBB1FDBA24DFEED7EC26AFBB7B - D34C2CEC79E18E0D772CBCE6E06392C0C1FFE2FD9CBCE665CE34617A49C64D6F - 5E377392A49BD8F476F34AF2DDB1998BF5C3464E2878CB3BEF5836614AE982A1 - C3479614140C1AEDCC03000000F0505373725FE5E103AB766E5DB9E2573FFBF4 - 0B470EEC94ED08255137497E67C58078B13449D24D2FAF0B139BD784E94D526F - 5E37B1CD6B4EC49B874F98E410FEE6F57372CF496C9A70C7929C9BD88CED3E5E - B3937B13BBE7637D66666EF65BDFFD95F90BCB5EFDAAA29123CF2BC81A50E0CC - 03000000E8869AA6AA9A13FB0FFC73F98B7F7DF2973FFED4EAE6E67AD97E5012 - 74BB08608F4DF39A733749D2DDBD190B134B13EED870C7C26B0E3E629243F893 - FBE7E3F5F39239D384E9253137BD79DD8CA5376393C4DB63D39BB169F66B6DF3 - 975EF59E09AFBAE29DAF1C3366D625DCDA0F000000244FFDE99AC37BF7AE7BFA - 89477FF6E4530FFF68A73365927C3BD9B77B3376CF4B72EE1E4B3363E9CD5898 - 5EE64C6F9A9B7BCEEB3DF00149FAE05FF6CFC7FDB332B1F4EE26244937B1194B - 1FAF7596E4DBE3589B3DEFFC21AF7BF3A72F9A346DE1A58306164F73E6000000 - 00A4D0C953C736EDD8BCFCC9DFFFEACB7FDFB0E6D963CE9449F84D93A4DD3D76 - CFC56B92B49BDE8C8589ED264C6FD8B1FB35F8844916E10FEE9F87D7CFC7CC49 - 6F8F254917D29BD7CC587ABB99A4DE8EDDADC37C71F1C8FCB7BEE7EBE7CC9C73 - DEA543CF2A5C9C913144E601000000A4D18963479B1A1BAA5F5AB7F69F4FDEF7 - E38F3F7FECD8813A67DA24F976B2EF9E33F3A6B9636992BC9BDE8C859913E635 - 617A9B7BCEEB3DE8032681843FD83F0FF7CFC6C4D2BBC7A649D2EEEEED66127B - 7BDC96E07BB6ACACAC1BDFFEC5B98BCFBBFA5523868CBD20ABB0B0BF330F0000 - 00C0079AAAAB4FEF3FB2E71FCB9F7FF0C9FB7EF1D9B5AAA9A9C9997627FDEE26 - C9BCE9DD63D3246977F77613EEB1CD8EDDAFA18F489288BEE7FE3978C5A6093B - 962689BCBBB79B24F3EE71FB445FA92C7B3C7ED2EC01FFF3A1FFBB7AF2C4B957 - E60D281AE9CC01000000F0B1BAAA1307B6ED58FBC84FBFF3FE07776DAFA872A6 - EC6280576140127BD3BBC7A649F2EEEEED26DCB1D1558C349364117DCFFE39B8 - 7F26127B352189BC8C4D72EF6E92CCBBC76D49BEC738EBEC19CB06BFEB03DFBE - 76E2F859D770B51F000000081EB92B60EBAEB50FFCFCFB1FFBD3E60D2F1C9729 - A749721FAF202089BDE9DD637793245E7A61927E77B3D9B1FB35A4994924915E - EEF3EEF5739039D384F492C00BE94D2CBD24EF269671BCDE9DF4B7C5F3175F36 - FCADEFFACAF5E3C64DBC32337750BE330700000020C09AEB4FD6EEDCB9FDE1FB - EFFEE4EF572D7FF2884CE926C9BF57314012FB78BD24EF3296DEC4D20B130BE9 - 4D7373CF79BD072964924BA4977DDEDD3F03134BEFD54CD22FBDBBD9C9BEE94D - 6BBBCA6F8F975E70DDA837BEEDB36F1C337EE465FDFA0DCD71E6000000008448 - 4B4B65C3DE5D071EFFEDBD5FFCEDBF9FFDC37E67CA24FC7621C02E0848B3937F - D3BB9B24F0A6F76AC2F4861DBB5F438A492289D48B779EED793396DE1E4B221F - AF374D9279D37B3593F4B725FE17BFFA5DE35FF7865BDF3472CC904B58CD1F00 - 0000083FD93DA0FA54E5DF1EF8FD9DBFFEDB633FDFE54CB90B01EE2280DD24D1 - 37BD5701C0DD0BE9EDB1618F6DF1E6912426D1446A799D677B4EC6A6093BB613 - 7EE9255937B149F03B6B76F29F75D5EB6F99F2EA6B3EF096ECBC411714170F91 - 3F0700000040841C3B76B4B5B1EEE4B37F7DE0FBBF7AF88FDFDEEA4CD90580CE - 8A00763389BE8CA57717004C13EE58D863C36B0E494402985AEEF3EB75BE65CE - 3461127D6976F26F1700A4791500CC157E33362DF3FA1B3F3FFB922BDEF99661 - 23C62D756200000000509587F7BCF0C45FEFFED51F7F79FB3A279464DEAB10E0 - 55149044DF8C257197D8AB0820636162696EEE39AFF720094CD289D4B0CFAFFB - 5C9B587A777327FE76B3137E3BD977F7B176DD8D9F9D79D96BDFF7AEE2212316 - 3831000000007470ECE8C1158F3DF0FD9FFEF1FE3B3638A1BB08E0EEDDCD24FF - 769324DEF4EE264C6FD8B1FB3524892499483EF779F58A4D13D24B72EFEEED66 - 27FC766B4BF6AD387BF28CC5833FF4F19FDFD47FD0C82B070F1E6CBE0F000000 - 00783A7EFC786BD589030F7FF7CEB7DDB36DD3F213CE54A3D3ECE4DF347701C0 - B4CE8A00A617D29B66EB2A462F9118A6867D5EDDE75862AFE695F84B42EFEEED - 64DF8E632D333333E7A39FFBFD650B4B2EFFDFEC01F9839C390000000048585D - 5DDD8955FF7DF4A7DFBCFDFAC79B9B9B1B9C293BF9B70B00762C09BEBB374D12 - 79D37B359B1DBB5F432F49C289E431E7D3EBBCCA9C69427A49EADDBDDD4C926F - B77609BFD5B2AF7CFD87A75CFBE6DB3E5454346CB61303000000408F9D387EB8 - E24FBFFECA771EF9E35DB250A0B91BC0AB998280DDEC0280BB08607A21BD696E - F67B900426194572C8F9F43AA766DEAB7925FD5EC9BF24F9A6CFD663E9B3C64E - 9C35E896DB7EF5B60993C75E93913144BE16000000007AADB5F568F3B6ADBB1F - FCF697DEF48BFDBB379E72A624E197628024F9EE4704EC02803449F44D6F373B - E97737B778F3E8014940D173EEF3E7753E4D922FECB1F4124B222F63D34CC26F - 9A7D955FE258D22F4D6EF7FFE0277E79E19273AE796F5E41FE10670E00000000 - 92AEAEA6F6E88BCF3FF0C3EFDDF9D6675C8F0598628089E315024C9358127A19 - 0B531010F6D8E69EA320D0435E092B12679F3FF7B934B13BE19766C626E1B77B - 93E8DBBDDD6205804BAF78D7C4EBDFFEC50F0E1D36A2D4890100000020E52A8F - 1C58F9DB7B3FFBDDBFFDF59E9D4E680A0076F26F9A24FAA63789BFDD9B2280F4 - 662C4CDF59D2EF7E0D097227AD488CFBBC79C5A6093BE137BD6992E4BB9B57D2 - 2FF3D943478CEFFFF1CFFDFEC661C3275D573464A8BC06000000006973E26865 - D3E1835B7FFFF52FBDF1579507779D76A6DC8F04B80B01EE2649BE6926F9B78B - 003236CDD6558C2E980415DD639F37F73994D8AB49022F7D67C9BF49F8656C6E - F56FEBDF77EBDDE79E77E11B3F90975F78961303000000409FA9ABAD3EF4AF67 - 7EFBFD1F7CFD5DCF39A149FEED5E92FD788500771140E64CD2EF6E363B76BF86 - 2E48428AC4B9CF971DCBD83421BD24F9A6376349EEDDC9BF49FA4D01C04EFC73 - 468F9B3EE0D35FFECB2D23474FBDD88901000000C0370EECDBF2B73B6E7BCDB7 - F7EDDE58E584667D00F7DD0092E0BB0B0192FC9BC4DF2E06985E486F9A618F85 - 3B461C9274227126B917EEB169C24EF8CDD84EFADD89BE69B1845F8F73657CD5 - 751F9E7ECB27EFFF7AF1B051F39D18000000007C65C0C021935E71F15BCFAF6F - AC5DB765C38B279D29C97D849D1FD9F9923DF6625E97C4DEEB7D9D7D2D3AC189 - 4B8CFB3CD9B18CBD9AF9259784DF5D0088570868EB333333733F7EFB03572E2C - 5BFABE7EFD864A5100000000007CABA5A5B261C5BF5FF8BF3B3FFFBABF363737 - D73B53F69D005E7704B8EF0670DF1120BD5733ECB170C7709104155DB3CF937B - ECD54CC26F927E77F22F89BEE9EDC43F361E3B7666D127BFFA975B468D9AFC0A - 270600000080C038B867DB335FFEF46BEEDAB367FD092734C9BFBB102089BEBB - 10600A00A618D0DD22803D86074942119F49E80DF7D86EEE84DF4EFA25C137CD - 24FAA6C9D5FDB6DBFE5F73DD47677CF833BFBCB3B878E45C27060000008040E9 - 3FA878E205AF7ACBF9CD0DF5EB37ADFF8F3C1220243FB2F327C36BCE30735EAF - 19F66BF1FE1C6814003AE7FE6532BDBB995F6677E26F3777F26F92FE5801406E - F9FFD41D0F5D7DF9A5377C36A77F719133070000000081949D9D3770EE8C05AF - 9A3AFBFCD32F3CFBFB6DADADB18BF3267F324C1EE5C53DEFF53E3317EFCF800B - 27CA5B67BF483227BFA8C28CCD2FAE197B25FFEE2689BFF4D91326CC19FCF12F - 3FF0919123279FEFC400000000101A07F66FFBE7D73E7DCDB776EE2C3FEE84E6 - 7100F3288057B31F09B01F05B0C7C21EDBCC9CD76B9126C9293A9264DE9DFC9B - 3993FC9B645F9ACCC74BFAE52ABFE93B5CF9BFFA868FCFBCF9E33FFBDAE021A3 - 663B310000000084CA8001C5E32FB8F8860B9A55EB868D15CF4B11C0E45A5E7D - BC3949E6ED39776C73C7D03831ED75F60B649A90DE9DFCCBD85D0030BDBB0890 - 2DB7FCDF76C7C3D74C9AB2E8DD454386CA6B00000000105A2D55958D2BD7BDF4 - E3AF7EE6AA07F52E01EEBB014C2F57FFED3B01CCDD00D24BE2EFBE13407AD36C - F6EB7098841667D849BE61E6CCBC49FADD57FE4D01C04EFC4D6B4BFC9D963376 - E2DC419FFED243B79E356AC2794E0C00000000917168FFCE7FDDF199D77E7DCF - 8EB5B2406083D3DC8500D3EC42802900D84500D30B199B66F39A8B2C4954D131 - C937DCF376F26F127ED34CB26FC66D09BFDDE62E7CE5C8CF7DF5A16F140F1D35 - CF89010000002052FA0F281A7FCE2BAE5FB27DEBEAFF1EDABFADD69972E75DA6 - 17F6BC17794D12FC78EF31F39DFD1991C1493843CE83FB5C9839336F5FF197DE - 5D003089BF69EDAEFA4B7FF1656F1FFF8E9BBFFDD5C2FCA2114E8C80A8A93EAD - 0EEFDFEFF4D5AAB6B646D5D5387D8DD33B63E9ED719D2B96D6D820454D000000 - 74A65FBF0C959B97AFF20A0A547E7EC1995EB73C278EF5B171BEF37A61DBEBF2 - DAC04183D4F051A3545696FCD31B41515D7BE2E0DDDFBEF993FF78EABE5D4E28 - 57FFBBBA1BC06EE60E00FB8E0061AEF84BB379CD458E496EA3CA1CBFFB3C486C - 9A4834F997FFC77127FFD272AE79E327665EFDA6CFDF317040FE202786CFB4B4 - B4A823070FA8FDBB77A9FD7B76C7DA01A7ED73E293C78FE977010000C0AFFAF5 - EBA7868F1CA5468E1DA7468F1B1FEB47E936B068B0CAC830FFB4879F9CAAAA3D - F9E7DF7CFEB6877EF3F50D4EE82E00982280E9935104B0FBC889FADF0273FCF6 - 7990B169A2ABE4DFBEEA6F92FFD8157F337EFB7BBEB9E8CAAB6FFA7C66EEA07C - 27461FAAAEAAB212FC5D4E827FA63FB86F9F6A6A92FF5F01000040D81414F68F - 1502DA8A02E3C6C7FA11A3C7A8EC1CF9A73BFA5273FDC9DABF3CF8D32FFCF247 - B7BEE4847611C08CED3B01DC8580EE1401CCD89E8B1493E4468DFBB84D6C7A49 - F24D2F7326F997DE2E00B8137FE94DF21F7BE6FF43B7DD7BD1FCD22B3ECE4AFF - 7D43AEDEAF5FBD4A55AC5AA1D639EDE0BEBDFA15000000445D46463F3579DA74 - 35AB64819A5DBA409D3D7B8ECACDCDD3AF229D4E1CAD6C5AB5E2B13BBFFB95B7 - 3EE38492F89BE45F7A49FADD8500BB0060927F7711C02E06D8BD11B942803B11 - 8E0AFBB8CDD8F48924FF92CC4B2F89BEE94D8B25FED23EFD95BF5E3379DAD2F7 - 0E1E3CD8FE7E48A1EAD3A7D586352F27FC7B766CD7AF000000009DCBCCCA5267 - CF9CDD561098326326EB0AA4D1F1E3C75BB76F7CFE075FBAEDAA079CD02E0048 - 6F9A24F9A63785809E16012800849CFB78ED58C68926FF7693FF47307D2CF197 - 3DFEBF74D7BFDE317DF6D21B9C1829545F57AB3696AF8D25FB92F4EFD8BC59B5 - B69ABFE300000040CFE5E4E6AA69B3E7C68A0152149838759A72FEADAF5F45AA - 6C58F7FCAF3FFBA10B7ED1DCDC5CEF84F6DD005E7702245A04E82CF18F4C21C0 - 9D10879D3BE1B7FB9E26FF7673FE3FA220FFCE1FBEF8A1F113675FEEC44881DD - DBB7AA17FFF98F58D2BF65C37AD5DC247FE701000080D4CA2F285433E7CD57B3 - 4B17AAB2575CA4060F19AA5F41B2EDDA51F1D827DEBBE43BF5F535B24DA0FB2E - 809E16018449F6EDA49F0240C8B88FD38E659C94E4BF68E8E8015FB9EB5FB78D - 183D71991323894E1C3BAA9EFFDB53EA9F4F3EA6766DDBAA6701000080BE21EB - 07CC59B0509DFFCACBD5A273CF8B6D6188E43A7C60C7F39FB8F9BCAF9CA8DC57 - E584C92A027496F887BE10E04E8CC3CA9DF01B327627FFD29B26897F57C97FEC - B6FFF193E70DFE7F773E7A7BD19051739C1849D0505FAF963FFFAF58D2BFE6A5 - FF726B3F0000007C292F3F5F2DB9E0C2583140EE1090E20092E3C4D1FDE5FFEF - 13577C6ED7B635C79DD07E1CA0B32280290498966811800240C0B98F2F5EF2EF - 4EFCA5259CFCCF2BBDE4AC8FFDBFDF7CB5FF80A1139D18BD2049BE3CD32F49FF - 7FFEF18CAAADA9D6AF00000000FE3764F87075DEA597A9F39D366ADC783D8BDE - 3875F2E8F66FDDFEC64FAD59F9F42127EC6911C04EFC3B2B0288D01602A25400 - 708F4D9364DFEE4DE26F170024D9F74CFEC74F9A57FCA5BB9EFE26C97FEF1CDC - BB47FDF3A927D4BF9E7A5C1D397840CF02000000C13579DA0C75FEAB2E57CB2E - BC440D183448CFA2274E5755EEF8CC2D977CA48B3B014C6F0A00A649426F927E - D39B66C41B878A24BC61E43E2E3B96B1DDCC157F19772BF92F1A3A6AC0B77FB0 - F22B45C3CE9AEDC4E82659BCEFB9BF3DA5FEF6F0836AF3FA0A3D0B000000848B - EC1C5052B64C5D76CDEB63BB09646448EA81EE92C7016E79CFA2DB4E54EE376B - 02D84500197BDD05E02E02B80B0076B26F8F853B0EBCB0FEE6D9C7E51EDBCDBE - FAEF4EFEA599E45F12FE76C97F6E6E41DE5DF7547C8E05FFBAAFB1A141FDE3F1 - BFAA877EF32B5579E8A09E05000000C26FCA8C99EA756F797BAC204021A0FB0E - EEDBF1C2876F9A7D7B7D7D4D9D139A22805D08307702B80B00D2E2DD056027FA - F1C6A110D6DF38735CEEE33309BF69E6EABF24FBA69784DF4EFEEDC43FD66766 - 66E67DFB276B6F193B69E6654E8C04C99EFD4F3FFC907AF8F7BF56278E1ED5B3 - 00000040F48C9F3C455DFDE6B7A925E7BF42F5EB27A90812255B047EF47FE6DF - D5DCDC6C17014C01C05D0430770348D26F7A770140629B49FC2900048449F06D - 26E137AF49B3137FD324E977DFF26F0A00D272BFF2BD17DE317DF6D21B9C3112 - 50537D5A3DF1C09FD4A37FFC9DAA3A7552CF020000001835769CBAFACD6F55E7 - 5C74A9CACC92340489D8B0EEF95FDFF681737FE10CEB9DE65504308500F7E300 - A6106027FEA6206093980280CF99E3711F9749F8A599228049FE4D01C024FE32 - F64AFC63C9FF6D5F7EE49A454B5FFD5E678C2E549D3CA91EFDD3EF62C9BF1401 - 00000000781B3662A47AED0D6F51175CF66A959D2D6908BAB2FC85477E70C7A7 - AF7AD019DA4500772140927DBB1020C9BEBB0860927D77C26F62F77C6049B21B - 2626F137BD3089BF3493FCDB89BF69F6957FE9EDC43FD63EF8C95F5C3C6BDE25 - 1FCECFCFB7FF7CB8C8EDFD7FB8F71EF5FD3BBEA02A56AD508D8DF27710000000 - 403C35A74FAB95FF7941FDE3B147628F048C9B345965655108E84C7EFF610BC7 - 4E98BEEFBFCF3FB45B4FD9246997BCCD2B790F4D42DF5D6129009804DF306333 - 6F9A49FC656C27FED29BC45F7A6976F29FFBD6777F7DD1B2F3AEFFF4E0E22161 - 39674977E2D851F5EB9FFC50FDE0AB5F8CEDE5DFDC2C45360000000089AAABAD - 516B5E7A51FDED9187546B6B4B6C2B41D945001DC985D9E2C163960E1A3C7CF3 - 9A154F1D72A63A4BECCD6BEE5E72C3AE987C32F0C2F29B64FF30CCD8FC904CB3 - AFFECB719B66AEFC9BABFE1D0A00AFBDFE6333AFBFE6C35F2A282E96182E2D2D - 2DEAC987FEACBEF5B9DB9CC47F4D2C06000000D0730DF5F5AA62E572F5C2DF9F - 56A3C68C5523468FD1AFC0965750D0EFECA9B396D5D635ACDEBCFEDFF1561AEF - EA8ABFE4895EE2CD0756D00B0026B937DC6349F685B9F26F927FE9CD957F73D5 - DF1401ECE43FF7C257DE38E186777DEBCEFC4103FA3B315CB66E5CAFBEF1994F - AA671E7B845BFD0100008024ABAEAA52CF3DFDA4DAB363BB3A7BE61C555058A8 - 5F81D12F2B2F7BF28CF3971D3FB2EB3FBBB6AF95C5C7ECABFC76F2EF1EBB137C - 3367BFCF9D63BABF2650C2500030BC7E30D224D997DE24FED29BC45F7A93FC4B - C26F92FF5CE9E72CB864C47B3FF5B3AF0FEA3F608813C372BAEA94FAE50FBEAB - EEB9EB1BEAF8D14A3D0B0000002015F6EDDA197B2C40D60598327D065B07BAE4 - E666E7CD587861D9B64D2B9E3B7C607BAD9EF64AFEED399B57F26FC87C2804FD - 40CCE7B78F43C67693BF19A6D9C9BF7DC5DFB4B62BFFE3C7CF1EFCA5EF3DF3CD - FE03864E746268F21CD2B34F3CA6EEFFF1FFC556F907000000905E63264C5437 - 7DF8636AC6DCF97A06C6E9AACA1D9FF9E0851FDDB5ABE2B813C6DB22D0EC0A60 - 7606B0770770EF0A601704CCD89E0B143B710E2293E41B2636CD4EFE4D01C09D - FC4B6F12FF58CBCCCCCCFBFEBD5B3E3F62F4C4654E0C6DF7F6ADEA9EBBBEA936 - 55ACD53300000000FACAF9AFBC5CBDF9DDEF53830617EB19884307763CFFFE1B - A7DEDEDCDC5CE784A600609A24FD5E4500BB00D05511C08E034512E220B2937C - 9B49FA853BF1EFECEA7FDB957F69B77DE5AFAF3B7BC6A26B9C311CB53535EAB7 - 77FF48FDE86B5F5695870EEA59000000007D69D7B6ADEA99471F560585FDD5C4 - A9D35446863B3D8AA6FE03068F9B74F682EA7FFDEDD75BF4943B618F97C0BB13 - 7D39A1EEF79A931CC8931DE40280DD0B199B2649BFF4727C7601C04EFCED0240 - 5B11E035D77D74E639E7BFE153B29AA413475A6B6BAB7AF19FCFA8AFDD76AB5A - BBFCBFB118000000807F343634A855FF7941AD7AF1DFB122C0E0A143F52BD156 - 905F3CBFB5B565E5A6333B034822639A88D71B124B3EE99E0FBCA015004C826F - 98B19937CD5CF9F74AFE4D6BBBE55FB7DC7113E714DF7CDBCFBF3C7050F14027 - 8EB4BADA5AF5E3AF7F59FDFEE777C7F62205000000E05FB230B7ECCC95959DAD - A6CD9E13F9BB0162DB03CE5A5CF2E2738FFCBDEAE411B9E5DF4D927B3BC137E3 - EE24FD26FF0C8C2016000C333627DD343BF93705003BF1B7AFFAB75DF997E7FE - EFF8DEF31F1F523C72A613479A3CEB7FC7AD1F56EB56AFD43300000000FC4EEE - D8AD58B95C6DDDB841CD5BB844E5E6E5E957A229273BAF7FC9A24B473DFE971F - FCDB3937F25CBF3089BF57C2DF55F26F5E37B968E004B500609F7093F40B77E2 - 6F9ABB00605FF99738F7535F7CE8B5D36795BDCE194796FC1FC6DF1F7D587DEB - F3B7A993C78FE95900000000417268DF5EF5FCDF9E5293A7CF5443CF3A4BCF46 - D3808143C68D9F3CEFD4737FFFADAC07608A00865D0870731706DC497F208B00 - 412C00B8937FD324E9975E8EC92E00C4BBF22F2D76EBFF95D7DD32E3DC57BC29 - D2CFFDCB427F3FFAFA57D483F7FF52B534CB229800000000824AFE7DFFCF271F - E39100C7A8C143E7D73636AED8BCFE3FB235A049FAED26DCBD21B19C3CF7BC08 - DC490D4A01404EAC693693F44B93B169EEE4DF2E02D857FF73468F9B55F4D14F - DDFBE50145C5839C389264F5D03B6EFD905ABF66959E0100000010743C127046 - 466E41E6B41965F35F7CE1A1BF559DAC94F500BC927E3BC177BFEE66CF9B1CD5 - 9DABFA52900A00762F4CD2EFEE4DF26F1700DC57FE63850079EEFF2BDFFBD7AD - 83878D9EE5C49113BBE5FFAF7F3973CBFF09298601000000081B7924E0B9A79F - 545366C8230123F46CB464E7E60D9857F2AA514F3CDCB61E8049FAED64DE8CBD - E6EC5C34B0FC5E0090936C9F683336F3D24CF22FC7620A0092F4BB0B00EDAEFC - 4BFBF8ED0FBC66C6EC65D73AE3C8A9ADA9563FFCDA1DEAA15FDFA75A5ADC8FC2 - 000000000813D9D94B1E09C8CC8AEE2301038B868C1F3F61EE89E7FEF13B590F - C04EF6DD89BFBB175E736E2647F5AD2014000C333627D53449FA4D93E331CD4E - FEDD4580DC57BFEEE6E9575EF696DBE47610278E949D5BB7C456F9DFB066B59E - 0100000010766D8F046C58AFE62D8AE62301238B879454D5D52DDFBAF1BF279C - D0EB4E003BB6E73A637255DF0B4A01C03EA126E9178924FF1DAEFE8F1E3F7DD0 - CD9FB9FFCB79FD8B8B9C38525EF8FBD3EA6BB7DDAA4E71CB3F000000104987F6 - EF8B3D123067C12255545CAC67A3A15F6E61E6D4D9CBE6BFF4FC837FD7EB0108 - 3BD18F97F8BBC79297DA7381280204AD0020BD6992F44B2FC7600A0092F47B15 - 00DA8A00999999B95FFECEF31F1B3A74D46C278E94C7FFFC07F5E36F7C955BFE - 010000808893470264AB40791C6058C4D605C8CDC91B3077E1A5239EFCCB0FBD - D603B09BE11E4B1E6ACF05865F0B0026C937CC587A93F89B2BFF26F937CD4EFE - A56F77F5FF3D1FFDC905F3175EFA16671C1972ABCFEF7EF613F5DB7B7EAC6700 - 000000445D5363A37AE16F4FA9B11327A9D1E3C6EBD968183870E884C1C52377 - BDF4EF87F7EA2993F4DB574BCD9C49F64D6FF39A73E7B3BEE1E7028061C6E624 - 4A8B97FCBB0B0026F18F8D878D9834E8BDB7FCF0FF65656517387124343737AB - 9F7EEBCED8D57F00000000B0C9DDC1FFF9C733AA78E83035F1EC697A361A468F - 9D3EF39F7FFBED9335A78F3738A13BD1773723DE58D879AC2FF9BD00609F4049 - F6ED02807C76BB0060127F93FC9B668A00B99FBBF3B1B79D3572E242671C090D - F5F5EA3BB77F36F6DC3F00000000786B552BFEFD9CCACCCC52D3E7CC8BCC0E01 - 59D93905D3662ECE7CFAD17BD63AA124F3F11E0710A637E2C5BE3E797E2E00D8 - 27CE24FDA6B79B3BF9B70B00B1C45FFA8B2FBB69F2E557BFE123191905F235A1 - 575D55A5EEFCD447D5DAE52FE91900000000886FDDAA154E1E714ACD5BBC2432 - 4580C143F2A7551E39FAC28EADAB4E3AA149F8BD760710EE381EDF9E3CBF1500 - E444996693A4DD7ECD24FE768B77E55F16FECBBBED8E873E5550188DD52D8E1F - AD545FFCE8CD6AFBA68D7A0600000000BAB675E37A7560EF1EB560D9B9AA5F3F - BFA58BC9271788274F5B34FED13F7FE71F71160414EE58C49B334C4EEBCE6DFB - 94DF7EA25E27C924FCA6B79B49FCDD57FF25F16FBB03E0E64FDD7BF18C39E75E - ED8C434FFEB27EE1960FA8834E0F00000000DDB567C776B565FD3AB5E8DCF355 - 76B6A455E1565030E0ACE1674D3CF0E2730FEC74C2AE760570C7812249B49F49 - D26F17054CF32A04D8C50019C70A006327CC2A2A3BEFF53739E3D0DBB66983FA - DC07DFAD2A0F1DD43300000000D07DE52B5E525FFCE807D5A91327F44CB82D7B - C5EBDF397ADCCC81CE50F248FB02B3C92FA5B9F3503B4715F6D897E420FCC47D - C2EC936A4EB239F9E60761FF60CC55FFD8957FE93FFBD5C76F1A3E62DC5C671C - 6A152B97ABAF7CE223AAA6BA5ACF0000000040CFC9A3C5CB9FFF975A74CEF9AA - A0B050CF8653665676FED93317E73FF5C84F5738A1B9C29FC8A280A6B79939DF - 1503FC52003049BE7D824CD22F4CF2EF5504B0937FBB0090F3EAD7DD3CBDB4EC - B51FCCCF2FF0DD894F26794E4792FFFABA3A3D0300000000BD77FAD429B5E6A5 - 17D539175FAA7272E51A6B88F5CB9BDAD850BD7CEBC6978E3951678F02B89B21 - 6377EE69625FE4A426C1F61B3939E604C96794B19DFCDB63772120560CC8CCCC - C979DD0D9F7A5F71F1105F9CE854D9BF67B7BAF3931F23F9070000009012FB76 - ED545FFBD4ADAABE3EDC3987E48ED7DFF8D9F74A2EE984893C0A608F4DCE2AEC - 7CD657E403FB813939766F9F44D3CC093627DFFC50CC957FD3E77EF4F3BFBD7C - DACCC5973BE3D03A567944DD7ECB07D4896347F50C0000000024DFD12387D5AE - 6D5BD5D20B2E52FDFA494A164E79F9FD878E1E7BF6B1179EFDE33627B4EF0270 - 8F85E965CECD6BAECFF9E9276727FFF6D8F4A608609A1400A4D9D598583160EA - F4C5834B975DF136671C5AB2CFBFDCF65F79F8909E0100000080D459F59F17D4 - 4FBEF955D5DAEACBDC36694ACFB9EA6D93A62E18EC0CCD056777DE29CD9D9F7A - E5B0EEB93E271FBC2F9993629F10199B13E83EA9E6C49B5E7E20A6C5AEFC4BFF - D93B1F7DEFB0A163663AE3506AA8AF57777EEAA3ECF30F00000020ADE42E80C6 - C6063567C1223D133ED999D9B9D3A6970D78E2E11FFDD709CD157FFB0E00D384 - 3BB6D97326E7B573DFB4F34301C0DD9B661701E4734A93B1A9BCD80580B6E4FF - 756FFAD49CB90B2E7F4F7E7EBEF93343A5B9B959DDF585CFC4B6E50000000080 - 74DB54B1561514F6575367CED633E1D3DA2F67526666BFD51BCA9F3B22A1D3E2 - 1501CC6300C2CC09D3FB8A24D47E13AF08601702EC660A01B1FECAABDFFFF6C1 - 83078732F9975B6DEEFED6D7D48A179ED33300000000907EBFFCC177D5734F3F - A9A3F0919CF2D54E6EE90CDB724DDD7BE5A4266FB57358D37C453E6C5FB24F8A - 7D92ECC4DF9C50E9CD09373F00B9F2DFB6F8DF756FFDDCBCC5E7BCE64DCE3894 - 7E77CF8FD5E30FFC514700000000D077E4C2E4941933D588D163F44CB8E4170E - 1CDEDADCB276DDDA7F1E7642FBEABF7D378030F3C23DB67B93FBF61949ACFB82 - 9DECDBEC79BB722263D3A400608A0076CBBEE48A9BDEE0F4A1F4D89F7EAF1EFC - F57D3A0200000080BE258F277FEBF3B7A9AD1BD7EB99F0B9E4F277498E69AEFE - DBCDE4A576AEEA95CB9A6678CDA58D7C303FB04F80DDDB27D39C5C93FCDB4580 - EC2BAFFDF0D9C3CF1A57E28C43E7F9BF3FA5EEFDBFEFE80800000000FCA1BEAE - 4EDDF9A98FA9FD7B76EB997019366A5CE9ABAFF9D05467681701EC9CD4CE554D - F3CA6DCDB84FC987F30B7352A49993669F446972624DB34F7CD6AB5FF781EB9D - 3E74766CD9A47EF8D53B740400000000FE5275F2A4FAC6673EA1EA6A6BF54CB8 - 5CF1BA0F4AAEE995FC9BE6CE5BED9CD6345F900FD557EC9360C6766F9F387352 - CD0936273FD62EB9FCA689B9F9C54B9C71A8D4D654ABBBBEF059D5D4D4A86700 - 000000C07FE40E807BEEFA7A6CE1F2B0C92F2C2EBBE8F2774C7086EDF250A7D9 - 0500D3DBB9AC70F7C21EA7957CB074920335CDB0E7A4999365C6A699936BB7D8 - 897FCD1B3F765DD856FE97BF383FF9C657D5A1FDFBF40C00000000F8D7BF9E7A - 42FDE3F1BFEA283C24D7BCFABA5BDD7701B89B9DBB7AE5B6A6195E7329271FC8 - 2FCC814B6F9F3C7332CD8935273DD6969E7FDDE83163879DEB8C43E5E9871F54 - FFFEC7DF750400000000FEF7F3EF7E4BEDD9B15D47E13166C2F07325F77486ED - F251A7D90500D39B66E7B8BE201FAA2F99645F7AAFB169F609352D76C2AFBFF1 - D3D765640C91D74263E796CDEADEEFB3E81F000000806069A8AF5777DDFE5955 - 5F17AEF50024E7BCEEAD9F7EBD337427FED2EC9CD5B47839AEF47D463E809F98 - 93624E8C194B3327D79CF0AC92C5979D553478F42B9C7168C49EFB77FEC2F0DC - 3F0000008020DAB76BA7FAD977BEA9A3F0185C34FAC2B90B5F7996336CCB499D - 6617014C73E7B5BE211F281DE4A0DD076ECF99B1DDEC936827FEE60467BDE96D - 5FB8B668C850990B85D873FFDFBC531DDCB757CF0000000040F03CFBC463B116 - 26927BBEF9A62FBDCE19B6CB4BADD8CE5FBD725C618F0DAFB994485701C0661F - 98395069F2594C6F377362ED963D63D6B9C513A74DBCC41987C6D38F3CA4FEFD - CCDF740400000000C1F5B3BBBEA1F6EEDAA9A370983C75C2A567CF5A5AEC0CED - 2280DDDCF9AC9DEB9A66D8E3B4900F924E5E076B9F04333627C87D324D7525EB - ADEFB9F3EACCCC6139CE3814766EDDA27EF9FDBB740400000000C1565F5FA7EE - FAC267627D58480EFAB6FFFDC66B9D615B6E2AD3AE66E7B4D2847B6CD8E3944B - 7701C0701FB034F92C76739F44D3B2C64F9A3370CAD459973BE35030CFFD3736 - F2DC3F00000080F0D8BB7387FAC5F7BEADA370387BDAAC2B9C9C749033F44AFE - 4D73E7B726EF35EC71DAC807E92BF6093063D3EC13654E605B75E5A6F77FE7AA - ACDC41F9CE38F0DA9EFBDFBB47CF0000000040783CF3E823EA5F4F3DA1A3E093 - 5CF41D1FF8CE95CED0E4A926679566E7B2EE3C57D8E3B4930F952E5E076CC6A6 - D927CB3E896D2D3333277BEAF4C5AF74C6A1F0C2DF9FE2B97F00000000A176CF - 5D5F57C78E1CD651F04D737252C94D9DA1E4A9A60860E7B1766EEBCE7B857B9C - 16F26152C91C94FB80EC79D3CC89B14F9469E62466BEF1ED9F9B97575038C419 - 075E4DF569F5CB1F7C4F4700000000104E75B5B5EABE1F8627F7C9CB2F1C7AFD - 5B3F33CF19B6E5AABAB973593BD775375BBCF9A4920F924EF601D9BD69F68992 - 669FC8D823008B975D7D91D387C2EF7FF65375F2F8311D010000004078FDFB1F - 7F576B97FF5747C1B7F8BCD75DE8746D8FAA5BCD9DD7DA39AFB07B334E0BF930 - E9660E529A3919F6C991669F3C69B1133A74E8D882D1C5A3CB9C71E0EDDCB259 - 3DF1E09F750400000000E1F7B3EF7E2B348B9F8F1D3C7AA9E4A8CEB02D677535 - 779E6BE7C0A6A5957CF3BEE43E0132769F3033CEBAE19DB72FCB2C2ACA73C681 - D6DADAA2EEBEEBEBB11E00000000A242163F7FE477BFD651B0496EFAC6777C61 - A933B4937FAF9CD6CE77A5EF33F201D2C51CB43063D3E473B89B7DD2626DCEBC - 8B5EE1F481F7F7471F515B37ACD7110000000044C703F7DFAB8E1C3CA0A3609B - 33FF22790CA043EEEA34AF1CD79D070B7B9C72F22152CD3E187370763327C23E - 31D2CC898B3D53317BEE854333F30AE73AE3403B75E284FAF54F7EA023000000 - 00889686FA7AF58BEFDFA5A360CBCAEB3F77E6BC0B6491FA58DEEAB47805003B - F77537C31EA7847C8054F03A1837FB3DF68991664E98397999D7BCE9D60B8A8B - 8774F6E705C26F7EFA43555D55A52300000000889E152F3CA756FCFB791D0597 - E4A8AF7BE3C72F70866DB9ABD3EC9CD66E760E1C4F22EFE931F910E9601F807D - 40D2CC8990DE7DC24CCB9A3C7DA19CD440DBBCAE5C3DF3D8233A0200000080E8 - FAC5F7BEADEAEBEB74145C53662C9247D5EDFC559A3BBFB5735FBB097B9C52F2 - 01D2C53E48F9BEA60973524C33272A760BC52BAF7ACFE44183868D77C681D5DC - DCACEEFEF637740400000000D126EB003C74FF7D3A0A2EC9552FBDF2DD939C61 - 5B0EAB9B3BC715F69C9D23A7857CD3BE648A01F6814B6C4E56EC045E78D9DB02 - BFF8DF130FFE51EDDEBE55470000000080BFFCF6FED8CE004177F1ABDE2E8B01 - 9AE4DFCE69DDB9AEF47D463E40AA998315662C4DBEB73901D2CB093227A92DCE - CFEF9F3361D2BC739D71601D3F5AA9FEF0F3BB750400000000104D4D8DEA67DF - FD966A6D6DD533C1347ECADCF37272F2B39DA1675EABC7EE3CD834618F5346BE - 71AAD81FDE1C8C34F701DB27479A3941B176DD8D9F9D9F97975FE48C03EB0FBF - B85BD5D6D4E8080000000060AC5DFE5FB5E6A51775144C797905456F78DBE7E7 - 3BC376F9ACD3DCB96EBCBC589A618F934ABE613275F6E1DD0721B1396073F0EE - 9395B970E955815EFCAFF2F021F5EC138FE90800000000E0F6C0AFEE0DFC5D00 - 8BCF798D7B3700D34CBE6BE7C03613DBF332362D69E49BA752BC0390669F00BB - 9913943972CC94FEA3C60E5DEC8C03EBE1DFDEAF9A9B9A74040000000070DB54 - B1566D58BB5A47C13472F49025C3474E2A74866D39ADEEED66E7C27633EC71D2 - C9374E35FB80EC0317766CB758A5E4F56FF9ECE2CCCC6139CE38904E1C3BAAFE - FEE8C33A0200000000C4237701045966D6F09C37BCEDF34B64A89B57AE2B4DB8 - 6377212025CC374B373930F9DEE6204D6C574A32274D5B20CF5004D65FFFF05B - D5D8D0A02300000000403CE52B5E52DB366DD051304D99BA609ED3D90500D3BB - 735FE9D34EBE71AA98831366EC6E6DC9BE1EB7C562C4F009B39D7120559D3AA9 - 9EFACB033A02000000007425E877010C1F3961B6E4B2CED033CFD563AFDC589A - B0C74927DF3CD9DC1FD61C8069E680ED03B74F48ECA42C5E76F5A8BC82C221CE - 38901EFFF31F545D6DAD8E00000000005D59FEFCBFD4EEEDDB74143C79F98543 - 172E7DCD4867D821C7755A6739B1693677DC6BF20D53C9FEC0F60199B17C7FD3 - CC49899DA0B20BAF9BEBF481545B531D2B000000000000BAE7A15FDFA747C174 - EE85D74B2E6B27FED2ECFCD72B3736EC71D2C9374F357340A6998336076EC7A6 - 654E98306F8ED307D2930FFD59559F3EAD230000000040A25E78E66FEAE0DE3D - 3A0A9E0993E74A2E6B27FFB11C57F75E39B1DD524ABE6132787D60F7D8ABB90F - 3C7652E49989A2A1E3673AE3C0A9AFAF8B2DFE0700000000E8BED6D616F5D06F - 7EA5A3E0197AD6C4997A1D00C973BDEE02B07362BB19EEB1FBF51E936F9E0AF1 - 3EB069E604D8ADED049D7FD19BC70D1C903FC81907CEDF1FF98B3A75E2848E00 - 00000000DDF5CF271F5395870FE92858F2F2F28BCEBBF0CD639C61875CD79A93 - E6952B1BF63869E49BA68AFB00849933CD3E7869B113B2F8BCAB0379FB7F6363 - A3FACB6FEFD71100000000A0279A9B9BD5C301CEAD169FFB5AB30E803BE795E6 - CE8B6D5E734923DF3C95EC83B29BFBE0ED3873DCC4D9812C00FCF38947D5F1A3 - 953A0200000000F4D4DF1F7D589D3C7E4C47C13266E21CB30E805D04F0CA85BD - 5ACAC8374D36FB43DB07619AFB40CD09899D9CCCCC9CCC61678D9CE18C03E7A9 - 871FD42300000000406F343634A87F3EF9B88E8265C090513324B77586761140 - 7A3B178E570410F63869925900707F38F70777377312642C7DAC5D72E54D93B2 - B3FB173AE34091BD2A776ED9AC2300000000406FC95A00ADADAD3A0A8EA2C2C2 - FE975CF18E49CEB02DD7759AC97DDD8500BB09D31BEEB8C7E49BA742BC0F680E - CA3473224C31A0DFC2259707F2F6FF7F3D15CCCA1400000000F8D59E1DDBD5AE - 6D5B75142C0B965C39DBE93AE4BC4E73E7C55EE2CDF78A7CF354711F8C395073 - D02636D58FD8DCD8B1B366397DA0B4B4B4A87F3DFD848E0000000000C912D48B - ADE3C6CFB40B001D725FDD4C6C482C2D25EC6FD413E6C3D91FD0FD61EDF798D7 - CCD89C80583524AF7060F6D0FEC5817BFEBF62E57275E2E8511D010000000092 - E5B9A79F8CED0A1034439CDC362FAF30DB194ADE6DE7BE261F16666CCF19761C - EF3DDDD2DB02805BBC0F68E6E5FBD94DE6DBE2575DF9EE2999454579CE3850E4 - B9140000000040F2C94E00152B5ED251706439B9EDA557BD7B8A338C9B03EB26 - ECDC599A618F7BCD7CB364B23FB019C79B33071C1BCF2BBD3870CFFFD7D6D4A8 - FFFEEB591D0100000000922DA8BB01CC5BF44AF318803BFF354DD8B17B2EA9E4 - 9BA7837C70FB60CDD8B4D82300C3474E18EFF481F2DF7FFE4335D4D7EB080000 - 0000906C2F3DFF4F555B53ADA3E0183674FC04A73379AF49EAEDD81EA79C7CA3 - 543007663721BD3938D3DA0EBCFFC0E2514E1F28DCFE0F00000000A925175D5F - FCE73F74141C45C543473A9D49F26317BE9DE6CE858599B35BD2C9374C35AF03 - 3127C01C70BFCCCC9CCCFE85AD727202A3F2D041B56EF54A1D010000000052E5 - 5F017C0CA05F61C6C84C870C9DE6950BBB5B4AC9374D16FB03DB07605ABC038D - CDCD99F78AA19959C3739C7160C86A940000000080D4938BAF72113648FA670D - C99DE5E4BACE306E2EAC9B3D6F9AB0C7BD26DFA8B7DC1FC6EB837ABD47BE775B - 2564E6FCF3463B7D60B4B6B672FB3F00000000A451102FC2CE9A77813CEADE21 - 07769ACDCE9DEDB1CD1D775B320A0036AF0F640EC034F99EE680DBE25163A707 - EAF9FF6D9B36A8FD7B76EB0800000000906AFF7CEAF1D8C5D820D1B9AE671E6C - C5A6B979CDF5987CC364737F7033EEF480870D1F13A802C08BCF3EA347000000 - 008074D8BF7B97DAB76BA78E8261D88871E60E003B17B6C7D284C486793DA9CC - 374A06F787331FD8FDC165EC3EE0CC01C52302550058B76A851E0100000000D2 - A52260B958D1E0B324D735B7FE9B5CD8F486C98F4DB3B9E31E936F9A6C5E1F5C - 7A73B0EE038EB5A281FD03B30340755595DAB165B38E0000000000E9B26E55B0 - 76622BCC1F20B96E5BEEEB349387BB736461BFCFCC258DF9C6A9E2FEF0E600CC - 3876B0454346E4D5D5670E91178260FD9A55817BEE0400000000C260FD9A95AA - A5A54547FED7D8D26FE880A2E1B9CED04EF64D2E6E7263BBA54C6F0A00F68773 - 7FC8CE5EB30F38F6BE050BAF183178F060F7FB7C8BDBFF01000000A06FC81DD9 - BBB66DD191FF49AEBB70C9E5F65D00EE2280617262F33E5B67AF25ACA70500AF - 6FE8F541CC9C5713B1F1E4E9A581DA023068CF9C00000000409804EDA2EC9469 - 8BEC85008519DBCD4BBCD7E2BDBF533D2D007497F9D0E643CAF735558F8C11A3 - A7046601C093C78FA9BD3B77E80800000000906E415B0760E4999CD7E4C4261F - 1666CE6E2993EC0280FD81BDC6EEB9D881170F1919980240D07ED10000000020 - 6C36AC5DAD9A9B9A74E47F45C5A324E73589BF9D13DB4D985ED8F34991EC0280 - 617F78F70198036E6B838A86046607009EFF0700000080BE55575BABB66DDEA8 - 23FF1B7826E76D97073BCD2E0608F7EB4997AC0280F9705E1FD88ECD01B61501 - FA399A0A83B30520CFFF0300000040DF5BB73238B959FEA0012325F775867173 - 63DD841DDB73BD26DF2C55DC1FDA7C60D3CBF7EE3771F28241437307E59F99F2 - B7CA4307D5A1FDFB740400000000E82BEB5607E7F1EC82EC010592FB3AC3581E - 1C9B6C9F23BB5B4A24A300E0F5E1DC73F681486BFBBE23C74DEDAF87BEC7F3FF - 00000000E00F9B2AD6AAC686061DF9DFC83193EDDC577262779E6C73C7C26BAE - 5B7A530088F7CDEDF9780721BD7CEF7E03071417C6660280DBFF01000000C01F - 24F9DFB27E9D8EFCAFFFA021054E17CB839D66E7C6F1C47BADB3AFE9546F0A00 - 5D910F15AFB5E93FA03810B7FFB7B6B6B2002000000000F848902ED20E1CD821 - F7F5CA954D4B89641600E27D48F741D87146E180A23C99F4BBE3472BD5B1CA23 - 3A0200000000F4B56D1BD7EB91FF15140E96DCB75D3EEC34617A618F0DAFB91E - 495601C0FD81243673666C3773CB434641E1C040DC017060CF6E3D0200000000 - F8C1FE00E569F905FDE51100C39D239B26ECB1E18E7B24D98F0074F5A1DC0794 - 9197DF3F10058020FD62010000004014C84E6D0DF5F53AF2B7FCFCFE720780E4 - E0E682B8CDE4C86E5E733D96EC02809BFD61CD0199B9D83837BB20108F005000 - 00000000007F91B5DA0EEEDBAB237FCBC92DB42F7E9BDCD85D0CB0C74997CC02 - 80F9A0EEDEADDD7C767E4130EE00D8BD4B8F00000000007E1194C7B5F373F3ED - 35004457397357EFEBB6641400BAFA30F2BA6946DB5C6E1E770000000000007A - 2628B95A766EBEFB0E00A32D3F8E45F175F57A97527107803063AF0F28736D2D - 3727CFF77700C83325F26C0900000000C05F0EECDDA347FE969D1FBB03407270 - 73DB7FBC7CD9EE85D7FB7A249905002FE6A0EC264CAF72B2F27C7F07803C5322 - CF960000000000FC65FF9E603CAE9D9DE57907809D2B9B9632C92E0074F5A1ED - D762E3EC6CFF170082F20B050000000051236B0004E1826DAE93FC3A5D879CF8 - CCB003F35ABCD77B24D5770008FB4377F8F099D939BE7F0480E7FF01000000C0 - 9FAA4F9F5655274FE8C8BFB27373BC2E7EDBB972877C39D97A5A00889BD05BDC - AF797E4D4E66AC0AE26B4159551200000000A22808176D33B2626B00D8E2E5D5 - EED816EF6B12928E3B00DCE483B6B57ED999FE7F046037050000000000F0AB20 - E46C79D959F62300A6A5554F0A005D7DC8440EA2ED3D99791DAA20BE22CF92B0 - 060000000000F85710EE00C86ABFFE5DB7F2E63812F933DA49C522805E64DE34 - 2316E73454FBBA0070F2D831555B53A3230000000080DF1C08C045DBCCAC58EE - EB9917EBE625DE7C8FA4F21100F781787EF0938DFDB2F4D0970EEEDFA7470000 - 0000003F3A1480BCEDE4C97ED97AE866E7CA760E9D74C92A0074E7039A034AE9 - 81254BCDE92A3D0200000000F891EC0410103DCD8793923BA7EA0E00F7C19871 - 523E743AD5D672FB3F00000000F8595D70F3363B57F6CAA1932A190580C025F5 - DD51C7F3FF00000000E06B75B5B5B105DC43AED7B9772AD70008051600040000 - 00007F93E4BFBEAE4E478197B28BECE92E0004EE6E8100DF4A02000000009111 - D0BBB7D39A23A7BA002007639A11A8220077000000000080FF0570FD36AF3C39 - A5F9328F0074419E250100000000F81B776F772D150580C05EEDF7C222800000 - 0000E07F21B87BDB9D3F273D9F4EE71D005E1FDEF70502B6010400000000FF0B - C8C5DB3ECD8BD35100F07D92DF19EE000000000000FF0BC1C55BC99D539A3FF7 - C51A00E6A002511860114000000000F0BF005DBCEDB39C984500BBC023000000 - 0000E07F5CBCED1A05802EF0080000000000F81FBB00748D0240176A6BAAF508 - 00000000E057DC01D0350A005D68A86FD02300000000805F35D4D5E911E2A100 - 0000000000400450000000000000200228000000000000100114000000000000 - 88000A0000000000004400050000000000002280020000000000001140010000 - 0000008008A00000000000004004500000000000002002280000000000001001 - 1400000000000088000A00000000000044000500000000000022800200000000 - 000011400100000000008008A000000000000040045000000000000020022800 - 000000000010011400000000000088000A000000000000440005000000000000 - 22800200000000000011400100000000008008A0000000000000400450000000 - 000000200228000000000000100119BAEF0EF91AF375D24B11C1F4994ECBD27D - B6D372AC96EBB43CA7E55B7DFE3D7FAABCAFB878484F3E475ADC70F179AAB5B5 - 454700907E03060E5213A69EAD0AFAF7D7334886E6A62675EAF871B56BDB5655 - 5F5FA767010040505D7AD5D5EAA65B6ED591FF1C3B76B4F5A66B87DEE80C6B75 - 937F8098BEDE690D566B745AB3D39A742F4969ABD50BE9CD38213D49BCE56BCC - D799C4DFF41400002089CEB9E852F5BFB77E52E5E6CAFF6D2215AA4E9D54F77E - FF2EF5DCD34FEA19000010441400BAC6230000E053038B06ABFFF9E82748FE53 - 4CEEB078CFC76F53E3264DD133000000E1440100007C6A76E90295972F374B21 - D5B2B2B2D52B2EBB4247000000E1440100007C6AF8C8517A84745874EEF92A23 - C3B74FA4010000F41A050000F0A9FE0306E811D261D888916AF4F8093A020000 - 081F0A0000E05379F9057A8474295D7A8E1E010000840F050000F0A9FC020A00 - E9565A46010000008417050000F029EE0048BF69B367ABFE0306EA080000205C - 280000804FE5710740DA6564F453F31697E9080000205C280000804FE5730740 - 9F285DBA4C8F000000C285020000F8147700F48DF98BCA546666A68E000000C2 - 83020000F8545E7EBE1E219D0A070C505367CED61100004078500000009F6217 - 80BEC376800000208C280000800F6564647007401F2A2D631D000000103E1400 - 00C087727272632BD2A36F8C9930510D1F395247000000E1C0BF2E01C0875800 - B0EF952CE12E000000102E140000C08764213AF42DD60100000061430100007C - 6870F1103D425F995552CA3A0C00002054280000800F150D19AA47E82B5959D9 - 6A76E9421D010000041F050000F0A1C114007CA1B48CC7000000407850000000 - 1F2A1E4A01C00F643B40D992110000200C280000800F15B106802F140D19A226 - 4C395B47000000C1460100007C68307700F846E952B603040000E1400100007C - 883500FCA3A48C0200000008070A0000E033F2CCF9E0213C02E01753A6CF5483 - 0617EB08000020B828000080CFC8F3FFB979EC3FEF27254B96EA110000407051 - 0000009F193769B21EC12F4A97B21D200000083E0A0000E0331400FC67EEC2C5 - 2A2B2B5B47000000C1440100007C860280FFE4E5E7AB19F3E6EB080000209828 - 000080CF8C9B34458FE027A5EC06000000028E020000F8486656961A3D7EBC8E - E027B20E80ECD00000001054140000C047C64E98C8B3E63E75D6A8D16AE498B1 - 3A020000081E0A0000E02333E795EA11FC88DD0000004090510000001F9939BF - 448FE04725AC03000000028C020000F844BF7EFDD48C791400FC6CFA9C79AAB0 - 7F7F1D010000040B050000F0897193A7905CFA5C6666A69ABB70B18E00000082 - 85020000F8C4ACF93CFF1F04AC03000000828A020000F8C4BC454BF4087E367F - F1D2D8E31A00000041C3BF6000C00772F3F258003020060C1AA4A64C9FA92300 - 0080E0A00000003E30AB6481CACACAD611FC8EC70000004010510000001F98BF - B84C8F10046C070800008288020000F4B18C8C8CD873E5088EF193A7A821C387 - EB0800002018280000401F1B3966AC1A3E72A48E1014A54BB80B000000040B05 - 0000E8635CFD0F26D6010000004143010000FAD8FC253CFF1F44B34B17AADCDC - 3C1D010000F81F050000E8436CFF175CD939396A6649A98E000000FC8F020000 - F421B6FF0B361E030000004142010000FA10DBFF059B2C0428BB380000000401 - 050000E8236CFF177CB215E0D8899375040000E06F140000A08FB0FD5F38942E - 653B400000100C140000A08F70F53F1C4ACB280000008060A00000007D84EDFF - C261EACCD96AC0A0413A020000F02F0A0000D007D8FE2F3C58CB010000040505 - 0000E8036CFF172E6C070800008280020000F401B6FF0B97798B16ABCCAC2C1D - 010000F81305000048336E190F9F82C2FE6ADAEC393A020000F0270A00009066 - 6CFF174EA5653C06000000FC8D020000A41957FFC389ED00010080DF51000080 - 3463FBBF701A356EBC1A317A8C8E000000FC87020000A411DBFF855B09770100 - 00001FA300000069C4F67FE1C663000000C0CF280000401AB1FD5FB8CD9C57A2 - F20B0A74040000E02F140000204DD8FE2FFC32B3B2D49C058B74040000E02F14 - 0000204DA2B2FD5F7D7D9DFAE6E73EA5A3E8295DCA76800000C09F280000409A - 44E5EAFFAEAD5BD4AAFFFC5B35D4D7EB99682959B2546564F09F570000E03FFC - 0B0500D2242ADBFF6DDFBC49353535AA2D1BD6E999681934B8584D3A7B9A8E00 - 0000FC83020000A44194B6FFDBB17963ACDF54BE26D647118F010000003FA200 - 00006910A5EDFFE40E00B1616D740B00256C070800007C88020000A44154B6FF - 930500F7EFDE151B6FDDB04EB5B6B6C4C651238F000C1E325447000000FE4001 - 0000522C4ADBFFC90280CDCDCDB1716D4D8DDAB1654B6C1C4525656CF9080000 - FC85020000A45854B6FF13E6F67F23D2EB0094B10E000000F0170A0000906251 - B9FA2FCC0280C6C6081700E62C58A8B2737274040000D0F7280000408A4565FB - 3FD1E10E808A723D8A9EDCBC7C35735E34767E000000C14001000052284ADBFF - 35D4D7B72D00689C3876541DDCB75747D1C376800000C04F280000400A4569FB - BF9D5B37B72D00688BF26300254B96C51681040000F0030A0000904251D9FE4F - B86FFF373695AFD5A3E891C51F478F1BAF23000080BE4501000052244ADBFF09 - F70280C68608DF0120780C000000F8050500004891286DFF27E2DD017068DF5E - 75EAC4711D450F05000000E0171400002045A274F5DF6B0140A3B5B5556D581B - DDBB00CE9E3547F51F3050470000007D87020000A44894B6FF8BB700A011E575 - 00FAF5EBA7E62D5AA223000080BE4301000052204ADBFF8978B7FF1B1BCB57EB - 5134952E5DA6470000007D87020000A44094B6FF13F1160034766DDBAAEA6A6B - 75143DF31697A9CCCC4C1D010000F40D0A0000900251DAFE4F6CDBB8418FBCC9 - E3015BD657E8287A640D80A93367E9080000A06F50000080248BDAF67FD5A74F - AB7DBB77EB28BE8D51DF0EB08CDD00000040DFA20000004916B5EDFFB66E58A7 - 5A5B5B7414DFC608EF0420D80E100000F4350A0000906451BAFA2F36AF2BD7A3 - CE6DDDB8BED39D02C26ECC84896AD888E81486000080FF50000080248BD2F67F - 62F3BAC49EEDAFAFAB533BB674BE5B40D89594B11B000000E83B1400002089A2 - B6FD5F6B6BABDABA61BD8EBA16F5C7001650000000007D880200002451D4B6FF - DBB363BBAAADA9D651D73655ACD5A3689AE9FC7E4891080000A02F5000008024 - 8ADAF67F893EFF6F44BD00909D9DAD66972ED4110000407A510000802489DAF6 - 7FA2BB7BFB9F3A7142EDDFBD4B47D1C46E000000A0AF500000802489DAF67F22 - D105006D1BCA23BE1D60D9B258B108000020DD280000409244EDEA7FD5A993EA - E0BEBD3A4ADCA6F2683F063078C850357ECA541D010000A40F0500004892A86D - FFB7655D456C1780EEDA58BE5A8FA2ABB48CC700000040FA510000802488DAF6 - 7FA2BB0B001A470E1E54C78F56EA289A4A97B21D200000483F0A0000900451DB - FE4F6CEEE6028086DC35B0716DB4D701983C6D861A34B85847000000E9410100 - 0092206ADBFFB5B4B4A86D1B37E8A8FB36467C21C0D88E11117B64040000F43D - 0A0000D04B51DCFE6FD7B62DAABEAE4E47DD17F50280601D000000906E140000 - A097A2B8FD9F2C00D81B7B766C57B535D53A8AA6B90B1747EEB1110000D0B728 - 0000402F45EDEABFD8D4CB02803C42B0B9A2678B0886457E41819A3E779E8E00 - 0000528F020000F452149FE5DEB2BEF7C9FB061E0360370000009056140000A0 - 17A2B8FDDF896347635BF9F5D6A6F2B57A145DAC03000000D289020000F44214 - B7FFDBB2BE22B6955F6F6DDDB85E353535EA289A468C1E135B43020000201D28 - 0000402F446DFB3FB1B997CFFF1B8D0D0D6AFBA68D3A8AAED2A5DC05000000D2 - 83020000F45014B7FF13C9DCC26FE35AD601A000000000D285020000F45014B7 - FFABAFAB55DB376FD251EF6DAC601D80E973E6A982C2FE3A020000481D0A0000 - D04351BCFA2FB7FF373735E9A8F73655AC4DCA7A0241969999A9E62E5CAC2300 - 0080D4A10000003D14C5EDFFD6AF59A547C9515D55A5766CD9ACA3E8623B4000 - 00900E140000A007A2B8FD9FD890E4028058B76A851E4597DC4DD2AF1FFF4906 - 0000A9C5BF3600A007A2B8FD5F437DBDDAB671838E92A78202801A5854A4264F - 9FA123000080D4A00000003D10C5EDFFB6ACAF508D8DC9DFB77FE3DAD5AAB9B9 - 5947D1555AC66E00000020B528000040374575FBBF643FFF6FD4D7D5A92DEBD7 - E928BAD80E1040B2C9A34579F9F96AC0A0416AC8F0E16AC498B16ADCA4C96ACA - F4996AC6DCF96ADEA2256AE139E7A9A5175EAC2EB8EC0A75E95557AB2B5EFF06 - 75F59B6E54AFBBF11DEAB26B5EAF169F7781CAC9CDD57F2280A0CBD07D77C8D7 - 98AF935E8A08A6CF745A96EEE5DED81CABC9FF73E4392DDFEAF3EFF953E57DC5 - C5437AF239D2E2868BCF53ADAD2D3A0200A5468D1DA7BE75EF6F74141DB7DFF2 - 81941501AE7BFBBBD4B56F7D878EA2EB7D6FB8461D3B72584700A24C8ACD0585 - 856A50F11035D869454E1B545C1CEB8B9C7E50D16095ED24E6929CE7E4E4A8EC - 1CE9739D3E273627BDEC32920CA7AB4EA92F7DEC436A278BB6C2E7A48875D32D - B7EAC87F8E1D3BDA7AD3B5436F7486B5BAD5597DBDD31AAC26B75DCA2D92B2FD - 92F49294CAD649A617D2776B3BA59E24DEF235E6EB4CE26F7A0A000042EF8A6B - DFA0DEFAFE9B75140D72EBFF3BAF7AA56A6C90FF1E25DFCC7925EA73DFFEBE8E - A2EBEE6F7F5D3DFDF0833A02104692980F1A2C89BC49E6CF24F42F8F7582EFF4 - D9D9FE596B46B66DFDFCCDEFD511E04F1400BAD693C45BBEC67C9D49FC4D4F01 - 0040E8DDF6B56F476EDFF60D6B57AB2F7CF8FD3A4A3EF947EE3D7F7922F2B799 - AEFCF7F3EA6B9FFEB88E00044D46463F553C6CA81A39669CD3C6AA11A3C7A8A2 - 213AA98F25FD4354E18001FADDC152575BABDE71E5A5CEBF8BBB956B00694501 - A06B92B4030012C4F67FA9217718C8D5A5A89B5DBA90676D810090247ECA8C99 - EAFC575EAEDEF0CEFF551FFEFC17D5D7EEBE57DDFBE8D3EAFF7EFB80FACC37BE - A36EFAF0C7D4ABAF7BA33AE7A24BD5ACF9A56AF4F809814DFE85AC25208F2400 - 08360A0000D00D51DCFE4FAC5FB35A8F52A76225DB014AF22F890280BE27B7EA - 8F9D3829B608DE6B6FB851BDE7E3B7A9DBBFF723F5D3071E55F73CF4B8FAD2FF - FD54BDEF939F51D7BCE56DAAEC828BD4B84953425FC0EB97A4350500F41D0A00 - 00D00D51DCFEAFB9A9496D5957A1A3D4A958B95C8FA28DDD0080F4EA3F6060EC - EE9B575D7DAD7AFB076F893DE6F5BD5FFF51FDF2B1BFABAFDF739FFAC817BEAC - 6EF89FF7A8575CF66A75F6AC39B115F50120A82800004082A2BAFDDFB64D1B54 - 7DBD3C9A965A3BB76E5635D5A775145DA565E7C47ED700249F24FB73162C8A5D - D1BFE5F35F52DFBDFF8FEAEE871E8BDDB2FF8E9B3F12DBF64ED678193662247F - 0F01841205000048902CE8347CE4481D45473A6EFF17CDCDCD6A439ABE979FC9 - 5EDD72DB3180DE193070D0CBC9FEFFBB2376555F92FD4F7FFDAED815FD25175C - 18C9FF4F07106D140000204151BCFA2F52BD00A0AD9CC700624ACB96E9118044 - 48B22F57EEAF7ED3CBC9FE4F1F7CF4E564FFFC57C4AEEA0340D45100008004CD - 5F12BDE7FF5B5A5AD4E675E53A4ABD75AB580850B00E00109FAC462F57F64DB2 - FFFDDFFC2996ECCBB3FB6F7C17C93E0074860200002420AADBFF6DDFBC51D5D6 - D4E828F5F6EEDCA14E9D38A1A3E89A3A73160B8D015A7E41A12A59B254BDE97F - DF175B79FF9EBF3C11BBB26F92FDA1678DD0EF040074850200002420AADBFFA5 - FB99FCD6D656EE02706464F48BE48E138090BDF2172C3B57DDF8DE0FAA2FFFE8 - 67EA670F3FAE3EF1956FA8D7BCF1CDB1BDF733D98A0E007A8C0200002420AAC9 - D8FAD52BF5287DD80EF00CD90D008802B9DB65D1B917A8B7BDFF43EACE9FDEAB - EE7EF03175EB97EE54AFBEEE8D6AD2D9D3620531004072F0FFA800D085A86EFF - D7DADAA23696AFD551FA54700740CCBCC54B546656968E80F01834B858955D70 - 917AE7CD1F89EDB3FFD3071E551FBDFDCBEAF26BAF57E3274F61FB3D0048210A - 0000D085A86EFFB763CB16555B53ADA3F4397C60BFAA3C7C4847D15550D85F4D - 9B3547474070656767C716ED7BEBFB6E56DFFCF9FDEAC77F7A587DF8F35F54AF - BCFA5AB6BC048034A30000005D60FBBFF4927500780CE08CD2A56C0788602A1E - 365C5DFCEAD7A88F7DF1AB6D7BEF5FF1FA37A8D1E327E8770000FA02050000E8 - 4214B7FF13EBFBA800205808F00CD6014050C8C27CD3E7CC8DADCCFFB5BBEF55 - 3FF8DD03EA7F3EFA09B5F09CF3546E5EBE7E1700A0AF510000804E4475FB3FB9 - 0ABFB17C8D8ED2AF62250500316ADC7875D6A8D13A02FC656051913AEFD2CBD4 - CD9FF982FAC99FFFAAFEDF777E18DB9B7FDCA429FA1D0000BFA10000009D88EA - F67FBBB76F53D555553A4ABFE3472BD5FEDDBB74146D25653C06007F90C5F964 - 55FE6BDFFA8ED87EFC3FFED323EAFD9FFAAC5A76D125B1ADFB0000FE47010000 - 3A11D5EDFFFAEAF97F1BBB019CB160298F01A0EF48D23F65FA4CF596F7BC5F7D - EFD77F8CEDCB7FDDDBDF15DB8F9FD5FA012078280000401C51DDFE4FF4E5F3FF - 06EB009C3163DE7C955F50A02320F5DC49FF977EF05375E5F56F5243CF1AA1DF - 0100082A0A0000104754B7FF131BD6AED6A3BEB37EF5AAD85A0451278FA0CC2E - 5DA423203548FA01201A280000401C51BDFABF77E70E5575F2A48EFA4ED5A993 - 6AD7D62D3A8A36B603442A48D23F79DA8C58D2FFDDFBFF40D20F001140010000 - E260FBBFBEC73A006794962D739235FE938DE41835769CBAE17FDE134BFAEFF8 - E1DDB1A47FD88868DEED040051C3BF2600C04354B7FF137E5800D0601D803306 - 0D2E5613CF3E5B4740F7E51714AA8B5E7D95BAFD7B3F52DFBAF737EAB537DC48 - D20F0011440100003C4475FB3FB161ED1A3DEA7B1BCBD7A8E6E6661D455B6919 - BB01A07BE4AE9159F34B635BF5FDF84F0FABFFFDE827D5D9B3E6E85701005144 - 0100003C4475FBBFFD7B76AB13C78EEAA8EFD5D6D4A86D1BD7EB28DA4AD90E10 - 09922BFBAF7FDB3BD5777EF57BF5D96F7D4F9D77E9652A273757BF0A0088320A - 0000E012E9EDFF56AFD423FF601D8033269D3D4D150D19A223A0A37193A6A8CF - 7CE33BB155FC5FFFB69B22BB8B0900203E0A0000E012E9EDFFD6F4FDF67F6E15 - 2B97EB114A9644B33085CE49D1F2E22B5F1B5BD06F76E9423D0B004047140000 - C025AA57FF859F760030B6AC5FA71A1B1A74146DAC03002F57BCFE0DEA7F3EF2 - 71959D1DCD754B000089A30000002E51DDFEEFE0BEBDEAF8D14A1DF98724FF9B - 2AD6EA28DAE62E5C4492870EA6CD9EAB470000748E02000058A2BDFD9FFF6EFF - 375807E08CDCBC7C35635E347F3F11DF980913F5080080CE510000004B94B7FF - F3E3EDFF06EB00BC8CDD0060CBCCCA5223468FD11100009DA300000096A86EFF - 2736F8B800B063F3A6D8968038B30E802CFA068896E6167E1F000009A3000000 - 5A94B7FF3B72F080AA3C7C4847FED3DCDCECEB02453AC90E15A3C68DD711A2AE - B5B545D55457EB080080CE510000002DCADBFFADF7F1F3FF46C54AD601304ACB - 96E911A0547555951E0100D0390A0000A04579FBBF205C5D6721C097B10E006C - D5A74FE91100009DA30000005A54B7FF137E5E00D0D8B363BBAA3A795247D126 - DBBE150E18A023441D7700000012450100001C51DEFEEFD891C3B13500FC4E9E - 75E62E8033FAF5EBA7E62D5AA223445DF5E9D37A040040E72800008023DADBFF - AD7692EB561DF9DB3A0A006D64370040700700002051140000C011E5EDFFD6AD - 0E4E52CD1D002F934756E44E00A0FA340500004062F8970380C88BF2F67FA27C - C5723DF2BF43FBF6C61E598052FD070C545367CED611A2ACBA8A4500010089A1 - 000020F2A2BCFDDF4127A1AE3C745047FE278F2A94B31D609BD2A56C07081E01 - 0000248E020080C88BF2D5FF8A95C1B9FA6FB00EC0CB580700E2348F00000012 - 44010040E44579FBBFF20016005807E06563274E5243CF1AA123441577000000 - 1245010040A44579FB3FB99D7EFDAA953A0A0E5903E0C0DE3D3A4269198F0144 - 1D05000040A228000088B4286FFFB773EB665575EAA48E8285BB005E56BA94C7 - 00A28E5D00000089A2000020D2A2BCFD5F9056FF770BE2DA05A922452CB99305 - D1C51D00008044510000105951DFFE2FC849B43CBA208F3040A9ECEC6C35BB64 - 818E1045DC01000048140500009115E5EDFF9A9A1AD5A6F2B53A0A1E797461C7 - 96CD3A028F01445B4B4B8BAAADA9D6110000F1510000105951BEFABFA9A25CD5 - D7D7E92898780CE0652565CB6277B420BA780C000090080A0000222BCADBFF85 - 21792E5FF1921EA178E830357EF2141D218A4E530000002480020080488AF2F6 - 7F220CC9F3A68AB5AAB1B15147282DE3318028AB397D5A8F0000888F02008048 - 8AF2F67F35D5A7D58ECD9B74145C0DF5F56A734570D7314836D60188B6EAD3A7 - F4080080F828000088A4286FFFB77EF52AD5DCDCACA3602B671D803693A7CF50 - 038B06EB0851C32300008044500000103951DFFE2F4CCFCE57ACA00060C8EF75 - 4984D7B5883A160104002482020080C889F2F67FA262D50A3D0ABEED9B37C61E - 69C019AC03105DD5A729000000BA46010040E444F9EAFFF1A3956AFFEE5D3A0A - 3ED9FF7C5D880A1ABD3577D192C8AE6D1175DC01000048040500009113E5EDFF - E4F6FFD6D6561D8543F94A0A00467E41819A3667AE8E10251400000089A00000 - 2052A2BEFD5F450893E58A10AD69900C0BD80D2092EA6A6BF4080080F8280000 - 8894286FFF272A42B86AFE81BD7BD4B123877584D2B2657A8428690AC9CE1E00 - 80D4A200002052A2BCFDDFBE5D3BD5B1CA233A0A0F79A4A19CDD00DA8C183336 - B6D025A2A5B9A9498F0000888F020080C888FAF67F615AFDDFAD621505005B09 - 7701440E0500A4435D0D8F9A00414701004064447DFB3F590030ACCA43F86843 - 6FB00E40F4500040AA9D3A7142353636EA084050510000101951BEFADFDADAA2 - 36AC59A5A3F03971F4A8DABB73878E307DEE7C5550D85F478882A6660A0048AD - 179E795A8F0004190500009111E5EDFFB66DDCA8AA4F9FD65138857181C39ECA - CCCC5473162ED211A2803B00A249D640912D200F1FD8AFF6EEDA195BEB65FF9E - DDEAE0DE3DEAD0FE7DCEFC015579E8A03A7AF8706C0D1829969E3A715C559D3C - A9AA4E9D8C7D6D4DF569555B53A3EAEB6A55437D7DEC2A7F5353A36A6E6E8EBD - 67FFEE5DEACFF7FD5CFDEE9E1FEBEF0A20C83274DF1DF235E6EBA4972282E933 - 9D96A57B59663BC76AB94ECB735ABED5E7DFF3A7CAFB8A8B87F4E473A4C50D17 - 9F17BB720620D864FBBF7BFEF27864770078E057F7AADFFDEC273A0A27B9EDFD - D63BBEA6233CFBC463EA87777E494708BB31E327A86FFCFC7E1D214824E9AE39 - 7D5A9D3EED24E34E93A45C0AB6D5B1F1A933E3B6B95367DE2B89BBD34BE2CEBF - 5381975D7AD5D5EAA65B6ED591FF1C3B76B4F5A66B87DEE80C6B75ABB3FA7AA7 - 35584D9EB9912D5EA4C22BBDFC656FB57A21BD1927A42789B77C8DF93A93F89B - 9E0200005F2A7592C38F473839FCE2473EA8D6AD5EA9A370CA2F288C1579FAF5 - E3E63621CFEBBEFBDAABF86F5844C8EE0F77FDF2B73A825FC8DFC383FBF7C6AE - C81FDCB74F1DDAB7571D3974D049E09DC43E96C457F15C3D90441400BAC6BF92 - 00444294B7FF93AB4B9BD757E828BC6A6BAAD5D60DEB74848145456AF2F4E93A - 42D8F10840DF3971ECA8DA58BE563DFBF8A3B13BADBE73FB67D5A7DEFD4EF5CE - AB5EA5FEF775AF569FFBC0BBD50FBEFAA5D86DF4CFFFFD29B5795D79ECB6FA93 - C78F91FC03483B0A0000422FEADBFF6D2C5FA31A1BA4901C7EAC03D09EDCF982 - 68A000905AC78F56AAF56B56A9671E7D44FDE6A73F52DFFEC267D427FFF7EDEA - EDAFBE44BDE7F5AF51FFEF43EF553FFCDA1DB1C7ADFEFD8FBFAB1D5B36C59EAD - 0700BFA1000020F4A2BEFD5F9492E2F21514006CA5651400A2A2890240D2C85D - 53EB57AF8A25F35FFDE447D54DAF79957AEF75AF55B7DFF201F5E36F7C453DF4 - 9BFBD48BCF3EA3766EDDA2EA6AE5CE5D00080E0A0000422FCA57FF459492E22D - EBD7A9FA7A798C0E62C294A9AA78D8701D21CC9AD906B0C764457C49E87FF97F - DF559F7EEFBBD43BAE7AA5BAFD231F88DDCEBFFABFFF892DBE07006141010040 - E84579FB3F59684AAE5245856C5DB561CD6A1D41942C8976012C2A5A9A59ECB1 - 3B647BBBBFFDF52FEA4B1FFB907ACFEBAF8ADDD2FFE89F7EA7B66DDAC0E31400 - 428D0200805093EDFF66CE2FD151F4AC5BB92272ABC0B30E407BAC03009C2157 - F29F79EC11F5954F7C24F6DCFE4FBF7967ECFF2F64BF7B00880A0A0000426D56 - C982C8EEFD2FCA23980C97AF78498F20E6942E5439B9B2132F106D8FFCFED7EA - C75FFF8A5AF3D28B5CE5071059140000845A94B7FF1351BC1ABE7BFBF6D8DEDB - 384392FF99F3A27B170C00007819050000A115F5EDFF2A0F1D5487F6EFD35174 - C8230F3C06D01E8F010000004101004068457DFB3F59FDBFB5B55547D152B18A - 02804D0A005210030000D14601004068457DFBBF285F058FD2D68789183AFC2C - 3566C2441D010080A8A2000020B4A2BCFD9FA858B5428FA2E7C8C103917CFCA1 - 33A5653C06000040D4510000104A51DFFE6FF7F6ADEAE4F1633A8A26D60168AF - 74E9323D020000514501004028457DFBBF8A95D1BDFA6FF018407B67CF9AAD06 - 0C1CA423000010451400008452D4B7FF632F7CA5D6AD5E11D94510BD6464F453 - F3162FD111000088220A00004227EADBFF353737AB0D6B57EB28BAAA4E9E543B - B76ED61104EB000000106D140000844ED4B7FFDBB27E9DAAABADD551B4F12844 - 7BF31697A9CCCC4C1D010080A8A100002074D8FE8FDBFF0D1E8568AFB07F7F75 - F6AC393A0200005143010040E8447EFB3F56BF6FB3A97CAD6A6A6AD41144E952 - 1E03000020AA2800000895A86FFF27B7FE6FD9B05E47A8AFAF539B2ACA750451 - 5AC6768000004415050000A112F5EDFF36AC59A59A9B9A7404C11D11ED8D1E3F - 410D1F394A470000204A2800000895C86FFF47B2DB01EB0074C45D0000004413 - 050000A111F5EDFF0457BB3BDAB17993AAA93EAD2308D6010000209A28000008 - 8DA86FFF77EAC471B567C7761DC1686E6E56EB56ADD41184AC9391979FAF2300 - 0010151400008446D4AFFECBEDFFADADAD3A828D3B23DA937532E62C58A42300 - 0010151400008446E4B7FF5B41921B0F6B2374545AC663000000440D050000A1 - 10F5EDFF04496E7C07F6EC56C72A8FE808A2A46CA9CAC8E09F0100004409FFE5 - 07100A51DFFEEFE0BEBDAAF2D0411DC14D1E8DE03180F68A8A87A889679FAD23 - 000010051400008402DBFF91DC76A59C47243A603B400000A285020080C063FB - 3F16B94B04E7A823D6010000205A28000008BCA86FFF27B7B7AF679BBB2E1D3F - 5AA9F6EEDAA9238849D3A6ABA2214374040000C28E020080C08BFAD5FF9D5B37 - ABAA53277584CE701740472511FFFB03004094500000107851DFFE8F67DB1357 - BEE2253D8251BA9475000000880A0A0000028DEDFF486ABB63C39AD5AAA5A545 - 471073172E56D9D9D1DD4103008028A1000020D0A2BEFD5F5353A3DA5C51AE23 - 74A5A6FAB4DABA71BD8E2072F3F2D5F4B9F375040000C28C020080408BFAF67F - 9B9CE4BFBEBE4E474804EB0074B46029BB01000010051400000416DBFF71FB7F - 4F54B0664207A54BCF8DFD7D020000E14601004060457DFB3FC1D5ECEEDBB2BE - 82BB265CE4EFD1A871E375040000C28A020080C08AFAD57F799E7DC7E64D3A42 - A21A1B1BD5C635AB7504A36409BB01000010761400000456D4B7FF5BBF7A956A - 6E6ED611BAA37CE50A3D82C176800000841F05000081C4F67F3CFFDF1B152B39 - 776ED3E7CC53850306E808000084110500008114F5EDFF4439CFFFF7D8AE6DDB - 54D5C9933A82E8D7AF9F9ABB70B18E00004018510000104851DFFEEFF8D14A75 - 60CF6E1DA1BB5A5B5B54C52A1E03702B2D633B400000C28C020080C061FBBF33 - B7FFB7B6B6EA083D51C123141D94942D8DDD09000000C289FFCA03081CB6FF93 - 0200B7FFF75639EB0074D07FC0403575E66C1D010080B0A100002070A27EF55F - 54F0FC7FAF1D3E70C069FB7504A3A48CDD000000082B0A00000227EADBFFEDDB - B533B606007A8F85143B2AA5000000406851000010286CFFA758BC2E895807A0 - A3719326ABA1C3CFD211000008130A00000285EDFFCE2C0088E4A098E28DC700 - 000008270A00000225EADBFFC9F675EB57AFD2117AABEAE449B573CB661DC128 - 5DCA76800000841105000081C1F67F4A6DDBB851D5549FD61192A16215EB00B8 - CD2E59A07273F374040000C282020080C060FB3F6EFF4F05B654EC283B2747CD - 2A5DA023000010161400000406DBFFB1777D2A6C2C5FA39A9A1A750483DD0000 - 00081F0A00000223EADBFF35D4D7AB2DEB2A748464A9AFAB539B2B38AF6EB20E - 803C76030000C2830200804060FBBF3357AA1B1BB9529D0A152B790CC0AD78E8 - 30357EF2141D01008030A000002010D8FE8F24359578B4C21BDB010200102E14 - 00000442D4B7FF132C56973ADB376D54B535D53A82515AC67680000084090500 - 00BEC7F67F4A9DAE3AA5766EDDA223245B7373B35ABF7A958E604C9931530D2C - 2AD2110000083A0A00007C8FEDFF945AB772856A6D6DD11152812D163BA2F806 - 0040B8500000E07B2420F28C3AB7FFA71AE7D85BE952D6010000202C280000F0 - BDA86FFF27B83A9D7AFB77EF52C78F56EA08C6BC454B22BF0027000061410100 - 80AFB1FD9F5295870EAAC307F6EB08A9D2DADACA4E0B1EF20B0AD5B439737504 - 0000828C0200005F63FBBF33ABFF4B728AD463A7056FA56C0708004028500000 - E06B6CFFA7B82A9D469C6B6FA54BD90E10008030A00000C0B75881FC8C8A552B - F408A976ACF288DAB76BA78E60C84E1C239C060000828D020000DF62FB3FA576 - 6FDFAA4E1E3FA623A40305176FA54B780C000080A0A30000C0B7B8FA2FB7A493 - 8CA61B3B2E78633B400000828F020000DF62FB3F92D1BEB07EF52AD5DADAA223 - 1833E695C47604000000C1450100802FB1FD9F52CDCDCD6AC3DAD53A42BAD454 - 9F565B376CD0118CCCCC4C3577E1221D01008020A20000C097D8FE4FA92DEBD7 - A9BADA5A1D219DD80DC05B6919BB0100001064140000F812DBFF4912CAEDFF7D - A59C73EFA9A46C99CAC8E09F0E00000415FF1507E03B6CFF770657A1FBCE9675 - 15AAA1BE5E4730061615A9C9D3A7EB080000044D86EEBB43BEC67C9DF4524430 - 7DA6D3B2742FF7EEE6582DD769794ECBB7FAFC7BFE54795F71F1909E7C8EB4B8 - E1E2F3580C0A48B35163C7A96FDDFB1B1D45D7FD3FFE3FD5DCD4ACA3F85A9DFF - 25A2B53581F725F21E47427F9623A17725F97B26F2E725F227BDE68D6F56C347 - 8ED2118C3FDFF773F5FB9FDFAD23F8852CD0F8F3479ED411BCFCEE673F510FFC - EA5E1D0108A34BAFBA5ADD74CBAD3AF29F63C78EB6DE74EDD01B9DA13CE329AD - CEEAE5CA4383D51A9D26FF106CD2BD24A5F24F18D30BE913F9674D9B9E24DEF2 - 35E6EB4CE26F7A0A00007AED8A6BDFA0DEFAFE9B7504C04F766ED9AC3EF9EE77 - E8087E4101A06B140080F0A300D0351E0100E03B6CFF07F8D784A967ABE2A1C3 - 7404000082840200005F61FB3FC0FF4A96B0460700004144010080AFB0FD1FE0 - 7FA54BD90E10008020A20000C057D8FE0FF0BFD90B16AA9C5C59DA0700000409 - 050000BEC1F67F4030E4E6E6A999F37854070080A0A10000C037468E19AB868F - 1CA923007E565AB64C8F00004050500000E01B5CFD078243D60190BB76000040 - 70500000E01B6CFF0704C7D0B346A8311326EA0800000401050000BEC0F67F40 - F094F01800000081420100802FB0FD1F103CA5656C0708004090500000E00B6C - FF0704CFB4D9B3D580818374040000FC8E0200803EC7F67F40306564F4537317 - 2DD1110000F03B0A0000FA1CDBFF01C155BA9475000000080A0A0000FA1C57FF - 81E092BFBF9999993A0200007E460100409F63FB3F20B80AFBF75767CF9AA323 - 0000E067140000F429B6FF03828FED00010008060A0000FA14DBFF01C157BA94 - ED00010008020A0000FA14DBFF01C13766FC0416F204002000280000E8336CFF - 078447C9121E030000C0EF280000E8336CFF0784078F010000E07F140000F419 - AEFE03E131ABA454E5E5E7EB080000F8110500007D86EDFF80F090C53CE72C58 - A4230000E047140000F409B6FF03C28775000000F0370A0000FA04DBFF01E153 - 5AB64C6564F04F0B0000FC8AFF4A03E8136CFF07844FD190216AE2D4A93A0200 - 007E43010040DAB1FD1F105E25653C060000805F51000090766CFF078417DB01 - 0200E05F140000A41D57FF81F09A3C6D862A2A1EA2230000E027140000A41DDB - FF01E156B284221F00007E440100405AB1FD1F107EAC030000803F5100009056 - 6CFF0784DFDC858B5576367FCF0100F01B0A0000D28AEDFF80F0CBCBCF57D3E7 - CED7110000F00B0A0000D286EDFF80E828E5310000007C87020080B461FB3F20 - 3A162C3B3756F4030000FE41010040DA70F51F888EE12347A99163C7E9080000 - F80105000069C3F67F40B4F018000000FE420100405AB0FD1F103DA565E7E811 - 0000F0030A0000D282EDFF80E8993E779E2AECDF5F470000A0AF51000090166C - FF07444FBF7EFDD4DC454B74040000FA1A05000029C7F67F4074B10E000000FE - 41010040CAB1FD1F105DF3972C8DDD09000000FA1EFF450690725CFD07A26BC0 - C0416ACA8C593A0200007D890200809463FB3F20DA780C0000007FA0000020A5 - D8FE0F40E9520A000000F80105000029C5F67F00C64D9AA2860E3F4B470000A0 - AF50000090526CFF0740942C612D100000FA1A05000029C3F67F008CD2A5E7E8 - 110000E82B140000A40CDBFF013066972E54B9B9793A0200007D8102008094E1 - EA3F00233B2747CD2A5DA0230000D0172800004819B6FF03602B613B400000FA - 1405000029C1F67F00DC16942D8BAD0D020000FA0605000029C1F67F00DC8A87 - 0D57E3264DD611000048370A00005282EDFF0078E131000000FA0E05000049C7 - F67F00E2613B400000FA0E05000049C7F67F00E2993A63961A5854A423000090 - 4E140000241D57FF01C4237708CD5BC423420000F4050A0000928EEDFF007486 - C7000000E81B14000024956CFF37631EDBFF01886FFEE2252A332B4B47000020 - 5D280000482AD9FE2F3B9BEDFF00C4975F50A8A6CF9EAB230000902E14000024 - 15DBFF014804DB010200907E140000240DDBFF014814EB000000907E14000024 - 0DDBFF0148D4A8B1E3D488D16374040000D281020080A4E1EA3F80EEE0310000 - 00D28B020080A461FB3F00DD514A01000080B4CAD07D77C8D798AF935E8A08A6 - CF749AECEB23BD2C039E63B55CA7E5392DDFEAF3EFF953E57DC5C5437AF239D2 - E2868BCF53ADAD2D3A02108F6CFF77F7438FB30380F6BE375CA34E1E3FA62344 - D1073FFD795576C1453A8297E6A626F5AEAB2F57B535357A063D253B2BFCFC91 - 2775042FBFFBD94FD403BFBA574700C2E8D2ABAE5637DD72AB8EFCE7D8B1A3AD - 375D3BF4466758AB5B9DD5D73BADC16A8D4E6B765A93EE25296DB57A21BD1927 - 843B00002405DBFFBD6CF7F66DEAD891C3B1E48616DDB6E6A517F56F04E2C9CC - CA5273162CD211000048350A00009282EDFF5E56B172B91E21CAD62EFFAF1EA1 - 33EC06000040FA500000D06B6CFFD75EF98A97F4085176F4F061B56FD74E1D21 - 1E59072023837F8E0000900EFC171740AFB1FDDFCB9A9B9BD586B5AB7584A8E3 - 2E80AE0D2C1AAC264F9BAE230000904A140000F41A57FF5FB665FD3A55572B6B - B9008A750012C476800000A407050000BDC6F67F2FAB58C9EDFF7899DC0DD2D4 - 248BF8A233A54B29000000900E140000F48A6CFF37635E898E50BE820500F1B2 - FABA3AB5A97CAD8E10CFC4A9D3D4E021437504000052850200805E61FBBF97C9 - ADFF5B37AED71170068F0124A6A48C4789000048350A00007A85EDFF5EB67EF5 - CAD8FEEF808D850013535AC676800000A41A0500003DC6F67FED95AFE4F67F74 - B46BDB3675EAC4711D219E390B17A9EC9C1C1D01008054A00000A0C7D8FEAFBD - F2152C00888E5A5B5BD49A97B80BA02BB9B9796A26EB8900009052140000F418 - 57FF5F76E2D851B56FD74E1D01EDF11840624A97F218000000A9440100408FB1 - FDDFCB64F5FFD6D6561D01ED717748624ACB96C51E2D020000A9410100408FB0 - FD5F7B15AB78FE1FF1C91D22BBB66DD511E2193662A41A3D7E828E000040B251 - 0000D0236CFFD75E050B00A20B3C069018B90B000000A4060500003DC2F67F2F - DBBF67B73A7AF8B08E006F140012C33A000000A40E050000DDC6F67FED55F07C - 3712B0B17C8D6AA8AFD711E299367B8EEA3F60A08E00004032510000D06D6CFF - D75E39B7FF23018D0D0D6AC39A553A423C1919FDD4BC454B7404000092890200 - 806EE3EAFFCB648FF7F5AB57EA08E8DC1A1E034848E952D60100002015280000 - E836B6FF7BD9B68D1B55F5E9D33A023AB7F6A517F5089D9122636666A68E0000 - 40B2500000D02DB9B96CFF67637F7774C7BEDDBBD4B1CA233A423C850306A8A9 - 3367E9080000240B050000DD32B3A494EDFF2CE52B29002071ADADADEC0690A0 - D2327603000020D9280000E89692253CFF6FC88AEE5BD655E808480C0580C4B0 - 1D200000C947010040C2D8FEAF3DD9D6ADB1B151474062E4B111B913009D1B33 - 61A21A3682DD46000048260A000012C6F67FEDF1FC3F7AA2EAE449B563F3261D - A1332565EC06000040325100009030AEFEB757BE72B91E01DDC3630089594001 - 000080A4A2000020616CFFF7B2AA5327D5AEAD5B750474CF1AB6034CC8CC9205 - 2A372F4F470000A0B72800004808DBFFB557B172856A6D6DD111D03D5BD6AF53 - 75B5B53A423CB2E3C8ECD2853A020000BD4501004042D8FEAFBD0A9EFF472F34 - 3535AA75AB57EA089D6137000000928702008084B0FD5F7BE52B2900A077780C - 2031A565CB623B90000080DEA30000A04B6CFFD7DEE10307620DE80D16024CCC - E02143D5F82953750400007A830200802EB1FD5F7B5CFD47321CDAB7571D3948 - 212911A5653C0600004032500000D025AEFEB7C7F3FF4886D6D6561E034850E9 - 52B60304002019280000E812DBFFB557B16A851E01BDC363008999327DA61A34 - B858470000A0A7280000E814DBFFB5B773CB665575F2A48E80DE59B76A856A69 - 613BC94450880400A0F7280000E814DBFFB557BE72B91E01BD577DFAB4DABA61 - 9D8ED019D6010000A0F7280000E814DBFFB557CEF3FF48321E0348CCDC858B55 - 5616C54800007A83020080B8D8FEAFBDA6A646B5A97CAD8E80E458FB12058044 - E41714A8E973E7E9080000F40405000071B1FD5F7B9B2ACA557D7D9D8E80E4D8 - B66943EC5100748DDD000000E81D0A0000E2E2EA7F7B153CFF8F14686E6EE677 - 2B41AC03000040EF5000001017AB6EB7C7F3FF4815D60148CC88D16362772601 - 00809EA10000C013DBFFB557537D5AEDD8BC494740725100485CE952EE020000 - A0A7280000F0C4F67FEDAD5BB53276AB36900A470E1E5007F6EED1113A430100 - 00809EA30000C053C9626EFFB795F38C36528CBB0012337DCE3C5550D85F4700 - 00A03B280000E820B6FDDF1256DBB655F0FC3F526CED4B2FEA113A939999A9E6 - 2E5CAC230000D01D14000074C0F67FED1D3B7298DBB39172EB56AF54CD4D4D3A - 4267D80E1000809EA10000A003B6FF6BAF7CC572D5DADAAA232035EA6A6BD5A6 - 75E53A42674A962C53FDFAF14F180000BA8BFF7A02E880EDFFDA2B5FC9EDFF48 - 0FD60148CC804183D4E4E9337404000012450100403B6CFFD751C5AA157A04A4 - 16EB0024AEB48CDD000000E82E0A0000DA61FBBFF6F6EEDCA14E1C3DAA2320B5 - 766CD9A2AA4E9DD4113AC376800000741F050000EDB0FD5F7BE5ACFE8F346A6D - 6D51E5CBF99D4BC4F8C953D490E1C37504000012410100401BB6FFEBA87CE572 - 3D02D263CD721E0348942C0608000012470100401BB6FF6BAFA5A5456D58B34A - 47407A700740E24ACB28000000D01D140000B461FBBFF6B6ACAF50B535353A02 - D2E358E591D8DA13E8DAECD2852A273757470000A02B140000B461FBBFF6CA57 - 70FB3FFAC61A7603488824FFB3E697EA080000748502008018B6FFEBA86225B7 - 62A36FAC5DFE5F3D4257D80D000080C451000010C3F67FEDD5D7D5AAAD1B36E8 - 0848AF8D6BD7A8C6C6461DA133A565E7C416300500005DA300002086EDFFDA5B - BF66B56A6A220143DFA8AFAF531BD7AED6113A235B018E9D3849470000A03314 - 0000B0FD9F87F215DCFE8FBEB5E6251E034814BB01000090180A0000D8FECF43 - C54A160044DF621D80C4B10E00000089A1000080EDFF5C4E9D38AEF6ECD8AE23 - A06FECD9B14D9D38765447E8CCD499B3D580418374040000E2A1000080EDFF5C - E4F6FFD6D6561D017D437E07B90B2031B1C79858C70400802E510000228EEDFF - 3A2A5FC1EDFFF0070A008993DD00000040E728000011C7F67F1DF1FC3FFC62ED - 7216A34CD4BCC54B546656968E000080170A0040C4B1FD5F7B07F6EE5195870F - E908E85BB21EC5CE2D9B7584CE1414F657D366CDD1110000F04201008830B6FF - EB88ABFFF01B1E03485CE952FEFF0C0080CE500000228CEDFF3A920500013F59 - F3D28B7A84AEB00E0000009DA300004418DBFFB527ABAEAF5BBD5247803F6C5E - 57AEEAEBEB7484CE8C1A375E9D356AB48E0000801B050020C2D8FEAFBDED9B37 - AAEAAA2A1D01FED0D8D8A8D6AF5EA52374A5A48CC70000008887020010516CFF - D711DBFFC1AF580720710B96F218000000F1500000228AEDFF3AE2F97FF815EB - 00246EE6BC12955F50A023000060A300004414DBFFB5D7D8D0107BD61AF0A303 - 7B76ABA3870FEB089DC9CCCA52B34B17E9080000D8280000117466FB3F1600B4 - 6D2C5F132B02007E240B54F21840E2D80E1000006F140080083AB3FDDF281D41 - 70FB3FFC8EC70012575AB64C6564F04F1C0000DCF8AF2310416CFFD751C54A16 - 0084BFC9EFA8DC0980AE0D1A5CAC269E7DB68E0000804101008820B6FF6BEF74 - D529B573EB161D01FE24BFA7DB366DD011BA525AC66E000000B85100002286ED - FF3A5AB772856A6969D111E05F6B790C2061A56C07080040071400808861FBBF - 8ECAB9FD1F01C14280899B74F634553464888E000080A00000440CDBFF75C402 - 80088A2D1BD6ABDA9A1A1DA12B25EC760200403B1400800861FBBF8E8E1C3CA0 - 0E1FD8AF23C0DF9A9B9A58B0B21B5807000080F628000011C2F67F1D95AF6065 - 75040B8F01246EEEC2453CF204008085020010216CFFD751F94A6EFF47B05000 - 485C6E5E3E8B9E020060A100004408DBFF75B46ED50A3D0282E1D0FE7DB186C4 - B01B0000002FA300004404DBFF75B46BDB5675EAC4091D01C1C15D0089937500 - 64FD130000400100880CB6FFEB88D5FF1154140012377CE448356ADC781D0100 - 106D1400808860FBBF8ECA594D1D0155B172856A6969D111BA525AB64C8F0000 - 88360A004004B0FD5F47B29DDAC6B5AB7504044B6D4DB5DABCAE4247E80AEB00 - 0000700605002002D8FEAFA34DEBCA557D5D9D8E80E0E13180C44D9B3D57150E - 18A0230000A28B020010016CFFD751C50A6EFF47B0AD7DE9453D4257FAF5EBA7 - E62D5AA2230000A28B020010016CFFD751F94A160044B06DDFBC51555755E908 - 5D91DD000000883A0A0040C8B1FD5F47F2FCF4F64D1B750404932C0248212B71 - 5208953B0100008832FE4B08841CDBFF75B47EF52AD5DCDCAC2320B858072071 - FD070C545367CED6110000D14401000839B6FFEBA87C05574D110E6B5FA200D0 - 1DA54BD90E1000106D1400801063FB3F6FE52B590010E15079F890DABF7B978E - D015D6010000441D050020C4D8FEAFA3E3472B4998102A3C0690B8B11327A9A1 - 678DD0110000D14301000831B6FFEB486EFF6F6D6DD511107C6BD80EB05B4ACB - 780C0000105D1400801063FBBF8ECA5770FB3FC265FD9A55AAB9A94947E84AE9 - 521E0300004417050020A4D8FECF5B05CFFF2364EAEBEAD4C68AB53A42576695 - 2C50B979793A0200205A28000021C5F67F1DEDDDB533B6060010363C069038F9 - FFC5D9250B74040040B4500000428AEDFF3AAA60FB3F84140B01760F8F010000 - A28A020010426CFFE78DEDFF1056BBB66E55A74E9CD011BA5252B62CF6FF9300 - 00440D05002084D8FEAFA3969616B561CD6A1D01E1D2DADAC25D00DD503C7498 - 1A3F798A8E0000880E0A004008B1FD5F475B37AE5735D5A77504840F0580EE29 - 2DE331000040F45000004288EDFF3AE2F97F84DDDA151400BA83750000005144 - 01000819B6FFF356BE82E7FF116E278E1E55BBB76FD511BA3279FA0C35B068B0 - 8E000088060A0040C8B0FD5F47F5F5756ACBFA753A02C28BC70012278B009670 - B71400206228000021C3F67F1DC9E27F4D4D8D3A02C26BCD4B1400BA83750000 - 00514301000811B6FFF356CEF3FF88888DE56B546343838ED095B98B16ABAC2C - EE980200440705002044D8FECF5BC54A9EFF473448F2BF7ECD2A1DA12BF90585 - 6ADA9CB93A020020FC28000021C2F67F1D9D3A7142EDDEBE5D4740F8B10E40F7 - 2C6037000040845000004284EDFF3A92ABFFADAD2D3A02C26FCD4B2FEA111251 - 5AB64C8F0000083F0A004048B0FD9FB7F2953CFF8F68D9B76BA73A7EB45247E8 - CA883163638F4F010010051400809060FB3F6FE52B78FE1FD1D2DADAAAD6B21B - 40B79470170000202228000021C1F67F1D1DDCB757551E3AA823203AD62CE731 - 80EE601D000040545000004280EDFFBC95B3FA3F224AB6BE943B019098E973E7 - C77604000020EC28000021C0F67FDE2A9C240888A2AA9327D58E2D9B7584AE64 - 6666AAB98B16EB080080F0A200008400DBFF7524573FD7AD5AA923207AD80EB0 - 7B4ACB780C0000107E1400801060FBBF8EE4EAE7E9AA533A02A2672DDB01764B - C992A52A23837F160100C28DFFD201213076E2243D82C1EDFF88BACDEB2A547D - 5DAD8ED0958145456AE2D967EB08008070A20000049C2C003860D0201DC158C3 - EDCF88B8A6A6461E83E9A6B3468DD6230000C2890200107039B9B92A2B2B5B47 - 10D5A74FAB8DE56B740444D7F37F7F5A8F9088C14386EA110000E144010008B8 - 86FA7A75F2F8311D413CFFF413AAB9A949474074BDF8EC33AAF2F0211DA12B47 - 8F1CD6A3E0A9ABADE5FFF7BA70FAE4493D0280E8A20000049CAC76BFE285E775 - 84DDDBB7AAFB7FFC031D01D1268F017CF9E3B7A8E3472BF50CE291AD1337AC59 - ADA3E0696D6D097401231D288601805219BAEF0EF91AF375D24B11C1F4994ECB - D2BDDC939C63B55CA7E5392DDFEAF3EFF953E57DC5C5437AF239D2E2868BCF8B - FD4715F033D9C3FAAA37BC49CD5DB4440D1D3E22526B02343737A913478FC612 - 9C179E795A3DF7D413AAB1B151BF0A40E41714AAF35E79995A7CEEF9AA78D870 - 55545CCC8AF7DAF1CA236AD7F66DEA0FBFB85BEDDFBD4BCF06D39BFEE7BDEA35 - 37BC4547B0C99D721FBEF18DAAB6A65ACF0008A34BAFBA5ADD74CBAD3AF29F63 - C78EB6DE74EDD01B9DA1ACD22BADCEEAEB9DD66035F9076DB3D3E4F62EE92529 - 6DB57A21BD1927A42789B77C8DF93A93F89B9E02000000401F9042CFAD77DCA9 - 66CE2BD13310B225EC0FEFBC43AD78E1393D0320AC280074AD2789B77C8DF93A - 93F89B9E02000000401F919D6166CE2F5563274C5443869FA532B3E49F64D174 - EAC4095579E8A05AF5E2BF557555959E0510661400BAD693C45BBEC67C9D49FC - 4D4F01000000000090761400BA26493B000000000008390A0000000000004400 - 0500000000000022800200000000000011400100000000008008A00000000000 - 0040045000000000000020022800000000000010011400000000000088000A00 - 0000000000440005000000000000228002000000000000114001000000000080 - 08A0000000000000400450000000000000200228000000000000100114000000 - 00000088000A0000000000004400050000000000002280020000000000001140 - 0100000000008008A00000000000004004500000000000002002280000000000 - 0010011400000000000088000A00000000000044000500000000000022800200 - 000000000011400100000000008008A000000000000040045000000000000020 - 022800000000000010011400000000000088000A000000000000440005000000 - 00000022800200000000000011400100000000008008A0000000000000400450 - 00000000000020022800000000000010011400000000000088000A0000000000 - 0044000500000000000022800200000000000011400100000000008008A00000 - 0000000040045000000000000020022800000000000010011400000000000088 - 000A000000000000440005000000000000228002000000000000114001000000 - 00008008A0000000000000400450000000000000200228000000000000100114 - 00000000000088000A0000000000004400050000000000002280020000000000 - 0011400100000000008008A00000000000004004500000000000002002280000 - 0000000010011400000000000088000A00000000000044000500000000000022 - 800200000000000011400100000000008008A000000000000040045000000000 - 000020022800000000000010011400000000000088000A000000000000440005 - 00000000000022800200000000000011400100000000008008A0000000000000 - 40045000000000000020022800000000000010011400000000000088000A0000 - 0000000044000500000000000022800200000000000011400100000000008008 - A000000000000040045000000000000020022800000000000010011400000000 - 000088000A000000000000440005000000000040F06564E801E2A100D0859C9C - 1C3D0200000000F8555E7EBE1E211E0A005DC82B28D02300000000805FE5E593 - BB7585024017A8220100000080FF91BB758D024017F2B90300000000007C8F02 - 40D728007481DB4800000000C0FF72F328007485024017B8030000000000FC8F - 3B00BA4601A00B2C020800000000FE4701A06B1400BAC01D0000000000E07F3C - 02D0350A005D600D0000000000F03FEE00E81A05802E70070000000000F81F05 - 80AEF54501A0D56ABE47010000000000FC2F40776FF7594E9C8E02402012FD78 - 78040000000000FC2F372F4F8F022BE5B9733AEF00F03A18DF1707B803000000 - 0000FC2D23A39FCACEC9D191AFF5695E9C8A0280FDE17D9FE07725AFA0508F00 - 000000007E24CFFF676464E828D0529A4FB30860170A0A290000000000809F15 - 0E18A047E84CAA0B0052B130CD6857C5E8D7D2D2AC87BE347CC4283D02000000 - 00F8D1C83163F5C8BF0665B734E9A1E1CE93DDB973D2A5FB0E808E07935F50A7 - 47BE543C6C681816930000000080D00A4201A021A7D02BF74D69C2EFE6834700 - 6A7D5D0090C524468E1DA7230000000080DF04A100D05C9770EE9BB2A240320A - 00BDFB708DCDBE2E008851140000000000C0B78270D1B6A5F7B96FAF0B03A9BA - 03403E98FDE1CCB8C3076EAE6DA2000000000000E8B1403C02D0DCE895FBDAB9 - B2570E9D54C92A0074E7C399038BB5C6D6FA001400C6EB1100000000C04F32B3 - B2D4D0B346E8C8BF1A9B6B24F76D970F3B2D51DD796F5CA95C03C07D509E1FB8 - BEA18E3B0000000000003D72D6A8D12A33335347FED5D4E0790780B073653B87 - 4EBA641700E27D507310F6EBB1B8A1D6FF05809163FD7F3B0900000000445110 - 6EFF170DF5B1DCD7332FD6CD4BBCF91EE94901A0AB0F90C8076C7B4F638BBF77 - 0110B979F9AA78D8701D0100000000FC62E49860DCB1AD0B0046B7F2E63812F9 - 33DA49E52300F1C8876C6B0D75F5B532E977A3C7B10E0000000000F84D50EED8 - AE6FECD51A0049D1D30280F9A09D7D60F76B9E5FD3505FEDFB3B004410B69500 - 00000080A809CC230075B102802D5E5EED8E6DF1BE2621E9B803403E58DC0F59 - 575B158802000B010200000080FF8C0AC82300F5B5D55E77BFDBB972877C39D9 - 52B10860671FDC7E2D36AEADA1000000000000E8BEBCFC7C35A8B85847FE567D - 26F7ED90139F1976605E8BF77A8FA4FA0E00FB43DB1FDEF4AAAEF67420D60018 - C51A0000000000E02BB200604646868EFCADA6E6847DF1DBCE8DDD2D65925900 - B03FA819C7FBF0E6C05A6B4E9F0C440160C8B0E16A6051918E00000000007D6D - EAACD97AE47FB5A74F49EEDBA29BC989DDCC9CFD9AD7FB7A24190580AE3E8CBC - 6E9AB0E3D6D355C703510090AAD2ACF9A53A0200000000F4B520E568AEDCD7E4 - C7C2CE913BD3D5EB5D4AC51D00EEDEADDDFCC9134702B10680985DBA508F0000 - 0000007D6DE6BC123DF2BF53A72ADD17BFBBCA99BBCAADBB2D1D6B001832364D - C4C6470EEF3E7D26F4BF59250BF40800000000D097C64D9AAC060C1AA423FFAB - 3CB8B3DAE93AE4C4BA19F638E9925D00E8EAC39AD7CD41B66EDEF8E2C9D34D47 - EB63B33E77D6A8D16AC8F0E13A0200000000F4959941BAFDDFC979376F5E7ED2 - 19B6E5C2326FF5F174F57AB724AB00E0FE50EE0372B797173D68696969AE6A3E - E88C7D4FD60198CD5D0000000000D0E782F4FC7FD3A9A68392FB3AC38E39F1CB - B13461E66CEEB84752B106809BF9F0E6753B8ECD9D387EE890F441C063000000 - 0000D0B7E4E2EC8C79F375E47F278F1D3617BD3BE4C3562FECB1E135D723A95C - 03C01C9057B3B51EABDC7F408F7D6FD67C0A0000000000D097C64F9EA2FA0F18 - A823FFAB3CBA570A001D72E14E5A4AF4A60010EF43D9F3EEF798587A738B43CB - 81FD5B035300903500468C19AB230000000040BA05E9F97F7170FFD6FD4ED796 - 033BCDCE8DE389F75A675FD3A964DC01E0F5CDDD7312DB4D0EB8CDB64D2B03B1 - 0680C13A0000000000D07782F668F6F6CDABDC39AF2902D8CDE68E85D75CB7A4 - FB110061FAB6EAC7DAE54F4835243058070000000000FA4646463F3563EE3C1D - 05C3DAE54FCA5DEF6D39B0CC39EC1CD9DD5222590500F301BD3EB03D27076AC7 - B15659B9AFAEB6F6F471671C08B3E697E81100000000209D269E7DB62A28ECAF - 23FFABADA93A2E39AF33EC900B3BCD9D230B3BB6E77A2D5D770018EEB9B6F8F8 - C98381D9096060D160356ED2641D0100000000D265E6BC603DFF7FEA786C0780 - B8B9702C3AC39EB3E79326D90580781FD88ECDD8BEFDA1B5EAE56D110281C700 - 0000000020FD6697062B173BFE7201A05D0EAC9B708F0D7B3E2952790780B00F - C26EEE836E3D726077607602108BCFBB408F0000000000E9205BFF05AD0070F8 - D02EF71D001DF261574B999E1600BC3E94D7873573A6C5AB74B4ECDBB3295005 - 80E973E6AA612346EA0800000000906A4B5F7191CACACAD65130ECDFBDD16C01 - E8990B5B632FF15E8BF7FE4EF5E60E00FB83B8BF7967AF99036C57F1D8B8EE85 - 40150064E5C9F32EBD4C470000000080543BEF95C1CBC136543C2FB96E5BEEEB - 343B27B6C99CE9CDD8E8ECB584A5E311007713662C071C6B6B573E73A4B9EA48 - A3330E8CF32F7D951E010000000052E9AC51A3D5D499B375140CCD55871B2B56 - 3F5BE90CDB725FA779E5C6764B99541400BC3EBCF4EE03B60FBCB5A5A5B1A5BA - A9F9B0330E8C1163C6AAB303F60B08000000004174DEA5AF521919193A0A86AA - E6D64392EB3AC3B6DCD769764E6C9AC4C27E9F994B9A641600DC1F2EDE0797B1 - 7D02DA0EFAE4A9A381DA09409CF7AACBF50800000000902AE75EFC4A3D0A8E93 - 2762396E5BCEEB343B0F96DE30F3A6D9DC718FA5F20E00C38CBD0ED88E5B0F1F - DCBDD7E90325888B500000000040904C9D392B760776D0541EDAB5CFE9DA725E - A7C5CB8B85C486793DA9925D00F0FA80E6839BE675C0CDD2CA573EB3C1E90345 - B6A158B0EC1C1D0100000000922DA80BB097AFF8FB7AA78BE5BB4E73E7C1766C - 9A9BD75C8F25A300E0FE40897C68894DE2DF76D07F7BF49EADB24882330E1476 - 030000000080D4C8CCCA524B2FBC5847C121B9ED537FFDE9366718CB779DE6CE - 816D2636EF15F1DED363C95E03C0FEA072506DC97D02732DA74F1F6BA83C55B5 - D51907CAFC25656AC0C0413A0200000000244BC992A581CCB724B7ADA939D9E0 - 0CDB725EA779E5C2F69CDD843DEEB554AC01E0E6FEE0D2DC27A02DDEB57DDD46 - A70F14590360D94597E80800000000902CE75D12CCEDD777EC2C9747DCE3E6BE - 3A364D983E65525500B00F449A7D70EE033571EC24AC5CF1843C231138E7B31B - 0000000000245541617F55BA34986BAEAD79F149C96D6379AED33ACB85BD5E93 - 9674E9B803409803B00FDC6EE63988967F3CFE8BED4D274ED439E3409974F674 - 356ADC781D01000000007A4B765DCBCEC9D15170343A39ED334FDEBBC31976C8 - 79AD66E7C8D2522E150500FBC3BBC7A637CD7DE02DF5F5354D474E1DD9E28C03 - 252323435D72E56B750400000000E8AD4B5E73B51E05CB915387B7486EEB0C3B - E4BC7A6C9AB07BAF71D224BB00607F40F381ED660ED83E707B1C8B776C5F13B8 - 7500C4C557BE86C500010000002009E62D2E5313A74ED351B0ECDCB6C63CFFEF - CE85EDB13DE76E863DEEB5DE160012F980F67BCC6B662CB741482F072DE3D86D - 11CBFFF34820D701C8CDCB5757BCFE0D3A0200000000F4D4356F7EAB1E05CF7F - FFFDB02900B4E5B94EB3736069C28CED39C38EE3BDA75B52B90680FDE1A43707 - 2CBD69129B93615AF3B34FFD7A57C3B1D3D5CE38705E75CDB5B1852A00000000 - 003D337DCEBC580B22C965FFF5B7DFEE72861D725DA779E5C4A617D29B71D2A5 - AA0010EF039B8331CD1CA87D625A5B5A1A5B0E9DDCB3D919078E24FF52040000 - 000000F44C90AFFE1F3AB963B3E4B4CED0E4BCD2ECE4DFE4C3A6798937DF2BC9 - 2C00B83FA089CD41B99BBB1A629ACC376FDFB23290EB00882BAE7D83CACDCDD3 - 11000000002051F2DCFFDC454B74143CDBB6AE96DBFF6379ADD3E2E5BC5E39B2 - 34617AC31DF7582AEE00707F70779303B6637352DA9DA0175F783090EB008801 - 83060576B54A00000000E84B57BFF9ADB15DD682EA3FCFC572593BD9B7735E3B - 1796393B364DD8E3A449E51A00C23E08BB9993610ED88E6327E8DFCFFE795F5D - 5DF529671C48575E7F83CACECED61100000000A02BA3C68D578BCF3B5F47C123 - 39EC8BFF7C70BF33B4137FD3BC7261AF9632E95A04D0B00F4A9A7DF0AED6D2BC - 7FDFB64DCE3890060F19AA2EBCE22A1D0100000000BA72F59B6E541919A9BE4E - 9D3A07F76DDBE8E4B24DCED0E4B6EE228034775E6CF39A4B9A549D59FB039B03 - B09BD70970CF35EFD8B83CB08F0188D7BCF1CD2A33335347000000008078868D - 18A9CEB9E8521D05D3968D2F796DFF272D5E1EEC6E863D4E9A641500BAFAC0F6 - EBA609333627462A256D27EAC1DF7F734573F3111907D2D0B346A8F32EBD4C47 - 000000008078621750B3B274143C92BB3EF0FB6F2C778676926F725DE9BD7261 - BB19EEB1FBF51E4BC7BD15F6079626076F7AFB84D84DE69AF7EE5E7F6AFFEECA - B5CE38B05E1BF05B580000000020D58A8A87A8575CF66A1D05D3FEDD07D71ED8 - BDB1CA19C6F259A779E5B9666CE7C6764BA95467A6F601D807E43E50FB64D827 - A5F9BFCF3FF46FA70FAC9163C6AAA5175EA4230000000080DB95D7BF5165E7E4 - E828985E7CEE91179CAE5D3EEBEADD39B030B1618F932E150500F7073607649A - 3970FBC4D84DE6DBDA9F7FF3D5350DC74E573BE3C07AC33BFF971D0100000000 - C0C3F091A3D42B5F7BAD8E824972D6077E7BA7DCBDDE2E9F755ABC9CD7CE8DED - 6673C7BD96CA3B00EC033063773307EF3E416DE39A9A930DDBF6AF91E72802EB - AC51A3D5D56F7E9B8E0000000000C63B6EFE88CAC9CDD551306DDDBBE625C95D - 9D61BB7CD61ADB735EB9B134618F93AEAF1E4E9703F23A707342DA9DA8679FBC - 2FD08F010859D0420A01000000008033169D7BBE2A59B25447C1F5EC53BF949C - B52D87D5CDE4B5EEBCD7E4C269978E0280394861927B69C28EED13D4AE3DF1F0 - 4FB71D3D75ECB0330E2C799EE59D377F444700000000106D72D5FF6DEFFF908E - 82EB64E5B1434F3E72F77667D82197759A9DEB9A26DCB19D37A74C5F2C02689A - 1CA83D36CD7DC29CD6D2B4B5E2B9179D71A0CD5B5CA6965C70A18E0000000020 - BA5EF796B7C7B64E0FBA4D9B24576DB1B7B49766725B3BD7F5CA854D33EC71D2 - 25BB00D0D901B80F4462FB64B89B7DF29A1EFDF3F76445C5C07BDBFB6E56B979 - 793A0200000080E891DDD25E7DFD0D3A0AB687FF7897DCFEEF550088D7BC7263 - BB1732362D6952BD08A0617F78FBA0ED589A7DC2DAB5B52B9E3E7CE4D0CE2DCE - 38D08A870D57D7BDFD261D0100000040F4BCF3431F0DC54E69870FEEDC52B1FA - 19795CDD338FD5CDCE79E3E5C5D20C7B9C54E95E03C08CA5D9072CBD7D62DC27 - 2CD6562D7FEA3F4E1F7897BFEE7A3566C2441D010000004074945D70919AB360 - 918E826DCDF2A7BD16FF33CDCE6FA577E7C1A6097B9C32E9280074460ED03E78 - 7372CC0932E358FBF3FD77BED45C75A4D119075A6656967AD72DB7EA08000000 - 00A2411E877EEBFB3EA8A36093DCF40FBFBA43B6AC6F97B73ACD9DD7DAF9AEF4 - 7D269D050073D0420EDC3E11E6C498664E96DD9A0E1DD8767AF791836B9D71E0 - 4D9F334F5DF0AACB750400000000E1F7FAB7DD147B2C3A0CF61CD9BFE6C8A19D - 55CED0FDFCBF69EE1CD7E4BF664E98B9B4485701C03E207380D2CC819BB17DA2 - CC584E66DB097DF15F0F84623140F1E677BF5F15F6EFAF230000000008AF31E3 - 27A82BAEBD5E47C1F79F671F30B7FF9B9CD52E04B8F35B77FE6B9A618F532655 - 0580CE0EC8EE4D3327C234F70993163BA17FFECD9DE5B57535526509BC814583 - D51BDFF51E1D010000004078BDF3431F8B3D0E1D06B575D5557FFEDDD7CB9DA1 - 9DB39A66E7B476B37360E1EE85FB3D4995AE45000DFB604C3327C2EEA5D927B0 - AD92D2585FD3B0A9FC85D0DC0570C955AF55F3162DD1110000000084CFABAF7B - A39A39BF4447C1B7B9E2F9E7253775861D7256DD4C5EEB95F3BA9B618F53A2AF - D6003063D3CCC9B14F947DF24C8B9DD45FFDF4134F856131409191D14FBDFF53 - 9F5383870CD53300000000101E53A6CF5437FC4F78EE7C6EAE3ADC78EF8F3EF9 - 940C9DE64EFC4DF3CA71DD79B0B0C72997CE0280173950FB4498136437F7096D - DAB665E5B14D3B363CEF8C4361605191FAD0E76E8F150300000000202C0A0AFB - AB9B3F7BBBCACA0AFE9EFFC6866D9B9EDBB16DD57167687255776F3777BE2B7D - 9FE98B8CD31CBC7D02A4B7C7EE1366C7D29AEEFFE9671F6F69A9947128C8AE00 - 6F78E7FFE8080000000082EF3D1FBF4D0D1F395247C12739E8FDF77CEA096728 - C9BE69B11CD5695EB9AC57BE2BBD696995EE02807D90766F9A3949763327AFDD - 095E5FF1CF235B376D7BD11987C66BDFF4163577E1621D010000004070BDEAEA - 6BD5E2F32ED051386CD9B8ED3F1B2B9E3FE20CDD79AA89BDF2593BE715766FC6 - 6991EA02803920F741D9F3A6C9C931BD7DB2CC4975F74DBFBDF7F6C78E1D3B2A - 5F130AF208C0076E633D0000000000C13671EA34F596F77E5047E120B9E7EF7E - F1F9C79DA13BE977373BA7B5735D77B3C59B4FAA74DE01600EC43E283336CD3E - 41EE93D82EF997B6EAC5470F1C3BBA6785330E0DD91AF0E6CF7E81F500000000 - 0004527E41416C8DB3ECECF03CF72F8E1DDDBD62D54B4F1C70866D39A9D3DC79 - AB699D25FFC23D4E8BBECC32BD0E5E9A9C20BB9913689FE4B613FDE7FBBFF4A8 - D387CA8CB9F3D5F5EF78978E000000002038FEF7A39F5423468FD15178FCF1BE - 3B24F7EC343F759A3B9FB5735D618FD3AEAF0A00F6019B13E03E51E604BA9B39 - B9B113FDEF67FFB467E7CEF56B9C71A85CFDE61BD59C058B740400000000FE77 - C95557ABA5175EACA3F0D8B963DD9A17FFF5A73DCED04EF8EDC4DFDDDCF9AD3B - F1B7C769F3FFDBBB13F0AACA6BFFE39BCC098419640623F3A40C2222501410B5 - 5E6BADF7B6B5D3FDDBDE6B6B27B57A9D6BD5D656ADD50E5AB1B576D2D67AB575 - A6A87544641090799E0992908129849090FF5EC7B37217AF7B9F9C0081337C3F - CFB39EF77DD7DE09E4E4E0E3EFDDFB9C73BC3700827E60FB40E85C1F20F7413C - 2CFCFB7550C6E7FF7AEFCBFE9852E42500DFBEF936AF6D870ED10E0000000024 - AE5E457DBD2F5FF99DE82AB53CFFE44F25733664D068D98C6ACB665A29E1CE95 - 9D37BB13710780FBC36AE903A43B245AEE83A90F76C303FEAF7FFE7EFDF66D6B - 57F8F39412793F809B793F0000000000892D372FCFBBEAB63BBD9CDCDC682775 - 6CD9BA6685644E7F6A43BFCDA4B6DC3C6BB3AE96B2F3E322333A1E2F2D9C51D8 - 9E2D21C9574AD63AD792BF7B43BFBEBEC5EE51679C7FA63F4F299DBA74F50ADB - B4F116CD991DED0000000040E2900B9657FFE087DE80A1C3A29DD4F2B7C76EFF - E39A95733FF4A707FCAAF14BEE02D0D1966E02C8C640D04680703701C471DB08 - 38D11B0032BA25649460AFA396ACE5EF6C7BB2CE5CB3724EE5C4295F195CD8BA - 5D7B7F9D52FA0E1CECD5D5D5792B17A7DC5B1D000000004872575C7B8337EE9C - 29D1556AD9B17DE3DAFB7F74D973FE342CF8CBDABD1B4002BF8E1AF835E41FB7 - B01F2411EE0010B2B6C76C69F0B7A15FEBB0CD80FCFC967B878F9A7C863F4F39 - 434E1BE95594957A1BD6AC8E7600000000E0C4FADC57AFF0CEFFCCBF4757A9E7 - EF7FBDFBF1154BDED9E64F25E8DB4D00BB1110F47200F7EABF94CE4F1809CE89 - C2EE88D807CBEEA0D8D207B9A19E7EE2274BCBCBB66FF6E729A7458B16DE57AF - BACE3B7DFCC46807000000004E9CF33E7DA9F7A9CBBE145DA59EF21D5B363DF3 - C43D4BFDA966CEB0B02F65B3AB96CDB809E178DF0160C9557DA5733BDAD2ABFC - EEDA96DFAFCFC8CCC8AC3C75F4D4B1FE3AE564646478A3C74DF0562C5EE4ED2C - D911ED02000000C0F175E6A473BC2BAEBB21A5DFB0FCA9C7EFFAC3CAA591ABFF - F2DA7FBDDA6FE7BA2110B4196037016C29777D5C9CA80D0009F17614B6A7F368 - B03FAC9CD01FF91974CC58B97456F9D8F19FEAD1B67DD7AEFE3AE564666579A7 - 4FF844E44D0177555444BB00000000707C0C1931CABBFAF6BBBCCCCCAC6827F5 - 6C58B7E8FD9FDFF5E597FCA9DEEAAFC15FD67A37806E00D8BB0224F4CBE8867E - 1BF68F7BF05789B45D631F20DD29B13B275AF260DA07581FF4865FC0AFEFFFE6 - 537B6BCBE41794925AB66AE5DD78F7CF229F100000000000C74B9F7EFDBD6BEF - FCB1979D9D1DEDA49EBD07CB0E3CFCD3AF3FE54F0FCB99D1D1CDA34199D5665A - AD8490281B00F641B1A37D10E5C1B5A50FBA2DE91F5CBD7C76E982D767BEE8CF - 5356BB0E1DBD9BEEB93FF2118100000000D0DC3A77EDE6DDF893FBBCFC8296D1 - 4E6A5AF0C63F5F5CBD72CE4E7FAAC13FA8DC7C6AB36B50B6D5F90975A23600F4 - 01701F04DBD7074EE75AF641D6075E7F090DBFA05FDEF7D5572B2A8AB7FBF394 - D5B5474FEF06FF1F606E5E5EB40300000000C75EEBB6ED221720DBA4DEA7AE1F - A672E7F6E25FDEF7B557FDA99B31ED6680CDA436AB066559292BAC7F5C9CC837 - 0114F2DA7D3B0ADBD3B9BEDE5FCA9D6BC95ADF0F20E3505D6D8B9A03074A468D - BDE04C7F9DB2DA77ECE4F51D38D87BF7F557BDFA43F23C030000008063272F3F - DFBBE5BE9F7B3DFB14453BA9EB0F8FDCF09BD5CB66CB8564FB517FF6F5FF32EA - 6680BD282D614C4637E0BBF3132AD136007414B667CB6E00E83AA85AAC5D396F - D788332EE8DCB153F71EFE3A659DD4ADBBD7A3571F6FDEACB7D8040000000070 - CC48F8BFEE47F778FD870C8B7652D7AA1573E73CFCB32BE4EABF0DFC76234046 - BD0B209E3B014E78E07725E21D00C2F6DDB9AD48D08F8E0DC1DFAED7AE98B779 - F4799F1F5F909597BAEF52E1EBD1E764AFDFA021DEDCB7DFF4EA6AE5B9080000 - 0000474EDE6FEC967B7FEE0D189AFAE17FE7815DFBEFBBF9D30FEDAA28D9EB2F - 8382BFBDF21FB601E006FF84DB0438D11B009604773B0ADBD3126ED0D7B9DBCB - ACACD851DBABEB29B545FD460EF1D7294DEE04183E7A8C37EF9D37BD9A0329FB - 2108000000009A59C793BA78B7DDFFA0D7ABE8946827B5CD9AF1F833AFBEF4DB - 15FE54C2BE7B074058F897D15EF98F75F53F2136031265034083BD8EC2F6DCB9 - 067C9DDBF0FFB1DEC2B9338B275D70F9F096058529FF96F9F29E00A3CF9AE0BD - 3F7B9657B54F36AF00000000207E3D4F2EF2C3FFAFD2E663C7CB776EDE7CFB75 - E73F71E8509D04FF78C3BFBDF21F14FCDD794248D40D001D85DB93602F642DA5 - 415FE70DC15FCBFF45B6D8B7A77C7BFF219F18979F9F2FC7529ADCAA73E6D993 - BD25EFCFF376555444BB0000000010DB80A1C3BD9BEF7D20F2AEFFE9A0A2A2A2 - FECF8F5CFFC8FA350B4AFCA5867E37FCDBB29B0012FC6594801FEBEA7FC29080 - 9C88EC83A60FA4EEACD85D1699DB9D18AD8FFDA25E9FF1FB75DBB72E9FE5CFD3 - 42BB0E1DBDDB1E78C81B386C78B40300000000E1469E799677D3BDF77B2D0B0B - A39DD4B77DCB9259AFCFFCE33A7FFAB10CE9979B33257FBA7954E79A5985CDB3 - 092591DE0340D92BF47A655FE8DC96B06BF7EABF9D672C5FF2F6A6F1D32E1F97 - 979393E3AF539EFC98E3CE99EA6DDEB0CE7F626F8E7601000000E0709F9876BE - F7ED9B6EF3B2D3232A4554EEDBB7F7AE9B3EF9F0DEDDE5FBFCA57BE5DFBD0BC0 - 6E0404857F0DFC6EF877D72754A26D004860B7A3253DF7B88C1AF46DD9F0AF63 - 86FF8BADEDDCA95B75BF8163D2E6B27866569637F613E7781565A5DEC635ABA3 - 5D00000000F8C8459FFB82F7FFBE738D97919988D7879BCF6B2F4E7FF2AD571E - 5FE54F83C2BF067F1BFEF50E80A0F06F4BD9794248960D00DB8F5591A0EFAC6D - 3F63C19C19C513CEFE6C51EBB61D3BF9EBB4909191E18D3A73BC77E8509DB772 - F107D12E0000008074F7C5AF7FD3FBCC972FF75AB490D8943EB66D5AB9FC8737 - 5EF4BF7E46B7E1DF967BD5DF6E0068F86FECEA7FC249D60D0061E736F46BB91B - 01D1AACF58BCE88DD5E3277F694C6E6E6E9EDF4B0BF20F7AE888515EABC2D6DE - 07F3E644BB00000000D291DC29FCF5EB6EF2CEFDD425D14EFAD85FB5A7F2B6FF - 99F6CBDD951FFBCC7F2D09FBEE1D0012FC650C0AFFB6125A22DFE321C1DDD2B5 - 867AA1F3B0D2E0AFF3C8B8BBB2F4E081FD95DB469E31764C8B1605D24B1B7D07 - 0DF1060D3F35B20970A07A7FB40B000000205DC867FCDF78F77DDEC8B1E3A29D - F4515F5F76E8D1876E7C78E19C97B7F84B09FBF2B17F1AFC35F0DB79D8D57F37 - F4BBE1DF1E4B1889BA01A0A1DC8673B76747771E54BA011099AF5D39BFA277D1 - 988C9EBD07F7F7D769A573D76EDE84A9D3BC8D6BD77825DB8BA35D00000000A9 - 6EF45913BC1B7FF233AF4BF71ED14E7A99FDE68B2FFC71FAF5EFFA5337FCDB72 - C3BF5EF9D70D0009F6417700283B4F28C9B40120642D0FA6EDDB7375AE57FE6D - E8973AAC3FFBAD67364E38E7F3A714B6E9D0D15FA795BCFC026FFC94695E6666 - A6B7FC83457E27619FA3000000008E92FC7FFF97AEFCB6F7E52BBFEBE5E4E646 - BBE965DB96D52BBF7FCDE427EAEB0FB9C15FD76EE897B55EF9B757FFED268048 - 9A30958C1B00F6987B9E047B1DEDB186D06F47FF17EF2D59F8FAEA4913BF3426 - 3B3FFDFE15C8FB020C3A75845FA7798BE7CDF5AAF7F3920000000020D5446EF9 - FFC9CFBC33269E9D766FF6A7F697EFD9FD831BA7FD7257C5877BFCA50DFD1AFC - A582360124E4EBA8C15F4BD879C24BE4F7005061CF50EDEBA8E1DFF663556423 - 607765496DD581BDC527F71F33263F3FBDDE0F4075EED235F292804DEBD6F292 - 000000002085A4FB2DFFA2BCBCACFEC93FDE3AFDFD392FE8EBFEDD0D002DDD08 - D0F06FAFFCCB2841DFDD0470C37F502F6124FA068006723798CB5A1ED4A0C02E - 3DEDEBD57EA9A079645CBB6A6EE580A1635BF4EC3D28EDDE0F40E5E5E77BE3A7 - 9C1B7937D0E58B78490000000090CCB8E5FFFF2C9CF3D24B7F987E9DBCEE5F43 - BF8C7AC5DF067F0DFF326AF8B79B001AFE65146ED84FF810952C1B0042E74163 - 5089A0BED4611B0032BEF7E6D31B274EFE7CDFC2D61D3AF8EBB4147949C0F0D3 - BCC1A78DF03E983F8797040000000049885BFEFFCFD64D6B567DFF7BE73C5E5F - 7F48C3BE84FFC63600F4967F1BFC35FC6BC877C37EC2877F914C1B0022E8D92B - 3DEDDBB9D075A325EF07B074D19B6B264DF8D2E959F93969BD45D6A94B576FE2 - B9E7F12901000000409219356E7CE423FED2F9967F555DBE77F71D379FF76065 - C5F6DDFE52C3BF86FE58E15F2A2CFCBB25744C78C9F01E004242BA1D55585F44 - 82FD47D3862BFD42FB5A0D7701ECAADC5173A0AE6A7B9FBEA7A7EDFB01A8DCBC - 7C6FC2D473BDC2366DBD554B9778B507E5DF030000008044D4AAB0B5F79FDFBE - DAFBC215577AB9B979D16EFA8ABCEEFFF1DB7E336FF6739BFCA50DFFEE26800D - FE32B7B7FD6B055DFD0F0AFD09BF11902A1B0042E6EE79DA0B5B6BF86FA8D52B - E6540C1E3A2EB347EF81FDFC755A93DB85FA0E1AEC4D9A7681575951E66D5EBF - 2E7A0400000040A238FB820BBDEB7E78B73770D8F0B4BFE55F2D9E3F73C6630F - 5DF38E3F0D0AFE32D7ABFE5AF6CABF867E1BFCDDBB009252B23D3B34A82B5D4B - 6998974D0D99CB9865C6EC68E54447B9CDDF966C93C9B1BCACACDCFC071E5DFC - DDEEBDFAA7FD2680B56CD102EFD1077EEA156F964D34000000002752AFA2BEDE - D7AEBED6EB3F6458B403B17DDB9AD5DFF9CF61BFA8AD3D206F6A56ED97847E19 - 25F8DB92E0AF7701E82680847F1D25F4CB186B03C05D27B464B9034069F8D751 - C95A1E74DB77E7616B190F7B89C0A14375DEB2C56FAD1E7FCEA52372725B1644 - FB694F3E2E70F2851779B97979DEEA654BBCBA3AF9B700000000E078924FF0BA - EC8A2BBD2BAEBBD1EB745297681762EF9ED2B23BAFBFF0A18AB2E2A0D7FDEB5C - 037F50E8D7E0AF25395346E186FDA409FE2A593700840DF0EEE8CE834A04F565 - 33C0DB55B1E3E0FAD58B569E31F19251D959E9FDA680564646A63770D8A9DE84 - A9D3BCD21D1F723700000000701C9D79F664EF7F7E748F377CF418FFFFCD23D1 - 0551FBABF7EDB9FBD64B7FBE7AC57B3BFCA5BDC2EF96067F2D0DFE36FC6BD8D7 - 90EF86FDA40BFF2299370084BB16DA8B67D4121F5BEFD8BE7E7FE9F68DEB878D - 9B343A27B3405E4680A88256ADBC71674FF18AFA0FF4562F5FEA55EDDD1B3D02 - 000000E058EBD2A3A7F7DD5BEFF02EFADC17BDFC8296D12ED4C1CACAEA077FF6 - F507E7CD7E6EB3BF9490AF57FBED1D00F6CABFDD04080AFFEE268096D031E924 - DB0680B2A1DD92B5FC326C5FE641E7694FE7B64464BE69C3923D35FBAAB79E3A - 7AF4A88C8C966CB139BAF6ECE54DB9F0535E8B8C0C6FCDF265DEA143F2EF0400 - 0000C0B1909D93E35DFA95CBBD6FDD749BD7B547CF6817565D5D69DD1F7E77E7 - 23AFBEF4DBD5FE3228F8BB1B004157FF35FC6B49AED47063C3BF95741B01A9B8 - 0110764CB9E7D8126EAFC59A1573CAB3B3DB9575ED39F4D4FCFC7C3D0F519959 - 59DE90112323B72355EC2CF5B6F1B200000000E0A8C8BBF9CBFF5F7FEF8E1F7B - A3CF9AE06566266B746B5E151515F52F3D33FD8F4F3F7ED7227FD958F0B71B00 - 12FAED0680DD08B0813F2CFC27A5547816C50AE41AE2859D2B7B4CE9797AB53F - B25EB2F0B51D5D7BF6DDDFB7FFC8C11FB5E12A6CDD26F21FA9B19F38C7ABDAB7 - D7DBB26183DF4D997F2B00000040B393D7F54F9C76BEF79D5BEFF0A6FEDBC55E - CBC2C2E8110479EB5F8F3FFDD88357CDF2A71AF6650340427ED846807BF5DFBD - EA2F65E76EA009EA258D64DF00080AF061EC399150FFD1B4611E54A2613EFFDD - E7B716F51B91D5BDD7C053648D60ADDBB6F3C64C98E48D9F72AE575373C0DBBC - 61BD57CF4B0300000080505959D9DEE44F5EE47DF7FB777A93CEBBC02B6CD326 - 7A0461E6BCF3EC3F1FF8D11766FA531BF6DDE0EF5EF90FBBEA6FCB867F1BF693 - 36F82B0DB9C9CAFEFDDDB9967EC49F6C76C85C462979533FA96C33E6989277FE - D7512BCFFF167977FDE2CDCF0D1A367E9CBF461CCA4A4ABCE79F7CDC7BEDC5E7 - BC8335F26F1000000080C8C9CDF5A6FCDBC5DE85FFF179AF7DC74ED12E1AB3F4 - 833767DD7AD5394FFA795D3EDFDFFD8CFFC6360224F4DB8D0009FD324AC07737 - 0054D83CA9D8D09C8CDCBFBF5D6BF817326AE9068096DD00D00ADB0088545656 - 4EFEDDD3E77CB5A8E8B4E1FE1A71DA5551EEBDF8D45FBD99CF3EE355EFDF1FED - 02000000E927BFA0C09B76F167BC0B2EFD6CE40E5AC46FFDBA458BAFFFFA198F - D6D6D648A8B0C15FCB6E00D8E02FA15F37006CD9ABFF423701941BF8D90038C1 - DCE0AFA32DBB09603702DCBB007403C0D6C736015A16B66B75CF43F3AFECD6A3 - 88970334D1DE3DBBBD19CF3CE5BDFCF4DFBC7D7C7C20000000D248ABC2D67EE8 - FF0F3FFC5FCAEBFB8F40F1D675EBAEFDFAA807F7EFDBB5CF5F4AC897ABFF1AF8 - ED064058F8775F02A0615F475B424761E74949C372B2737F0E5D6BF8D70ADA04 - 90E06FCB6E00C85C43BFDD0CC89379874EBDDADCFBD07B57B5EBD8B59BBF4613 - EDAFDAE7BDF2ECDFBD575F78D62BD95E1CED02000000A9A74BF71EDEE40B3F15 - B9DD5FAEFEA3E976966DDF76C337C6FEBCAC74F32E7F29015F6FFDD70D003B4A - D8D75142BF2DF7AA7F3CE15FB8EBA4A3413955E8CF637F2E0DFF5212FA75D40D - 00BB092073BD0BC0BD13403701744320527DFA8DE874C74F675C5DD8BA737B7F - 8D23505F5FEFAD5EB6C47B6BE60C6FF6EBAF453E410000000048762D5BB5F2C6 - 9D3DC59B30ED7CAFDFA021918FF6C391D9BBA7B4EC96ABA7DEBF69DD073BFDA5 - 5EE9D7B2C15F4BAFFC4B49E0B7E1DF6E0048A877370094CE6D2FA9A5DA33507F - 1EF7E792B5966E0248D8B79B00762340C2BF7B3740E826C0B01193BB5DF78327 - BEC526C0D19337097C7FF63B91CD804573667B87F8F4000000002411F9BCFED3 - CE38D39B78EEF9DEC8B1E3BCEC1C890F381A7B769794DFFB83CB7EB564E16B72 - DB70BCE15FC2BEBDFAAFC15FC3BF8C12ECC3C2BFD0B5DB4F5A6E504E151AF62D - 1BFEB5DC4D00BD0B40C37FD09D00EE0640642D77027CFFCE17AE6C7752B7AEFE - 1AC7C0EECA0A6FD66BAF44360336AC5915ED0200000089A768C0C048E8972BFE - ADDBB68D7671B42A766E2FBEE3A64FFE7AE39A85A5FED2067EBB01E0867F2D0D - FEEE957F0DFF5ABA0960E9B194E286E454A13F97FBF3B91B00B276EF02D0D2BB - 0024E0BB1B010DC1DFCE3B9DD4A7ED9DF7BCF6DF27F52A2AF2D73886B66C58EF - BDFDCA0CBFFEE95594C95D3F000000C089251FDB3761EA79DE8473CFF37AF4EE - 13EDE25829DEBA7EDD0FAE9DFC9BD21D1B2BFDA51BFE75EE067F99EBD57F0DFD - B624ECBB57FD656D69F067032049D89FCB9DDBD20D81A04D00F7A500419B0076 - 0320D2934F07B8E3A76FFC6751FFE143FD358E317949C0B285EF7B73DE7AC35B - EA8F1F6EDD123D0200000034BFAE3D7A7A43478CF2C64C9CE40DF1C78C0C8912 - 38D636AE5DB8E4966B26FF61DF9E0A7983301BF475032056F8D70A0AFF1AF835 - FC6BA9B0794A90F09B8ADC9FCBAE656E4BEF02D0B21B00B6DC4D80862BFFEE98 - 9595937FFBBDAF7C76F06913C7FA6B34A3B292126FD9A2F7239B024B16BCEF95 - 9796448F0000000047AF43E7CEDED091A323A17FC86923BDF69D3A478FA0B92C - 5DFCF6ECDBBF37E5C9DADA9A58EFF2AFA3867F29BDF2EF867FBDEAAF65837FAC - C0EFAE939E0DC6A9C8FE7CEE5C4B42BF8EF16E0248D077CBB91B2023EF863B9F - BEF08CF1174FF5D7380EE4D30476146F8B6C06C8DD0132EEAE94BB8500000080 - F8C8EBF7E5CABE047E09FE9DBB76E3DDFB8FA3B9B39E9DF9E35B2E79D1CFE9FA - F9FE1AF635F0BBD594F02F81DEDD005061F39492EACF64F7E7B36B0DFD423701 - 24F4EB283D09FDEE46806E00046D04389B005ECE37AFFDEDD9A3C65DF2E976ED - DAB97F173433D910D8BA7183B774C1FCC886C0F2450BBDFD55FBA24701000000 - CF2B68D9CA1B7CDA888FAEF0FBD5A3CFC904FE13A0A2A2A27EFEDB4FFDFDA1FB - AF78DD5FDA801F16FE25ECEB28A1DF96067F1925CCEB283DA19B00CA0DFC6C00 - 2439FB73BAF363B1092063C34B009C31E7B2AFDE75FA259FFFDA1732333BC9F7 - C109525757E7EDD8B6D52BDEB23952DBFDDAB6795364DCB37B57F42C000000A4 - A2C2D66DBC6EBD7A7BDD7AF6F2BAFA25A3D449DD7B443EBA0F274E5D5D69DDD3 - 7F7DE4CF7FF9ED2DF3FDA5067C0DFD76B4A15FC76319FE5336F82B1B865399FB - 73DAB5CC9BBA0920815F460DFFBA1110B80120F30B3F73D5E0CF5E71CBE5ADB2 - 3B481F09463600EC86806E12C886816C1C00000020F149909740AFE1DE067ED9 - 0040E2D97BB0ECC093D37FF8BB179E7E60B9BFB457FADD0D000DFC1AFE25ECDB - 0D00F99F76198F34FC0B3600528C1BFC75D4124DBD13C0DD00704B027F643360 - C2D997155DFEBD47FEBB6DCB96ADFC3592405D6DAD57F2E176AFA4789B57B56F - 9FB7BFAACAABDE5F1519EDBCBACA3FE6CFABA37D9D57EFDF1FFD4E0000008847 - 5E7EBE975750E0E5E7FBE58F3ACF2B68F9D13ADAB7F382962DBDCEDDBA7B9DBB - 74F532B3E47FD3910C2AF7EDDBFBE87DFF35FD9DD7FFB2C15F6AD8B781DF2DDD - 00B0C13FDEF02F732DA1A3B0F394A6A1375DB83FAFAE65D41247BA09A01B01F6 - EABFADDCE1A3A776BBF6D63F7FA3B075E7F6FE1A29AEBEFE9077B046FEFB0400 - 0080C664E7647B2D5AC8FF7623D5EDD95D52FED33BBFF8EBC5F35F29F69761A1 - 5FFB36F81FEBF02FDC75CAD2C09B6EECCFAD7319B5C4D16E0234847E679DD3A7 - EF691DAFBBEDE9AF74EB51748ABF0600000080B451BC75FDBA7B6FBBE4F71BD7 - 7F50E62FC342BF56ACF0AF1B005CF98F9304D974A4215F05ADE5C9106B0C12F4 - 0492DE615559FEE18199CF3FBCA077D1B0CC96852715E5E7E7877D3F00000000 - 4809F24EFF4B16CC7CE5D6AB273D515E56BCDB6FE92DFFB624E4BB1B0012F48F - 75F84F4BE9BA01A034780705701BF6834615D453D20BEC1F3A5477E89DD79F5C - 7BA8AE66F3C943CE1A9897932377070000000040CAA9DCB777EFDFFF74FB638F - FEEAAA77FC2C249FF12F61DF067DB7742340C3BF847B1D8F24FC5B41BDB4C006 - C0E1A3CB0DFD768C459F5032DAAFFB98D5CBDF2BFB60EECB0B878F9CD2ABB075 - 7BDE1700000000404AD9BE75D5DABB6EFCE4AFE7BEF38F4DFED20DFA5A12EE75 - 5340E65AF68ABF06FFA309FF692DDD3700ACB0501F14FE839E487ACCB2E7057D - 4D4465F987D5339F9FBEB0679F212D5A16762ECACF2F08FBBB00000000405228 - 2F2FAB5F34EFE557BE7FCD94BF94EFDC26B7FCBBA13FA834F4BBA3067F2D09FB - 92B1E20DFF41BDB4C306C047347087056F0DFD760C629F503A0FEAB9E42501F5 - B3DEF8DBFADADAFD9B060F9F30203B3B47DE3C100000000092CEFEFD7BF73CF9 - BB5B1FFBFDC3D7BEEB679D786EF79792B90DFD5AC722FCC3C706C0C7C5BB0910 - 4BD071E9B97DED35D49A1573CBE7CD7E71D1F01193BBB76ED3A183DF03000000 - 80A4B16DF3EA35B75F77EEC3F3E7BCB0D95FEA9BFBE92640D866806E02D80D00 - 37F84B49D8D7920C154FF8777B698B0D80C369F88F671340D92753D0932D6CB4 - E7DAB9B7AB6247F58CE71E5ED0A3F7A016AD5A773985970400000000487472CB - FFFBB39FFFE76DDF9BF2D7CA8A0FF7F8ADA0A02FA59B004157FD6594A06F3700 - 24E4EB5CB25353C23F0C3600C205856E7902B99B00BA0E628FC9E89608ECD7D7 - 1FAA7FF7CDA7D65757EFDD3074C0C401D9F9B9BC24000000004042DA5FBE67F7 - 5FFE78F3A37F7AE4FAF7FC2C6343BE5EFD8FE7CABF867E1BFEA5740340B2921B - FEED2680D590ADF07FD8000866C3BDA581DE0DFDB62FF4983D27682EA37BAEF6 - 22B56ED5BC8A39739F5D78EAF029DD5BB7EBC84B02000000002494AD9B56ADFA - C14D53A72F98F3D2167F29A13E28F0EBD57E9D6BE8D75183BF0DFF12EEDDF02F - A5D92956F8470036001A176B1340B8C72D394F9F7C766C6C2E745DBFBBB2F4C0 - 8C171E5ED8AA4D873D3DFA0C3A393B2B373B7206000000009C2055D57BAA66BE - F0DB7FFCF8E68B9ED955B1436EF90FBACA1FD4D30D000DFFB6DCF06F43BFCD4C - B1C2BFDB4354ACF08AD8215F7A191F4D1BE63ADA924D165B594E4998D7CA696C - DDAD47FF76DFBAF6D10B079D3A7E8CBF0600000080E3AAA2A2A2BE78EBB2B90F - DDF3B5178AB7AEAAF45B6EA86F6C1D16FA6D69E8774761E796F6828EC1C71D00 - 4D17B41960C9934DCE719F74EE933168D412416B6FCFEEB2EAD7663CB67CC78E - CD6BFB0F3CBD477E416161E4280000000034B3F29DC5C57FFACDF57FF8DDAFBE - FB969F4DF6FA2DBDAA2FE55EEDB76B1BFEED26800DFC76AE6573912D15364780 - C6C22C3EE23E4E762DF3A0D23B02649345EF04B07704E81D003297ABFB7A3780 - BD2B20EC8E003927272B2B27F78AAB1F9A3076CAC5E7B5CAE9C09B0402000000 - 6816072B2BABDF98F5D48C471EF8D63BB5B5351AEC35D44BC95AC37D58E09751 - 027E58F8D751827C53C3BF70D770484045FCECE3E5CEB584867F291BFEB57413 - C06E046869C00F0AFE81D5FB9453DB5F79EDF48BFA0F3C6384BF060000008063 - 66F5B2390B1FBAEFBF9EDBB46149B9BFD460AFE56E04D8B2E1DF96067F0DFD5A - BAD6A02F73A16B1BF0C3E688410228E2A7015FB96B213D7D02061DB7F43C1963 - CD63D6AE8A1DD5AFBEF8DBA5BB77EDDCD467C0E85E05F92D5BFA7D0000000038 - 62651525257F9AFE3F7F7AF8FE2BFEB5ABB224E873FDE54E0009F86E3F6C1340 - 02BE8C1AF6DD0D0029C9383A0A9B7D949DA3091A0BA808661F37F73194B52DBD - 1BC08EF68E007B2740BC770484564E5E41DE37AE993E69FCD8A953B30A4F921E - 00000000C4ADB6B6A4E6ED375E79E5E1FBFEFB8D9AEAAA6A69F965437D58D9B0 - 6F4B83BF1BFA752E81DE1D6D5976ED1E43232490A2E9DCC72D681D54BA096037 - 00EC268056D006809DCB4B02741D58FD078FED78C5771FBCB8A8FFC8A1FE1A00 - 0000001AB57EF582A5D37FFECD7FAC5EFE5EA9BFB4A15EAEECEB5CFBB667475B - 1AFADDF02F256B09F141A15FCB6A6C8D4648D8C4919330AFECDC254FCC58C785 - 7DF2EADC8E41FF28C2FEA11C2A2BDDBA7FE60B8F2C3A50BD7F6BEF9E43BAE6B7 - E2D3020000000004ABD851BCFD6F7FFEE193BFF8C95766F85962B7DFD25BF965 - 746FF50F9ACBA81514FE35F0CB68AB21C3F8256CAEB1ECDA3D863835164A119B - FBF885ADE52ABF90B5DE0560472DD990D1D1BD1340D772855FE67AB5DFDE0920 - 73F7EE007F9E9173C965D70F9D76D115533A9FD4BBA7DF0300000000AFB478D3 - E6192F4E7FED9927EE5EEA677009F212DC6D900FEAE95C02BDF6B4A4A76358F0 - 9700EF8E42E6C20DF88DAD112737B0E2C8D8C7D17D4C752DA35BF16E02D8B92D - 0DFD766E82BF3B66E49CFFE92B079C7FF177A6F4ECD5AFC8EF010000004843C5 - 5BD7AE7BE1E95FBCFAF23F1E5CEDE76E1BF2DDD1EDB9732D37F8C713FEDD123A - 2ABB768FA189247CE2E8B98F63D0E32A3D2DA1E15F4AE7BA09A01B003A066D00 - C85A03BE960DFC4EF83FFCF8E4F32E2FBAE8B3D74CE9D567C8007F0D00000020 - 0D6C5CB76CE5B3FF7BDFAB6FCC786CBDBF94202F013D28DCCB68E77A5CD7F275 - B6A7A15F03BF8E61C15FE642D7522EB717740E9A40C3288E2DFBB8BA8FB1AC6D - 49C81732EA5A4B83BF9D4B80B773B76CE0B7EBC00D817193FEBDE7C597DD38B9 - 63C73E43DBB56B277F3E000000801452515151BF73E7C6A5FF78E2C7AFBDFBC6 - 535BFC960DF46EC80F0AFB76ADA561DFCE25D4DBB99604770DFCBAB665D9B57B - 0C4789C0D73CDCC735681D56762340C3BF96067F7703C0CE6D05857EF758A446 - 9C7E7EB7CF7EE5FB93FB0FEE776A8B161DE4CF0200000090C4EAEBCB0EAD5AB1 - 66D1DF7E7FC7BF16CE7BB9D86FD9001F14ECC33601B434F0EBDC960DFCBA9600 - 1F14F86D598DAD71942468A2F9D8C7D77DAC65AD2564D4E02DA3AC25D86B5FE6 - EE28E15D463B6F08F5A624ECCBB1A08D80C38E0F1A36B1F317BE7AC7D903870E - 1E9D99D9497A0000000092485D5D69DDCAA5CBE73FFEE8F75F5FB1E4AD12BF25 - 815E427958B06FECB81CD3D1CE6DD8D75142BBCC6594B5D0BE9051CBB26BF718 - 8E110D9F681EEEE31BF4784B4F4B68F89792B9AE752E25C13C56D970AF6B0DFF - B20EDB0868A853FA8D68FFC5FFFAC9A41EC3CF18DD31B74DBEDF0300000090C0 - 761ED8B57FEBE239F3FFFC9B1BDE58B76661B9DFB2213EA834F8EB5C465D6BC9 - 3A5649B8D792E06EE7BA16BA9672B9BDA073700C68E844F3B28F73D0632E3D2D - 21A3067F2DBB01A025615E47B724C8EB1854722C6853E0B0AF292868937BE1A5 - 570D1D3BFE9251BD4FE9362023A3A31C0700000090000E1DDA59B77943F1CAD9 - 6F3DB3E085FF7D606955D52EF9CC7E37C0CBE8867D9D07951E93D12D09F43ABA - 6543BEAE85ED2B3B57413D1C431A38D1BCDCC739E871D79E8C4125415F479D4B - 18D7B5CC75AD7337D0DB79AC9ED6615FDBAD47FFD617FDC7F7468C18336D64E7 - 937AF7F47B000000004E80921D9BB62C9C3363C1734FFD6C41F1D6D57BFC9684 - 7237C00755D0B1A0AF95514A82BC9DEB5AC2BAAE752E6350091D859D5B617D1C - 23122271FCD9C7DDFD1DC85A4BC828A15E68F0B7A39684753B77CB067A1D1BC2 - BD33BA7DBB8ED469A3CEED72DE45DF183564C4D891AD0ABBB4F57B000000009A - D1DE3D1F562E5BF8DE8219CFFDFAFD45EFCFFCD06F693097D2006F43BCBB6EAC - 2FA35B36F4EB5C4B03BECC85F6841ED3B5B26BF7189A99864C1C5FEEE31EF47B - 909E969060AF6B990BED4928D7BECCED26809DDB101F34D7A01FB676CFCFCCC8 - C8CA9E72FEE5A77C62EA1746F51A346458AB9C0EB97E1F000000C031B0B7A6EC - C0E615CB96BCF9CAE3EFBFFAF2EFD61D3A54ABB7EF4BB9A15D83BD0DF5EEDA9E - 1B349710EFCE35D8CB5C465DDB929EB03D97DB0B3A07CD48C3254E8CA0C7DFED - C93AAC7403C08EB624A4EBE8CE6DA80F9ADBB1B17323F356ADDBE77DEA33570F - 1933F1D3A37AF6EED28F8F13040000009A4E3EBE6FD3FA0F57CF9FF5F705CF3E - 7DFFB2BDBBCBABFD765060B73D5DBBC7EC3961F3B0D0EF96067B3B0F2ACB5D8B - A01E8E03098D3871C21E7FB72F6B2D21A3866B19F598CE65B4A521DD5DDB8A2B - E4C73197CAE8D97B489B4F7EE6AAD3060C1ED3B7558FDE457C9200000000104E - DEC17FEFD64DEB572D9FBBF6C5A71F58B465D3B25D7E5B82B60673A9A0006F7B - EE3A6C6E4BC3BDBBD692B0EE8EC2CE65D4B2DCB50AEBA39969A04462B0BF0FF7 - 77A36B19DD1212EC75AD415FE69140EECC8346B7DC50AFEBB0BE5B0DDF372B2B - 276BCC5917773F7DDC85FD4EEE3BA26F7ECFCE7D3A6777CEF18F0100000069A9 - E46049CDFE2D251B37AC5DB876DEBB2FAC993BEB1FDB6A6B6B6C489780AD735B - 61813FAC1F54FABD65D4B98472772EA5730DED762EA39D5B76ED1EC309A2E111 - 89C1FD7D04FD7EA4A7257494C0ADA3F4DC51C2B8AE35A0DB7924AC375261613F - ACECF76DF8F372720A72CE9AF4EF3D4F3DFDBC7EFD069E5A5490DBA177DB4E9D - E57B0300000029A9B2B4A4765F75D9A6B5AB3E58FFC1BC196B66BDF1D4969A9A - AA1AFF901BC8ED18AB6205FCB0B2DFDFCE25A0CB5C465DDB51E8283D2DA1A3E5 - F682CEC109A0E11189C9FE7EDCDF95ACB5845DDB92D0ED8E0D613C60ED06F7A0 - 7553CAFDBEBAD6B1454141EBDC09533EDF67F8A8697D4FE937E4944E27B5EF91 - 91D1518E0100000049493E9FBFB4B872CBBAF54BD62F7EFF9F6BDF7EF52F1BAB - AA76CB67F44B180E0BE35AEE3ADE8AF57DF4CFD19E5DCBDFC91D834AB86B65D7 - EE3124080984485CEEEF27E8F7253D2D61D76E49E8D631ACC282BAAD787B5AF6 - 7BD9B98CF2F7396CDDBA6DE7FC4993BF78F29091E79CD2B57B9FAE6DDB75EA74 - B036B35DFBF61DE45C00000020A1949797D56767D555545694966EDFB671FBB2 - 05FF5AF7C66B7FDEB0BBB264BF7F58C2B00DE3EE5A469D6BB9EBB05E505FD732 - BAF3A092BF8F8E6125DCB5E5F682CE410220502587A0DF93DB93B596B06BB724 - 6CEBE8CE6DD9606E479DDB72CF0B3BE69E277F76D0FAB0BF534141EB9CC1C3C7 - 772CEA3BBA73F75E033A77EED6BB63FBD6DD3B65746ED7913718040000C0F120 - 6FD477A8A46267F9EE6DA525C59B766EDBBCAA64FDDAF925CB17BFB3B3AA6AB7 - DCCEEF066B09DF3A4A2F68ADE7DB9EADC68EB9C7EDE896FCD9EE5CC6B012EE5A - B96B11D44302919085C417F67B0AEA4B4F4BB86B09D4BAD6B91D756E43B80674 - 2D1BD8DDD19EAB6B7BDC1ED3B9EDB97FB65BDA6F18BBF71CD06AE0B0F19DFB14 - 0DEFD4B56BDF4E6DBA74EFD4A97DB78E85AD5BB4E7A504000000680AB9757FCF - EEFAF2D2F2E29DBB3EDC56BA7DFBDAD28DEB1797AE5CF24EC9B62DABF6FAA748 - C87503B4866A5BD29720AEA37BDCF66C70D7B2C7ECF1A0514BD7F6CFD6633AB7 - A3CE85AEA584BBB6827A22AC8F0421210AC927E8F7E6F664AD25DCB586685B1A - B26DC0D6B906763BD7B26B9DBBBD585F637BFAFDDDBF8F94FB77D251E7A2A197 - 9593973968F099EDDB76EC5A50D0B25D5ECB966D735B15B6C9CDCD6B9557D0B2 - 30372FAF656E8E5F79397939D93979B939B905FEB19CDCCC1CE965E764D716E4 - 666757E5641676CE8E7C6700000024B4BA3D25070F1E2CA839985575A0BAE660 - 4D5DCDBE03FEE440EDC10335D535FBFD79953FD977A0DAAFAA7D7BFCF5DEEABD - 7B761DD8B7AFD25F575457EEDC5EB562F9ECF2DA9A6A0DCF521A90DDD0ACA33B - B73DFD3E6E5097B23D99BBE7E8DA3D4FE7BAD63FDBCEA5DCBF93AC6D494FD89E - 70D7CA5D8BA01E12980425249FB0DF5B503F1286A32574D4C02C6B373C878D61 - C1DCF6DD601F6BAD73FDDE761EF4E7D89ECE65D4B9B0BDA012EE5AB8C71B6465 - E564E415B4CAF4FF137958DFE7AE010000707C7D144033BCFAEAEAAA3A3FB86B - A8551A5065B46155D7EEF1A0D2EF6943B4CE6574E7B61716D06D90B7F3586BFD - 7EF698EDEBF70E1B85AE85F6742DA3962BA827C2FA48500498D4607F8F61BF53 - E96B29DB73CB0DD26EE8B6213D6C6E4B03BE2DFB7DC28E07ADC346A1EBB012EE - 5AB8C783B8FDB0F3000000D0BCDCE0D9584095D19EA36BF77850B9E139D6A8E5 - AEA534A4DBB0EE1E777B7A7ED85CBF8F1DB5DCB55B2AA867B9E7228911605243 - 5382A91CD3526E2F2C4407856E1D75EE6E00B8BDA61C778F35360A5DDB127A5C - D7EE7161D7B6AFDC5ED039000000687E6E100D0AA66E70D5B5CEED5A486016F6 - B894F6DDA01D36BAC13C2CB437E5B8DB0B1BDD92BEB03D15D473B9C7629D8B24 - 4080494D4D09AF32BAF3A0B52D1BB26D00D731A8276350F8D779D0DAF68246B7 - 27EC312DA1C775ED1E1741EB20617D57BCE7010000E070F106CDB0F36C5FE641 - 6BEDE9181496A5B41F14B6DD9E1D6DB93DBB96B90DF9EEB1B0D19DBB25C2D642 - 47E5AE45500F498C80929A9A125CB527A39DEB68E7364407056E9D1FCD18CF39 - 3286F5824AE839CA3D2E74EE8EAEB0BE2BDEF300000070B8788367D879DA7747 - 21732D257309D3C21E772B56088F35C6734E3CA3CE85F6849DEB792256CF0AEA - 89B03E921401253D04FD9EDD9E5D4B5856DA97D1CEF51C1BAC6D10778F6BAF29 - A3965DC73A164FA9B05ED018A6B1E3000000685E8D0557771432D752B6D758D9 - 30EEAEC38EC53BEA5C04F5828E0B3D4FE828F45C61FBC25D8BA01E520801263D - 84FD9E1BEBCB68CF71FBB6848C12C8859DBB015EC4EAB9C7746E7BC23D4FD8F3 - 6C093B06F5ECA8DCB58AF73C0000001C1B61E1B4B160ABEBA031ACE796080AE4 - B6678FB9F3A0F3E3E9093BD7F36C091D4558DF6A6A1F2982D0929E827EEF8DF5 - 641EB4767B8D05F158154FD81741E7D91232DABF8B8E761E34AAC6FA00000048 - 0C6E680D0BBF6EDF8E6EAFB1D0ADA581DDCEF56BDDF3DC5E3C25ECDF45B8C745 - D0DA156F0F298C30939EC27EEFB19E0FF698CCDDB58EEEDCAE6D20B7C71A0BF4 - B684DD0C9031ECFBBA6B11D41341E7C4AB29E7020000E0C83525B0CAB9F67CF7 - 6BF5B87B8EEDB96B1BC665D4D06FCF8B5541E70BF7FBDA63EE5CD9BEB07357D8 - B1585F831444708115F47C88D57347617BEEF17883BA8CC7E25C11D413BA8E75 - 4CB8C744500F000000C75F50806D2C144B4FCB0AEABBBD7882BAAE9B7AAE708F - 0B1D85DBB3C754BC3DA421820CACB0E743ACE7893D2673771D366A091D35C88B - A07362AD85DBB3A3CE55D039AEA09E08EB030000E0F80A0BB68DF56574CFB13D - F73C5D0BB7D7D85A84057CBB0E1A853D4FD8B92BEC58ACAF411A21C8201EF186 - 63DB93B97B8EEDB9E78A581B00C2AEED18D4D351E72AECDC20615F0B000080C4 - E206DC7842B23B2A59879D13764CE742D7B6E76E00089DBBE70AB7E71E17F1F6 - 8006041AC423EC79D2D4F01CD40B1A859EEFF6628D42E6EE3A687405F5DD5ED8 - D7020000E0C472836F53C2B1F6DD51C8DC5DC71A85CCB5947B9E3D26DCF385BB - B6C28EC5FA1A804083A3124F6856B6AFF3585F1F74CE911E13416BB7D798A69E - 0F000080E3A3A9C157CE77BF266CED8EE2488FA9585FE78AF5F5409310687034 - C29E3FF13CAF82CED19E7BCCEDC7F3B541E7A8B073627D0D00000092971B9875 - 1D2B48BBE7049DDBD839F17C6D2C61E7C4F3B5C0C71078D01C829E57F13CD7C2 - 0279ACAF75CF89E75C15766EACEF01000080E4116F808E15A8F5983B06093B27 - D6D7A8A073E2F93A206E041D3487C69E574D79DE059DEBF6C2BE5F3CE7857D2D - 00000052533C413B2C78C7735ED8D70669ECDCA67C2FA051841F9C08B19E77F1 - 3C27C3CE696A3F9623F91A000000248E2309CF615FD3D4BE15EB9C23F93B0247 - 8C90831321DEE7DDD13C3F9BF2B5C7FADF01FFAE0000008E8D631D909BF2FD8E - E6CF8EF76BD900C071455041228BF5FC6C8EE72EFF1E00000052537304ED58DF - 93608F8494191D81447434819C300F000080A3418847CA610300381C1B070000 - 00A9E548833C1B004839841DA4329EDF0000003812847F000000000000000000 + C52549444154785EECDD077C6545F9F0F1C9A6275BB29B6CEF8DED25D9965D9A + 54A90A2A082AA0622F282A2A28FA8AA262C5F2B7810511BB028274419022B23D + D9DE7BCBD66C7A7BCF7377264C4EEE4D6E927B6F4EF97DFDCC67E6997BB3B9E7 + 242BFB3CE79C99340504534F7FB7F9BB010000E06F2DBAEFAE9E7E3DE0392439 + F083EEFC9EF2BB0D0000809EE84E0180A2013C8D24095E17EB773499BFBBFCBD + 00000008866426E4B1FE6C8A00F02C121DF486AEFCDE75F777B43B5FC7DF0700 + 0080604AE5D5FCAE7C1DC502A414090F7A4347BF77F1FC4EC67A4F57E7BB2211 + 7F06000000922711C974AC3FA3ABF3B68EDE9388CF0CC48DA406C9D0D9EF5557 + 7EEFA2BDD73D17EBCF8BF77DA2A3D7000000E07F5D49C463BD379EF775F47DDC + 3A7B6F57FE2CA053243D4886EE26DAEED7EC38D6D799F9AEBCD72DD6BCD1D9EB + 000000F086EE26D4F1CC9B7157DE6BC4FA1AD1DDD7802E23B1414F7437A116D1 + DE63E6DCAFD9B18C3BFA5A116B6CB8E7A2BD47C49A07000080B7C54A9CE349CC + EDB9586343E63A7A8F89637D6D6762BD279EAF05DA21C1414FC4935CDBCC6BF6 + 7BDCEF77BF27DA7BA3BD263AFA1A239EF7C4ABBB5F070000809EE96E026C7F9D + 19BBFFACAEBC27DAEB1DBD263A7A6F34D15EEBE8FD404C24308847ACDF938E7E + 7FA2BD2673F6BC7B1CEDB568F3F66B36F39A7B5EB8BF26DA7B0CF76B1DBD5774 + F63A00000012A3B3C4D7FD7A3C89B5BBB7C99C6936FB6BECD7EC38D6BCE8E835 + 23DA9C11EBB58EBE062071415CA2FD9E743667C6EEF7496C9A2DDA7C4FE7A2F5 + C23DB6E3687AFA3A00000012A3B304379ED7EDF7441BBB7B2163D38C9ECC898E + E6ED5EB8DF23E29D035A91B8C016EBF7A1A3DF13FB3519BBDF6B62FB35F7D8F4 + F6BCB0E7EC26DC6377DFD19C8836B6E7A2E9ECF558BAFB7500000061D3DD04B6 + B3AF33AFDBEF738FDDEF8935677AF7D8DD0CF79CDDC71ADBECD784FB755BACD7 + 3AFA1A840889096CD17E1F3A9B93B13B367DB4F7D9F3D1C6EE26A4EF736A18F5 + B5CE62D39BB188F6BA5BBC739DE9CED700000084517712D5685FD3D19CBB1732 + 8EF6BA7BBEA3B8D969D15EB39B8836B6E7841DC79A17F6D888770E214462126E + EE9F7F47BF0FF66B3276C7A6778FA3C5761392DC9BB1F476B21F6B1CAD89CE62 + E17EDDE67E9FE17E1F000000BC255662EC4E7E4D2CBDFB7DF65C47B1DD849DFC + C71A4B2FB19071B42662C5C2F4C29E17F6D8CDFD5A47EF458091D4845B3C09AE + 99973EDAFBED7933763721BD49E04DC2EF6ED1927DFBBDD15E37AF456BC27E9F + E9CD58D8F3766F743506000040727596CCC68ADDBD90B17BBEB3245D9A8896E8 + 4B335F1FEB75BB457BAFFB3DA609F7D888356F73BF1F2144F2120EB17ECE1DFD + FCE535D30C33B6E7A58F2719B71379F79CF97AFB3DB1E6CCD89E13E63561CFDB + EF15766FC622DAEBD1C49A07000040EFE82CE175F742C6D15EB7E7DD49B93B59 + B79B3D17ED7DEE39FB35FB3DEE39BB09F31E61CF9B5E98797BCE2DD66B1D7D0D + 028064261CA2FD9C3B9A93DE7EDDC4F6EB76821D6D6C12723317AD8FE7757B4E + C47A8F708FD3468D9B91376EC2CCFE03070ECFEB3BA028BF6FFEC0BCBCBEFDF3 + 72F3FAE565E7E4E66567E5E7656565E56666E5E665387D7A66565E56664E6E1F + D5272F3D2B3B2F333D33B74F86CA6D486BCA38F5C7020000C08B325BD21B9B1B + 554D4353434D537D5D75B36AAEAE6FA8AD696AA8AF6EACAFAF69A8AFA9AE77FA + BAFAAAEABADA9AEA9AEACAEAEA9327AA4F561DAD3E79BCA2EAE8D17DD5DBB796 + 9FD8BD7D4DB5F3C7D909B49D74DB49BA194B2FEC38DA7BDCAF75F6BA8C859913 + F6EBA609772CDCAFBBC53B8700912409C113EBE71A6DDECC4512E653C308336E + 93505BCD9D74BB5F8BA74F77C5DDE9557EFE80CC2567BF6DF8E4198BC70C1F31 + 6974C1A0A1A3F3FA158EEE9BDF6F745656CE40790F000000108FFAFADAA327AB + 2A7755571EDE75ECC8815DFBF66EDEB569CD2B3B5F7EFEAFFBAAAA8E37E8B7B9 + 13F678FB26571C6F6F9A3B763721EF112616F6EBF6BC116D4EC49A874F491285 + E089F67375CF9958FA586361926D776B9384EB5EE28E927ABBD973F6FBA27D7D + 643C7DD65905F3165D3C76F4B869630A078F19DDBFA0687476FE80D14DD5B5C3 + 0B060FE10A3D00000092E6D8A1838DE97939FBEAAA8EEF3A71AC62D7E1433B77 + EDDABE6EE7B2571FDFB1B6EC8563CE5B245996E4DB9DBCDB49BFFB353317EB35 + E9EDAF17EED7DDCDBC4FC6A68F35B6B963116D0E3E260916FC2FD6CF31DABCCC + 9966B8E7ECD824E2F6587A61623B69B7DF6337F33E7B1CED7D7DD2D3B3D3DF74 + F52727952CBCA87850D18889F97905A3F3FBF71D959191D7DF791D000000F094 + C6C6EA1355274EEEAEAA3EB6ABA262EFE695FF7B62E53FFE7CF7E6A6A63A49DE + 25218FD524C196DE5D2470BF6EC6D1EE201026B65F334DB863116DCE88362762 + CDC327240183FF45FB39BAE72436CDB0E7623593B0BBFB6849BF3BC1778FA3B6 + 74C7F9977D70DCA22557148F1E37B5B86050E11C927D000000F89914050E1F3E + B86AEF8E4D2B5E7DF9A115CF3CFAF3ED4D0EE72549D063353BC18F359626E368 + C500BBEFAC19D1E6843B16D1E6E023929CC17F62FDDCA2CDCB9C69C2F4927C0B + 89DDE358BD19C79BE8C78CCFB9F0BA91A5675F3D6FCCB8E9C5F94523E6F4CBCA + 19E4CC030000008154595F7BA4EAD0DE95BB77AE5BF1F2BFFFB4FCB9A7EEDFE3 + 4C9B84DE5D1888164BF2DDD1589A1947EB857B2C4C2CBD696ED1E644AC797894 + 246DF09F683F37F79CC4A68968B124E3F6BC89ED3E5AEB2CE9B7E722E385675C + 39F4EC0BDF55326EFCCCE2C28251C5D97DF38638F30000004028D5D5541F387C + 78F7CAEDDBCA573CFFD4EF96FFEFC5070F38D39294DBC9BF8CEDD87E5D926FF7 + 6B7693D7DDBD692616F6BC70C7863B16D1E6E06192C0C1FB62FD9CA2CDCB9C69 + C2F4928C9BDEBC6EE6244937B1E9ED162DC977C7662ED20F1E3E2EEF5DEFBD73 + C9B84925F38A860C2FCECB1B30D29907000000104575F5F13D1507F7ADD8BE79 + F9B2DFFDEA0B2F1FDAB75DB6239444DD24F91D150362C5D2244937BDBC2E4C6C + 5E13A63749BD79DDC4B6687322D63C3CC22487F0B6683F27F79CC4A609772CC9 + B989CDD8EE63353BB937B17B3ED2A7A767675EFFC16FCC9D5F7AE91B0B860F3F + 332FA35F9E330F000000A00BAA1B2BAB8FEDDDF7C2D257FFF9D46F7F7EEBCAA6 + A63AD97E501274BB08608F4D8B36E76E92A4BB7B3316269626DCB1E18E45B439 + 7888490EE14DEE9F4FB49F97CC99264C2F89B9E9CDEB662CBD199B24DE1E9BDE + 8C4DB35F6B9DBFE0F20F8D7BE325EFBD70D4A819E7736B3F00000090387527AB + 0FEEDEBDE699271FFBD5534F3FF2B3EDCE9449F2ED64DFEECDD83D2FC9B97B2C + CD8CA53763617A9933BD696EEEB968EF810748D207EFB27F3EEE9F9589A57737 + 2149BA89CD58FA58ADA324DF1E47DACC396715BEE59D5F3877C294F9170CE83F + 688A330700000020898E9F38B261DBC6A54FFDF9775F7F76DDAAE78F385326E1 + 374D9276F7D83D17AB49D26E7A331626B69B30BD61C7EED7E01126598437B87F + 1ED17E3E664E7A7B2C49BA90DEBC66C6D2DBCD24F576EC6EEDE6070D1A9E7BFD + 87BE7DFAF459675E50343477615ADA6099070000009042C72A0E353634D6BCB6 + 66F50B4FDDFFF3CFBE74E4C8BE5A67DA24F976B2EF9E33F3A6B9636992BC9BDE + 8C859913E635617A9B7B2EDA7BD00B4C02096FB07F1EEE9F8D89A5778F4D93A4 + DDDDDBCD24F6F6B835C18FDA323232AE7BF757672F3CF38A370E2B1C7D76467E + 7E5F671E00000080073456559DDC7B68D7BF97BEF4D053F7FFE6F6D5AAB1B1D1 + 997627FDEE26C9BCE9DD63D3246977F77613EEB1CD8EDDAFA197489288DEE7FE + 39448B4D13762C4D1279776F3749E6DDE3B689BE5219F678EC8499FDDEFF89FF + BB62E2F8D997E5F42B18EECC01000000F0B0DACA63FBB66C5BFDE83D3FF8E843 + 3BB696573A537631205A6140127BD3BBC7A649F2EEEEED26DCB1D1598C149364 + 11BDCFFE39B87F2612476B421279199BE4DEDD2499778F5B93FC28E38CD3A62D + 19F8BE8F7DFFADE3C7CEB892ABFD00000080FFC85D019B77AC7EF0D73FFECCDF + 36AE7BF9A84C394D92FB58050149EC4DEF1EBB9B24F1D20B93F4BB9BCD8EDDAF + 21C54C2289D4729FF7683F0799334D482F09BC90DEC4D24BF26E6219C7EADD49 + 7F6B3C77E14543AE7FDF37AE1E3366FC65E9D903729D39000000003ED65477BC + 66FBF6AD8F3C70EFE7FFBC62E95387644A3749FEA3150324B18FD54BF22E63E9 + 4D2CBD30B190DE3437F75CB4F720894C7289D4B2CFBBFB676062E9A33593F44B + EF6E76B26F7AD35AAFF2DBE3C5675F35E29A1B6EBF66D4D8A117F5E93324CB99 + 030000001020CDCD07EB77EF38F0C41FEFFBEA1F5F79FE2F7B9D2993F0DB8500 + BB2020CD4EFE4DEF6E92C09B3E5A13A637ECD8FD1A924C1249245FACF36CCF9B + B1F4F65812F958BD6992CC9B3E5A33497F6BE27FDEA5EF1BFB96B7DFF28EE1A3 + 069ECF6AFE00000040F0C9EE0155278FFCEBC13FDFF5FB7F3DFEEB1DCE94BB10 + E02E02D84D127DD3472B00B87B21BD3D36ECB12DD63C12C4249A48AE68E7D99E + 93B169C28EED845F7A49D64D6C12FC8E9A9DFC675CFEB69B275D7AE5C7DE959E + D5EFECA2A2C1F2E70000000008918A8A432D4DF595CFFFF3C11FFFEE91BF7E7F + B3336517003A2A02D8CD24FA3296DE5D00304DB863618F8D6873482012C0E472 + 9FDF68E75BE64C1326D1976627FF7601405AB40280B9C26FC6A6A55F7DDD9767 + 9E7FC97BDF3578D898C54E0C00000000AAE2E0AE979FFCE7BDBFFBEB6FEF58E3 + 8492CC472B04442B0A48A26FC692B84B1CAD0820636162696EEEB968EF410298 + A413C9619F5FF7B936B1F4EEE64EFCED6627FC76B2EFEE23EDAAEB6E9F7ED19B + 3FF2BE4185C3E6393100000000B473E4F0FE658F3FF8E37BFEFAC09DEB9CD05D + 0470F7EE66927FBB49126F7A7713A637ECD8FD1A1244924C249EFBBC468B4D13 + D24B72EFEEED6627FC766B4DF6AD3873E2B485033FF1D95FDF98D76FE8658585 + 85E6FB000000004054870F1F6EA93A71E0911FDE75C32FB76C587ACC996A709A + 9DFC9BE62E0098D65111C0F4427AD36C9DC5E82112C3E4B0CFABFB1C4B1CAD45 + 4BFC25A177F776B26FC791969E9E9EF5E92FFDF9A2F9C5177F20B35FEE00670E + 00000000E2565B5B7B6CC5FF1EBBE7BB775CFD44535353BD336527FF7601C08E + 25C177F7A649226FFA68CD66C7EED7D04392702271CCF98C765E65CE3421BD24 + F5EEDE6E26C9B75B9B84DF6A9997BDED9393DEFACEDB3E51503078A613030000 + 0040B71D3B7AB0FC6FBFFFC60F1EFDEBDDB250A0B91B205A330501BBD9050077 + 11C0F4427AD3DCECF720014C328AC490F319ED9C9AF9682D5AD21F2DF99724DF + F4997A2C7DC6E8F13306DC7CDBEF6E183771E495696983E56B01000000A0C75A + 5A0E356DD9BCFBA1EF7FED1DBFD9BB73FD09674A127E29064892EF7E44C02E00 + 489344DFF476B3937E77738B358F6E900414DDE73E7FD1CEA749F2853D965E62 + 49E4656C9A49F84DB3AFF24B1C49FAA5C9EDFE1FFFDC6FCF5974FA951FCEC9CB + 2D74E60000000020E16AAB6B0EBFFAD2833FFDD15DD73FE77A2CC014034C1CAB + 10609AC492D0CB58988280B0C736F71C05816E8A96B0227EF6F9739F4B13BB13 + 7E69666C127EBB3789BEDDDB2D5200B8E092F78DBFFADD5FFD78D1E061254E0C + 0000000049577168DFF23FDE77FB0FFFF5CF5F6E77425300B0937FD324D137BD + 49FCEDDE1401A4376361FA8E927EF76B88933B69457CDCE72D5A6C9AB0137ED3 + 9B2649BEBB454BFA653EB368D8D8BE9FFDD29FAF1B5C34EEAA82C143E4350000 + 0000489963870E361E3CB8F5CFDFFEDA35BFABD8BFE3A433E57E24C05D087037 + 49F24D33C9BF5D0490B169B6CE6274C224A8E81AFBBCB9CFA1C4D19A24F0D277 + 94FC9B845FC6E656FFD6FE23B7DC7BC699E75CF3B19CDCFCA14E0C00000000BD + A6B6A6EAC07F9EFBE38F7FF2EDF7BDE88426F9B77B49F6631502DC4500993349 + BFBBD9ECD8FD1A3A210929E2E73E5F762C63D384F492E49BDE8C25B97727FF26 + E93705003BF1CF1A39666ABF2F7CFD1F370F1F39F93C270600000000CFD8B767 + D3BFEEBCED4DDFDFB3737DA5139AF501DC77034882EF2E0448F26F127FBB1860 + 7A21BD69863D16EE183148D289F899E45EB8C7A6093BE137633BE97727FAA645 + 127E3DCE96F1E5577D72EACD9F7FE0DB83068F98EBC400000000E029FDFA174E + 78C379D79F55D750B366D3BA578F3B5392FB083B3FB2F3257B1C8D795D12FB68 + EFEBE86BD1014E5C7CDCE7C98E651CAD995F7249F8DD0580588580D63E3D3D3D + FBB3773C78D9FCD2451FE9D36788140500000000C0B39A9B0FD62F7BE5BFFF77 + D797DFF2CFA6A6A63A67CABE1320DA1D01EEBB01DC7704481FAD19F658B863B8 + 48828ACED9E7C93D8ED64CC26F927E77F22F89BEE9EDC43F321E3D7A7AC1E7BF + F98F9B478C98F806270600000000DFD8BF6BCB735FFFC29BEEDEB56BED312734 + C9BFBB102089BEBB10600A00A618D0D522803D46149284223693D01BEEB1DDDC + 09BF9DF44B826F9A49F44D93ABFBADB7FDBFE9AA4F4FFBE4177F7BD7A041C367 + 3B3100000000F84ADF0183C69FFDC6779DD5545FB776C3DAFFCA230142F2233B + 7F32A2CD19662EDA6B86FD5AAC3F071A05808EB97F994CEF6EE697D99DF8DBCD + 9DFC9BA43F5200905BFE6FBDF3E12B2EBEE0EDB767F52D2C70E600000000C097 + 323373FACF9E56FCC6C933CF3EF9F2F37FDED2D212B9386FF227C3E451D1B8E7 + A3BDCFCCC5FA33E0C2898AAEA35F2499935F5461C6E617D78CA325FFEE2689BF + F499E3C6CD1AF8D9AF3FF8A9E1C3279EE5C4000000001018FBF66E79E15B5FB8 + F27BDBB7971D7542F338807914205AB31F09B01F05B0C7C21EDBCC5CB4D7424D + 9253B427C9BC3BF9377326F937C9BE34998F95F4CB557ED3B7BBF27FC5B59F9D + 7ED3677FF5AD818523663A3100000000044ABF7E83C69E7DDEB56737A99675EB + CB5F922280C9B5A2F5B1E62499B7E7DCB1CD1D43E3C4B4D5D12F9069427A77F2 + 2F637701C0F4EE2240A6DCF27FDB9D8F5C3961C2BC0F160C1E22AF0100000040 + 6035571E6C58BE66D9CFBFF9C5CB1FD2BB04B8EF0630BD5CFDB7EF0430770348 + 2F89BFFB4E00E94DB3D9AFC361125A9C6227F9869933F326E9775FF93705003B + F137AD35F1775AD6E8F1B3077CE16B0FDF3274C4B8339D180000000042E3C0DE + EDFFB9F38B6FFEF6AE6DAB6581C07AA7B90B01A6D985005300B08B00A6173236 + CD166D2EB4245145FB24DF70CFDBC9BF49F84D33C9BE19B726FC769B3DFFC2E1 + 5FFAE6C3DF195434628E130300000040A8F4ED5730F6F4375CBD68EBE695FF3B + B0774B8D33E5CEBB4C2FECF968E43549F063BDC7CC77F467840627E114390FEE + 7361E6CCBC7DC55F7A7701C024FEA6B5B9EA2FFD7917BD7BEC7B6EFAFE37F373 + 0B8639317CA2BAEAA43AB877AFD357A99A9A6A555BEDF4D54EEF8CA5B7C7B5AE + 585A43BD1435010000D0913E7DD254764EAECAC9CB53B9B979A77ADD729C38D2 + 47C6B9CEEBF9ADAFCB6BFD070C5043468C501919F24F6FF84555CDB1FDF77EFF + A6CFFFFBE9FB7738A15CFDEFEC6E00BB993B00EC3B0284B9E22FCD166D2E744C + 721B56E6F8DDE74162D344BCC9BFFC3F8E3BF9979675E5359F9B7EC53BBE7C67 + FF7EB9039C181ED3DCDCAC0EEDDFA7F6EEDCA1F6EEDA1969FB9CB6C7898F1F3D + A2DF05000000AFEAD3A78F1A327C841A3E7A8C1A39666CA41FA15BFF82812A2D + CDFCD31E5E72A2B2E6F8DFFFF0E5DB1EFEC3B7D739A1BB00608A00A64F4411C0 + EE4327EC7F0BCCF1DBE741C6A689CE927FFBAABF49FE2357FCCDF8DD1FFAEE82 + CBAEB8F1CBE9D903729D18BDA8AAB2D24AF0773809FEA97EFF9E3DAAB151FE7F + 05000000419397DF375208682D0A8C191BE9878D1CA532B3E49FEEE84D4D75C7 + 6BFEF1D03D5FF9EDCF6E79CD09ED228019DB7702B80B015D290298B13D172A26 + C90D1BF7719BD8F492E49B5EE64CF22FBD5D007027FED29BE43FF2CCFF276EBB + EFDCB9732FFA2C2BFDF70EB97ABF76E50A55BE62995AE3B4FD7B76EB57000000 + 107669697DD4C42953D58CE2796A66C93C75DACC592A3B3B47BF8A543A76E860 + E38A154FDEF5C36F5CFF9C134AE26F927FE925E9771702EC028049FEDD4500BB + 1860F746E80A01EE44382CECE33663D3C793FC4B322FBD24FAA6372D92F84BFB + C237FE79E5F8C98B3E5C5858687F3F2451D5C9936ADDAAD713FE5DDBB6EA5700 + 0000808EA56764A8D3A6CF6C2D084C9A369D750552E8F0E1C32DDB37BEF293AF + DD76F9834E681700A4374D927CD39B4240778B00140002CE7DBC762CE378937F + BBC9FF23983E92F8CB1EFF5FBBFB3FEF993A73F1B54E8C24AAABAD51EBCB5647 + 927D49FAB76DDCA85A5ACCDF71000000A0FBB2B2B3D59499B323C500290A8C9F + 3C4539FFD6D7AF2259D6AD79E9F7B77FE2ECDF343535D539A17D3740B43B01E2 + 2D027494F887A610E04E8883CE9DF0DB7D77937FBB39FF1F91977BD74F5FFDC4 + D8F1332F766224C1CEAD9BD5AB2FFC3B92F46F5AB7563535CADF7900000020B9 + 72F3F2D5F43973D5CC92F9AAF40DE7AA818545FA1524DA8E6DE58F7FEEC38B7E + 5057572DDB04BAEF02E86E11409864DF4EFA2900048CFB38ED58C60949FE0B8A + 46F6FBC6DDFFB96DD8C8F14B9C180974ECC861F5D2BF9E562F3CF5B8DAB165B3 + 9E050000007A87AC1F306BDE7C75D68517AB05679C19D9C210897570DFB6973E + 77D399DF3856B1A7D209135504E828F10F7C21C09D1807953BE13764EC4EFEA5 + 374D12FFCE92FFC86DFF6327CE19F8FFEE7AEC8E82C211B39C1809505F57A796 + BEF49F48D2BFEAB5FF716B3F0000003C292737572D3AFB9C483140EE1090E200 + 12E3D8E1BD65FFEF73977C69C79655479DD07E1CA0A32280290498166F118002 + 80CFB98F2F56F2EF4EFCA5C59DFCCF29397FE867FEDF1FBED9B75FD17827460F + 48922FCFF44BD2FFDF7F3FA76AAAABF42B00000080F7150E19A2CEBCE0227596 + D3468C19AB67D113278E1FDEFABD3BAEB975D5F2670E3861778B0076E2DF5111 + 4004B61010A602807B6C9A24FB766F127FBB0020C97ED4E47FEC843983BE76F7 + 33DF25F9EF99FDBB77A9179E7E52FDE7E927D4A1FDFBF42C000000E05F13A74C + 5367BDF162B5E49CF355BF0103F42CBAE36465C5B62FDE7CFEA73AB913C0F4A6 + 00609A24F426E937BD6946AC71A048C21B44EEE3B26319DBCD5CF197719792FF + 82A211FDBEFF93E5DF28183C74A613A38B64F1BE17FFF5B4FAD7230FA98D6BCB + F52C000000102CB2734071E91275D1956F8BEC26909626A907BA4A1E07B8F943 + 0B6E3B56B1D7AC09601701641CED2E007711C05D00B0937D7B2CDCB1EF05F537 + CF3E2EF7D86EF6D57F77F22FCD24FF92F0B749FEB3B3F372EEFE65F99758F0AF + EB1AEAEBD5BF9FF8A77AF80FBF531507F6EB5900000020F8264D9BAEDEF2AE77 + 470A021402BA6EFF9E6D2F7FF2C69977D4D555D73AA12902D88500732780BB00 + 202DD65D0076A21F6B1C0841FD8D33C7E53E3E93F09B66AEFE4BB26F7A49F8ED + E4DF4EFC237D7A7A7ACEF77FB1FAE6D113A65FE4C48893ECD9FFCC230FAB47FE + FC7B75ECF0613D0B00000084CFD88993D415EFBC412D3AEB0DAA4F1F4945102F + D922F0D3EF9F7B775353935D043005007711C0DC0D2049BFE9DD0500896D26F1 + A700E01326C1B79984DFBC26CD4EFC4D93A4DF7DCBBF290048CBFEC68F5E7ECF + D4998BAF75C6884375D549F5E4837F538FFDF54FAAF2C4713D0B00000060C4E8 + 31EA8A775EAF4E3FF702959E216908E2B16ECD4BBFBFED6367FCC619D6392D5A + 11C01402DC8F039842809DF89B82804D620A001E678EC77D5C26E197668A0026 + F937050093F8CB385AE21F49FE6FFBFAA3572E587CE9879D313A5179FCB87AEC + 6F7F8A24FF52040000000010DDE061C3D59BAF7D973AFBA24B5566A6A421E8CC + D2971FFDC99D5FB8FC2167681701DC850049F6ED428024FBEE228049F6DD09BF + 89DDF3BE25C96E9098C4DFF4C224FED24CF26F27FEA6D957FEA5B713FF48FBF8 + E77F73DEB459E77E322F2FCFFEF3E122B7F7FFE5BE5FAA1FDFF91555BE62996A + 6890BF830000000062A93E79522DFFEFCBEADF8F3F1A792460CC84892A238342 + 4047B2F30AE78F193F6DCFFF5E7A78A79EB249D22E795BB4E43D30097D5705A5 + 0060127CC38CCDBC6926F197B19DF84B6F127FE9A5D9C97FF6F51FFCF68225A7 + BFED0B838A0607E59C25DCB12387D5EF7FF153F5936F7E35B2977F539314D900 + 000000C4ABB6A65AAD7AED55F5AF471F562D2DCD91AD04651701B4271766070D + 18B178C0A0A11B572D7BFA8033D551626F5E73F7921B76C6E493BE1794DF24FB + 8761C6E687649A7DF55F8EDB3473E5DF5CF56F570078F3D59F997EF5959FFC5A + 5E61A1C470696E6E564F3DFC77F5BD2FDDE624FEAB223100000080EEABAFAB53 + E5CB97AA979F7D468D18355A0D1B394ABF025B4E7E7E9FD326CF5852535BBF72 + E3DA5762AD34DED9157FC913A38935EF5B7E2F0098E4DE708F25D917E6CABF49 + FEA53757FECD557F5304B093FFEC732EBC6EDCB5EFFBDE5DB903FAF57562B86C + 5EBF567DE78B9F57CF3DFE28B7FA0300000009565559A95E7CE629B56BDB5675 + DAF4592A2F3F5FBF02A34F464EE6C469672D397A68C77F776C5D2D8B8FD957F9 + EDE4DF3D7627F866CE7E9F3BC7747F8DAF04A1006044FBC14893645F7A93F84B + 6F127FE94DF22F09BF49FEB3A59F35EFFC611FBEF557DF1ED0B75FA113C372B2 + F284FAED4F7EA87E79F777D4D1C3157A160000004032ECD9B13DF25880AC0B30 + 69EA34B60E74C9CECECC9936FF9CD22D1B96BD7870DFD61A3D1D2DF9B7E76CD1 + 927F43E603C1EF07623EBF7D1C32B69BFCCD30CD4EFEED2BFEA6B55EF91F3B76 + E6C0AFFDE8B9EFF6ED5734DE89A1C97348CF3FF9B87AE0E7FF1759E51F000000 + 406A8D1A375EDDF8C9CFA869B3E7EA1918272B2BB67DF1E3E77C7AC78EF2A34E + 186B8B40B32B80D919C0DE1DC0BD2B805D1030637BCE57ECC4D98F4C926F98D8 + 343BF937050077F22FBD49FC232D3D3D3DE7C7F76DFAF2B091E3973831B49D5B + 37AB5FDEFD5DB5A17CB59E01000000D05BCEBAF062F5CE0F7E440D183848CF40 + 1CD8B7EDA58F5E37F98EA6A6A65A27340500D324E98F5604B00B009D1501ECD8 + 572421F6233BC9B799A45FB813FF8EAEFEB75EF99776DB37FEF996D3A62DB8D2 + 19C351535DADFE78EFCFD4CFBEF575557160BF9E05000000D09B766CD9AC9E7B + EC119597DF578D9F3C45A5A5B9D3A370EADB6FE09809A7CDABFACFBF7EBF494F + B913F65809BC3BD19713EA7EAF39C9BE3CD97E2E00D8BD90B16992F44B2FC767 + 1700ECC4DF2E00B41601DE74D5A7A79F7EC655B7CA6A924E1C6A2D2D2DEAD517 + 9E53DFBAED16B57AE9FF223100000000EF68A8AF572BFEFBB25AF1EA2B9122C0 + C0A222FD4AB8E56517CC6D512DCB379CDA19401219D344ACDE9058F249F7BCEF + F9AD0060127CC38CCDBC69E6CA7FB4E4DFB4D65BFE75CB1E337ED6A09B6EFBF5 + D7FB1714F677E250ABADA9513FFFF6D7D59F7F7D6F642F5200000000DE250B73 + CBCE5C1999996ACACC59A1BF1B20B23DE08C85C5AFBEF8E8B395C70FC92DFF6E + 92DCDB09BE197725E937F9A76FF8B1006098B139E9A6D9C9BF2900D889BF7DD5 + BFF5CABF3CF77FE78F5EFA6CE1A0E1D39D38D4E459FF3B6FF9A45AB372B99E01 + 000000E07572C76EF9F2A56AF3FA756ACEFC452A3B2747BF124E5999397D8B17 + 5C30E2897FFCE415E7DCC873FDC224FED112FECE927FF3BAC9457DC7AF0500FB + 849BA45FB8137FD3DC0500FBCABFC4D9B77EF5E1374F9D51FA16671C5AF27F18 + CF3EF688FADE976F53C78F1ED1B300000000FCE4C09EDDEAA57F3DAD264E9DAE + 8A860ED5B3E1D4AF7FE198B113E79C78F1D93FCA7A00A60860D88500377761C0 + 9DF4FBB208E0C702803BF9374D927EE9E598EC0240AC2BFFD222B7FE5F76D5CD + D3CE38EB9A503FF72F0BFDFDECDBDF500F3DF05BD5DC248B6002000000F02BF9 + F7FD0B4F3DCE23018E110307CDAD69685CB671ED7F656B4093F4DB4DB87B4362 + 3979EE79E1BB93EA9702809C58D36C26E9972663D3DCC9BF5D04B0AFFE678D1C + 33A3E0D3B7DEF7F57E030B07387128C9EAA177DEF209B576D50A3D03000000C0 + EF7824E094B4ECFCF429D34AE7BEFAF2C3FFAA3C5E21EB01444BFAED04DFFDBA + 9B3D6F725477AEEA497E2A00D8BD3049BFBB37C9BF5D00705FF98F1402E4B9FF + 6FFCE83FB70C1C3C728613874EE496FF7FFEE3D42DFFC7A418060000002068E4 + 9180179F794A4D9A268F040CD3B3E192999DD36F4EF11B473CF948EB7A0026E9 + B79379338E3667E7A2BEE5F502809C64FB449BB1999766927F3916530090A4DF + 5D006873E55FDA67EF78F04DD3662E79AB330E9D9AEA2AF5D36FDDA91EFEFDFD + AAB9D9FD280C0000008020919DBDE49180F48CF03E12D0BFA070ECD871B38FBD + F8EF3FC97A0076B2EF4EFCDDBD8836E7667254CFF24301C0306373524D93A4DF + 34391ED3ECE4DF5D04C8BEF42D374DBDECA277DC26B7833871A86CDFBC29B2CA + FFBA552BF50C00000080A06B7D2460DD5A356741381F09183E686071656DDDD2 + CDEBFF77CC09A3DD0960C7F65C474CAEEA797E2900D827D424FD229EE4BFDDD5 + FF9163A70EB8E98B0F7C3DA76F61811387CACBCF3EA3BE75DB2DEA04B7FC0300 + 0000A17460EF9EC82301B3E62D50058306E9D970E893DD377DF2CC25735F7BE9 + A167F57A00C24EF46325FEEEB1E4A5F69C2F8A007E2B00486F9A24FDD2CB3198 + 028024FDD10A00AD4580F4F4F4ECAFFFE0A5CF14158D98E9C4A1F2C4DFFFA27E + FE9D6F72CB3F0000001072F248806C15288F030C0ED9BA00D95939FD66CFBF60 + D853FFF869B4F500EC66B8C79287DA73BEE1D5028049F20D3396DE24FEE6CABF + 49FE4DB3937FE9DB5CFDFFD0A77F71F6DCF917BCCB198786DCEAF3A75FFD42FD + F1973FD73300000000C2AEB1A141BDFCAFA7D5E8F113D4C83163F56C38F4EF5F + 346EE0A0E13B5E7BE591DD7ACA24FDF6D5523367927DD3DBA2CDB9F359CFF072 + 01C030637312A5C54AFEDD050093F847C683874D18F0E19B7FFAFF323232F39C + 38149A9A9AD43DDFBB2B72F51F000000006C7277F07FFFFD9C1A5434588D3F6D + 8A9E0D8791A3A74E7FE15F7F7CAAFAE4D17A277427FAEE66C41A0B3B8FF524AF + 1700EC1328C9BE5D0090CF6E17004CE26F927FD34C1120FB4B773D7EC3D0E1E3 + E73BE350A8AFAB533FB8E3F6C873FF00000000105D8B5AF6CA8B2A3D3D434D9D + 3527343B04646466E54D99BE30FD99C77EB9DA0925998FF5388030BD112BF6F4 + C9F37201C03E7126E937BDDDDCC9BF5D008824FED29F77D18D132FBEE2AA4FA5 + A5E5CBD7045E5565A5BAEBD64FABD54B5FD3330000000010DB9A15CB9C3CE284 + 9AB37051688A00030BB3A7541C3AF2F2B6CD2B8E3BA149F8A3ED0E20DC712C9E + 3D795E2B00C88932CD2649BBFD9A49FCED16EBCABF2CFC9773DB9D0FDF9A973F + 2C14AB5B1C3D5CA1BEFAE99BD4D60DEBF50C00000000746EF3FAB56ADFEE5D6A + DE9233549F3E5E4B17134F2E104F9CB260EC637FFFC1BF632C0828DCB1883567 + 989CD69DDBF62AAFFD44A39D2493F09BDE6E26F1775FFD97C4BFF50E809B6EBD + EFBC69B3CEB8C219079EFC65FDCACD1F53FB9D1E00000000BA6AD7B6AD6AD3DA + 356AC11967A9CC4C49AB822D2FAFDFD02143C7EF7BF5C507B73B6167BB02B863 + 5F9124DACB24E9B78B02A6452B04D8C50019470A00A3C7CD28283DF36D373AE3 + C0DBB2619DFAD2C73FA82A0EECD73300000000D07565CB5E535FFDF4C7D58963 + C7F44CB02D79C3DBDE3B72CCF4FECE50F248FB02B3C92FA5B9F3503B4715F6D8 + 93E420BCC47DC2EC936A4EB239F9E60761FF60CC55FFC8957FE96FFFE613370E + 193666B6330EB4F2E54BD5373EF729555D55A56700000000A0FBE4D1E2A52FFD + 472D38FD2C95979FAF6783293D2333F7B4E90B739F7EF49E654E68AEF0C7B328 + A0E96D66CE73C500AF14004C926F9F2093F40B93FC472B02D8C9BF5D00C8BAF4 + 2D374D9DBBF0F28FE7E5E57BEEC427923CA723C97F5D6DAD9E01000000809E3B + 79E2845AF5DAABEAF4F32E5059D9728D35B89A55D6E4C686EAA59BD7BF762412 + BE9EF077D60C19BB734F137B22273509B6D7C8C93127483EA38CEDE4DF1EBB0B + 019162407A7A56D65BAEBDF5234545833D71A29365EFAE9DEAAECF7F86E41F00 + 00004052ECD9B15D7DEBD65B545D5DB0730EC91DAFBEEEF60F4B2EE984F13C0A + 608F4DCE2AEC7CD653E4037B813939766F9F44D3CC093627DFFC50CC957FD367 + 7FFACB7FBC78CAF485173BE3C03A527148DD71F3C7D4B12387F50C0000000024 + DEE14307D58E2D9BD5E2B3CF557DFA484A164C39B97D8B468E3EEDC8CBCFFF75 + 8B13DA7701B8C7C2F432E7166DAED779E9276727FFF6D8F4A608609A1400A4D9 + D598483160F2D485034B965C7283330E2CD9E75F6EFBAF387840CF0000000040 + F2ACF8EFCBEA17DFFDA66A69F1646E9B3025A75F7EC384C9F3063A4373C1D99D + 774A73E7A7D17258F75CAF930FDE9BCC49B14F888CCD09749F5473E24D2F3F10 + D32257FEA5BFFDAEC73E3CB868D474671C48F57575EAAE5B3FCD3EFF00000000 + 524AEE026868A857B3E62DD033C193999E993D656A69BF271FF9D9FF9CD05CF1 + B7EF00304DB8639B3D67725E3BF74D392F1400DCBD697611403EA734199BCA8B + 5D00684DFEDFF28E5B67CD2C7EE387F2F2F2CC9F19284D4D4DEAEEAF7C31B22D + 0700000000A4DA86F2D52A2FBFAF9A3C7DA69E099E2695312123237DE5BAB217 + 0F39A124F2B18A00E6310061E684E93D45126AAF895504B00B0176338580487F + D9151F7D7761616120937FB9D5E6DEEF7D4B2D7BF9453D0300000000A9F7DB9F + FC50BDF8CC533A0A1EC9292F75724B67D89A6BEA3E5A4E6AF2563B8735CD53E4 + C3F626FBA4D827C94EFCCD0995DE9C70F303902BFFAD8BFF5D75FD97E62C3CFD + 4DEF70C681F4A75FFE5C3DF1E05F750400000000BD472E4C4E9A365D0D1B394A + CF044B6E7EFF212D4DCDABD7AC7EE1A013DA57FFEDBB01849917EEB1DD9BDCB7 + D74862DD1BEC64DF66CFDB9513199B2605005304B05BE6F997DCF876A70FA4C7 + FFF667F5D0EFEFD71100000000F42E793CF97B5FBE4D6D5EBF56CF04CFF917BF + 4F724C73F5DF6E262FB573D568B9AC6946B4B994910FE605F609B07BFB649A93 + 6B927FBB089079D95B3F79DA90A1638A9D71E0BCF4ECD3EABEFFFB818E000000 + 00C01BEA6A6BD55DB77E46EDDDB553CF04CBE011634A2EBDF213939DA15D04B0 + 73523B57352D5A6E6BC6BD4A3E9C57989322CD9C34FB244A93136B9A7DE2332E + 7DCBC7AE76FAC0D9B66983FAE937EFD41100000000784BE5F1E3EA3B5FFC9CAA + ADA9D133C172C95B3E2EB966B4E4DF3477DE6AE7B4A679827CA8DE629F0433B6 + 7BFBC499936A4EB039F99176FEC5378ECFCC2E58E48C03A5A6BA4ADDFD95DB55 + 6363839E0100000000EF913B007E79F7B7230B97074D766E41E9B917BF679C33 + 6C93873ACD2E0098DECE6585BB17F638A5E483A5921CA869863D27CD9C2C3336 + CD9C5CBB454EFC9BAEF9CC55415BF95FFEE2FCE23BDF5407F6EED13300000000 + E05DFF79FA49F5EF27FEA9A3E0905CF38AAB6E71DF05E06E76EE1A2DB735CD88 + 369774F281BCC21CB8F4F6C93327D39C5873D2236DF159578D1C35BAF00C671C + 28CF3CF2907AE5DFCFEA0800000000BCEFD73FFC9EDAB56DAB8E8263D4B8A233 + 24F774866DF251A7D90500D39B66E7B89E201FAA3799645FFA6863D3EC136A5A + E4845F7DDD17AE4A4B1B2CAF05C6F64D1BD57D3F66D13F00000000FE525F57A7 + EEBEE37655571BACF50024E7BCEAFA2FBCCD19BA137F6976CE6A5AAC1C57FA5E + 231FC04BCC493127C68CA599936B4E7846F1C28B86160C18FE06671C1891E7FE + 9DBF303CF70F000000C08FF6ECD8AE7EF583EFEA283806F61F7ECEECF9170E75 + 86AD39A9D3EC228069EEBCD633E403A5821CB4FBC0ED3933B69B7D12EDC4DF9C + E08C77DCF095B7160C1E2273811079EEFFBB77A9FD7B76EB1900000000F09FE7 + 9F7C3CD2824472CF77DEF8B5B738C33679A915DBF96BB41C57D86323DA5C52A4 + AA0060B30FCC1CA834F92CA6B79B39B176CB9C36E38C41E3A78C3BDF1907C633 + 8F3EAC5E79EE5F3A0200000000FFFAD5DDDF51BB776CD751304C9C3CF682D366 + 2C1EE40CED2280DDDCF9AC9DEB9A66D8E394900F924AD10ED63E09666C4E90FB + 649AEA4AC6F51FBAEB8AF4F42159CE3810B66FDEA47EFBE3BB750400000000FE + 565757ABEEFECA17237D50480E7AC307BEF36667D89A9BCAB4ABD939AD34E11E + 1BF638E9525D0030DC072C4D3E8BDDDC27D1B48CB11366F59F3479C6C5CE3810 + CC73FF0D0D3CF70F0000002038766FDFA67EF3A3EFEB28184E9B32E31227271D + E00CA325FFA6B9F35B93F71AF63865E483F416FB0498B169F6893227B0B5BA72 + E3477F707946F6805C67EC7BADCFFDEFDEA5670000000020389E7BEC51F59FA7 + 9FD491FF492EFA9E8FFDE0326768F25493B34AB37359779E2BEC71CAC9874A95 + 68076CC6A6D927CB3E89AD2D3D3D2B73F2D485173AE34078F9D9A779EE1F0000 + 0040A0FDF2EE6FAB23870EEAC8FFA63839A9E4A6CE50F2545304B0F3583BB775 + E7BDC23D4E09F930C9640ECA7D40F6BC69E6C4D827CA347312D3AF79F797E6E4 + E4E5173A63DFABAE3AA97EFB931FE9080000000082A9B6A646DDFFD3E0E43E39 + B9F945575FFFC539CEB03557D5CD9DCBDAB9AEBBD962CD27947C9054B20FC8EE + 4DB34F9434FB44461E0158B8E48A739D3E10FEFCAB7BD4F1A347740400000000 + C1F5CABF9F55AB97FE4F47FEB7F0CCB79CE374AD8FAA5BCD9DD7DA39AFB07B33 + 4E09F930A9660E529A3919F6C991669F3C6991135A54343A6FE4A091A5CED8F7 + B66FDAA89E7CE8EF3A0200000080E0FBD50FBF1798C5CF470F1CB958725467D8 + 9AB3BA9A3BCFB57360D3524ABE796F729F0019BB4F9819675CFBDE3B96A41714 + E438635F6B696956F7DEFDED480F0000000061218B9F3FFAA7DFEBC8DF2437BD + E63D5F59EC0CEDE43F5A4E6BE7BBD2F71AF900A9620E5A98B169F239DCCD3E69 + 91366BCEB96F707ADF7BF6B147D5E6756B750400000000E1F1E003F7A943FBF7 + E9C8DF66CD3D571E036897BB3A2D5A8EEBCE83853D4E3AF910C9661F8C3938BB + 9913619F1869E6C4459EA99839FB9CA2B4ACDCD9CED8D74E1C3BA67EFF8B9FE8 + 0800000000C2A5BEAE4EFDE6C777EBC8DFFA64E5CD9E3EE76C59A43E92B73A2D + 5601C0CE7DDDCDB0C749211F2019A21D8C9BFD1EFBC4483327CC9CBCF42BDF71 + CBD94545833BFAF37CE10FF7FC54555556EA0800000000C267D9CB2FAA65AFBC + A423FF921CF52DD77CF66C67D89ABB3ACDCE69ED66E7C0B1C4F39E6E930F910A + F601D80724CD9C08E9DD27CCB48C8953E7CB49F5B58D6BCAD4738F3FAA230000 + 000008AFDFFCE8FBAAAEAE5647FE3569DA027954DDCE5FA5B9F35B3BF7B59BB0 + C749251F2055EC8394EF6B9A3027C53473A222B7505C78F987260E183078AC33 + F6ADA6A62675EFF7BFA3230000000008375907E0E107EED7917F49AE7AC1651F + 9CE00C5B7358DDDC39AEB0E7EC1C3925E49BF626530CB00F5C6273B22227F09C + 8B6EF0FDE27F4F3EF457B573EB661D0100000000FEF1C707223B03F8DD796F7C + B72C0668927F3BA775E7BAD2F71AF900C9660E5698B134F9DEE604482F27C89C + A4D63837B76FD6B80973CE70C6BE75F47085FACBAFEFD5110000000040343636 + A85FFDF07BAAA5A545CFF8D3D849B3CFCCCACACD748651F35A3D76E7C1A6097B + 9C34F28D93C5FEF0E660A4B90FD83E39D2CC098AB4ABAEBB7D6E4E4E6E8133F6 + ADBFFCE65E55535DAD230000000080B17AE9FFD4AAD75ED5913FE5E4E415BCFD + 862FCF75866DF259A7B973DD5879B134C31E27947CC344EAE8C3BB0F426273C0 + E6E0DD272B7DFEE2CB7DBDF85FC5C103EAF9271FD71100000000C0EDC1DFDDE7 + FBBB00169EFE26F76E00A6997CD7CE816D26B6E7656C5AC2C8374FA6580720CD + 3E01763327287DF8A8497D478C2E5CE88C7DEB913F3EA09A1A1B750400000000 + 70DB50BE5AAD5BBD5247FE347C64E1A221C327E43BC3D69C56F776B37361BB19 + F638E1E41B279B7D40F6810B3BB65BA452F2B677DDBE303D7D489633F6A56347 + 0EAB671F7B4447000000008058E42E003F4BCF1892F5F61BBEBC4886BA45CB75 + A50977EC2E042485F966A9260726DFDB1CA489ED4A49FA8429F3E4190ADFFAE7 + 5FFEA81AEAEB75040000000088A56CD96B6ACB86753AF2A74993E7CD713ABB00 + 607A77EE2B7DCAC9374E167370C28CDDAD35D9D7E3D6580C1B326EA633F6A5CA + 13C7D5D3FF7850470000000080CEF8FD2E8021C3C7CD945CD61946CD73F5385A + 6E2C4DD8E384936F9E68EE0F6B0EC03473C0F681DB27247252162EB962444E5E + 7EA133F6A527FEFE17555B53A32300000000406796BEF41FB573EB161DF94F4E + 6E7ED1FCC56F1AEE0CDBE5B84EEB282736CDE68E7B4CBE6132D91FD83E203396 + EF6F9A39299113547ACE55B39DDE976AAAAB2205000000000040D73CFCFBFBF5 + C89FCE38E76AC965EDC45F9A9DFF46CB8D0D7B9C70F2CD93CD1C9069E6A0CD81 + DBB169E9E3C6CD99E5F4BEF4D4C37F5755274FEA080000000010AF979FFB97DA + BF7B978EFC67DCC4D992CBDAC97F24C7D57DB49CD86E4925DF3011A27D60F738 + 5A731F78E4A4C83313054563A73B63DFA9ABAB8D2CFE0700000000E8BA969666 + F5F01F7EA723FF291A3A7EBA5E0740F2DC687701D839B1DD0CF7D8FD7AB7C937 + 4F86581FD8347302ECD67A82CE3AF79D63FAF7CB1DE08C7DE7D947FFA14E1C3B + A623000000004057BDF0D4E3AAE2E0011DF94B4E4E6EC199E7BC7394336C97EB + 5A73D2A2E5CA863D4E18F9A6C9E23E0061E64CB30F5E5AE4842C3CF30A5FDEFE + DFD0D0A0FEF1C707740400000000E88EA6A626F5888F73AB8567BCD9AC03E0CE + 79A5B9F3625BB4B984916F9E4CF641D9CD7DF0769C3E66FC4C5F16005E78F231 + 75F470858E0000000000DDF5EC638FA8E3478FE8C85F468D9F65D601B08B00D1 + 72E1682D69E49B269AFDA1ED8330CD7DA0E684444E4E7A7A56FAE0A1C3A73963 + DF79FA9187F40800000000D0130DF5F5EA85A79ED091BFF42B1C314D725B6768 + 1701A4B773E1584500618F1326910500F787737F7077332741C6D247DAF997DD + 382133B36FBE33F615D9AB72FBA68D3A0200000000F494AC05D0D2D2A223FF28 + C8CFEF7BFE25EF99E00C5B735DA799DCD75D08B09B30BDE18EBB4DBE7932C4FA + 80E6A04C3327C21403FACC5F74B12F6FFFFFCFD3FEAC4C010000008057EDDAB6 + 55EDD8B25947FE326FD165339DAE5DCEEB34775E1C4DACF91E916F9E2CEE8331 + 076A0EDAC4A6FA11991B3D7AC60CA7F795E6E666F59F679ED411000000002051 + FC7AB175CCD8E97601A05DEEAB9B890D89A52585FD8DBAC37C38FB03BA3FACFD + 1EF39A199B1310A986E4E4F7CF2CEA3BC877CFFF972F5FAA8E1D3EAC23000000 + 0040A2BCF8CC53915D01FCA6D0C96D7372F2339DA1E4DD76EE6BF26161C6F69C + 61C7B1DED3253D2D00B8C5FA80665EBE9FDD64BE357EE3651F9C945E5090E38C + 7D459E4B0100000000249EEC0450BEEC351DF9478693DB5E70F9072739C39839 + B06EC2CE9DA519F6B8C7CC374B24FB039B71AC3973C091F19C92F37CF7FC7F4D + 75B5FADF7F9ED7110000000020D1FCBA1BC09C05179AC700DCF9AF69C28EDD73 + 0925DF3C15E483DB076BC6A6451E0118327CDC58A7F795FFBDF06F555F57A723 + 0000000040A2BDF6D20BAAA6BA4A47FE31B868EC38A73379AF49EAEDD81E279D + 7CA3643007663721BD3938D35A0FBC6FFF41239CDE57B8FD1F00000000924B2E + BABEFAC2BF75E41F05838A863B9D49F22317BE9DE6CE858599B35BC2C9374CB6 + 6807624E8039E03EE9E959E97DF35BE4E4F846C581FD6ACDCAE53A0200000000 + 24CB7F7CF818409FFCB4E1E90E193A2D5A2EEC6E4925DF3451EC0F6C1F8069B1 + 0E3432376BCE1B8AD23386643963DF90D5280100000000C927175FE522AC9FF4 + CD28CC9EE1E4BACE30662EAC9B3D6F9AB0C73D26DFA8A7DC1F26DA078DF61EF9 + DEAD9590E973CF1CE9F4BED1D2D2C2EDFF0000000090427EBC083B63CED9F2A8 + 7BBB1CD869363B77B6C73677DC65892800D8A27D207300A6C9F73407DC1A8F18 + 3DD557CFFF6FD9B04EEDDDB553470000000080647BE1E927221763FD44E7BA51 + F3602B36CD2DDA5CB7C9374C34F70737E30E0F78F09051BE2A00BCFAFC737A04 + 000000004885BD3B77A83D3BB6EBC81F060F1B63EE00B073617B2C4D486C98D7 + 13CA7CA344707F38F381DD1F5CC6EE034EEF376898AF0A006B562CD323000000 + 0040AA94FB2C172B183854725D73EBBFC9854D6F98FCD8349B3BEE36F9A68916 + ED834B6F0ED67DC09156D0BFAF6F7600A8AAAC54DB366DD411000000002055D6 + ACF0D74E6CF9B9FD24D76DCD7D9D66F270778E2CECF799B98431DF3859DC1FDE + 1C8019470EB6A070584E754D5AA1BCE0076B57ADF0DD73270000000010046B57 + 2D57CDCDCD3AF2BEBA4655D4AF6048B633B4937D938B9BDCD86E49D3930280FD + E1DC1FB2A3D7EC038EBC6FDEFC4B86151616BADFE759DCFE0F00000000BD43EE + C8DEB165938EBC4F72DDF98B2EB6EF027017010C93139BF7D93A7A2D6EDD2D00 + 44FB86D13E88998BD644643C716A89AFB600F4DB33270000000010247EBB283B + 69CA027B214061C6768B26D66BB1DEDFA1EE1600BACA7C68F321E5FB9AAA47DA + B091937CB300E0F1A347D4EEEDDB7404000000004835BFAD0330FC54CE6B7262 + 930F0B3367B7A4497401C0FEC0D1C6EEB9C8810F2A1CEE9B0280DF7ED1000000 + 002068D6AD5EA99A1A1B75E47D05834648CE6B127F3B27B69B30BDB0E71322D1 + 0500C3FEF0EE033007DCDA061414FA6607009EFF0700000080DE555B53A3B66C + 5CAF23EFEB7F2AE76D93073BCD2E0608F7EB0997A80280F970D13EB01D9B036C + 2D02F47134E6FB670B409EFF0700000080DEB766B97F72B3DC01FD864BEEEB0C + 63E6C6BA093BB6E77A4CBE59B2B83FB4F9C0A697EFDD67FCC479038AB207E49E + 9AF2B68A03FBD581BD7B740400000000E82D6B56FAE7F1ECBCCC7E7992FB3AC3 + 481E1C996C9B23BB5B5224A20010EDC3B9E7EC0391D6FA7D878F99DC570F3D8F + E7FF01000000C01B3694AF560DF5F53AF2BEE1A326DAB9AFE4C4EE3CD9E68E45 + B4B92EE9490120D637B7E7631D84F4F2BDFBF4EF37283F32E303DCFE0F000000 + 00DE20C9FFA6B56B74E47D7D0714E6395D240F769A9D1BC712EBB58EBEA6433D + 290074463E54ACD6AA6FBF41BEB8FDBFA5A585050001000000C043FC7491B67F + FF76B96FB45CD9B4A448640120D687741F841DA7E5F72BC89149AF3B7AB8421D + A938A42300000000406FDBB27EAD1E795F5EFE40C97DDBE4C34E13A617F6D888 + 36D72D892A00B83F90C466CE8CED666E7948CBCBEFEF8B3B00F6EDDAA9470000 + 0000002FD8EBA33C2D37AFAF3C0260B87364D3843D36DC71B724FA1180CE3E94 + FB80D27272FBFAA200E0A75F2C000000000803D9A9ADBEAE4E47DE969BDB57EE + 00901CDC5C10B7991CD92DDA5CB725BA00E0667F587340662E32CECECCF3C523 + 00140000000000C05B64ADB6FD7B76EBC8DBB2B2F3ED8BDF2637761703EC71C2 + 25B200603EA8BB776B339F999BE78F3B0076EED023000000008057F8E571EDDC + EC5C7B0D00D159CEDCD9FBBA2C110580CE3E8CBC6E9AD13A979DC31D00000000 + 0080EEF14BAE96999DEBBE03C068CD8F23516C9DBDDEA964DC0120CC38DA0794 + B9D6969D95E3F93B00E4991279B60400000000E02DFB76EFD2236FCBCC8DDC01 + 2039B8B9ED3F56BE6CF722DAFBBA2591058068CC41D94D985E6565E478FE0E00 + 79A6449E2D010000000078CBDE5DFE785C3B3323EA1D0076AE6C5AD224BA00D0 + D987B65F8B8C3333BD5F00F0CB2F1400000000848DAC01E0870BB6D94EF2EB74 + ED72E253C376CC6BB15EEF9664DF0120EC0FDDEEC3A7676679FE11009EFF0700 + 0000006FAA3A7952551E3FA623EFCACCCE8A76F1DBCE95DBE5CB89D6DD0240CC + 84DEE27E2DEAD764A547AA209EE697552501000000208CFC70D1362D23B20680 + 2D565EED8E6DB1BE262EA9B803C04D3E686BEB9399EEFD470076520000000000 + 00AFF243CE969399613F02605A4A75A700D0D9878CE7205ADF939ED3AE0AE229 + F22C096B00000000008077F9E10E808CB6EBDF75296F8E219E3FA38D642C0218 + 8DCC9B6644E2ACFA4A4F17008E1F39A26AAAAB750400000000F09A7D3EB8689B + 9E71D2BE03C030B13D678B35DF2DC97C04C07D20513FF8D1BA3E197AE849FBF7 + EED1230000000080171DF041DE76F4685AA61EBAD9B9B29D43275CA20A005DF9 + 80E680927A6089527DB2528F00000000005E243B01F84477F3E184E4CEC9BA03 + C07D30669C900F9D4A3535DCFE0F000000005E56EBDFBCCDCE95A3E5D0099588 + 0280EF92FAAEA8E5F97F00000000F0B4DA9A9AC802EE01D7E3DC3B996B000402 + 0B000200000080B749F25F575BAB23DF4BDA45F65417007C77B7808F6F250100 + 000080D0F0E9DDDB29CD91935D00908331CDF05511803B0000000000C0FB7CB8 + 7E5BB43C39A9F9328F0074429E250100000000781B776F772E190500DF5EED8F + 86450001000000C0FB0270F7B63B7F4E783E9DCA3B00A27D78CF1708D8061000 + 000000BCCF27176F7B352F4E4501C0F3497E47B8030000000000BC2F00176F25 + 774E6AFEDC1B6B009883F2456180450001000000C0FB7C74F1B6D772621601EC + 048F000000000080F771F1B67314003AC1230000000000E07DEC02D0390A009D + A8A9AED223000000008057710740E7280074A2BEAE5E8F00000000005E555F5B + AB4788850200000000000021400100000000008010A000000000000040085000 + 000000000020042800000000000010021400000000000008010A000000000000 + 84000500000000000042800200000000000021400100000000008010A0000000 + 0000004008500000000000002004280000000000001002140000000000000801 + 0A00000000000084000500000000000042800200000000000021400100000000 + 008010A000000000000040085000000000000020042800000000000010021400 + 000000000008010A000000000000840005000000000000428002000000000000 + 21400100000000008010A00000000000004008A4E9BE2BE46BCCD7492F4504D3 + A73B2D43F7994ECBB25AB6D3729C966BF5B9F7FCE5E0FD454583BBF33952E2DA + F3CE542D2DCD3A0280D4EBD77F801A37F93495D7B7AF9E4122343536AA13478F + AA1D5B36ABBABA5A3D0B0000FCEA82CBAF5037DE7C8B8EBCA7A2E250CBFBAF1A + 729D33ACD14DFE0162FA3AA7D55BADC1694D4E6BD4BD24A52D562FA437E3B874 + 27F196AF315F67127FD353000080043AFDDC0BD4076EF9BCCACE96FFDB443254 + 9E38AEEEFBF1DDEAC5679ED2330000C08F2800748E470000C0A3FA170C54EFFF + F4E748FE934CEEB0F8D0676F5363264CD233000000C1440100003C6A66C93C95 + 932B374B21D9323232D51B2EBA4447000000C1440100003C6AC8F0117A845458 + 70C6592A2DCDB34FA4010000F418050000F0A8BEFDFAE9115261F0B0E16AE4D8 + 713A020000081E0A0000E05139B9797A845429597CBA1E010000040F050000F0 + A8DC3C0A00A956524A010000000417050000F028EE0048BD293367AABEFDFAEB + 08000020582800008047E5700740CAA5A5F551731696EA080000205828000080 + 47E5720740AF2859BC448F000000828502000078147700F48EB90B4A557A7ABA + 8E000000828302000078544E6EAE1E2195F2FBF55393A7CFD411000040705000 + 00008F621780DEC37680000020882800008007A5A5A57107402F2A29651D0000 + 00103C140000C083B2B2B2232BD2A3778C1A375E0D193E5C47000000C1C0BF2E + 01C0835800B0F7152FE22E000000102C140000C08364213AF42ED60100000041 + 430100003C68E0A0423D426F99515CC23A0C000020502800008007151416E911 + 7A4B4646A69A59325F47000000FE470100003C682005004F2829E53100000010 + 1C140000C08306155100F002D90E50B66404000008020A0000E04105AC01E009 + 0585856ADCA4D374040000E06F140000C0830672078067942C663B400000100C + 140000C0835803C03B8A4B290000008060A00000001E23CF9C0F2CE41100AF98 + 3475BA1A3070908E000000FC8B020000788C3CFF9F9DC3FEF35E52BC68B11E01 + 0000F817050000F098311326EA11BCA26431DB01020000FFA30000001E4301C0 + 7B66CF5FA832323275040000E04F140000C0632800784F4E6EAE9A3667AE8E00 + 0000FC8902000078CC980993F4085E52C26E000000C0E72800008087A46764A8 + 9163C7EA085E22EB00C80E0D0000007E450100003C64F4B8F13C6BEE5143478C + 54C3478DD611000080FF500000000F993EA7448FE045EC06000000FC8C020000 + 78C8F4B9C57A042F2A661D000000E063140000C023FAF4E9A3A6CDA100E06553 + 67CD51F97DFBEA080000C05F28000080478C993889E4D2E3D2D3D3D5ECF90B75 + 040000E02F140000C02366CCE5F97F3F601D000000E057140000C023E62C58A4 + 47F0B2B90B17471ED7000000F01BFE0503001E909D93C302803ED16FC0003569 + EA741D010000F807050000F08019C5F3544646A68EE0753C06000000FC880200 + 0078C0DC85A57A043F603B400000E047140000A097A5A5A5459E2B877F8C9D38 + 49150E19A2230000007FA0000000BD6CF8A8D16AC8F0E13A825F942CE22E0000 + 00E02F140000A09771F5DF9F5807000000F80D050000E8657317F1FCBF1FCD2C + 99AFB2B37374040000E07D140000A017B1FD9F7F656665A9E9C5253A020000F0 + 3E0A0000D08BD8FECFDF780C000000F809050000E8456CFFE76FB210A0ECE200 + 0000E007140000A097B0FD9FFFC95680A3C74FD411000080B7510000805EC2F6 + 7FC150B298ED000100803F500000805EC2D5FF602829A500000000FC81020000 + F412B6FF0B86C9D367AA7E0306E8080000C0BB280000402F60FBBFE0602D0700 + 00E017140000A017B0FD5FB0B01D200000F0030A0000D00BD8FE2F58E62C58A8 + D2333274040000E04D14000020C5B8653C78F2F2FBAA293367E9080000C09B28 + 0000408AB1FD5F309594F218000000F0360A000090625CFD0F26B6030400005E + 47010000528CEDFF8269C498B16AD8C8513A020000F01E0A000090426CFF176C + C5DC050000003C8C020000A410DBFF051B8F010000002FA300000029C4F67FC1 + 367D4EB1CACDCBD311000080B7500000801461FBBFE04BCFC850B3E62DD01100 + 0080B7500000801409CBF67F7575B5EABB5FBA5547E153B298ED000100803751 + 0000801409CBD5FF1D9B37A915FF7D45D5D7D5E99970295EB458A5A5F19F5700 + 00E03DFC0B050052242CDBFF6DDDB841353636A84DEBD6E89970193070909A70 + DA141D01000078070500004881306DFFB76DE3FA48BFA16C55A40F231E030000 + 005E4401000052204CDBFFC91D0062DDEAF016008AD90E100000781005000048 + 81B06CFF270B00EEDDB92332DEBC6E8D6A69698E8CC3461E01185858A4230000 + 006FA00000004916A6EDFF6401C0A6A6A6C8B8A6BA5A6DDBB429320EA3E252B6 + 7C040000DE42010000922C2CDBFF0973FBBF11EA75004A5907000000780B0500 + 0048B2B05CFD17660140637D880B00B3E6CD579959593A020000E87D14000020 + C9C2B2FD9F6877074079991E854F764EAE9A3E271C3B3F0000007FA000000049 + 14A6EDFFEAEBEA5A1700348E1D39ACF6EFD9ADA3F0613B400000E02514000020 + 89C2B4FDDFF6CD1B5B1700B485F93180E2454B228B40020000780105000048A2 + B06CFF27DCB7FF1B1BCA56EB51F8C8E28F23C78CD511000040EFA20000004912 + A6EDFF847B0140635D88EF00103C06000000BC82020000244998B6FF13B1EE00 + 38B067B73A71ECA88EC28702000000F00A0A0000902461BAFA1F6D0140A3A5A5 + 45AD5B1DDEBB004E9B314BF5EDD75F47000000BD87020000244998B6FF8BB500 + A011E67500FAF4E9A3E62C58A423000080DE4301000092204CDBFF8958B7FF1B + EBCB56EA5138952C5EA247000000BD87020000244198B6FF13B1160034766CD9 + AC6A6B6A74143E731696AAF4F4741D010000F40E0A0000900461DAFE4F6C59BF + 4E8FA293C70336AD2DD751F8C81A0093A7CFD011000040EFA00000000916B6ED + FFAA4E9E547B76EED4516CEBC3BE1D6029BB01000080DE45010000122C6CDBFF + 6D5EB746B5B434EB28B6F521DE0940B01D200000E86D14000020C1C274F55F6C + 5C53A6471DDBBC7E6D873B0504DDA871E3D5E061E1290C010000EFA100000009 + 16A6EDFFC4C635F13DDB5F575BABB66DEA78B780A02B2E6537000000D07B2800 + 004002856DFBBF969616B579DD5A1D752EEC8F01CCA3000000007A1105000048 + A0B06DFFB76BDB5655535DA5A3CE6D285FAD47E134DDF9FD9022110000406FA0 + 0000000914B6EDFFE27DFEDF087B0120333353CD2C99AF23000080D4A2000000 + 0912B6EDFF4457F7F63F71EC98DABB73878EC289DD000000406FA10000000912 + B6EDFF44BC0B00DAD695857C3BC0D225916211000040AA510000800409DBD5FF + CA13C7D5FE3DBB7514BF0D65E17E0C606061911A3B69B28E0000005287020000 + 2448D8B6FFDBB4A63CB20B4057AD2F5BA947E15552CA6300000020F528000040 + 02846DFB3FD1D505008D43FBF7ABA3872B74144E258BD90E100000A41E050000 + 4880B06DFF27367671014043EE1A58BF3ADCEB004C9C324D0D18384847000000 + A94101000012206CDBFF353737AB2DEBD7E9A8EBD6877C21C0C88E11217B6404 + 0000F43E0A0000D04361DCFE6FC7964DAAAEB656475D17F60280601D00000090 + 6A140000A087C2B8FD9F2C00D813BBB66D5535D5553A0AA7D9F31786EEB11100 + 00D0BB280000400F85EDEABFD8D0C302803C42B0B1BC7B8B0806456E5E9E9A3A + 7B8E8E000000928F020000F450189FE5DEB4B6E7C9FB3A1E0360370000009052 + 140000A007C2B8FDDFB12387235BF9F5D486B2D57A145EAC0300000052890200 + 00F44018B7FFDBB4B63CB2955F4F6D5EBF56353636E8289C868D1C1559430200 + 002015280000400F846DFB3FB1B187CFFF1B0DF5F56AEB86F53A0AAF92C5DC05 + 0000005283020000745318B7FF1389DCC26FFD6AD601A0000000005285020000 + 745318B7FFABABAD515B376ED051CFAD2F671D80A9B3E6A8BCFCBE3A02000048 + 1E0A0000D04D61BCFA2FB7FF373536EAA8E73694AF4EC87A027E969E9EAE66CF + 5FA823000080E4A1000000DD14C6EDFFD6AE5AA14789515559A9B66DDAA8A3F0 + 623B400000900A140000A01BC2B8FD9F5897E0028058B362991E8597DC4DD2A7 + 0FFF49060000C9C5BF3600A01BC2B8FD5F7D5D9DDAB27E9D8E12A79C0280EA5F + 50A0264E9DA623000080E4A0000000DD10C6EDFF36AD2D570D0D89DFB77FFDEA + 95AAA9A94947E15552CA6E00000020B928000040178575FBBF443FFF6FD4D5D6 + AA4D6BD7E828BCD80E1040A2C9A34539B9B9AADF8001AA70C810356CD4683566 + C2443569EA74356DF65C3567C12235FFF433D5E273CE53675F7489BAE0F22BD4 + 256F7BBBBAE21DD7A9B75CF71E75D1956F530BCF3C5B656567EB3F1180DFA5E9 + BE2BE46BCCD7492F4504D3A73B2D43F7726F6C96D5E4FF39729C966BF5B9F7FC + E5E0FD454583BBF33952E2DAF3CE542D2DCD3A0200A5468C1EA3BE77DF1F7414 + 1E77DCFCB1A41501AE7AF7FBD45BAF7F8F8EC2EB236FBF521D3974504700C24C + 8ACD79F9F96AC0A04235D069054E1B306850A42F70FA01050355A693984B729E + 9595A532B3A4CF76FAACC89CF4B2CB48229CAC3CA1BEF6994FA8ED2CDA0A8F93 + 22D68D37DFA223EFA9A838D4F2FEAB865CE70C6B74ABB5FA3AA7D55B4D6EBB94 + 5B2465FB25E9252995AD934C2FA4EFD2764ADD49BCE56BCCD799C4DFF4140000 + 04DE256F7DBBBAFEA337E9281CE4D6FFF75E7EA16AA897FF1E25DEF439C5EA4B + DFFFB18EC2EBDEEF7F5B3DF3C8433A02104492980F182889BC49E64F25F4AF8F + 7582EFF49999DE596B46B66DFDF24D1FD611E04D14003AD79DC45BBEC67C9D49 + FC4D4F010040E0DDF6ADEF876EDFF675AB57AAAF7CF2A33A4A3CF947EE2FFFF1 + 64E86F335DFECA4BEA5B5FF8AC8E00F84D5A5A1F356870911A3E6A8CD346AB61 + 2347A982429DD44792FE4295DFAF9F7EB7BFD4D6D4A8F75C7681F3EFE22EE51A + 404A5100E89C24ED008038B1FD5F72C81D06727529EC6696CCE7595BC0072489 + 9F346DBA3AEBC28BD5DBDFFB01F5C92F7F557DEBDEFBD47D8F3DA3FEEF8F0FAA + 2F7EE707EAC64F7E465D7AD535EAF4732F5033E696A89163C7F936F917B29680 + 3C9200C0DF28000040178471FB3FB176D54A3D4A9EF2E56C0728C9BF240A007A + 9FDCAA3F7AFC84C822786FBEF63AF5A1CFDEA6EEF8D1CFD43D0F3EA67EF9F013 + EA6BFF778FFAC8E7BFA8AE7CD70DAAF4EC73D5980993025FC0EB93A0350500F4 + 1E0A0000D00561DCFEAFA9B1516D5A53AEA3E4295FBE548FC28DDD0080D4EADB + AF7FE4EE9B375EF156F5EE8FDF1C79CCEB47BFFFABFAEDE3CFAA6FFFF27EF5A9 + AF7C5D5DFBFE0FA9375C74A93A6DC6ACC88AFA00E057140000204E61DDFE6FCB + 8675AAAE4E1E4D4BAEED9B37AAEAAA933A0AAF92D2D323BF6B00124F92FD59F3 + 1644AEE8DFFCE5AFA91F3EF05775EFC38F476ED97FCF4D9F8A6C7B276BBC0C1E + 369CBF87000289020000C44916741A327CB88EC22315B7FF8BA6A626B52E45DF + CBCB64AF6EB9ED1840CFF4EB3FE0F564FFFFDD19B9AA2FC9FE17BE7D77E48AFE + A2B3CF09E5FFA70308370A000010A7305EFD17C95E00D056C663001125A54BF4 + 08403C24D9972BF757BCE3F564FF9E871E7B3DD93FEB0D91ABFA001076140000 + 204E731785EFF9FFE6E666B5714D998E926FCD0A160214AC0300C426ABD1CB95 + 7D93ECFFF80F7F8B24FBF2ECFE35EF23D907808E50000080388475FBBFAD1BD7 + AB9AEA6A1D25DFEEEDDBD48963C774145E93A7CF60A13140CBCDCB57C58B16AB + 777CE0239195F77FF98F272357F64DB25F3474987E2700A033140000200E61DD + FE2FD5CFE4B7B4B4701780232DAD4F28779C0084EC953F6FC919EABA0F7F5C7D + FD67BF52BF7AE409F5B96F7C47BDE99A7746F6DE4F672B3A00E8360A00001087 + B026636B572ED7A3D4613BC053643700200CE46E9705679CAD6EF8E827D45DF7 + DCA7EE7DE87175CBD7EE52975E758D9A70DA9448410C009018FC3F2A007422AC + DBFFB5B434ABF565AB75943AE5DC01103167E122959E91A1232038060C1CA44A + CF3E57BDF7A64F45F6D9BFE7C1C7D4A7EFF8BABAF8AD57ABB11327B1FD1E0024 + 11050000E84458B7FFDBB66993AAA9AED251EA1CDCB757551C3CA0A3F0CACBEF + ABA6CC98A523C0BF323333238BF65DFF919BD4777FFD80FAF9DF1E519FFCF257 + D58557BC952D2F0120C52800004027D8FE2FB5641D001E0338A56431DB01C29F + 060D1EA2CEBBF44DEA335FFD66EBDEFB97BCEDED6AE4D871FA1D0080DE400100 + 003A11C6EDFFC4DA5E2A000816023C857500E017B230DFD459B3232BF37FEBDE + FBD44FFEF4A07AFFA73FA7E69F7EA6CACEC9D5EF0200F4360A0000D081B06EFF + 2757E1D797ADD251EA952FA70020468C19AB868E18A923C05BFA1714A8332FB8 + 48DDF4C5AFA85FFCFD9FEAFFFDE0A791BDF9C74C98A4DF0100F01A0A0000D081 + B06EFFB773EB16555559A9A3D43B7AB842EDDDB94347E1565CCA6300F006599C + 4F56E57FEBF5EF89ECC7FFF3BF3DAA3E7AEBED6AC9B9E747B6EE0300781F0500 + 00E84058B7FFEBADE7FF6DEC0670CABCC53C0680DE2349FFA4A9D3D5BB3EF451 + F5A3DFFF35B22FFF55EF7E5F643F7E56EB0700FFA1000000318475FB3FD19BCF + FF1BAC0370CAB43973556E5E9E8E80E47327FD5FFBC93DEAB2ABDFA18A860ED3 + EF0000F8150500008821ACDBFF8975AB57EA51EF59BB7245642D82B093475066 + 962CD011901C24FD00100E1400002086B05EFDDFBD7D9BAA3C7E5C47BDA7F2C4 + 71B563F3261D851BDB01221924E99F38655A24E9FFE1037F21E9078010A00000 + 0031B0FD5FEF631D80534A4A9738C91AFFC946628C183D465DFBFE0F4592FE3B + 7F7A6F24E91F3C2C9C773B0140D8F0AF09008822ACDBFF092F2C0068B00EC029 + 03060E52E34F3B4D4740D7E5E6E5AB732FBD5CDDF1A39FA9EFDDF707F5E66BAF + 23E9078010A2000000518475FB3FB16EF52A3DEA7DEBCB56A9A6A6261D855B49 + 29BB01A06BE4AE9119734B225BF5FDFC6F8FA80F7CFAF3EAB419B3F4AB008030 + A2000000518475FBBFBDBB76AA63470EEBA8F7D55457AB2DEBD7EA28DC4AD80E + 1071922BFB6FBBE1BDEA07BFFBB3BAFD7B3F52675E7091CACACED6AF0200C28C + 020000B8847AFBBF95CBF5C83B5807E09409A74D510585853A02DA1B336192FA + E2777E1059C5FF6D37DC18DA5D4C0000B15100000097506FFFB7AAF7B7FF732B + 5FBE548F50BC289C8529744C8A96E75DF6E6C8827E334BE6EB590000DAA30000 + 002E61BDFA2FBCB40380B169ED1AD5505FAFA370631D004473C9DBDEAEDEFFA9 + CFAACCCC70AE5B0200881F0500007009EBF67FFBF7EC56470F57E8C83B24F9DF + 50BE5A47E1367BFE02923CB43365E66C3D0200A063140000C012EEEDFFBC77FB + BFC13A00A764E7E4AA6973C2F9FB89D8468D1BAF470000748C02000058C2BCFD + 9F176FFF375807E075EC06005B7A46861A3672948E0000E818050000B08475FB + 3FB1CEC305806D1B3744B604C4A9750064D13740343735F3FB0000881B050000 + D0C2BCFDDFA1FDFB54C5C1033AF29EA6A6264F1728524976A8183166AC8E1076 + 2D2DCDAABAAA4A470000748C0200006861DEFE6FAD879FFF37CA97B30E805152 + BA448F00A5AA2A2BF50800808E510000002DCCDBFFF9E1EA3A0B01BE8E750060 + AB3A79428F0000E818050000D0C2BAFD9FF0F20280C6AE6D5B55E5F1E33A0A37 + D9F62DBF5F3F1D21ECB8030000102F0A0000E008F3F67F470E1D8CAC01E075F2 + AC3377019CD2A74F1F3567C1221D21ECAA4E9ED42300003A460100001CE1DEFE + 6FA5935CB7E8C8DBD650006825BB0100823B000000F1A20000008E306FFFB766 + A57F926AEE00789D3CB222770200552729000000E2C3BF1C00845E98B7FF1365 + CB96EA91F71DD8B33BF2C80294EADBAFBF9A3C7DA68E106655952C020800880F + 050000A117E6EDFFF63B0975C581FD3AF23E7954A18CED005B952C663B40F008 + 0000207E140000845E98AFFE972FF7CFD57F8375005EC73A0010277904000010 + 270A0000422FCCDBFF95F9B000C03A00AF1B3D7E822A1A3A4C47082BEE000000 + C48B020080500BF3F67F723BFDDA15CB75E41FB206C0BEDDBB748492521E0308 + 3B0A00008078510000106A61DEFE6FFBE68DAAF2C4711DF90B7701BCAE64318F + 01841DBB000000E245010040A88579FB3F3FADFEEFE6C7B50B92458A5872270B + C28B3B000000F1A2000020B4C2BEFD9F9F93687974411E6180529999996A66F1 + 3C1D218CB8030000102F0A0000422BCCDBFF353636A80D65AB75E43FF2E8C2B6 + 4D1B75041E0308B7E6E66655535DA523000062A3000020B4C27CF57F437999AA + ABABD5913FF118C0EB8A4B9744EE684178F1180000201E140000845698B7FF0B + 42F25CB6EC353DC2A0A2C16AECC4493A42189DA40000008803050000A114E6ED + FF441092E70DE5AB554343838E5052CA630061567DF2A41E0100101B050000A1 + 14E6EDFFAAAB4EAA6D1B37E8C8BFEAEBEAD4C672FFAE639068AC03106E55274F + E8110000B1510000104A61DEFE6FEDCA15AAA9A94947FE56C63A00AD264E9DA6 + FA170CD411C28647000000F1A000002074C2BEFD5F909E9D2F5F4601C090DFEB + E210AF6B11762C0208008807050000A113E6EDFF44F98A657AE47F5B37AE8F3C + D28053580720BCAA4E52000000748E020080D009F3D5FFA3872BD4DE9D3B74E4 + 7FB2FFF99A0015347A6AF68245A15DDB22ECB8030000100F0A00004227CCDBFF + C9EDFF2D2D2D3A0A86B2E514008CDCBC3C3565D66C1D214C28000000E2410100 + 40A8847DFBBFF20026CBE5015AD32011E6B11B4028D5D654EB110000B1510000 + 102A61DEFE4F940770D5FC7DBB77A923870EEA0825A54BF40861D218909D3D00 + 00C945010040A88479FBBF3D3BB6AB23158774141CF2484319BB01B41A366A74 + 64A14B844B5363A31E0100101B050000A111F6EDFF82B4FABF5BF90A0A00B662 + EE02081D0A004885DA6A1E3501FC8E020080D008FBF67FB20060509505F0D186 + 9E601D80F0A10080643B71EC986A6868D01100BFA200002034C27CF5BFA5A559 + AD5BB54247C173ECF061B57BFB361D61EAECB92A2FBFAF8E10068D4D1400905C + 2F3FF78C1E01F0330A00004223CCDBFF6D59BF5E559D3CA9A3600AE20287DD95 + 9E9EAE66CD5FA023840177008493AC81225B401EDCB757EDDEB13DB2D6CBDE5D + 3BD5FEDDBBD481BD7B9CF97DAAE2C07E75F8E0C1C81A30522C3D71ECA8AA3C7E + 5C559E381EF9DAEAAA93AAA6BA5AD5D5D6A8FABABAC855FEC6C606D5D4D41479 + CFDE9D3BD4DFEFFFB5FAD32F7FAEBF2B003F4BD37D57C8D798AF935E8A08A64F + 775A86EE6599ED2CAB653B2DC769B9569F7BCF5F0EDE5F5434B83B9F2325AE3D + EFCCC8953300FE26DBFFFDF21F4F84760780077F779FFAD3AF7EA1A36092DBDE + 6FB9F35B3AC2F34F3EAE7E7AD7D77484A01B35769CFACEAF1FD011FC4492EEEA + 9327D5C9934E32EE3449CAA5605B15199F38356E9D3B71EABD92B83BBD24EEFC + 3B1578DD05975FA16EBCF9161D794F45C5A196F75F35E43A6758A35BADD5D739 + ADDE6AF2CC8D6CF122155EE9E52F7B8BD50BE9CD382EDD49BCE56BCCD799C4DF + F4140000785289931C7E36C4C9E1573FF571B566E5721D05536E5E7EA4C8D3A7 + 0F37B709795EF7836FBD9CFF868584ECFE70F76FFFA8237885FC3DDCBF7777E4 + 8AFCFE3D7BD4813DBBD5A103FB9D04DE49EC23497C25CFD503094401A073FC2B + 0940288479FB3FB9BAB4716DB98E82ABA6BA4A6D5EB74647E85F50A0264E9DAA + 23041D8F00F49E63470EABF565ABD5F34F3C16B9D3EA0777DCAE6EFDE07BD57B + 2F7FA3FAC05B2E555FFAD807D54FBEF9B5C86DF42F3DFBB4DAB8A62C725BFDF1 + A34748FE01A41C0500008117F6EDFFD697AD520DF552480E3ED601684BEE7C41 + 38500048AEA3872BD4DA552BD4738F3DAAFE70CFCFD4F7BFF245F5F90FBC5BBD + FBD2F3D587DEF626F5FF3EF161F5D36FDD1979DCEA957F3FABB66DDA1079B61E + 00BC86020080C00BFBF67F614A8ACB965100B095945200088B460A000923774D + AD5DB92292CC7FF3F39F5637BEE98DEAC357BD59DD71F3C7D4CFBFF30DF5F01F + EE57AF3EFF9CDABE7993AAAD913B7701C03F28000008BC305FFD17614A8A37AD + 5DA3EAEAE4313A88719326AB418387E80841D6C43680DD262BE24B42FFDBFFFB + A1FAC287DFA7DE73F985EA8E4F7D2C723BFFCAFFFD37B2F81E00040505000081 + 17E6EDFF64A129B94A1516B275D5BA552B750451BC28DC05B0B0686E62B1C7AE + 90EDEDFEF5CF7FA8AF7DE613EA436FBB3C724BFF637FFB93DAB2611D8F530008 + 340A0000024DB6FF9B3EB75847E1B366F9B2D0AD02CF3A006DB10E00708A5CC9 + 7FEEF147D5373EF7A9C873FBF77CF7AEC8FF5FC87EF700101614000004DA8CE2 + 79A1DDFB5F948530192E5BF69A1E41CC2A99AFB2B265275E20DC1EFDF3EFD5CF + BFFD0DB5EAB557B9CA0F20B428000008B4306FFF27C278357CE7D6AD91BDB771 + 8A24FFD3E784F72E180000F03A0A0000022BECDBFF551CD8AF0EECDDA3A3F090 + 471E780CA02D1E0300000082020080C00AFBF67FB2FA7F4B4B8B8EC2A57C0505 + 009B1400A420060000C28D020080C00AFBF67F61BE0A1EA6AD0FE3513464A81A + 356EBC8E00004058510000105861DEFE4F94AF58A647E17368FFBE503EFED091 + 92521E03000020EC28000008A4B06FFFB773EB6675FCE8111D8513EB00B455B2 + 78891E010080B0A200002090C2BEFD5FF9F2F05EFD37780CA0ADD366CC54FDFA + 0FD011000008230A00000229ECDBFFB117BE526B562E0BED2288D1A4A5F55173 + 162ED211000008230A00000227ECDBFF353535A975AB57EA28BC2A8F1F57DB37 + 6FD41104EB000000106E140000044ED8B7FFDBB4768DAAADA9D151B8F128445B + 731696AAF4F4741D010080B0A100002070D8FE8FDBFF0D1E85682BBF6F5F75DA + 8C593A0200006143010040E0847EFB3F56BF6FB5A16CB56A6C6CD01144C9621E + 03000020AC2800000894B06FFF27B7FE6F5AB75647A8ABAB551BCACB74045152 + CA7680000084150500008112F6EDFFD6AD5AA19A1A1B7504C11D116D8D1C3B4E + 0D193E42470000204C2800000894D06FFF47B2DB0EEB00B4C75D000000841305 + 00008111F6EDFF0457BBDBDBB67183AAAE3AA92308D6010000209C280000088C + B06FFF77E2D851B56BDB561DC1686A6A526B562CD71184AC9391939BAB230000 + 10161400000446D8AFFECBEDFF2D2D2D3A828D3B23DA92753266CD5BA0230000 + 10161400000446E8B7FF5B46921B0B6B23B45752CA63000000840D0500008110 + F6EDFF04496E6CFB76ED54472A0EE908A2B874B14A4BE39F0100008409FFE507 + 100861DFFE6FFF9EDDAAE2C07E1DC14D1E8DE03180B60A0615AAF1A79DA62300 + 0010061400000402DBFF91DC76A68C4724DA613B400000C285020000DF63FB3F + 16B98B07E7A83DD6010000205C280000F0BDB06FFF27B7B7AF659BBB4E1D3D5C + A176EFD8AE23880953A6AA82C2421D010080A0A30000C0F7C27EF57FFBE68DAA + F2C4711DA123DC05D05E71C8FFFE00001026140000F85ED8B7FFE3D9F6F8952D + 7B4D8F60942C661D000000C2820200005F63FB3F92DAAE58B76AA56A6E6ED611 + C4ECF90B5566667877D00000204C280000F0B5B06FFFD7D8D8A0369697E9089D + A9AE3AA936AF5FAB2388EC9C5C3575F65C1D01008020A30000C0D7C2BEFDDF06 + 27F9AFABABD511E2C13A00EDCD5BCC6E0000008401050000BEC5F67FDCFEDF1D + E5AC99D04EC9E233227F9F000040B0510000E05B61DFFE4F7035BBEB36AD2DE7 + AE0917F97B3462CC581D010080A0A20000C0B7C27EF55F9E67DFB671838E10AF + 868606B57ED54A1DC1285EC46E000000041D050000BE15F6EDFFD6AE5CA19A9A + 9A7484AE285BBE4C8F60B01D200000C1470100802FB1FD1FCFFFF744F972CE9D + DBD45973547EBF7E3A02000041440100802F857DFB3F51C6F3FFDDB663CB1655 + 79FCB88E20FAF4E9A366CF5FA82300001044140000F852D8B7FF3B7AB842EDDB + B55347E8AA96966655BE82C700DC4A4AD90E10008020A30000C077D8FEEFD4ED + FF2D2D2D3A427794F308453BC5A58B23770200008060E2BFF2007C87EDFFA400 + C0EDFF3D55C63A00EDF4EDD75F4D9E3E534700002068280000F09DB05FFD17E5 + 3CFFDF6307F7ED73DA5E1DC1282E6537000000828A020000DF09FBF67F7B766C + 8FAC01809E6321C5F64A280000001058140000F80ADBFF2916AF4B20D601686F + CC8489AA68C8501D01008020A10000C057D8FEEFD40280480C8A29D1F1180000 + 00C144010080AF847DFB3FD9BE6EEDCA153A424F551E3FAEB66FDAA82318258B + D90E10008020A20000C037D8FE4FA92DEBD7ABEAAA933A422294AF601D00B799 + C5F35476768E8E00004050500000E01B6CFFC7EDFFC9C0968AED656665A91925 + F3740400008282020000DF60FB3FF6AE4F86F565AB546363838E60B01B000000 + C1430100806F847DFBBFFABA3AB5694DB98E902875B5B56A6339E7D54DD60190 + C76E00004070500000E00B6CFF77EA4A75430357AA93A17C398F01B80D2A1AAC + C64E9CA42300001004140000F802DBFF91A426138F5644C776800000040B0500 + 00BE10F6EDFF048BD525CFD60DEB554D75958E609494B21D2000004142010080 + E7B1FD9F52272B4FA8ED9B37E90889D6D4D4A4D6AE5CA1231893A64D57FD0B0A + 74040000FC8E020000CF63FB3FA5D62C5FA65A5A9A758464608BC5F628BE0100 + 102C140000781E09883CA3CEEDFFC9C6398EAE6431EB0000001014140000785E + D8B7FF135C9D4EBEBD3B77A8A3872B740463CE8245A15F80130080A0A00000C0 + D3D8FE4FA98A03FBD5C17D7B75846469696961A7852872F3F2D59459B3750400 + 00FC8C0200004F63FBBF53ABFF4B728AE463A785E84AD80E10008040A00000C0 + D3D8FE4F71553A8538D7D1952C663B4000008280020000CF6205F253CA572CD3 + 2324DB918A436ACF8EED3A82213B710C731A0000F0370A00003C8BEDFF94DAB9 + 75B33A7EF4888E900A145CA22B59C463000000F81D0500009EC5D57FB9259D64 + 34D5D871213AB6030400C0FF280000F02CB6FF2319ED0D6B57AE502D2DCD3A82 + 316D4E716447000000E05F1400007812DBFF29D5D4D4A4D6AD5EA923A44A75D5 + 49B579DD3A1DC1484F4F57B3E72FD0110000F0230A00003C89EDFF94DAB4768D + AAADA9D1115289DD00A22B296537000000FC8C0200004F62FB3F4942B9FDBFB7 + 9471EEA32A2E5DA2D2D2F8A70300007EC57FC501780EDBFF9DC255E8DEB3694D + B9AAAFABD3118CFE05056AE2D4A93A0200007E93A6FBAE90AF315F27BD14114C + 9FEEB40CDDCBBDBB5956CB765A8ED372AD3EF79EBF1CBCBFA86870773E474A5C + 7BDE992C0605A4D888D163D4F7EEFB838EC2EB819FFF9F6A6A6CD2516C2DCEFF + E2D1D212C7FBE2798F23AE3FCB11D7BB12FC3DE3F9F3E2F993DE74CD3BD590E1 + 237404E3EFF7FF5AFDF9D7F7EA085E210B34FEFAD1A7748468FEF4AB5FA8077F + 779F8E0004D105975FA16EBCF9161D794F45C5A196F75F35E43A6728CF784AAB + B57AB9F2506FB506A7C93F041B752F49A9FC13C6F442FA78FE59D3AA3B89B77C + 8DF93A93F89B9E0200801EBBE4AD6F57D77FF4261D01F092ED9B36AACF7FF03D + 3A82575000E81C050020F82800748E470000780EDBFF01DE356EF2696A50D160 + 1D0100003FA10000C053D8FE0FF0BEE245ACD10100801F510000E0296CFF0778 + 5FC962B6030400C08F280000F014B6FF03BC6FE6BCF92A2B5B96F60100007E42 + 01008067B0FD1FE00FD9D9396AFA1C1ED50100C06F280000F08CE1A346AB21C3 + 87EB08809795942ED1230000E017140000780657FF01FF907500E4AE1D0000E0 + 1F1400007806DBFF01FE513474981A356EBC8E0000801F500000E0096CFF07F8 + 4F318F010000E02B1400007802DBFF01FE5352CA76800000F8090500009EC0F6 + 7F80FF4C993953F5EB3F40470000C0EB280000E8756CFF07F8535A5A1F357BC1 + 221D010000AFA30000A0D7B1FD1FE05F258B5907000000BFA00000A0D771F51F + F02FF9FB9B9E9EAE230000E065140000F43AB6FF03FC2BBF6F5F75DA8C593A02 + 00005E46010040AF62FB3FC0FFD80E1000007FA00000A057B1FD1FE07F258BD9 + 0E1000003FA00000A057B1FD1FE07FA3C68E63214F00007C800200805EC3F67F + 4070142FE231000000BC8E0200805EC3F67F4070F018000000DE47010040AFE1 + EA3F101C338A4B544E6EAE8E00008017510000D06BD8FE0F080E59CC73D6BC05 + 3A0200005E44010040AF60FB3F207858070000006FA30000A057B0FD1F103C25 + A54B545A1AFFB40000C0ABF8AF34805EC1F67F40F0141416AAF19327EB080000 + 780D05000029C7F67F40701597F2180000005E45010040CAB1FD1F105C6C0708 + 00807751000090725CFD07826BE29469AA6050A18E0000809750000090726CFF + 07045BF1228A7C0000781105000029C5F67F40F0B10E000000DE440100404AB1 + FD1F107CB3E72F549999FC3D0700C06B2800004829B6FF03822F2737574D9D3D + 57470000C02B2800004819B6FF03C2A384C7000000F01C0A00005286EDFF80F0 + 98B7E48C48D10F0000780705000029C3D57F203C860C1FA1868F1EA3230000E0 + 05140000A40CDBFF01E1C263000000780B05000029C1F67F40F894949EAE4700 + 00C00B2800004809B6FF03C267EAEC392ABF6F5F1D010080DE460100404AB0FD + 1F103E7DFAF451B3172CD2110000E86D140000241DDBFF01E1C53A0000007807 + 05000049C7F67F4078CD5DB4387227000000E87DFC171940D271F51F08AF7EFD + 07A849D366E8080000F4260A0000928EEDFF8070E331000000BC81020080A462 + FB3F00258B29000000E0051400002415DBFF01183361922A1A3254470000A0B7 + 50000090546CFF0740142F622D1000007A1B05000049C3F67F008C92C5A7EB11 + 0000E82D140000240DDBFF01306696CC57D9D9393A020000BD81020080A4E1EA + 3F0023332B4BCD2899A7230000D01B280000481AB6FF03602B663B4000007A15 + 05000049C1F67F00DCE6952E89AC0D0200007A0705000049C1F67F00DC060D1E + A2C64C98A8230000906A1400002405DBFF018886C7000000E83D140000241CDB + FF018885ED000100E83D140000241CDBFF018865F2B419AA7F41818E0000402A + 51000090705CFD07108BDC213467018F080100D01B2800004838B6FF03D0111E + 030000A0775000009050B2FDDFB4396CFF0720B6B90B17A9F48C0C1D01008054 + A1000020A164FBBFCC4CB6FF03105B6E5EBE9A3A73B68E000040AA5000009050 + 6CFF07201E6C07080040EA51000090306CFF07205EAC03000040EA5100009030 + 6CFF07205E23468F51C3468ED211000048050A00001286ABFF00BA82C7000000 + 482D0A00001286EDFF0074450905000000522A4DF75D215F63BE4E7A2922983E + DD69B2AF8FF4B20C7896D5B29D96E3B45CABCFBDE72F07EF2F2A1ADC9DCF9112 + D79E77A66A6969D611805864FBBF7B1F7E821D00B48FBCFD4A75FCE8111D218C + 3EFE852FABD2B3CFD511A2696A6C54EFBBE26255535DAD67D05DB2B3C2AF1F7D + 4A4788E64FBFFA857AF077F7E90840105D70F915EAC69B6FD191F754541C6A79 + FF5543AE738635BAD55A7D9DD3EAADD6E0B426A735EA5E92D216AB17D29B715C + B803004042B0FDDFEB766EDDA28E1C3A18496E68E16DAB5E7B55FF462096F48C + 0C356BDE021D01008064A300002021D8FEEF75E5CB97EA11C26CF5D2FFE9113A + C26E000000A40E0500003DC6F67F6D952D7B4D8F1066870F1E547B766CD71162 + 917500D2D2F8E7080000A9C07F7101F418DBFFBDAEA9A949AD5BBD5247083BEE + 02E85CFF82816AE294A93A020000C9440100408F71F5FF759BD6AE51B535B296 + 0BA05807204E6C070800406A500000D0636CFFF7BAF2E5DCFE8FD7C9DD208D8D + B2882F3A52B29802000000A9400100408FC8F67FD3E614EB0865CB580010AFAB + ABAD551BCA56EB08B18C9F3C450D2C2CD211000048160A00007A84EDFF5E27B7 + FE6F5EBF5647C0293C06109FE2521E25020020D9280000E811B6FF7BDDDA95CB + 23FBBF033616028C4F4929DB010200906C140000741BDBFFB555B69CDBFFD1DE + 8E2D5BD489634775845866CD5FA032B3B27404000092810200806E63FBBFB6CA + 96B10020DA6B696956AB5EE32E80CE6467E7A8E9AC2702004052510000D06D5C + FD7FDDB12387D59E1DDB7504B4C56300F12959CC630000002413050000DDC6F6 + 7FAF93D5FF5B5A5A7404B4C5DD21F129295D1279B40800002407050000DDC2F6 + 7F6D95AFE0F97FC4267788ECD8B259478865F0B0E16AE4D8713A020000894601 + 0040B7B0FD5F5BE52C00884EF018407CE42E000000901C140000740BDBFFBD6E + EFAE9DEAF0C1833A02A2A300101FD60100002079280000E832B6FF6BAB9CE7BB + 1187F565AB547D5D9D8E10CB9499B354DF7EFD7504000012890200802E63FBBF + B6CAB8FD1F7168A8AF57EB56ADD01162494BEBA3E62C58A42300009048140000 + 741957FF5F277BBCAF5DB95C4740C756F118405C4A16B30E000000C940010040 + 97B1FDDFEBB6AC5FAFAA4E9ED411D0B1D5AFBDAA47E8881419D3D3D375040000 + 12850200802EC9CE66FB3F1BFBBBA32BF6ECDCA18E541CD21162C9EFD74F4D9E + 3E434700002051280000E892E9C5256CFF67295B4E0100F16B69696137803895 + 94B21B000000894601004097142FE2F97F435674DFB4A65C47407C2800C487ED + 000100483C0A0000E2C6F67F6DC9B66E0D0D0D3A02E2238F8DC89D00E8D8A871 + E3D5E061EC36020040225100001037B6FF6B8BE7FFD11D95C78FAB6D1B37E808 + 1D292E65370000001289020080B871F5BFADB2E54BF508E81A1E0388CF3C0A00 + 000024140500007163FBBFD7559E38AE766CDEAC23A06B56B11D605CA617CF53 + D939393A0200003D450100405CD8FEAFADF2E5CB544B4BB38E80AED9B4768DAA + ADA9D11162911D476696CCD7110000E8290A0000E2C2F67F6D95F3FC3F7AA0B1 + B141AD59B95C47E808BB0100009038140000C485EDFFDA2A5B4E01003DC36300 + F129295D12D981040000F41C0500009D62FBBFB60EEEDB1769404FB010607C06 + 1616A9B19326EB080000F4040500009D62FBBFB6B8FA8F4438B067B73AB49F42 + 523C4A4A790C00008044A00000A0535CFD6F8BE7FF91082D2D2D3C0610A792C5 + 6C0708004022500000D029B6FF6BAB7CC5323D027A86C700E23369EA743560E0 + 201D010080EEA20000A0436CFFD7D6F64D1B55E5F1E33A027A66CD8A65AAB999 + ED24E341211200809EA30000A0436CFFD756D9F2A57A04F45CD5C9936AF3BA35 + 3A424758070000809EA30000A0436CFFD75619CFFF23C1780C203EB3E72F5419 + 1914230100E8090A00006262FBBFB61A1B1BD486B2D53A021263F56B1400E291 + 9B97A7A6CE9EA3230000D01D140000C4C4F67F6D6D282F537575B53A021263CB + 8675914701D03976030000A0672800008889ABFF6D95F3FC3F92A0A9A989DFAD + 38B10E0000003D430100404CACBADD16CFFF23595807203EC3468E8ADC990400 + 00BA87020080A8D8FEAFADEAAA936ADBC60D3A02128B0240FC4A167317000000 + DD45010040546CFFD7D69A15CB23B76A03C97068FF3EB56FF72E1DA123140000 + 00E83E0A0000A22A5EC8EDFFB6329ED146927117407CA6CE9AA3F2F2FBEA0800 + 007405050000ED44B6FF5BC46ADBB6729EFF4792AD7EED553D4247D2D3D3D5EC + F90B75040000BA8202008076D8FEAFAD23870E727B36926ECDCAE5AAA9B15147 + E808DB010200D03D140000B4C3F67F6D952D5BAA5A5A5A740424476D4D8DDAB0 + A64C47E848F1A225AA4F1FFE0903004057F15F4F00EDB0FD5F5B65CBB9FD1FA9 + C13A00F1E93760809A38759A8E000040BC2800006883EDFFDA2B5FB14C8F80E4 + 621D80F89594B21B0000005D450100401B6CFFD7D6EEEDDBD4B1C387750424D7 + B64D9B54E589E33A4247D80E100080AEA30000A00DB6FF6BAB8CD5FF91422D2D + CDAA6C29BF73F1183B71922A1C3244470000201E140000B462FBBFF6CA962FD5 + 232035562DE5318078C962800000207E140000B462FBBFB69A9B9BD5BA552B74 + 04A4067700C4AFA494020000005D410100402BB6FF6B6BD3DA7255535DAD2320 + 358E541C8AAC3D81CECD2C99AFB2B2B3750400003A430100402BB6FF6BAB6C19 + B7FFA377AC623780B848F23F636E898E000040672800008860FBBFF6CA97732B + 367AC7EAA5FFD3237486DD000000881F050000116CFFD7565D6D8DDABC6E9D8E + 80D45ABF7A956A6868D0113A52527A7A6401530000D0390A000022D8FEAFADB5 + AB56AAC6461230F48EBABA5AB57EF54A1DA123B215E0E8F113740400003A4201 + 0000DBFF4551B68CDBFFD1BB56BDC66300F16237000000E243010000DBFF4551 + BE9C0500D1BB5807207EAC030000407C28000060FB3F9713C78EAA5DDBB6EA08 + E81DBBB66D51C78E1CD6113A3279FA4CD56FC0001D0100805828000060FB3F17 + B9FDBFA5A5454740EF90DF41EE02884FE43126D6310100A0531400809063FBBF + F6CA9671FB3FBC810240FC6437000000D0310A0040C8B1FD5F7B3CFF0FAF58BD + 94C528E33567E122959E91A1230000100D050020E4D8FEAFAD7DBB77A98A8307 + 7404F42E598F62FBA68D3A4247F2F2FBAA293366E9080000444301000831B6FF + 6B8FABFFF01A1E03885FC962FEFF0C00808E500000428CEDFFDA930500012F59 + F5DAAB7A84CEB00E0000001DA300008418DBFFB525ABAEAF59B95C4780376C5C + 53A6EAEA6A75848E8C1833560D1D3152470000C08D020010626CFFD7D6D68DEB + 555565A58E006F686868506B57AED0113A535CCA63000000C44201000829B6FF + 6B8FEDFFE055AC0310BF798B790C0000805828000021C5F67FEDF1FC3FBC8A75 + 00E2377D4EB1CACDCBD3110000B0510000428AEDFFDA6AA8AF8F3C6B0D78D1BE + 5D3BD5E1830775848EA46764A899250B740400006C140080103AB5FD1F0B00DA + D697AD8A1401002F92052A790C207E6C0708004074140080103AB5FDDF081D41 + 70FB3FBC8EC700E25752BA44A5A5F14F1C0000DCF8AF2310426CFFD75EF97216 + 0084B7C9EFA8DC0980CE0D1838488D3FED341D01000083020010426CFFD7D6C9 + CA136AFBE64D3A02BC497E4FB76C58A72374A6A494DD00000070A30000840CDB + FFB5B766F932D5DCDCAC23C0BB56F31840DC4AD80E1000807628000021C3F67F + ED9571FB3F7C828500E337E1B429AAA0B050470000405000004286EDFFDA6301 + 40F8C5A6756B554D75B58ED09962763B0100A00D0A004088B0FD5F7B87F6EF53 + 07F7EDD511E06D4D8D8D2C58D905AC030000405B1400801061FBBFF6CA96B1B2 + 3AFC85C700E2377BFE021E790200C04201000811B6FF6BAF6C39B7FFC35F2800 + C42F3B2797454F0100B05000004284EDFFDA5BB362991E01FE7060EF9E48437C + D80D000080D75100004282EDFFDADBB165B33A71EC988E00FFE02E80F8C93A00 + B2FE090000A000008406DBFFB5C7EAFFF02B0A00F11B327CB81A3166AC8E0000 + 08370A004048B0FD5F7B65ACA60E9F2A5FBE4C353737EB089D29295DA2470000 + 841B05002004D8FEAF3DD94E6DFDEA953A02FCA5A6BA4A6D5C53AE2374867500 + 00003885020010026CFFD7DE863565AAAEB6564780FFF01840FCA6CC9CADF2FB + F5D3110000E14501000801B6FF6BAF7C19B7FFC3DF56BFF6AA1EA1337DFAF451 + 73162CD2110000E14501000801B6FF6BAF6C390B00C2DFB66E5CAFAA2A2B7584 + CEC86E000000841D050020E0D8FEAF3D797E7AEB86F53A02FC491601A490153F + 2984CA9D0000008419FF2504028EEDFFDA5BBB72856A6A6AD211E05FAC0310BF + BEFDFAABC9D367EA08008070A20000041CDBFFB557B68CABA60886D5AF5100E8 + 8A92C56C07080008370A004080B1FD5F7465CB590010C15071F080DABB73878E + D019D6010000841D050020C0D8FEAFBDA3872B489810283C0610BFD1E327A8A2 + A1C374040040F8500000028CEDFFDA93DBFF5B5A5A7404F8DF2AB603EC929252 + 1E0300008417050020C0D8FEAFBDB265DCFE8F6059BB6A856A6A6CD4113A53B2 + 98C7000000E14501000828B6FF8BAE9CE7FF113075B5B56A7DF96A1DA133338A + E7A9EC9C1C1D0100102E1400808062FBBFF676EFD81E590300081A1E03889FFC + FFE2CCE2793A0200205C28000001C5F67FED95B3FD1F028A8500BB86C7000000 + 614501000820B6FF8B8EEDFF10543B366F56278E1DD3113A535CBA24F2FF9300 + 00840D05002080D8FEAFBDE6E666B56ED54A1D01C1D2D2D2CC5D005D30A868B0 + 1A3B71928E0000080F0A004000B1FD5F7B9BD7AF55D555277504040F0580AE29 + 29E531000040F85000000288EDFFDAE3F97F04DDEA651400BA82750000006144 + 01000818B6FF8BAE6C19CFFF23D88E1D3EAC766EDDAC237466E2D469AA7FC140 + 1D0100100E1400808061FBBFF6EAEA6AD5A6B56B740404178F01C44F16012CE6 + 6E290040C85000000286EDFFDA93C5FF1A1B1B740404D7AAD728007405EB0000 + 00C286020010206CFF175D19CFFF2324D697AD520DF5F53A4267662F58A83232 + B8630A00101E1400800061FBBFE8CA97F3FC3FC24192FFB5AB56E8089DC9CDCB + 575366CDD6110000C14701000810B6FF6BEFC4B1636AE7D6AD3A02828F7500BA + 661EBB0100004284020010206CFFD79E5CFD6F6969D611107CAB5E7B558F108F + 92D2257A040040F05100000282EDFFA22B5BCEF3FF08973D3BB6ABA3872B7484 + CE0C1B353AF2F8140000614001000808B6FF8BAE6C19CFFF235C5A5A5AD46A76 + 03E89262EE020000840405002020D8FEAFBDFD7B76AB8A03FB750484C7AAA53C + 06D015AC030000080B0A004000B0FD5F7465ACFE8F9092AD2FE54E00C467EAEC + B9911D010000083A0A004000B0FD5F74E54E12048451E5F1E36ADBA68D3A4267 + D2D3D3D5EC050B75040040705100000280EDFFDA93AB9F6B562CD711103E6C07 + D83525A53C060000083E0A004000B0FD5F7B72F5F364E5091D01E1B39AED00BB + A478D1629596C63F8B0000C1C67FE98000183D7E821EC1E0F67F84DDC635E5AA + AEB64647E84CFF820235FEB4D374040040305100007C4E1600EC3760808E60AC + E2F667845C6363038FC174D1D01123F508008060A20000F85C5676B6CAC8C8D4 + 1144D5C9936A7DD92A1D01E1F5D2B3CFE811E231B0B0488F000008260A0080CF + D5D7D5A9E3478FE808E2A5679E544D8D8D3A02C2EBD5E79F5315070FE8089D39 + 7CE8A01EF94F6D4D0DFFBFD78993C78FEB110084170500C0E764B5FB652FBFA4 + 23ECDCBA593DF0F39FE8080837790CE0EB9FBD591D3D5CA167108B6C9DB86ED5 + 4A1DF94F4B4BB3AF0B18A940310C00944AD37D57C8D798AF935E8A08A64F775A + 86EEE59EE42CAB653B2DC769B9569F7BCF5F0EDE5F5434B83B9F2325AE3DEFCC + C87F54012F933DAC2F7FFB3BD4EC058B54D19061A15A13A0A9A9511D3B7C3892 + E0BCFCDC33EAC5A79F540D0D0DFA550022372F5F9D79E1456AE11967A9418387 + A882418358F15E3B5A7148EDD8BA45FDE537F7AABD3B77E8597F7AC7FB3FACDE + 74EDBB74049BDC29F7C9EBAE5135D5557A0640105D70F915EAC69B6FD191F754 + 541C6A79FF5543AE7386B24AAFB45AABAF735ABDD5E41FB44D4E93DBBBA497A4 + B4C5EA85F4661C97EE24DEF235E6EB4CE26F7A0A00000000BD400A3DB7DC7997 + 9A3EA758CF40C896B03FBDEB4EB5ECE517F50C80A0A200D0B9EE24DEF235E6EB + 4CE26F7A0A00000000BD447686993EB7448D1E375E150E19AAD233E49F64E174 + E2D831557160BF5AF1EA2BAAAAB252CF0208320A009DEB4EE22D5F63BECE24FE + A6A700000000000048390A009D93A41D0000000000041C050000000000004280 + 0200000000000021400100000000008010A00000000000004008500000000000 + 0020042800000000000010021400000000000008010A00000000000084000500 + 000000000042800200000000000021400100000000008010A000000000000040 + 085000000000000020042800000000000010021400000000000008010A000000 + 00000084000500000000000042800200000000000021400100000000008010A0 + 0000000000004008500000000000002004280000000000001002140000000000 + 0008010A00000000000084000500000000000042800200000000000021400100 + 000000008010A000000000000040085000000000000020042800000000000010 + 021400000000000008010A000000000000840005000000000000428002000000 + 00000021400100000000008010A0000000000000400850000000000000200428 + 00000000000010021400000000000008010A0000000000008400050000000000 + 0042800200000000000021400100000000008010A00000000000004008500000 + 0000000020042800000000000010021400000000000008010A00000000000084 + 000500000000000042800200000000000021400100000000008010A000000000 + 000040085000000000000020042800000000000010021400000000000008010A + 0000000000008400050000000000004280020000000000002140010000000000 + 8010A00000000000004008500000000000002004280000000000001002140000 + 0000000008010A00000000000084000500000000000042800200000000000021 + 400100000000008010A000000000000040085000000000000020042800000000 + 000010021400000000000008010A000000000000840005000000000000428002 + 00000000000021400100000000008010A0000000000000400850000000000000 + 20042800000000000010021400000000000008010A0000000000008400050000 + 0000000042800200000000000021400100000000008010A00000000000004008 + 5000000000000020042800000000000010021400000000000008010A00000000 + 00008400050000000000004280020000000000C0FFD2D2F400B15000E8445656 + 961E0100000000BC2A2737578F100B05804EE4E4E5E91100000000C0AB7272C9 + DD3A4301A013549100000000C0FBC8DD3A4701A013B9DC0100000000009E4701 + A07314003AC16D2400000000E07DD93914003A4301A013DC010000000000DEC7 + 1D009DA300D00916010400000000EFA300D0390A009DE00E0000000000F03E1E + 01E81C05804EB0060000000000781F7700748E024027B8030000000000BC8F02 + 40E77AA300D06235CFA3000000000000DEE7A3BBB77B2D274E4501C017897E2C + 3C020000000000DE979D93A347BE95F4DC39957700443B18CF1707B803000000 + 0000BC2D2DAD8FCACCCAD291A7F56A5E9C8C0280FDE13D9FE07726272F5F8F00 + 000000005E24CFFFA7A5A5E9C8D7929A4FB3086027F2F22900000000008097E5 + F7EBA747E848B20B0052B130CD6853C5C8686E6ED2434F1A326C841E01000000 + 00BC68F8A8D17AE45D03B39B1BF5D070E7C9EEDC39E1527D0740FB83C9EF5BAB + 479E346870511016930000000080C0F24301A03EAB5FB4DC37A909BF9B071E01 + A8F17401401693183E7A8C8E00000000005EE3870240536DDCB96FD28A028928 + 00F4ECC3353479BA00204650000000000000CFF2C345DBE69EE7BE3D2E0C24EB + 0E00F960F68733E3761FB8A9A691020000000000A0DB7CF108405343B4DCD7CE + 95A3E5D00995A80240573E9C39B0486B68A9F3410160AC1E0100000000BC243D + 2343150D1DA623EF6A68AA96DCB74D3EECB47875E5BD3125730D00F74145FDC0 + 75F5B5DC010000000000E896A12346AAF4F4741D7957637DD43B00849D2BDB39 + 74C225BA0010EB839A83B05F8FC4F535DE2F000C1FEDFDDB4900000000208CFC + 70FBBFA8AF8BE4BE51F362DDA28935DF2DDD290074F601E2F980ADEF6968F6F6 + 2E00223B27570D1A3C44470000000000AF183ECA1F776CEB0280D1A5BC398678 + FE8C3692F908402CF2215B5B7D6D5D8D4C7ADDC831AC0300000000005EE3973B + B6EB1A7AB406404274B700603E68471FD8FD5AD4AFA9AFABF2FC1D00C20FDB4A + 0000000040D8F8E61180DA4801C0162BAF76C7B6585F139754DC01201F2CE687 + ACADA9F4450180850001000000C07B46F8E41180BA9AAA6877BFDBB972BB7C39 + D192B10860471FDC7E2D32AEA9A6000000000000E8BA9CDC5C3560D0201D795B + D5A9DCB75D4E7C6AD88E792DD6EBDD92EC3B00EC0F6D7F78D3ABDA9A93BE5803 + 60046B000000000080A7C802806969693AF2B6EAEA63F6C56F3B3776B7A44964 + 01C0FEA0661CEBC39B036BA93E79DC170580C2C14354FF82021D01000000007A + DBE41933F5C8FB6A4E9E90DCB759379313BB9939FBB568EFEB964414003AFB30 + F2BA69C28E5B4E561EF5450140AA4A33E696E80800000000D0DBFC94A3B9725F + 931F0B3B47EE4867AF772A197700B87BB736F3C78F1DF2C51A006266C97C3D02 + 00000000F4B6E9738AF5C8FB4E9CA8705FFCEE2C67EE2CB7EEB254AC0160C8D8 + 3411191F3AB8F3E4A9D0FB6614CFD32300000000406F1A3361A2EA3760808EBC + AF62FFF62AA76B9713EB66D8E3844B7401A0B30F6B5E3707D9B271FDABC74F36 + 1EAE8BCC7ADCD0112355E190213A0200000000F496E97EBAFDDFC979376E5C7A + DC19B6E6C2326FF5B174F67A9724AA00E0FE50EE0372B7D7173D686E6E6EAA6C + DAEF8C3D4FD60198C95D0000000000D0EBFCF4FC7FE389C6FD92FB3AC3F639F1 + EBB13461E66CEEB85B92B106809BF9F0E6753B8ECC1D3B7AE080F47EC0630000 + 000000D0BBE4E2ECB4397375E47DC78F1C3417BDDBE5C3562FECB1116DAE5B92 + B9068039A068CDD672A462EF3E3DF6BC1973290000000000406F1A3B7192EADB + AFBF8EBCAFE2F06E2900B4CB853B6849D1930240AC0F65CFBBDF6362E9CD2D0E + CDFBF66EF64D0140D60018366AB48E0000000000A9E6A7E7FFC5FEBD9BF73A5D + 6B0EEC343B378E25D66B1D7D4D8712710740B46FEE9E93D86E72C0ADB66C58EE + 8B35000CD6010000000080DEE3B747B3B76E5CE1CE794D11C06E36772CA2CD75 + 49AA1F0110A66FAD7EAC5EFAA454437C83750000000000A077A4A5F551D366CF + D1913FAC5EFA94DCF5DE9A03CB9CC3CE91DD2D29125500301F30DA07B6E7E440 + ED38D22A2AF6D4D6D49C3CEA8C7D61C6DC623D0200000000A4D2F8D34E5379F9 + 7D75E47D35D5954725E77586ED7261A7B9736461C7F65C8FA5EA0E00C33DD71A + 1F3DBEDF373B01F42F18A8C64C98A8230000000040AA4C9FE3AFE7FF4F1C8DEC + 001033178E44A7D873F67CC224BA0010EB03DBB119DBB73FB454BEBE2D822FF0 + 180000000000A4DECC127FE562475F2F00B4C9817513EEB161CF274432EF0010 + F641D8CD7DD02D87F6EDF4CD4E0062E19967EB1100000000201564EB3FBF1500 + 0E1ED8E1BE03A05D3EEC6A49D3DD0240B40F15EDC39A39D362553A9AF7ECDAE0 + AB02C0D459B3D5E061C375040000000048B6C56F3857656464EAC81FF6EE5C6F + B6008C9A0B5BE36862BD16EBFD1DEAC91D00F607717FF38E5E3307D8A6E2B17E + CDCBBE2A00C8CA93675E70918E0000000000C976E685FECBC1D695BF24B96E6B + EEEB343B27B6C99CE9CDD8E8E8B5B8A5E211007713662C071C69AB973F77A8A9 + F2408333F68DB32E78A31E01000000009269E888916AF2F4993AF287A6CAFD0D + E52B9FAF7086ADB9AFD3A2E5C6764B9A641400A27D78E9DD076C1F784B737343 + 735563CB4167EC1BC3468D56A7F9EC171000000000FCE8CC0BDEA8D2D2D274E4 + 0F954D690724D77586ADB9AFD3EC9CD8348985FD3E339730892C00B83F5CAC0F + 2E63FB04B41EF4F113877DB5138038F38D17EB11000000002059CE38EF423DF2 + 8FE3C722396E6BCEEB343B0F96DE30F3A6D9DC71B725F30E00C38CA31DB01DB7 + 1CDCBF73B7D3FB8A1F17A100000000003F993C7D46E40E6CBFA938B0638FD3B5 + E6BC4E8B95170B890DF37A4225BA0010ED039A0F6E5AB4036E9256B6FCB9754E + EF2BB20DC5BC25A7EB080000000090687E5D80BD6CD9B36B9D2E92EF3ACD9D07 + DBB1696ED1E6BA2D110500F7078AE7434B6C12FFD683FED763BFDC2C8B243863 + 5F61370000000000488EF48C0CB5F89CF374E41F92DB3EFDCF7BB638C348BEEB + 34770E6C33B179AF88F59E6E4BF41A00F60795836A4DEEE3986B3E79F2487DC5 + 89AACDCED857E62E2A55FDFA0FD0110000000020518A172DF665BE25B96D75F5 + F17A67D89AF33A2D5A2E6CCFD94DD8E31E4BC61A006EEE0F2ECD7D025AE31D5B + D7AC777A5F913500969C7BBE8E00000000008972E6F9FEDC7E7DDBF63279C43D + 66EEAB63D384E99326590500FB40A4D907E73E5013474EC2F2654FCA3312BE73 + 16BB01000000004042E5E5F755258BFDB9E6DAAA579F92DC3692E73AADA35C38 + DA6BD2122E157700087300F681DBCD3C07D1FCEF277EB3B5F1D8B15A67EC2B13 + 4E9BAA468C19AB2300000000404FC9AE6B9959593AF28F0627A77DEEA9FBB639 + C37639AFD5EC1C595AD225A300607F78F7D8F4A6B90FBCB9AEAEBAF1D089439B + 9CB1AFA4A5A5A9F32F7BB38E00000000003D75FE9BAED0237F3974E2E026C96D + 9D61BB9C578F4D13761F6D9C30892E00D81FD07C60BB9903B60FDC1E47E26D5B + 57F96E1D0071DE656F623140000000004880390B4BD5F8C95374E42FDBB7AC32 + CFFFBB73617B6CCFB99B618F7BACA70580783EA0FD1EF39A19CB6D10D2CB41CB + 38725BC4D2FF3EEACB7500B27372D5256F7BBB8E0000000000DD75E53BAFD723 + FFF9DF2B8F9802406B9EEB343B079626CCD89E33EC38D67BBA24996B00D81F4E + 7A73C0D29B26B13919A6353DFFF4EF77D41F3959E58C7DE78D57BE35B2500500 + 000000A07BA6CE9A13697E24B9EC7FFEF5C71DCEB05DAEEBB46839B1E985F466 + 9C70C92A00C4FAC0E6604C33076A9F9896E6E686E603C7776D74C6BE23C9BF14 + 010000000000DDE3E7ABFF078E6FDB2839AD333439AF343BF937F9B069D1C49A + EF91441600DC1FD0C4E6A0DCCD5D0D314DE69BB66E5AEECB7500C4256F7DBBCA + CECED11100000000205EF2DCFFEC058B74E43F5B36AF94DBFF2379ADD362E5BC + D1726469C2F4863BEEB664DC01E0FEE0EE26076CC7E6A4B43941AFBEFC902FD7 + 0110FD060CF0ED6A9500000000D09BAE78E7F5915DD6FCEABF2F4672593BD9B7 + 735E3B1796393B364DD8E38449E61A00C23E08BB9993610ED88E2327E895E7FF + BEA7B6B6EA8433F6A5CBAEBE56656666EA0800000000D0991163C6AA85679EA5 + 23FF911CF6D5171EDAEB0CEDC4DFB468B970B49634A95A04D0B00F4A9A7DF0AE + D6DCB477CF960DCED897061616A9732EB95C470000000080CE5CF18EEB545A5A + B2AF5327CFFE3D5BD63BB96CA33334B9ADBB0820CD9D17DBA2CD254CB2CEACFD + 81CD01D82DDA0970CF356D5BBFD4B78F0188375DF34E959E9EAE230000000040 + 2C83870D57A79F7B818EFC69D3FAD7A26DFF272D561EEC6E863D4E984415003A + FBC0F6EBA609333627462A25AD27EAA13F7F775953D30119FB52D1D061EACC0B + 2ED211000000002096C805D48C0C1DF98FE4AE0FFEF93B4B9DA19DE49B5C57FA + 68B9B0DD0CF7D8FD7AB7A5E2DE0AFB034B938337BD7D42EC26734DBB77AE3DB1 + 77E791D5CED8B7DEECF35B580000000020D90A0615AA375C74A98EFC69EFCE83 + ABF7ED5C5FE90C23F9ACD3A2E5B9666CE7C6764BAA6467A6F601D807E43E50FB + 64D827A5E97F2F3DFC8AD3FBD6F051A3D5E273CED51100000000C0EDB2ABAF51 + 9959593AF2A7575F7CF465A76B93CFBA7A770E2C4C6CD8E3844B4601C0FD81CD + 0199660EDC3E317693F9D6F6F73F7C7355FD919355CED8B7DEFEDE0FB0230000 + 000000443164F80875E19BDFAA237F929CF5C13FDE2577AFB7C9679D162BE7B5 + 7363BBD9DC718F25F30E00FB00CCD8DDCCC1BB4F50EBB8BAFA78FD96BDABE439 + 0ADF1A3A62A4BAE29D37E8080000000060BCE7A64FA9ACEC6C1DF9D3E6DDAB5E + 93DCD519B6C967ADB13D172D379626EC71C2F5D6C3E97240D10EDC9C903627EA + F9A7EEF7F563004216B490420000000000E09405679CA58A172DD6917F3DFFF4 + 6F25676DCD61753379AD3BEF35B970CAA5A200600E5298E45E9AB063FB04B569 + 4F3E72CF96C3278E1C74C6BE25CFB3BCF7A64FE90800000000C24DAEFADFF0D1 + 4FE8C8BF8E571C39F0D4A3F76E7586ED7259A7D9B9AE69C21DDB7973D2F4C622 + 80A6C981DA63D3DC27CC69CD8D9BCB5F7CD519FBDA9C85A56AD1D9E7E8080000 + 0000C2EB2DEF7A7764EB74BFDBB04172D5667B4B7B6926B7B573DD68B9B06986 + 3D4EB84417003A3A00F781486C9F0C77B34F5EE3637FFF91ACA8E87B377CE426 + 959D93A32300000000081FD92DEDD2ABAFD591BF3DF2D7BBE5F6FF680580582D + 5A6E6CF742C6A6254CB2170134EC0F6F1FB41D4BB34F589BB67AD933070F1DD8 + BEC919FBDAA0C143D455EFBE514700000000103EEFFDC4A703B153DAC1FDDB37 + 95AF7C4E1E578F9AC7EA66E7BCB1F26269863D4EA854AF0160C6D2EC0396DE3E + 31EE1316692B963EFD5FA7F7BD8BDF72B51A356EBC8E00000000203C4ACF3E57 + CD9AB74047FEB66AE933D116FF33CDCE6FA577E7C1A6097B9C34A9280074440E + D03E787372CC0932E348FBFB0377BDD65479A0C119FB5A7A46867ADFCDB7E808 + 00000000C2411E87BEFE231FD791BF496EFA97DFDD295BD6B7C95B9DE6CE6BED + 7C57FA5E93CA0280396821076E9F0873624C3327CB6E8D07F66D39B9F3D0C1D5 + CED8F7A6CE9AA3CE7EE3C53A0200000080E07BDB0D37461E8B0E825D87F6AF3A + 74607BA533743FFF6F9A3BC735F9AF9913662E25525500B00FC81CA03473E066 + 6C9F28339693D97A425FFDCF8381580C50BCF3831F55F97DFBEA080000000082 + 6BD4D871EA92B75EAD23FFFBEFF30F9ADBFF4DCE6A1702DCF9AD3BFF35CDB0C7 + 4993AC0240470764F7A69913619AFB84498B9CD0BFFFE1AEB29ADA6AA9B2F85E + FF8281EA9AF77D484700000000105CEFFDC467228F4307414D6D55E5DFFFF4ED + 326768E7ACA6D939ADDDEC1C58B87BE17E4F42A56A1140C33E18D3CC89B07B69 + F6096CADA434D455D76F287B393077019C7FF99BD59C058B740400000000C173 + E955D7A8E9738B75E47F1BCB5F7A49725367D82E67D5CDE4B5D1725E7733EC71 + 52F4D61A00666C9A3939F689B24F9E699193FABB7B3EF7741016031469697DD4 + 476FFD921A5858A467000000002038264D9DAEAE7D7F70EE7C6EAADCDF70DFCF + 3EFFB40C9DE64EFC4D8B96E3BAF360618F932E95058068E440ED13614E90DDDC + 27B471CBA6E547366CDBF092330E84FE0505EA135FBA23520C0000000080A0C8 + CBEFAB6EBAFD0E9591E1FF3DFF8D755B36BDB86DCB8AA3CED0E4AAEEDE6EEE7C + 57FA5ED31B19A73978FB04486F8FDD27CC8EA5353E70CFED4F34371F947120C8 + AE006F7FEFFB750400000000FEF7A1CFDEA6860C1FAE23FF931CF4815FDEFAA4 + 339464DFB4488EEAB468B96CB47C577AD3522AD50500FB20EDDE347392EC664E + 5E9B13BCB6FC85439B376C7BD51907C69BDFF12E357BFE421D01000000807FBD + F18AB7AA85679EADA360D8B47EDB7FD797BF74C819BAF3541347CB67ED9C57D8 + BD19A744B20B00E680DC0765CF9B2627C7F4F6C93227D5DD37FEF1BE3B1EAFA8 + 38245F1308F208C0C76E633D0000000000FE367EF214F5AE0F7F5C47C120B9E7 + 9F7EF3E5279CA13BE977373BA7B5735D77B3C59A4FA854DE01600EC43E283336 + CD3E41EE93D826F997B6E2D5C7F61D3BBA6799330E0CD91AF0A6DBBFC27A0000 + 0000007C29372F2FB2C6596666709EFB17C78EEE5EB6E2B527F739C3D69CD469 + EEBCD5B48E927FE11EA7446F6699D10E5E9A9C20BB9913689FE4D613FDF707BE + F698D307CAB4D973D5D5EF799F8E00000000C03F3EF0E9CFAB612347E92838FE + 7AFF9D927B76989F3ACD9DCFDAB9AEB0C729D75B0500FB80CD09709F287302DD + CD9CDCC8897EE5F9BFEDDABE7DED2A671C2857BCF33A356BDE021D0100000080 + F79D7FF9156AF139E7E92838B66F5BB3EAD5FFFC6D9733B4137E3BF177B7FFDF + DE9DC047559FFB1F3F644F20EC847D31EC20288B8808140545ADD75AEBBD6DED + 76FFF6DE6B6B37B57AABD6AAD5D656ADD52E5AB15ABBA8AD7AB56AB15297BA22 + 020AC8BEEF0448C80284100221FFF38CF3A40F3FCF994C809099C9E7FD7A3DAF + DFEFF79C934026832FBFBF7366C6CDB76EF0B7F313E6446F0004FDC0F681D0B9 + 3E40EE837844F8F7EBA08C7FFBCBDD2FF9634A9197007CEBFBB778ED3B758A76 + 000000002071F5291CE07DF9CA6F4757A9E56F4FFE4C32677D068D96CDA8B66C + A69512EE5CD979936B8E3B00DC1F564B1F20DD21D1721F4C7DB0EB1FF07FFEE3 + F7EBB76F5BBBC29FA794C8FB017C9FF7030000000090D8B27372BCAB6EB9DDCB + CACE8E7652C796AD6B5648E6F4A736F4DB4C6ACBCDB336EB6A293B3F21D2A3E3 + 89D2CA1985EDD912927CA564AD732DF9BBD7F7EBEA5AED1973FAF967F8F394D2 + A55B772FBF5D3B6FD1DC39D10E00000000240EB96079F5AD3FF2069F3C22DA49 + 2D4F3DFAC33FAE59396F873F3DE0578D5F7217808EB6741340360682360284BB + 09204ED84640736F00C8E896905182BD8E5AB296BFB3EDC93A7DCDCAB91593A7 + 7D65587EDB0E1DFD754A19306498575B5BEBAD5C9C726F750000000020C95D71 + EDF5DE84B3A74557A965E7F68D6BEFFDF1652FF8D3B0E02F6BF76E0009FC3A6A + E0D7907FC2C27E9044B80340C8DA1EB3A5C1DF867EAD23360372735B578E1C33 + F5747F9E72869F3ADA2B2F2DF136AC591DED0000000040F3FADC57AFF0CEFFCC + BF4757A9E7AF7FB9F3F1154BDED9E64F25E8DB4D00BB1110F47200F7EABF94CE + 9B8D04E744617744EC836577506CE9835C5FCF3CF1D3A565A5DB37FBF394D3AA + 552BEFAB575DE79D367172B40300000000CDE7BC4F5FEA7DEAB22F4557A9A76C + E7964DCF3E71D7527FAA99332CEC4BD9ECAA65336E4238D177005872555FE9DC + 8EB6F42ABFBBB6E5F7EBD2D2D3D22B4E197BCE787F9D72D2D2D2BCB11326792B + 162FF27615EF8C7601000000E0C43A63CAD9DE15D75D9FD26F58FEF4E377FC61 + E5D2C8D57F79EDBF5EEDB773DD1008DA0CB09B00B694BB3E219A6B034042BC1D + 85EDE93C1AEC8F2827F4477E061DD3562E9D5D367EE2A77AB5EFD8BDBBBF4E39 + E91919DE69933E117953C0DDE5E5D12E000000009C18C3478DF1AEFEE11D5E7A + 7A46B4937A36AC5BF4C12FEEF8F2DFFDA9DEEAAFC15FD67A37806E00D8BB0224 + F4CBE8867E1BF64F78F05789B45D631F20DD29B13B275AF260DA07581FF4FA5F + C06FEEFDC6D395874AE51794925AB769E3DD70E7CF239F100000000000274ABF + 8183BC6B6FFF8997999919EDA49ECA83A5071EFCD9D79EF6A747E4CCE8E8E6D1 + A0CC6A33AD564248940D00FBA0D8D13E88F2E0DAD207DD96F40FAE5E3EA764C1 + EB2FBFE8CF5356874E9DBD1BEFBA37F2118100000000D0D40ABAF7F06EF8E93D + 5E6E5EEB6827352D78E31F2FAE5E3977973FD5E01F546E3EB5D93528DBEABC59 + 35D706803E00EE8360FBFAC0E95CCB3EC8FAC0EB2FA1FE17F4AB7BBEFA6A7979 + D1767F9EB2BAF7EAED5DEFFF03CCCEC9897600000000E0F86BDBBE43E40264BB + D4FBD4F52354ECDA5EF4AB7BFEEB557FEA664CBB196033A9CDAA415956CA0AEB + 9F10CDF92680425EBB6F47617B3AD7D7FB4BB9732D59EBFB01A41DAE3DD4AAE6 + C081E231E32F38C35FA7AC8E9DBB7803860CF3DE7DFD55AFEEB03CCF00000000 + E0F8C9C9CDF56EBAE7175EEF7E85D14EEAFAC343D7FF76F5B2397221D97ED49F + 7DFDBF8CBA19602F4A4B1893D10DF8EEBC5925DA06808EC2F66CD90D005D0755 + ABB52BE7EF1E75FA05059DBBF4ECE5AF5356D71E3DBD5E7DFA79F367BFC52600 + 00000080E346C2FF753FBECB1B347C44B493BA56AD9837F7C19F5F2157FF6DE0 + B71B0132EA5D00F1DC09D0EC81DF9588770008DB77E7B622413F3AD6077FBB5E + BB62FEE6B1E77D7E625E464EEABE4B85AF57BF93BC8143877BF3DE7ED3AB3D24 + CF4500000000387AF27E6337DDFD0B6FF0C9A91FFE771DD8BDFF9EEF7FFA81DD + E5C595FE3228F8DB2BFF611B006EF04FB84D80E6DE00B024B8DB51D89E967083 + BECEDD5E7A45F9CE437DBAF73F543870F4707F9DD2E44E809163C779F3DF79D3 + AB3990B21F8200000000A08975EEDACDBBE5DEFBBD3E85FDA39DD4367BD6E3CF + BEFAF78757F85309FBEE1D0061E15F467BE53FD6D5FF84D80C48940D000DF63A + 0ADB73E71AF0756EC3FFC77A0BE7BD5C34E582CB47B6CECB4FF9B7CC97F70418 + 7BE624EF8339B3BDAA7DB2790500000000F1EB7D52A11FFE7FDD623E76BC6CD7 + E6CD3FBCEEFC270E1FAE95E01F6FF8B757FE8382BF3B4F0889BA01A0A3707B12 + EC85ACA534E8EBBC3EF86BF9BFC856FBF6966D1F3074D284BCBC3C3996D2E456 + 9D33CE9AEA2DF960BEB7BBBC3CDA0500000080D8069F3CD2FBFEDDF745DEF5BF + 25282D2DAD7BFCB7D73FB47ECD82627FA9A1DF0DFFB6EC2680047F1925E0C7BA + FA9F3024202722FBA0E903A93B2B769745E6762746EB63BFA8D767FD7EDDCEA2 + 95B3FD798BD0A15367EF96FB1EF0868C1819ED0000000040B8D1679CE9DD78F7 + BD5EEBFCFC6827F5EDDCB66CF6EB2FFF719D3FFD5886F4CBCD99923FDD3CAA73 + CDACC2E6D9849248EF01A0EC157ABDB22F746E4BD8B57BF5DFCED3962F797BD3 + C4E9974FC8C9CACAF2D7294F7ECC09679FE36DDEB0CEDBBE6573B40B00000000 + 47FAC4F4F3BD6FDD788B97D932A25244C5BE7D9577DCF8C9072BF794EDF397EE + 957FF72E00BB111014FE35F0BBE1DF5D37AB44DB0090C06E474B7AEE711935E8 + DBB2E15FC734FF177BA8A04B8FEA8143C6B598CBE2E91919DEF84F9CED959796 + 781BD7AC8E7601000000E023177DEE0BDEFFFBF6355E5A7A225E1F6E3AAFBD38 + E3C9B75E797C953F0D0AFF1AFC6DF8D73B0082C2BF2D65E709215936006C3F56 + 4582BEB3B6FDB4057367154D3AEBB3856DDB77EEE2AF5B84B4B4346FCC1913BD + C3876BBD958B3F8C7601000000B4745FFCDA37BCCF7CF972AF552B894D2DC7B6 + 4D2B97FFE8868BFECFCFE836FCDB72AFFADB0D000DFF0D5DFD4F38C9BA0120EC + DC867E2D7723205A75698B17BDB17AE2D42F8DCBCECECEF17B2D82FC833E79D4 + 18AF4D7E5BEFC3F973A35D000000002D91DC29FCB5EB6EF4CEFDD425D14ECBB1 + BF6A6FC52DFF3BFD577B2A3EF699FF5A12F6DD3B0024F8CB1814FE6D25B444BE + C74382BBA56B0DF542E761A5C15FE791714F45C9C103FB2BB68D3E7DDCB856AD + 5A4BAFC5183074B83774E429914D8003D5FBA35D000000002D857CC6FF0D77DE + E38D1E3F21DA6939EAEA4A0E3FF2C08D0F2E9CFBD2167F29615F3EF64F83BF06 + 7E3B0FBBFAEF867E37FCDB6309235137003494DB70EEF6ECE8CE834A370022F3 + B52BDF2FEF5B787A5AEFBEC306F9EB16A5A07B0F6FD239D3BD8D6BD778C5DB8B + A25D00000000A96EEC9993BC1B7EFA73AF5BCF5ED14ECB32E7CDBFCFFCE38CEF + BDEB4FDDF06FCB0DFF7AE55F370024D807DD01A0EC3CA124D3068090B53C98B6 + 6FCFD5B95EF9B7A15FEA88FE9CB79EDD38E9ECCFF7CF6FD7A9B3BF6E517272F3 + BC89D3A67BE9E9E9DEF20F17F99D847D8E020000003846F2FFFD5FBAF25BDE97 + AFFC8E97959D1DEDB62CDBB6AC5E79F335539FA8AB3BEC067F5DBBA15FD67AE5 + DF5EFDB79B002269C254326E00D863EE7912EC75B4C7EA43BF1DFD5FBCB764E1 + EBABA74CFED2B8CCDC96F7AF40DE1760E829A3FC3AD55B3C7F9E57BD9F970400 + 000000A92672CBFF4F7FEE9D3EF9AC16F7667F6A7FD9DE3DB7DE30FD57BBCB77 + ECF59736F46BF0970ADA049090AFA3067F2D61E7092F91DF0340853D43B5AFA3 + 867FDB8F55918D803D15C587AA0E5416F51D30765C5E5ECB7A3F0055D0AD7BE4 + 25019BD6ADE52501000000400A69E9B7FC8B5DBB4AEA9EFAD3CD333E983B535F + F7EF6E0068E94680867F7BE55F4609FAEE26801BFE837A0923D137003490BBC1 + 5CD6F2A0060576E9695FAFF64B05CD23E3DA55F32A868C38A355EFBE435BDCFB + 01A89CDC5C6FE2B47323EF06BA7C112F09000000009219B7FCFFCBA2792FFDFD + 0F33AE93D7FD6BE89751AFF8DBE0AFE15F460DFF761340C3BF8CC20DFB091FA2 + 92650340E83C680C2A11D4973A620340C6F7DE7C66E3E4A99F1F90DFB653277F + DD22455E1230F2546FD8A9A3BC0FDF9FCB4B020000008024C42DFFFFB275D39A + 55377FF7ECC7EBEA0E6BD897F0DFD00680DEF26F83BF867F0DF96ED84FF8F02F + 92690340043D7BA5A77D3B17BA6EB0E4FD00962E7A73CD94495F3A2D2337AB45 + 6F9175E9D6DD9B7CEE797C4A000000009064C64C9818F988BF967CCBBFAA2EAB + DC73DBF7CFBBBFA27CFB1E7FA9E15F437FACF02F1516FEDD123A26BC64780F00 + 2121DD8E2AAC2F22C1FEA369FD957EA17DADFABB007657ECAC39505BB5BD4FE1 + 9816FB7E002A3B27D79B74CEB95E7EBBF6DEAAA54BBC4307E5DF030000008044 + D426BFADF79FDFBADAFBC215577AD9D939D16ECB1579DDFF13B7FE76FE9C1736 + F94B1BFEDD4D001BFC656E6FFBD70ABAFA1F14FA137E232055360084CCDDF3B4 + 17B6D6F05F5FAB57CC2D1F3EE2CCF45E7D870CF4D72D9ADC2E3460E8306FCAF4 + 0BBC8AF2526FF3FA75D1230000000012C559175CE85DF7A33BBD212346B6F85B + FED5920F5E99F5E803D7BCE34F8382BFCCF5AABF96BDF2AFA1DF067FF72E80A4 + 946CCF0E0DEA4AD7521AE6655343E632669831335A59D1516EF3B725DB64722C + 2723233BF7BE47167FA7679F412D7E13C05AB66881F7C87D3FF38A36CB261A00 + 000080E6D4A77080F75F575FEB0D1A3E22DA81D8BE6DCDEA6FFFE7885F1E3A74 + 40DED4ACDA2F09FD324AF0B725C15FEF02D04D0009FF3A4AE89731D60680BB4E + 68C9720780D2F0AFA392B53CE8B6EFCEC3D6321EF11281C3876BBD658BDF5A3D + F1EC4B476565B7CE8BF65B3CF9B8C0A9175EE465E7E478AB972DF16A6BE5DF02 + 0000008013493EC1EBB22BAEF4AEB8EE06AF4BD76ED12E44E5DE92D2DBBF77E1 + 03E5A54541AFFBD7B906FEA0D0AFC15F4B72A68CC20DFB4913FC55B26E00081B + E0DDD19D079508EACB6680B7BB7CE7C1F5AB17AD3C7DF2256332335AF69B025A + 6969E9DE9011A77893CE99EE95ECDCC1DD00000000C00974C65953BDFFFDF15D + DEC8B1E3FCFF378F441744EDAFDEB7F7CE1F5CFA8BD52BDEDBE92FED157EB734 + F86B69F0B7E15FC3BE867C37EC275DF817C9BC0120DCB5D05E3CA396F8D87AE7 + F6F5FB4BB66F5C3F62C294B159E979F2320244E5B569E34D386B9A57386888B7 + 7AF952AFAAB2327A04000000C0F1D6AD576FEF3B3FB8CDBBE8735FF472F35A47 + BB50072B2AAAEFFFF9D7EE9F3FE785CDFE5242BE5EEDB77700D82BFF76132028 + FCBB9B005A42C7A4936C1B00CA86764BD6F2CBB07D99079DA73D9DDB1291F9A6 + 0D4BF6D6ECABDE7ACAD8D163D2D2DAB0C5E6E8DEBB8F37EDC24F79ADD2D2BC35 + CB9779870FCBBF1300000000C74366569677E9572EF7BE79E32D5EF75EBDA35D + 58B5B53B6BFFF0BB1F3DF4EADF1F5EED2F8382BFBB011074F55FC3BF96E44A0D + 3736FC5B49B711908A1B0061C7947B8E2DE1F65AAD5931B72C33B36369D79EC3 + 4EC9CBCBD3F310959E91E10D1F353A723B52F9AE126F1B2F0B000000008E89BC + 9BBFFCFFF5776FFB8937F6CC495E7A7AB246B7A6555A5A5AF7D25F7FFBC7671E + BF6391BF6C28F8DB0D0009FD7603C06E04D8C01F16FE93522A3C8B6205720DF1 + C2CE953DA6F43CBDDA1F592F59F8DACE1E7D06EE1F3068F4B08FDA70E5B76D17 + F98FD4F84F9CED55EDABF4B66CD8E07753E6DF0A000000D0E4E475FD93A79FEF + 7DFB07B779E7FCDBC55EEBFCFCE8110479FBF5279E79F4FEAB66FB530DFBB201 + 20213F6C23C0BDFAEF5EF597B27337D004F59246B26F000405F830F69C48A8FF + 685A3F0F2A513F7FFFDDBF6D2D1C382AA3679F21FD658D606DDB77F0C64D9AE2 + 4D9C76AE575373C0DBBC61BD57C74B030000008050191999DED44F5EE47DE7E6 + DBBD29E75DE0E5B76B173D823073DF79FE1FF7FDF80B2FFB531BF6DDE0EF5EF9 + 0FBBEA6FCB867F1BF69336F82B0DB9C9CAFEFDDDB9967EC49F6C76C85C462979 + 533FA94C3366999277FED7512BC7FF163977FCF2CDCF0D1D317182BF461C4A8B + 8BBDBF3DF9B8F7DA8B2F78076BE4DF200000000091959DED4DFBB78BBD0BFFE3 + F35EC7CE5DA25D3464E9876FCEFEC155673FE9E775F97C7FF733FE1BDA0890D0 + 6F370224F4CB2801DFDD005061F3A46243733272FFFE76ADE15FC8A8A51B005A + 7603402B6C032052191959B977CE98FBD5C2C25347FA6BC469777999F7E2D37F + F15E7EFE59AF7AFFFE6817000000687972F3F2BCE9177FC6BBE0D2CF46EEA045 + FCD6AF5BB4F87B5F3BFD9143876A2454D8E0AF6537006CF097D0AF1B00B6ECD5 + 7FA19B00CA0DFC6C00343337F8EB68CB6E02D88D00F72E00DD00B0F5B14D80D6 + F91DDADCF5C0FB57F6E855C8CB011AA972EF1E6FD6B34F7B2F3DF394B78F8F0F + 040000400BD226BFAD1FFAFFC30FFF97F2FAFEA350B475DDBA6BBF36E6FEFDFB + 76EFF39712F2E5EABF067EBB011016FEDD970068D8D7D196D051D87952D2B09C + ECDC9F43D71AFEB582360124F8DBB21B0032D7D06F37037264DEA94B9F76773F + F0DE551D3A77EFE1AFD148FBABF679AF3CFF57EFD599CF7BC5DB8BA25D000000 + 20F574EBD9CB9B7AE1A722B7FBCBD57F34DEAED2EDDBAEFFFAF85F94966CDEED + 2F25E0EBADFFBA01604709FB3A4AE8B7E55EF58F27FC0B779D743428A70AFD79 + ECCFA5E15F4A42BF8EBA0160370164AE7701B87702E826806E0844AADFC0515D + 6EFBD9ACABF3DB1674F4D7380A757575DEEA654BBCB75E9EE5CD79FDB5C82708 + 00000000C9AE759B36DE84B3A67993A69FEF0D1C3A3CF2D17E383A957B4B4A6F + BAFA9C7B37ADFB7097BFD42BFD5A36F86BE9957F2909FC36FCDB0D0009F5EE06 + 80D2B9ED25B5547B06EACFE3FE5CB2D6D24D0009FB7613C06E0448F877EF0608 + DD0418316A6A8FEB6E7DE29B6C021C3B7993C00FE6BC13D90C5834778E77984F + 0F000000401291CFEB3FF5F433BCC9E79EEF8D1E3FC1CBCC92F88063B1774F71 + D9DDB75EF6EB250B5F93DB86E30DFF12F6EDD57F0DFE1AFE6594601F16FE85AE + DD7ED2728372AAD0B06FD9F0AFE56E02E85D001AFE83EE04703700226BB913E0 + E6DB675ED9A16B8FEEFE1AC7C19E8A726FF66BAF44360336AC5915ED02000000 + 89A770F09048E8972BFE6DDBB78F7671ACCA776D2FBAEDC64FFE66E39A8525FE + D2067EBB01E0867F2D0DFEEE957F0DFF5ABA0960E9B194E286E454A13F97FBF3 + B91B00B276EF02D0D2BB0024E0BB1B01F5C1DFCEBB74EDD7FEF6BB5EFB9FAE7D + 0A0BFD358EA32D1BD67B6FBF32CBAF7F78E5A572D70F000000D0BCE463FB269D + 739E37E9DCF3BC5E7DFB45BB385E8AB6AE5F77EBB5537F5BB2736385BF74C3BF + CEDDE02F73BDFAAFA1DF96847DF7AABFAC2D0DFE6C002409FB73B9735BBA2110 + B409E0BE14206813C06E00447AF2E900B7FDEC8DFF2C1C34F2647F8DE34C5E12 + B06CE107DEDCB7DEF096FAE38EAD5BA24700000080A6D7BD576FEFE45163BC71 + 93A778C3FD312D4DA2048EB78D6B172EB9E99AA97FD8B7B75CDE20CC067DDD00 + 8815FEB582C2BF067E0DFF5A2A6C9E1224FCA622F7E7B26B99DBD2BB00B4EC06 + 802D7713A0FECABF3B666464E5FEF0EE573E3BECD4C9E3FD359A506971B1B76C + D107914D81250B3EF0CA4A8AA3470000008063D7A9A0C03B79F4D848E81F7EEA + 68AF639782E8113495A58BDF9EF3C3EF4E7BF2D0A19A58EFF2AFA3867F29BDF2 + EF867FBDEAAF65837FACC0EFAE939E0DC6A9C8FE7CEE5C4B42BF8EF16E0248D0 + 77CBB91B202DE7FADB9FB9F0F489179FE3AF7102C8A709EC2CDA16D90C90BB03 + 64DC5321770B01000000F191D7EFCB957D09FC12FC0BBAF7E0DDFB4FA079B39F + 7FF927375DF2A29FD3F5F3FD35EC6BE077AB31E15F02BDBB01A0C2E62925D59F + C9EECF67D71AFA856E0248E8D7517A12FADD8D00DD0008DA08703601BCAC6F5C + FBF059A3C65FFCE94E9D3AB97F173431D910D8BA7183B774C1FB910D81E58B16 + 7AFBABF6458F020000009E97D7BA8D37ECD4511F5DE1F7AB57BF9308FCCDA0B4 + B4B46EC1EC67FEFAC0BD57BCEE2F6DC00F0BFF12F67594D06F4B83BF8C12E675 + 949ED04D00E5067E3600929CFD39DDF9F1D80490B1FE2500CE9875D957EF38ED + 92CF5FFE85F4F4AEF27DD04C6A6B6BBD9DDBB67A455B36476ABB5FDB366F8A8C + 7BF7EC8E9E050000805494DFB69DD7A34F5FAF47EF3E5E77BF6494EADAB357E4 + A3FBD07C6A6B77D63EF397871FFBF3C337BDEF2F35E06BE8B7A30DFD3A1ECFF0 + 9FB2C15FD9309CCADC9FD3AE65DED84D0009FC326AF8D78D80C00D00995FF899 + AB867DF68A9B2E6F93D949FA4830B201603704749340360C64E300000000894F + 82BC047A0DF736F0CB0600124FE5C1D2034FCEF8D1EF663E73DF727F69AFF4BB + 1B001AF835FC4BD8B71B00F23FED321E6DF8176C00A41837F8EBA8251A7B2780 + BB01E09604FEC866C0A4B32E2BBCFCBB0FFD4FFBD6ADDBF86B2481DA4387BCE2 + 1DDBBDE2A26D5ED5BE7DDEFEAA2AAF7A7F5564B4F3EA2AFF983FAF8EF6755EBD + 7F7FF43B010000201E39B9B95E4E5E9E979BEB973FEA3C27AFF547EB68DFCEF3 + 5AB7F60A7AF4F40ABA75F7D233E47FD3910C2AF6EDAB7CE49EFF9EF1CEEB7FDE + E02F35ECDBC0EF966E00D8E01F6FF897B996D051D8794AD3D0DB52B83FAFAE65 + D41247BB09A01B01F6EABFADEC9163CFE971ED0F1EFB7A7EDB828EFE1A29AEAE + EEB077B046FEFB04000080866466657AAD5AC9FF7623D5EDDD535CF6B3DBBFF8 + 9BC5EFBF52E42FC342BFF66DF03FDEE15FB8EB94A581B7A5B13FB7CE65D412C7 + BA09501FFA9D7556BF01A776BEEE9667BED2A357617F7F0D000000002D46D1D6 + F5EBEEBEE592DF6F5CFF61A9BF0C0BFD5AB1C2BF6E0070E53F4E12645B220DF9 + 2A682D4F86586390A02790F48EA88AB21D075EFEDB830BFA168E48CF6DDDA530 + 2F2F2FECFB01000000404A9077FA5FBAF095577E70F59427CA4A8BF6F82DBDE5 + DF96847C77034082FEF10EFF2D524BDD00501ABC8302B80DFB41A30AEA29E905 + F60F1FAE3DFCCEEB4FAEAD3B7C70F349C3CF1C9293952577070000000040CAA9 + D85759F9DC63B73DFAC8AFAF7AC7CF42F219FF12F66DD0774B370234FC4BB8D7 + F168C2BF15D46B11D800387274B9A1DF8EB1E8134A46FB751FB37AF97BA51FCE + 7B69E1C8D1D3FAE4B7EDC8FB02000000004829DBB7AE5A7BC70D9FFCCDBC779E + DBE42FDDA0AF25E15E370564AE65AFF86BF03F96F0DFA2B5F40D002B2CD40785 + FFA027921EB3EC79415F135151B6A3FAE5BFCD58D8BBDFF056B9AD3B17E6E5B5 + 0EFBBB000000004052D8B5ABA4EEC3F767BD72F335D3FE5CB66B9BDCF2EF86FE + A0D2D0EF8E1AFCB524EC4BC68A37FC07F55A1C36003EA2813B2C786BE8B76310 + FB84D27950CF252F09A89BFDC653EB6B6BAB370D1B396970666696BC79200000 + 0000249DFDFB2BF73EF5E8CD8FFEFEC16BDFF5B34E3CB7FB4BC9DC867EADE311 + FEE16303E0E3E2DD048825E8B8F4DCBEF6EA6BCD8A7965F3E7BCB868E4A8A93D + DBB6EBD4C9EF0100000040D2D8B679F59A1F5E77EE83EFCF9DB9D95FEA9BFBE9 + 2640D866806E02D80D0037F84B49D8D7920C154FF8777B2D161B0047D2F01FCF + 2680B24FA6A0275BD868CFB5736F77F9CEEA592F3CB8A057DFA1ADF2DA14F4E7 + 250100000000129DDCF2BFE0BD99FFB8E5BBD3FE5251BE63AFDF0A0AFA52BA09 + 1074D55F4609FA76034042BECE253B3526FCC36003205C50E8962790BB09A0EB + 20F6988C6E89C07E5DDDE1BA77DF7C7AFD8103FB369C3C78F2E0CCDC6C5E1200 + 0000002021ED2FDBBBE72F7FBAE9913F3DF4BDF7FC2C6343BE5EFD8FE7CABF86 + 7E1BFEA5740340B2921BFEED2680559FADF02F6C0004B3E1DED240EF867EDB17 + 7ACC9E133497D13D577B915AB76A7EF9DC79CF2F3C65E4B49E6D3B74E6250100 + 00000012CAD64DAB56DD7AE3393316CCFDFB167F29A13E28F0EBD57E9D6BE8D7 + 5183BF0DFF12EEDDF02FA5D92956F8470036001A166B1340B8C72D394F9F7C76 + 6C682E745DB7A7A2E4C0AC990F2E6CD3AED3DE5EFD869E9499919D1939030000 + 00009A4955F5DEAA97673EFCDC4FBE7FD1B3BBCB77CA2DFF4157F9837ABA01A0 + E1DF961BFE6DE8B7992956F8777B888A155E113BE44B2FEDA369FD5C475BB2C9 + 622BC32909F35A590DAD7BF41AD4E19BD73E72E1D053268EF3D7000000007042 + 959696D6ED285A31EF81BBFE6B66D1D655157ECB0DF50DADC342BF2D0DFDEE28 + ECDCD25ED031F8B803A0F18236032C79B2C939EE93CE7D32068D5A2268EDEDDD + 535AFDDAAC4797EFDCB979EDA021A7F5CACDCBCF8F1C05000000802656B6ABA8 + E8B187AFFFC3EF7EFD9DB7FC6C52E9B7F4AABE947BB5DFAE6DF8B79B0036F0DB + B996CD45B654D81C011A0AB3F888FB38D9B5CC834AEF08904D16BD13C0DE11A0 + 7700C85CAEEEEBDD00F6AE80B03B02E49CAC8C8CACEC2BAE7E60D2F869179FD7 + 26AB136F1208000000A0491CACA8A87E63F6D3B31EBAEF9BEF1C3A54A3C15E43 + BD94AC35DC87057E1925E087857F1D25C83736FC0B770D870454C4CF3E5EEE5C + 4B68F897B2E15F4B3701EC46809606FCA0E01F587DFB9FD2F1CA6B675C3468C8 + E9A3FC35000000001C37AB97CD5DF8C03DFFFDC2A60D4BCAFCA5067B2D7723C0 + 960DFFB634F86BE8D7D2B5067D990B5DDB801F36470C1240113F0DF8CA5D0BE9 + E91330E8B8A5E7C9186B1EB37697EFAC7EF5C58797EED9BD6B53BFC163FBE4E5 + B66EEDF701000000E0A895961717FF69C6FFFEE9C17BAFF8E7EE8AE2A0CFF597 + 3B0124E0BBFDB04D0009F8326AD8773700A424E3E8286CF651768E466828A022 + 987DDCDCC750D6B6F46E003BDA3B02EC9D00F1DE11105A593979395FBF66C694 + 89E3A79E9391DF5D7A0000000010B743878A6BDE7EE395571EBCE77FDEA8A9AE + AA96965F36D487950DFBB634F8BBA15FE712E8DDD19665D7EE31344002291ACF + 7DDC82D641A59B007603C06E0268056D00D8B9BC2440D7813568D8F8CE577CE7 + FE8B0B078D3ED95F030000004083D6AF5EB074C62FBEF1DCEAE5EF95F84B1BEA + E5CABECEB56F7B76B4A5A1DF0DFF52B296101F14FAB5AC86D66880844D1C3D09 + F3CACE5DF2C48C755CD827AFCEED18F48F22EC1FCAE1D292ADFB5F9EF9D0A203 + D5FBB7F6ED3DBC7B6E1B3E2D0000000040B0F29D45DB9F7AEC474FFEF2A75F99 + E567893D7E4B6FE597D1BDD53F682EA35650F8D7C02FA3ADFA0CE397B0B9C6B2 + 6BF718E2D45028456CEEE317B696ABFC42D67A17801DB564434647F74E005DCB + 157E99EBD57E7B2780CCDDBB03FC795AD625977DEFE4E9175D31ADA06BDFDE7E + 0F00000000BC92A24D9B67BD38E3B5679FB873A99FC125C84B70B7413EA8A773 + 09F4DAD3929E8E61C15F02BC3B0A990B37E037B4469CDCC08AA3631F47F731D5 + B58C6EC5BB0960E7B634F4DBB909FEEE989675FEA7AF1C7CFEC5DF9ED6BBCFC0 + 42BF07000000A0052ADABA76DDCC677EF9EA4BCFDDBFDACFDD36E4BBA3DB73E7 + 5A6EF08F27FCBB25745476ED1E432349F8C4B1731FC7A0C7557A5A42C3BF94CE + 7513403700740CDA0090B5067C2D1BF89DF07FE4F1A9E75D5E78D167AF99D6A7 + DFF0C1FE1A000000400BB071DDB295CFFFDF3DAFBE31EBD1F5FE5282BC04F4A0 + 702FA39DEB715DCBD7D99E867E0DFC3A86057F990B5D4BB9DC5ED03968040DA3 + 38BEECE3EA3EC6B2B625215FC8A86B2D0DFE762E01DECEDDB281DFAE03370426 + 4CF9F7DE175F76C3D48E1DFB9CDCA95327F9F301000000A490D2D2D2BAB2B2CD + 4B9F7BE227AFBDFBC6D35BFC960DF46EC80F0AFB76ADA561DFCE25D4DBB99604 + 770DFCBAB665D9B57B0CC788C0D734DCC735681D56762340C3BF96067F7703C0 + CE6D05857EF758A4469D767E8FCF7EE5E6A98386F53FA555AB2EF26701000000 + 48627575258757AD58B7E8A9DFDFF6CF85F35F2AF25B36C00705FBB04D002D0D + FC3AB76503BFAE25C007057E5B56436B1C23099A683AF6F1751F6B596B091935 + 78CB286B09F6DA97B93B4A7897D1CEEB43BD2909FB722C6823E088E343474C2E + F8C2576F3B6BC8C943C6A6A777951E0000008024525BBBB376E5D295EF3FFEC8 + CDAFAF58F256B1DF92402FA13C2CD837745C8EE968E736ECEB28A15DE632CA5A + 685FC8A865D9B57B0CC789864F340DF7F10D7ABCA5A72534FC4BC95CD73A9792 + 601EAB6CB8D7B5867F59876D04D457FF81A33A7EF1BF7F3AA5D7C8D3C776CE6E + 97EBF70000000024B05D0776EFDFBA78EEFB8FFDF6FA37D6AD5958E6B76C880F + 2A0DFE3A9751D75AB28E5512EEB524B8DBB9AE85AEA55C6E2FE81C1C071A3AD1 + B4ECE31CF4984B4F4BC8A8C15FCB6E00684998D7D12D09F23A06951C0BDA1438 + E26BF2F2DA655F78E955278F9F78C998BEFDBB0D4E4B2B90E30000000012C0E1 + C3C5B59B37EC5839E7AD6717CCFCBFFB965655ED96CFEC7703BC8C6ED8D77950 + E93119DD9240AFA35B36E4EB5AD8BEB27315D4C371A481134DCB7D9C831E77ED + C9185412F475D4B984715DCB5CD73A7703BD9DC7EA691DF1B53D7A0D6A7BD17F + 7C77D4A871D3471774EDDBDBEF010000006806C53B376D593877D682179EFEF9 + 82A2ADABF7FA2D09E56E800FAAA063415F2BA39404793BD7B584755DEB5CC6A0 + 123A0A3BB7C2FA384E2444E2C4B38FBBFB3B90B596905142BDD0E06F472D09EB + 76EE960DF43AD6877B6774FB761DA953C79CDBEDBC8BBE3E66F8A8F1A3DBE477 + 6BEFF70000000034A1CABD3B2A962D7C6FC1AC177EF3C1A20F5EDEE1B734984B + 6980B721DE5D37D497D12D1BFA75AEA5015FE6427B428FE95AD9B57B0C4D4C43 + 264E2CF7710FFA3D484F4B48B0D7B5CC85F624946B5FE67613C0CE6D880F9A6B + D00F5BBBE7A7A7A565644E3BFFF2FE9F38E70B63FA0C1D3EA24D56A76CBF0F00 + 0000E038A8AC293DB079C5B2256FBEF2F807AFBEF4BB75870F1FD2DBF7A5DCD0 + AEC1DE867A776DCF0D9A4B8877E71AEC652EA3AE6D494FD89ECBED059D8326A4 + E112CD23E8F1777BB20E2BDD00B0A32D09E93ABA731BEA83E6766CE8DCC8BC4D + DB8E399FFACCD5C3C74DFEF498DE7D0B06F2718200000040E3C9C7F76D5A5FBC + FAFDD97F5DF0FC33F72EABDC5356EDB78302BBEDE9DA3D66CF099B87857EB734 + D8DB795059EE5A04F57002486844F3097BFCDDBEACB5848C1AAE65D4633A97D1 + 968674776D2BAE901FC75C2AAD77DFE1ED3EF999AB4E1D3C6CDC8036BDFA16F2 + 490200000040387907FFCAAD9BD6AF5A3E6FED8BCFDCB768CBA665BBFDB6046D + 0DE6524101DEF6DC75D8DC96867B77AD2561DD1D859DCBA865B96B15D64713D3 + 4089C4607F1FEEEF46D732BA2524D8EB5A83BECC2381DC99078D6EB9A15ED761 + 7DB7EABF6F464656C6B8332FEE79DA840B079E3460D480ECDE05FDBA651664F9 + C7000000801669C7C1E29A035B8A376E58BB70EDFC7767AE9937FBB96D870ED5 + D8902E015BE7B6C2027F583FA8F47BCBA87309E5EE5C4AE71ADAED5C463BB7EC + DA3D8666A2E11189C1FD7D04FD7EA4A7257494C0ADA3F4DC51C2B8AE35A0DB79 + 24AC375061613FACECF7ADFFF3B2B2F2B2CE9CF2EFBD4F39EDBC8103879C5298 + 97D9A16FFBAEDDE47B0300000029A962E78E43FB6ACA37AD5DF5E1FA0FE7CF5A + 33FB8DA7B7D4D454D5F887DC406EC758152BE08795FDFE762E015DE632EADA8E + 4247E969091D2DB717740E9A8186472426FBFB717F57B2D612766D4B42B73BD6 + 87F180B51BDC83D68D29F7FBEA5AC75679796DB3274DFB7CBF9163A60FE83F70 + 78FF2E5DDBF74A4B2B9063000000405292CFE72F29DAB365DDFA25EB177FF08F + B56FBFFAE78D55557BE433FA250C8785712D771D6FC5FA3EFAE768CFAEE5EFE4 + 8E4125DCB5B26BF71812840442242EF7F713F4FB929E96B06BB72474EB185661 + 41DD56BC3D2DFBBDEC5C46F9FB1CB16EDBBE2077CAD42F9E347CF4D9FDBBF7EC + D7BD7D872E5D0ED4B4EAD0B9731739170000004828BB7695D46567D595579497 + 946CDFB671FBB205FF5CF7C66B8F6DD85351BCDF3F2C61D88671772DA3CEB5DC + 75582FA8AF6B19DD7950C9DF47C7B012EEDA727B41E7200110A89243D0EFC9ED + C95A4BD8B55B12B67574E7B66C30B7A3CE6DB9E7851D73CF933F3B687DC4DF29 + 2FAF6DD6B091133B170E185BD0B3CFE082821E7D3B776CDBB34B5A4187CEBCC1 + 200000004E0479A3BEC3C5E5BBCAF66C2B292EDAB46BDBE655C5EBD7BE5FBC7C + F13BBBAAAAF6C8EDFC6EB096F0ADA3F482D67ABEEDD96AE8987BDC8E6EC99FED + CE650C2BE1AE95BB16413D24100959487C61BFA7A0BEF4B484BB9640AD6B9DDB + 51E736846B40D7B281DD1DEDB9BAB6C7ED319DDB9EFB67BBA5FDFAB167EFC16D + 868C9858D0AF706497EEDD077469D7AD67972E1D7B74CE6F5BD7919712000000 + A031E4D6FDBD7B5A95959415EDDABD635BC9F6ED6B4B36AE5F5CB272C93BC5DB + B6ACAAF44F9190EB06680DD5B6A42F415C47F7B8EDD9E0AE658FD9E341A396AE + ED9FADC7746E479D0B5D4B09776D05F544581F09424214924FD0EFCDEDC95A4B + B86B0DD1B63464DB80AD730DEC76AE65D73A777BB1BEC6F6F4FBBB7F1F29F7EF + A4A3CE457D2F232B277DE8B0333AB6EFDC3D2FAF75879CD6ADDB67B7C96F979D + 9DD32627AF757E764E4EEBEC2CBF72B272B232B372B2B3B2F3FC6359D9E959D2 + CBCCCA3C94979D995999959EDF2D33F29D01000090D06AF7EE3878F0609B9A83 + 195507AA6B0ED6D4D6EC3BE04F0E1C3A78A0A6BA66BF3FAFF227FB0E54FB55B5 + 6FAFBFAEACAEDCBBFBC0BE7D15FEBABCBA62D7F6AA15CBE7941DAAA9D6F02CA5 + 01D90DCD3ABA73DBD3EFE3067529DB93B97B8EAEDDF374AE6BFDB3ED5CCAFD3B + C9DA96F484ED0977ADDCB508EA2181495042F209FBBD05F52361385A42470DCC + B276C373D81816CC6DDF0DF6B1D63AD7EF6DE7417F8EEDE95C469D0BDB0B2AE1 + AE857BBC5E4646565A4E5E9B74FF3F9147F47DEE1A00000027D6470134CDABAB + AEAEAAF583BB865AA50155461B5675ED1E0F2AFD9E3644EB5C46776E7B6101DD + 06793B8FB5D6EF678FD9BE7EEFB051E85A684FD7326AB9827A22AC8F04458049 + 0DF6F718F63B95BE96B23DB7DC20ED866E1BD2C3E6B634E0DBB2DF27EC78D03A + 6C14BA0E2BE1AE857B3C88DB0F3B0F0000004DCB0D9E0D055419ED39BA768F07 + 951B9E638D5AEE5A4A43BA0DEBEE71B7A7E787CDF5FBD851CB5DBBA5827A967B + 2E9218012635342698CA312DE5F6C2427450E8D651E7EE0680DB6BCC71F75843 + A3D0B52DA1C775ED1E17766DFBCAED059D03000080A6E706D1A060EA06575DEB + DCAE850466618F4B69DF0DDA61A31BCCC3427B638EBBBDB0D12DE90BDB53413D + 977B2CD6B948020498D4D498F02AA33B0F5ADBB221DB06701D837A3206857F9D + 07AD6D2F68747BC21ED3127A5CD7EE7111B40E12D677C57B1E0000008E146FD0 + 0C3BCFF6651EB4D69E8E4161594AFB4161DBEDD9D196DBB36B99DB90EF1E0B1B + DDB95B226C2D7454EE5A04F590C40828A9A931C1557B32DAB98E766E437450E0 + D6F9B18CF19C2363582FA8849EA3DCE342E7EEE80AEBBBE23D0F000000478A37 + 78869DA77D771432D7523297302DEC71B76285F058633CE7C433EA5C684FD8B9 + 9E2762F5ACA09E08EB234911505A86A0DFB3DBB36B09CB4AFB32DAB99E6383B5 + 0DE2EE71ED3566D4B2EB58C7E22915D60B1AC334741C0000004DABA1E0EA8E42 + E65ACAF61A2A1BC6DD75D8B178479D8BA05ED071A1E7091D859E2B6C5FB86B11 + D4430A21C0B40C61BFE786FA32DA73DCBE2D21A3047261E76E8017B17AEE319D + DB9E70CF13F63C5BC28E413D3B2A77ADE23D0F000000C74758386D28D8EA3A68 + 0CEBB9258202B9EDD963EE3CE8FC787AC2CEF53C5B424711D6B71ADB478A20B4 + B44C41BFF7867A320F5ABBBD868278AC8A27EC8BA0F36C0919EDDF45473B0F1A + 55437D000000240637B486855FB76F47B7D750E8D6D2C06EE7FAB5EE796E2F9E + 12F6EF22DCE32268ED8AB7871446986999C27EEFB19E0FF698CCDDB58EEEDCAE + 6D20B7C71A0AF4B684DD0C9031ECFBBA6B11D41341E7C4AB31E7020000E0E835 + 26B0CAB9F67CF76BF5B87B8EEDB96B1BC665D4D06FCF8B5541E70BF7FBDA63EE + 5CD9BEB07357D8B1585F831444708115F47C88D57347617BEEF17883BA8CC7E3 + 5C11D413BA8E754CB8C744500F000000275E50806D28144B4FCB0AEABBBD7882 + BAAE1B7BAE708F0B1D85DBB3C754BC3DB44004195861CF8758CF137B4CE6EE3A + 6CD4123A6A901741E7C45A0BB767479DABA0735C413D11D6070000C08915166C + 1BEACBE89E637BEE79BA166EAFA1B5080BF8761D340A7B9EB07357D8B1585F83 + 1684208378C41B8E6D4FE6EE39B6E79E2B626D0008BBB663504F479DABB07383 + 847D2D000000128B1B70E309C9EEA8641D764ED8319D0B5DDB9EBB012074EE9E + 2BDC9E7B5CC4DB03EA1168108FB0E74963C373502F68147ABEDB8B350A99BBEB + A0D115D4777B615F0B000080E6E506DFC68463EDBBA390B9BB8E350A996B29F7 + 3C7B4CB8E70B776D851D8BF535008106C7249ED0AC6C5FE7B1BE3EE89CA33D26 + 82D66EAF218D3D1F00000027466383AF9CEF7E4DD8DA1DC5D11E53B1BECE15EB + EB814621D0E058843D7FE2795E059DA33DF798DB8FE76B83CE5161E7C4FA1A00 + 0000242F3730EB3A569076CF093AB7A173E2F9DA58C2CE89E76B818F21F0A029 + 043DAFE279AE8505F2585FEB9E13CFB92AECDC58DF03000000C923DE001D2B50 + EB31770C12764EACAF5141E7C4F37540DC083A680A0D3DAF1AF3BC0B3AD7ED85 + 7DBF78CE0BFB5A000000A4A678827658F08EE7BCB0AF0DD2D0B98DF95E408308 + 3F680EB19E77F13C27C3CE696C3F96A3F91A000000248EA309CF615FD3D8BE15 + EB9CA3F93B02478D9083E610EFF3EE589E9F8DF9DAE3FDEF807F57000000C7C7 + F10EC88DF97EC7F267C7FBB56C00E08422A82091C57A7E36C573977F0F000000 + A9A9298276ACEF49B047424A8F8E40223A96404E98070000C0B120C423E5B001 + 001C898D03000080D472B4419E0D00A41CC20E5219CF6F0000001C0DC23F0000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2800,8 +2800,8 @@ object SplashScreenForm: TSplashScreenForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000E9C6F3FE3F - D71C5008D1829C820000000049454E44AE426082} + 0000000000000000000000000000000000000000000000000000000000000000 + 008096C6F3FE3F4DE24F1B78A2530E0000000049454E44AE426082} FileName = 'E:\YandexDisk\Development\Delphi\AErender Launcher\src\AErender ' + 'CC\icon_512@2x.png' diff --git a/src/lib/AErenderLauncher.IO.pas b/src/lib/AErenderLauncher.IO.pas index e14d7e1..f518d57 100644 --- a/src/lib/AErenderLauncher.IO.pas +++ b/src/lib/AErenderLauncher.IO.pas @@ -3,24 +3,34 @@ interface uses + System.Classes, System.Types, System.SysUtils, {$IFDEF MSWINDOWS} Winapi.ShellAPI, Winapi.Windows; {$ELSE MACOS} Posix.Stdlib, Posix.Unistd; {$ENDIF} - function Open(Path: String): Integer; + function Open(Path: String; Args: TArray): Integer; function Execute(Path: String): Integer; function BackgroundExecute(Path: String): Integer; + //function ExecuteAndWait(Path: String; Timeout: Cardinal): WideString; implementation -function Open(Path: String): Integer; +function Open(Path: String; Args: TArray): Integer; begin {$IFDEF MSWINDOWS} - Result := ShellExecute(0, 'open', PWideChar(Path), nil, nil, SW_SHOW); + var TempPath: String := Path; + for var i := 0 to High(Args) do + Path := Path + Args[i]; + + Result := ShellExecute(0, 'open', PWideChar(TempPath), nil, nil, SW_SHOW); {$ELSE MACOS} - Result := _system(PAnsiChar('open ' + AnsiString('"' + Path + '"'))); + var TempArgs: String := ''; + for var i := 0 to High(Args) do + TempArgs := TempArgs + Format('"%s" ', [Args[i]]); + + Result := _system(PAnsiChar(Format('open -a "%s" --args %s & disown', [AnsiString(Path), AnsiString(TempArgs)])); {$ENDIF} end; @@ -29,8 +39,8 @@ function Execute(Path: String): Integer; {$IFDEF MSWINDOWS} Result := ShellExecute(0, 'OPEN', PWideChar(Path), '', '', SW_SHOWNORMAL) {$ELSE MACOS} - _system(PAnsiChar('chmox +x ' + AnsiString('"' + Path + '"'))); - Result := _system(PAnsiChar('command ' + AnsiString('"' + Path + '"'))); + _system(PAnsiChar(Format('chmox +x "%s"', [AnsiString(Path)]))); + Result := _system(PAnsiChar(Format('command "%s"', [AnsiString(Path)]))); {$ENDIF} end; @@ -44,4 +54,39 @@ function BackgroundExecute(Path: String): Integer; {$ENDIF} end; +{function ExecuteAndWait(Path: String; Timeout: Cardinal): WideString; +begin + var Res: WideString; + var Elapsed: Cardinal; + + var CheckOutputThread: TThread := TThread.CreateAnonymousThread(procedure begin + var F: TextFile; + AssignFile(F, Path); + + Read(F, Res); + repeat + Sleep(1000); + Elapsed := Elapsed + 1000; + until (FileExists(Path) and (Res <> '')) or (Elapsed = Timeout); + + if Elapsed >= Timeout then begin + Res := WideString('timeout'); + end + end); + + CheckOutputThread.Start; + + Result := Res; + +end; } + +function OpenAndWait(Path: String; Args: TArray; Timeout: Cardinal): WideString; +begin + // We need to create the following + // ("Path\To\App" "Project\Path") > "JSON\Result\Path" + //var Res: String := Format('('); + + +end; + end. diff --git a/src/lib/AErenderLauncher.MathExpParser.pas b/src/lib/AErenderLauncher.Math.ExpParser.pas similarity index 99% rename from src/lib/AErenderLauncher.MathExpParser.pas rename to src/lib/AErenderLauncher.Math.ExpParser.pas index eadb442..434d67f 100644 --- a/src/lib/AErenderLauncher.MathExpParser.pas +++ b/src/lib/AErenderLauncher.Math.ExpParser.pas @@ -1,4 +1,4 @@ -unit AErenderLauncher.MathExpParser; +unit AErenderLauncher.Math.ExpParser; interface diff --git a/src/lib/AErenderLauncher.Rendering.pas b/src/lib/AErenderLauncher.Rendering.pas index 231aa9d..98a0a3b 100644 --- a/src/lib/AErenderLauncher.Rendering.pas +++ b/src/lib/AErenderLauncher.Rendering.pas @@ -13,8 +13,10 @@ interface type AERParamException = class(Exception); + AERFrameSpanException = class(Exception); + AERCompositionException = class(Exception); - TRenderState = (RS_WAITING, RS_RENDERING, RS_FINISHED); + TRenderState = (RS_WAITING, RS_RENDERING, RS_FINISHED, RS_STOPPED, RS_ERROR); TRenderMode = (RM_NORMAL, RM_TILED, RM_ALL_AT_ONCE); //TRenderMode = Cardinal; @@ -28,6 +30,7 @@ TExecutable = record TFrameSpan = record StartFrame, EndFrame: Integer; constructor Create(const StartFrame, EndFrame: Integer); overload; + constructor Create(const StartFrame, EndFrame: String); overload; function Split(const Division: Integer): TArray; end; // @@ -36,7 +39,7 @@ TComposition = record Frames: TFrameSpan; Split: Cardinal; Executable: TExecutable; - constructor Create(const CompName: String; const Frames: TFrameSpan; const Split: Integer = 0); + constructor Create(const CompName: String; const Frames: TFrameSpan; const Split: Integer = 1); end; TRenderThread = class(TThread) @@ -66,8 +69,8 @@ TRenderTask = class(TObject) FCacheLimit, FMemoryLimit: Single; //FFrames: TArray; - FCompositions: TArray; - FLogFilePaths: TArray; + FCompositions: TList; + FLogFilePaths: TList; FState: TRenderState; //FRenderThread: TRenderThread; @@ -76,7 +79,7 @@ TRenderTask = class(TObject) FRenderFinishEvent: TRenderFinishEvent; //procedure TaskTerminate(Sender: TObject); - function ToExec: TArray; + function ToExec: TList; published // Make some properties for tasks to use // Standard property Project: String read FProject write FProject; @@ -94,9 +97,9 @@ TRenderTask = class(TObject) // Compositions and Frames //property Frames: TArray read FFrames write FFrames; - property Compositions: TArray read FCompositions write FCompositions; + property Compositions: TList read FCompositions write FCompositions; - property LogFilePaths: TArray read FLogFilePaths write FLogFilePaths; + property LogFilePaths: TList read FLogFilePaths write FLogFilePaths; property State: TRenderState read FState write FState default TRenderState.RS_WAITING; property OnRenderStart: TRenderStartEvent read FRenderStartEvent write FRenderStartEvent; @@ -106,7 +109,7 @@ TRenderTask = class(TObject) const MissingFiles, Sound, Multiprocessing: Boolean; const CustomProperties: String; const CacheLimit, MemoryLimit: Single; - const Compositions: TArray); + const Compositions: TList); procedure Render(Mode: Integer = 0); function ToString: String; override; @@ -132,8 +135,13 @@ TAErender = class(TObject) constructor Create; end; + function GetTaskByProject(const AProject: String): TRenderTask; + function GetTaskByCompName(const ACompName: String): TRenderTask; deprecated 'Useless in this context, we CAN get Project without browsing through compositions'; + function GetCompByName(const ATask: TRenderTask; const ACompName: String): TComposition; + function GetCompIndexInTask(const ATask: TRenderTask; const ACompName: String): Integer; + var - AErenderPath: String; + AErenderPath, Errors: String; RenderTasks: TObjectList; implementation @@ -182,18 +190,33 @@ constructor TFrameSpan.Create(const StartFrame, EndFrame: Integer); Self.EndFrame := EndFrame; end; +constructor TFrameSpan.Create(const StartFrame, EndFrame: String); +begin + if StartFrame <> '' then + Self.StartFrame := StrToInt(StartFrame) + else + Self.StartFrame := 0; + + if EndFrame <> '' then + Self.EndFrame := StrToInt(EndFrame) + else + Self.EndFrame := 0; +end; (******************) (* TComposition *) (******************) -constructor TComposition.Create(const CompName: String; const Frames: TFrameSpan; const Split: Integer = 0); +constructor TComposition.Create(const CompName: String; const Frames: TFrameSpan; const Split: Integer = 1); begin - Self.CompName := CompName; + if CompName <> '' then + Self.CompName := CompName; + {else + raise AERCompositionException.Create('Composition name cannot be empty');} + Self.Frames := Frames; Self.Split := Split; end; - (*****************) (* TRenderTask *) (*****************) @@ -201,9 +224,9 @@ function TRenderTask.ToString: String; begin var Res: String := Format('(%s, %s, %s, %s, [%s, %s, %s], "%s", %f, %f, ', [Project, Output, OutputModule, RenderSettings, BoolToStr(MissingFiles, True), BoolToStr(Sound, True), BoolToStr(Multiprocessing, True), CustomProperties, CacheLimit, MemoryLimit]); - for var i := 0 to High(Compositions) do - with Compositions[i] do - if i = High(Compositions) then + for var i := 0 to Compositions.Count - 1 do + with Compositions.Items[i] do + if i = Compositions.Count - 1 then Res := Res + Format('Comp[%d](%s, [%d, %d], %d)', [i + 1, CompName, Frames.StartFrame, Frames.EndFrame, Split]) else Res := Res + Format('Comp[%d](%s, [%d, %d], %d), ', [i + 1, CompName, Frames.StartFrame, Frames.EndFrame, Split]); @@ -224,7 +247,7 @@ function TRenderTask.Count: Integer; Result := Res; end; -function TRenderTask.ToExec: TArray; +function TRenderTask.ToExec: TList; begin // Start with empty string var TempStr: WideString := ''; @@ -232,7 +255,7 @@ function TRenderTask.ToExec: TArray; // Append all the nesesary information in the beginning TempStr := {$IFDEF MSWINDOWS}'chcp 65001' + #13#10 + {$ENDIF} - Format('("%s" -project "%s" -output "%s" %s %s %s -OMtemplate "%s" -RStemplate "%s" -mem_usage "%d" "%d" ', [ + Format('("%s" -project "%s" -output "%s" %s %s %s -OMtemplate "%s" -RStemplate "%s" -mem_usage "%d" "%d" %s', [ AErenderPath, Project, Output, @@ -242,7 +265,8 @@ function TRenderTask.ToExec: TArray; OutputModule, RenderSettings, Trunc(MemoryLimit), - Trunc(CacheLimit) + Trunc(CacheLimit), + IfThenElse(CustomProperties.IsEmpty, CustomProperties, '') ]); List.Add(TempStr); @@ -271,10 +295,10 @@ constructor TRenderTask.Create(const Project, Output, OutputModule, RenderSettin const MissingFiles, Sound, Multiprocessing: Boolean; const CustomProperties: String; const CacheLimit, MemoryLimit: Single; - const Compositions: TArray); + const Compositions: TList); begin - if (Project.IsEmpty or Output.IsEmpty or (Length(Compositions) = 0)) then - raise AERParamException.Create('Project, Output or compositions are empty'); + if (Project.IsEmpty or Output.IsEmpty or (Compositions.Count = 0)) then + raise AERParamException.Create('Internal Error (EI001) - Project, Output or Compositions may be empty.'); Self.Project := Project; Self.Output := Output; @@ -347,11 +371,56 @@ procedure TAErender.RenderTasks(Tasks: TArray; Mode: TRenderMode); end; +(*************) +(* Helpers *) +(*************) +function GetTaskByProject(const AProject: String): TRenderTask; +begin + for var Task: TRenderTask in RenderTasks do + if ExtractFileName(Task.Project) = AProject then begin + Result := Task; + exit + end; + Result := nil; +end; + +function GetTaskByCompName(const ACompName: String): TRenderTask; +begin + for var Task: TRenderTask in RenderTasks do + for var Comp in Task.Compositions do + if Comp.CompName = ACompName then begin + Result := Task; + exit; + end; + Result := nil; +end; + +function GetCompByName(const ATask: TRenderTask; const ACompName: String): TComposition; +begin + for var Comp in ATask.Compositions do + if Comp.CompName = ACompName then begin + Result := Comp; + exit + end; + //Result := nil; +end; + +function GetCompIndexInTask(const ATask: TRenderTask; const ACompName: String): Integer; +begin + for var i := 0 to ATask.Compositions.Count - 1 do + if ATask.Compositions[i].CompName = ACompName then begin + Result := i; + exit; + end; + Result := -1; +end; + (********************) (* Initialization *) (********************) initialization RenderTasks := TObjectList.Create; + Errors := ''; (******************) diff --git a/src/lib/Components/TCompLabel/Package/CompLabel.dproj b/src/lib/Components/TCompLabel/Package/CompLabel.dproj index 053cf51..8111513 100644 --- a/src/lib/Components/TCompLabel/Package/CompLabel.dproj +++ b/src/lib/Components/TCompLabel/Package/CompLabel.dproj @@ -6,8 +6,8 @@ FMX True Debug - Win32 - 1 + OSX64 + 4099 Package
@@ -98,6 +98,8 @@ rtl;fmx;$(DCC_UsePackage) + CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers + Debug Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) @@ -109,6 +111,11 @@ rtl;fmx;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 DEBUG;$(DCC_Define) @@ -163,9 +170,9 @@ False False False - False + True True - False + True diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelTest.res b/src/lib/Components/TCompLabel/Test Project/CompLabelTest.res deleted file mode 100644 index 0328420e0db7bd2fd77dced1e97b7ea158d4d619..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112136 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 Kc2qQsApQr@sy*8P diff --git a/src/lib/FMX.TreeView.pas b/src/lib/FMX.TreeView.pas new file mode 100644 index 0000000..0b1faae --- /dev/null +++ b/src/lib/FMX.TreeView.pas @@ -0,0 +1,2819 @@ +{*******************************************************} +{ } +{ Delphi FireMonkey Platform } +{ } +{ Copyright(c) 2011-2020 Embarcadero Technologies, Inc. } +{ All rights reserved } +{ } +{*******************************************************} + +unit FMX.TreeView; + +interface + +{$SCOPEDENUMS ON} + +uses + System.Classes, System.Types, System.UITypes, System.Generics.Collections, System.ImageList, FMX.Types, FMX.Layouts, + FMX.StdCtrls, FMX.Controls, FMX.TextLayout, FMX.Graphics, FMX.ActnList, FMX.ImgList; + +type + +{ TTreeViewItem } + + TCustomTreeView = class; + + TTreeViewItem = class(TTextControl, IItemsContainer, IGlyph) + public const + DefaultHeight = 19; + private + FIsExpanded: Boolean; + FExpander: TControl; + FButton: TCustomButton; + FCheck: TCheckBox; + FGlobalIndex: Integer; + FIsChecked: Boolean; + FIsSelected: Boolean; + FContent: TContent; + FNoItemsContent: TLayout; + FVisibleCount: Integer; + FMinItemSize: TSizeF; + FCustomHeight: Boolean; + FChildrenOffset: Single; + FOldButtonVisible: Boolean; + FOldCheckVisible: Boolean; + FOldChecked: Boolean; + FGlyph: TGlyph; + FOldGlyphVisible: Boolean; + FImageLink: TGlyphImageLink; + [Weak] FImages: TCustomImageList; + FCustomChildrenOffset: Single; + function GetLevelOffset: Single; + procedure DoButtonClick(Sender: TObject); + procedure DoCheckClick(Sender: TObject); + function GetCount: Integer; + procedure SetIsChecked(const Value: Boolean); + procedure UpdateCheckBoxVisibility; + procedure UpdateExpandedButtonVisibility; + procedure SetIsSelected(const Value: Boolean); + procedure RecountVisibleItems; + procedure RequestRecount; + function GetImages: TCustomImageList; + procedure SetImages(const Value: TCustomImageList); + { IGlyph } + function GetImageIndex: TImageIndex; + procedure SetImageIndex(const Value: TImageIndex); + function GetImageList: TBaseImageList; inline; + procedure SetImageList(const Value: TBaseImageList); + function IGlyph.GetImages = GetImageList; + procedure IGlyph.SetImages = SetImageList; + { IItemsContainer } + function IItemsContainer.GetItemsCount = GetCount; + function GetItem(const AIndex: Integer): TFmxObject; + function GetMinItemSize: TSizeF; + procedure OnExpandButtonStyleLookup(Sender: TObject); + procedure UpdateChildrenOffset; + procedure SetCustomChildrenOffset(const Value: Single); + function IsCustomChildrenOffsetStored: Boolean; + protected + procedure ChangeOrder; override; + procedure ApplyStyle; override; + procedure FreeStyle; override; + procedure DragEnd; override; + function GetTextSettingsClass: TTextSettingsInfo.TCustomTextSettingsClass; override; + function CalcMinSize: TSizeF; + procedure InvalidateTextSize; + /// Determines whether the ImageIndex property needs to be stored in the fmx-file + /// True if ImageIndex property needs to be stored in the fmx file + function ImageIndexStored: Boolean; virtual; + /// Should be called when you change an instance or reference to instance of TBaseImageList or the + /// ImageIndex property + /// See also FMX.ActnList.IGlyph + procedure ImagesChanged; virtual; + procedure DoChanged; override; + function IsSizeStored: Boolean; override; + function IsPositionStored: Boolean; override; + procedure SetText(const Value: string); override; + procedure DoAddObject(const AObject: TFmxObject); override; + procedure DoInsertObject(Index: Integer; const AObject: TFmxObject); override; + procedure DoRemoveObject(const AObject: TFmxObject); override; + function EnterChildren(AObject: IControl): Boolean; override; + function GetAbsoluteRect: TRectF; override; + function DoGetUpdateRect: TRectF; override; + procedure ContentAddObject(const AObject: TFmxObject); virtual; + procedure ContentInsertObject(const AIndex: Integer; const AObject: TFmxObject); virtual; + procedure ContentRemoveObject(const AObject: TFmxObject); virtual; + procedure DefineProperties(Filer: TFiler); override; + procedure Paint; override; + procedure SetVisible(const Value: Boolean); override; + procedure SetHeight(const Value: Single); override; + procedure SetIsExpanded(const Value: Boolean); virtual; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Sort(Compare: TFmxObjectSortCompare); override; + function ItemByPoint(const X, Y: Single): TTreeViewItem; + function ItemByIndex(const Idx: Integer): TTreeViewItem; + function TreeView: TCustomTreeView; + function Level: Integer; + function ParentItem: TTreeViewItem; + procedure Select; + procedure Deselect; + procedure ExpandAll; + procedure CollapseAll; + procedure Expand; + procedure Collapse; + procedure Inflate; override; + property Count: Integer read GetCount; + property VisibleCount: Integer read FVisibleCount; + property GlobalIndex: Integer read FGlobalIndex; + property MinItemSize: TSizeF read GetMinItemSize; + /// The actual offset in the right of children elements + property ChildrenOffset: Single read FChildrenOffset; + /// The offset of children elements which specified by user if this value is greater or equal to + /// zero otherwise the default value is used. This value affects + /// ChildrenOffset property + property CustomChildrenOffset: Single read FCustomChildrenOffset write SetCustomChildrenOffset + stored IsCustomChildrenOffsetStored nodefault; + property Items[const Index: Integer]: TTreeViewItem read ItemByIndex; default; + property Width: Single read GetWidth; + /// The list of images. Can be nil. See also FMX.ActnList.IGlyph + property Images: TCustomImageList read GetImages; + published + property Align; + property AutoTranslate default True; + property ClipChildren default False; + property ClipParent default False; + property Cursor default crDefault; + property DragMode default TDragMode.dmManual; + property EnableDragHighlight default True; + property Enabled default True; + property StyledSettings; + property TextSettings; + property Locked default False; + property Height; + property HelpContext; + property HelpKeyword; + property HelpType; + {triggers} + property IsChecked: Boolean read FIsChecked write SetIsChecked; + property IsExpanded: Boolean read FIsExpanded write SetIsExpanded; + property IsSelected: Boolean read FIsSelected write SetIsSelected; + /// Zero based index of an image. The default is -1. + /// See also FMX.ActnList.IGlyph + /// If non-existing index is specified, an image is not drawn and no exception is raised + property ImageIndex: TImageIndex read GetImageIndex write SetImageIndex stored ImageIndexStored; + property Padding; + property Opacity; + property Margins; + property PopupMenu; + property Position; + property RotationAngle; + property RotationCenter; + property Scale; + property Size; + property StyleLookup; + property TabOrder; + property TabStop; + property Text; + property Visible default True; + property ParentShowHint; + {events} + property OnApplyStyleLookup; + {Drag and Drop events} + property OnDragEnter; + property OnDragLeave; + property OnDragOver; + property OnDragDrop; + property OnDragEnd; + {Mouse events} + property OnClick; + property OnDblClick; + property OnMouseDown; + property OnMouseMove; + property OnMouseUp; + property OnMouseWheel; + property OnMouseEnter; + property OnMouseLeave; + property OnPainting; + property OnPaint; + property OnResize; + property OnResized; + end; + +{ TTreeView } + + TOnCompareTreeViewItemEvent = function(Item1, Item2: TTreeViewItem): Integer of object; + TOnTreeViewDragChange = procedure(SourceItem, DestItem: TTreeViewItem; + var Allow: Boolean) of object; + +{ TTreeView } + + TCustomTreeView = class(TScrollBox, IItemsContainer, IInflatableContent, IGlyph) + private + FMouseSelecting: Boolean; + FOnChange: TNotifyEvent; + FSelected: TTreeViewItem; + FItemHeight: Single; + FCountExpanded: Integer; + FShowCheckboxes: Boolean; + FOnChangeCheck: TNotifyEvent; + FSorted: Boolean; + FOnCompare: TOnCompareTreeViewItemEvent; + FMultiSelect: Boolean; + FFirstSelect: TTreeViewItem; + FFocusedSelection: TControl; + FSelection: TControl; + FSelections: TControlList; + FAllowDrag: Boolean; + FStartDrag: Boolean; + FDragItem: TTreeViewItem; + FOnDragChange: TOnTreeViewDragChange; + FGlobalList: TList; + FAlternatingRowBackground: Boolean; + FOddFill: TBrush; + FFirstVisibleItem, FLastVisibleItem: Integer; + FNoItemsContent: TContent; + [Weak] FHoveredItem: TTreeViewItem; + FTextLayout: TTextLayout; + FToInflate: TList; + FInflater: TContentInflater; + FSelectionChanging: Boolean; + FImageLink: TGlyphImageLink; + [Weak] FImages: TCustomImageList; + procedure SetItemHeight(const Value: Single); + procedure SetCheckboxesVisibility(const Value: Boolean); + function GetTreeItem(Index: Integer): TTreeViewItem; + procedure SetSorted(const Value: Boolean); + procedure SortItems; + procedure SelectRange(const Item1, Item2: TTreeViewItem); + procedure UpdateSelection; + procedure UpdateVisibleItems; + procedure UpdateGlobalIndexes(const Force: Boolean = False); + procedure SetAllowDrag(const Value: Boolean); + function GetCount: Integer; + procedure SetAlternatingRowBackground(const Value: Boolean); + procedure SetHoveredItem(const Value: TTreeViewItem); + function LocalPointToHoveredItemLocalPoint(const AX, AY: Single): TPointF; + function GetImages: TCustomImageList; + procedure SetImages(const Value: TCustomImageList); + { IGlyph } + function GetImageIndex: TImageIndex; + procedure SetImageIndex(const Value: TImageIndex); + function GetImageList: TBaseImageList; inline; + procedure SetImageList(const Value: TBaseImageList); + function IGlyph.GetImages = GetImageList; + procedure IGlyph.SetImages = SetImageList; + { IItemsContainer } + function IItemsContainer.GetItemsCount = GetCount; + function GetItem(const AIndex: Integer): TFmxObject; + function MouseInContentLayout(const X, Y: Single): Boolean; + function GetGlobalCount: Integer; + procedure InvalidateGlobalList; + procedure ItemSizeMightHaveChanged(const AItem: TTreeViewItem); + { Inflatable } + function GetInflatableItems: TList; + procedure NotifyInflated; + protected + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + procedure DoUpdateAniCalculations(const AAniCalculations: TScrollCalculations); override; + procedure Loaded; override; + /// Should be called when you change an instance or reference to instance of TBaseImageList or + /// ImageIndex property + /// See also FMX.ActnList.IGlyph + procedure ImagesChanged; virtual; + { Selection } + procedure ClearSelection; + procedure SelectAll; + procedure SetSelected(const Value: TTreeViewItem); virtual; + { Styles } + procedure ApplyStyle; override; + procedure FreeStyle; override; + { Tree View Events } + procedure DoChange; virtual; + procedure DoChangeCheck(const Item: TTreeViewItem); virtual; + { Focus } + procedure DoEnter; override; + procedure DoExit; override; + { Children structure } + procedure DoAddObject(const AObject: TFmxObject); override; + procedure DoInsertObject(Index: Integer; const AObject: TFmxObject); override; + procedure DoRemoveObject(const AObject: TFmxObject); override; + function IsAddToContent(const AObject: TFmxObject): Boolean; override; + procedure ContentAddObject(const AObject: TFmxObject); override; + procedure ContentInsertObject(Index: Integer; const AObject: TFmxObject); override; + procedure ContentRemoveObject(const AObject: TFmxObject); override; + procedure ContentBeforeRemoveObject(AObject: TFmxObject); override; + { Content Scrolling } + procedure ViewportPositionChange(const OldViewportPosition, NewViewportPosition: TPointF; + const ContentSizeChanged: Boolean); override; + function CreateScrollContent: TScrollContent; override; + function DoCalcContentBounds: TRectF; override; + function GetItemRect(const Item: TTreeViewItem): TRectF; + { Painting } + procedure DoContentPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); + function IsOpaque: Boolean; override; + { Mouse events } + procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + procedure MouseMove(Shift: TShiftState; X, Y: Single); override; + procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + procedure MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); override; + procedure MouseClick(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + { Keyboards events } + procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); override; + procedure KeyUp(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); override; + { Drag And Drop } + procedure DragOver(const Data: TDragObject; const Point: TPointF; var Operation: TDragOperation); override; + procedure DragDrop(const Data: TDragObject; const Point: TPointF); override; + procedure DragLeave; override; + function ObjectAtPoint(P: TPointF): IControl; override; + procedure ChangeOrder; override; + procedure ItemExpanded(const Item: TTreeViewItem); + property HoveredItem: TTreeViewItem read FHoveredItem write SetHoveredItem; + property FirstSelectedItem: TTreeViewItem read FFirstSelect; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Clear; + procedure ExpandAll; + procedure CollapseAll; + function ItemByText(const AText: string): TTreeViewItem; + function ItemByPoint(const X, Y: Single): TTreeViewItem; + function ItemByIndex(const Idx: Integer): TTreeViewItem; + function ItemByGlobalIndex(const Idx: Integer): TTreeViewItem; + property Count: Integer read GetCount; + property GlobalCount: Integer read GetGlobalCount; + property CountExpanded: Integer read FCountExpanded; + property Selected: TTreeViewItem read FSelected write SetSelected; + property Items[Index: Integer]: TTreeViewItem read GetTreeItem; + property AllowDrag: Boolean read FAllowDrag write SetAllowDrag; + property AlternatingRowBackground: Boolean read FAlternatingRowBackground write SetAlternatingRowBackground; + property ItemHeight: Single read FItemHeight write SetItemHeight; + /// The list of images. Can be nil. See also FMX.ActnList.IGlyph + property Images: TCustomImageList read GetImages write SetImages; + property MultiSelect: Boolean read FMultiSelect write FMultiSelect default False; + property ShowCheckboxes: Boolean read FShowCheckboxes write SetCheckboxesVisibility default False; + property Sorted: Boolean read FSorted write SetSorted default False; + property OnChange: TNotifyEvent read FOnChange write FOnChange; + property OnChangeCheck: TNotifyEvent read FOnChangeCheck write FOnChangeCheck; + property OnCompare: TOnCompareTreeViewItemEvent read FOnCompare write FOnCompare; + property OnDragChange: TOnTreeViewDragChange read FOnDragChange write FOnDragChange; + end; + + TTreeView = class(TCustomTreeView) + published + property StyleLookup; + property CanFocus default True; + property CanParentFocus; + property DisableFocusEffect default True; + property TabOrder; + property TabStop; + property AllowDrag default False; + property AlternatingRowBackground default False; + property Hint; + property ItemHeight; + property Images; + property MultiSelect default False; + property ShowCheckboxes default False; + property Sorted default False; + property ParentShowHint; + property ShowHint; + property OnCanFocus; + property OnChange; + property OnChangeCheck; + property OnCompare; + property OnDragChange; + property OnKeyDown; + property OnKeyUp; + end; + +implementation + +uses + System.Math, System.Math.Vectors, System.RTLConsts, System.SysUtils, FMX.Consts, FMX.Ani, FMX.Utils; + +type + TTreeViewItemContent = class(TContent) + private + FItem: TTreeViewItem; + protected + function GetFirstVisibleObjectIndex: Integer; override; + function GetLastVisibleObjectIndex: Integer; override; + function GetAbsoluteRect: TRectF; override; + function DoGetUpdateRect: TRectF; override; + procedure DoRealign; override; + procedure DoAddObject(const AObject: TFmxObject); override; + procedure DoInsertObject(Index: Integer; const AObject: TFmxObject); override; + procedure DoRemoveObject(const AObject: TFmxObject); override; + public + end; + +{ TTreeViewItemContent } + +procedure TTreeViewItemContent.DoAddObject(const AObject: TFmxObject); +begin + inherited DoAddObject(AObject); + if Parent is TTreeViewItem then + TTreeViewItem(Parent).ContentAddObject(AObject); +end; + +procedure TTreeViewItemContent.DoRemoveObject(const AObject: TFmxObject); +begin + inherited; + if Parent is TTreeViewItem then + TTreeViewItem(Parent).ContentRemoveObject(AObject); +end; + +procedure TTreeViewItemContent.DoInsertObject(Index: Integer; + const AObject: TFmxObject); +begin + inherited DoInsertObject(Index, AObject); + if Parent is TTreeViewItem then + TTreeViewItem(Parent).ContentInsertObject(Index, AObject); +end; + +procedure TTreeViewItemContent.DoRealign; +begin +end; + +function TTreeViewItemContent.GetAbsoluteRect: TRectF; +begin + if FItem <> nil then + Result := FItem.GetAbsoluteRect + else + Result := inherited; +end; + +function TTreeViewItemContent.DoGetUpdateRect: TRectF; +begin + if FItem <> nil then + Result := FItem.DoGetUpdateRect + else + Result := inherited; +end; + +function TTreeViewItemContent.GetFirstVisibleObjectIndex: Integer; +begin + Result := 0; +end; + +function TTreeViewItemContent.GetLastVisibleObjectIndex: Integer; +begin + if FItem.IsExpanded then + Result := ControlsCount + else + Result := 0; +end; + +{ TTreeViewItem } + +constructor TTreeViewItem.Create(AOwner: TComponent); +begin + inherited; + FImageLink := TGlyphImageLink.Create(Self); + AutoTranslate := True; + TextAlign := TTextAlign.Leading; + Size.SetSizeWithoutNotification(TSizeF.Create(Width, 0)); + FCustomHeight := False; + HitTest := False; + CanFocus := False; + FContent := TTreeViewItemContent.Create(Self); + FChildrenOffset := 0; + FCustomChildrenOffset := -1; + TTreeViewItemContent(FContent).FItem := Self; + FContent.Stored := False; + FContent.Parent := Self; + FContent.Locked := True; + FContent.HitTest := False; +end; + +procedure TTreeViewItem.ChangeOrder; +var + LTreeView : TCustomTreeView; +begin + inherited ChangeOrder; + LTreeView := TreeView; + if (LTreeView <> nil) and not LTreeView.IsUpdating then + begin + LTreeView.UpdateGlobalIndexes(True); + LTreeView.RealignContent; + end; +end; + +procedure TTreeViewItem.ContentAddObject(const AObject: TFmxObject); +var + LTreeView : TCustomTreeView; +begin + if not (AObject is TTreeViewItem) then + begin + if FNoItemsContent = nil then + begin + FNoItemsContent := TLayout.Create(nil); + FNoItemsContent.Parent := Self; + FNoItemsContent.SetBounds(0, 0, 0, 0); + FNoItemsContent.Stored := False; + FNoItemsContent.Locked := True; + FNoItemsContent.HitTest := False; + end; + FNoItemsContent.AddObject(AObject) + end + else + begin + LTreeView := TreeView; + if LTreeView <> nil then + begin + if [csLoading, csDestroying] * LTreeView.ComponentState = [] then + TTreeViewItem(AObject).SetImages(LTreeView.Images); + LTreeView.InvalidateGlobalList; + LTreeView.RealignContent; + end; + end; +end; + +type + TTreeViewItemTextSettings = class(TTextSettingsInfo.TCustomTextSettings) + public + constructor Create(const AOwner: TPersistent); override; + property WordWrap default False; + published + property Font; + property FontColor; + property HorzAlign; + end; + +{ TTreeViewItemTextSettings } + +constructor TTreeViewItemTextSettings.Create(const AOwner: TPersistent); +begin + inherited; + WordWrap := False; +end; + +function TTreeViewItem.GetTextSettingsClass: TTextSettingsInfo.TCustomTextSettingsClass; +begin + Result := TTreeViewItemTextSettings; +end; + +procedure TTreeViewItem.ContentInsertObject(const AIndex: Integer; + const AObject: TFmxObject); +begin + ContentAddObject(AObject); +end; + +procedure TTreeViewItem.ContentRemoveObject(const AObject: TFmxObject); +var + LTreeView: TCustomTreeView; +begin + if AObject is TTreeViewItem then + begin + // After removing child item, we need recalculate Visible Items Count + // and update Visible of 'Expand' button + RecountVisibleItems; + UpdateExpandedButtonVisibility; + + TTreeViewItem(AObject).Deselect; + LTreeView := TreeView; + if LTreeView <> nil then + begin + if [csLoading, csDestroying] * LTreeView.ComponentState = [] then + TTreeViewItem(AObject).SetImages(nil); + LTreeView.InvalidateGlobalList; + LTreeView.RealignContent; + end; + end; +end; + +procedure TTreeViewItem.RecountVisibleItems; +var + I: Integer; +begin + FVisibleCount := 0; + for I := 0 to Count - 1 do + if FContent.Controls[I].IsVisible then + Inc(FVisibleCount); +end; + +procedure TTreeViewItem.RequestRecount; +var + LTreeView: TCustomTreeView; +begin + LTreeView := TreeView; + if LTreeView <> nil then + begin + LTreeView.InvalidateGlobalList; + LTreeView.InvalidateContentSize; + end; +end; + +procedure TTreeViewItem.DragEnd; +var + LTreeView : TCustomTreeView; +begin + inherited; + DragLeave; + LTreeView := TreeView; + if (LTreeView <> nil) and (LTreeView.FDragItem <> nil) then + begin + LTreeView.FDragItem.RemoveFreeNotify(LTreeView); + LTreeView.FDragItem := nil; + end; +end; + +function TTreeViewItem.GetAbsoluteRect: TRectF; +var + I: Integer; +begin + Result := inherited GetAbsoluteRect; + if IsExpanded and (Count > 0) then + begin + for I := 0 to Count - 1 do + Result := UnionRect(Result, Items[I].AbsoluteRect); + end; +end; + +function TTreeViewItem.DoGetUpdateRect: TRectF; +var + I: Integer; +begin + Result := inherited DoGetUpdateRect; + if IsExpanded and (Count > 0) then + for I := 0 to Count - 1 do + Result := UnionRect(Result, Items[I].UpdateRect); +end; + +function TTreeViewItem.GetLevelOffset: Single; +var + Item: TTreeViewItem; + Offs: Single; + function NextLevel(var Item: TTreeViewItem): Boolean; + var + P: TFmxObject; + begin + Result := False; + P := Item.Parent; + if (P is TContent) then + P := P.Parent; + if P is TTreeViewItem then + begin + Result := True; + Item := TTreeViewItem(P); + end; + end; +begin + Result := 0; + Item := self; + while NextLevel(Item) do + begin + Offs := Item.ChildrenOffset; + Result := Result + Offs; + end; +end; + +function TTreeViewItem.GetCount: Integer; +begin + Result := FContent.ControlsCount; +end; + +procedure TTreeViewItem.DefineProperties(Filer: TFiler); +begin + inherited; + Filer.DefineProperty('HitTest', IgnoreBooleanValue, nil, False); // do not localize + Filer.DefineProperty('Width', IgnoreFloatValue, nil, False); // do not localize +end; + +procedure TTreeViewItem.Deselect; +begin + IsSelected := False; +end; + +destructor TTreeViewItem.Destroy; + procedure ClearRef(var Value: TTreeViewItem); + begin + if Value = Self then + Value := nil; + end; +var + LTreeView: TCustomTreeView; +begin + LTreeView := TreeView; + if LTreeView <> nil then + begin + ClearRef(LTreeView.FFirstSelect); + ClearRef(LTreeView.FDragItem); + ClearRef(LTreeView.FSelected); + if LTreeView.FGlobalList <> nil then + LTreeView.FGlobalList.Remove(Self); + end; + FImageLink.DisposeOf; + FImageLink := nil; + inherited; +end; + +procedure TTreeViewItem.DoAddObject(const AObject: TFmxObject); +begin + if AObject is TTreeViewItem then + begin + if FUpdating > TTreeViewItem(AObject).FUpdating then + TTreeViewItem(AObject).BeginUpdate; + FContent.AddObject(AObject); + RecountVisibleItems; + UpdateExpandedButtonVisibility; + if IsExpanded then + RequestRecount; + end + else + inherited; +end; + +procedure TTreeViewItem.DoInsertObject(Index: Integer; const AObject: TFmxObject); +begin + if AObject is TTreeViewItem then + begin + if FUpdating > TTreeViewItem(AObject).FUpdating then + TTreeViewItem(AObject).BeginUpdate; + FContent.InsertObject(Index, AObject); + RecountVisibleItems; + UpdateExpandedButtonVisibility; + if IsExpanded then + RequestRecount; + end + else + inherited; +end; + +procedure TTreeViewItem.DoRemoveObject(const AObject: TFmxObject); +begin + if (AObject is TTreeViewItem) and (TTreeViewItem(AObject).TreeView = TreeView) then + begin + TTreeViewItem(AObject).Parent := nil; + TTreeViewItem(AObject).Deselect; + RecountVisibleItems; + UpdateExpandedButtonVisibility; + if IsExpanded then + RequestRecount; + end + else + inherited; +end; + +function TTreeViewItem.GetItem(const AIndex: Integer): TFmxObject; +begin + Result := Items[AIndex]; +end; + +function TTreeViewItem.ItemByPoint(const X, Y: Single): TTreeViewItem; +var + I: Integer; + P, P1: TPointF; + LItem: TTreeViewItem; +begin + P := LocalToAbsolute(TPointF.Create(X, Y)); + for I := 0 to Count - 1 do + begin + LItem := ItemByIndex(I); + if not LItem.Visible then + Continue; + if LItem.PointInObject(P.X, P.Y) then + begin + Result := LItem; + Exit; + end + else if (LItem.Count > 0) and (LItem.IsExpanded) then + begin + P1 := LItem.AbsoluteToLocal(P); + Result := LItem.ItemByPoint(P1.X, P1.Y); + if Result <> nil then + Exit; + end; + end; + Result := nil; +end; + +function TTreeViewItem.IsPositionStored: Boolean; +begin + Result := False; +end; + +function TTreeViewItem.IsSizeStored: Boolean; +begin + Result := FCustomHeight; +end; + +function TTreeViewItem.ItemByIndex(const Idx: Integer): TTreeViewItem; +begin + if (Idx >= 0) and (Idx < Count) then + Result := TTreeViewItem(FContent.Controls[Idx]) + else + raise ERangeError.CreateFMT(sArgumentOutOfRange_Index, [Idx, Count]); +end; + +procedure TTreeViewItem.Paint; +var + R: TRectF; +begin + inherited Paint; + if (csDesigning in ComponentState) and not Locked and not FInPaintTo then + begin + R := LocalRect; + InflateRect(R, -0.5, -0.5); + Canvas.Stroke.Thickness := 1; + Canvas.Stroke.Dash := TStrokeDash.Dash; + Canvas.Stroke.Kind := TBrushKind.Solid; + Canvas.Stroke.Color := $A0909090; + Canvas.DrawRect(R, 0, 0, AllCorners, AbsoluteOpacity); + Canvas.Stroke.Dash := TStrokeDash.Solid; + end; +end; + +function TTreeViewItem.ParentItem: TTreeViewItem; +begin + TFMXObjectHelper.FindNearestParentOfClass(Self, Result); +end; + +function TTreeViewItem.EnterChildren(AObject: IControl): Boolean; +var + LTreeView : TCustomTreeView ; +begin + Result := inherited EnterChildren(AObject); + LTreeView := TreeView; + if LTreeView <> nil then + begin + LTreeView.Selected := Self; + Result := True; + end; +end; + +procedure TTreeViewItem.Collapse; +begin + IsExpanded := False; +end; + +procedure TTreeViewItem.CollapseAll; +var + i: Integer; + Item: TTreeViewItem; +begin + BeginUpdate; + try + Collapse; + for i := Count - 1 downto 0 do + begin + Item := ItemByIndex(i); + if Item <> nil then + Item.CollapseAll; + end; + finally + EndUpdate; + end; +end; + +procedure TTreeViewItem.Expand; +begin + IsExpanded := True; +end; + +procedure TTreeViewItem.ExpandAll; +var + i: Integer; + Item: TTreeViewItem; +begin + BeginUpdate; + try + Expand; + for i := Count - 1 downto 0 do + begin + Item := ItemByIndex(i); + if Item <> nil then + Item.ExpandAll; + end; + finally + EndUpdate; + end; +end; + +function TTreeViewItem.Level: Integer; +var + P: TFmxObject; +begin + Result := 0; + P := Parent; + while (P <> nil) and not (P is TCustomTreeView) do + begin + Result := Result + 1; + P := P.Parent; + if (P is TContent) then + P := P.Parent; + end; +end; + +procedure TTreeViewItem.OnExpandButtonStyleLookup(Sender: TObject); +begin + UpdateExpandedButtonVisibility; +end; + +function TTreeViewItem.TreeView: TCustomTreeView; +begin + TFMXObjectHelper.FindNearestParentOfClass(Self, Result); +end; + +procedure TTreeViewItem.FreeStyle; +begin + inherited; + if FButton <> nil then + begin + FButton.OnClick := nil; + FButton.OnApplyStyleLookup := nil; + FButton.Visible := FOldButtonVisible; + FButton := nil; + end; + FExpander := nil; + if FCheck <> nil then + begin + FCheck.OnClick := nil; + FCheck.OnChange := nil; + FCheck.Visible := FOldCheckVisible; + FCheck.IsChecked := FOldChecked; + FCheck := nil; + end; + if FGlyph <> nil then + begin + FGlyph.BeginUpdate; + try + FGlyph.ImageIndex := -1; + FGlyph.Images := nil; + finally + FGlyph.EndUpdate; + end; + FGlyph := nil; + end; +end; + +procedure TTreeViewItem.UpdateChildrenOffset; +begin + if FCustomChildrenOffset >= 0 then + FChildrenOffset := FCustomChildrenOffset + else if FExpander <> nil then + FChildrenOffset := FExpander.Width + else if FCheck <> nil then + FChildrenOffset := FCheck.Width + else if FButton <> nil then + FChildrenOffset := FButton.Width + else + FChildrenOffset := DefaultHeight; +end; + +procedure TTreeViewItem.ApplyStyle; +var + LTreeView: TCustomTreeView; + LHeight: Single; + LCustomHeight: Boolean; +begin + LCustomHeight := FCustomHeight and (Height > 0); + LHeight := Height; + try + inherited; + FindStyleResource('expander', FExpander); + if FindStyleResource('button', FButton) then + begin + FOldButtonVisible := FButton.Visible; + FButton.OnClick := DoButtonClick; + FButton.OnApplyStyleLookup := OnExpandButtonStyleLookup; + UpdateExpandedButtonVisibility; + end; + if FindStyleResource('check', FCheck) then + begin + FOldCheckVisible := FCheck.Visible; + FOldChecked := FCheck.IsChecked; + FCheck.IsChecked := IsChecked; + FCheck.OnChange := DoCheckClick; + LTreeView := TreeView ; + if LTreeView <> nil then + FCheck.Visible := LTreeView.ShowCheckboxes; + end; + if FindStyleResource('glyphstyle', FGlyph) then + begin + FGlyph.Images := TCustomImageList(FImageLink.Images); + FGlyph.ImageIndex := FImageLink.ImageIndex; + FOldGlyphVisible := FGlyph.Visible; + end + else + FOldGlyphVisible := False; + if IsSelected then + begin + StartTriggerAnimation(Self, 'IsSelected'); + ApplyTriggerEffect(Self, 'IsSelected'); + end; + Align := TAlignLayout.None; + UpdateChildrenOffset; + finally + if LCustomHeight then + Height := LHeight; + FCustomHeight := LCustomHeight; + end; +end; + +function TTreeViewItem.CalcMinSize: TSizeF; +const + MinText = '1'; + + procedure UpdateWidth(const Control: TControl; const VisibleOnly: Boolean); + var + R: TRectF; + begin + if (Control <> nil) and (not VisibleOnly or Control.Visible) then + begin + R := Control.BoundsRect; + R := Control.Margins.MarginRect(R); + Result.cx := Result.cx + R.Width; + end; + end; + + function FirstWord(const Text: string; const NeedEllipsis: Boolean): string; + var + I: Integer; + begin + I := Text.IndexOf(' '); + if I >= 0 then + begin + Result := Text.Substring(0, I); + if NeedEllipsis then + Result := Result + SChrHorizontalEllipsis; + end + else + Result := Text; + end; + +var + R: TRectF; + LLayout: TTextLayout; + LTree: TCustomTreeView; + TextSettings: ITextSettings; +begin + Result := TSizeF.Create(0, 0); + LTree := TreeView; + if LTree = nil then + Exit; + if Visible then + begin + if (TextObject <> nil) and TextObject.GetInterface(ITextSettings, TextSettings) then + begin + LLayout := LTree.FTextLayout; + if LLayout <> nil then + begin + LLayout.BeginUpdate; + try + LLayout.WordWrap := False; + LLayout.HorizontalAlign := TTextAlign.Leading; + LLayout.VerticalAlign := TTextAlign.Leading; + LLayout.Color := TAlphaColorRec.Black; + LLayout.Font := TextSettings.ResultingTextSettings.Font; + LLayout.Opacity := 1; + LLayout.Trimming := TTextTrimming.None; + if Text.IsEmpty then + LLayout.Text := MinText + else + case TextSettings.ResultingTextSettings.Trimming of + TTextTrimming.None: + begin + if TextSettings.ResultingTextSettings.WordWrap then + LLayout.Text := FirstWord(Text, False) + else + LLayout.Text := Text; + end; + TTextTrimming.Character: + LLayout.Text := MinText + SChrHorizontalEllipsis; + TTextTrimming.Word: + LLayout.Text := FirstWord(Text, True); + end; + finally + LLayout.EndUpdate; + end; + R := LLayout.TextRect; + Result.Width := Ceil(R.Width) + 2; + Result.Height := Ceil(R.Height) + 4; + UpdateWidth(FButton, False); + UpdateWidth(FCheck, True); + UpdateWidth(FGlyph, True); + Result.cx := Result.cx + Padding.Left + Padding.Right; + Result.cy := Result.cy + Padding.Top + Padding.Bottom; + end; + end; + end; +end; + +procedure TTreeViewItem.Inflate; +begin + InvalidateTextSize; + inherited; + DisableDisappear := True; + try + ApplyStyleLookup; + finally + DisableDisappear := False; + end; + CalcMinSize; +end; + +procedure TTreeViewItem.InvalidateTextSize; +begin + FMinItemSize := TSizeF.Create(0, 0); +end; + +function TTreeViewItem.GetMinItemSize: TSizeF; +begin + if FMinItemSize.IsZero then + FMinItemSize := CalcMinSize; + Result := FMinItemSize; +end; + +procedure TTreeViewItem.DoChanged; +begin + inherited; + if not FCustomHeight then + InvalidateTextSize; +end; + +procedure TTreeViewItem.DoCheckClick(Sender: TObject); +var + LTreeView : TCustomTreeView; +begin + if FCheck <> nil then + FIsChecked := FCheck.IsChecked; + LTreeView := TreeView; + if LTreeView <> nil then + begin + LTreeView.SetFocus; + LTreeView.DoChangeCheck(Self); + end; +end; + +procedure TTreeViewItem.UpdateCheckBoxVisibility; +var + i, j: Integer; + LTreeView: TCustomTreeView; +begin + LTreeView := TreeView; + if (LTreeView <> nil) and (FCheck <> nil) and + (FCheck.Visible <> LTreeView.ShowCheckboxes) then + begin + FCheck.Visible := LTreeView.ShowCheckboxes; + InvalidateTextSize; + end; + if ControlsCount > 0 then + for i := 0 to ControlsCount - 1 do + if Controls[i] is TTreeViewItem then + TTreeViewItem(Controls[i]).UpdateCheckBoxVisibility + else if Controls[i] is TTreeViewItemContent then + for j := 0 to Controls[i].ControlsCount - 1 do + if Controls[i].Controls[j] is TTreeViewItem then + TTreeViewItem(Controls[i].Controls[j]).UpdateCheckBoxVisibility +end; + +procedure TTreeViewItem.UpdateExpandedButtonVisibility; +begin + if (FButton <> nil) and not (csLoading in ComponentState) then + begin + FButton.Visible := VisibleCount > 0; + if FButton.Visible then + TAnimator.StartTriggerAnimation(FButton, Self, 'IsExpanded'); + end; +end; + +procedure TTreeViewItem.Select; +begin + IsSelected := True; +end; + +function TTreeViewItem.IsCustomChildrenOffsetStored: Boolean; +begin + Result := FCustomChildrenOffset >= 0; +end; + +procedure TTreeViewItem.SetCustomChildrenOffset(const Value: Single); +var + Parent: TTreeViewItem; +begin + if not SameValue(FCustomChildrenOffset, Value, TEpsilon.FontSize) then + begin + FCustomChildrenOffset := Value; + UpdateChildrenOffset; + if not IsUpdating and IsExpanded and (TreeView <> nil) then + begin + Parent := ParentItem; + while Parent <> nil do + if Parent.IsExpanded then + Parent := Parent.ParentItem + else + Exit; + TreeView.RealignContent; + TreeView.UpdateSelection; + end; + end; +end; + +procedure TTreeViewItem.SetHeight(const Value: Single); +var + ItemSize: TSizeF; +begin + if not SameValue(Value, Height) then + begin + if (not (csLoading in ComponentState)) then + begin + if Value <= 0 then + FCustomHeight := False + else + begin + ItemSize := MinItemSize; + if ItemSize.cy > 0 then + FCustomHeight := not SameValue(Value, ItemSize.cy) + else + FCustomHeight := True; + end; + end + else + begin + FCustomHeight := Value >= 1; + end; + end; + inherited; +end; + +procedure TTreeViewItem.SetIsChecked(const Value: Boolean); +var + LTreeView: TCustomTreeView; +begin + if FIsChecked <> Value then + begin + FIsChecked := Value; + if FCheck <> nil then + FCheck.IsChecked := FIsChecked; + LTreeView := TreeView; + if LTreeView <> nil then + LTreeView.DoChangeCheck(Self); + end; +end; + +procedure TTreeViewItem.SetIsSelected(const Value: Boolean); +var + LTreeView : TCustomTreeView; +begin + if FIsSelected <> Value then + begin + FIsSelected := Value; + StartTriggerAnimation(Self, 'IsSelected'); + LTreeView := TreeView; + if LTreeView <> nil then + begin + if not LTreeView.MultiSelect then + if Value then + LTreeView.Selected := Self + else + LTreeView.Selected := nil; + LTreeView.UpdateSelection; + end; + end; +end; + +procedure TTreeViewItem.SetText(const Value: string); +var + LTreeView: TCustomTreeView; +begin + if Value <> Text then + begin + inherited; + InvalidateTextSize; + LTreeView := TreeView; + if LTreeView <> nil then + LTreeView.ItemSizeMightHaveChanged(Self); + end; +end; + +procedure TTreeViewItem.SetVisible(const Value: Boolean); +var + LChanged: Boolean; + LParentItem: TTreeViewItem; + LTreeView: TCustomTreeView; +begin + LChanged := inherited Visible <> Value; + inherited; + if LChanged then + begin + LParentItem := ParentItem; + if LParentItem <> nil then + ParentItem.RecountVisibleItems; + LTreeView := TreeView; + if LTreeView <> nil then + LTreeView.RealignContent; + end; +end; + +procedure TTreeViewItem.Sort(Compare: TFmxObjectSortCompare); +begin + FContent.Sort(Compare); +end; + +procedure TTreeViewItem.DoButtonClick(Sender: TObject); +begin + IsExpanded := not IsExpanded; +end; + +procedure TTreeViewItem.SetIsExpanded(const Value: Boolean); +var + LTreeView: TCustomTreeView; +begin + if FIsExpanded <> Value then + begin + FIsExpanded := Value; + UpdateExpandedButtonVisibility; + InvalidateTextSize; + LTreeView := TreeView; + if LTreeView <> nil then + LTreeView.ItemExpanded(Self); + end; +end; + +function TTreeViewItem.GetImages: TCustomImageList; +begin + if FImageLink <> nil then + Result := TCustomImageList(FImageLink.Images) + else + Result := FImages; +end; + +procedure TTreeViewItem.SetImages(const Value: TCustomImageList); +begin + if FImageLink <> nil then + FImageLink.Images := Value + else + FImages := Value; +end; + +function TTreeViewItem.GetImageIndex: TImageIndex; +begin + if FImageLink <> nil then + Result := FImageLink.ImageIndex + else + Result := -1; +end; + +procedure TTreeViewItem.SetImageIndex(const Value: TImageIndex); +begin + if FImageLink <> nil then + FImageLink.ImageIndex := Value; +end; + +function TTreeViewItem.GetImageList: TBaseImageList; +begin + Result := GetImages; +end; + +procedure TTreeViewItem.SetImageList(const Value: TBaseImageList); +begin + // none. +end; + +function TTreeViewItem.ImageIndexStored: Boolean; +begin + Result := ActionClient or (ImageIndex <> -1); +end; + +procedure TTreeViewItem.ImagesChanged; + + procedure UpdateImages; + var + I: Integer; + begin + if FImages <> FImageLink.Images then + begin + FImages := TCustomImageList(FImageLink.Images); + if [csLoading, csDestroying] * ComponentState = [] then + for I := 0 to Count - 1 do + Items[I].SetImages(FImages); + end; + end; + + procedure UpdateTreeView; + var + LTreeView: TCustomTreeView; + begin + if [csLoading, csDestroying] * ComponentState = [] then + begin + LTreeView := TreeView; + if (LTreeView <> nil) and not LTreeView.IsUpdating then + begin + LTreeView.BeginUpdate; + try + UpdateImages; + InvalidateTextSize; + LTreeView.ItemSizeMightHaveChanged(Self); + finally + LTreeView.EndUpdate; + end; + end + else + UpdateImages; + end; + end; + +var + NewGlyphVisible: Boolean; +begin + if FGlyph <> nil then + begin + FGlyph.BeginUpdate; + try + FGlyph.Images := TCustomImageList(FImageLink.Images); + FGlyph.ImageIndex := FImageLink.ImageIndex; + finally + FGlyph.EndUpdate; + end; + if ([csLoading, csDestroying] * ComponentState = []) then + FGlyph.Repaint; + end; + + NewGlyphVisible := (FGlyph <> nil) and (FGlyph.Visible); + if FOldGlyphVisible <> NewGlyphVisible then + begin + FOldGlyphVisible := NewGlyphVisible; + UpdateTreeView; + end + else + UpdateImages; +end; + +{ TTreeViewContent } + +type + + TTreeViewContent = class(TScrollContent) + private + [Weak] FTreeView: TCustomTreeView; + protected + function GetFirstVisibleObjectIndex: Integer; override; + function GetLastVisibleObjectIndex: Integer; override; + procedure DoRealign; override; + public + end; + +function TTreeViewContent.GetFirstVisibleObjectIndex: Integer; +var + Item: TTreeViewItem; +begin + if FTreeView.FGlobalList.Count > 0 then + begin + Item := FTreeView.FGlobalList[FTreeView.FFirstVisibleItem]; + while Item.ParentItem <> nil do + Item := Item.ParentItem; + Result := Item.Index; + end + else + Result := 0; +end; + +function TTreeViewContent.GetLastVisibleObjectIndex: Integer; +var + Item: TTreeViewItem; +begin + if (FTreeView.FGlobalList.Count > 0) and (FTreeView.FLastVisibleItem < FTreeView.FGlobalList.Count) then + begin + Item := FTreeView.FGlobalList[FTreeView.FLastVisibleItem]; + while Item.ParentItem <> nil do + Item := Item.ParentItem; + Result := Item.Index + 1; + if Result > ControlsCount then + Result := ControlsCount; + end + else + Result := ControlsCount; +end; + +procedure TTreeViewContent.DoRealign; +begin +end; + +{ TTreeView } + +constructor TCustomTreeView.Create(AOwner: TComponent); +begin + inherited; + FImageLink := TGlyphImageLink.Create(Self); + FGlobalList := TList.Create; + FGlobalList.Capacity := 100; + FOddFill := TBrush.Create(TBrushKind.Solid, $20000000); + DisableFocusEffect := True; + CanFocus := True; + AutoCapture := True; + Width := 100; + Height := 100; + FItemHeight := 0; + SetAcceptsControls(False); + FToInflate := TList.Create; + FInflater := TContentInflater.Create(Self); +end; + +function TCustomTreeView.CreateScrollContent: TScrollContent; +begin + Result := TTreeViewContent.Create(Self); + TTreeViewContent(Result).FTreeView := Self; +end; + +destructor TCustomTreeView.Destroy; +begin + FreeAndNil(FSelections); + FreeAndNil(FGlobalList); + FreeAndNil(FOddFill); + FInflater.DisposeOf; + FreeAndNil(FToInflate); + FImageLink.DisposeOf; + inherited; +end; + +procedure TCustomTreeView.ApplyStyle; +var + T: TFmxObject; + ContentLayout: TControl; +begin + inherited ApplyStyle; + if FindStyleResource('content', ContentLayout) then + ContentLayout.OnPainting := DoContentPaint; + if FindStyleResource('selection', FSelection) then + FSelection.Visible := False; + if FindStyleResource('focusedselection', FFocusedSelection) then + FFocusedSelection.Visible := False; + T := FindStyleResource('AlternatingRowBackground'); + if T is TBrushObject then + FOddFill.Assign(TBrushObject(T).Brush); + if T is TControl then + TControl(T).Visible := False; + UpdateSelection; +end; + +procedure TCustomTreeView.FreeStyle; +begin + inherited FreeStyle; + FSelection := nil; + FFocusedSelection := nil; + if FSelections <> nil then + FSelections.Clear; +end; + +procedure TCustomTreeView.UpdateGlobalIndexes(const Force: Boolean); +var + GlobalIdx: Integer; + + procedure RecountItem(const AItem: TTreeViewItem); + var + I: Integer; + begin + if AItem <> nil then + begin + AItem.FGlobalIndex := GlobalIdx; + Inc(GlobalIdx); + FGlobalList.Add(AItem); + if AItem.IsExpanded then + for I := 0 to AItem.Count - 1 do + RecountItem(AItem.ItemByIndex(I)); + end; + end; + +var + I: Integer; +begin + if Force then + FGlobalList.Clear; + if (FGlobalList.Count = 0) and (Count > 0) then + begin + GlobalIdx := 0; + for I := 0 to Count - 1 do + RecountItem(ItemByIndex(I)); + end; +end; + +function CompareTreeItem(Item1, Item2: TFmxObject): Integer; +var + LItem1TV: TCustomTreeView; +begin + if (Item1 is TTreeViewItem) and (Item2 is TTreeViewItem) then + begin + LItem1TV := TTreeViewItem(Item1).TreeView; + if (LItem1TV <> nil) and Assigned(LItem1TV.OnCompare) then + Result := LItem1TV.OnCompare(TTreeViewItem(Item1), + TTreeViewItem(Item2)) + else + Result := CompareText(TTreeViewItem(Item1).Text, + TTreeViewItem(Item2).Text); + end + else + Result := 0; +end; + +procedure TCustomTreeView.SortItems; +begin + if not FSorted then + Exit; + Content.Sort(CompareTreeItem); + InvalidateGlobalList; + UpdateGlobalIndexes; + UpdateVisibleItems; +end; + +function TCustomTreeView.GetItemRect(const Item: TTreeViewItem): TRectF; +begin + if Item <> nil then + begin + Result := TRectF.Create(0, 0, Item.Width, Item.Height); + Result.Offset(Content.AbsoluteToLocal(Item.LocaltoAbsolute(TPointF.Zero))); + end + else + Result := TRectF.Empty; +end; + +function TCustomTreeView.GetInflatableItems: TList; +begin + Result := FToInflate; +end; + +function TCustomTreeView.GetItem(const AIndex: Integer): TFmxObject; +begin + Result := Items[AIndex]; +end; + +procedure TCustomTreeView.UpdateSelection; +var + I: Integer; + P: TPointF; + R: TRectF; + SelRects: array of TRectF; + Clone: TControl; + Item: TTreeViewItem; +begin + if FSelection = nil then + Exit; + // calc rects + SetLength(SelRects, 0); + if GlobalCount > 0 then + for I := FFirstVisibleItem to FLastVisibleItem do + begin + Item := ItemByGlobalIndex(I); + if Item.IsSelected and Item.Visible then + begin + P := Item.LocaltoAbsolute(TPointF.Zero); + if (FSelection.Parent <> nil) and (FSelection.Parent is TControl) then + P := FSelection.ParentControl.AbsoluteToLocal(P); + R := RectF(P.X, P.Y, P.X + Item.Width, + P.Y + Item.Height); + if (Length(SelRects) > 0) and (I > 0) and ItemByGlobalIndex(I - 1).IsSelected then + SelRects[High(SelRects)] := UnionRect(R, SelRects[High(SelRects)]) + else + begin + SetLength(SelRects, Length(SelRects) + 1); + SelRects[High(SelRects)] := R; + end; + end; + end; + // Create selection list + if FSelections = nil then + FSelections := TControlList.Create; + for I := 0 to FSelections.Count - 1 do + FSelections[I].DisposeOf; + FSelections.Clear; + // create selections + for I := 0 to Length(SelRects) - 1 do + begin + if Self.IsFocused and (FFocusedSelection <> nil) then + Clone := TControl(FFocusedSelection.Clone(Self)) + else + Clone := TControl(FSelection.Clone(Self)); + Clone.StyleName := string.Empty; + FSelections.Add(Clone); + Clone.Parent := FSelection.Parent; + end; + // hide if not needed + if Length(SelRects) < FSelections.Count then + for I := Length(SelRects) to FSelections.Count - 1 do + FSelections[I].Visible := False; + // align selections + for I := 0 to High(SelRects) do + begin + FSelections[I].Visible := True; + R := SelRects[I]; + FSelections[I].SetBounds(R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top); + end; +end; + +procedure TCustomTreeView.UpdateVisibleItems; +var + First, Last, Mid: Integer; + R: TRectF; +begin + First := 0; + Last := GlobalCount - 1; + while First < Last do + begin + Mid := First + (Last - First) div 2; + R := FGlobalList[Mid].AbsoluteRect; + R.TopLeft := AbsoluteToLocal(R.TopLeft); + R.BottomRight := AbsoluteToLocal(R.BottomRight); + if R.Bottom < 0 then + First := Mid + 1 + else if R.Top > Height then + Last := Mid + else + Break; + end; + FFirstVisibleItem := First; + FLastVisibleItem := Last; + TTreeViewContent(Content).RecalcUpdateRect; + if FNoItemsContent <> nil then + FNoItemsContent.SetBounds(Content.Position.X, Content.Position.Y, Content.Width, Content.Height); +end; + +procedure TCustomTreeView.ItemSizeMightHaveChanged(const AItem: TTreeViewItem); +begin + if (ItemHeight = 0) and not AItem.FCustomHeight then + RealignContent; +end; + +function TCustomTreeView.DoCalcContentBounds: TRectF; +var + FirstItemHeight: Single; + + function UpdateSize(const AItem: TTreeViewItem; const CurY: Single; const ContentWidth: Single; + var BottomRight: TPointF): Single; + var + I: Integer; + OffsetX: Single; + ItemSize: TSizeF; + TopLeft: TPointF; + MinWidth: Single; + begin + Result := CurY; + OffsetX := AItem.GetLevelOffset; + TopLeft := AItem.ParentControl.AbsoluteToLocal(Content.LocalToAbsolute( + TPointF.Create(OffsetX + AItem.Margins.Left, CurY + AItem.Margins.Top))); + if AItem.IsVisible or AItem.ShowInDesigner then + begin + AItem.UpdateExpandedButtonVisibility; + MinWidth := ContentWidth - OffsetX - AItem.Margins.Left - AItem.Margins.Right; + + ItemSize := AItem.MinItemSize; + if FItemHeight > 0 then + ItemSize.cy := FItemHeight + else if AItem.FCustomHeight then + ItemSize.cy := AItem.Height + else if ItemSize.cy <= 0 then + begin + if SameValue(FirstItemHeight, 0, TEpsilon.Position) then + begin + AItem.Inflate; + if AItem.MinItemSize.Height > 0 then + FirstItemHeight := AItem.MinItemSize.Height + else + FirstItemHeight := TTreeViewItem.DefaultHeight; + end; + ItemSize.cy := FirstItemHeight; + end; + + if ItemSize.Width <= 0 then + ItemSize.cx := MinWidth + else + ItemSize.cx := Max(ItemSize.cx, MinWidth); + + Result := CurY + ItemSize.cy + AItem.Margins.Top + AItem.Margins.Bottom; + BottomRight.X := Max(BottomRight.X, OffsetX + ItemSize.cx + AItem.Margins.Left + AItem.Margins.Right); + BottomRight.Y := Max(BottomRight.Y, Result); + AItem.SetBounds(TopLeft.X, TopLeft.Y, AItem.Width, ItemSize.cy); + + if (AItem.Count > 0) and AItem.IsExpanded then + for I := 0 to AItem.Count - 1 do + Result := UpdateSize(AItem.ItemByIndex(I), Result, ContentWidth, BottomRight); + end + else + AItem.SetBounds(TopLeft.X, TopLeft.Y, AItem.Width, 0); + end; + + procedure AdjustWidth(const AItem: TTreeViewItem; const BottomRight: TPointF); + var + I: Integer; + P: TPointF; + begin + if AItem.IsVisible or AItem.ShowInDesigner then + begin + P := Content.LocalToAbsolute(BottomRight); + P := AItem.ParentControl.AbsoluteToLocal(Content.LocalToAbsolute(BottomRight)); + AItem.SetWidth(P.X - AItem.Position.X); + if AItem.IsExpanded then + for I := 0 to AItem.Count - 1 do + AdjustWidth(AItem.ItemByIndex(I), BottomRight); + end; + end; + +var + I: Integer; + CurY: Single; + LLocalRect: TRectF; +begin + FirstItemHeight := 0; + UpdateGlobalIndexes; + if (not IsUpdating) and (ContentLayout <> nil) then + begin + LLocalRect := ContentLayout.LocalRect; + Result := LLocalRect; + if Result.Bottom = Result.Top then + Result.Bottom := Result.Top + 1; + { content } + FCountExpanded := 0; + if Content <> nil then + begin + { Sort if need } + SortItems; + { align } + CurY := 0; + FTextLayout := TTextLayoutManager.DefaultTextLayout.Create; + try + for I := 0 to Count - 1 do + CurY := UpdateSize(ItemByIndex(I), CurY, LLocalRect.Width, Result.BottomRight); + finally + FreeAndNil(FTextLayout); + end; + for I := 0 to Count - 1 do + AdjustWidth(ItemByIndex(I), Result.BottomRight); + end; + UpdateVisibleItems; + end; +end; + +procedure TCustomTreeView.ViewportPositionChange(const OldViewportPosition, NewViewportPosition: TPointF; + const ContentSizeChanged: Boolean); +begin + inherited; + UpdateVisibleItems; + UpdateSelection; +end; + +function TCustomTreeView.ItemByIndex(const Idx: Integer): TTreeViewItem; +begin + if (Idx >= 0) and (Idx < Count) then + begin + Assert(Content.Controls[Idx] is TTreeViewItem); + Result := TTreeViewItem(Content.Controls[Idx]); + end + else + raise ERangeError.CreateFMT(sArgumentOutOfRange_Index, [Idx, Count]); +end; + +function TCustomTreeView.ItemByGlobalIndex(const Idx: Integer): TTreeViewItem; +begin + Result := FGlobalList[Idx]; +end; + +function TCustomTreeView.ObjectAtPoint(P: TPointF): IControl; +var + Local, Abs: TPointF; + Inner: IControl; + function CheckScrollBar(ScrollBar: TScrollBar): Boolean; + var + R: TRectF; + begin + Result := (ScrollBar <> nil) and + (ScrollBar.Visible) and + (ScrollBar.Enabled) and + (ScrollBar.HitTest); + if Result then + begin + R := ScrollBar.AbsoluteRect; + Result := R.Contains(Abs); + end; + end; +begin + Local := ScreenToLocal(P); + if LocalRect.Contains(Local) then + begin + Abs := LocalToAbsolute(Local); + if CheckScrollBar(VScrollBar) then + Result := IControl(VScrollBar).ObjectAtPoint(P) + else if CheckScrollBar(HScrollBar) then + Result := IControl(HScrollBar).ObjectAtPoint(P) + else + begin + if not Supports(ItemByPoint(Local.X, Local.Y), IControl, Result) then + Result := inherited ObjectAtPoint(P) + else + begin + Inner := Result.ObjectAtPoint(P); + if Inner <> nil then + Result := Inner + else + if CheckHitTest(HitTest) then + Result := Self + else + Result := inherited ObjectAtPoint(P); + end; + end; + end + else + Result := nil; +end; + +function TCustomTreeView.ItemByPoint(const X, Y: Single): TTreeViewItem; +var + I: Integer; + P: TPointF; + Item: TTreeViewItem; + + function PointInItem(const Itm: TTreeViewItem; const Pt: TPointF): Boolean; + var + ItemPt: TPointF; + begin + ItemPt := Item.AbsoluteToLocal(Pt); + Result := Content.PointInObject(Pt.X, Pt.Y) + and (ItemPt.Y >= (0 - TouchTargetExpansion.Top)) and (ItemPt.Y <= (Itm.Height + TouchTargetExpansion.Bottom)); + end; + +begin + P := LocaltoAbsolute(PointF(X, Y)); + if GlobalCount > 0 then + for I := FFirstVisibleItem to FLastVisibleItem do + begin + Item := FGlobalList[I]; + if not Item.Visible then + Continue; + if not IntersectRect(Item.UpdateRect, UpdateRect) then + Continue; + if PointInItem(Item, P) then + Exit(Item); + end; + Result := nil; +end; + +function TCustomTreeView.ItemByText(const AText: string): TTreeViewItem; +var + Item: TTreeViewItem; + I: Integer; +begin + Result := nil; + for I := 0 to GlobalCount - 1 do + begin + Item := ItemByGlobalIndex(I); + if CompareText(AText, Item.Text) = 0 then + Exit(Item); + end; +end; + +procedure TCustomTreeView.KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); + + procedure SelectUpperItem; + var + I: Integer; + begin + if Selected.GlobalIndex > 0 then + begin + I := Selected.GlobalIndex - 1; + while (I >= 0) and (ItemByGlobalIndex(I).GlobalIndex > 0) and (not ItemByGlobalIndex(I).IsVisible) do + Dec(I); + if (I >= 0) and ItemByGlobalIndex(I).IsVisible then + Selected := ItemByGlobalIndex(I); + end; + end; + + procedure SelectLowerItem; + var + I: Integer; + begin + if Selected.GlobalIndex < GlobalCount - 1 then + begin + I := Selected.GlobalIndex + 1; + while (I < GlobalCount) and (ItemByGlobalIndex(I).GlobalIndex < Pred(GlobalCount)) and (not ItemByGlobalIndex(I).IsVisible) do + Inc(I); + if (I < GlobalCount) and ItemByGlobalIndex(I).IsVisible then + Selected := ItemByGlobalIndex(I); + end; + end; + +var + LSelParentItem : TTreeViewItem; +begin + inherited KeyDown(Key, KeyChar, Shift); + if (Count > 0) and (Selected <> nil) then + begin + case Key of + vkAdd: + Selected.Expand; + vkSubtract: + Selected.Collapse; + vkHome: + begin + Selected := ItemByGlobalIndex(0); + if not Selected.Visible then + SelectLowerItem; + end; + vkEnd: + begin + Selected := ItemByGlobalIndex(GlobalCount - 1); + if not Selected.Visible then + SelectUpperItem; + end; + vkUp: + SelectUpperItem; + vkDown: + SelectLowerItem; + vkLeft: + if Selected.IsExpanded then + Selected.Collapse + else + begin + LSelParentItem := Selected.ParentItem; + if LSelParentItem <> nil then + begin + Selected := LSelParentItem; + if not Selected.IsVisible then + SelectUpperItem; + end; + end; + vkRight: + if not Selected.IsExpanded then + Selected.Expand + else + if Selected.FContent.ControlsCount > 0 then + SelectLowerItem; + else + Exit; + end; + Key := 0; + end; +end; + +procedure TCustomTreeView.KeyUp(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); +begin + inherited; +end; + +function TCustomTreeView.LocalPointToHoveredItemLocalPoint(const AX, AY: Single): TPointF; +begin + if HoveredItem <> nil then + begin + Result := Self.LocalToScreen(PointF(AX, AY)); + Result := HoveredItem.ScreenToLocal(Result); + end; +end; + +procedure TCustomTreeView.DragOver(const Data: TDragObject; const Point: TPointF; + var Operation: TDragOperation); +var + Obj: TTreeViewItem; +begin + inherited ; + Obj := ItemByPoint(Point.X, Point.Y); + if Obj <> FDragItem then + begin + if FDragItem <> nil then + begin + FDragItem.DragLeave; + FDragItem.RemoveFreeNotify(Self); + end; + FDragItem := Obj; + if FDragItem <> nil then + begin + inherited DragLeave; + FDragItem.AddFreeNotify(Self); + FDragItem.DragEnter(Data, FDragItem.AbsoluteToLocal(LocalToAbsolute(Point))); + Operation := TDragOperation.Move; + end + else + begin + DragEnter(Data, Point); + Operation := TDragOperation.None; + end; + end + else + Operation := TDragOperation.Move; + + if (Data.Source is TTreeViewItem) and (TTreeViewItem(Data.Source) = FDragItem) then + Operation := TDragOperation.None; +end; + +procedure TCustomTreeView.DragDrop(const Data: TDragObject; const Point: TPointF); +var + Allow: Boolean; + WasSelected: Boolean; + SourceItem, DestItem: TTreeViewItem; +begin + if FDragItem <> nil then + begin + FDragItem.DragLeave; + FDragItem.RemoveFreeNotify(Self); + FDragItem := nil; + end; + DestItem := ItemByPoint(Point.X, Point.Y); + if (Data.Source is TTreeViewItem) and IsChild(TTreeViewItem(Data.Source)) then + begin + SourceItem := TTreeViewItem(Data.Source); + Allow := True; + if Assigned(OnDragChange) then + OnDragChange(SourceItem, DestItem, Allow); + if Allow and not SourceItem.IsChild(DestItem) then + begin + WasSelected := SourceItem.FIsSelected; + if DestItem <> nil then + begin + SourceItem.Parent := DestItem; + DestItem.Expand; + end + else + begin + SourceItem.Parent := Self; + SourceItem.Expand; + end; + SourceItem.IsSelected := WasSelected; + end; + end + else if DestItem <> nil then + DestItem.DragDrop(Data, DestItem.AbsoluteToLocal(LocalToAbsolute(Point))) + else + inherited DragDrop(Data, Point); +end; + +procedure TCustomTreeView.DragLeave; +begin + inherited; + if FDragItem <> nil then + begin + FDragItem.DragLeave; + FDragItem.RemoveFreeNotify(Self); + FDragItem := nil; + end; +end; + +procedure TCustomTreeView.MouseClick(Button: TMouseButton; Shift: TShiftState; + X, Y: Single); +var + P: TPointF; +begin + inherited; + if (HoveredItem <> nil) and MouseInContentLayout(X, Y) then + begin + P := LocalPointToHoveredItemLocalPoint(X, Y); + HoveredItem.MouseClick(Button, Shift, P.X, P.Y); + end; +end; + +procedure TCustomTreeView.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); + + procedure TryMakeMultiSelect; + var + Item: TTreeViewItem; + begin + Item := ItemByPoint(X, Y); + if Item = nil then + Exit; + + if ([ssCtrl, ssCommand] * Shift) <> [] then + Item.IsSelected := not Item.IsSelected + else if ssShift in Shift then + begin + SelectRange(Selected, Item); + Selected := Item; + end + else + begin + SelectRange(Item, Item); + Selected := Item; + end; + FFirstSelect := Item; + end; + + procedure TryMakeSingleSelectAndStartDrag; + var + Item: TTreeViewItem; + begin + Item := ItemByPoint(X, Y); + if Item = nil then + Exit; + Selected := Item; + if AllowDrag then + FStartDrag := True; + end; + +var + P: TPointF; +begin + inherited MouseDown(Button, Shift, X, Y); + if MouseInContentLayout(X, Y) then + begin + // Making selection of Items + if Button = TMouseButton.mbLeft then + begin + if MultiSelect then + TryMakeMultiSelect + else + TryMakeSingleSelectAndStartDrag; + FMouseSelecting := True; + end; + // Transfer Click to Hovered Item + if HoveredItem <> nil then + begin + P := LocalPointToHoveredItemLocalPoint(X, Y); + HoveredItem.MouseDown(Button, Shift, P.X, P.Y); + end; + end; +end; + +function TCustomTreeView.MouseInContentLayout(const X, Y: Single): Boolean; +var + P: TPointF; +begin + Result := False; + if ContentLayout <> nil then + begin + P := TPointF.Create(X, Y); + P := LocalToAbsolute(P); + Result := ContentLayout.AbsoluteRect.Contains(P); + end; +end; + +procedure TCustomTreeView.MouseMove(Shift: TShiftState; X, Y: Single); +var + Item: TTreeViewItem; + P: TPointF; + LBitMap: TBitmap; +begin + inherited MouseMove(Shift, X, Y); + if MouseInContentLayout(X, Y) then + begin + Item := ItemByPoint(X, Y); + + /// There is a case when Selected can be equal to nil + /// by doing additional check here, we are + /// saving ourselves from yet another AV error + if AllowDrag and FStartDrag and (Selected <> nil) then + begin + FStartDrag := False; + LBitMap := Selected.MakeScreenshot; + try + Root.BeginInternalDrag(Selected, LBitMap); + finally + LBitMap.Free; + end; + end; + SetHoveredItem(Item); + if HoveredItem <> nil then + begin + P := LocalPointToHoveredItemLocalPoint(X, Y); + HoveredItem.MouseMove(Shift, P.X, P.Y); + end; + end; +end; + +procedure TCustomTreeView.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); +var + P: TPointF; +begin + inherited MouseUp(Button, Shift, X, Y); + FFirstSelect := nil; + FMouseSelecting := False; + if (HoveredItem <> nil) and MouseInContentLayout(X, Y) then + begin + P := LocalPointToHoveredItemLocalPoint(X, Y); + HoveredItem.MouseUp(Button, Shift, P.X, P.Y); + end; + FStartDrag := False; +end; + +procedure TCustomTreeView.MouseWheel(Shift: TShiftState; WheelDelta: Integer; + var Handled: Boolean); +begin + inherited; + if HoveredItem <> nil then + HoveredItem.MouseWheel(Shift, WheelDelta, Handled); +end; + +procedure TCustomTreeView.ChangeOrder; +begin + inherited ChangeOrder; + InvalidateContentSize; + if not IsUpdating then + RealignContent; +end; + +procedure TCustomTreeView.Clear; +var + i: Integer; + TmpObj: TFmxObject; +begin + BeginUpdate; + try + FToInflate.Clear; + if (Content <> nil) and (Count > 0) then + for i := Content.ControlsCount - 1 downto 0 do + if Content.Controls[i] is TTreeViewItem then + begin + TmpObj := Content.Controls[i]; + TmpObj.DisposeOf; + end; + FSelected := nil; + FFirstVisibleItem := 0; + FLastVisibleItem := 0; + UpdateGlobalIndexes; + UpdateSelection; + finally + EndUpdate; + end; +end; + +procedure TCustomTreeView.SelectRange(const Item1, Item2: TTreeViewItem); +var + i: Integer; + FirstItemIndex: Integer; + LastItemIndex: Integer; +begin + if (Item1 = nil) or (Item2 = nil) then + Exit; + FirstItemIndex := Min(Item1.GlobalIndex, Item2.GlobalIndex); + LastItemIndex := Max(Item1.GlobalIndex, Item2.GlobalIndex); + + for i := 0 to FirstItemIndex - 1 do + ItemByGlobalIndex(i).Deselect; + for i := FirstItemIndex to LastItemIndex do + ItemByGlobalIndex(i).Select; + for i := LastItemIndex + 1 to GlobalCount - 1 do + ItemByGlobalIndex(i).Deselect; +end; + +procedure TCustomTreeView.ClearSelection; +var + Item: TTreeViewItem; +begin + for Item in FGlobalList do + Item.IsSelected := False; +end; + +procedure TCustomTreeView.SelectAll; +var + Item: TTreeViewItem; +begin + for Item in FGlobalList do + Item.IsSelected := True; +end; + +procedure TCustomTreeView.DoChange; +begin + if Assigned(FOnChange) and not (csLoading in ComponentState) then + FOnChange(Self); +end; + +procedure TCustomTreeView.DoChangeCheck(const Item: TTreeViewItem); +begin + if Assigned(FOnChangeCheck) then + FOnChangeCheck(Item); +end; + +procedure TCustomTreeView.DoContentPaint(Sender: TObject; Canvas: TCanvas; + const ARect: TRectF); +var + I: Integer; + Item: TTreeViewItem; + P: TPointF; + R: TRectF; +begin + if (Content <> nil) and (ContentLayout <> nil) then + begin + if FAlternatingRowBackground then + begin + Canvas.Fill.Assign(FOddFill); + for I := FFirstVisibleItem to FLastVisibleItem do + begin + if Odd(I) then + begin + Item := ItemByGlobalIndex(I); + P := Item.LocalToAbsolute(PointF(0, 0)); + P := TControl(Sender).AbsoluteToLocal(P); + R := RectF(0, P.Y, ContentLayout.Width, P.Y + Item.Height); + if not IntersectRect(R, ARect) then + Continue; + Canvas.FillRect(R, 0, 0, [], AbsoluteOpacity); + end; + end; + end; + end; +end; + +procedure TCustomTreeView.DoEnter; +begin + inherited DoEnter; + if Selected <> nil then + UpdateSelection; +end; + +procedure TCustomTreeView.DoExit; +begin + inherited DoExit; + if Selected <> nil then + UpdateSelection; +end; + +procedure TCustomTreeView.DoInsertObject(Index: Integer; const AObject: TFmxObject); +begin + if (Content <> nil) and (AObject is TTreeViewItem) then + begin + if FUpdating > TTreeViewItem(AObject).FUpdating then + TTreeViewItem(AObject).BeginUpdate; + Content.InsertObject(Index, AObject); + if [csLoading, csDestroying] * ComponentState = [] then + TTreeViewItem(AObject).SetImages(Images); + end + else + inherited DoInsertObject(Index, AObject); +end; + +procedure TCustomTreeView.DoAddObject(const AObject: TFmxObject); +begin + if (Content <> nil) and (AObject is TTreeViewItem) then + begin + if FUpdating > TTreeViewItem(AObject).FUpdating then + TTreeViewItem(AObject).BeginUpdate; + Content.AddObject(AObject); + if [csLoading, csDestroying] * ComponentState = [] then + TTreeViewItem(AObject).SetImages(Images); + end + else + inherited DoAddObject(AObject); +end; + +procedure TCustomTreeView.DoRemoveObject(const AObject: TFmxObject); +begin + if (AObject is TTreeViewItem) and (TTreeViewItem(AObject).TreeView = Self) then + begin + TTreeViewItem(AObject).Parent := nil; + if [csLoading, csDestroying] * ComponentState = [] then + TTreeViewItem(AObject).SetImages(nil); + end + else + inherited DoRemoveObject(AObject); +end; + +procedure TCustomTreeView.DoUpdateAniCalculations(const AAniCalculations: TScrollCalculations); +begin + inherited; + AAniCalculations.AutoShowing := False; + AAniCalculations.Animation := False; + AAniCalculations.BoundsAnimation := False; +end; + +function TCustomTreeView.IsAddToContent(const AObject: TFmxObject): Boolean; +begin + Result := inherited IsAddToContent(AObject) and (AObject <> FNoItemsContent); +end; + +function TCustomTreeView.IsOpaque: Boolean; +begin + Result := True; +end; + +procedure TCustomTreeView.ContentAddObject(const AObject: TFmxObject); +begin + if not (AObject is TTreeViewItem) then + begin + if FNoItemsContent = nil then + begin + FNoItemsContent := TContent.Create(Self); + FNoItemsContent.Parent := Self; + FNoItemsContent.SetBounds(0, 0, 0, 0); + FNoItemsContent.Stored := False; + FNoItemsContent.Locked := True; + FNoItemsContent.HitTest := False; + end; + FNoItemsContent.AddObject(AObject) + end + else + begin + InvalidateContentSize; + InvalidateGlobalList; + if not TTreeViewItem(AObject).IsInflated then + FToInflate.Add(TTreeViewItem(AObject)); + if not IsUpdating then + RealignContent; + end; +end; + +procedure TCustomTreeView.ContentInsertObject(Index: Integer; const AObject: TFmxObject); +begin + ContentAddObject(AObject); +end; + +procedure TCustomTreeView.ContentRemoveObject(const AObject: TFmxObject); +begin + inherited; + if AObject is TTreeViewItem and not IsUpdating then + begin + Realign; + UpdateVisibleItems; + UpdateSelection; + end; +end; + +procedure TCustomTreeView.ContentBeforeRemoveObject(AObject: TFmxObject); +begin + inherited; + if AObject is TTreeViewItem then + begin + TTreeViewItem(AObject).FIsSelected := False; + if AObject = FSelected then + FSelected := nil; + InvalidateContentSize; + InvalidateGlobalList; + FToInflate.Remove(TTreeViewItem(AObject)); + end; +end; + +procedure TCustomTreeView.SetSelected(const Value: TTreeViewItem); +var + LFmxObject: TFmxObject; + P: TPointF; +begin + if (FSelected <> Value) and not FSelectionChanging then + begin + FSelectionChanging := True; + try + if (FSelected <> nil) and not MultiSelect then + FSelected.IsSelected := False; + + FSelected := Value; + if (FSelected <> nil) and (Content <> nil) then + begin + LFmxObject := FSelected.Parent; + while ((LFmxObject <> nil) and not (LFmxObject is TCustomTreeView)) do + begin + if LFmxObject is TTreeViewItem then + TTreeViewItem(LFmxObject).Expand; + LFmxObject := LFmxObject.Parent; + end; + if (Content <> nil) and (ContentLayout <> nil) and (VScrollBar <> nil) then + begin + P := ContentLayout.AbsoluteToLocal(FSelected.LocaltoAbsolute(TPointF.Zero)); + if P.Y < 0 then + VScrollBar.Value := VScrollBar.Value + P.Y; + if P.Y + FSelected.Margins.Top + FSelected.Margins.Bottom + FSelected.Height > ContentLayout.Height then + VScrollBar.Value := VScrollBar.Value + (P.Y + FSelected.Margins.Top + FSelected.Margins.Bottom + + FSelected.Height - ContentLayout.Height); + end; + FSelected.IsSelected := True; + end; + finally + FSelectionChanging := False; + end; + DoChange; + end; +end; + +procedure TCustomTreeView.Notification(AComponent: TComponent; Operation: TOperation); +begin + inherited; + if Operation = opRemove then + begin + if AComponent = FSelected then + FSelected := nil; + if AComponent = FDragItem then + FDragItem := nil; + if AComponent = FHoveredItem then + FHoveredItem := nil; + if AComponent = FFirstSelect then + FFirstSelect := nil; + end; +end; + +procedure TCustomTreeView.NotifyInflated; +begin + RealignContent; +end; + +procedure TCustomTreeView.SetItemHeight(const Value: Single); +var + OldSetItemHeight, NewSetItemHeight: Boolean; + I: Integer; + procedure ClearHeight(Item: TTreeViewItem); + var + I: Integer; + begin + Item.Height := 0; + for I := 0 to Item.Count - 1 do + ClearHeight(Item.Items[I]); + end; +begin + if FItemHeight <> Value then + begin + OldSetItemHeight := FItemHeight > 0; + FItemHeight := Value; + NewSetItemHeight := FItemHeight > 0; + if (OldSetItemHeight <> NewSetItemHeight) and (not NewSetItemHeight) then + begin + BeginUpdate; + try + for I := 0 to Count - 1 do + ClearHeight(Items[I]); + finally + EndUpdate + end; + end; + RealignContent; + end; +end; + +procedure TCustomTreeView.CollapseAll; +var + i: Integer; + Item: TTreeViewItem; +begin + BeginUpdate; + try + for i := Count - 1 downto 0 do + begin + Item := Items[i]; + if Item <> nil then + Item.CollapseAll; + end; + finally + EndUpdate; + end; +end; + +procedure TCustomTreeView.ExpandAll; +var + i: Integer; + Item: TTreeViewItem; +begin + BeginUpdate; + try + for i := Count - 1 downto 0 do + begin + Item := Items[i]; + if Item <> nil then + Item.ExpandAll; + end; + finally + EndUpdate; + end; +end; + +procedure TCustomTreeView.SetCheckboxesVisibility(const Value: Boolean); +var + i: Integer; + Item : TTreeViewItem; +begin + if FShowCheckboxes <> Value then + begin + FShowCheckboxes := Value; + for i := 0 to Count - 1 do + begin + Item := Items[i]; + if Item <> nil then + Item.UpdateCheckBoxVisibility; + end; + RealignContent; + end; +end; + +function TCustomTreeView.GetTreeItem(Index: Integer): TTreeViewItem; +begin + Result := ItemByIndex(Index); +end; + +procedure TCustomTreeView.SetSorted(const Value: Boolean); +begin + if FSorted <> Value then + begin + FSorted := Value; + RealignContent; + end; +end; + +procedure TCustomTreeView.SetAllowDrag(const Value: Boolean); +begin + if FAllowDrag <> Value then + begin + FAllowDrag := Value; + if FAllowDrag then + EnableDragHighlight := True; + end; +end; + +procedure TCustomTreeView.SetAlternatingRowBackground(const Value: Boolean); +begin + if FAlternatingRowBackground <> Value then + begin + FAlternatingRowBackground := Value; + Repaint; + end; +end; + +procedure TCustomTreeView.SetHoveredItem(const Value: TTreeViewItem); +begin + if FHoveredItem <> Value then + begin + try + if FHoveredItem <> nil then + begin + TComponent(FHoveredItem).RemoveFreeNotification(Self); + FHoveredItem.DoMouseLeave; + end; + finally + FHoveredItem := Value; + if FHoveredItem <> nil then + begin + TComponent(FHoveredItem).FreeNotification(Self); + FHoveredItem.DoMouseEnter; + end; + end; + end; +end; + +function TCustomTreeView.GetCount: Integer; +begin + Result := 0; + if Content <> nil then + Result := Content.ControlsCount; +end; + +function TCustomTreeView.GetGlobalCount: Integer; +begin + UpdateGlobalIndexes(False); + Result := FGlobalList.Count; +end; + +procedure TCustomTreeView.InvalidateGlobalList; +begin + FGlobalList.Clear; +end; + +procedure TCustomTreeView.ItemExpanded(const Item: TTreeViewItem); +var + I: Integer; + Child: TTreeViewItem; +begin + InvalidateGlobalList; + if Item.IsExpanded then + for I := 0 to Item.Count - 1 do + begin + Child := Item.Items[I]; + if not Child.IsInflated then + Child.Inflate; + end; + RealignContent; +end; + +function TCustomTreeView.GetImages: TCustomImageList; +begin + Result := TCustomImageList(FImageLink.Images); +end; + +procedure TCustomTreeView.SetImages(const Value: TCustomImageList); +begin + FImageLink.Images := Value; +end; + +function TCustomTreeView.GetImageIndex: TImageIndex; +begin + Result := -1; +end; + +procedure TCustomTreeView.SetImageIndex(const Value: TImageIndex); +begin + // none +end; + +function TCustomTreeView.GetImageList: TBaseImageList; +begin + Result := GetImages; +end; + +procedure TCustomTreeView.Loaded; +begin + inherited; + ImagesChanged; +end; + +procedure TCustomTreeView.ImagesChanged; +var + I: Integer; +begin + if (FImages <> FImageLink.Images) and ([csDestroying, csLoading] * ComponentState = []) then + begin + FImages := TCustomImageList(FImageLink.Images); + BeginUpdate; + try + for I := 0 to Count - 1 do + Items[I].SetImages(FImages); + finally + EndUpdate; + end; + end; +end; + +procedure TCustomTreeView.SetImageList(const Value: TBaseImageList); +begin + ValidateInheritance(Value, TCustomImageList); + SetImages(TCustomImageList(Value)); +end; + +initialization + RegisterFmxClasses([TTreeView, TTreeViewItem]); +end. diff --git a/styles/AErender Modern/AERFMXStyleMacOS.style b/styles/AErender Modern/AERFMXStyleMacOS.style index 932a7e5..b345a06 100644 --- a/styles/AErender Modern/AERFMXStyleMacOS.style +++ b/styles/AErender Modern/AERFMXStyleMacOS.style @@ -2705,12 +2705,12 @@ object TStyleContainer object TLine Align = Top LineType = Top - Margins.Left = 3.000000000000000000 + Margins.Left = -1.000000000000000000 Margins.Top = 2.000000000000000000 - Margins.Right = 3.000000000000000000 - Position.X = 3.000000000000000000 + Margins.Right = -1.000000000000000000 + Position.X = -1.000000000000000000 Position.Y = 2.000000000000000000 - Size.Width = 44.000000000000000000 + Size.Width = 52.000000000000000000 Size.Height = 1.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 @@ -2727,6 +2727,17 @@ object TStyleContainer Visible = False XRadius = 3.000000000000000000 YRadius = 3.000000000000000000 + object TLayout + StyleName = 'content' + Align = Client + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 48.000000000000000000 + Size.Height = 48.000000000000000000 + Size.PlatformDefault = False + end object TRectangle Align = Client Fill.Color = xFF202020 @@ -2735,27 +2746,14 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 - XRadius = 3.000000000000000000 - YRadius = 3.000000000000000000 object TShadowEffect - Distance = 3.000000000000000000 - Direction = 90.000000000000000000 + Distance = 4.000000000000000000 + Direction = 45.000000000000000000 Softness = 0.500000000000000000 Opacity = 0.500000000000000000 ShadowColor = claBlack end end - object TLayout - StyleName = 'content' - Align = Client - Margins.Left = 1.000000000000000000 - Margins.Top = 1.000000000000000000 - Margins.Right = 1.000000000000000000 - Margins.Bottom = 1.000000000000000000 - Size.Width = 48.000000000000000000 - Size.Height = 48.000000000000000000 - Size.PlatformDefault = False - end end object TLayout StyleName = 'radiobuttonstyle' @@ -3904,7 +3902,7 @@ object TStyleContainer Align = Client Locked = True HitTest = False - Size.Width = 27.000000000000000000 + Size.Width = 47.000000000000000000 Size.Height = 40.000000000000000000 Size.PlatformDefault = False Text = 'Text' diff --git a/styles/AErender Modern/AERFMXStyleWindows.style b/styles/AErender Modern/AERFMXStyleWindows.style index 02b6b73..0908f23 100644 --- a/styles/AErender Modern/AERFMXStyleWindows.style +++ b/styles/AErender Modern/AERFMXStyleWindows.style @@ -16,7 +16,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 2 object TRectangle StyleName = 'background' Align = Client @@ -73,7 +72,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 3 object TBrushObject StyleName = 'foreground' end @@ -154,7 +152,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 4 object TText StyleName = 'text' Align = Contents @@ -172,7 +169,6 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 5 object TRectangle StyleName = 'background' Align = Contents @@ -209,7 +205,6 @@ object TStyleContainer Size.Height = 100.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 6 FixedHeight = 17 object TRectangle StyleName = 'htrack' @@ -324,7 +319,6 @@ object TStyleContainer Size.Height = 38.333343505859380000 Size.PlatformDefault = False Visible = False - TabOrder = 7 object TLayout Align = Left Size.Width = 18.000000000000000000 @@ -434,7 +428,6 @@ object TStyleContainer StyleName = 'scrollbarbottombutton' Align = Center Visible = False - TabOrder = 8 object TRectangle StyleName = 'background' Align = Client @@ -490,7 +483,6 @@ object TStyleContainer StyleName = 'scrollbarleftbutton' Align = Center Visible = False - TabOrder = 9 object TRectangle StyleName = 'background' Align = Client @@ -547,7 +539,6 @@ object TStyleContainer StyleName = 'scrollbarrightbutton' Align = Center Visible = False - TabOrder = 10 object TRectangle StyleName = 'background' Align = Client @@ -604,7 +595,6 @@ object TStyleContainer StyleName = 'scrollbartopbutton' Align = Center Visible = False - TabOrder = 11 object TRectangle StyleName = 'background' Align = Client @@ -661,7 +651,6 @@ object TStyleContainer StyleName = 'scrollbarstyle' Align = Center Visible = False - TabOrder = 12 object TButton StyleName = 'leftbutton' Align = Left @@ -758,7 +747,6 @@ object TStyleContainer Size.Width = 100.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False - TabOrder = 13 TrackingThumbScale = 1.000000000000000000 Visible = False Fill.Color = xFF202020 @@ -781,7 +769,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 14 object TBrushObject StyleName = 'foreground' end @@ -885,7 +872,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 16 object TBrushObject StyleName = 'foreground' end @@ -1014,7 +1000,6 @@ object TStyleContainer Size.Height = 100.999992370605500000 Size.PlatformDefault = False Visible = False - TabOrder = 17 object TRectangle StyleName = 'background' Align = Contents @@ -1036,8 +1021,8 @@ object TStyleContainer Align = Center Fill.Color = xFF151515 HitTest = False - Size.Width = 50.000000000000000000 - Size.Height = 50.000000000000000000 + Size.Width = 64.000000000000000000 + Size.Height = 4.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None Visible = False @@ -1057,7 +1042,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 18 object TRectangle StyleName = 'top' Align = Contents @@ -1161,7 +1145,6 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 19 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = xFF2C2C2C @@ -1271,7 +1254,6 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 20 object TText StyleName = 'text' Align = Client @@ -1294,7 +1276,6 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 21 object TGlyph StyleName = 'glyphstyle' Margins.Left = 2.000000000000000000 @@ -1339,7 +1320,6 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 22 object TRectangle StyleName = 'background' Align = Contents @@ -1373,7 +1353,6 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 23 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x32787878 @@ -1418,6 +1397,7 @@ object TStyleContainer StyleName = 'selection' Fill.Color = xFF2A82E2 HitTest = False + Opacity = 0.250000000000000000 Size.Width = 50.000000000000000000 Size.Height = 50.000000000000000000 Size.PlatformDefault = False @@ -1495,7 +1475,6 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 24 object TRectangle StyleName = 'background' Align = Contents @@ -1547,7 +1526,6 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 26 object TRectangle StyleName = 'htrack' Align = Contents @@ -1601,7 +1579,6 @@ object TStyleContainer Size.Height = 126.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 27 object TLayout StyleName = 'htrack' Align = Contents @@ -1643,7 +1620,6 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 28 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -1834,18 +1810,17 @@ object TStyleContainer Margins.Top = 1.000000000000000000 Margins.Right = 1.000000000000000000 Margins.Bottom = 1.000000000000000000 - Size.Width = 73.000000000000000000 - Size.Height = 26.000000000000000000 + Size.Width = 123.444442749023400000 + Size.Height = 30.111110687255860000 Size.PlatformDefault = False Visible = False - TabOrder = 29 object TRectangle Align = Contents Fill.Color = xFF2A82E2 HitTest = False Opacity = 0.000099999997473788 - Size.Width = 73.000000000000000000 - Size.Height = 26.000000000000000000 + Size.Width = 123.444442749023400000 + Size.Height = 30.111110687255860000 Size.PlatformDefault = False Stroke.Kind = None object TFloatAnimation @@ -1862,13 +1837,14 @@ object TStyleContainer Align = Contents Fill.Color = xFF2A82E2 HitTest = False - Opacity = 0.000099999997473788 - Size.Width = 73.000000000000000000 - Size.Height = 26.000000000000000000 + Opacity = 0.000000000000000000 + Size.Width = 123.444442749023400000 + Size.Height = 30.111110687255860000 Size.PlatformDefault = False Stroke.Kind = None object TFloatAnimation Duration = 0.000200000009499490 + Inverse = True PropertyName = 'Opacity' StartValue = 0.000000000000000000 StopValue = 1.000000000000000000 @@ -1880,14 +1856,14 @@ object TStyleContainer StyleName = 'glyph' Align = Left Size.Width = 25.000000000000000000 - Size.Height = 26.000000000000000000 + Size.Height = 30.111110687255860000 Size.PlatformDefault = False object TLayout StyleName = 'checkmark' Align = Contents Opacity = 0.001000000047497451 Size.Width = 25.000000000000000000 - Size.Height = 26.000000000000000000 + Size.Height = 30.111110687255860000 Size.PlatformDefault = False object TPath Align = Center @@ -1935,7 +1911,7 @@ object TStyleContainer Position.X = 2.000000000000000000 Position.Y = 2.000000000000000000 Size.Width = 21.000000000000000000 - Size.Height = 22.000000000000000000 + Size.Height = 26.111110687255860000 Size.PlatformDefault = False end end @@ -1948,7 +1924,7 @@ object TStyleContainer Margins.Right = 8.000000000000000000 Position.X = 33.000000000000000000 Size.Width = 50.000000000000000000 - Size.Height = 26.000000000000000000 + Size.Height = 30.111110687255860000 Size.PlatformDefault = False TextSettings.FontColor = claWhite TextSettings.HorzAlign = Leading @@ -1960,9 +1936,9 @@ object TStyleContainer HitTest = False Margins.Left = 12.000000000000000000 Margins.Right = 6.000000000000000000 - Position.X = -3.000000000000000000 + Position.X = 47.444442749023440000 Size.Width = 50.000000000000000000 - Size.Height = 26.000000000000000000 + Size.Height = 30.111110687255860000 Size.PlatformDefault = False TextSettings.FontColor = claWhite TextSettings.HorzAlign = Leading @@ -1970,9 +1946,9 @@ object TStyleContainer object TLayout StyleName = 'submark' Align = Right - Position.X = 53.000000000000000000 + Position.X = 103.444442749023400000 Size.Width = 20.000000000000000000 - Size.Height = 26.000000000000000000 + Size.Height = 30.111110687255860000 Size.PlatformDefault = False object TPath Align = Center @@ -1982,8 +1958,8 @@ object TStyleContainer Fill.Color = claWhite Locked = True HitTest = False - Size.Width = 7.000000000000000000 - Size.Height = 8.000000000000000000 + Size.Width = 6.000000000000000000 + Size.Height = 10.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end @@ -1992,24 +1968,19 @@ object TStyleContainer object TLayout StyleName = 'menuseparatorstyle' Align = Center - Margins.Left = 1.000000000000000000 - Margins.Top = 1.000000000000000000 - Margins.Right = 1.000000000000000000 - Margins.Bottom = 1.000000000000000000 Size.Width = 50.000000000000000000 Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 30 object TLine Align = Top LineType = Top - Margins.Left = 3.000000000000000000 + Margins.Left = -1.000000000000000000 Margins.Top = 2.000000000000000000 - Margins.Right = 3.000000000000000000 - Position.X = 3.000000000000000000 + Margins.Right = -1.000000000000000000 + Position.X = -1.000000000000000000 Position.Y = 2.000000000000000000 - Size.Width = 44.000000000000000000 + Size.Width = 52.000000000000000000 Size.Height = 1.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 @@ -2023,7 +1994,6 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 - Visible = False object TRectangle Align = Client Fill.Color = xFF202020 @@ -2033,8 +2003,8 @@ object TStyleContainer Size.PlatformDefault = False Stroke.Color = xFF151515 object TShadowEffect - Distance = 3.000000000000000000 - Direction = 90.000000000000000000 + Distance = 4.000000000000000000 + Direction = 45.000000000000000000 Softness = 0.500000000000000000 Opacity = 0.500000000000000000 ShadowColor = claBlack @@ -2056,7 +2026,6 @@ object TStyleContainer StyleName = 'imagecellstyle' Align = Center Visible = False - TabOrder = 31 object TImage StyleName = 'image' MultiResBitmap = < @@ -2081,7 +2050,6 @@ object TStyleContainer Size.Height = 43.500000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 32 object TLayout Align = Right Position.X = 172.000000000000000000 @@ -2134,7 +2102,6 @@ object TStyleContainer StyleName = 'textcellstyle' Align = Center Visible = False - TabOrder = 33 object TLayout StyleName = 'content' Align = Contents @@ -2165,7 +2132,6 @@ object TStyleContainer Size.Height = 122.199996948242200000 Size.PlatformDefault = False Visible = False - TabOrder = 34 object TBrushObject StyleName = 'foreground' end @@ -2276,7 +2242,6 @@ object TStyleContainer Size.Height = 32.400001525878910000 Size.PlatformDefault = False Visible = False - TabOrder = 35 object TText StyleName = 'text' Align = Contents @@ -2342,7 +2307,6 @@ object TStyleContainer Size.Height = 21.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 36 object TRectangle StyleName = 'background' Align = Contents @@ -2454,7 +2418,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 37 object TRectangle StyleName = 'Rectangle1' Align = Center @@ -2537,7 +2500,6 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 38 object TRectangle StyleName = 'htrack' Align = Contents @@ -2602,7 +2564,6 @@ object TStyleContainer Size.Height = 103.500000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 39 object TRectangle Align = Contents Fill.Kind = None @@ -2671,7 +2632,6 @@ object TStyleContainer Size.Height = 44.500000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 40 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -2850,7 +2810,6 @@ object TStyleContainer StyleName = 'popoverstyle' Align = Center Visible = False - TabOrder = 41 object TRectangle StyleName = 'bg' Align = Client @@ -2887,7 +2846,6 @@ object TStyleContainer Size.Height = 53.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 42 object TRectangle StyleName = 'background' Align = Contents @@ -2979,7 +2937,6 @@ object TStyleContainer StyleName = 'smallscrollbarstyle' Align = Center Visible = False - TabOrder = 43 object TTrack StyleName = 'htrack' Align = Client @@ -3008,7 +2965,6 @@ object TStyleContainer Size.Height = 96.750000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 44 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -3076,7 +3032,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 45 object TRectangle StyleName = 'closebutton' Align = Client @@ -3131,7 +3086,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 46 object TRectangle StyleName = 'maxbutton' Align = Client @@ -3182,7 +3136,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 47 object TRectangle StyleName = 'resbutton' Align = Client @@ -3234,7 +3187,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 48 object TRectangle StyleName = 'minbutton' Align = Client @@ -3286,7 +3238,6 @@ object TStyleContainer Size.Height = 179.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 49 object TRectangle StyleName = 'mask' Align = Contents @@ -3500,7 +3451,6 @@ object TStyleContainer Size.Height = 179.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 50 object TRectangle StyleName = 'mask' Align = Contents @@ -3754,7 +3704,6 @@ object TStyleContainer Size.Height = 21.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 52 object TLayout Align = Left Size.Width = 21.000000000000000000 @@ -3834,7 +3783,6 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 54 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3908,7 +3856,6 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 56 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3982,7 +3929,6 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 58 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -4056,7 +4002,6 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 61 object TRectangle StyleName = 'htrack' Align = Contents @@ -4121,7 +4066,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 63 object TRectangle StyleName = 'bgrectangle' Align = Contents @@ -4220,7 +4164,6 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 65 object TPath StyleName = 'Path1' Align = Center @@ -4253,7 +4196,6 @@ object TStyleContainer Size.Height = 33.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 67 object TLayout Align = Left Size.Width = 24.000000000000000000 @@ -4326,7 +4268,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 70 object TRectangle StyleName = 'Rectangle1' Align = Contents @@ -4353,7 +4294,6 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 15 object TBrushObject StyleName = 'foreground' end @@ -4482,7 +4422,6 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 60 object TRectangle StyleName = 'vtrack' Align = Contents @@ -4632,7 +4571,6 @@ object TStyleContainer Size.Height = 96.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 1 object TRectangle StyleName = 'background' Align = Client @@ -4714,7 +4652,6 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 25 object TRectangle StyleName = 'htrack' Align = Contents @@ -4846,9 +4783,10 @@ object TStyleContainer Align = Client Locked = True HitTest = False - Size.Width = 27.000000000000000000 + Size.Width = 47.000000000000000000 Size.Height = 40.000000000000000000 Size.PlatformDefault = False + Text = 'Text' TextSettings.FontColor = claWhite TextSettings.WordWrap = False TextSettings.HorzAlign = Leading @@ -4969,4 +4907,705 @@ object TStyleContainer end end end + object TLayout + StyleName = 'actiontoolbuttonmultiview' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 124 + FixedHeight = 50 + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 9.000000000000000000 + Margins.Top = 9.000000000000000000 + Margins.Bottom = 9.000000000000000000 + Align = Left + Position.X = 9.000000000000000000 + Position.Y = 9.000000000000000000 + Size.Width = 32.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + end + object TRectangle + StyleName = 'background' + Align = Client + ClipChildren = True + ClipParent = True + Fill.Color = xFF202020 + HitTest = False + Margins.Left = -50.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' + end + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + end + object TLayout + StyleName = 'Layout2' + Align = Left + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + object TPath + StyleName = 'icon' + Align = Center + Data.Path = { + 17000000000000000000C03F0000C03F01000000000000000000000001000000 + 0000404000000000010000000000C03F0000C03F030000000000C03F0000C03F + 0000000000009040000000000100000000004041000000000100000000004041 + CDCC4C3F0100000000009040CDCC4C3F01000000000090400000000003000000 + 0000904000000000000000000000904033337340010000000000904000004040 + 0100000000004041000040400100000000004041333373400100000000009040 + 3333734003000000000090403333734000000000000090409A99D94001000000 + 000090400000C04001000000000040410000C04001000000000040419A99D940 + 01000000000090409A99D94003000000000090409A99D940} + Fill.Color = claWhite + HitTest = False + Size.Width = 26.000000000000000000 + Size.Height = 28.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + WrapMode = Fit + end + end + end + object TLayout + StyleName = 'addbuttonstyle' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 126 + FixedHeight = 24 + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 9.000000000000000000 + Margins.Top = 9.000000000000000000 + Margins.Bottom = 9.000000000000000000 + Align = Left + Position.X = 9.000000000000000000 + Position.Y = 9.000000000000000000 + Size.Width = 32.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + end + object TRectangle + StyleName = 'background' + Align = Client + ClipChildren = True + ClipParent = True + Fill.Color = xFF202020 + HitTest = False + Margins.Left = -24.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' + end + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 76.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + end + object TLayout + StyleName = 'Layout2' + Align = Left + Size.Width = 24.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + object TPath + StyleName = 'icon' + Align = Contents + Data.Path = { + 0E00000000000000CDCC34410000C040010000000000C0400000C04001000000 + 0000C040CDCC3441010000009A99A940CDCC3441010000009A99A9400000C040 + 01000000000000000000C04001000000000000009A99A940010000009A99A940 + 9A99A940010000009A99A94000000000010000000000C0400000000001000000 + 0000C0409A99A94001000000CDCC34419A99A94001000000CDCC34410000C040 + 03000000CDCC34410000C040} + Fill.Color = claWhite + HitTest = False + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 16.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + WrapMode = Fit + end + end + end + object TLayout + StyleName = 'infotoolbuttonmultiview' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 123 + FixedHeight = 50 + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 9.000000000000000000 + Margins.Top = 9.000000000000000000 + Margins.Bottom = 9.000000000000000000 + Align = Left + Position.X = 9.000000000000000000 + Position.Y = 9.000000000000000000 + Size.Width = 32.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + end + object TRectangle + StyleName = 'background' + Align = Client + ClipChildren = True + ClipParent = True + Fill.Color = xFF202020 + HitTest = False + Margins.Left = -50.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' + end + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + end + object TLayout + StyleName = 'Layout2' + Align = Left + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + object TPath + StyleName = 'icon' + Align = Center + Data.Path = { + A0000000000000009A9987429A99074302000000010076429A99074302000000 + 01005E42CDCC064302000000343347423433054302000000010030429A990343 + 0200000067661A42CE4C01430200000067660642CECCFC4202000000CECCE441 + 0100F742020000000100C041CECCEF420200000034339F419B99E74202000000 + CECC7C416866DF4202000000353343413533D64202000000CECC14413533CC42 + 020000009A99C9400000C24202000000000080403333B742020000009A991940 + CDCCAB4202000000CDCC4C3F3333A04202000000000000003333944202000000 + 000000009A99874202000000000000000100764202000000CDCC4C3F01005E42 + 020000009A991940CECC4642020000000000804000003042020000009A99C940 + 66661A42020000003333134166660642020000009A994141CCCCE44102000000 + 33337B41FFFFBF410200000066669E4132339F41020000003333BF41CACC7C41 + 020000000000E441313343410200000000000642CACC14410200000066661A42 + 9A99C94002000000000030420000804002000000333347429A99194002000000 + 00005E42CDCC4C3F020000006666764200000000020000009A99874200000000 + 020000003433944200000000020000003433A042CDCC4C3F02000000CDCCAB42 + 9A991940020000003333B74200008040020000000000C2429A99C94002000000 + 3333CC4233331341020000003333D6429A994141020000006666DF4233337B41 + 020000009999E74266669E4102000000CCCCEF423333BF4102000000FFFFF642 + 0000E44102000000CCCCFC420000064202000000CC4C014300001A4202000000 + 999903439A992F420200000033330543CDCC464202000000CDCC064300005E42 + 02000000999907430000764202000000999907439A9987420200000099990743 + 3433944202000000CCCC06433433A0420200000033330543CDCCAB4202000000 + 999903436766B74202000000CD4C01433333C24202000000CCCCFC423433CC42 + 02000000FFFFF6423433D64202000000CCCCEF426766DF42020000009999E742 + 9A99E742020000006666DF42CDCCEF42020000003333D6420000F74202000000 + 3333CC42CDCCFC42020000003333C242CD4C0143020000006666B7429A990343 + 02000000CCCCAB4233330543020000003333A042CDCC06430200000033339442 + 9A990743020000009A9987429A990743030000009A9987429A99074300000000 + 9A99874200001041020000009A9979420000104102000000CECC644233331B41 + 02000000CECC50429A99314102000000CECC3C42000048410200000001002A42 + 0000684102000000CECC184200008841020000003433074200009C4102000000 + 3633EF41CDCCB441020000006966D2419A99D141020000009C99B5416766EE41 + 020000009C999D41CDCC064202000000D0CC88416666184202000000A0996941 + 00002A4202000000A099494166663C42020000003A333341CCCC504202000000 + 33331B4133336542020000000000104100007A4202000000000010419A998742 + 0200000000001041343392420200000033331B41CDCC9C42020000009A993141 + CDCCA6420200000000004841CDCCB04202000000000068413333BA4202000000 + 000088410000C3420200000000009C41CDCCCB4202000000CDCCB4419A99D342 + 020000009A99D141CDCCDA42020000006766EE410000E24202000000CDCC0642 + 0000E84202000000666618423333ED420200000000002A423333F24202000000 + 66663C423333F64202000000666650420000F9420200000066666442CDCCFB42 + 02000000333379423333FD4202000000666687423333FD420200000033339242 + 3333FD420200000099999C42CDCCFB42020000009999A6420000F94202000000 + 9999B0423333F64202000000FFFFB9423333F24202000000CCCCC2423333ED42 + 020000009999CB423333E842020000006666D3420000E242020000009999DA42 + CDCCDA4202000000CCCCE1429A99D34202000000CCCCE742CDCCCB4202000000 + FFFFEC420000C34202000000FFFFF1423333BA4202000000FFFFF5420000B142 + 02000000CCCCF8420000A742020000009999FB4200009D4202000000FFFFFC42 + 9A99924202000000FFFFFC42CDCC874202000000FFFFFC4200007A4202000000 + 9999FB423433654202000000CCCCF8423433514202000000FFFFF54234333D42 + 02000000FFFFF14267662A4202000000FFFFEC42CECC184202000000FFFFE742 + 3433074202000000CCCCE1423633EF41020000009999DA426966D24102000000 + 6666D3429C99B541020000009999CB429C999D4102000000CCCCC242D0CC8841 + 02000000FFFFB942A099694102000000CCCCB042A0994941020000009999A642 + 3A33334102000000CDCC9C4233331B4102000000666692420000104102000000 + 9A99874200001041030000009A998742000010410000000033337D42CDCC1042 + 010000009A999042CDCC1042010000009A999042CDCC34420100000034337D42 + CDCC34420100000034337D42CDCC10420300000033337D42CDCC104200000000 + 33337D4233335942010000009A99904233335942010000009A9990420000C742 + 0100000034337D420000C7420100000034337D42333359420300000033337D42 + 33335942} + Fill.Color = claWhite + HitTest = False + Size.Width = 26.000000000000000000 + Size.Height = 28.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + WrapMode = Fit + end + end + end + object TLayout + StyleName = 'organizetoolbuttonmultiview' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 121 + FixedHeight = 50 + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 9.000000000000000000 + Margins.Top = 9.000000000000000000 + Margins.Bottom = 9.000000000000000000 + Align = Left + Position.X = 9.000000000000000000 + Position.Y = 9.000000000000000000 + Size.Width = 32.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + end + object TRectangle + StyleName = 'background' + Align = Client + ClipChildren = True + ClipParent = True + Fill.Color = xFF202020 + HitTest = False + Margins.Left = -50.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' + end + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + end + object TLayout + StyleName = 'Layout2' + Align = Left + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + object TPath + StyleName = 'icon' + Align = Center + Data.Path = { + 11000000000000009A99E9409A99C940010000006666664066661E4101000000 + 000000009A99C940010000000000003F9A99B94001000000CDCC4C409A990941 + 01000000CDCC4C40000000000100000000008040000000000100000000008040 + 00000841010000006666D6406666B640010000009A99E9409A99C94003000000 + 9A99E9409A99C940000000009A99993E00004041010000009A99993E33333341 + 010000000000E04033333341010000000000E04000004041010000009A99993E + 00004041030000009A99993E00004041} + Fill.Color = claWhite + HitTest = False + Size.Width = 26.000000000000000000 + Size.Height = 28.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + WrapMode = Fit + end + end + end + object TLayout + StyleName = 'settingstoolbuttonmultiview' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 122 + FixedHeight = 50 + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 9.000000000000000000 + Margins.Top = 9.000000000000000000 + Margins.Bottom = 9.000000000000000000 + Align = Left + Position.X = 9.000000000000000000 + Position.Y = 9.000000000000000000 + Size.Width = 32.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + end + object TRectangle + StyleName = 'background' + Align = Client + ClipChildren = True + ClipParent = True + Fill.Color = xFF202020 + HitTest = False + Margins.Left = -50.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' + end + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + end + object TLayout + StyleName = 'Layout2' + Align = Left + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + object TPath + StyleName = 'icon' + Align = Center + Data.Path = { + 1C01000000000000333351423333E7410200000033335142CDCCE84102000000 + 333351426666EA4102000000333351423333EB410200000033335142CDCCEC41 + 02000000333351426666EE4102000000333351423333EF410200000033335142 + CDCCF04102000000333351426666F24102000000333351423333F34102000000 + 33335142CDCCF44102000000333351426666F64102000000333351423333F741 + 0100000099996F4266660E4201000000CDCC5C4200003C420100000000003A42 + 0000344202000000000038420000364202000000000036420000384202000000 + 0000344200003A420100000000003C42CDCC5C4201000000CDCC0E429A996F42 + 010000000000F84133335142020000006666F6413333514202000000CDCCF441 + 33335142020000000000F44133335142020000006666F2413333514202000000 + CDCCF04133335142020000000000F04133335142020000006666EE4133335142 + 02000000CDCCEC4133335142020000000000EC4133335142020000006666EA41 + 3333514202000000CDCCE84133335142020000000000E8413333514201000000 + 6666C24199996F4201000000FFFF4F41CCCC5C4201000000FFFF6F41FFFF3942 + 02000000FFFF6741FFFF374202000000FFFF5F41FFFF354202000000FFFF5741 + FFFF33420100000098999940FFFF3B420100000000000000CDCC0E4201000000 + 3333F3400000F841020000003333F3406666F641020000003333F340CDCCF441 + 020000003333F3400000F441020000003333F3406666F241020000003333F340 + CDCCF041020000003333F3400000F041020000003333F3406666EE4102000000 + 3333F340CDCCEC41020000003333F3400000EC41020000003333F3406666EA41 + 020000003333F340CDCCE841020000003333F3400000E8410100000000000000 + CDCCC0410100000066669640CDCC4C410100000066665641CDCC6C4102000000 + 66665E41CDCC64410200000066666641CDCC5C410200000066666E41CDCC5441 + 0100000066664E413433934001000000CDCCC04100000000010000006666E641 + 3333F340020000000000E8413333F340020000009999E9413333F34002000000 + 6666EA413333F340020000000000EC413333F340020000009999ED413333F340 + 020000006666EE413333F340020000000000F0413333F340020000009999F141 + 3333F340020000006666F2413333F340020000000000F4413333F34002000000 + 9999F5413333F340020000006666F6413333F34001000000CDCC0E4200000000 + 0100000000003C42666696400100000000003442666656410200000000003642 + 66665E410200000000003842666666410200000000003A4266666E4101000000 + CDCC5C4266664E41010000009A996F429A99C14101000000333351423333E741 + 03000000333351423333E7410000000033334342CDCC02420200000033334342 + CDCC004202000000999943426766FE4102000000999943426766FA4102000000 + 999943426766F64102000000FFFF43423433F34102000000FFFF43423433EF41 + 02000000FFFF43423433EB4102000000FFFF43420100E8410200000099994342 + 0100E44102000000999943420100E0410200000033334342CECCDC4102000000 + 33334342CECCD84101000000CDCC5E426866B64101000000CDCC54429B998541 + 01000000CDCC3442CECC9441020000006766324234338F410200000000003042 + 9B9989410200000033332D42010084410200000066662A42CECC7C4102000000 + 000028423533734102000000CDCC24429C9969410100000067662C423833D340 + 0100000001001442383383400100000067660242020030410200000067660042 + 02003041020000009B99FD4168662E41020000009B99F94168662E4102000000 + 9B99F54168662E41020000006866F241CECC2C41020000006866EE41CECC2C41 + 020000006866EA41CECC2C41020000003533E741CECC2C41020000003533E341 + 68662E41020000003533DF4168662E41020000000200DC410200304102000000 + 0200D84102003041010000009C99B5413733834001000000CFCC84413733D340 + 01000000020094419C9969410200000068668E413633734102000000CFCC8841 + CFCC7C410200000035338341010084410200000036337B419A99894102000000 + 9D99714167668E410200000004006841CECC9441010000000800D0409B998541 + 01000000080080406866B641010000006A662E419B99D941020000006A662E41 + 9B99DD4102000000D0CC2C41CECCE04102000000D0CC2C41CECCE44102000000 + D0CC2C41CECCE8410200000036332B410100EC410200000036332B410100F041 + 0200000036332B410100F4410200000036332B413433F74102000000D0CC2C41 + 3433FB4102000000D0CC2C413433FF41020000006A662E413433014202000000 + 6A662E4134330342010000000700804067661442010000000700D040CDCC2C42 + 010000000400684133332542020000009E997141000028420200000037337B41 + CDCC2A42020000003533834199992D4202000000CECC88416566304202000000 + 9B998D41CCCC324202000000020094413333354201000000CFCC844133335542 + 010000009C99B54133335F4201000000CFCCD8419999434202000000CFCCDC41 + 99994342020000000200E041FFFF4342020000000200E441FFFF434202000000 + 0200E841FFFF4342020000003533EB4165664442020000003533EF4165664442 + 020000003533F34165664442020000006866F64165664442020000006866FA41 + FFFF4342020000006866FE41FFFF434202000000CECC00429999434202000000 + CECC024299994342010000000100144233335F420100000067662C4233335542 + 01000000CDCC244233333542020000009A992742CDCC32420200000067662A42 + 666630420200000033332D4299992D4202000000FFFF2F42CCCC2A4202000000 + 666632426666284202000000CDCC34423333254201000000CDCC5442CDCC2C42 + 01000000CDCC5E42676614420100000033334342CDCC02420300000033334342 + CDCC0242000000003333EF4133339741020000003333FB413333974102000000 + 9A9903429999994102000000CDCC084266669E410200000000000E423333A341 + 02000000CDCC12429999A94102000000CDCC16429999B14102000000CDCC1A42 + 9999B9410200000000001E423333C34102000000676620429999CD4102000000 + CDCC2242FFFFD7410200000001002442FFFFE34102000000010024420000F041 + 02000000010024420100FC4102000000CECC2242000004420200000067662042 + 333309420200000001001E4266660E4202000000CDCC1A423333134202000000 + CDCC16423333174202000000CDCC124233331B420200000000000E4266661E42 + 02000000CDCC0842CDCC2042020000009A99034233332342020000003433FB41 + 67662442020000003433EF4167662442020000003433E3416766244202000000 + 3433D7413433234202000000CECCCC41CDCC2042020000006866C24167661E42 + 02000000CECCB84133331B4202000000CECCB0413333174202000000CECCA841 + 33331342020000006866A24166660E42020000009B999D413333094202000000 + CECC98410000044202000000686696410000FC4102000000686696410000F041 + 02000000686696410000E44102000000CECC98410000D841020000009B999D41 + 9A99CD41020000006866A2413433C34102000000CECCA8419A99B94102000000 + CECCB0419A99B14102000000CECCB8419A99A941020000006866C2413433A341 + 02000000CECCCC4167669E41020000000000D8419A999941020000003333E341 + 33339741020000003333EF4133339741030000003333EF413333974100000000 + 3333EF41CDCC1642020000000000F841CDCC1642020000000000004200001642 + 020000009A990342676614420200000034330742CDCC124202000000CDCC0A42 + 67661042020000009A990D429A990D420200000067661042CDCC0A4202000000 + CDCC12429A99074202000000676614429A990342020000000100164200000042 + 02000000CDCC16423433F74102000000CDCC16423433EF4102000000CDCC1642 + 6766E64102000000000016426766DE4102000000676614423433D74102000000 + CDCC12420100D0410200000067661042CECCC841020000009A990D423433C341 + 02000000CDCC0A429A99BD41020000009A990742CECCB841020000009A990342 + 9A99B54102000000000000426766B241020000003433F741CDCCB04102000000 + 3433EF41CDCCB041020000006766E641CDCCB041020000006766DE416766B241 + 020000003433D7419A99B541020000000100D041CDCCB84102000000CECCC841 + 9A99BD41020000003433C3413433C341020000009A99BD41CECCC84102000000 + CECCB8413433CF41020000009A99B5413433D741020000006766B2416766DE41 + 02000000CDCCB0413433E74102000000CDCCB0413433EF4102000000CDCCB041 + 0100F841020000006766B24100000042020000009A99B5419A99034202000000 + CDCCB84134330742020000009A99BD41CDCC0A42020000003433C3419A990D42 + 02000000CECCC84167661042020000003433CF41CDCC1242020000003433D741 + 67661442020000003333DF4100001642020000003333E741CDCC164202000000 + 3333EF41CDCC1642030000003333EF41CDCC1642} + Fill.Color = claWhite + HitTest = False + Size.Width = 26.000000000000000000 + Size.Height = 28.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + WrapMode = Fit + end + end + end + object TLayout + StyleName = 'removebuttonstyle' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 125 + FixedHeight = 24 + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 9.000000000000000000 + Margins.Top = 9.000000000000000000 + Margins.Bottom = 9.000000000000000000 + Align = Left + Position.X = 33.000000000000000000 + Position.Y = 9.000000000000000000 + Size.Width = 32.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + end + object TRectangle + StyleName = 'background' + Align = Client + ClipChildren = True + ClipParent = True + Fill.Color = xFF202020 + HitTest = False + Margins.Left = -24.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' + end + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 76.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + end + object TLayout + StyleName = 'Layout2' + Align = Left + Size.Width = 24.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + object TPath + StyleName = 'icon' + Align = Contents + Data.Path = { + 060000000000000000004041CDCC4C3F0100000000000000CDCC4C3F01000000 + 00000000000000000100000000004041000000000100000000004041CDCC4C3F + 0300000000004041CDCC4C3F} + Fill.Color = claWhite + HitTest = False + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 16.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + WrapMode = Fit + end + end + end + object TRectangle + StyleName = 'popupbackgroundstyle' + Align = Center + Fill.Color = xFF2D2D2D + Size.Width = 296.000000000000000000 + Size.Height = 210.500000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + Visible = False + end end From 043d0c4aa2b809f7118c62ff3b4a143879fcd979 Mon Sep 17 00:00:00 2001 From: Alice <42270214+LilyStilson@users.noreply.github.com> Date: Tue, 16 Feb 2021 15:43:10 +1000 Subject: [PATCH 13/29] Delete src/AErender CC directory --- .../Intro auto-save 6.aep | Bin 142349 -> 0 bytes src/AErender CC/AErender.icns | Bin 162059 -> 0 bytes src/AErender CC/AErender.ico | Bin 161077 -> 0 bytes src/AErender CC/Style/bg.png | Bin 279 -> 0 bytes src/AErender CC/Style/bg15x.png | Bin 441 -> 0 bytes src/AErender CC/Style/bg20x.png | Bin 666 -> 0 bytes src/AErender CC/Style/style.png | Bin 31976 -> 0 bytes src/AErender CC/Style/style15x.png | Bin 60243 -> 0 bytes src/AErender CC/Style/style20x.png | Bin 77012 -> 0 bytes src/AErender CC/icon_128.png | Bin 5266 -> 0 bytes src/AErender CC/icon_128@2x.png | Bin 10232 -> 0 bytes src/AErender CC/icon_16.png | Bin 1294 -> 0 bytes src/AErender CC/icon_16@2x.png | Bin 1877 -> 0 bytes src/AErender CC/icon_256.png | Bin 10232 -> 0 bytes src/AErender CC/icon_256@2x.png | Bin 21538 -> 0 bytes src/AErender CC/icon_32.png | Bin 1877 -> 0 bytes src/AErender CC/icon_32@2x.png | Bin 3044 -> 0 bytes src/AErender CC/icon_48.ico | Bin 9662 -> 0 bytes src/AErender CC/icon_48.png | Bin 2500 -> 0 bytes src/AErender CC/icon_512.png | Bin 21538 -> 0 bytes src/AErender CC/icon_512@2x.png | Bin 47769 -> 0 bytes src/AErender CC/icon_UWP_150.png | Bin 2953 -> 0 bytes src/AErender CC/icon_UWP_44.png | Bin 1504 -> 0 bytes src/AErender CC/icons8-info-512.png | Bin 7936 -> 0 bytes src/AErender CC/icons8-settings-26.png | Bin 723 -> 0 bytes src/AErender CC/icons8-settings-512.png | Bin 14625 -> 0 bytes 26 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/AErender CC/AErender Launcher_Premiere/Adobe After Effects Auto-Save/Intro auto-save 6.aep delete mode 100644 src/AErender CC/AErender.icns delete mode 100644 src/AErender CC/AErender.ico delete mode 100644 src/AErender CC/Style/bg.png delete mode 100644 src/AErender CC/Style/bg15x.png delete mode 100644 src/AErender CC/Style/bg20x.png delete mode 100644 src/AErender CC/Style/style.png delete mode 100644 src/AErender CC/Style/style15x.png delete mode 100644 src/AErender CC/Style/style20x.png delete mode 100644 src/AErender CC/icon_128.png delete mode 100644 src/AErender CC/icon_128@2x.png delete mode 100644 src/AErender CC/icon_16.png delete mode 100644 src/AErender CC/icon_16@2x.png delete mode 100644 src/AErender CC/icon_256.png delete mode 100644 src/AErender CC/icon_256@2x.png delete mode 100644 src/AErender CC/icon_32.png delete mode 100644 src/AErender CC/icon_32@2x.png delete mode 100644 src/AErender CC/icon_48.ico delete mode 100644 src/AErender CC/icon_48.png delete mode 100644 src/AErender CC/icon_512.png delete mode 100644 src/AErender CC/icon_512@2x.png delete mode 100644 src/AErender CC/icon_UWP_150.png delete mode 100644 src/AErender CC/icon_UWP_44.png delete mode 100644 src/AErender CC/icons8-info-512.png delete mode 100644 src/AErender CC/icons8-settings-26.png delete mode 100644 src/AErender CC/icons8-settings-512.png diff --git a/src/AErender CC/AErender Launcher_Premiere/Adobe After Effects Auto-Save/Intro auto-save 6.aep b/src/AErender CC/AErender Launcher_Premiere/Adobe After Effects Auto-Save/Intro auto-save 6.aep deleted file mode 100644 index 6c56d8dcf1ae6bf10a528b1a1f35893ab702a360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142349 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 UhM{X$buAiBmmlo804vS^9}9Deu>b%7 diff --git a/src/AErender CC/AErender.icns b/src/AErender CC/AErender.icns deleted file mode 100644 index 8b9e578f386c360966c28d7bbabd59317aae2658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162059 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 diff --git a/src/AErender CC/AErender.ico b/src/AErender CC/AErender.ico deleted file mode 100644 index e4bb8b6d0aa312cb518ac89abd3540dc884b477c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161077 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 E1N2fzWB>pF diff --git a/src/AErender CC/Style/bg.png b/src/AErender CC/Style/bg.png deleted file mode 100644 index 1e898f602273ffa80f987481ed26950b33d51ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^J|N7&1|*M957Y)y_dH!3Ln>~)y|R$+u!2Zi;D$X+ z@Bc@5Pxoh6dxf_dzFB_Opv_QcmEo`b vS&2N!5h2Dsi9Fp|ZH7IGfwWP4_l@{6)!B>ZS+MxTzGedf2FE*} zSpWUk@rv?taTi)r)1Vfac_*THt^d8kdCyJvp5K-`KRaq#>Z88n``&+NKKHqXzwhyk z9gjDzd;OJv_L1{8`{G}$H}9NZnUQc?N@6?Pv9*nb*$H<>nK;8?Kf|W%!yP44nZkfk O!rZD<;?EVy zKffI=lo5XZf7gMESIM#0qZ9n&SN@6BGnn`5yz>8-+Ee$RW<3^c9{l0TC^hne;6Kx` XGV_pmZQTojX^z3u)z4*}Q$iB}4njH? diff --git a/src/AErender CC/Style/style.png b/src/AErender CC/Style/style.png deleted file mode 100644 index 91bde626dd88a9547bd4b08c266edb5d4282791b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31976 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 Mo7 diff --git a/src/AErender CC/Style/style20x.png b/src/AErender CC/Style/style20x.png deleted file mode 100644 index e4f4cb5cc96eaf37e1db1d758707b1ad648ba549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77012 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

    J8Go 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%0Auw~gj|OIq*6RF5NeYyYqsXG^*yUj1RAzp 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 diff --git a/src/AErender CC/icon_128.png b/src/AErender CC/icon_128.png deleted file mode 100644 index 2c358c32af7b59643b809665ed5f9199bfcce593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5266 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 W7L=vwODOnR6rif8sZffveEnZhmm@#` diff --git a/src/AErender CC/icon_16.png b/src/AErender CC/icon_16.png deleted file mode 100644 index 67ab6ba371b5266d3d73ae76d5ef1c98fe8dd104..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3f`bi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}6yY17;GAES zs$i;Ts%M~N$E9FXl#*r@k>g7FXt#Bv$C=6)S^`fSBQuTAW;zSx}OhpQivaGchT@w8U0PNgrg1KGYVVbM@iw z1#;j%PR#>)vk2%PDX-P9fWg$5>FgX(9OUk#;OXjYW@u?`d)cB-sPNP556AJ&|yTZ3G@ z%*?JGX?tmzfA5ONvpes0&i}pl`J8vQ;x=ARzEP=rC-^Kqn{eR$Tz=gO?Kq8vonE&x z_*PFdw6$IraK-MuYSf!+&#!37eP18yZtC4S$?KuuRfEfigbxL0XC8hi`_Ro)u8(Uz zXZh?R$A{ML{X71=Dme2rzui~Wf@@w?V*VR(_qvTz=93S7Dzci?8ERTD|6J8HDl0GS zTG`CC5iFb!j-OUZ?lJO^Km3UO<3<1eHyV@f&ptgr(X}Y_Birj4I>O3+v+@GNm+n$q zt+z`}`QWb0|M%B!{nA*sy{cFK)coAvdxf>ODbC*bcD?fLb8^lvg=3a+{nTzZ_@Y>~ zY(c4v!(FvG@uFK!=*8qXo?a|ycGz-d$TIiq58sMpIbSGX4(-l6|LOT0n}$t_@uj@g zzb~kMEcLec>PWx2{Av6@V8Y}q@Q5sCVBi)8VMc~ob0ioTn0P#0978O6dneuX4o;Lg zZvXt~)sH3_x{r0HvQ<6gYV*wFJ3Of+?5UY_uW`=nf3Vdjf}npC9~%)6O;EU{8;aN z?6}*82-Ef%*Ge@fpL{Zb_g?dsvXVz@N~OP?m~gGsQ^zHAw++u1_7y8vvnT9bw4r+c z^lN>7TQ+@?$&G6`x=ZqE&ahDA91+gvHZ8Z@<2Aj>m(n z8{Lamg@lA|+_R-+p4Ug43)8Qgt#{md+xf?Do@u^eY0LHpK3-{F(Oxg*v8ksxTvyz0 zo`R9|vV*tJEL?oN^1soJZ49N&Gu{8mDQ!+U5pcK|FFtS3j3^P6jeH zXlY1#a%EF`PE=!hYhyWNB0oL~Ja{^IZE$U6bYUQPZES9HI(R)IVPtP&WjbziI&Eci zVJ{*ecsh7(aCB=uB3MmOAVY6*Wgs;!H7+nBJ_;Z_a%5&YQba}|cx`NMb2@TlW<4Tk zbaZe!FE4j@cP@7`E^l&YFEKeeIWI6WFETPMa%5&Lb9rubVR$WWb0Z=?3Lqdna%5&Y zL}hbha%pgMX>V>Ia%5&YVPbD}bUh*>FFpz&JTG!&W;#+tMm`EWFL*k5ZE$U6bYVUU zJU@7FVPk7$bRcDJWIZBsB0oMFN~`Js00Dt%Lqkw=Qb$4{Nkv08F*!CiEix`K001bF zb&=02L{SvSKL(K>QHX`b5LQNhl-O8|7z&H=l)+}^&3iLyX1v}TNw&&%iV_>Y7W@Tl zm9R`@l1kwb)iBe-6T(w#X~W?i;YKwcjtZX% zcbjrS;X6l=#FVu^Km%!t!!Dl8IF{e;?;1HCk$JR@Qcz ztylyJ;K$1(V~jFLAH(7Y@zGC@>?o4oo6DbJMRHZ~2J4tC6C+NVZc$gIx+beGx+WvR zy3_x^eYNy~ez$s!AIhI?`@It?wjrCb?XM%-&K^VQ6I`YW`74Jo^dWktpmiKT-6ou0 z6|~4MTx>zhqY*a4IjK~pN7v!)6lz1za069~ZqM@PoIHTCAzyV3d;8EO@pVf-N{DCK zr{!P%00009a7bBm000XU000XU0RWnu7ytkSQ%OWYR9J<@mu*ayWf;eQ&w1tLaNqz( zIkMy+91xBm@+L1?VY30zmUHH8v1*GZt+`gYS~Zo`s?Az+EHnF%eW7XPhi1;%DhUXc zcTo&cAVAIm&I`!P!t?U<;c%Fiz~KP)|9Cz3{rrEs?)$p#`xXEJkODzKL;6^xG8s2I8-Mxov-15nIvYEH2>}RJ1_Z}d9`862riogA z^6RfSd+IwJ4#%>XdnK34DcbQ2J70JSyUq0H-WQF#rvIM2DFq_-9XR=>At}4?(*y5N zefA7)w|iO50o-mkomblF>%Pghr*=fH)f=h(?ZgEMpw`E2+V|Ye)p(^N-)Bx9hrJ0C(*%LFVfuL6DG^or^jw41lcsNBjo3TM}Of z>f;Tl!@_1w({uBdY`!Rfw9PpHocr+cu)TJnz4K+Jq^YSqOrJj@A}LQRK=DKuTs7a)koN zojU-t?R)(87-dfv`|@kwGLV+-Np(k?C-vrA1K6z=l*#~-)6#u1noA32z*Byk0Vpls z%kHvr0D^*50A%Fk(RS&A-vA3{Kp$@)R1*$BU{DYt>QF+|p-81tz_Sko!T&46f*J6Z zU;X)CsXBIKHXfnXa`5mMXrpvQ$LJa8?O7QBZ>crc*D_)@&BiT5W`<2BR_S!4=jQtj zFz*t0%MUy!*xeFEk;{!20Z7mBzbnoQU`)?I5G3^XbTewT{^xsJg9jjSLkhtvm0tk! zEuM-1EC9giaB%VW^OS8bUet|hUI4e-jeDla+)tt?&Nd+cm($7k z*qG1eu!yr@r6d7dE~mq#nd4+z2}NjE;c_}$fJ*{Q+ihl3f^owG1Bg#b#%?nY0@D&; za>(4%T2NHNnzb=2ZXO+@r=X|=v#Glcn2-WOcUNowquZV>$$I#)z?+@du#JqYh`Axz z$ZH2aKq?dMpH%F6W6VC>D*y^0vUvNePwsr~-HMPqT zA=3|4AMO9?ROK1KBH-DG3Lsn)pIQ7U9q%zF!P66hfDj-UP|n1c^g0Gazzs|TlfXEhm$7pu{{QM9^0|R*;YPW` P00000NkvXXu0mjfhiFUC diff --git a/src/AErender CC/icon_256.png b/src/AErender CC/icon_256.png deleted file mode 100644 index 4c7a57489068fb068658adfbd5adf9a1172c3782..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10232 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 W7L=vwODOnR6rif8sZffveEnZhmm@#` diff --git a/src/AErender CC/icon_256@2x.png b/src/AErender CC/icon_256@2x.png deleted file mode 100644 index 8e2a353d53567d1c4fd62f0c0c66af77c7071369..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21538 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 diff --git a/src/AErender CC/icon_32.png b/src/AErender CC/icon_32.png deleted file mode 100644 index 0ce5b1b1491eff93ec8782b967b0aa8615a0a9a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1877 zcmV-b2demqP)jeH zXlY1#a%EF`PE=!hYhyWNB0oL~Ja{^IZE$U6bYUQPZES9HI(R)IVPtP&WjbziI&Eci zVJ{*ecsh7(aCB=uB3MmOAVY6*Wgs;!H7+nBJ_;Z_a%5&YQba}|cx`NMb2@TlW<4Tk zbaZe!FE4j@cP@7`E^l&YFEKeeIWI6WFETPMa%5&Lb9rubVR$WWb0Z=?3Lqdna%5&Y zL}hbha%pgMX>V>Ia%5&YVPbD}bUh*>FFpz&JTG!&W;#+tMm`EWFL*k5ZE$U6bYVUU zJU@7FVPk7$bRcDJWIZBsB0oMFN~`Js00Dt%Lqkw=Qb$4{Nkv08F*!CiEix`K001bF zb&=02L{SvSKL(K>QHX`b5LQNhl-O8|7z&H=l)+}^&3iLyX1v}TNw&&%iV_>Y7W@Tl zm9R`@l1kwb)iBe-6T(w#X~W?i;YKwcjtZX% zcbjrS;X6l=#FVu^Km%!t!!Dl8IF{e;?;1HCk$JR@Qcz ztylyJ;K$1(V~jFLAH(7Y@zGC@>?o4oo6DbJMRHZ~2J4tC6C+NVZc$gIx+beGx+WvR zy3_x^eYNy~ez$s!AIhI?`@It?wjrCb?XM%-&K^VQ6I`YW`74Jo^dWktpmiKT-6ou0 z6|~4MTx>zhqY*a4IjK~pN7v!)6lz1za069~ZqM@PoIHTCAzyV3d;8EO@pVf-N{DCK zr{!P%00009a7bBm000XU000XU0RWnu7ytkSQ%OWYR9J<@mu*ayWf;eQ&w1tLaNqz( zIkMy+91xBm@+L1?VY30zmUHH8v1*GZt+`gYS~Zo`s?Az+EHnF%eW7XPhi1;%DhUXc zcTo&cAVAIm&I`!P!t?U<;c%Fiz~KP)|9Cz3{rrEs?)$p#`xXEJkODzKL;6^xG8s2I8-Mxov-15nIvYEH2>}RJ1_Z}d9`862riogA z^6RfSd+IwJ4#%>XdnK34DcbQ2J70JSyUq0H-WQF#rvIM2DFq_-9XR=>At}4?(*y5N zefA7)w|iO50o-mkomblF>%Pghr*=fH)f=h(?ZgEMpw`E2+V|Ye)p(^N-)Bx9hrJ0C(*%LFVfuL6DG^or^jw41lcsNBjo3TM}Of z>f;Tl!@_1w({uBdY`!Rfw9PpHocr+cu)TJnz4K+Jq^YSqOrJj@A}LQRK=DKuTs7a)koN zojU-t?R)(87-dfv`|@kwGLV+-Np(k?C-vrA1K6z=l*#~-)6#u1noA32z*Byk0Vpls z%kHvr0D^*50A%Fk(RS&A-vA3{Kp$@)R1*$BU{DYt>QF+|p-81tz_Sko!T&46f*J6Z zU;X)CsXBIKHXfnXa`5mMXrpvQ$LJa8?O7QBZ>crc*D_)@&BiT5W`<2BR_S!4=jQtj zFz*t0%MUy!*xeFEk;{!20Z7mBzbnoQU`)?I5G3^XbTewT{^xsJg9jjSLkhtvm0tk! zEuM-1EC9giaB%VW^OS8bUet|hUI4e-jeDla+)tt?&Nd+cm($7k z*qG1eu!yr@r6d7dE~mq#nd4+z2}NjE;c_}$fJ*{Q+ihl3f^owG1Bg#b#%?nY0@D&; za>(4%T2NHNnzb=2ZXO+@r=X|=v#Glcn2-WOcUNowquZV>$$I#)z?+@du#JqYh`Axz z$ZH2aKq?dMpH%F6W6VC>D*y^0vUvNePwsr~-HMPqT zA=3|4AMO9?ROK1KBH-DG3Lsn)pIQ7U9q%zF!P66hfDj-UP|n1c^g0Gazzs|TlfXEhm$7pu{{QM9^0|R*;YPW` P00000NkvXXu0mjfhiFUC diff --git a/src/AErender CC/icon_32@2x.png b/src/AErender CC/icon_32@2x.png deleted file mode 100644 index e29e7b6063e5a0444b9556b2c3f8f11303d63373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3044 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 diff --git a/src/AErender CC/icon_48.ico b/src/AErender CC/icon_48.ico deleted file mode 100644 index e6bd7e52535612f4171b8ad6b53ebbbc9be618a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9662 zcmeI2c}x^n9LGmFJxXh&Dy`^(K&$njsV5)`L|qW5M+r&kD8b*Kq{t|tvqy}F}8YfB8%OpA^tta8Qy!lAd*ijGl@W9hgJIlau;&CF4 zCXFYlNK;9(NUxD*ljaPu-~+zk6TVd>uz(3{U^KVk_y`hgr~6KPAtEDgRc1qWTHU3O z3NBtQ)pvB1=q_7B@CBdn4F<4)$;1Z6o-ts5Bx#bXv(uvbtnIb;S{v`P3r)-(1QsxX z4U8sM9>Xx&cO^|+I@^Es^}5nd&U~Z#5Iec;Etb1n&EEEZ)vAI|_yz;#`R;g0Cm6wM zVg|b-X{@7z!-8*W4qk)p{nkcS7QcoCIgDTd!(41CFdU9wD>H$O7_WjA%qDi^-luxk z<}#fByUoZ_XUw!Iv$>pUX3mn?z*wEJxfIMKu)9$_^KYN4zm0Q8lN0QYoySwVF-dMq zU@?DD`4>5jV!t<4%Q3784N3$%$+Ij?vk&~A?cHs+?7R*x z=4H$LW!p7{U?)v!*5{l6Kl&`Uv)8gRX`Rg9tjjTio#fl1*EWHFuX?H7^XEl|%lu#l zJIRk?`Q%CC2Q%28@>}=$#@o;T$^Wi}LF~9DS=P>=z&`s*oXT6+QAoI;q7eExoBFa33q>{vGMwC%+%qn`-= z4EjyUbIwc5=LXs?`fER!?FT;BdHeL@hmZd94AgG0`SE@m^Gl^dT%WNf|CH83?Mc)< z)(i%k4{O`&q9f({1~a|8!uvzjr@5K6;BR zyo=YtqkfZH%F9rn!`$lYLpnM4KNya55%V+?JJy6fG_R|ZAG8@CAO<{>u+}luO#Qt- z=1N$L1REGN(dr~(ovrECEtZ+U1x8}Udw(!v z4H#>v4y0$D9UZ6DXQl1G+ibYY7r2wWNwa8dT9UUR zev>{mF-@0}m~IWh7kt7u7)&f+;{W>~*qOXZ5-)F%k>nyt?I@{LX;BJm>^$8bCj(ks LO!;g_N%{R3L=sNA diff --git a/src/AErender CC/icon_48.png b/src/AErender CC/icon_48.png deleted file mode 100644 index 3382bb4a84309931d2f19d4120a494a86699dc5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2500 zcmV;#2|MjeH zXlY1#a%EF`PE=!hYhyWNB0oL~Ja{^IZE$U6bYUQPZES9HI(R)IVPtP&WjbziI&Eci zVJ{*ecsh7(aCB=uB3MmOAVY6*Wgs;!H7+nBJ_;Z_a%5&YQba}|cx`NMb2@TlW<4Tk zbaZe!FE4j@cP@7`E^l&YFEKeeIWI6WFETPMa%5&Lb9rubVR$WWb0Z=?3Lqdna%5&Y zL}hbha%pgMX>V>Ia%5&YVPbD}bUh*>FFpz&JTG!&W;#+tMm`EWFL*k5ZE$U6bYVUU zJU@7FVPk7$bRcDJWIZBsB0oMFN~`Js00Dt%Lqkw=Qb$4{Nkv08F*!CiEix`K001bF zb&=02L{SvSKL(K>QHX`b5LQNhl-O8|7z&H=l)+}^&3iLyX1v}TNw&&%iV_>Y7W@Tl zm9R`@l1kwb)iBe-6T(w#X~W?i;YKwcjtZX% zcbjrS;X6l=#FVu^Km%!t!!Dl8IF{e;?;1HCk$JR@Qcz ztylyJ;K$1(V~jFLAH(7Y@zGC@>?o4oo6DbJMRHZ~2J4tC6C+NVZc$gIx+beGx+WvR zy3_x^eYNy~ez$s!AIhI?`@It?wjrCb?XM%-&K^VQ6I`YW`74Jo^dWktpmiKT-6ou0 z6|~4MTx>zhqY*a4IjK~pN7v!)6lz1za069~ZqM@PoIHTCAzyV3d;8EO@pVf-N{DCK zr{!P%00009a7bBm000XU000XU0RWnu7ytkU!bwCyRA_jXNsYHinc()wV7ReN;Z=-N)}HdPv1+C91st))_1wP*?(NM%x6tV`#bk{&OI-I zc?AEZ0#*YlKyqP;In{jUL&c&@u0)aqmIFbMydJl!;nb1N?(+?ofvdnYFatON$$t?L zBmgpC6`AVZbg!$WfdPl5JZYLm9qQU zJ!IwN0?^!W{P6F7@xbqaQD9aE$bnn#d+_PIA9(mj&xxWaesrXkSAYE+6JwVWB77bR z+vRai9Q%;uwQISpsD#vvyiLdnH-QwUatt?^?0H#P!vT94VxCk^>ugQ zaysJ{yA&R;PorP6OdfB6x}02Ic%ynj+@D^3nUDYWVZ230gcxrD>AI{%ai)rG@fI5~ zaT`!-+7b+V+-_f7`4$vPWxPd4L|g_4freJ;r*|N{i`b!3iQTu3}q&? zY3XQEQ(2#yhPAng>V117))1Eg#t;MATP=)_jBs`OUnHljMVp?1E<1}N|h=q4KcfrN~Na6@8^?t8{;FxNRpS17E3TqI5$em)GaAK7GnMadZP)2 zLIFTWt0m|v?Up9Y+rJ3-4EW$L?<~sebj$|Bv)5;+dFv2YY!gh{Y+M>1j7mq$1{m+C z2!=yzz0J}T3>O+oS(BW?wX4$$@=D(Mc5(gM499D0VwDk_3x#%{039vO!SJP_L8k0> zU*V$2=G)CNi;IMqzCdXAIX5>)ap`7?HhnJmd}{Iv>oghwOqE+X{qa9;g4Csn$$-$> zS11%b`Ln9$IMWLuPoQHXyY7oEW>rE6?v)@^Aah^S@!+m+l38-RZjrs~4rY z8AR`N{fuB z3<&K$0ot0I!ls?F+ZpuFUjfQjf&rnmKX9R!>8Z)jOdpsZ0O*b7sC>(u zqc!gWMAWOCIDQoWDmVbERN>+165L1t=&nAd|-ppBPgk`xe$)Wi0B2yQUIf&@ zdWBM*_sq}V+FiN*kzI1RQn9S6!{Bzi=IT$r|K9$6j~|+IIWFQ8@4&y&9YDnQB~k!w zW>!IV#r7S>y!$zvH}Dgd$aAv^9OQ5VE@0Mw1rB<60^-z O0000aBq&J) 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 diff --git a/src/AErender CC/icon_512@2x.png b/src/AErender CC/icon_512@2x.png deleted file mode 100644 index 1c96b17aedd49038e7bdfb30be557a09d8a7779a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47769 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 ezct{3=OURJir#jGXAStjG`MV{oAGtrTJ3EB diff --git a/src/AErender CC/icon_UWP_150.png b/src/AErender CC/icon_UWP_150.png deleted file mode 100644 index 4c38394200a6a3aedd572701418a6d60e66af2e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2953 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 diff --git a/src/AErender CC/icon_UWP_44.png b/src/AErender CC/icon_UWP_44.png deleted file mode 100644 index 746a63d27ee31995893d61ce472e3b63672893a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1504 zcmX|>e>~G$7{|YExTDlUDWv(f%fx>8Su-Qsm>K;RzJy0AS}J5iposmKYYqVspaq z;6z;m2;&6fK|gDEjJtry3gx&+g)A?rhc{EoWnzOt2YYopiLC;_V~H6s3GZ;2$X0>} zzjJLB>y>RZ2>Tu)=HfxRI~7Lc3t2F0lr;(i+N;Ctgux-UG?Md=%L)$Ei90V2&5<~Ow5oV!$jLw5dSksED=-45r{ebFxU!{5yTG{ z<3SL;k_7!Di=tfg&w3TkPsOY-g-oGBkFIO!N5wP6afn2!h(;#BC{9EhbF7UG(gI}; z0EqPP^cSWiPwl4;A)!slx=$M4{dNmlwAf2;ZKBeDzrNVtYB$k#BWF^|hxcuNW#W2x zG2n|%g-?&`dXv6hx|ZHd9=prULLTwr+rR`~E}p1;$k={v~~16VAk4O=QI2+n()PW^enTKh&tQG8<3ia#)Gvgr~k$#VvaqzXn*; zz@ou{u;(g?{C)TWIXg=$YDwHjD`I@>(5wvloczPs*53oS6K8yc9E z9@IU)JXGKBya#h&aBF-j`DqkSWymP{y}o?-(UJPKj~4)W4q-`VKhuy>U>b@%O08Ra zT}K63uff*qkno#t^`05Y95Y`d!6xNyhU|0f-dE3Vkn0b|-8VWAu7<1YFq-^hdMK94 zo;h)4)S*rS30_dp=(At|(Et zSWLmK)46MzWS>FV%F&rFYj4F{E{+x~@6oB1FjlptL&7}Ic;erWi6;oq@gWE`SUf7JC90eJL;*Vpa`knY^c zSB-}Op@+hCTmDMbcq={%Bwv|Z8rK7kitlTU=Q}0B5;)`HRoTgBRPB$^n`wUQ2@pd# zIle!U6KR#*8Uj?hAU3K|GDwgkNA?poQ8fMFd;NQ!%%8Tg@vFR*i9a~_;&pvg3<6W( zpKP;(e1g7nr^Aj}QS_&0<|k`qG{1>CgRRfoA4ClM&h|~4qS)E{yvl3zd4UE%2E4h5 z2qY1eq{qUYwwqn(&YH&JQg7y9a@zh$at5@RlZjn+$3roKN#Qym>*;J$tOG8}{M_Zo zf}L{@hL(-Z@fWlAyIiwb-6?xpY|4deUSYrMboA8ToK#X8=^aoS!q#-Hf>W&K@YWkN zj`@gUecl(2Dr5BbC(&K5HItbwMS0{lcOhcg4Kb=Lm>Nhd|LkS;n%i%@O*-^YTKf>1 zidB+$T=LKFkahag0`6DeyT?dgd{1qyEtpYddX#sCU-5I+*c`mLMDCh4 zjscA2X=|ciqaaW6>>6g?F=CC*wHuU`mz7lps=Rp@y;K*eeL(xBodUG^%-S*-fI&Fm z_Xfs%Im=@z&l_rs%KPRU(wfert_m$pH-WG6xHVhiq``j+{s;G=90#m?=&kq;kT+`2PTtQi;X@ diff --git a/src/AErender CC/icons8-info-512.png b/src/AErender CC/icons8-info-512.png deleted file mode 100644 index 049b3e539e149e3620132faaa4c017f65bdb4594..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7936 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 RtqX1dVdG>?vh=(8{{TQc0TuuN diff --git a/src/AErender CC/icons8-settings-26.png b/src/AErender CC/icons8-settings-26.png deleted file mode 100644 index 40e4fd4b48a9f5e5af6f6ffbc62f59148c12fb87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 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

    _iM4cb<@jKg7kWo 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 R!o~vp;0ETfBE4JB{~vUnZlnMJ From b3d1700eebbe3e21524583dd11219a3b04242e1c Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Sun, 21 Feb 2021 04:03:28 +1000 Subject: [PATCH 14/29] Refractored code, removed comments --- src/lib/plugins/AEP Parser/aeparser.go | 34 +++----------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/src/lib/plugins/AEP Parser/aeparser.go b/src/lib/plugins/AEP Parser/aeparser.go index 3dcc495..d4d1d00 100644 --- a/src/lib/plugins/AEP Parser/aeparser.go +++ b/src/lib/plugins/AEP Parser/aeparser.go @@ -3,52 +3,24 @@ package main import ( "encoding/json" "fmt" - "os" aep "github.com/LilyStilson/aftereffects-aep-parser" ) func main() { projectPath := os.Args[1] - //projectPath := "E:\\YandexDisk\\Acer\\Footages (AE)\\AErender Launcher Benchmark Projects\\SuperEffectiveBros - Mograph Practice\\AEPRTC_Eclipse_rev57(ForDist)_2020.aep" - //projectPath := "Mograph Icons.aep" - //projectPath := "E:\\YandexDisk\\Acer\\Footages (AE)\\MindCool Intro (converted).aep" project, err := aep.Open(projectPath) - // "E:\YandexDisk\Acer\Footages (AE)\MindCool Intro (converted).aep" - /*fmt.Printf("%-48v| %-16v | %-6v | %-6v | %-10v\n%v\n", - "Composition", - "Frames", - "Length", - "FPS", - "Dimension", - "---------------------------------------------------------------------------------", - )*/ - - + var comps []aep.Item - for _, value := range project.Items { - if value.ItemType == aep.ItemTypeComposition { + for _, value := range project.Items + if value.ItemType == aep.ItemTypeComposition comps = append(comps, *value) - - /*fmt.Printf("%-48v| [%6d, %6d] | %6d | %6.2f | [%5d, %5d]\n", - value.Name, - uint32(value.Frames[0]), - uint32(value.Frames[1]), - uint32(value.FootageSeconds), - value.FootageFramerate, - value.FootageDimensions[0], - value.FootageDimensions[1], - )*/ - } - } JSONComp, err := json.Marshal(comps) fmt.Println(string(JSONComp)) - //json_msg, err := json.Marshal(Compositions) - if err != nil { panic(err) } From f5389823bb07370334cacf751f258c0f132590dd Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 4 May 2021 02:25:47 +1000 Subject: [PATCH 15/29] Updated code; Modified custom component; Removed FMX.ComboEdit.pas, due to bug fixes by Embarcadero --- src/AErender_Launcher.deployproj | 200 +- src/AErender_Launcher.dpr | 6 +- src/AErender_Launcher.dproj | 78 +- src/AErender_Launcher.res | Bin 133580 -> 135728 bytes src/AboutUnit.fmx | 3523 +-- src/AboutUnit.pas | 6 +- src/HelpUnit.fmx | 4 +- src/ImportUnit.fmx | 203 +- src/ImportUnit.pas | 217 +- src/MainUnit.fmx | 21706 ++++++++-------- src/MainUnit.pas | 690 +- src/RenderingUnit.fmx | 7 +- src/RenderingUnit.pas | 31 +- src/SettingsUnit.fmx | 11 +- src/lib/AErenderLauncher.IO.pas | 55 +- src/lib/AErenderLauncher.Rendering.pas | 174 +- .../TCompLabel/Package/CompLabel.dpk | 7 +- .../TCompLabel/Package/CompLabel.dproj | 180 +- .../TCompLabel/Package/CompLabel.res | Bin 32 -> 640 bytes .../TCompLabel/Package/CompLabelDesign.style | 54 +- .../TCompLabel/Package/FMX.CompLabel.pas | 134 +- .../TCompLabel/Package/FMX.CompLabel.res | Bin 1804 -> 2904 bytes .../Test Project/CompLabelDesign.fmx | 38 +- .../Test Project/CompLabelTest.dproj | 189 +- .../TCompLabel/Test Project/CompLabelUnit.fmx | 3388 ++- .../TCompLabel/Test Project/CompLabelUnit.pas | 1 + src/lib/FMX.Ani.pas | 5 +- src/lib/FMX.ComboEdit.Style.pas | 817 - src/lib/FMX.ComboEdit.pas | 518 - src/lib/FMX.Graphics.pas | 31 +- src/lib/FMX.Platform.Win.pas | 574 +- src/lib/FMX.TreeView.pas | 24 +- src/lib/MacApi.Dialogs.pas | 1 + .../AERFMXStyleMacOSAnimated.style | 416 +- .../AERFMXStyleWindowsAnimated.style | 1154 +- styles/AErender Modern/AERFMXStyleMacOS.style | 192 +- .../AErender Modern/AERFMXStyleWindows.style | 1232 +- 37 files changed, 20041 insertions(+), 15825 deletions(-) delete mode 100644 src/lib/FMX.ComboEdit.Style.pas delete mode 100644 src/lib/FMX.ComboEdit.pas diff --git a/src/AErender_Launcher.deployproj b/src/AErender_Launcher.deployproj index 293c6bc..5c38012 100644 --- a/src/AErender_Launcher.deployproj +++ b/src/AErender_Launcher.deployproj @@ -3,20 +3,24 @@ 12 - + + + + + + - + AErender_Launcher\ - AErender_Launcher.exe - ProjectOutput + ru-RU.aerlang + ProjectFile 0 True - True - + AErender_Launcher\ ru-RU.aerlang ProjectFile @@ -25,25 +29,44 @@ True - + AErender_Launcher\Assets\ - Logo44x44.png - UWP_DelphiLogo44 + Logo150x150.png + UWP_DelphiLogo150 1 True - + + AErender_Launcher\ + en-US.aerlang + ProjectFile + 0 + + + True + + + AErender_Launcher\ + AErender_Launcher.exe + ProjectOutput + 0 + + + True + True + + AErender_Launcher\Assets\ - Logo150x150.png - UWP_DelphiLogo150 + Logo44x44.png + UWP_DelphiLogo44 1 True - + AErender_Launcher\ en-US.aerlang ProjectFile @@ -52,7 +75,7 @@ True - + AErender_Launcher\ AErender_Launcher.exe ProjectOutput @@ -64,6 +87,33 @@ + + AErender_Launcher\ + ru-RU.aerlang + ProjectFile + 0 + + + True + + + AErender_Launcher\Assets\ + Logo44x44.png + UWP_DelphiLogo44 + 1 + + + True + + + AErender_Launcher\ + aeparser_win.exe + ProjectFile + 0 + + + True + AErender_Launcher\Assets\ Logo150x150.png @@ -73,7 +123,7 @@ True - + AErender_Launcher\ en-US.aerlang ProjectFile @@ -82,11 +132,20 @@ True - - AErender_Launcher\Assets\ - Logo44x44.png - UWP_DelphiLogo44 - 1 + + AErender_Launcher\ + aeparser_mac + ProjectFile + 0 + + + True + + + AErender_Launcher\ + en-US.aerlang + ProjectFile + 0 True @@ -149,10 +208,10 @@ True True - - AErender_Launcher.app\..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF\ - AErender_Launcher - ProjectOSXDebug + + AErender_Launcher.app\Contents\Resources\ + AErender_Launcher.icns + ProjectOSXResource 1 @@ -177,15 +236,6 @@ True True - - AErender_Launcher.app\..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF\ - AErenderLauncher - ProjectOSXDebug - 1 - - - True - AErender_Launcher.app\Contents\Resources\ AErender_Launcher.icns @@ -195,15 +245,6 @@ True - - AErender_Launcher.app\Contents\Resources\ - AErender_Launcher.icns - ProjectOSXResource - 1 - - - True - AErender_Launcher.app\Contents\ Info.plist @@ -213,15 +254,6 @@ True - - AErender_Launcher.app\Contents\MacOS\ - libcgsqlite3.dylib - DependencyModule - 1 - - - True - AErender_Launcher.app\Contents\Resources\StartUp\ en-US.aerlang @@ -231,16 +263,25 @@ True - - AErender_Launcher.app\..\ - AErenderLauncher.entitlements - ProjectOSXEntitlements + + AErender_Launcher.app\..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF\ + AErender_Launcher + ProjectOSXDebug 1 True - + + AErender_Launcher.app\..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF\ + AErender_Launcher + ProjectOSXDebug + 1 + + + True + + AErender_Launcher.app\..\ AErender_Launcher.entitlements ProjectOSXEntitlements @@ -249,7 +290,16 @@ True - + + AErender_Launcher.app\Contents\Resources\StartUp\ + aeparser_win.exe + ProjectFile + 0 + + + True + + AErender_Launcher.app\Contents\ Info.plist ProjectOSXInfoPList @@ -258,6 +308,42 @@ True + + AErender_Launcher.app\Contents\Resources\StartUp\ + aeparser_mac + ProjectFile + 0 + + + True + + + AErender_Launcher.app\Contents\Resources\ + AErender_Launcher.icns + ProjectOSXResource + 1 + + + True + + + AErender_Launcher.app\Contents\MacOS\ + libcgsqlite3.dylib + DependencyModule + 1 + + + True + + + AErender_Launcher.app\..\ + AErender_Launcher.entitlements + ProjectOSXEntitlements + 1 + + + True + diff --git a/src/AErender_Launcher.dpr b/src/AErender_Launcher.dpr index 4901218..9768c83 100644 --- a/src/AErender_Launcher.dpr +++ b/src/AErender_Launcher.dpr @@ -30,13 +30,11 @@ program AErender_Launcher; uses System.StartUpCopy, System.SysUtils, - FMX.Forms, FMX.Graphics in 'lib\FMX.Graphics.pas', FMX.Ani in 'lib\FMX.Ani.pas', FMX.TreeView in 'lib\FMX.TreeView.pas', FMX.CompLabel in 'lib\Components\TCompLabel\Package\FMX.CompLabel.pas', - SplashScreenUnit in 'SplashScreenUnit.pas' {SplashScreenForm}, MainUnit in 'MainUnit.pas' {MainForm}, SettingsUnit in 'SettingsUnit.pas' {SettingsForm}, @@ -46,15 +44,13 @@ uses FFMPEGUnit in 'FFMPEGUnit.pas' {FFMPEGForm}, RenderingUnit in 'RenderingUnit.pas' {RenderingForm}, OutputModuleEditorUnit in 'OutputModuleEditorUnit.pas' {OutputModuleEditorForm}, - {$IFDEF MACOS} Mac.CodeBlocks in 'lib\Mac.CodeBlocks.pas', + MacApi.Dialogs in 'lib\MacApi.Dialogs.pas', {$ENDIF MACOS} - {$IFDEF MSWINDOWS} FMX.Taskbar in 'lib\FMX.Taskbar.pas', {$ENDIF MSWINDOWS} - AErenderLauncher.Localization in 'lib\AErenderLauncher.Localization.pas', AErenderLauncher.AerenderParser in 'lib\AErenderLauncher.AerenderParser.pas', AErenderLauncher.Math.ExpParser in 'lib\AErenderLauncher.Math.ExpParser.pas', diff --git a/src/AErender_Launcher.dproj b/src/AErender_Launcher.dproj index 843bfc8..58238e2 100644 --- a/src/AErender_Launcher.dproj +++ b/src/AErender_Launcher.dproj @@ -5,9 +5,9 @@ Debug FMX AErender_Launcher.dpr - Win64 + Win32 {C2DB1030-533B-41FD-8468-632CB85028C7} - 19.0 + 19.2 4099 @@ -234,9 +234,9 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico true - 1 + 2 true - FileVersion=1.0.0.1;ProductVersion=1.0.0.0 + FileVersion=1.0.0.2;ProductVersion=1.0.0.0 1033 true @@ -415,6 +415,16 @@ RCDATA Language_RU + + ResourceItem + RCDATA + AEPARSER_MAC + + + ResourceItem + RCDATA + AEPARSER_WIN + Base @@ -460,6 +470,12 @@ true + + + AErender_Launcher.icns + true + + Assets\ @@ -506,6 +522,12 @@ true + + + .\ + true + + .\ @@ -536,6 +558,12 @@ true + + + .\ + true + + .\ @@ -626,26 +654,26 @@ true - + - AErenderLauncher + AErender_Launcher true - + + AErender_Launcher true - + - Info.plist true - + - AErender_Launcher + Info.plist true @@ -692,9 +720,27 @@ true - - - AErender_Launcher.rsm + + + .\ + true + + + + + Contents\Resources\StartUp\ + true + + + + + .\ + true + + + + + Contents\Resources\StartUp\ true @@ -815,9 +861,13 @@ + False + False True True True + False + False False diff --git a/src/AErender_Launcher.res b/src/AErender_Launcher.res index a11f223389cfd50e088b034dfda23b27441525bd..d3a44b9e7b26754baf44871d2cb1200d2d3f9722 100644 GIT binary patch delta 2331 zcmbtV&u`;I6rL0onnf!CCys+bAR&!^+p(*pRkrO)5!L$zv=sncD5qf}j;Q0=W#%*~9CacdsgUer)`VTM< zAd(HkZ{PbcN9Zy72<*E^pcLhZq6{t2GkB+nx96Xs7@eXsR069b^a6I9cZn**U`Mn* zPtnH^;|Z)2IJE~uq7W6Z&cUv*>SGA?BUQa8%{4-~__jdI9~1Chn0C{D~Cs)@WxR$HpjXWJz^UTx9(ibAb$ zjORRKP~pWY$l6d&SM}_2Sr>Q)?qysqT7?^x%S8^20I-&+bjFOPU_4kCUR{b-OLbSI zsmRE#$jU+_vOm!^ovZ52x8KRD0P6ZRUmS}U9Ji!?wdPGFa4mCNw*(=qVt7 z)f@9dgrJfrrbQi|#U&5Rs%TxbwQ_f64I=mIv}!@2WjV_tv2K_K{@-&N51oE;YNJWlv2@7fX?v)kRjfRjx_Kjm|tbn0T9H0y~%qhR<`k@hr{vJ zo7xzL<4*}WKI3?{hXbC7a}0N^xyoE(@Wryqb5WEy5(QpeKYS9y?+_*gXuqZCf`@C-N=YV83DN-u=)vH6zpG7ICb=C$?=HB%ppsnCml});4vy<-HBG zYTOTQMDEB9M=tSnZV=nFd;&K$AfCna$YnaK>F9014gG#>kL%Hh8YT&%zyi&=N1y@@ svAu{nIyD^X)0aMIJ{%647SwL^;8?rXtWC4SujcYU4Hm!rG~Af}3x->Z?*IS* delta 153 zcmdn6gyYO)jtL6f4vY*83JeSk|Nje2KhMP^%H+T}(MeB_fq@YSK>$M916fQ!%mNny zGN51q!^C+?qBTGsBZC2h2@qR?X;%i5$*GLWyoL;VKt2Q;PPS!I=Y)$i=Q6eDGBIw? OWnv2FnEpYK$pHZ5ycY`q diff --git a/src/AboutUnit.fmx b/src/AboutUnit.fmx index a03d152..6ca640d 100644 --- a/src/AboutUnit.fmx +++ b/src/AboutUnit.fmx @@ -53,107 +53,107 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000080000000800806000000C33E61 CB000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 0C7D49444154785EED9D096C1CE515C7FFB6F7B077D767E25C4EEC90900B9238 - B1E3B5D3AA45D043422DAD2A2154B5A2A548ADA0A110AEA4500802D4AA6A2B85 - 1610BD542A2A7A51810AA5A8080441AD208E8F2476424248489CC424B1139FEB - 6BAF7E6F0E727977BE19EF7A663DEF27BDECBCCFEBD9C8EFBFEFBBBF01C3300C - C3300CC3300CC3300CC3302E204F7B9D0EF4CF9ACECFCC459297BC66956C0783 - EE4F96AF99EE33A9A1C0932534D3FDAC908D60E8412E10E611E6151644A0720D - 8ACA9721DF370FF97985A28CB99444720C89895318ED3B84919E0E5112111615 - 161316179671316452007AE029E83EF8FD95082DBE11658B6E40604E58FCC84F - 6F6264498E63E44C33FA8FBF82E1A3FFC0F8788F289C104662C89810322580F3 - 81F7F9AA50B9EE6E1457DF0CAF3FA8FC94991AD1F10886BAFE849EDDDB313171 - 52945C28842991090150DD4E693E808AE5B7A072FD36F83C65CA4F98CC3211EB - 474FFB6338F7C11F8537228CAA076A275866AA02A0E08BD45E3807354D4FA1A4 - EACB6A319355868EBF8AA3CD9B80B133C21B176659045311801A7C9FAF06D55F - FC3B8A4AD7A8C5CCB4303AD081AED76F1255C231E1591601B5D4ADA006DFEFAF - C2E22FBC84C2B2D56A31336D780BE7A2B8EA3A0C77BD8A789CAA03BDCB680A2B - 02A0ACE113568A9A6B9F47D1EC0D4A2933FD780A2B51386B3DFA8EBC2C3C4BED - 012B02A0D67E08736B7F88F2255F578B18DBF0856A90979F87C8E9F784675A04 - 94CACDA0A5FED25A54ACB8532D626C87624131511AE4E6626AE6CD94FA296304 - 307FC3C3F078A9EBC738018A05C58462A3C648BA716F56003E04449D5F3CEF3A - B588710C14138A8DDA3ECB8A00485985285FF66DD5651C871A1B9A67916EDBC9 - 0A404FFF25285B70BD52C2380F353625C2A4AB013302F022B8208CFC42FA00C6 - 89506C2846EAD07C460540EFF32234AB417519C7A2C6880420155B99379192C8 - 3CF096AD504A18E7E22F5B2EFEA5B11A3D6E6931530578E00FCE575DC6B17883 - 0BC4BFBA000C91CD00F4BE0214F84A9512C6B9E4FBF44620C52C631980C8433C - 4ECA629C4C222EDD0024CC08809981B0005C0E0BC0E5B0005C0E0BC0E5B0005C - 4ECE09C0EBF5221008485B4181F4C4982B91E92F9248688E790E967E69070265 - 8B95529BB8EBDEADB86AB5FC02E4DD6DAD78E6C9ED9AE70246FA8FE2F0ABD788 - 2B5A324E1B48D22E11CBB90C5058686E5BE19AB5B50886429AC75C4ACE09A0B4 - AC5CBB92A3C0E3C1868646CD632E25A704505C5C828A59B3344F9EF0C64F6957 - CCA5E49400D6D5D5232F4F7A98FB13965EB91CB366CFD63CE642724A001BC24D - DA95394834E126CE0293913302282D2DC3F295AB34CF3C2C80C9C91901D4871B - 919F6FFDBFBBA06A211655D7681EA393330208376ED4AE26A763EF6EED2A35DC - 18BC9C9C10C0ECCA39B862E9959A7739894402FFFAE74B9A979A0621A2BCBC9C - D1FCB490137F0D0A5C3A8E771DC3D1238771B6978ED1494D7979856847ACD43C - EB149794A0A4B434A5F97C34709A9A402088BA8630BE76E34DB8F5BBB7E3B63B - 3663EE3C7B965BE6C450F0238FFF140B162ED4BCCBF9CFBF5FC18B2FFC0DDFFC - D677F0D96B3FA7954ECEFFDE791BCF3DFB7BCD330F05F8E74F3CAD79933330D0 - 8F87B7DE8BF1713AB7E13C55A21D72FD0D5FC5FAFA06783C17AFAEA3E16A1AB6 - 9E32336D28B86AE1A2B4C1273AF7EE555F3BF628AFE9A8DB10562694AC323C34 - A45439E9A01ECBAAABCFCF57141615E11B37DF82871EFB8992CD2E0DBE9D385E - 0046E97F7878181F1E3AA85CBFBF7F1FA251127D6A8A0201ACA95DA779E6A1E0 - D3671A515DA326CA85D5D578E8D11FE39AEB3E3FA55E4CB670B4006800C74800 - 1D7BDA3FF9464E8894FBFEBE4EE53A1DE1A64F6B57D6181B1DD5AE524343D62B - 56AEC2FD0F6C43A568C43A15470BE08A254B450FA052F326674FFBC5F5667B6B - 8B76951ACA00D410B38A51962196885ECBA6CDF7999EBD9C6E1C2D800683D1BB - 68348AFD9D74A2EA79F6EC6E33ACA3A90EA656B8558CEE4F50ABDEEFA7033B9C - 8D630540F5A5D134EE81FD9D97B5B423A27E3EF481DA264847E3148686497833 - 05C70A60C5AAAB942E573A52759B76B7195703CB56AC447985F9A96522C602C8 - 3E468DBF6432A1A4FBC990E94F2B3384069F918A588C8EE9CD2CD9B8A70C8E14 - 00D5D13458928E23870F63687050F32EE6DCD95E9C38DEA579A9B13A37904C5A - 3BA3B9BBFB24DE78FD35FCF69927F1F8B60771DF5DDFC7DD9BBE877B7E701B3A - F71A8F616403470A60F5DA5A65456F3AF619FCC164B2C0C245D5CA40533689C5 - A2D8F1D69B78ECE107F0E88FB6E285BF3C8FD6E69D8A4049C02323234ABBC52E - 1C2900A3F44FEC15FDFF74B4B7EED2AED293CD75026D2DCD7868EBBDF8F373CF - E2E489E35AA9B3709C00FCA2DFBC765D9DE64DCE5991E26902281DF40D3B7DEA - 94E6A5860460659999117D7DE7F09BA77F85BE73E7B41267E23801AC5B5F6F38 - 9B2633D843B4EEDAA95DA58646ECAE5C96F9936F1271E3B10227E03801C8A4FF - D6663A16D71899EE20D1E8E285228E9A0E0E8542F8D9134FA7DDCE452DF0D65D - CD522D714AEDF50D61C3141F890C63CBE63BA4BB6277DEB30557AF59AB799373 - B6B7170FDEBF59F3A6915C9E0EA6A95AA3BD7C14CC0DE14691299A0C8DDE2753 - BF07832111503A6BD97D384A0032E93F5BB8B51A708C00CACA2B94E159BBA09E - 47515191E6B907C708A021DC9495EE982CB44AC868F47126E21C0134D997FE75 - C21BA7B6502417718400E6CC9D879AC557689E7DD00A9E3293BB8F731D4708C0 - CEC6DF85286B1044EFC14D3842006107A47F9D46975503B60F04D17E3D5A356B - C4AF9FFA25BA8E1DD53CF3D0EEA27BB63CA079E979E4C12D38F571B7E65D0E0F - 04651099D9B8C1C10165F127EDFCB16A07DFDF87EE9327B43BA6C74D59C05601 - A8A37AC675EE9EB656A9859846B448CE215095646797743AB155004B972D973A - F2A54D72F6CF885D3BE50440D5052DEB7603B60A40A6F53F321211E97BBFE64D - 8D33A74F49B723DCB295DC3601D0A40FCDD419B177773BE2F1CC2D98DCB5F35D - ED2A3D5435B9E19049DB04B0F2AAAB9553BF8C905DDA254B4BF34EA9A9E450A8 - D8D48194B98A6D029049FFB4E9635FC7C53B7FA60AAD183E72F843CD4B8F1B7A - 03B608C0EBF5617D9DF153E769A9B4CC3E3CB3B44836066BD7D7296B146732B6 - 08803667D29E7923329DFE755A5B764A752B7D3EBF945073195B0440EBFE8DA0 - F4DFB1C7F8E0272B0CF4F7E3E001B99E456D5DBD76751E99A563B41F2017B065 - 2838100CA2A424FDBEBF9148441901CC16B46D9B16A118419B3686862EDE8144 - 874CD02920E9A0EEEBE040F6FEFF293139146CFB5C00936166FA71F14C666101 - B81C1680CB6101B81C1680CB6101B81C1680CB6101B81C1680CB6101B81C7302 - 2828B0E72C33461E933132238024A213939FCBC638073546D2E7D8C908806E46 - 96406CD8F8D425C65ED418D104901EB7B4C86600BA510CE303726BA918FB5063 - 44D58061F009D90C408A8A61B867F2B35919E7A0C68804A06781B4C86600BA59 - 1423675B91880DA9458CE3A0D8508C28566ACC0C315305889B46873078FC0DB5 - 88711C4A6C448C540164AC0AD0A1B4328A9E0FFEAABA8CE3506343CFB391EE0A - 9AC90094524631D6DB8EC1EEFF2AA58C73A098506C540148D5FF84990C4037A5 - 35664338D3B61DD1A4A90107268B502C2826141B89758017626DF35B6C7C58FC - 6611827367F6A2F95CE16CC7EFD0DFF5A2B8EA1746CFD0C9AA00D4D412397300 - A1B9F5F085AA149FB187C8E9669C786F9BB8EA1536222C4EC5B2581500292C81 - A1EE1614CFFF0C3C45C60BEC99CC33D6F7218EEDD824BA7F74F489A9D6BF8E55 - 0190C5C5078F61A0EB5D84166C84B7D0DA1398186B8CF41FC4476FDE8EF8F861 - E1D10E1453A95FC7EA06785D043124E3110C7EB403DE9225282CE54D23D3417F - D7DB38F1F666C4A347C81346C13795FA75AC0A80200190E2A24824C630D8F50E - 6263FD08CDA9455E81F39F98988B24A243E86EDD8ED3EDBF107FF393A2644AC1 - 27A67A1212FD3E752529E0F42CD67214F817A372F5ADA858F6151414B8EFF4E5 - 6C108F8FE2DCA197D1D3F90791F2E98C9B3E6111617ADAA72FA3253275141689 - 809EC94E9BE98B85950821CC4769CDF528ADBE16C1CAD5C8CB4FFF1C18E66292 - 8909447A3A451BEB2D0C1C7B4D04FE63514A753D3D626C4C98F4787F3A322500 - 82EE45558A2E04FAF6535608009E1204CA56C25F52034F7036F2F2286364F2B3 - 6702492493E388457A313E784C34F20E8826162DEEA0AE1D7DDB69844F0F3CA5 - 7CCBDFFA0BC946107421E862A06F3E059CAEC9285B70F027E77CBB4A354AF134 - B2A7073D6381D7C96620E8DE64147032120407DF185D04146C7AD5EBF88C065E - 67BA82A17F0E075F0E3DD859093AC3300CC3300CC3300CC3300CE33A80FF032F - D9E548B0D95E090000000049454E44AE426082} + 0C7E49444154785EED9D096C1CD519C7FF6BEF61EFAED7EB24CE65C70E09CE01 + 499CD8F1DA69D522E821A196569510AA5AD152A456D0500857522804016A55B5 + 95420B885E2A1515BDA8408552540482A05610C747123B212124244E6292D8F1 + BD6BAFF7EAFBE6209777E6CD78D733EB793FE9CBCEF7BC99B5FCFDF77BF71B08 + 0402814020100804028140201008040207E0525E6702F5B366F2330B91CC25AF + 7925DFC1A0FB931529A6FA82EC50E0C9D28AA97E5EC84730D42017337333F330 + 0BC05FB916A5157528F22E4491AB8495092E259D99407AF234C6070F23D6D7C5 + 4AA2CC12CC92CC52CC722E865C0A400D3C05DD0B9FAF12C1A53722BCE406F8E7 + 47D88F7CF426012F993862675B3174E2158C1DFB07E2F13E5638C98CC4903321 + E44A00E703EFF556A172FDDD0854DF0C5F6940FAA9607AC4C7A3889EFC13FAF6 + ECC0E4E4295672A110A6452E0440753BA5793FE6ACB805951BB6C3EB0E4B3F11 + E496C9E410FA3A1FC3C0077F645E8C19550FD44E30CD740540C167A9BD643E6A + 5B9E42A8EACB72B120AF8C9E7815C75A37031367991767665A04D311801C7CAF + B716355FFC3B4ACBD7CAC58219617CB80B3DAFDFC4AA84E3CC332D026AA99B41 + 0EBECF5785A55F780925E13572B160C6F0942C4059D57518EB7915A91455076A + 97D11066044059C3CBAC1CB5D73E8FD2791BA552C1CCE32EA944C9DC0D183CFA + 32F34CB507CC08805AFB412CA8FF212A967D5D2E12588637580B57910BD133EF + 31CFB00828951B4149FDE5F508D7DD2917092C87624131911AE4C6626AE4CD94 + FA2963F8B168E3C3F0FAA8EB27B003140B8A09C5468E1177E3DEA800BCF0B33A + BF6CE1757291C036504C283672FB2C2F02206595A0A2EEDBB22BB01D726C689E + 85BB6DC72B0035FD87105E78BD5422B01F726C42CCB8AB012302F020B0388222 + 3F7D80C08E506C2846F2D07C4E0540EFF32038B7497605B6458E1109802BB63C + 6F222591B9E109AF944A04F6C5175EC1FEA5B11A356E9A18A902DCF00516C9AE + C0B678028BD9BFAA0074E1CD00F4BE62147BCBA512817D29F2AA8D408A59CE32 + 00E1422A45CA12D899748ABB014818118060162204E07084001C8E1080C31102 + 703842000EA7E004E0F178E0F7FBB9ADB8987B62CC91F0F417492434C73C1FCB + BFB413FEF052A9D422EEBA771BAE5AC3BF00794F473B9E797287E23980D8D031 + 1C79F51A76454BC6690389E612B182CB002525C6B615AE5D578F4030A878824B + 29380194872B942B3E8ADD6E6C6C6A563CC1A5149400CACA42983377AEE2F113 + D9F429E54A7029052580F50D8D70B9B887B93F61F9952B3077DE3CC5135C4841 + 096063A445B932068926D222B2C054148C00CACBC358B16AB5E2194708606A0A + 46008D9166141599FF7517575563494DADE209540A460091E64DCAD5D474EDDB + A35C654734062FA7200430AF723EAE587EA5E25D4E3A9DC6BFFEF992E265A789 + 89C8E52A18CDCF0805F1D7A0C06971A2E7388E1D3D8273FD748C4E762A2AE6B0 + 76C42AC5334F59288450797956F37A69E0343B7E7F000D4D117CEDC69B70EB77 + 6FC76D776CC18285D62CB72C88A1E0471EFF291657572BDEE5FCE7DFAFE0C517 + FE866F7EEB3BF8ECB59F534AA7E67FEFBC8DE79EFDBDE2198702FCF3279E56BC + A9191E1EC2C3DBEE453C4EE7369CA78AB543AEBFE1ABD8D0D804B7FBE2D57534 + 5C4DC3D6D366B60D0557552FD10C3ED1BD6F9FFCDAB5577AD5A26163449A5032 + CBD8E8A854E568413D96D5579F9FAF28292DC5376EBE050F3DF613299B5D1A7C + 2BB1BD00F4D2FFD8D8183E3C7C48BA7EFFC07E241224FAEC94FAFD585BBF5EF1 + 8C43C1A7CFD4A3A6564E94D5353578E8D11FE39AEB3E3FAD5E4CBEB0B5006800 + 474F005D7B3B3FF9464EB294FBFEFE6EE95A8B48CBA7952B734C8C8F2B57D9A1 + 21EB95AB56E3FE07B6A3923562ED8AAD0570C5B2E5AC0750A97853B3B7F3E27A + B3B3BD4DB9CA0E65006A8899452FCB10CB58AF65F396FB0CCF5ECE34B6164093 + CEE85D2291C0816E3A51F53C7BF774E8D6D15407532BDC2C7AF727A855EFF3D1 + 811DF6C6B602A0FA526F1AF7E081EECB5ADA51563F1FFE406E1368D13C8DA161 + 12DE6CC1B60258B9FA2AA9CBA545B66ED39E0EFD6AA06EE52A54CC313EB54C24 + 8500F28F5EE32F93494BE97E2A78FAD3D20CA1CE67642399A4637A734B3EEEC9 + 832D054075340D966871F4C8118C8E8C28DEC50C9CEBC7C9133D8A971DB37303 + 998CB9339A7B7B4FE18DD75FC36F9F79128F6F7F10F7DDF57DDCBDF97BB8E707 + B7A17B9FFE18463EB0A500D6ACAB9756F46AB15FE70FC69305AA97D448034DF9 + 24994C60E75B6FE2B1871FC0A33FDA8617FEF23CDA5B7749022501C76231A9DD + 6215B614805EFA27F6B1FEBF169DEDBB952B6DF2B94EA0A3AD150F6DBB177F7E + EE599C3A794229B517B613808FF59BD7AD6F50BCA939C7523C4D006941DFB033 + A74F2B5E764800669699E931383880DF3CFD2B0C0E0C2825F6C4760258BFA151 + 77368D67B08768DFBD4BB9CA0E8DD85D5997FB936FD229FDB1023B603B01F0A4 + FFF6563A16571F9EEE20D1ECE08522B69A0E0E0683F8D9134F6B6EE7A21678FB + EE56AE9638A5F6C6A6886E8A8F46C7B075CB1DDC5DB13BEFD98AABD7AE53BCA9 + 39D7DF8F07EFDFA2783348214F07D354ADDE5E3E0AE6C64833CB142DBA46EFE3 + A9DF0381200B289DB5EC3C6C25009EF49F2F9C5A0DD84600E18A39D2F0AC5550 + CFA3B4B454F19C836D04D01469C94B778C175A25A437FA381BB18F005AAC4BFF + 2A914DD35B285288D84200F3172C44EDD22B14CF3A68054FD8E0EEE342C71602 + B0B2F17721D21A04D67B7012B61040C406E95FA5D961D580E50341B45F8F56CD + EAF1EBA77E899EE3C714CF38B4BBE89EAD0F289E368F3CB815A73FEE55BCCB11 + 0341398467366E6464585AFC493B7FCCDAA1F7F7A3F7D449E58EDA38290B582A + 0079544FBFCEDDDBD1CEB510538F36CE3904AA92ACEC92CE24960A6079DD0AAE + 235F3A3867FFF4D8BD8B4F00545DD0B26E2760A900785AFFB15894A5EF038A37 + 3DCE9E39CDDD8E70CA5672CB0440933E3453A7C7BE3D9D48A572B76072F7AE77 + 952B6DA86A72C22193960960D555574BA77EE9C1BBB48B97B6D65D5C53C9C160 + 99A103290B15CB04C093FE69D3C7FEAE8B77FE4C175A317CF4C8878AA78D137A + 039608C0E3F1624383FE53E769A934CF3E3CA3B4713606EB3734486B14673396 + 08803667D29E793D729DFE55DADB7671752BBD5E1F97500B194B0440EBFEF5A0 + F4DFB557FFE027330C0F0DE1D041BE9E457D43A372751E9EA563B41FA010B064 + 28D81F082014D2DEF7178B46A511C07C41DBB669118A1EB4696374F4E21D4874 + C8049D02A205755F4786F3F7FB67C5E050B0E57301821C33DB8F8B17E4162100 + 872304E07084001C8E1080C31102703842000E4708C0E10801381C210087634C + 00C5C5D69C6526E0C7608C8C082083C4E4D4E7B209EC831C23EE73EC78044037 + 234B2339A67FEA92C05AE418D104901A374D783300DD2889F830DF5A2A8175C8 + 31A26A4037F8046F0620452531D637F5D9AC02FB20C78804A066014D783300DD + 2C81D8B976A493A37291C076506C2846142B3966BA18A902D84D13A31839F186 + 5C24B01D526C588C6401E4AC0A50A1B4328EBE0FFE2ABB02DB21C7869E67C3DD + 1534920128A58C63A2BF1323BDFF954A05F6816242B19105C055FF13463200DD + 94D6988DE26CC70EC43386061C047984624131A1D870AC03BC10739BDF92F131 + B8518AC082D9BD68BE5018E8FA1D867A5E645743CCE8193A7915809C5AA2670F + 22B8A011DE6095E40BAC217AA61527DFDBCEAEFA99C598A5A89817B3022085A5 + 31DADB86B2459F81BB547F81BD20F74C0C7E88E33B37B3EE1F1D7D62A8F5AF62 + 56006429F6C11318EE7917C1C59BE02931F704268139624387F0D19BB723153F + C23CDA816228F5AB98DD00AF8A20894C2A8A918F76C2135A869272B169642618 + EA791B27DFDE8254E22879CC28F88652BF8A5901102400525C02E9F404467ADE + 41726208C1F9F57015DBFF898985483A318ADEF61D38D3F90BF6373FC54AA615 + 7C62BA2721D1FFA7AE24059C9EC55A8162DF5254AEB91573EABE82E262E79DBE + 9C0F52A9710C1C7E197DDD7F60299FCEB819641665A6A67DFA329A2257476191 + 08E899ECB499BE8C5988096111CA6BAF4779CDB50854AE81AB48FB3930828BC9 + A42711EDEB666DACB7307CFC3516F88F5929D5F5F488B10966DCE3FD5AE44A00 + 04DD8BAA145508F4EDA7ACE007DC21F8C3ABE00BD5C21D9807978B32462E3F7B + 36904126134732DA8FF8C871D6C83BC89A58B4B883BA76F46DA7113E35F094F2 + 4D7FEB2F241F415085A08A81BEF91470BA26A36C21823F35E7DB55B2518AA791 + 3D35E8390BBC4A3E0341F726A38093912044F0F5514540C1A657B58ECF69E055 + 662A18EAE788E0F3A1063B2F41170804028140201008040281402010380EE0FF + BD70E546015DCDEF0000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_128.png' @@ -165,215 +165,215 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000001000000010008060000005C72A8 66000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 19F649444154785EEDDD09745C577907F04FA3D168194923C9926D59966D795F - E555B2B3E004C8094D4A20871ED2023DEDE9022D2D50A803380D09100810DA14 - 0AA74080036DDAB0150A1C0A1408D9204D88176DDEF012C5AB2C2FDA479AD1DA - FBBD772F7A1E4BF6CCBCFBE6BD99F7FF9D73F3DE7D96ED91A3EFFFEEDBEE2300 + 19F749444154785EEDDD09745C577907F04FD268345A479225DBB22CDBF2BECA + AB6C67C10990139A94400E3DA4057ADAD3055A5AA05007701A12201020B42914 + 4E810007DAB4612B1438142810B2419A102FDABCE1258A6DD9B2BC681FCD8CD6 + DEEFBD7BD1F358B267E6DD37EFCDBCFFEF9C9BF7EEB36C8F1C7DFF77DF761F01 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000C8AC3CB9CC1589DF4FAE7D7FE08E29B95412FB592BDB0B44 - 7D7EEBF7C1EB336D0748972A785E5A8BDFBA3D2B6563812416372F135B4034A6 - FA8A751D60368945AEFA93A2A9BEB5B1C46556C8A682B0163317B8EAF3FA6CCD - FA7BD4122019D682E6C6C53F5BB37E0D537DCFCB86A25045AC9A2AEEFCAB5AF1 - 9C7A0A576DA150C51A0A95ADA0C2F23ACA2BAEA582C90851B0487C0D4092C663 - 3416E8A7A9912E8A0F9CA5D1C16334DA7798A23DFB69E4F269F1051333B4C440 - F07C10783900662A7A6EC1DFB5C2C2520AD7BF86CAEA6EA7F0FC9B283F5827B6 - 03386B62FC2C45CF3F4F83677F4ED1D34F513C3E24B68E5B9A0A82C430F01C2F - 06C04C85CF7B7855F80514597803552C7B2B95CCBB93820561B10DC01DE36351 - 1AEEFE09F59DF806F59F79416C19E3ADB2CD362AF00CAF054062E14F173D5121 - CD59793755AD7E271595AD177D006F890D1EA09E235FA0CB477F287A71D1AC61 - 9018049EE095005085AF8A5FEDF14346AB5A7E07CD59771F1595AE107D006F8B - 0D1DA3CB073F493DC77F2A7AA3B25947049E190D782100ACC5AF0A9FF7F8212A - AA5C490B763C4CE1AA5B441F20BB447B9EA5732FDE4FB1DEA3A2C721A046041C - 049E08012E3837A9C257C37D2E7C3E5B5F42731BFF9A166DFF32854A978B3E40 - F609152FA1394BDE2ACA2C4ED1EE0EB9D5F5BDBE15179F5BAC7B7D6EE6717E41 - B89616BFEA73543CE756D107C80DD18BCFD2E9E7DF4D63D12ED153E707D4E543 - D746026E8D00ACC5AF8EF58BA9A4660B2DBBF53B148A348A3E40EE0885975065 - FD1B287A790F8D0D5F125BAC05EFDAA8C08D0098B9F82B1A6EA7C53B1FA74061 - B5E803E49E40A89C2A1BEEA6D1E8118AF59D125BAC7B7E5F8C00662AFE228A34 - BC9E16347F85F2F38B451F2077E5E585285C7B9718051CA378DFCB628BAB2190 - C90098ADF8EF12C5FF450A06F91C0040EE0B04F24508DC2142E0B8DB2190A900 - 50C5AFCEF69BC3FEF2FA5B68F14D5FA1403EF701FC834320B2F075E250A0C578 - D6C0A59B843215005CF81C00D37BFEA28A35B4F835DF10FF10B895177C2A2F48 - 650B6FA7C1334FD278AC576C5001A042C0F130E0C2745AE2D0BF9042A139547F - 0B1FF347441FC0BFB806B816B826B836CC1AE15A5175E328A74700D6E237AFF3 - F34D3EF5377D9AC235378B7500088AE22F2CAFA5BE934F8A5E466F15763A0078 - 8471E571FF9CE56FA0EAB5EF17EB00A01446D6D2C4C8311AE939217AD6078798 - 6341E0E42180DAFB4F074041C95C9ABFF163621D0012716D14846BC41AEF2CB9 - 66B876541D39221301303DFC9FB76917058A70A30FC04CB836E66DBC57ACF1A1 - 32D78CE3E7029C0A00F5A1A7F7FEE1AAD554DEF056B10E00B3E11AE15AC9D028 - C0E90098DEFBD76C7A9FE8397DCE0120BB718D70AD646814E04400A80F3BBDF7 - 2F118956567B87580780EBE15AE19AC9C028C0C900E0E43203A07AED5FC86D00 - 707D79B266540038360AD01D00EA03F29F6B0EFF0B4A2AA974D15DC65600480E - D70CD7CEF46180AA55AD21E0D40880FF5C73EF1F59F246CACFC3537E00A9E09A - E1DAB9FA30402BDD01A08A5F05400195D7DF299600902AB3767804A002407B08 - E80C00F5C178691EFF07CBE652B8A2C9D80A00A9E1DAE11A3203409D0760DA42 - 40670030FE60D3011099BF532C74FF1D003E216AC7A8A12B02405BF133270280 - FF4C33004AE6EDE08D009026B3865400706D793600543A4D074069CD66B10480 - 749935941800DA42406700B0E900282829A760C912632B00A4876B886BC9E323 - 00954A2A0002C6EBB9357F58001FCA13B5C42FC731EBEACA5AB34D5700282A00 - F2A9A8127B7F001D8AAAB896B2EA1C408082C15ADE08003605F31788FF9A7535 - 5D675AE80C00361D02A108CF7106007699B5A4BDF899AE00501F4CB50005827C - E20200EC326BC91A00AAD9A67B04C0E4870B94985D00B0C77896465BD15B3911 - 00A68071ED1200EC0AE4F1F3008E70700400001A65C50800850FE02CAD35E6DC - 210000781E0200C0C71000003E860000F0310400808F2100007C0C0100E06308 - 00001F430000F8180200C0C71000003E860000F0315D0F167090F09C65FC4EF3 - B068116A78F56354BAE056B1EE7B5573E6505E9E33591B1B19A1687448F62027 - 0D9D7B863A9FFE2BB1D62F5A54B4B86813A24D8A660B02C0613B6F7D0DBDED4F - FF5CF6F49B9C9CA44F7DECC374F2954EB905728E830180430087452A2AE49A33 - 028100EDB8F166D903480D02C0615CA04EDBB67D4746FE1EC83DF8A97158B8B4 - 54AE39A7BC3C426BD66D903D80E421001C168954CA35676DBFE146B906903C04 - 80C3AA6B6AE49AB3366DD94AA1109F8305481E02C041C182029A373F332F482A - 2C2CA24D9BB7C81E407210000E5A2B8ECB0B440864CAF61B6E926B00C9410038 - 686B53B35CCB8C35EB375059195EC804C9430038243F3F9F1A376E96BDCCE0BF - 33D3A103D90D01E09075EB1BA924CC374566160E03201508008734EF70E7B2DC - D2E52BA8BA66AEEC015C1B02C0017C39AE71736687FF566E850F641F04800336 - 6EDE625C96730B0E032059080007346DBF41AEB9637E6D2D2D5ABC44F6006687 - 00D08C4FFCADDBD0287BEEC12800928100D06CCBD6260A0683B297BAF6B6161A - 1F1F97BDF435E1094148027E42346BDA616FF87FE840071D3FFA5BD94B5FA4A2 - 9256AF592B7B0033430068C4937FAC5CB546F6D2D379E23875B4B7C99E3D4DB8 - 1A00D78100D0685BD3765BC3EE783C4EA74F9DA4C307DAE5167B368BC3915028 - 247B0057430068D4B4DDDE1E9787FE13131374F6EC19EAEDE9915BD3575C5C4C - 8D9BDCBB1FC1CB38A8F951ED152B57198F52F3B46A7CFF4461917B976FDD8049 - 4135A9993B8F3EFEC8A3B2979EEF7FF7DBF4BF3FFE91B1FE277FF69774D34EFB - FF7C6D2DFBE90B9FFB67D9734FED823A5B2747C74647E9FCF92ED94B1D173C17 - FBFAC64DB45C2CEB172DA28282AB47474FFEECA7F45FDF7A42F63C02B3027BDF - 1DAF7F03DDFD07F7C85E7A3EF1D1077E37BBEFD66DCDF48EBF7D8FB16E075F51 - F8C07BDFE5EAD4E14B1A96D27D0F3E247BE9FBF573CFD07F7CFDABB2979CAAAA - 39B4F3D5AFA51B5FB5932291EB4FD0FAC2F3BFA27FFBEA63B2E7119815D8FBEC - DE7E3B343448A74EBE227B44870F1D34A6FCB68BF7BA6E3F21188BC5E49A3D37 - 8B1151DDC27AD9BB363E21CBD3B1F3A88CC33999E2F723048006FC43B9A06EA1 - ECA5E760473B4D4D4DC91ED1F070944E1C3F267BF634BB7C5350CFE54B72CDBE - ADCDDBE5DACC7816A63BEF7A237DFC538F1AEF64C8B771D8E10708000D743C7C - 73A0AD55AE4D3BD07EF5B674F0B1EF9CEA6AD9CBBC5171FC1ED7340A58B16295 - 5CBB5AC3D265F4C0473F416F7CD39B2954C847A3703D08009BF2F2F2685BF30E - D94BCFC4C43875745C7DEDBFBDB545AED9E7F6F309FDFD7CF86A5FFD0CCF38F0 - FF031EE67FE0FE0F1BCF4140F2100036F15EC7EECCBF470E1FA291E161D99B76 - EEEC19BA78A15BF6EC71FBD980614D2721F9D266456595EC9171D9EE9DEF7E9F - 710216B73EA70EFF6236356B988FBF75FF3EB97635BE8CA7039FA35858BF48F6 - 324FD789405655650600CF7F78EFEE0F198F5F437A100036F01E67EBB66B9F94 - 4A46FB358ABC65FF5EB9669F9BA3009D01C06F5B2A8F4468D7EEFBF1D8B34D08 - 001B56AD5E6BFC20DAF14AE7CBD4D7D72B7B573B71ECA8387EEE933D7BF84125 - 3E5E76838E4B9A4A75750DBDF7DEDDC6CD45600F02C006BB4FFEB1B696D987FF - 8C2F0DEA3A0CA814C7CE2B57AD96BDCC8AC7F58D00DE74CF5B92BE1F00AE0D01 - 9026BEDEBC659BFD1B6CAE1700AC759FBEC300B7EF09D0010F38E9830048D3FA - 0D8DC619693B2E5DBC4867CF9C91BDD91D397C9046464664CF1EBEC598C32BD3 - 741E02803E088034E9B8AE9ECCDE9FF113821D33DC28948EE29212DAD0B849F6 - 322716D31360A01702200D7CED59C7A5A7640380B5B5683C0CD070EE2265D377 - 3983872000D2B069F3D6191F254D457468888EA530F5D781F6362D7305B2C64D - 5B8C9140268D8C5C7DA313B80F019086660DC37F9EFC3395E362BE8E7EE4D041 - D9B3C7784250C3094CC87E08801485C3A5C65B78ED6A4DE3069F967D7BE49A7D - 3AEE604C054F7706DE830048113F8ECA6FE1B5839F8EE3D97F53C5A306EB23C3 - 76F0E4A5D67BEA9DC62732B3417F9F9E9BAEB20566044AD1AEDD1FB27D330DEF - FDBFF8F9CFCA5E6A763FF0116A58BA5CF6ECF9DE77BE493FFFE98F65CF59AFBD - FDF7E89EB7FCB1EC65D6D8D8A831D9CAA9575EA1EEF35D74E9D2451A1C1830E6 - 5C9898300FC3027979C6DC01FCEBBA42561BCC08E40DBCC7E467EBEDE2C93FD2 - D5D6A2EF11E1ED193E0CC8A4B3674ED34F7EF403FAC74F3C44EFFD9B77D0A71F - 7E88BEF5C4E3F4F42F7F615C52E55BB02F7477D3651106DC2E5EBC40E7BBCE79 - AFF81D86004801BF6D47C7BDF4076C04403AE70E66B3B07EB1ED998CBC646870 - D018D17CE4FE0FD2430FDC473FFCEFEFD2F16347B55D3DC945088014E8B8F987 - 9FF1B7334556D7B9B3C63055975C7887604FCF657AE2F1AFD3EE5DEF310E6BF8 - DF0892830048D2BCF9B5B4784983ECA5AFA3CDFE10FE5AF307A48A43CDAD2704 - ED1A1A1AA26FFEE7BFD3031FDC45CF3DFD4B71AC3F267F0592850048D23631FC - D741C7345FFBF6FC46AED9C773052E5BBE52F6B2073F21F9E1FBEEA567C4313D - 86F8E9430024A9D9E65B7FD8C040BF96997EF98C369FC9D665FB8DD9751870E6 - D449FAE2E73F638C00C01E04401278224A1D934DF25E4BC75966FE33F6BDA46F - 14C0EF34B47B6F43260D0F0FFBEE6CBD53100049D071EB2F6BD1F85CBFCEC380 - 927098D6376E943DF01304C075F009321DC7FFC3D1281D397440F6ECE35788F1 - F56B5D74BCDB00B20F02E03A96AF5869BC5FCE2E9EDC53F7EDB03A270CE5C79B - ED4E7002D90701701DBA5EA8B1F7372FC8357DAE359B70AAF8F1E6CD5B9B640F - FC02CF025C039F187BE4339F37E69FB783AF4F7FEDCB5FD03E2D5620904F6F7F - E7BBB4BD10E3F0C10EFAEC3F3D227B7AE97C16E0E891C3F4E8230FCB9E0FE0F5 - E0EE58B76123BDE7EFDF2F7BB98F038AEFA673E2893804800D7818C81DAE4C9D - E5221E493435FBEB7BF63B04C02C78EAE98D9BB7CA9E7F647AA2107017026016 - EB1B37F9F2AC383FEF30BF7681EC41AE4300CCC26FC37F2BDC13E01F088019F0 - 8CB93C02F02B3E0CC8D62704213508801998D37E67FEED395E51533357DBB463 - E06D088019E878E967B6C3C9407F400024282B2FA7356BD7CB9E7F6DD330FB31 - 781F0220C1D6A6EDDAEEACCB667CF7E3DA75F6DF7F00DE869FF404BAEEFDCF05 - B9305F205C1B02C0A26A4EB5F1F41F98F809417E112AE42E0480859FAFFDCF24 - 5458685C1181DC8500B0E079FFE14A380CC86D0800896F7FE51765C095D6AC5B - 6F5C1981DC84009072F9355976184F08E2C468CE420048F8219F9D8E29D1C19B - 302188B0A46129DDF7E043B2674F477B6BC6DEB83B1B1ECDDCBCF3D5B2A7C703 - BB77192FD34C172604B101330239EBCD7FF436BAED7577C89E3D8FFDEBBFD0FE - BD7B64CF1D750BEBE9C18F7D52F6F4F8D10FBE47FFF3C3EFCB5EEA1000366046 - 20E7F0536FBACEFEF37BE8EDBCFA5B177E35B6EE1764E26A406EF27D00AC5CBD - 86221595B267CF81F6368AC7399CDDB747F32CC473E7CD370E9520B7F83E009A - 9AF55DFBD7F9D65EBBF66A7C7598822704738FAF03809F76E3877F74989818A7 - B6567DF3F4DBD57DBECB7889A84E3C61281E94CA2DBEFEBFB96E7DA3F15E3C1D - 8E1C3E4423C3C3B2E70DBA4701E591081E95CE31BE0E009D73DFEDDFF3925CF3 - 0EDDE701180E03728B6F0320142AA4C6CD9B65CF1E7EA1869786FF4ACFE54BD4 - 79E284ECE9B169CB3663CA74C80DBE0D00E351D7423D8FBA1E3FFA5B1A1C1890 - 3D6F79E9C5E7E59A1E454545BE7C5F42AEF26D00E8BCF5B7659FBB37FE5C0BDF - 94343535257B7AE09E80DCE1CB00E0137FEB3634CA9E7D3A5FD3AD5B5F5F2FFD - F6C821D9D363EDFA0D545A56267B90CD7C19005BB636513018943D7BF818BBB7 - A747F6BC699FE61394C6E5D36DCDB207D9CC9701A073DAEF560FEFFD15BE4231 - 31C1B78EEB83C380DCE0BB00885454D0CA556B64CFBE7D7BBD77F92FD1D0D020 - 1D397C50F6F458B6622555D7D4C81E642BDF05C0368DD37EF34337172FA4FF88 - 6C26ED79D1817B02F00EC1ACE7BB0068D238B94536ECFD95D6967D343E3E2E7B - 7A2000B29FAF02A066EE3C6A58B64CF6EC6BDDE7FDE37F856F533ED0D1267B7A - D42EA8A3FAC54B640FB291AF02805F77A50B3F6CC38700D964EF6F5E946BFA6C - C72820ABF92A00740E59BDF4E86FB2DADB5A281E8FC99E1EFC2E05BC4A3C7BF9 - 2600EA162EA405750B65CFBEFD5974FCAFC46331EA686B953D3D783295D56BD6 - CA1E641BDF04404565955CB3EFCCE95374F2954ED9CB2ECFFFEA39B9A64F5DFD - 22B936BBFEBE5EB9665F5F5F9F5C03BB7C3329280F5357AD5E4345C5C5724B7A - 262726E9D8D12334323222B7649FC50D4BA9B252CF34687C83114FD299CC5468 - 2B56ADA6B0CDF917F8DFFFF8F1A3341CE5B9317D02B30203F818660506002720 - 00007C0C0100E0630800001F430000F8180200C0C71000003E860000F0310400 - 808F2100007C0C0100E0630800001F430000F8180200C0C71000003E860000F0 - 310400808F2100007C0C0100E0630800001F430000F8180200C0C77407C0945C - F284C57A5F450BE05757D6D2748D69E0E008602A7BDF9C01E029CED5921301C0 - 0935459363036617006C316BC9AC2BCD9C1A014C517C40DFCBE000FC2C3ED023 - FEABBDF899AE0050E934DD2647CF8B2500D865D6D2D535A681132701B94DD248 - EF49630B00D863D612BF07505BE12B4E1C02F0079D14C3961362A9F5C302F810 - 1F4EBF2C96665D69A63300CC3DBF6AE3B1211A1FC12800C00EAE21AE256B6D69 - DCB1EA0E00C61F905F5D3C41D1EE36630B00A4C7AC21B39ECCDA629E0B006BF1 - AB0018A7A10B7B792300A4C9AC21BE11480580D61070EA1C801900D173FF2716 - EA0303404A44ED183574450068A5FB1080DB7400C4A39768A46FBF5807805471 - ED700D5D1900AACEB4D03D02501FCE0C00A231EA3BF50BB104805499B533269A - 0A00ADC5CF9C1D011801D0F933B188897500489AA819A376AE0880AC1901F007 - E50F3D4AE3B15EEA3FCBDF0800248B6B866B876BC8AC25EDC5CF9C3809680D00 - 4EAF385D3CFC84DC0E00D737256B262E9A1A01A800D0CAE911007FF8511AE939 - 4683E79E12EB00703D5C2B5C33E6DE3F3100B486809323003E6631038093ACBB - ED31B185B701C06CB846B856CCBDBF0A00EBF1BF564E0400B38E02F89B881989 - 36D0F97DB10E00B3E11A31F7FE7CE23CF1F85F3BA74600D651803902E06FA86B - DF97283EC6CF36034022AE0DAE11B3F8D508C091B3FF4ABE5CEA9627978CD739 - 680234353149932317A8BCFE36E3570060DAF9971EA2E14BED622D2A1A4F0366 - 1D0138C2A90048C421600641ACF71C1546165251C50AE3570080A8EFE44FC4B1 - FFD7C41A3FF9372C1A8F02D4F1BF237B7FE66400A851802A7E3300B845BBDBA9 - 62F14ECA0F558A3E80BF8D453BE9E4B3BBC508B94FF454F15B87FF8EC9D40840 - 3183800F0586BADBA8B2E175941728347F09C08726C707A9F3A9BFA3B1A153A2 - C77B7F1EFAABEBFF8E1DFB2B990800351250CC10E0490EE2FDC7C448E036D1CD - 74100178C0D4289D7AEE0314BDD82A3A7CDC9FB1A1BFE266E1E5517CE0028D0D - 9CA292FA5B2990E7D4254900EF199F1AA773CF3F48FD679E133DDEF35B4FFC59 - CFFC3BCA8D0050A9668E0C62FD67695C8440B8FE168400F802177F9728FEBE93 - 4F8A9E3AE9C7CDF1CB7E89DC1C014C7F73B1FE336224709C4AEA6EA6FC4081DC - 0A907BC62686A9EBD7FF40FDA79E163DB5E757C5CF97FC32B6F767990E00DEEB - 5BBFB1E96F34DEDF45C3DDFB285CB78382C152631B402E89C7BAE9F433BB68A8 - 6B8FE871F1ABBDBFB5F8B91E3252FCCCAD11C04C21304563C33D6258F4149554 - 2DA750699DF1AB00B920DAFD12753EBD8B46FB8F8B5EE29E9F4FFA710064B4F8 - 99170E01D4376DB6A9B118F5BECCC3A3610ACFDD48797941B10E909DA6A6E274 - A1E34B74E6C547C5CFF665B14515BFBADCC7856F2D7E6E19E3660030F5CDF292 - 4702AA4D51F4C2611A38FD2B2AAE584405618C0620FB0C5FD843279FBD4F1CEF - 3F2B7AD621BFF5365FD78A9F255EA3CF24F37E00B37110F19E9E4F0016C95622 - 5AB1D12A1A6EA59A0D6FA7A2B2C5A20FE06DB1C19374B1E3CBD4D7C985CFC5CE - 8D0B9FAFF1ABEBFC5CF8D663FE8C173F73330014FE0CE62DC2660870E3BB03B9 - 71109821C08150B9EC36AA5EF7872208F01C01784F6CF0185D3AF86DEA3DC197 - F7D49E9E1B173D0FF7AD43FEE9D1AE8BBC10004C8D043804ACA3016B10A85648 - 65759BA9B2E1F7A9B4FE55941FE0700070C7C4E4080D8943D5DECE1FD3E0D916 - B14515BBDADBABC2B7EEF555E1BB5AFCCC2B01C0540870E310480C82905CAA16 - A2FCC23211063BA8BCF6062A9ABF890A8BE689ED00CEE2CB79B1F3AD34D0F582 - 28FA1769223E28B6F231BD2A76D5AC67F8B9F05D1FF227F2520030F57978A946 - 03D620E0C641606D6A7B011555D65271D55A0A952FA5A2C8220A86E752516935 - 05F2CBC41FC95F0B90A4A9384D4E0C516CE8128D472F50ACFF148D0EBC4C233D - 8728D6DB25BE800B5B352E746B53DB671BEE7BA2F899D70240E1CFA59A3A3FA0 - C24015BC3514549F9BFA3A6EFCFBAC7F1640B2AC7B6A2E5EB507E7A60ADB1A02 - AAE079A9BECE5AF8AA798AD78BC25ABCAA98AD056E2DFAC4E2E7660D00A69600 - D7A20A55156D620070E362574BB5AE9AFA3DEAF773F3A46C290855C4AAA9C256 - 2303B554EBD6C6D4EF034896B570D59E5C3555E86A9D97FCB56A696D9E966D45 - 612D64B5CE8D0B7DA6A56A4C2D0192A18AD75ACC89859E58F0CCBAEE79D95C14 - 3315B7DA96B89D59D701AEC75AC489C56DEDABA55ACF2AB95214B3153A8A1E74 - B016F76CEB5929570B04850F4EC8FA8207000000000000000000000000000000 - 0000000000000000000000000000000000000000EF21FA7F96F737BD2ED7662C - 0000000049454E44AE426082} + 00000000000000004066E5C965AE48FC7E72EDFB03774CC9A592D8CF5AD95E20 + EAF35BBF0F5E9F693B40BA54C1F3D25AFCD6ED59291B0B24B1B87999D8F24563 + AAAF58D701669358E4AA3F299AEA5B1B4B5C66856C2A086B317381AB3EAFCFD6 + ACBF472D0192612D686E5CFCB335EBD730D5F7BC6C280A55C4AAA9E22EB8AA15 + CF69A0D2EA2D14AC5C43C1F2155454514F53C57554341E260A86C4D700246934 + 46F1C000E545BB293E789646878ED368FF118AF41EA0E8E533E20B2666688981 + E0F920F07200CC54F4DC02BF6B45456554DAF01A2AAFBF9D4AE7DF4405817AB1 + 1DC05913E3672972FE791A3AFB738A9C798AE2F161B175DCD25410248681E778 + 3100662A7CDEC3ABC22FA4F0C21BA872D95B29547B27058B4AC53600778CC623 + 14BBF813EA3FF90D1AE87A416C19134D05C16CA302CFF05A002416FE74D11315 + D19C957753F5EA7752A87CBDE803784B6CE820F51EFD025D3EF643D18B8B660D + 83C420F004AF04802A7C55FC6A8F1F345AF5F23B68CEBAFB2854B642F401BC2D + 367C9C2E1FFA24F59EF8A9E88DCA661D11786634E08500B016BF2A7CDEE30729 + 54B59216EC7C984AAB6F117D80EC12E97D96CEBD783FC5FA8E891E87801A1170 + 10782204B8E0DCA40A5F0DF7B9F0F96C7D09CD6DFA6B5AD4FC650A962F177D80 + EC132C5E427316BD55FC68C729D2D321B7BABED7B7E2E2738B75AFCFCD3CCE2F + 2CADA3C5AFFA1C15CFB955F4017243E4E2B374E6F977D358A45BF4D4F90175F9 + D0B591805B23006BF1AB63FD622AA9DD42CB6EFD0E05C34DA20F903B82A54BA8 + AAE10D14B9BC97C6462E892DD682776D54E04600CC5CFC958DB7D3E25D8F537E + 518DE803E49EFC60055535DE4DA391A314EB3F2DB658F7FCBE1801CC54FC210A + 37BE9EE66FFB0A0502C5A20F90BBF2F282543CEF2E1A8F1EA778FFCB628BAB21 + 90C90098ADF8EF12C5FF450A06F91C0040EE2B2828102170870881136E8740A6 + 024015BF3ADB6F0EFB2B1A6EA1C5377D850A02DC07F00F0E81F0C2D789438116 + E35903976E12CA540070E173004CEFF943956B68F16BBE41F9F9B895177C2A2F + 40E50B6FA7A1AE27693CD62736A8005021E0781870613A2D71E85F2486FB73A8 + E116B1E72F088B3E807F710D702D704D706D9835C2B5A2EAC6514E8F00ACC56F + 5EE7E79B7C1A6EFA3495D6DE2CD60120208ABFA8A28EFA4F3D297A19BD55D8E9 + 00E011C695C7FD7396BF816AD6BE5FAC038052145E4B13D1E314ED3D297AD607 + 87986341E0E42180DAFB4F074061C95C9ADFF431B10E0089B8360A4B6BC51AEF + 2CB966B876541D39221301303DFC9FB76937E517E3461F8099706DCCDB78AF58 + E34365AE19C7CF05381500EA434FEFFD4BAB575345E35BC53A00CC866B846B25 + 43A300A703607AEF5FBBE97DA2E7F4390780ECC635C2B592A151801301A03EEC + F4DEBF44245A79DD1D621D00AE876B856B2603A30027038093CB0C809AB57F21 + B701C0F5E5C99A5101E0D828407700A80FC87FAE39FC2F2CA9A2B24577195B01 + 20395C335C3BD38701AA56B58680532300FE73CDBD7F78C91BA9200F4FF901A4 + 826B866BE7EAC300AD7407802A7E15008554D170A7580240AACCDAE111800A00 + ED21A03300D407E3A579FC1F289F4BA515CDC65600480DD70ED7901900EA3C00 + D316023A0380F1079B0E80F0FC5D6204A3FBEF00F009513B460D5D1100DA8A9F + 391100FC679A0150326F276F0480349935A402806BCBB301A0D2693A00CA6A37 + 8B2500A4CBACA1C400D016023A03804D0740614905054A96185B01203D5C435C + 4B1E1F01A8545201906FBC9E5BF38705F0A13CF9721CB3AEAEAC35DB740580A2 + 02A0804255D8FB03E810AAE65ACAAA7300F91408D4F14600B02950B040FCD7AC + ABE93AD3426700B0E9100886798E3300B0CBAC25EDC5CF740580FA60AAE5537E + 804F5C00805D662D59034035DB748F0098FC70F925661700EC319EA5D156F456 + 4E048029DFB876090076E5E7F1F3008E70700400001A65C50800850FE02CAD35 + E6DC210000781E0200C0C71000003E860000F0310400808F2100007C0C0100E0 + 630800001F430000F8180200C0C71000003E860000F0315D0F167090F09C65FC + 4EF352D1C2D4F8EAC7A86CC1AD62DDF7AAE7CCA1BC3C67B236168D5224322C7B + 909386CF3D439D4FFF95581B102D225A5CB409D12645B30501E0B05DB7BE86DE + F6A77F2E7BFA4D4E4ED2A73EF6613AF54AA7DC0239C7C100C02180C3C2959572 + CD19F9F9F9B4F3C69B650F203508008771813A6DDB8E9D19F97B20F7E0A7C661 + A5656572CD391515615AB36E83EC01240F01E0B070B84AAE396BC70D37CA3580 + E421001C56535B2BD79CB569CB560A06F91C2C40F210000E0A1416D2BCF99979 + 4152515188366DDE227B00C941003868AD382E2F142190293B6EB849AE012407 + 01E0A0ADCDDBE55A66AC59BF81CACBF14226481E02C021050505D4B471B3EC65 + 06FF9D990E1DC86E080087AC5BDF4425A57C536466E1300052810070C8F69DEE + 5C965BBA7C05D5D4CE953D806B430038802FC7356DCEECF0DFCAADF081EC8300 + 70C0C6CD5B8CCB726EC16100240B01E080E61D37C83577CCAFABA3458B97C81E + C0EC10009AF189BF751B9A64CF3D1805403210009A6DD9DA4C814040F652D7DE + D642E3E3E3B297BE663C210849C04F8866CD3BED0DFF0F1FECA013C77E2B7BE9 + 0B5756D1EA356B650F606608008D78F28F95ABD6C85E7A3A4F9EA08EF636D9B3 + A7195703E03A10001A6D6BDE616BD81D8FC7E9CCE95374E460BBDC62CF667138 + 120C06650FE06A08008D9A77D8DBE3F2D07F626282CE9EEDA2BEDE5EB9357DC5 + C5C5D4B4C9BDFB11BC8C839A1FD55EB17295F128354FABC6F74F1485DCBB7CEB + 064C0AAA49EDDC79F4F1471E95BDF47CFFBBDFA6FFFDF18F8CF53FF9B3BFA49B + 76D9FFE76B6B39405FF8DC3FCB9E7BEA16D4DB3A393A363A4AE7CF77CB5EEAB8 + E0B9D8D7376DA2E562D9B0681115165E3D3A7AF2673FA5FFFAD613B2E7119815 + D8FBEE78FD1BE8EE3FB847F6D2F3898F3EF0BBD97DB76EDB4EEFF8DBF718EB76 + F015850FBCF75DAE4E1DBEA47129DDF7E043B297BE5F3FF70CFDC7D7BF2A7BC9 + A9AE9E43BB5EFD5ABAF155BB281CBEFE04AD2F3CFF2BFAB7AF3E267B1E815981 + BDCFEEEDB7C3C34374FAD42BB24774E4F02163CA6FBB78AFEBF61382B1584CAE + D973B31811D52F6C90BD6BE313B23C1D3B8FCA389C93297E3F420068C03F940B + EA17CA5E7A0E75B4D3D4D494EC118D8C44E8E489E3B267CF76976F0AEABD7C49 + AED9B775FB0EB936339E85E9CEBBDE481FFFD4A3C63B190A6C1C76F801024003 + 1D0FDF1C6C6B956BD30EB65FBD2D1D7CEC3BA7A646F6326F541CBFC7358D0256 + AC5825D7AED6B874193DF0D14FD01BDFF4660A16F1D1285C0F02C0A6BCBC3CDA + B67DA7ECA56762629C3A3AAEBEF6DFDEDA22D7EC73FBF98481013E7CB5AF6186 + 671CF8FF010FF33F70FF878DE720207908009B78AF6377E6DFA3470E53746444 + F6A69D3BDB45172FF4C89E3D6E3F1B30A2E924245FDAACACAA963D322EDBBDF3 + DDEF334EC0E2D6E7D4E15FCCA6ED1AE6E36F3DB05FAE5D8D2FE3E9C0E7281636 + 2C92BDCCD375229055579B01C0F31FDEBBE743C6E3D7901E04800DBCC7D9BAED + DA27A592D17E8D226F39B04FAED9E7E628406700F0DB962AC261DABDE77E3CF6 + 6C1302C08655ABD71A3F8876BCD2F932F5F7F7C9DED54E1E3F268E9FFB65CF1E + 7E50898F97DDA0E392A65253534BEFBD778F717311D88300B0C1EE937FACAD65 + F6E13FE34B83BA0E03AAC4B1F3CA55AB652FB3E2717D238037DDF396A4EF0780 + 6B4300A489AF376FD966FF069BEB05006BDDAFEF30C0ED7B0274C0034EFA2000 + D2B47E43937146DA8E4B172FD2D9AE2ED99BDDD12387281A8DCA9E3D7C8B3187 + 57A6E93C04007D100069D2715D3D99BD3FE327043B66B851281DC52525B4A169 + 93EC654E2CA627C0402F04401AF8DAB38E4B4FC906006B6BD17818A0E1DC45CA + A6EF72060F4100A461D3E6AD333E4A9A8AC8F0301D4F61EAAF83ED6D5AE60A64 + 4D9BB61823814C8A46AFBED109DC870048C3760DC37F9EFC3395E362BE8E7EF4 + F021D9B3C7784250C3094CC87E088014959696196FE1B5AB358D1B7C5AF6EF95 + 6BF6E9B88331153CDD19780F022045FC382ABF85D70E7E3A8E67FF4D158F1AAC + 8F0CDBC193975AEFA9771A9FC8CC0603FD7A6EBACA1698112845BBF77CC8F6CD + 34BCF7FFE2E73F2B7BA9D9F3C047A871E972D9B3E77BDFF926FDFCA73F963D67 + BDF6F6DFA37BDEF2C7B297596363A3C6642BA75F79857ACE77D3A54B17696870 + D098736162C23C0CCBCFCB33E60EE05FD715B2DA6046206FE03D263F5B6F174F + FE91AEB6167D8F08EFC8F06140269DED3A433FF9D10FE81F3FF110BDF76FDE41 + 9F7EF821FAD6138FD3D3BFFC857149956FC1BED0D34397451870BB78F1029DEF + 3EE7BDE27718022005FCB61D1DF7D21FB41100E99C3B98CDC286C5B66732F292 + E1A1216344F391FB3F480F3D701FFDF0BFBF4B278E1FD376F52417210052A0E3 + E61F7EC6DFCE1459DDE7CE1AC3545D72E11D82BDBD97E989C7BF4E7B76BFC738 + ACE17F23480E022049F3E6D7D1E2258DB297BE8E36FB43F86BCD1F902A0E35B7 + 9E10B46B787898BEF99FFF4E0F7C70373DF7F42FC5B1FE98FC154816022049DB + C4F05F071DD37CEDDFFB1BB9661FCF15B86CF94AD9CB1EFC84E487EFBB979E11 + C7F418E2A70F0190A4ED36DFFAC3060707B4CCF4CB67B4F94CB62E3B6ECCAEC3 + 80AED3A7E88B9FFF8C3102007B100049E08928754C36C97B2D1D6799F9CFD8FF + 92BE5100BFD3D0EEBD0D99343232E2BBB3F54E41002441C7ADBFAC45E373FD3A + 0F034A4A4B697DD346D9033F41005C079F20D371FC3F1289D0D1C30765CF3E7E + 85185FBFD645C7BB0D20FB2000AE63F98A95C6FBE5ECE2C93D75DF0EAB73C250 + 7EBCD9EE0427907D1000D7A1EB851AFB7EF3825CD3E75AB309A78A1F6FDEBCB5 + 59F6C02FF02CC035F089B1473EF37963FE793BF8FAF4D7BEFC05EDD362E5E717 + D0DBDFF92E6D2FC43872A8833EFB4F8FC89E5E3A9F053876F4083DFAC8C3B2E7 + 03783DB83BD66DD848EFF9FBF7CB5EEEE380E2BBE99C78220E0160031E067287 + 2B5367B9884712CDDBFDF53DFB1D0260163CF5F4C6CD5B65CF3F323D5108B80B + 01308BF54D9B7C79569C9F77985FB740F620D7210066E1B7E1BF15EE09F00F04 + C00C78C65C1E01F8151F0664EB1382901A04C00CCC69BF33FFF61CAFA8AD9DAB + 6DDA31F03604C00C74BCF433DBE164A03F200012945754D09AB5EB65CFBFB669 + 98FD18BC0F0190606BF30E6D77D66533BEFB71ED3AFBEF3F006FC34F7A025DF7 + FEE7825C982F10AE0D0160513DA7C678FA0F4CFC8420BF0815721702C0C2CFD7 + FE67122C2A32AE8840EE420058F0BCFF70251C06E4360480C4B7BFF28B32E04A + 6BD6AD37AE8C406E420048B9FC9A2C3B8C270471623467210024FC90CF4EC794 + E8E04D98104458D2B894EE7BF021D9B3A7A3BD35636FDC9D0D8F666EDEF56AD9 + D3E3813DBB8D9769A60B1382D88019819CF5E63F7A1BDDF6BA3B64CF9EC7FEF5 + 5FE8C0BEBDB2E78EFA850DF4E0C73E297B7AFCE807DFA3FFF9E1F7652F750800 + 1B30239073F8A9375D67FFF93DF4765EFDAD0BBF1A5BF70B3271352037F93E00 + 56AE5E43E1CA2AD9B3E7607B1BC5E31CCEEEDBAB7916E2B9F3E61B874A905B7C + 1F00CDDBF55DFBD7F9D65EBBF6697C7598822704738FAF03809F76E3877F7498 + 9818A7B6567DF3F4DBD573BEDB7889A84E3C61281E94CA2DBEFEBFB96E7D93F1 + 5E3C1D8E1E394CD19111D9F306DDA3808A70188F4AE7185F0780CEB9EF0EEC7D + 49AE7987EEF3000C8701B9C5B701100C1651D3E6CDB2670FBF50C34BC37FA5F7 + F225EA3C7952F6F4D8B4659B31653AE406DF0680F1A86B919E475D4F1CFB2D0D + 0D0ECA9EB7BCF4E2F3724D8F5028E4CBF725E42ADF0680CE5B7F5BF6BB7BE3CF + B5F04D49535353B2A707EE09C81DBE0C003EF1B76E4393ECD9A7F335DDBAF5F7 + F7D16F8F1E963D3DD6AEDF4065E5E5B207D9CC9701B0656B33050201D9B3878F + B1FB7A7B65CF9BF66B3E41695C3EDDB65DF6209BF93200744EFBDDEAE1BDBFC2 + 57282626F8D6717D7018901B7C1700E1CA4A5AB96A8DECD9B77F9FF72EFF251A + 1E1EA2A3470EC99E1ECB56ACA49ADA5AD9836CE5BB00D8A671DA6F7EE8E6E285 + F41F91CDA4BD2F3A704F00DE2198F57C1700CD1A27B7C886BDBFD2DAB29FC6C7 + C7654F0F0440F6F35500D4CE9D478DCB96C99E7DADFBBD7FFCAFF06DCA073BDA + 644F8FBA05F5D4B07889EC4136F25500F0EBAE74E1876DF810209BECFBCD8B72 + 4D9F1D180564355F0580CE21AB971EFD4D567B5B0BC5E331D9D383DFA5805789 + 672FDF0440FDC285B4A07EA1ECD977208B8EFF95782C461D6DADB2A7074FA6B2 + 7ACD5AD9836CE39B00A8ACAA966BF6759D394DA75EE994BDECF2FCAF9E936BFA + D4372C926BB31BE8EF936BF6F5F7F7CB35B0CB379382F23075D5EA35142A2E96 + 5BD233393149C78F1DA568342AB7649FC58D4BA9AA4ACF34687C83114FD299CC + 54682B56ADA6529BF32FF0BFFF8913C76824C27363FA04660506F031CC0A0C00 + 4E400000F8180200C0C71000003E860000F0310400808F2100007C0C0100E063 + 0800001F430000F8180200C0C71000003E860000F0310400808F2100007C0C01 + 00E0630800001F430000F8180200C0C71000003E860000F0310400808FE90E80 + 29B9E4098BF5BE8A16C0AFAEACA5E91AD3C0C111C054F6BE3903C0539CAB2527 + 0280136A8A26C706CD2E00D862D69259579A39350298A2F8A0BE97C101F8597C + B057FC577BF1335D01A0D269BA4D8E9E174B00B0CBACA5AB6B4C03274E02729B + A468DF29630B00D863D612BF07505BE12B4E1C02F0079D14C3969362A9F5C302 + F8101F4EBF2C96665D69A63300CC3DBF6AE3B1611A8F6214006007D710D792B5 + B634EE58750700E30FC8AF2E9EA0484F9BB10500D263D690594F666D31CF0580 + B5F855008CD3F0857DBC1100D264D610DF08A402406B0838750EC00C80C8B9FF + 231A551F180052226AC7A8A12B02402BDD8700DCA603201EB944D1C103621D00 + 52C5B5C335746500A83AD342F708407D38330088C6A8FFF42FC412005265D6CE + 98682A00B4163F737604600440E7CF88E231B10E0049133563D4CE1501903523 + 00FEA0FCA147693CD64703DDFC8D0040B2B866B876B886CC5AD25EFCCC899380 + D600E0F48AD3C5234FC8ED00707D53B266E2A2A911800A00AD9C1E01F0871FA5 + 68EF711A3AF794580780EBE15AE19A31F7FE8901A035049C1C01F0318B19009C + 643D6D8F892DBC0D0066C335C2B562EEFD5500588FFFB5722200987514C0DF44 + CC48B4C1CEEF8B7500980DD788B9F7E713E789C7FFDA393502B08E02CC11007F + 43DDFBBF44D1317EB6190012716D708D98C5AF46008E9CFD570AE452B73CB964 + BCCE41934F5313933415BD40150DB719BF0200D37A5E7A88462EB58BB588683C + 0D987504E008A702201187801904B1BE7354145E48A1CA15C6AF000051FFA99F + 8863FFAF89357EF26F44341E05A8E37F47F6FECCC90050A30055FC6600708BF4 + B453E5E25D5410AC127D007F1B8B74D2A967F7881172BFE8A9E2B70EFF1D93A9 + 11806206011F0A0CF7B45155E3EB282FBFC8FC25001F9A1C1FA2CEA7FE8EC686 + 4F8B1EEFFD79E8AFAEFF3B76ECAF642200D448403143802739880F1C172381DB + 4437D34104E00153A374FAB90F50E462ABE8F0717FC686FE8A9B859747F1C10B + 3436789A420DB752419E53972401BC67746A9CBA9F7F9006BA9E133DDEF35B4F + FC59CFFC3BCA8D0050A9668E0C6203676942844071C32D0801F0052EFE1E51FC + FDA79E143D75D28F9BE397FD12B9390298FEE662035D343E788242F5375320BF + 506E05C83DF18911EAF9F53FD0C0E9A7454FEDF955F1F325BF8CEDFD59A60380 + F7FAD66F6CFA1B8D0F7453B4673F95D6EFA440A0CCD806904BE2B11EEA7A6637 + 0D77EF153D2E7EB5F7B7163FD743468A9FB93502982904A6686CA4570C8B9EA2 + 92EAE5142CAB377E152017447A5EA2CEA777D3E8C009D14BDCF3F3493F0E808C + 163FF3C22180FAA6CD363516A3BE9779783442A57337525E5E40AC0364A7A9A9 + 385DE8F81275BDF8A8F8D9BE2CB6A8E25797FBB8F0ADC5CF2D63DC0C00A6BE59 + 5EF24840B5298A5C384283677E45C5958BA8B014A301C83E2317F6D2A967EF13 + C7FBCF8A9E75C86FBDCDD7B5E26789D7E833C9BC1FC06C1C44BCA7E7138021D9 + 4A442B365A65E3AD54BBE1ED142A5F2CFA00DE161B3A45173BBE4CFD9D5CF85C + ECDCB8F0F91ABFBACECF856F3DE6CF78F133370340E1CF60DE226C860037BE3B + 901B078119021C0855CB6EA39A757F288200CF1180F7C4868ED3A543DFA6BE93 + 7C794FEDE9B971D1F370DF3AE49F1EEDBAC80B01C0D4488043C03A1AB006816A + 45545EBF99AA1A7F9FCA1A5E4505F91C0E00EE98988CD2B03854EDEBFC310D9D + 6D115B54B1ABBDBD2A7CEB5E5F15BEABC5CFBC12004C8500370E81C42008CAA5 + 6A412A282A1761B0932AEA6EA0D0FC4D54149A27B603388B2FE7C5CEB7D260F7 + 0BA2E85FA489F890D8CAC7F4AAD855B39EE1E7C2777DC89FC84B01C0D4E7E1A5 + 1A0D5883801B0781B5A9ED8514AAAAA3E2EAB514AC584AA1F0220A94CEA55059 + 0DE517948B3F92BF16204953719A9C18A6D8F0251A8F5CA0D8C0691A1D7C99A2 + BD8729D6D72DBE800B5B352E746B53DB671BEE7BA2F899D70240E1CFA59A3A3F + A0C24015BC3514549F9BFA3A6EFCFBAC7F1640B2AC7B6A2E5EB507E7A60ADB1A + 02AAE079A9BECE5AF8AA798AD78BC25ABCAA98AD056E2DFAC4E2E7660D00A696 + 00D7A20A55156D620070E362574BB5AE9AFA3DEAF773F3A46C290855C4AAA9C2 + 562303B554EBD6C6D4EF034896B570D59E5C3555E86A9D97FCB56A696D9E966D + 45612D64B5CE8D0B7DA6A56A4C2D0192A18AD75ACC89859E58F0CCBAEE79D95C + 143315B7DA96B89D59D701AEC75AC489C56DEDABA55ACF2AB95214B3153A8A1E + 74B016F76CEB5929570B04850F4EC8FA82070000000000000000000000000000 + 000000000000000000000000000000000000000000EF21FA7F03E937B90D8BAB + B80000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_256.png' @@ -385,462 +385,462 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 38DE49444154785EEDDD09745D577DEFF1BF6659962DCB96C7781EE3D9B2252B - 1E12120274586FB5AFAFCD6B292DD096D2420B8586A9A1813097A6140AABD0D7 - D5C56ACB2B94E6352540694B21842184C48EC7D84E1CC7733CDBF220CB9235F8 - 9DFFBD7BA37D8FEFD560DD7BCF3EF77C3F5D3B7BEF7395201FA9FEFDCFB80500 + 38DE49444154785EEDDD09745D577DEFF1BF66599607D9F23C8F8967CB96AC78 + 484808D061BDD5BEBE36AFA5B4405B4A0B2D141AA6A60D84B934A5505885BEAE + 2E565B5EA134AF29014A5BCA900021831D8FB193388EE779920759D6EC77FEF7 + EE5DED7B7CAF06EBDE7BF6B9E7FB61EDECBDCF5512E548F8F73FE31600000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000E09932D3C3 - 7FFCAC00C4C50DD3C363848A7F72FD4CF85901888B5C05008581470895E865FB - 190C671B3F3B00BE08077BB6A01FEE36140921128DA1C2DCCE87FB75001095A1 - C2DFCE87FB75281202A478DC7D9D2BC8C3BD1AEE36008842B6801FCE36F73395 - ED6B5140044861650B6D150E70B70F7F5DB6CFC2BD72C7005048D9C2DAEDB38D - 55F8B36CBDCA35461E111A85912B98756CE7761C9E2BF7B36C4D857BE58E01A0 - 10B285B3DB0FD654B671B6CF54AE31F280C0C89F5C41AC633BB7E36C736DE583 - 6C533A56F63315EE01A0D0DCC0B6BD1DF79B5EE73AB69FD9966D9BCA35B7728D - 718B088DD173F761B650B6631BDE6E6F3FD77178EEF6E9D630678A548DB95DCA - 2AE74AEDF8993276CA14A9A89C29523551FAFAEAA4BC6ABA5404FF070085D017 - FC5F7FCF49A9A8E814E9B9207DBDC7E5EA9933D275F9B8DCE83D2C3DD79E974B - 47CE045F69C35B9B0D7C37F8751C9EAB706F3F57E15EB9638C90060B6E8DBBEF - ECD886B5B263B785835D7BDBDC799934CE992D9563D74AEDE4B5523F65955496 - 2D0E827E7CF0190078ACE7B2F4DED82F1D677649D7D96DD27B759BB41F391A7C - A061ED06BF1DBB73B70F37151E5BEE18C3A4A18391B3FBCDEDC3636D36D8ED38 - 776B983E556A26DD2D0DF33648EDB8CDC1BF322DD80E0025E0C629E9BAF223B9 - 74E829E93EFF845C3A793AD8E81600D99A0D7B776C833E3C767B0C93061386CF - EE2FB777C71AE6769B1DDB90D753F3769C6E13E6CD9771D37F41C6DF76AF9457 - 3707DB00A0F4F55FDF2E975FFEAE5C39F975B978E8A06E09B53E67ACC16E7B77 - ACEC3615EE31041B5E189CDD4FEEFED210576ED8DBB1DB6CF0A7FBBA094DD2B0 - E87F49E3FC5F928ACA95C1360048AEBEDEDDD27EF0DFE4D28B8F4AE7C573C116 - B700700B01DB6CE8DBB1D2B14521304C6EA0213BBB8FDCDE6D1AEEB6CF1EFADA - 372DDD249316BD41AAC7BD3298D7040D0030A05BAE5F795CCEBFF80F726EDF93 - C13C5C04848B01B708709B0AF7C842830BD9D97DE3F6E1E6867E66E06BAB195F - 279316FEA2342E7EB394572C0EB6010086D2DFB75FDAF7FFAD9CDFF3A8747777 - 075B34FC731502D98A001BFCE11E0E0D31DCCCEE17B7B7811FEE0702DF0DFEA6 - 65AF97C6F96F91B2B2A6601B0060A46EDC3827ED07BF20E7F6FEA3745FEE0CB6 - D842C02D086C0110EEC3E16F7B1836E09066F787DBBBCD067E8EE0AFA991C9CD - BF2913E6BF8DE007803CD142E0E2C1CFC9D9ED5F0A9D11081702B6D902C03615 - EE13CF061D06F685DBDBD0B7BD1BFCDA579A71A54C5BF33FA469F17BA5AC6A4E - 300700E4DB8D9E23726EFF27E5D48E6F06B3DEA069F86BAFA11F2E0434E8DD62 - 405104386CD8259D1BFACA867E38F8B5D9237E0DFF4A6998BD5866347F582AEB - 3705730040A1F5763C2927B67F402E1DDDAF33D3863A1BA06345116050006486 - BFDB6CE0EBD886FE40F8578F1B2BD3D7FE918C9DF9FBC116DD060028167D2DF1 - D5E37F2327B7FD955CBF7235D8E21601B6D9E0770B01DB94ED1349C32DC96CD8 - 2B3BB6A11F3EE24F077FEAA87F7EABCC68F90BA9AC9A1FCC010051E9ED392827 - B6BE4B2E1DDCA233D3DC22C02D00DC4240B9E3C449EA91AB0D7B6DCA8EC3A19F - 0E7C91AA54ABA9A995599BDF239396FFB954564C0AB60100A2545ED128F5B37E - 45C64EAC956BA7B6489F667EC6DFED6E1F36D4E7252D897FE8F00FDC1EF16BCB - 75D45F25B593E7CA9C3B3F27D563D6047300806FFAAEED96833F7CAB749D3D1C - CC7A8236D8D9006D3A56EE1981C4D0804B925CE11F0EFD81E017A996A9CB7F46 - 66DFF125A9A8E60E7F00F05579D5549934F73E29BB7140AEA68A80307BB067E9 - 5843DF6E733F2B79492A00C23F6037FC6DCB0C7E6D735E71BF4C5CFCB1E0635E - DF0B00DE0BFEAE1E3BED1764CCC40AB97444EF0B182AD4F5F3441601492900C2 - 3FD8A1C3BFBA7E822CB8F70B3276EA6B833900204E6AC6B7C984992BE4CAA927 - A4EFBA5E0A188CE641E28A80241400E11F6838FC751FD8F0D7562D6326CD90B9 - F7FE7DF00BB431980300E2A872CC7C193F6793749E79427AAF5D0BB6B8D7F8C3 - 21AFF3441501A55E00847F9083857FFAC87FEC942532E795FF2055354B833900 - 20CE2AAAA60545C0BD72EDEC53D273F5A2D99A8BE643628A80241400F607982B - FCB5A51FF31B3BE57699F7AA7F968A8ADB823900A014E8A38213E6FFBC5C3DFD - FDA00868375BDDB3012ECD09B7082859A55C008C24FCF5C85FC3FF2B2CE20300 - 25A8ACACCE2902EC9980441701A55A0010FE00804C994540E2CF04946201607F - 58DABBC1EF1600EE357F0DFF2F13FE009000E922E0E7B21401B90A01ABE40A81 - 522B00C2E1EF1600F6A8DF867F958C993843E6BEFA2B525E3E2D98030092408B - 80F1F35E291D27BE25BDD73ACD56D76067054A46291500C30DFFF4A37E556327 - C8C29FFDAA5454CE0DE6008024292F1B2F13E6DE2D170F3F26FD3DFADAE0A1CE - 0058255304945A01607F3036F8DD0260E0C8BFBABA4EE6BFFA6FA5B2AE399803 - 0092A8AC62928C9FB152AE1CFE96F4F5B9EB02642B06745BC984BF2A9502C0FE - 50B4D7C0B7BD3DF2D7960E7F3DFA9FB5F901A99BFC3F83310020C92A6AE6484D - 439D5C3CF26430B3C1EF160076ACB9E28E63AF140A0037FC6DF0878FFCD3A7FD - B50098D1FA2B3261DEFB82310000FADAE0B552597B5CAE9C78C16CC9560884C5 - BE08289502C06DD9C23F7DF43FEEB61532A5F90B525EA6730000D2AA1B374B77 - FB1372FDCAB960A6C1EF1601831502B115F702C086BED2D0D7B1FE9974EC867F - B5544D6894F9F77C512A2AB9E31F0090490F0CC7DFB65E2EBEFC75E9EFBA1E6C - 091701E1DE664F6CC5B900B03BDF1601F6C83F1CFEE90260CE860F4ACD845704 - 6300006EA63705D6D637CAC5C34F04B35CE11F16DB4220EE0580DB34F8F5CF63 - DBC0D1FF9495AF96890BFF24180300905BF5B815C13FF7CAD53387835E43DF36 - 2B5721103B1A9A71E4565C6E01E01602E9B300750D1365E28A0F0763000086A6 - 99A1D93170365933C5CD189B3B963B8E0DFD43C591DDF9DAF487619B7BE49F6E - 735EF951A9A96B09C600000CADA2AC5EC6344D910B07BE13CCDCB300B695040D - CDB8B1C1AFC2858016000347FF93166C9231137F29180300307C9A1D8D8BDA82 - 917B16409B668D9B3DCA1DC7461C0B00CBFD01E89FC32D002AA4BABA56A6B67E - 281803003072D3D77D2C95256EB60CE48D9B41B114B702C0DDD9761C0EFF74B5 - 3679CDAF4B45C5BC600C00C0C869866896643F0BE01601CA1DC742DC0A00CBEE - 68DB320B80D48D7FF3DF118C0100B8759A25033704BA0540388762274E0580BB - 93ED58BF7FDBD2E1AF7DD3AA3F08BA71C11800805108B22495294EC664664FB6 - 6C8A05FDE6E3C6EE60DB6CF8A75B6DE3346998FDBA600C00C0E869A668B6B859 - 9319FEB6C54A5C0A0077E7DAB17EEF99E1AFD5D9D455BF17F4BAF00F0000F950 - 6DB2C5BD0CA0CDE650B68CF25E5C0A00CBEE58DB328B00ADD0C6CFFCB5600C00 - 40FE68B6649E050887BF6DB1118702C0DDA1760767067FBA55CAE4656F0C7A8E - FE0100F9566D3266386701943BF6521C0A006577ACDB328B80AA86F13261D6AF - 06630000F24F3346B32677F8BBCD7BBE1700EE4E74776C66F86B45D6B4E09783 - 2177FE03000A449F08D0ACC9380B90AD08B0DCB1777C2F0094BB43EDD886FF40 - 1130711147FF0080C24A678D1BFEB6CF96555E8B430160D91D6A77F440F837CE - 5F2BE5950B8331000085A359A399935904B8D9A42D167C2E00DC9D6877AA361B - FC0305C0C405BF12F40000145E3A73DC02C02D046CB3DCB1577C2E0094BB336D - D3EF7920FCABEAEAA466F2CF076300000A4F3347B327B308081700B679CBF702 - 40D91DE8EE50BBB3CB65C2DCBBA4A26C4C300600A0F03473347BDC2CCACC2865 - 7B6FE937EDA3F08EB33BD5DDD9E9CA6BFCBC9F097A00008A279D3DE13300DA6C - 5EB9C2732FE837EB2BBB13DDE6EEE4F2F4E9FF8657066300008A47B3277D1920 - 3397B2679797F49B8D037747EAF76C8EFE67B571FA1F0050749A3D9A41996701 - DCACF29EEF0580BB33F57BCD6C63A7BC22E8010028BE7406DD9C4D99D9E52DFD - 467D13DE71EEDCDDC11532EEB60D410F0040F1A53328D73D00DA5478EE0DFD66 - 7D966D07A67772FDB429525E3137180300507C9A419A45369732B34AD9DE4B3E - 1700EE0ED4667770BA8D695C1FF4000044279D4599F934905BCAF6DED16FD467 - 7627865BB9D44E5A1DF4000044279D456EE8879BB77C2B00C23BCBCEB5B79555 - BA8D9FD11CF4000044279D4599F994995DAEF03C52FA8DFA4677906DCA9DA777 - 6E5555959457B1F80F00205A9A459A49369F32334B85E7DEF0B10070D99DE6EE - D472A99BB520E8AB8306004094AA4D2665E6D4C0D85BBE1600EE4EB3E3811D5A - 5DB328B5050080A855D6CE0FFE6903DFE66AB61CF38AAF0580B23BD3EE50DB97 - 4BE5D879410F0040F4AAEBF492743A9F3233CB362FE937E93B77276A2B9771D3 - 67073D0000D14B675238F4B579CDA70220BCD372CFAB6A280000007E28AB9AA1 - FF749A1A6A1E395FCF00B83BCCF6DAD215565FB9BE79090080E855554E0DFE39 - 9051E9A6C2BD577C2D005C76670EB4AA2A0A0000801FCAAAA6EB3FB334AFF95C - 0064DB99653276EAE4A00700C01FE96CCA9E5B9E8AC319006577A05EFFAF3363 - 0000FC90CEA681AC8A011F0B00B762BA795C563B2D3D0500C013E96C1A3CBF3C - E3FB2500CBCB9D0700404838AFBCCDAEB8DC046895494519970000007E292FAF - 09FE198BE0B7E2740F80D9991513D23D00009E282B9F6447A679CFF70220BC13 - 63B15301008914ABCC8ADB25000000E2C0FBEC8ACB2500657726050100C037B1 - CBA83815000000204F2800000048200A00000012880200008004A20000002081 - 2800000048200A00000012880200008004A200000020812800000048200A0000 - 0012880200008004A200000020812800000048200A00000012880200008004A2 - 00000020812800000048200A00000012880200008004A2000000208128000000 - 48200A00000012880200008004A200000020812800000048200A000000128802 - 000080042A33BD0FF47BD1A64589B68AA05505ADDAB4DA546B5A769F4C6F7E28 - 18033F357FC142A9AAD25F9778E9EBEF97E3478F48575797D90220964E6E7F48 - CEED7D2418E9FF336BBB6E5A4FD0FA82D66FDA0DD322470180D87BE39B7E4F36 - 6CBAD3CCE2E75A67A77CEA931F936341210020A6625800700900B1D7B6619319 - C5D398BA3AB9E755AF363300280E0A00C45E7979FC7F8D5737B74855959EE802 - 80E2A000003C505F5F2FCB57AE323300283C0A00C01371BF9401205E2800106B - B5B57A6F686958B57A4D49FD7900F88D0200B136B67E9C19C55F655595B4B46D - 303300282C0A00C45A434383199586D6F5779811001416050062ADA161821995 - 86DB972D97C68913CD0C000A870200B136A104C3B295CB00008A800200B13665 - CA54332A1D3C0D00A0182800106B93A7965E013073D66C993E7D869901406150 - 0020D666CC986946A565FD46CE0200282C0A00C496DE2C37A9A9C9CC4A4BDB1D - 1400000A8B0200B1B5AE65BD19951E2D6C162E5E626600907F140088ADE6122E - 001437030228240A00C4929EFE5FB868B19995A6B54181535151616600905F14 - 0088A5356B5BCCA874E90A812B57379B1900E417050062694DF33A332A6D6B5B - 4BFB320780E850002076EAC78D93C5B72F35B3D2B66E5D2B2B040228080A00C4 - 8EBE2AB7BC3C19BFBABA42E0EAB5C938DB01A0B82800103B2D095B316FE3A6BB - CC0800F2870200B19284BBFFC3F47247A9AD7A08207A140088950D9B937734AC - 973B5ADB9275D60340E1510020564AF9ED7F8359CF4B8100E4190500624357C8 - D395F29268CEDC793265EA34330380D1A300406C247D85BC0D9BEF342300183D - 0A00C4466BC2EEFE0F4BFA9F1F407E51002016E6CE9B2F93A74C35B364D23FFF - FC058BCC0C0046870200B1C0CA78693C0D00205F2800100BBA321ED24F03B042 - 20807CA00080F7962E5F21131A1BCD2CD97485C0A5CB56981900DC3A0A00782F - EAD3DE4FFEE0FB66E487A43F0D01203F2800E0353DDDBDBA39DAB5FFBFF7DD6F - CBC5F676338B9E2E85CC0A8100468B02005E5BB9BA3975DA3B2ADDDDDD72ECE8 - 11D9F3DC4EB3257A353535AC100860D42800E0B5B5ADD1DEFC77E4F0A154BF67 - F7AE54EF8B3B366C362300B8351400F056555575EA7477940EBD7420D56B01D0 - DFDF9F1AFBE0F665CBA57EDC3833038091A30080B7D6B6B6A64E7747E9C08B2F - A4FAAEAEAE60BC3F35F6417A85C00D660600234701006FF9B0F2DF81FD03A1BF - 6FEF7366E487165E0D0C60142800E0253DBDBD7CC52A338BC6F16347A5B3F3AA - 99F9771FC0C2458B592110C02DA3008097D6AC6D91CAAA2A338BC6FEE7F79951 - DA914307E5F2A54B66E687165E0D0CE016F9F44ED1B250D3E244BF3FDB2A53AD - 6EF2721937FDEE608C12F6CBFFFBB5D234798A9945E3BFBEF54D3975F28499A5 - CD9A335766CE9C6566D19B3469923CFE9D6F9B1930347D87C4F419B7C9A2454B - 64D98A95B26A75B36CD87467AAE8DE7CD73D72E7DDF7C8C6CD77C98A95ABE5EC - 99D3DE15BDDEEA38F584749EDD1B8C7A4DEB334DEF1EBEE1346F68D0FAC20D7E - 1BFE7A08586D9ABEF9A4569A96DD27D39B1F0AC628518D1327CAC71FFE4CEA46 - B728BDF30F7E2FE312806ADBB8497EFB77DF62667EF8C4873F20870F1D343320 - D3FC050B655ED01606813F6BF6EC11ADAAD9D1D121EF7FF73B5237C1620827B7 - 3F24E7F63E128C746769BB6E5A4FD06C21E0160391A30080775EF59A9F95FB5E - FB1B66160DBDFEFF910F3C606603F4DE844F7DF60B66E687C7FFFBBFE4AB5FFE - 929925DBF2E0A8B5A1A1C1CCA27126386A3EB03FFDF44814F4087F75F3BAD4BE - 58B57A8D8CA9AB339FDC9ABFF8C447E4C508FF3CB14101302A14004879F7031F - 48DDE016253DFDFFE823FF6C66991EF8E04764CEDC7966163D7D4DF103C1515A - 5F9FFE1D935CEB5AD7CB9BDFFA76338BD6F37BF7C8173EF7E9A21E392FB97DA9 - 6CBAEB1E59D7D29AD7FB67FEF2931F931742F7C3208B181600D19E630542F4AE - F6A8C35F0DF6C8DF9EE7FC7A1A40574A5C1CFCE59F74336E9B6946D1D31735FD - E66FBDC9CC0A475F9675CFBDAF910F7FE261F9E3F7BE5FDA366C8CFCE659C407 - 0500BCE2C35DEDBD3D3D19CFFF87F9F638A06ADBC00A81E7CF9D33233FE87B1A - A64C1DFEF5F691D0E07FD56B7E4E3EFEF0A7E5D77EE3F53275DA74F309307C14 - 00F04AAB072FB7D9FFC23EE9E9D13377D9E9EB81AF75769A991FD6B6AC4F8542 - 929D3F77D68CFCA147E7F9A4AB63EA1DFA1AFCF7BDF675323EE2FB1D106F1400 - F0C6ACD973BC388DBB6BE70E33CA4EAFB5FB7619405F99BC26E12B049EF3EC0C - 80D2C22C5F962E5F217FFAA18FC91B7EE7CD043FF2820200DE887AE53F6B38A7 - F87DBC0CD09AF09702F9F8BCBADE9F317DFA0C33BB35FA58ECEFBEE50FE51DEF - 7A9F57F73920FE2800E08DB63BA2BF8EAD2F3E3973FA9499E5E66301B0727573 - A25708D4CB36BE5D9A510B162F31A391BBE755AF910F7DFC61D67D40415000C0 - 0B0B83BF24273535995974B66DDD624683BB74E9A21C3AF89299F9415F9CE4C3 - 024A51D217D7F8465FC433527AD47FFFFBDE2FBFF6BAD747BE22264A170500BC - E04B70EDDAB9DD8C863692AF2D96F5097F1AA0BDFDBC19F963E6ACD966343CFA - 3E830F7EE4CF64F1121EED4461510020727A67B30FA738F51AF248DEE0B67B87 - 7F0580BE43418F1E93CAC73300B70DF3BABDFEFFC16B7FE30DA997198DF6ED7D - C07050002072FA121B1FEE6ADEBD6B64817EECE811B9E0E19DE71B36DF6546C9 - D3EDE13BEBF5C53C432DDBDCD03021F506CCBBEF7DB5D902141E050022E7CBDD - EB5B9EFE89190DDF8EEDCF9A913F7C789742547C5DB96ECA200BF0E8E3AF0F7C - F0C3326FFE02B305280E0A00444A5F5ED3B27E839945A7BBBB7BD0B7FFE5E2E3 - 7D00FAA898864A120DF602A728E53AC3A5CFF6EB91FF84C6E45EB64174280010 - A9E52B57797197B31EC9DF4A78EC7F7E9F97D79D75D9E224D242CE47D99E7059 - D7DA266FFFE3F770973F2243018048F972FA7FCFEE9D663432FA56C0DD1E9E05 - 68F5E0AC4A143AAE5C3123BFD4D4EA62A603EED8B859DEF4FB7F907A7413880A - BF7D888CAE5BBEA639FAD7D7F6F7F7CBCE6DB77E2D7FC728FEDD42D137D0E9E9 - 65F8A1BE7EE0054D6D41F8FFD6EFFE3EE18FC8F11B88C8AC5EBBCE8BA54BF534 - FE68D66DD7B702FA78EA39E9AF06F6893D03A0A7FDDFF83B6F4E8D81A8510020 - 32BE9CA61EED9DFC7AEF808F9701F4E6CAA4AD10E8E3AB80557D7D7DEA8C0CA7 - FDE1137E1311097D67BDDE00E8831DDBB69AD1ADF3F16900BDB9CC977D5C2C9D - 9D57CDC82FFA18E05BDEF64EC21F5EE1B7119158B3B6C58BBF0C8F1F3B2AED17 - 2E98D9ADD37B087A7B7ACCCC1F1B37DF694688923EE6C7DDFEF00D050022B161 - 931FC194AF1BF8F41E82FD2FEC33337F2C5FB14AEAEAC69A19000CA00040D1E9 - BBEAF59DF53EC8C7E97FEBD961AE24584C7A93E5DAD664AF1008203B0A00149D - 2F2BFF5D6C6F4FBDCF3F5FF2594CE4535BC2570804901D05008ACE97C56A766C - CF6F60EB4B680EBC38F2D70917DAE225B7276685405FDF0408F888020045A5AB - A28D747DF44229C40B7C767AB838906ADBB0D98C4ADB154FDF0408F888020045 - D5E2C9CB69F448515F00946F3EBE1550F152200061140028AA8DBEDCFD1F1CA9 - EB7BFCF3EDCCE95372E2E5E366E60F3DEB72DBCC59660600140028225DA276F2 - 20EBA217D3AD2EFE331CA37DB360A1F872F6A590745D0700C3430180A2F16589 - 5A7D61CF6816FF198AAF9701366EF2E3E6CB426ABF70DE8C000C85020045E3CB - BBFFF54EFDD12CFE339423870EA61E31F48DAE10B870F112330390741400280A - 0D1E0D201F6C79E627665438F97EC4305F783530008B020045E1D3CB680A79FD - DFF2F532C0EAE696C4AD1008203B0A00145C454585ACF5E4ED7F7AFA3F1F8BFF - 0C451F31ECE8E830337FE8B2B4A5BE42202F03028687020005B7F8F6A5A9E0F1 - C19EE776995161E923863B3DBD0C50EAAF06D6373202181A05000ACE9757FFAA - AD4F17FEFABFB56BC70E33F2CBAAD56BA4B6B6D6CC80C1F16865E9A2004041E9 - F5E635CDEBCC2C5AA74F9E4CBDA8A7589EDFFB5CEA9143DFA45608F4E4920CFC - 76EAD449397CE89099A1D49499DE07FABD68D3A2445B45D0AA82A6772C69D343 - 965A695A769F4C6F7E28182306D6B5AE9737BFF5ED6616AD6F7DF33179EC5F1F - 31B3E2F8A3FBDF23CB56F877CDFDF9BD7BE4D30F7FC2CC4ACBC71FFE8C4C6A6A - 32B364D3FB504E9F3C21E7CE9D4D3D9AAA97473A3AAE486767A75CEBBC6ABE2A - 9316EDE31B1AE47CF0EF1C7CE925E9E9B96E3EC1A04E6E7F48CEEDD5BF60F419 - 636DBAE3B4E95180BE76544FA568BB615AE4280050506F7DFB3B65B52767003E - F9D18782BFD00E985971BCE29E7BE5D75FFF5B66E60F3DADFBC0BBDF51941B22 - 8B2DA905C0D933A753817DE4F0C1A01D9213C78F07419F3DE45100312C00B804 - 8082D1EBCCCB3D39FABD161CF1E85F8AC5B66BE77633F24B7979B9ACE33240AC - 9D3F774E7EF0C4E3F2777FF3D7F29E77FCA1FCE97BEF972FFEEDE7E5BBDFFE4F - 39B0FF05C21F43A20040C1E87566BDDEEC03BDFBBF108BFF0C458FB0A3283C86 - C3A79B33313CC78F1D95AF3FFAFFE4C30FFE49EA0CCE3FFDC31765CBD34FC9A5 - 4B17CD5700C347018082F1EBE53FC579FC2F1B5F1707D21502A74F9F6166F095 - 1EE9FFC7371E9307DFF72EF9C8071E907FFFC6D7E4E5E3C7CCA7C0ADA3004041 - D48F1B977AFEDF17511600855C7868B4D67BB2401332E93D1A3B83C2F1B37FF9 - 70EA48FF6B8F3E52D42758900C14002888D6B60DA9EBCC3ED053F0519E22D5A3 - 35BD41CB476D775000F8441F1B7DFCBFFF4B1E7CEFFDF2F9CF7EBA28AFAD4672 - 5100A0205AD6FBB3F67CB1DEFE37986D5BB798915FF46E7956088C9E0DFE07DE - FD4EF9EA97BF947A6C0F28340A00E45DE3C489B270D162338BDEEE1DD1DF89EF - EBD300AAB5CD9F622D69C2C1CFCD7C28260A00E49D4F77975FBE74A9E8CFFE67 - A38F65E98B587CD4B27E436AC1261497DE1CFAA107DF47F023321400C83B9F9E - 2FDFBDCB9F23EF6D5B9F3123BF246185409F6851FAD77FF529F9C2673F2D674E - FB796F089281020079A58F95E9E365BEF069419E673D2D00544BDB06334221E9 - 72D41FFDE0FB83DF4B7F2F092139280090573E3D56A6EBC247F9F85FD8A1970E - A4DECDEEA375EB5A5921B0C0F6BFF0BC7CE6E13FE3743FBC410180BC6AF5E8EE - 7F5D8DCFA7854CF44D84CF3CF5A499F945DFD8B87AAD1F6B3694AAFDCFEF6561 - 1D78850200793377DE7C993C65AA9945CFC753EE3E5F06D8B889570303494201 - 80BCF1E9D5BFFA26B5DD1E5DFFB77C7E1A40DFDCA86F7004900C1400C81B5DFC - C717FB9FDFE7ED6A68BE3E0DA06F6EBCC3A3220E40615100202F962E5F21131A - 1BCD2C7A5B9EF98919F987A70100F880020079E1D3DBE4F4F4FF8E6D5BCDCC3F - 3E5F0698377F814C993ACDCC0094320A008C9ABE456E75738B99454F4FFF775C - B962667EDAEDF1AB817DBA970340E1500060D456AE6E4EBD4DCE173E9FFEB77C - BE0CD0B661A319012865140018B5B5ADFEDCFCE7FBE97F4BCF525CEBEC3433BF - E8A39CF3172C323300A58A0200A35255552D6B9AFD7981CCF37BF7787FFA5FE9 - 4B8176EDF2EF31458B150281D24701805159DBDA2A3535356616BD9F3CF52333 - F2DF9EDD3BCDC83FEB376C628540A0C4510060547C5AF94FD756DFB9ED5933F3 - 9FBEA8482F59F848EFE9D0170301285D65A6F7817E2FDAB428D1A6871F5541AB - 364D572AA995A665F7C9F4E687823122A66F8DFBE4A73E9B7A8FBC0F7499D53D - CFF9B3F8CF70E8CB937C3A83E27AFA273F962FFE9FCF9B597C7CFCE1CFC8A4A6 - 2633F3C7371F7B54BEF1B547CD0C25E7E4F687E4DCDE4782519769BAF083B69E - A0F5054DAB7D6D374C8B1C05006ED9E657DC23BFF9C6DF3133941A5D4DF1FEB7 - BD25760BD850002012312C00B804805BE6D3CA7FC83F3D33A1F77800284D1400 - B8258D1327728D38015AD7F36A60A0545100E096E8CD7FBA780C4ADBF295AB58 - 21102851FC0D8E5BD2ECD1DDFF281C2DF25A5920082849140018315D2C66E1A2 - C5668652D7C2BD1E4049A200C088B5F096B844D1628F150281D243018011E3EE - FFE4A1E8034A0F05004664D6EC3932E3B6996686A4B8832582819243018011F1 - 69E53F14CFD469D353C51F80D24101801169BB8323C1A4DAB8F92E3302500A28 - 00306C0B172FF1F215AB280E5DB780150281D241018061F369E53F14DF84C646 - DEFE0894100A000C8B1EF9F13C38DAB819102819140018163DF21BDFD0606648 - 2ABD0C5055A58B7302883B0A000C4B2BCF8123A02B04AE5AB3C6CC00C4190500 - 86A4477C2DAC0A0783CB004069A000C0907445383DF203D4F215AC100894020A - 000C89D3FF70555655C99AB52D660620AE280030A8DADA5A59D3BCCECC80B40D - 9BEE3423007145018041AD5EBB2E75C407B87485C0C68913CD0C401C51006050 - ADDCFC871C36F06A6020D628009093DEE8A5370002D9B02C34106F1400C8496F - F42A2FE75704D9E9B2D0AC1008C4177FBB23276EF4C2505ADBB84404C4150500 - B2D21BBCF4462F6030BC1408882F0A0064C5CA7F180E5D2170C9EDCBCC0C409C - 5000202BEEF0C670B56DDC684600E2840200379932759ACC9C35DBCC80C1AD5D - C70A81401C5100E0262DBCFA172330A6AE8EC7458118A200C04D3672F73F4668 - E3667E6780B8A10040067DAE7BF294A966060C8FAE10585737D6CC00C4010500 - 32B46DE4B12E8C9CAE17B1B69527478038A1004006DEFD8F5BC5AB8181782933 - BD0FF47BD1A64589B68AA0E932747A7BB1B6DA546B5A769F4C6F7E281823CF16 - 2E5E22EFFE9307CDCC1F3BB73F2BC78E1E31B3641A533756EE7DF5CF9899BFDE - 77FFDBA5FDC205338BC6C71FFE8C4C6A6A32337F7CF3B147E51B5F7BD4CC5072 - 4E6E7F48CEED7D2418759976DDB49EA0F505ADDFB41BA6458E02003FF5BA37FC - B6DC75F72BCDCC1F0FBEEF5D72E6F429334BAE8F7EF253DEDF9FF1AFFFF215F9 - F67FFCBB994583020091886101C02500A4545454C85A0FDFFE77FCD851C2DFD8 - F2CC4FCCC85FBC1A18880F0A00A42CBE7DA9D4D7D79B993F9EDDFA8C1961DB16 - FFF785BE40EAB699B3CC0C80CF280090E2EBAB7F776E7BD68CA0F7419C3D73DA - CCFCC58BA48078A00040EA35AE6B9AD799993F34EC5E3E7ECCCCA07EFCE40FCD - C85F1B37B18E041007140090556BD6484D4D8D99F9230ED7BC8B6DEBD3FEEF13 - 5D21509F2801E0370A00787BE3561CAE79179BDE10A93746FA8E9B0101FF5100 - 245C6D6D6DEA35AEBEB9D8DE9EF867FF7389C38D91FA44893E5902C05F140009 - A77F51EB6B5C7DB38DBBFF737AEA473F30237FE913252B57379B19001F510024 - 9CAFA76A79FC2F377DD3DE8117F79B99BF5A791A00F01A054082D58F1B977AFE - DF37972F5D9203FB5F303364B33D0605923E59A2979800F8890220C15ADB3648 - 79B97FBF02BB776D3723E412873324A915023D7CBB2480340A80046BF174F5B6 - 2D3178D42D6A7A1960FF0BCF9B99BF781A00F017054042354E9C280B172D3633 - 7F747474C8FEE7F7991906F3F4534F9A91BFF41293FEAE01F00F054042F9FAEA - DFDD3BB74B5F9F2E9C85A1ECD8B655FAFB7571317FE925A6755C0600BC440190 - 50BEFEA5BC8377FF0F5BC7952BB1385BB29ECB00809728001268FAF419A955DB - 7CD3DDDD2D7B76EF32330C471C5E973C67EE3C9932759A9901F005054002ADDF - E8E711D98EEDCF4A4FCF7533C3706C7DFA29E9EDE931337F6DD87CA71901F005 - 054002B57A7AF7FF9EDD3BCD08C3D5D5D5257B9EF3FFAC89AFBF734092510024 - CCDC79F365F294A966E60F3D8A65EDFF5B13877702E8EF1C2B04027EA1004818 - 5F9FCBD6A3583D9AC5C869E11487CB00BC1A18F00B0540C2F8FA6636DEFD7FEB - B4707AF6D92D66E6AF96F51B582110F0080540822C5DBE422634369A993FF459 - 76EEFE1F9D6D5BFC2FA07485C0E52BFD5B7A1A482A0A8004F1F514AC3ECBAECF - B4E3D66901A58F51FAAEA56D831901881A054042E8A9D7D5CD2D66E697383CCB - EE3B7D7C521FA3F41D2B0402FEA000488895AB9B53A7607DB47B07ABFFE5C333 - 3FF67F6D809A9A1A59BD769D99018812054042AC6DF5F3E6BF032FEE974B972E - 9A194663DFDEE7528B29F9EE8E0D9BCD084094280012A0AAAA3A75EAD547DBB9 - FB3F6F7411A59DDBB79A99BF6E5FB65CEAC78D33330051A1004880B5ADADA953 - AF3EE2F1BFFCDAF2B4FFF753E80A8177B0401010390A8004F075E5BF23870F49 - FB850B66867CD0272A2E5FBA6466FEE26900207A1400254E4FB52E5FE1E7B3D7 - 71B86B3D6EF432C0D6183C55316FFE0256080422460150E2D6AC6D91CAAA2A33 - F3CBD6189CAE8EA3B85C5669E1D5C040A428004A9CAFABB09D78F9B89C397DCA - CC904F07F6BF2017DBDBCDCC5F1B37B1443010250A8012D63871A22CBE7DA999 - F985D3FF85B52D262B04EAEA9400A2410150C2F4E63FBDE3DA477178777D9CFD - F8473F3023BFF9BA3A259004140025ACD9D3BBFFCF9E392DC78E1E31331482EE - 5FDDCFBE6B597F072B040211A10028517A87F5C2458BCDCC2FDBB6FABF746D29 - 88C31A0BE31B1ABCBD4C05943A0A8012E5F31DD6BB76F2EEFF6288CB65960D9B - EF322300C5440150A27CBDFB5FEF4ED7BBD451787A19E0F8B1A366E62F7D4DB5 - BEAE1A4071510094A059B3E7C88CDB669A995FE270777A2989C33B01F435D5FA - BA6A00C545015082F4E53FBEE2F47F71C5E5654BBEBEAE1A2865140025685253 - 9319F94597AAD577D5A378F4654B71B80C306FFE42331ABDFEFE7E33F24B1CD6 - 6840B2500094A0F3E7CE99913FF42FE57FF9CAFF4DBDAB1EC5F5D8A38F781B8A - 567777B7198DDE534FFAF90E84832FBD6446801FCA4CEF03FD5EB46951A24D1F - 0ED697D8EBDD41DA6A53AD69D97D32BDF9A1608C1CF486AACD77DD2DB366CF96 - 720F9EB1EEECEC94AD4F3F15FC0578C06C41B12D5CBC247563684DADFEBF915F - 3AAE5C0942FB87F2F2F16366CBE8B56DDC244B962CF5E6F77FF7CEEDB26FCF73 - 660B4AD2C9ED0FC9B9BD8F04A32ED3AE9BD613343DF2D12A5CDB0DD322470100 - 00C068C5B000E012000000094401000040025100000090401400000024100500 - 0000094401000040025100000090401400000024100500000009440100004002 - 5100000090401400000024100500000009440100004002510000009040140000 - 0024100500000009440100004002510000009040140000002410050000000944 - 0100004002510000009040140000002410050000000944010000400251000000 - 9040140000002410050000000944010000400251000000904014000000241005 - 0000000944010000400251000000904014000000241005000000094401000040 - 0251000000904014000000241005000000094401000040025100000090401400 - 000024100500000009440100004002510000009040312C00FA2E9A0100009E88 - 5F36C5B000E8EF340300003C11BF6C8A530170C3F40000F82A36591587022073 - 67F6769D31230000FC707336795F08F85E008477E00DE9E9E6120000C02FE96C - BA39B33C16974B00BA13D33BF2EA99F3A91E00005F0C64D3405E792E6E9700D2 - 3BB6AFFF6C7A0A0040C46EF49CD47F9A66795F04F85C00DC1CFC6941DFCB7D00 - 00003FF4F66B263919F5D3B172C75EF1B10070775EB6F10DE9B9762CB5050080 - A8F575B96700C299A5DCB137E2740F80ED6FC895978FA7A70000442C9D496EC8 - 7B17F6D9F87E09207BEBED3A1CF4000044AFE7DA4BC13FB3E755BA79292E3701 - 66B6EBD70E043D0000D1EBE93A14FCF3E6ACF29CAF0580DD716EAFAD3FD5771E - D73300D78306004094AE9B4C1AC8A87453E1DE2B3E150076A7B93B2CFBBCB7B7 - 477AAF1F4C6D0500202A9A459A496E46A50D358F5C1C2F01A42BACAB2777063D - 0000D14967D140366536AFC5E52640BB63B54FB7CEF3BB831E0080E8A4B36820 - 9B3233CB362FF97E0F80B26377870605C0D96DBA110080C8A4B328339FD26C76 - 2977EC0DDF2F01B83BD41D0705C0B9B3D2DF7B34180300507C9A419A453697B2 - 6796B77C2C00EC4EB33BCE9DDB9D9C6E1D279E097A00008A2F9D4199B9949959 - 2A3CF7866F05407807B93B30BC93FBE5EAE927831E0080E24B67D0CDD994995D - AEF03C5271B904106EBA83FBE4E2D1ADD277E35A300600A078347B3483348B06 - 423F5BF396CF0580DD717627BAD555BAF5767549D7F91F066300008A47B34733 - 285B366586BFEDBD13873300B6B7CDDDC97D72E9D077831E0080E249678F3DFA - B7CDCD2A657B2FC5F926C0F48EBF74F4292E0300008A463347B3C7CDA281E666 - 960ACFBD11A77B00DC1D6C5B9FF4765D93AED3DF09C60000149E668E66CFCDE1 - 6F9B9B5DDEF2BD00B0DC9DA93B5777FA406B3FF8F5A00700A0F0D29993994331 - 0A7ECBF79B00C3CDADB0060A81F643BBA5AF4797630400A070346B34733283DF - 6DD9B2CB4BBE1600E11D6677A2BB93EDCED7D62BE7F7FF5BD003005038E9ACE9 - 0D9A9B416E36650BFDF0DC0B71B80460779CDDA9DADC9D9DFE015C7CF1DF838F - 3A823100000510644C2A6B060D7E6DCAF6DE8AD34D80B66506BF6DDD57AFC8C5 - 438F05630000F24F3346B3269C3FD98B00DBBCE5FB3D0096BB336DF8BB45809E - 8EE995D3FBFE39E8AF070D00807CBA6E32269D3799E16F7B37AB2C77EC95385C - 02B0EC4EB53BD92D00D2EDFAC53372F92867010000F9A5D9A21913CE9DCC4CB2 - 39150B71B907C0EE503BB6E1EF1601E9AAECE4EE2F053D67010000F972DD64CB - 708EFE953BF6561CEE01B0EC0ED5A63B3B1CFEE9FEFAC5D372E9E8A3C1180080 - D1D34CD16C71B366207F6C1EB91965B963EFC4E51280BB636DCB5D049CDEF9F7 - C197F04400006094822C4965CAB0C3DF36EF5598DE7765A629B7B74D0B19DB97 - 4B5F77AF9455F7C8D8A63B82390000B7E6CC0B9F974B87B70423BDB4DC637A2D - 026CB3854038F8BD2F02E27206C0B23BD8B66C6701D2EDFCCE47A5BFE7683006 - 0060E43443344BDC6C19FAE83F36E2760940D97138FC330B80DEDE2E79F999BF - 08C600008C9C668866899B2D9999132E02943BF65ADCCE0028BB736DCB5D045C - 3CBC553ACEFC6730060060F8343B3443DC4CC9CC1A37F86D8B95381500EE0EB6 - 635B7DD922C0FE80F43A4DFA0776E2E9BF92BEBEB3C1180080A1696668760C04 - BF668A9B316EF664CBA65888CB4D8096BDE94FD971AEA6C54D99F475F7487FEF - 291937E355C11C0080C19DDAFE51B9F2F2BE60E4DEF8377060995904C42AF45D - 712B002C0DF85C7DB895CBB5732FCB988993A566FC92600E004076978F7F5D4E - 3EFBE5606483DF86BF5B00C4FEE85FC5F11E00CBEE6C6DF687A155996DF60795 - FEC19DDAF2D7D2D775381803007033CD08CD8A9B03DFCD9670F86B8BA5B89E01 - 507A746F7B3B5676EEB672E9EBE993AEF6E764C2AC9F0DFED895C13600008C9E - 2E39FAA3774967FB099D046DB0A3FF70F8C7B21088FB250065C7D97A6DF62C47 - B95CEFB824E595E765EC943BCD36000044CEEEFB73B9F0D24F8291867E77D06C - F0DB66CF0068D07306206236E05DEE363BD6365004749C3E24631AEAA566C272 - B30D009064978FFC8BBCBCE59F82911BFEE1A37F7BEADF0D7F2B964540295C02 - B0DCB91BFECA9D9749C7CB3BA5FEB6E55235E636FD10009050D7DAB7C8D1273E - 21376EE80B7FDCD3FEDA87EF01081FF9C732F8AD3817002A1CF2B9FACC7623F8 - 995D7DF92999306FB394574E08B6010092A6A7EB2539F29D774BCF755D3CCE86 - BF2D00EC917FAE53FF566C8B80B81700960DFB3077BB2D005499F4F5F44AC789 - 27A57EF6DD5251596FB6030092E07AD76939FA9D3F92AE8EF33A33CD1EF987C3 - 3FDBA9FF7021103BA5500084C3DF0D7A3510FAE1BEB7BB4BAE9DD92AE3666911 - 30C66C070094B29EEE7639F6C41FCBB5F663C12C1CFE1AFC3A76C3DF86BDDB62 - AF14CF00E41ABB068A809E6B97A5F3D433322E7526802200004A9986FFD1C7DF - 219D175E0A66E1F0D7DE3DFAB747FEE12240C5BE082895024069A86BD31F8A1D - 8785B7A5E714010050FAB287BF5B0468F0874FFDDBD0D7B115FBF057A55600B8 - BD2B5BF0BBDB38130000A52C77F8DBA3FE5C47FEB608502511FC562915002A5B - F80FD74011503FAB2528021ACC7600409C5DEF3A26C79FB83F08FF433A0B9A3E - EB1F2E02B21DFDDBF0B74D954C11506A05801AEA68DF75F3D7A68A80133F92FA - 69ABA4A266B2D90E0088A3EB97F7C9D1EFBD473ADB5FD659D0DCF0CF75F4EF86 - BE6DCAF625A1140B00E586FECD219F667F90E1CF835F83EE6B72E5F8F7A566CA - 3CA9A99B65B60200E2A4F3F40FE5C80F1E94EE8C47FDDCF0B77DAED3FE6EE097 - 54F8AB522D002C0D77FDA1DD1CF269B98B007D4FC0C503DF97EA71E532A671B5 - D90A008883F643FF2847BEFFE9E0EFF2CE603654F8673BEDAFBDD271C985BF2A - F502400DB708B032E7978FED92DEAE033266729B5454549BAD00001FF55CBF2A - A79EFDB09CDEF958301B2CF8131DFE2A0967006CAF3FC4E11601567AFBB50BC7 - A5E3C40F64FC8CE55251DD94DA0600F04B4FC7F372F8F177CB9513BB835938F4 - DDE01F6EF897B4A49C01B07DAE22C0FEA0DDCF753CF00BD0DBD521ED07FE5BAA - C6564AEDB8E522E5B98A09004051F5F6CBC5235F9123DFFBB8F45CD3EBFD6EE8 - BBC1AF637BB7BF06FD50E13F900125280905801A4E1160857FE03A4F6FBB71A3 - 5F2E1FDB215D97B6C9D819ABA4A2627C6A3B00201AA947FC9E7A50CEEEF98FE0 - EF687B87BFED6DF0DBE63EEA67833F91E1AF925200A8E11601FA99FB83777F19 - D2ADFBF259697FE93FA56A4C39670300200AF6A8FFFB1F93AE8C77FADBE077C7 - 36FCC3A7FC131BFE2A69C1E51601AA3C683AD6DE6D5A18559A5635681B37759E - 4C6F799BD44C680EE6008042EBBEB85D4E6EFD9C5C397D309869B0DB90CFD672 - 1DF5273AFC55128F5C7315016E21A005806DB608081703EEBC52262FBD47A6AC - 7C9394574D0FE600807CEBEF39296776FF9D9CDDF7BD60E6067FB808B0731BFC - E1237F0DF94487BF4A6201A0C24540B800081702F66C40B66260605B45456D50 - 04FC82342CFC75A9AA690CB60100464BDFE37FE9C09783F0FFBAF4F575055BDC - 80CF16FAB685833F5C00A84486BF4A6A0160D9E0576E11607BB708700B011BFC - EE78605B45759D4C59111402F37F954200006E512AF80F7E55CE3C1704FF757D - A18F0DF670E0E70AFEF0517FB6F04F5CF05B36FC922C5C00D8660B001DBB4580 - 5B0864067FB85554D448D3B2D7C8C4C5BF2495B5F3836D0080A1F4761D940BFB - FF4DCEEDFD7670C4AF77F4BBE16E5B38F4B5B9C1AFCD86BE1BFC6EE8DB3E9134 - DC30B01F6C6F835F9B2D046C0B1701831504039F352E6896490B7E51AA26B449 - 65957E0D00C0EAEDE9919E8B4FCBF9971E93F697B6EB9661360D7ADB6BB3811F - 0E7E1D2BC2DFA00018102E02DC02C0F66E11A0BD1BF2E14220BC2D3DAE6E9828 - 8DF35E25E317BC526A6B1705DB0020B9BABA5E94CB2F3D2EED87BE23D72F5D08 - B6B8A11E0EF9F0DCEDB305BFEDC3A19FF8F05736EC90E686BFEDDDE61601B610 - 083737F86D1FDE966EE3A6CE92FA5977CB84396D52597B7BB00D004A5F6FD7F3 - 72F1C8D3D271EC09B9725A9FE1D700B7CD0DF65C616F9BCE35E4759C2DF46D53 - E13EF16CD02193DD2F6E6F0B80703F542130D8D8B672A96D6C9271D35A65DCCC - D552DDB84AAAAAA604DB0120FE7A7ACEC8F5F65D72E5F84EB9726A8B74B59F0B - B6DAE00E07FA5063B7E97FC30DFE70F8AB700FC3061C6E66F78DDB879B2D00DC - 42205741609B5B00B85FEBFEFBE552376DBAD48D5F2A639A964ADDD4C5525639 - 47AAAAC7069F0180BF7435BE1BBD47A4F3F47EB9766E9F745E0EDAA993C12736 - A06D70BB216EC7B982DE36F7DF779B1BFAB6A9700F8786180667F791DBBB4D03 - DBF6B68503DD86BC6DB9B6B9FF8E6D03FF1BB54D9364CC8479525E33436AC74E - 95DA868952553F55CA2BC74B7FD918A92A6B0AEA0BFD5A00C83FBD51EF86B44B - F98D6BD2DF7B597A3A4E4BD7A50BD275F5B4F4779F906B170F49D7395D8C4703 - D706B31BD46E78BBC16EB7E7DA16FE77B5B9FF1B6E53E11E5968B86068763FB9 - FBCB06ED40400F8CDD66033D1CF2E1EDEEE7D95AF87FC736657BE58E01209FDC - 407543D66D6E38E76AD9C23D5BD0BB63DBC2FF3BB629DB2B778C2C088B910907 - AEF6EED80D6837B4B5650BF8F0B66C5FE3FE37EC7F3BDC94ED953B06807CC816 - AEDA676B6E58DBB16DE1501F6A6EFF1BEE7F5B7B65B7A9708F211014B7261CBA - DA87C7DADCD0B6213EDC16FE77B2FD37953B56EE1800F2C90DD770F86A0B07B5 - 6DE1F9705AB6FFA636151EBB3D8689B0B875D94257FBF0D86D6EB0DBDE36779E - ED6BC363DB943B0680420B07B0DBB285B7DB87C7EEDCEDC34D85C7963BC63011 - 1AA3E7EE4337906D6FC71ADEE1DE7EAEE3F0DCED076B961DBBDB00209F7285EF - 602D5BB0EB383C57E1DE7EAECDCA35C6081116F9932D8C958EEDDC8EB3CDB565 - 0B7CBB4DE958D9CF54B8078042B3C1EBF676EC86B71BF2B665DBA672CDAD5C63 - DC2242A330DCFD1A1EDBB91D87E7CAFD2C5B53E15EB9630028846C41ECF68335 - 956D9CED33956B8C3C20300A2B5738DB71B63EFC75D93E0BF7CA1D034021650B - 66B7CF3656E1CFB2F52AD71879446814CF60616DE7E15E0D771B004461B0001F - 6C9BFB99CAF6B5282002241AE1FD9E6B3EDCAF0380A80C16E4CACE87FB752812 - 02247AD97E06C3D9C6CF0E802F8613E6C3DD86222144FC93EB67C2CF0A405CE4 - 0A7602DF23FAEA590000F289A007000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000008067CA4C0FFFF1B3 + 021017374C0F8F112AFEC9F533E16705202E72150014061E2154A297ED67309C + 6DFCEC00F8221CECD9827EB8DB5024844834860A733B1FEED7014054860A7F3B + 1FEED7A1480890E271F775AE200FF76AB8DB00200AD9027E38DBDCCF54B6AF45 + 01112085952DB45538C0DD3EFC75D93E0BF7CA1D034021650B6BB7CF3656E1CF + B2F52AD7187944681446AE60D6B19DDB7178AEDCCFB23515EE953B068042C816 + CE6E3F5853D9C6D93E53B9C6C80302237F7205B18EEDDC8EB3CDB5950FB24DE9 + 58D9CF54B80780427303DBF676DC6F7A9DEBD87E665BB66D2AD7DCCA35C62D22 + 3446CFDD87D942D98E6D78BBBDFD5CC7E1B9DBA7DB847953A56ACCED5256395F + 6AC7CF96B153A74A45E56C91AA49D2D75727E55533A422F81F0014425FF0BFFE + 9E535251D121D27351FA7A8FCBB5B367A5F3CA71B9D17B587AAEBF28978F9C0D + BED286B7361BF86EF0EB383C57E1DE7EAEC2BD72C718210D16DC1A77DFD9B10D + 6B65C76E0B07BBF6B6B9F332699837572AC7AE93DA29EBA47EEA6AA9BCB154A4 + 667CF0190078ACEB8AF496ED97F6B3BBA5F3DC76E9BDB65DDA8E1C0D3ED0B076 + 83DF8EDDB9DB879B0A8F2D778C61D2D0C1C8D9FDE6F6E1B1361BEC769CBB4D98 + 314D6A26DF2D13166C94DA715B82BF657AB01D004AC08DD3D279F5C772F9D053 + D275E171B97CEA4CB0D12D00B2351BF6EED8067D78ECF618260D260C9FDD5F6E + EF8E35CCED363BB621AFA7E6ED38DD262E5828E366FC9C8C9F75AF94573705DB + 00A0F4F577EF902B27BE27574F7D432E1D3AA85B42ADCF196BB0DBDE1D2BBB4D + 857B0CC186170667F793BBBF34C4951BF676EC361BFCE9BE6E62A34C58F2BFA4 + 61E12F4845E5AA601B0024575FEF1E693BF8AF72F9E547A5E3D2F9608B5B00B8 + 85806D36F4ED58E9D8A210182637D0909DDD476EEF360D77DB670F7DED1B976D + 96C94BDE24D5E35E1DCC6B82060018D025DD57BF2F175EFE7B39FFC293C13C5C + 04848B01B708709B0AF7C842830BD9D97DE3F6E1E6867E66E06BAB195F279317 + FFBC342C7DAB94572C0DB6010086D2DFB75FDAF6FF8D5CD8FBA8747575055B34 + FC731502D98A001BFCE11E0E0D31DCCCEE17B7B7811FEE0702DF0DFEC6E56F94 + 86856F93B2B2C6601B0060A46EDC382F6D07BF28E7F7FD83745DE908B6D842C0 + 2D086C0110EEC3E16F7B1836E09066F787DBBBCD067E8EE0AFA991294DBF2E13 + 17BE83E007803CD142E0D2C1CFCBB91D5F0E9D11081702B6D902C03615EE13CF + 061D06F685DBDBD0B7BD1BFCDA579A71A54C5FFB3FA471E9FBA5AC6A5E300700 + E4DB8D9E23727EFFA7E4F4CE6F05B3DEA069F86BAFA11F2E0434E8DD62405104 + 386CD8259D1BFACA867E38F8B5D9237E0DFF4A993077A9CC6CFA8854D66F0EE6 + 008042EB6D7F524EEEF8A05C3EBA5F67A60D753640C78A22C0A000C80C7FB7D9 + C0D7B10DFD81F0AF1E375666ACFB03193BFB77832DBA0D00502CFA5AE26BC7FF + 5A4E6DFF4BE9BE7A2DD8E21601B6D9E0770B01DB94ED1349C32DC96CD82B3BB6 + A11F3EE24F077FEAA87F618BCC6CFE73A9AC5A18CC010051E9ED392827B7BD47 + 2E1FDCAA33D3DC22C02D00DC4240B9E3C449EA91AB0D7B6DCA8EC3A19F0E7C91 + AA54ABA9A995395BDE279357FC9954564C0EB60100A2545ED120F5737E49C64E + AA95EBA7B74A9F667EC69FED6E1F36D4E7252D89FFD1E11FB83DE2D796EBA8BF + 4A6AA7CC9779777E5EAAC7AC0DE60000DFF45DDF23077FF476E93C773898F504 + 6DB0B301DA74ACDC330289A1019724B9C23F1CFA03C12F522DD356FC94CCBDE3 + CB5251CD1DFE00E0ABF2AA693279FE7D5276E3805C4B150161F660CFD2B186BE + DDE67E56F2925400847FC06EF8DB9619FCDAE6BDEA7E99B4F4E3C1C7BCBE1700 + BC17FC593D76FACFC998491572F988DE173054A8EBE7892C02925200847FB043 + 877F75FD445974EF1765ECB4D7077300409CD48C6F9589B357CAD5D38F4B5FB7 + 5E0A188CE641E28A80241400E11F6838FC751FD8F0D7562D6326CF94F9F7FE5D + F00BB429980300E2A872CC42193F6FB3749C7D5C7AAF5F0FB6B8D7F8C321AFF3 + 441501A55E00847F9083857FFAC87FECD4DB64DEABFF5EAA6A96057300409C55 + 544D0F8A807BE5FAB9A7A4E7DA25B33517CD87C41401492800EC0F3057F86B4B + 3FE63776EAEDB2E035FF241515B3823900A014E8A3821317FEAC5C3BF3445004 + B499ADEED90097E6845B0494AC522E004612FE7AE4AFE1FF5516F10180125456 + 56E71401F64C40A28B80522D00087F0040A6CC2220F167024AB100B03F2CEDDD + E0770B00F79ABF86FF57087F0048807411F033598A805C858055728540A91500 + E1F0770B007BD46FC3BF4AC64C9A29F35FFB55292F9F1ECC010049A045C0F805 + AF96F693DF96DEEB1D66AB6BB0B30225A3940A80E1867FFA51BFAAB11365F14F + 7F4D2A2AE7077300409294978D9789F3EF964B871F93FE1E7D6DF0506700AC92 + 29024AAD00B03F181BFC6E013070E45F5D5D270B5FFB375259D714CC01004954 + 563159C6CF5C25570F7F5BFAFADC7501B21503BAAD64C25F954A01607F28DA6B + E0DBDE1EF96B4B87BF1EFDCFD9F280D44DF99FC1180090641535F3A466429D5C + 3AF26430B3C1EF160076ACB9E28E63AF140A0037FC6DF0878FFCD3A7FDB50098 + D9F24B3271C10782310000FADAE07552597B5CAE9E7CC96CC9560884C5BE0828 + 9502C06DD9C23F7DF43F6ED64A696CFAA25494E91C0080B4CA862DD2DDF6B874 + 5F3D1FCC34F8DD2260B04220B6E25E00D8D0571AFA3AD6FF261DBBE15F2D5513 + 1B64E13D5F92CA4AEEF8070064D203C3F1B336C8A513DF90FECEEE604BB80808 + F7367B622BCE0580DDF9B608B047FEE1F04F1700F3367E486A26BE2A18030070 + 33BD29B0B6BE412E1D7E3C98E50AFFB0D81602712F00DCA6C1AFFF3DB60D1CFD + 4F5DF55A99B4F88F82310000B9558F5B19FC759F5C3B7B38E835F46DB3721502 + B1A3A119476EC5E516006E21903E0B503761924C5CF991600C00C0D03433343B + 06CE266BA6B8196373C772C7B1A1FF51716477BE36FD61D8E61EF9A7DBBC577F + 4C6AEB9A8331000043AB2CAB97318D53E5E281EF0633F72C806D254143336E6C + F0AB7021A005C0C0D1FFE4459B65CCA45F08C600000C9F6647C392D660E49E05 + D0A659E3668F72C7B111C702C0727F00FADFE1160015525D5D2BD35A3E1C8C01 + 0018B919EB3F9ECA12375B06F2C6CDA0588A5B01E0EE6C3B0E877FBA5A9BB2F6 + 57A5A2624130060060E43443344BB29F05708B00E58E63216E05806577B46D99 + 0580DEBC3169E1BB82310000B74EB364E08640B70008E750ECC4A9007077B21D + EBF76F5B3AFCB56F5CFD7B41372E180300300A4196A432C5C998CCECC9964DB1 + A0DF7CDCD81D6C9B0DFF74AB6D982E13E6BE21180300307A9A299A2D6ED66486 + BF6DB1129702C0DDB976ACDF7B66F86B75366DF5EF04BD2EFC0300403E549B6C + 712F0368B339942DA3BC179702C0B23BD6B6CC22402BB4F1B37F25180300903F + 9A2D996701C2E16F5B6CC4A1007077A8DDC199C19F6E953265F99B839EA37F00 + 40BE559B8C19CE5900E58EBD14870240D91DEBB6CC22A06AC2789938E7978331 + 0000F9A719A359933BFCDDE63DDF0B007727BA3B3633FCB5226B5CF48BC1903B + FF010005A24F0468D6649C05C8560458EED83BBE1700CADDA1766CC37FA00898 + B484A37F004061A5B3C60D7FDB67CB2AAFC5A100B0EC0EB53B7A20FC1B16AE93 + F2CAC5C1180080C2D1ACD1CCC92C02DC6CD2160B3E1700EE4EB43B559B0DFE81 + 0260D2A25F0A7A00000A2F9D396E01E01602B659EED82B3E1700CADD99B6E9F7 + 3C10FE5575755233E5678331000085A799A3D9935904840B00DBBCE57B01A0EC + 0E7477A8DDD9E53271FE5D5251362618030050789A399A3D6E16656694B2BDB7 + F49BF65178C7D99DEAEEEC74E5357EC14F053D0000C593CE9EF019006D36AF5C + E1B917F49BF595DD896E73777279FAF4FF8457076300008A47B3277D19203397 + B2679797F49B8D037747EAF76C8EFEE7B472FA1F0050749A3D9A41996701DCAC + F29EEF0580BB33F57BCD6C63A7BE2AE8010028BE7406DD9C4D99D9E52DFD467D + 13DE71EEDCDDC115326ED6C6A00700A0F8D21994EB1E006D2A3CF7867EB33ECB + B603D33BB97EFA5429AF981F8C0100283ECD20CD229B4B9959A56CEF259F0B00 + 77076AB33B38DDC6346C087A0000A293CEA2CC7C1AC82D657BEFE837EA33BB13 + C3AD5C6A27AF097A0000A293CE2237F4C3CD5BBE1500E19D65E7DADBCA2ADDC6 + CF6C0A7A0000A293CEA2CC7CCACC2E57781E29FD467DA33BC836E5CED33BB7AA + AA4ACAAB58FC0700102DCD22CD249B4F9999A5C2736FF85800B8EC4E73776AB9 + D4CD5914F4D5410300204AD5269332736A60EC2D5F0B0077A7D9F1C00EADAE59 + 92DA020040D42A6B17067FB5816F73355B8E79C5D70240D99D6977A8EDCBA572 + EC82A00700207AD5757A493A9D4F9999659B97F49BF49DBB13B595CBB8197383 + 1E0080E8A533291CFADABCE6530110DE69B9E75535140000003F9455CDD4BF3A + 4D0D358F9CAF6700DC1D667B6DE90AABAF5CDFBC040040F4AA2AA7057F1DC8A8 + 7453E1DE2BBE16002EBB33075A5515050000C00F655533F4AF599AD77C2E00B2 + EDCC32193B6D4AD00300E08F743665CF2D4FC5E10C80B23B50AFFFD799310000 + 7E4867D34056C5808F05805B31DD3C2EAB9D9E9E0200E08974360D9E5F9EF1FD + 1280E5E5CE030020249C57DE66575C6E02B4CAA4A28C4B000000BF9497D7047F + 8D45F05B71BA07C0ECCC8A89E91E00004F94954FB623D3BCE77B0110DE89B1D8 + A90080448A5566C5ED1200000071E07D76C5E51280B23B93820000E09BD86554 + 9C0A000000902714000000241005000000094401000040025100000090401400 + 0000241005000000094401000040025100000090401400000024100500000009 + 4401000040025100000090401400000024100500000009440100004002510000 + 0090401400000024100500000009440100004002510000009040140000002410 + 0500000009440100004002510000009040140000002410050000000944010000 + 40029599DE07FABD68D3A2445B45D0AA82566D5A6DAA352EBF4F66343D148C81 + FFB670D162A9AAD25F9778E9EBEF97E3478F486767A7D90220964EED7848CEEF + 7B2418E9FF99B5759BD613B4BEA0F59B76C3B4C8510020F6DEFC96DF918D9BEF + 34B3F8B9DED1219FFED4C7E55850080088A91816005C0240ECB56EDC6C46F134 + A6AE4EEE79CD6BCD0C008A830200B1575E1EFF5FE3354DCD5255A527BA00A038 + 2800000FD4D7D7CB8A55ABCD0C000A8F0200F044DC2F650088170A00C45A6DAD + DE1B5A1A56AF595B52FF3D00FC460180581B5B3FCE8CE2AFB2AA4A9A5B379A19 + 0014160500626DC2840966541A5A36DC6146005058140088B50913269A5169B8 + 7DF90A699834C9CC00A0702800106B134B302C5BB80C00A0082800106B53A74E + 33A3D2C1D300008A810200B136655AE91500B3E7CC951933669A190014060500 + 626DE6CCD966545A366CE22C0080C2A200406CE9CD72931B1BCDACB4B4DE4101 + 00A0B02800105BEB9B379851E9D1C266F1D2DBCC0C00F28F0200B1D554C20580 + E26640008544018058D2D3FF8B972C35B3D2B42E28702A2A2ACC0C00F28B0200 + B1B4765DB319952E5D2170D59A26330380FCA200402CAD6D5A6F46A56D5D4B69 + 5FE600101D0A00C44EFDB871B2F4F6656656DAD6AF6F6185400005410180D8D1 + 57E5969727E3575757085CB32E19673B001417050062A739612BE66DDA7C9719 + 0140FE500020569270F77F985EEE28B5550F01448F0200B1B2714BF28E86F572 + 474B6BB2CE7A00283C0A00C44A29BFFD6F301B782910803CA300406CE80A79BA + 525E12CD9BBF40A64E9B6E6600307A1400888DA4AF90B771CB9D660400A34701 + 80D86849D8DDFF6149FFEF07905F14008885F90B16CA94A9D3CC2C99F4BF7FE1 + A225660600A3430180586065BC349E0600902F140088055D190FE9A701582110 + 403E5000C07BCB56AC94890D0D66966CBA42E0B2E52BCD0C006E1D0500BC17F5 + 69EF277FF88419F921E94F4300C80F0A00784D4F77AF698A76EDFF1F7CEF3B72 + A9ADCDCCA2A74B21B3422080D1A20080D756AD694A9DF68E4A5757971C3B7A44 + F63EBFCB6C895E4D4D0D2B040218350A00786D5D4BB437FF1D397C28D5EFDDB3 + 3BD5FBE28E8D5BCC08006E0D0500BC5555559D3ADD1DA543AF1C48F55A00F4F7 + F7A7C63EB87DF90AA91F37CECC0060E42800E0AD752D2DA9D3DD513AF0F24BA9 + BEB3B33318EF4F8D7D905E2170A39901C0C85100C05B3EACFC7760FF40E8BFB0 + EF7933F24333AF0606300A1400F0929EDE5EB172B59945E3F8B1A3D2D171CDCC + FCBB0F60F192A5AC1008E0965100C04B6BD7354B655595994563FF8B2F9851DA + 914307E5CAE5CB66E687665E0D0CE016F9F44ED1B250D3E244BF3FDB2A53AD6E + CA0A1937E3EE608C12F68BFFFBF5D23865AA9945E33FBFFD2D397DEAA499A5CD + 99375F66CF9E6366D19B3C79B27CFFBBDF31336068FA0E89193367C99225B7C9 + F295AB64F59A26D9B8F9CE54D1BDE5AE7BE4CEBBEF914D5BEE9295ABD6C8B9B3 + 67BC2B7ABDD57EFA71E938B72F18F59AD6679ADE3D7CC369DED0A0F5851BFC36 + FCF510B0DA347DF349AD342EBF4F66343D148C51A21A264D924F3CFCD9D48D6E + 517AF7EFFD4EC62500D5BA69B3FCE66FBFCDCCFCF0C98F7C500E1F3A686640A6 + 858B16CB82A02D0E027FCEDCB9235A55B3BDBD5DFEF8BDEF4ADD048B219CDAF1 + 909CDFF74830D29DA5ADDBB49EA0D942C02D0622470100EFBCE6753F2DF7BDFE + D7CC2C1A7AFDFFA31F7CC0CC06E8BD099FFEDC17CDCC0FDFFFAFFF94AF7DE5CB + 66966C2B82A3D6091326985934CE0647CD07F6A79F1E89821EE1AF695A9FDA17 + ABD7AC95317575E6935BF3E79FFCA8BC1CE17F4F6C50008C0A050052DEFBC007 + 5337B845494FFF3FFAC83F9959A6073EF45199377F8199454F5F53FC407094D6 + D7A77FC624D7FA960DF2D6B7BFD3CCA2F5E2BEBDF2C5CF7FA6A847CEB7DDBE4C + 36DF758FAC6F6EC9EBFD337FF1A98FCB4BA1FB6190450C0B8068CFB102217A57 + 7BD4E1AF067BE46FEFF37E3D0DA02B252E0DFEF04FBA99B3669B51F4F4454DBF + FE1B6F31B3C2D19765DD73EFEBE4239F7C58FEF0FD7F2CAD1B37457EF32CE283 + 02005EF1E1AEF6DE9E9E8CE7FFC37C7B1C50B56E6485C00BE7CF9B911FF43D0D + 53A70DFF7AFB4868F0BFE6753F239F78F833F22BBFF64699367D86F904183E0A + 0078A5C58397DBEC7FE905E9E9D13377D9E9EB81AF777498991FD6356F488542 + 925D387FCE8CFCA147E7F9A4AB63EA1DFA1AFCF7BDFE0D323EE2FB1D106F1400 + F0C69CB9F3BC388DBB7BD74E33CA4EAFB5FB7619405F99BC36E12B049EF7EC0C + 80D2C22C5F96AD58297FF2E18FCB9B7EEBAD043FF2820200DE887AE53F6B38A7 + F87DBC0CD092F09702F9F8BCBADE9F3163C64C33BB35FA58EC6FBFEDF7E55DEF + F98057F73920FE2800E08DD63BA2BF8EAD2F3E397BE6B499E5E66301B06A4D53 + A25708D4CB36BE5D9A518B96DE66462377CF6B5E271FFEC4C3ACFB8082A00080 + 1716077F484E6E6C34B3E86CDFB6D58C0677F9F2253974F01533F383BE38C987 + 0594A2A42FAEF18DBE8867A4F4A8FFFE0FFCB1FCCA1BDE18F98A98285D1400F0 + 822FC1B57BD70E331ADA48BEB6583624FC6980B6B60B66E48FD973E69AD1F0E8 + FB0C3EF4D13F95A5B7F168270A8B020091D33B9B7D38C5A9D79047F206B73D3B + FD2B00F41D0A7AF498543E9E019835CCEBF6FAFF83D7FFDA9B522F331AEDDBFB + 80E1A00040E4F425363EDCD5BC67F7C802FDD8D12372D1C33BCF376EB9CB8C92 + A7CBC377D6EB8B79865AB679C28489A93760DE7DEF6BCD16A0F0280010395FEE + 5EDFFACCD366347C3B773C6746FEF0E15D0A51F175E5BAA9832CC0A38FBF3EF0 + A18FC882858BCC16A038280010297D794DF3868D66169DAEAEAE41DFFE978B8F + F701E8A3621A2A4934D80B9CA294EB0C973EDBAF47FE131B927BD906D1A10040 + A456AC5AEDC55DCE7A247F2BE1B1FFC517BCBCEEACCB16279116723ECAF684CB + FA965679E71FBE8FBBFC11190A0044CA97D3FF7BF7EC32A391D1B702EEF1F02C + 408B076755A2D07EF5AA19F9A5A65617331D70C7A62DF296DFFDBDD4A39B4054 + F8ED436474DDF2B54DD1BFBEB6BFBF5F766DBFF56BF93B47F1F7168ABE814E4F + 2FC30FF5F5032F686A0DC2FF377EFB77097F448EDF404466CDBAF55E2C5DAAA7 + F147B36EBBBE15D0C753CF497F35B04FEC19003DEDFFE6DF7A6B6A0C448D0200 + 91F1E534F568EFE4D77B077CBC0CA03757266D85401F5F05ACEAEBEB53676438 + ED0F9FF09B8848E83BEBF506401FECDCBECD8C6E9D8F4F03E8CD65BEECE362E9 + E8B866467ED1C700DFF68E7713FEF00ABF8D88C4DA75CD5EFC6178FCD85169BB + 78D1CC6E9DDE43D0DBD36366FED8B4E54E334294F4313FEEF6876F280010898D + 9BFD08A67CDDC0A7F710EC7FE90533F3C78A95ABA5AE6EAC9901C0000A00149D + BEAB5EDF59EF837C9CFEB79E1BE64A82C5A43759AE6B49F60A8100B2A30040D1 + F9B2F2DFA5B6B6D4FBFCF3259FC5443EB5267C854000D95100A0E87C59AC66E7 + 8EFC06B6BE84E6C0CB237F9D70A12DBDEDF6C4AC10E8EB9B00011F5100A0A874 + 55B491AE8F5E28857881CF2E0F170752AD1BB7985169BBEAE99B00011F5100A0 + A89A3D79398D1E29EA0B80F2CDC7B7022A5E0A04208C020045B5C997BBFF8323 + 757D8F7FBE9D3D735A4E9E386E66FED0B32EB366CF313300A0004011E912B553 + 065917BD986E75F19FE118ED9B050BC597B32F85A4EB3A00181E0A00148D2F4B + D4EA0B7B46B3F8CF507CBD0CB069B31F375F1652DBC50B660460281400281A5F + DEFDAF77EA8F66F19FA11C397430F588A16F7485C0C54B6F33330049470180A2 + D0E0D100F2C1D6679F36A3C2C9F72386F9C2AB8101581400280A9F5E4653C8EB + FF96AF9701D63435276E854000D95100A0E02A2A2A649D276FFFD3D3FFF958FC + 6728FA88617B7BBB99F94397A52DF51502791910303C140028B8A5B72F4B058F + 0FF63EBFDB8C0A4B1F31DCE5E96580527F35B0BE9111C0D028005070BEBCFA57 + 6D7BA6F0D7FFADDD3B779A915F56AF592BB5B5B566060C8E472B4B1705000A4A + AF37AF6D5A6F66D13A73EA54EA453DC5F2E2BEE7538F1CFA26B542A0279764E0 + B7D3A74FC9E14387CC0CA5A6CCF43ED0EF459B1625DA2A82561534BD63499B1E + B2D44AE3F2FB6446D343C11831B0BE6583BCF5EDEF34B3687DFB5B8FC963FFF2 + 889915C71FDCFF3E59BED2BF6BEE2FEEDB2B9F79F89366565A3EF1F067657263 + A399259BDE8772E6D449397FFE5CEAD154BD3CD2DE7E553A3A3AE47AC735F355 + 99B4681F3F61825C08FE9E83AFBC223D3DDDE6130CEAD48E87E4FC3EFD03469F + 31D6A63B4E9B1E05E86B47F5548AB61BA6458E020005F5F677BE5BD6787206E0 + 531F7B28F803ED809915C7ABEEB9577EF58DBF6166FED0D3BA0FBCF75D45B921 + B2D8925A009C3B7B2615D8470E1F0CDA213979FC7810F4D9431E0510C302804B + 002818BDCEBCC293A3DFEBC1118FFEA1586CBB77ED3023BF949797CB7A2E03C4 + DA85F3E7E5878F7F5FFEF6AFFF4ADEF7AEDF973F79FFFDF2A5BFF9827CEF3BFF + 2107F6BF44F8634814002818BDCEACD79B7DA077FF1762F19FA1E811761485C7 + 70F874732686E7F8B1A3F28D47FF9F7CE4C13F4A9DC1F9C7BFFF926C7DE629B9 + 7CF992F90A60F8280050307EBDFCA7388FFF65E3EBE240BA42E08C1933CD0CBE + D223FD7FFFE663F2E007DE231FFDE003F26FDFFCBA9C387ECC7C0ADC3A0A0014 + 44FDB871A9E7FF7D11650150C88587466B83270B342193DEA3B12B281C3FF717 + 0FA78EF4BFFEE823457D8205C9400180826869DD98BACEEC033D051FE529523D + 5AD31BB47CD47A0705804FF4B1D1EFFFD77FCA83EFBF5FBEF0B9CF14E5B5D548 + 2E0A001444F3067FD69E2FD6DBFF06B37DDB5633F28BDE2DCF0A81D1B3C1FFC0 + 7BDF2D5FFBCA97538FED0185460180BC6B983449162F596A66D1DBB333FA3BF1 + 7D7D1A40B5B4FA53AC254D38F8B9990FC5440180BCF3E9EEF22B972F17FDD9FF + 6CF4B12C7D118B8F9A376C4C2DD884E2D29B433FFCE007087E4486020079E7D3 + F3E57B76FB73E4BD7DDBB366E49724AC10E8132D4AFFEA2F3F2D5FFCDC67E4EC + 193FEF0D4132500020AFF4B1327DBCCC173E2DC8F39CA705806A6EDD68462824 + 5D8EFA631FFAE3E0F7D2DF4B42480E0A00E4954F8F95E9BAF0513EFE1776E895 + 03A977B3FB68FDFA1656082CB0FD2FBD289F7DF84F39DD0F6F500020AF5A3CBA + FB5F57E3F36921137D13E1B34F3D69667ED13736AE59E7C79A0DA56AFF8BFB58 + 58075EA10040DECC5FB050A64C9D6666D1F3F194BBCF9701366DE6D5C0409250 + 00206F7C7AF5AFBE496D8F47D7FF2D9F9F06D03737EA1B1C0124030500F24617 + FFF1C5FE175FF07635345F9F06D03737DEE1511107A0B028009017CB56AC9489 + 0D0D6616BDADCF3E6D46FEE16900003EA000405EF8F436393DFDBF73FB3633F3 + 8FCF9701162C5C2453A74D373300A58C0200A3A66F915BD3D46C66D1D3D3FFED + 57AF9A999FF678FC6A609FEEE5005038140018B5556B9A526F93F385CFA7FF2D + 9F2F03B46EDC6446004A190500466D5D8B3F37FFF97EFADFD2B314D73B3ACCCC + 2FFA28E7C2454BCC0C40A9A200C0A8545555CBDA267F5E20F3E2BEBDDE9FFE57 + FA52A0DDBBFD7B4CD1628540A0F451006054D6B5B4484D4D8D9945EFE9A77E6C + 46FEDBBB679719F967C3C6CDAC100894380A008C8A4F2BFFE9DAEABBB63F6766 + FED31715E9250B1FE93D1DFA622000A5ABCCF43ED0EF459B1625DAF4F0A32A68 + D5A6E94A25B5D2B8FC3E99D1F4503046C4F4AD719FFAF4E752EF91F7812EB3BA + F7797F16FF190E7D79924F67505CCF3CFD13F9D2FFF98299C5C7271EFEAC4C6E + 6C34337F7CEBB147E59B5F7FD4CC50724EED7848CEEF7B2418759AA60B3F68EB + 095A5FD0B4DAD776C3B4C85100E0966D79D53DF2EB6FFE2D3343A9D1D514EF7F + C7DB62B7800D05002211C302804B00B8653EADFC87FCD333137A8F0780D24401 + 805BD2306912D78813A06503AF06064A1505006E89DEFCA78BC7A0B4AD58B59A + 15028112C59FE0B8254D1EDDFD8FC2D122AF850582809244018011D3C562162F + 596A662875CDDCEB0194240A008C58336F894B142DF6582110283D14001831EE + FE4F1E8A3EA0F450006044E6CC9D273367CD363324C51D2C110C941C0A008C88 + 4F2BFFA178A64D9F912AFE00940E0A008C48EB1D1C0926D5A62D779911805240 + 0180615BBCF4362F5FB18AE2D0750B582110281D140018369F56FE43F14D6C68 + E0ED8F4009A100C0B0E8911FCF83A3959B01819241018061D123BFF113269819 + 924A2F035455E9E29C00E28E0200C3D2C273E008E80A81ABD7AE353300714601 + 8021E9115F33ABC2C1E03200501A280030245D114E8FFC00B562252B0402A580 + 020043E2F43F5C955555B2765DB39901882B0A000CAAB6B656D636AD3733206D + E3E63BCD08405C510060506BD6AD4F1DF1012E5D21B061D22433031047140018 + 540B37FF21878DBC1A1888350A00E4A4377AE90D8040362C0B0DC41B050072D2 + 1BBDCACBF9154176BA2C342B0402F1C59FEEC8891BBD309496562E1101714501 + 80ACF4062FBDD10B180C2F0502E28B020059B1F21F86435708BCEDF6E5660620 + 4E28009015777863B85A376D322300714201809B4C9D365D66CF996B66C0E0D6 + AD678540208E28007093665EFD8B11185357C7E3A2400C5100E0269BB8FB1F23 + B4690BBF3340DC500020833ED73D65EA34330386475708ACAB1B6B6600E28002 + 00195A37F15817464ED78B58D7C29323409C50002003EFFEC7ADE2D5C040BC94 + 99DE07FABD68D3A2445B45D074193ABDBD585B6DAA352EBF4F66343D148C9167 + 8B97DE26EFFDA307CDCC1FBB763C27C78E1E31B3641A533756EE7DED4F9999BF + 3E70FF3BA5EDE245338BC6271EFEAC4C6E6C34337F7CEBB147E59B5F7FD4CC50 + 724EED7848CEEF7B2418759AD66D5A4FD0FA82D66FDA0DD322470180FFF68637 + FDA6DC75F7ABCDCC1F0F7EE03D72F6CC69334BAE8F7DEAD3DEDF9FF12FFFFC55 + F9CEBFFF9B994583020091886101C02500A4545454C83A0FDFFE77FCD851C2DF + D8FAECD366E42F5E0D0CC40705005296DEBE4CEAEBEBCDCC1FCF6D7BD68CB07D + ABFFFB425F20356BF61C3303E0330A00A4F8FAEADF5DDB9F3323E87D10E7CE9E + 31337FF12229201E2800907A8DEBDAA6F566E60F0DBB13C78F9919D44F9EFC91 + 19F96BD366D69100E2800200B27AED5AA9A9A931337FC4E19A77B16D7BC6FF7D + A22B04EA132500FC4601006F6FDC8AC335EF62D31B22F5C648DF713320E03F0A + 8084ABADAD4DBDC6D53797DADA12FFEC7F2E71B831529F28D1274B00F88B0220 + E1F40F6A7D8DAB6FB673F77F4E4FFDF88766E42F7DA264D59A263303E0230A80 + 84F3F5542D8FFFE5A66FDA3BF0F27E33F3570B4F03005EA30048B0FA71E352CF + FFFBE6CAE5CB7260FF4B66866C76C4A040D2274BF41213003F510024584BEB46 + 292FF7EF5760CFEE1D66845CE2708624B542A0876F97049046019060CD9EAEDE + B635068FBA454D2F03EC7FE94533F3174F0300FEA20048A886499364F192A566 + E68FF6F676D9FFE20B6686C13CF3D49366E42FBDC4A4BF6B00FC43019050BEBE + FA77CFAE1DD2D7A70B6761283BB76F93FE7E5D5CCC5F7A89693D9701002F5100 + 2494AF7F28EFE4DDFFC3D67EF56A2CCE966CE03200E0250A80049A3163666AD5 + 36DF747575C9DE3DBBCD0CC31187D725CF9BBF40A64E9B6E66007C410190401B + 36F97944B673C773D2D3D36D66188E6DCF3C25BD3D3D66E6AF8D5BEE342300BE + A00048A0164FEFFEDFBB67971961B83A3B3B65EFF3FE9F35F1F5770E48320A80 + 8499BF60A14C993ACDCCFCA147B1ACFD7F6BE2F04E00FD9D638540C02F140009 + E3EB73D97A14AB47B318392D9CE27019805703037EA10048185FDFCCC6BBFF6F + 9D164ECF3DB7D5CCFCD5BC61232B04021EA1004890652B56CAC4860633F3873E + CBCEDDFFA3B37DABFF0594AE10B862957F4B4F034945019020BE9E82D567D9F5 + 9976DC3A2DA0F4314ADF35B76E34230051A30048083DF5BAA6A9D9CCFC128767 + D97DA78F4FEA6394BE638540C01F140009B16A4D53EA14AC8FF6EC64F5BF7C78 + F627FEAF0D505353236BD6AD37330051A2004888752D7EDEFC77E0E5FD72F9F2 + 2533C368BCB0EFF9D4624ABEBB63E316330210250A8004A8AAAA4E9D7AF5D10E + EEFECF1B5D4469D78E6D66E6AFDB97AF90FA71E3CC0C4054280012605D4B4BEA + D4AB8F78FC2FBFB63EE3FFFD14BA42E01D2C1004448E0220017C5DF9EFC8E143 + D276F1A299211FF4898A2B972F9B99BF781A00881E054089D353AD2B56FAF9EC + 751CEE5A8F1BBD0CB02D064F552C58B88815028188510094B8B5EB9AA5B2AACA + CCFCB22D06A7ABE3282E97559A79353010290A8012E7EB2A6C274F1C97B3674E + 9B19F2E9C0FE97E4525B9B99F96BD366960806A2440150C21A264D92A5B72F33 + 33BF70FABFB0B6C76485405D9D12403428004A98DEFCA7775CFB280EEFAE8FB3 + 9FFCF88766E4375F57A704928002A08435797AF7FFB9B367E4D8D123668642D0 + FDABFBD977CD1BEE60854020221400254AEFB05EBC64A999F965FB36FF97AE2D + 0571586361FC8409DE5EA6024A1D054089F2F90EEBDDBB78F77F31C4E532CBC6 + 2D7799118062A2002851BEDEFDAF77A7EB5DEA283CBD0C70FCD85133F397BEA6 + 5A5F570DA0B828004AD09CB9F364E6ACD966E69738DC9D5E4AE2F04E007D4DB5 + BEAE1A4071510094207DF98FAF38FD5F5C7179D992AFAFAB064A190540099ADC + D868467ED1A56AF55DF5281E7DD9521C2E032C58B8D88C46AFBFBFDF8CFC1287 + 351A902C140025E8C2F9F366E40FFD43F99FBFFA7F53EFAA47713DF6E823DE86 + A2D5D5D56546A3F7D4937EBE03E1E02BAF9811E08732D3FB40BF176D5A9468D3 + 8783F525F67A7790B6DA546B5C7E9FCC687A28182307BDA16ACB5D77CB9CB973 + A5DC8367AC3B3A3A64DB334F057F001E305B506C8B97DE96BA31B4A656FF6FE4 + 97F6AB5783D0FE919C387ECC6C19BDD64D9BE5B6DB9679F3FBBF67D70E7961EF + F3660B4AD2A91D0FC9F97D8F04A34ED3BA4DEB099A1EF96815AEED866991A300 + 000060B4625800700900008004A200000020812800000048200A000000128802 + 00008004A200000020812800000048200A00000012880200008004A200000020 + 812800000048200A00000012880200008004A200000020812800000048200A00 + 000012880200008004A200000020812800000048200A00000012880200008004 + A200000020812800000048200A00000012880200008004A20000002081280000 + 0048200A00000012880200008004A200000020812800000048200A0000001288 + 0200008004A200000020812800000048200A00000012880200008004A2000000 + 20812800000048200A00000012880200008004A200000020812800000048200A + 00000012880200008004A200000020812800000048A01816007D97CC0000004F + C42F9B625800F477980100009E885F36C5A900B8617A00007C159BAC8A430190 + B9337B3BCF9A1100007EB8399BBC2F047C2F00C23BF086F47471090000E09774 + 36DD9C591E8BCB2500DD89E91D79EDEC85540F00802F06B26920AF3C17B74B00 + E91DDBD77F2E3D05002062377A4EE95F4DB3BC2F027C2E006E0EFEB4A0EFE53E + 0000801F7AFB35939C8CFAEFB172C75EF1B10070775EB6F10DE9B97E2CB50500 + 80A8F575BA6700C299A5DCB137E2740F80ED6FC8D513C7D35300002296CE2437 + E4BD0BFB6C7CBF0490BDF5761E0E7A0000A2D773FD95E0AFD9F32ADDBC14979B + 00335BF7F503410F0040F47A3A0F057FBD39AB3CE76B0160779CDB6BEB4FF51D + C7F50C4077D000008852B7C9A4818C4A3715EEBDE2530160779ABBC3B2CF7B7B + 7BA4B7FB606A2B000051D12CD24C72332A6DA879E4E27809205D615D3BB52BE8 + 0100884E3A8B06B229B3792D2E3701DA1DAB7DBA755CD813F4000044279D4503 + D9949959B679C9F77B00941DBB3B342800CE6DD78D000044269D4599F99466B3 + 4BB9636FF87E09C0DDA1EE382800CE9F93FEDEA3C1180080E2D30CD22CB2B994 + 3DB3BCE5630160779ADD71EEDCEEE4746B3FF96CD00300507CE90CCACCA5CCCC + 52E1B9377C2B00C23BC8DD81E19DDC2FD7CE3C19F40000145F3A836ECEA6CCEC + 7285E7918ACB258070D31DDC27978E6E93BE1BD783310000C5A3D9A319A45934 + 10FAD99AB77C2E00EC8EB33BD1ADAED2ADB7B3533A2FFC28180300503C9A3D9A + 41D9B22933FC6DEF9D389C01B0BD6DEE4EEE93CB87BE17F40000144F3A7BECD1 + BF6D6E5629DB7B29CE3701A677FCE5A34F7119000050349A399A3D6E160D3437 + B35478EE8D38DD03E0EE60DBFAA4B7F3BA749EF96E300600A0F03473347B6E0E + 7FDBDCECF296EF0580E5EE4CDDB9BAD3075ADBC16F043D00008597CE9CCC1C8A + 51F05BBEDF04186E6E85355008B41DDA237D3DBA1C23000085A359A3999319FC + 6ECB965D5EF2B50008EF30BB13DD9D6C77BEB65EB9B0FF5F831E0080C249674D + 6FD0DC0C72B3295BE887E75E88C32500BBE3EC4ED5E6EEECF40FE0D2CBFF167C + D41E8C01002880206352593368F06B53B6F7569C6E02B42D33F86DEBBA76552E + 1D7A2C180300907F9A319A35E1FCC95E04D8E62DDFEF01B0DC9D69C3DF2D02F4 + 744CAF9C79E19F82BE3B680000E453B7C99874DE6486BFEDDDACB2DCB157E270 + 09C0B23BD5EE64B70048B7EE4B67E5CA51CE020000F24BB34533269C3B999964 + 732A16E2720F80DDA1766CC3DF2D02D255D9A93D5F0E7ACE020000F2A5DB64CB + 708EFE953BF6561CEE01B0EC0ED5A63B3B1CFEE9BEFBD219B97CF4D1600C00C0 + E869A668B6B85933903F368FDC8CB2DCB177E27209C0DDB1B6E52E02CEECFABB + E04B78220000304A4196A43265D8E16F9BF72A4CEFBB32D394DBDBA6858CEDCB + A5AFAB57CAAA7B646CE31DC11C00805B73F6A52FC8E5C35B83915E5AEE31BD16 + 01B6D942201CFCDE170171390360D91D6C5BB6B300E97661D7A3D2DF73341803 + 0030729A219A256EB60C7DF41F1B71BB04A0EC381CFE9905406F6FA79C78F6CF + 8331000023A719A259E2664B66E6848B00E58EBD16B73300CAEE5CDB72170197 + 0E6F93F6B3FF118C0100183ECD0ECD10375332B3C60D7EDB62254E0580BB83ED + D8565FB608B03F20BD4E93FE819D7CE62FA5AFEF5C30060060689A199A1D03C1 + AF99E2668C9B3DD9B22916E27213A0656FFA53769CAB697153267D5D3DD2DF7B + 5AC6CD7C4D3007006070A7777C4CAE9E782118B937FE0D1C58661601B10A7D57 + DC0A004B033E571F6EE572FDFC091933698AD48CBF2D98030090DD95E3DF9053 + CF7D2518D9E0B7E1EF1600B13FFA5771BC07C0B23B5B9BFD616855669BFD41A5 + 7F70A7B7FE95F4751E0EC60000DC4C3342B3E2E6C077B3251CFEDA6229AE6700 + 941EDDDBDE8E959DBBAD5CFA7AFAA4B3ED799938EBA7452A2B836D0000185D9D + 72F4C9F74847DBC960A2E13FD8D17F38FC635908C4FD1280B2E36CBD367B96A3 + 5CBADB2F4B79D505193BF54EB30D000091732FFE995C7CE5E960A4A1DF15341B + FCB6D933001AF49C0188980D7897BBCD8EB50D1401ED670EC99809F552337185 + D9060048B22B47FE594E6CFDC760E4867FF8E8DF9EFA77C3DF8A6511500A9700 + 2C77EE86BF72E765D27E6297D4CF5A21556366E987008084BADEB6558E3EFE49 + B971435FF8E39EF6D73E7C0F40F8C83F96C16FC5B90050E190CFD567B61BC1CF + ECDA89A764E2822D525E3931D80600489A9ECE57E4C877DF2B3DDDBA789C0D7F + 5B00D823FF5CA7FEADD81601712F002C1BF661EE765B00A832E9EBE995F6934F + CAD8B9774B6565BDD90E004882AECE3372F4BB7F209DED1782991BFCB60F1FF9 + 87C33F5C08C44E291400E1F077835E0D847EB8EFEDEA94EB67B7C9D859411150 + 35C66C070094B2AEEB6D72FC893F94EB6DC7825938FC35F875EC86BF0D7BB7C5 + 5E299E01C835760D14013DD7AFC8F533CFCAD8D914010050EA52E1FFF8BBA4E3 + E22BC12C1CFEDABB47FFF6C83F5C04A8D81701A55200280D756DFA43B1E3B0F0 + B6F49C2200004A5FF6F0778B000DFEF0A97F1BFA3AB6621FFEAAD40A00B77765 + 0B7E771B670200A094E50E7F7BD49FEBC8DF1601AA2482DF2AA50240650BFFE1 + 1A2802EAE7344B45E504B31D001067DD9DC7E4C413F707E17F486741D367FDC3 + 4540B6A37F1BFEB6A99229024AAD0050431DEDBB6EFE5A2D023A4EFE58EAA7AF + 968A9A29663B00208EBAAFBC20477FF03EE9683BA1B3A0B9E19FEBE8DF0D7DDB + 94ED4B42291600CA0DFD9B433ECDFE20C39F07BF065DD7E5EAF127A466EA02A9 + A99B63B60200E2A4E3CC8FE4C80F1F94AE8C47FDDCF0B77DAED3FE6EE09754F8 + AB522D002C0D77FDA1DD1CF269B98B007D4FC0A5034F48F5B87219D3B0C66C05 + 00C441DBA17F90234F7C26F8B3BC23980D15FED94EFB6BAF745C72E1AF4ABD00 + 50C32D02ACCCF99563BBA5B7F380D44C6E95CACA6AB31500E0A3AECE6B7266FB + 47E4CCAEC782D960C19FE8F057493803607BFD210EB708B0D2DBAF5F3C2ED74E + FD50C6CF5C2115D58DA96D0000BFF4B4BF28477EF05EB97A724F300B87BE1BFC + C30DFF9296943300B6CF5504D81FB4FBB98E077E017A3BDBA5EDC07F49D5D84A + A91DBB22D875B98A0900405175F7CBA5A35F0DC2FF13D2735DAFF7BBA1EF06BF + 8EEDDDFE1AF44385FF400694A02414006A38458015FE81EB3CBDEDC68D7EB972 + 6CA7745ED92E6367AE968A8AF1A9ED008068E8237EC79F7E50CEEDFDF7E0CF68 + 7B87BFED6DF0DBE63EEA67833F91E1AF925200A8E11601FA99FB83777F19D2AD + EBCA39697BE53FA46A4C39670300200AF6A8FF898F4B67C63BFD6DF0BB631BFE + E153FE890D7F95B4E0728B00551E341D6BEF362D8C2A4DAB1AB48D9BB6406634 + BF436A263605730040A1755DDA21A7B67D5EAE9E3918CC34D86DC8676BB98EFA + 131DFE2A8947AEB98A00B710D002C0365B04848B01775E295396DD235357BD45 + CAAB6604730040BEF5F79C92B37BFE56CEBDF08360E6067FB808B0731BFCE123 + 7F0DF94487BF4A6201A0C24540B800081702F66C40B66260605B45456D5004FC + 9C8C5BF8AB5233A621D80600182D7D8FFFD5835F09C2FF1BD2D7D7196C71033E + 5BE8DB160EFE7001A01219FE2AA9058065835FB94580EDDD22C02D046CF0BBE3 + 816D15D5753275655008CCFF650A0100B845A9E03FFC3539FB7C10FCDDFA421F + 1BECE1C0CF15FCE1A3FE6CE19FB8E0B76CF82559B800B0CD16003A768B00B710 + C80CFE70ABA8A891C6E5AF93494B7F412A6B1706DB000043E9ED3C2817F7FFAB + 9CDFF79DE0885FEFE877C3DDB670E86B73835F9B0D7D37F8DDD0B77D2269B861 + 603FD8DE06BF365B08D8162E02062B08063E6B58D4249317FDBC548C6F95EA1A + FD1A0080D5DDD5237D579E910BAF3C266DAFEC08B684C33D57D3A0B7BD361BF8 + E1E0D7B122FC0D0A8001E122C02D006CEF1601DABB211F2E04C2DBD2E3EA0993 + A461C16B64FCA2574B6DED92601B00245767E7CB72E595EF4BDBA1EF4AF7E58B + C11637D4C3211F9EBB7DB6E0B77D38F4131FFECA861DD2DCF0B7BDDBDC22C016 + 02E1E606BFEDC3DBD26DDCB439523FE76E9938AF552A6B6F0FB60140E9EBED7C + 512E1D7946DA8F3D2E57CFE833FC1AE0B6B9C19E2BEC6DD3B986BC8EB385BE6D + 2ADC279E0D3A64B2FBC5ED6D0110EE872A04061BDB562EB50D8D326E7A8B8C9B + BD46AA1B564B55D5D4603B00C45F4FCF59E96EDB2D578FEF92ABA7B74A67DBF9 + 60AB0DEE70A00F35769BFE33DCE00F87BF0AF7306CC0E16676DFB87DB8D902C0 + 2D04721504B6B90580FBB5EEDF5F2E75D36748DDF86532A67199D44D5B2A37CA + E7494DEDD8E03300F097AEC657D67F443ACEEC97EBE75F908E2B413B7D2AF8C4 + 06B40D6E37C4ED3857D0DBE6FEFD6E7343DF3615EEE1D010C3E0EC3E727BB769 + 60DBDEB670A0DB90B72DD736F7EFB16DE0DF51DB3859C64C5C20E53533A576EC + 34A99D3049AAEAA74979E578E92F1B2355371A45AAF56B0120FFF446BDB2F236 + 29BF715DFA7BAF484FFB19E9BC7C513AAF9D91FEAE9372FDD221E93CAF8BF168 + E0DA607683DA0D6F37D8EDF65CDBC27FAF36F7DFE13615EE9185860B8666F793 + BBBF6CD00E04F4C0D86D36D0C3211FDEEE7E9EAD85FF3DB629DB2B770C00F9E4 + 06AA1BB26E73C33957CB16EED982DE1DDB16FEF7D8A66CAFDC31B2202C46261C + B8DABB6337A0DDD0D6962DE0C3DBB27D8DFBCFB0FFEC7053B657EE1800F2215B + B86A9FADB9616DC7B685437DA8B9FD67B8FF6CED95DDA6C23D864050DC9A70E8 + 6A1F1E6B7343DB86F8705BF8EFC9F6CF54EE58B96300C827375CC3E1AB2D1CD4 + B685E7C369D9FE99DA5478ECF61826C2E2D6650B5DEDC363B7B9C16E7BDBDC79 + B6AF0D8F6D53EE18000A2D1CC06ECB16DE6E1F1EBB73B70F37151E5BEE18C344 + 688C9EBB0FDD40B6BD1D6B78877BFBB98EC373B71FAC5976EC6E03807CCA15BE + 83B56CC1AEE3F05C857BFBB9362BD718234458E44FB630563AB6733BCE36D796 + 2DF0ED36A563653F53E11E000ACD06AFDBDBB11BDE6EC8DB966D9BCA35B7728D + 718B088DC270F76B786CE7761C9E2BF7B36C4D857BE58E01A010B205B1DB0FD6 + 54B671B6CF54AE31F280C028AC5CE16CC7D9FAF0D765FB2CDC2B770C0085942D + 98DD3EDB58853FCBD6AB5C63E411A1513C8385B59D877B35DC6D001085C1027C + B06DEE672ADBD7A28008906884F77BAEF970BF0E00A23258902B3B1FEED7A148 + 0890E865FB190C671B3F3B00BE184E980F771B8A8410F14FAE9F093F2B007191 + 2BD8097C8FE8AB670100C827821E000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000203A22FF1F - 966E5DAFD3E224E10000000049454E44AE426082} + 00000000000000000000000000000000000000000000000000000080E888FC7F + 85E95DAA11B842F90000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512.png' @@ -852,11 +852,11 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000004000000040008060000007F1D2B 83000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 73A949444154785EEDFD0BB465D75918E8AE7AA954A5A755256CBDC10659328F - AA1206BB54926E2795424A8FA443C0309A1ED0816B06DC8CBEF4C01006B771BA - 496EC7A41D8786DB8C0C1A2EE691709B310821100231763C422C0B99604B2503 - B2243FF5B0655B25590FEB592AD5DDFFD97BFACC33CF5CFB71CE3EFBECBDD7F7 - 8D3199FF9C6B9F129C33D7E1FCFF9A6BAD060000000000000000000000000000 + 73A849444154785EEDFD0BB465D75918E8AE7AA95425EB6155095B6F63832C99 + 475509835D2A49B7934A21A547D22160184D0FE8C035036E465F7A600883DB38 + DD24B763D2C4A1E1362383868B7924DC660CE238100231763C422C0B99604B25 + 03B2243FF5B0655B25590FEB592AD5DDFFD97BFACC33CF5CFB71CE3EFBECBDD7 + F78D3199FF9C6B9F129C33D7E1FCFF9A6BAD0600000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -866,601 +866,258 @@ object AboutForm: TAboutForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000000000080CE - D831E881D970CE0100AC7576D0035B4C3202D3E59C0200982E05029812C90A6C - CC66CE1DE71D0040DF66927B850198904404469BF43C715E01004CC7A449BEA2 - 000C215181F5C63D2F367AFE38EF0000FA369AB08FFB750A02909188C078E7C1 - 24E7CAA8CF3AEF0000FA4625E89324F0E37C5641804E9388D045D34AF8DB3E33 - AD7F1F0060996D26619F56B2AF2040A74842E88A516B7D23C7877DCDA49F6FB3 - 91AF0100D84E1B49AA6B5F33ECDF99F4F361B3C761E1492E58669326E8B9F278 - DBE737FAB9D0F6590080653749025FCE6FF673C9B0E3A3BE161692048465336C - 4D4F72ACF6D97C6EB3C793DA1C00C032AB25D7A3E6367B3CD43E936CF4182C14 - C907CB60D83A1EF758ED73696E9263F978D8D785DAF1716CF4EB0000A66DA3C9 - 71FE75B57F63D8F1341EF675C38E85DAF164A3C760EE492458646DEB77DCF9B6 - F166E6DBE230EC586ED831008045326E325D7EAEED588ADB3E3FE97C528E9349 - E761AE493458346D6B769CF9F233693CCEFC34E6421E27E3CE01002C925A923C - 6AAE164F6B2E8C9A0FE5B164D279983B920C1645DB5A1D355F1EAFCD8F3337AA - 0FE37C26D4BEA666D831008079362C291E966CA7715B1F467DA6ECC3B873A16D - 3E99741EE686048379D6B63EC799AFC5C3E66A7D8A433E1ED58788CB71DE27A3 - C600008BAE2DC14ED2389F8FB81C8FEA531CF2F1A83E0C9B0B799C9B741EB695 - 648379D4B62E6BF3F95C2D2EE7DAC6B5BE2D2EFB61C7F23ED4E69272AEF61900 - 80455026C0B58438CDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2A43617DA - E6615B483098276DEB7158B25C1E8B713E376C3CCDB8ECDB8E35CDE547AE6ACE - 3970D54ABCF7FCA32BFD8E1D1736BBF6BEE12BFF3F62E7D95EBCE7C2FE000060 - D19C7EBA7965C7BDFDB8F767D09917EF6DCE9E7D7A65F8E297EF5CE95F7AFCE1 - E673773FBC12F7A56439EF6B73A99F761C468D431A97F3A13617DAE661A65693 - 12D83EB575386AAE160FEBC78D6B73213F56CE85B5F1E547AE5C49F223C15F49 - EECF794373E6EC95CD9E3D570E3E030040387DFA9166D78E479A332FF58B0451 - 20E817071EE91DCD93ED61716D2EE4C7CAB9302C1ED687B63819770E6626252C - B01D6AEB6FD85C792CC6F95C3E1E154F6FEEABFFC6D166EF796F6876ECFEFA66 - D7EE2B9B9DBBDF3C380600C066BCF2F2879A332F3FD29C7DF9AF9A179FBDB7F9 - CC7F8CDD0329898E3E6F611A73A12D0EE538E49F2D8D3B075B2E2531304BB575 - 376C2E3F56CE45DF36571BA7B99D83BE3C965A583F7FF9E1AB9AF3AF7C73B373 - CFD737BBF7BEB9D9B1EB0DBD79000066E5EC997B9B975FFC50F3CAE9BF6ABEFC - C8879ACF9D8CDB0822A12E5BA8CD470BAF0CFADAB1DA38F5B5B9A436978C3B07 - 5B26253A300BB5F5366C2E3F56CE453F2C2E5B1895F4AF6F91F09F77C5D166F7 - FE6F6BCEEE78832DFC000073266E21D871F6DEE6E5E7DEDB3CFBD93B871404DA - 5A682B06A41686C5791F6A73C9B873307591E4C02C946BADB6F6D25C7E2CE2DA - 38CD95E37193FCF4B9BCDFD1BCEAB5173597BCFE68B3A797F037BBDE2CE10700 - 5830511068CE7CA839FDDC7B9B27EEBFB3F9D2A79EEACD46829D92FCBC8FF961 - 2DD48A03A11C87DA38EF73E55CED3330559108C156AAADB1722E8DF3F988CBF9 - 34571B8FD3D626FBA9C555FE0BAEB9B5D979CE9B9BDDE7F4127F000096C6CB2F - BDB779E5A50F35CF3CF8C795DD01931403CA166AE3D4A73894C793721C6A7330 - 159100C156A8ADAD722E8DF3F988F3F95A9C12F93497DADAC47E6DAB24FD57DF - D6ECD9FF9DEEE30700E888787EC0E9E7FE4DF3CC43EF692906E4E3BCD58E8572 - 7740688B433E9F2BC7A136079B12C9104C536D4D9573699CCF479CCF97713E37 - 7EA29FCFC5F6FE83D7DDD6ECBDF00724FD00001D17C580179FFEB5E6D47DEF29 - 6E13883E6FA30A03A19C0F6D71C8E773E538D4E660432239826929D7536D7DA5 - A43CC9C7B578542B13FEF5E3D7FDCD5B9BBD177C57B36BCF89DE180000D63A73 - FA7DCD8BCFFCEBE693FFE18F7BA332E11F351ED6425B1CCA7152CED53E03138B - 040936ABB68ECAB934AEF5A9857CDCD68625FDFDF8B243573717BDF6FFDE347B - BECD83FC000018CBCA03044FBFB779EA53BFDA3C7ACF43BD9948BCF3847FA3C5 - 80501BD7FAA41C87DA1C8C2D1226D88C720DB58D87F5E3B4F5497E2D7EDDB7DD - D6ECBDF82DAEF60300B0292BBB029EFC9DE693EF7D4F6FD4560418561C18D6C2 - A83E193586B145D2041B515B3BE55C4ACC937C9CE251AD96ECAFED2FFE9A8B9B - 577FE377353BCEFD0157FB010098AAD81570F6855F6BBEF017FFBA79F2D34FF6 - 6622014FC97ED997F1A816F23894E3508E436D0E868A240A2655AE9BB671DE97 - 713E9727F9A98D4AFC7736971DBAAAB9E8B5DFD54BFA7FA069F65CD89B030080 - 2D72FAE9E6F4E95F6B3E7FF2DDCD939F8E870646A23F692120E642391FCA38EF - 935163182A922918576DBDE47329AEF5A9857C1CAD96ECE7F1FAC4FFE2AF7B5B - B37BEF77F6C60000305B2FBFF86F9A273FFE73CDA3F7C4AB0423A92F0B0079F2 - DF16A7166AE35A1FF238A9CDC13A9154C138CAB5D236CEFB326E6BB544BFEC7B - 89FF375DDD5C7CED8F4AFC0100980B2B8580077EBE79F4A3F1C0C048EECB0240 - 5B3FAC8532CEFB64D418D689E40A4629D7493E4E71AD1FD552829F62893F0000 - 8B67BC42409EFCE7F1B016DAFA90C7A11CC31A9164419B727DB48DF3BE8C53CB - 93FD7C5C4FFAA3C5C3FD5E73E4479B3DFB7EA037060080F976FAF95F6B3E7FF7 - CF0F1E169892FE94ECB7F5A995E368A18CF33E193586159170414DB9366AE334 - 97F76D2D25F879BC3EE98FF14AE27FF8AD1EEE0700C0E259F3B0C0FCAD01A9A5 - 71DE9771AD85BC4F71326A0C2BC91794CA75918F539CF7659C5A4AF06BF16AC2 - 9F8FBFEEBFFEAE66CF453FDAECDA79456F0C00008BE9CC2B9F6D4E3FF5F3CDC7 - FFE85FF74629F9CF13FF7C9CE66A716AA18C43EA431E87724CC745F205496D3D - E47329CEFB612D25F8292E13FED5F88A1BBFA1B9F88AFFA5D979CE9B7A630000 - 580EAFBCF467CD939FFD7F379FFDD3BF8CD1A04562DE16A7718ADB5A28FB90C7 - 496D8E0E8A040C42B9166AE334578B534B897D1EAF4DF6F3E63E7F0000BAA0FD - F900A945925EF6659C5A688B9351633A28923228D7413E4E71DEE72DA4043F5A - 19A7568E7736AFFBB65B9BFD17BFCB7DFE000074C3E9A79BE79EFC89E693EFFD - E3DE2025FEA945825E8ED35C1E87344E2D947DC8E3508EE99848CAE8B6720DE4 - E314E77D5BCB93FCB25FDBE2B57E97BCFE9FDBEE0F004027C56D014FDCFF0F8A - D706E62D12F5B6BEAD85B20F791CCA311DB26BD0D34D91A0E7F271C4794B097D - 6DBE6CB1AE529FB7DDCDB57FFB079B0B2FFB3F9A1DE7BCAE37060080EED9B1EB - CA66FF256F692E7EEDCBCDE30FDC9366B316521F6A73B9DA679351633AC40FBF - BB46FD924873791C497DEAD37C8AA32FE3D576D9375ED35C72DDBB5CF5070080 - CCCA6E80FB7EA279F42F1E8C51A5C515FB328E3EC521F5693EE471928FCB6374 - 405C95A55B52E29E94717E3C1FE7C97DEA538B7594C779DBDD7CDD7FFDDDCD85 - 57FC9FAEFA030040A1BF1BE03B9B8BAE79A279E2E3F7A5D9AC25B5B8EC73B563 - 655CFB3A96981F78B7943FEFF21740D9D75A24F9655F6FF184FFCBBFE59F37BB - F69CE88D01008061CE9C7E5FF3B93FFF0743DE14905A5CBD2FFB5A0B651FF238 - 9463965424707443F9B3CEC7298E3EB590E248E8CB3825FA29CE7701EC6CAEF9 - 6B3736E7BDE65DCDAE9D57F4C60000C0584E3FDD3CFDD8FFA379F03FFD696F90 - 27FD67067D24EB692EC5D1977148713E4EF23894639650246D2CBF48D273F938 - E2B2853CB94FF3AB09FE6ACBB7FBF7DB757FE7C79AFD07FE59B37387D7FB0100 - C04476ED6DF65EF09DCD25AFDDD99CBAFFCF7A13F9DFE8A94FDAC6D147429F1F - 1FF76B59627EC8CB6FD8891D711AA7B8D622D14F7D7BBBF8AB5FD55CF12DBFE4 - 417F00003005F180C0CFFEF90F374F7EE64B311AD122E14F7D5B0B791CF23894 - 63964824752CAFF2E79B8F234EE314972D12FBB22F5B5CF5DFD95C7DF41B9A8B - AEFABF9A668FABFE00003035A79F6E9E7AF8BF6B1EBAF32F7B8348F0D3AD0065 - 8BC4BDEC6B2DE471C8E3508E591291BCB19C2261CFE5E388D338C5658BE43EF5 - 29D12FDBEE953E9EF27FFEE5BFD60BF7F6C60000C0D4F4FEC63EF755FF5D73D1 - 559F6B9EF8F8C77A13F1377AC8FF764F7349392E8DFAFCA8AF67414512C7F219 - 7602479CC6292E5B4AFA6B6D6D11E0FAB7FC6C73CEF9FF632F060000B6CAEE7D - 279A03AFBFBA3975EF7F1CCCA4BFDD6BDAE673E567468D59027EA8CB67D8891B - 711AA7386F91E0A73E8F23D94F73FDF1C55F7D7173E59B7FABD9B1EBFADE1800 - 009885B3673ED63CF2A1EF699EFC4CBC2AB0BC1D609C3705E42DE471C8E3508E - 596076002C9748D873F938E2344E716A29B1CFE37EA2BF36F9EF8FE37EFF03DF - F85BCDCE5DAFED8D01008059D9B1F3D2E6FC2BFF76B3EF82FFD23CF5C8A998E9 - 1F5891FEBE2FB5CD87727ED49805A600B03C869DA811A7718A538BC43E8F6B2D - 1502FAC97F3CEC6FE7EE4B7B63000060D6E275DBE79EFFB79A732FBC7D500408 - F1F7FC286D9F29E7478D59500A00CB61D8091A711AA738B548EE53DFD65693FF - AFFD9B1EF60700007361F070C00BAF7CB479E213F9C301DBA4E36D9F2BE7478D - 59400A008B6FD88919711AA738B548EECB3E6FAB897F8C23F9DF77C93B7B3100 - 00302FF6EC3B312802DCDB1BC5DFF521F5A5718F27A3C62C180580C536EC848C - 388D539C5A9EF4A73E6F79F2DF7FD2FFDE0B3CE91F0000E6511401D6BF21A04D - 3AD6F699727ED49805A200B0B8869D8811A7718A53CB93FED4D712FFFEF8FAB7 - FCF366F7DEEFE8C50000C0BCDAB9FBFAE6C0EBAFAA1401529F1B762C94F3A3C6 - 2C080580C5959F74659CC6294E2D4FFA539FDA6AD29F7AC93F00002C8ED91601 - 58400A008B293FF9CA388D539C5A24F5659F9AE41F000096C1EC8A006D5FC31C - 5300583C6D275DC4699CE2D422A92FFBD4F2E43FDA6EC93F00002CB0D522C0FB - 073349E402A534573B16CAF97CDCF635CC290580C5D276B2459CC6294E2D4FFA - 539F5A99FCC795FF7749FE010060C1ADDF0990444E504A73B563A19CCFC76D5F - C31C5200581C6D2759C4699CE2D4F2A43FF5A949FE010060992902505000580C - 6D275BDED75A2DF14F497FEA25FF0000B0AC262B028CA3EDEB36FAEF31430A00 - 8B213F99529CF7B516097EEAF326F90700802E99BC08D0369FA4E3A33EC79C51 - 00987FF94955C6790B91D8A7719EF4E72D25FE11EF6EAEFDF61F6DCED9F7FDBD - 18000058565104B8F8753B9BC7EFFB2FBDD1D95E4B39C438867D3E9F9FE4DF64 - 1B2800CCB7B69329E2348E443EF5693E25FB65CB93FF5DCDD7FECDEF6ACEBDE8 - EDBD1800005876BBCF795373E1959F6B9EF8C4C70633798E314C7C2E15016AC5 - 807C3CEEBFC9365000985F6D2751C4699CE248E8F3B8D6D627FFFB2E79672F06 - 0000BA62CFBE139B2C0224E5D7E5E371FF4D664C01603EB59D4CD197716A29D1 - CFE394F0A7B8DF2E7FF3373417BEE6FFD39BDEDB1B0300005DB2E79C3737BBCF - FF60F3CC23A70633A55AA29FCF25E958CDB0636C130580F9949F2C29CEFBB295 - 897F9EF4A7BEDF5EF30D573707AFFD9D5E78416F0C000074CECEBDCDFE8BFE56 - 2F53F8A3E6CB5F7C6630394AE41B6DD2B1619F610E2800CC9FFCA429E35A8B04 - 3FF5655B5B00B8E89A5735977DF3AF363B765DD11B0300009D1545804BDFD4BC - F8CC1F352F3EF5E2607294C83B46C93F33CEE799A1480E991F6D274BC4699CF7 - 6D6D7DF21FED8A6FF967BDE4FFFA5E0C0000745DE4069123E439C3DA5CA2966B - A416F23EC5A12D669BC50F96F9513B51A22FE3FC648CB86CF9C9BB7BA5BFF6EF - BCADD9B3FFBFEDC50000007D3B77BFB6B9F8B53B9BC7EFFFB3DE28F28BDABDFE - 35E56763CC9C5300981FF90993E2BC2F5B99F4E72D1500FAED6B8EDFDAECBFE4 - 1FF762000080B5769FF3ADCD795F757FF3E4A73F359819475BA1207295BC0F79 - CC365200980F6D2747C4B516497EEAF3A43F4FFE23DEDD5CF5A66F682EBCE217 - 7B434FFC070000EACED9774BB3F7BC0F364F7F36DE0C10C97DE41BB932E12F8F - D7E49F19E7F36C310580F9904E86F20449E348E6531F73D197AD2C00EC6A2EBA - FA55CD816FF8C566E76E0FFD03000086D8B9B7D97DC191E6F4440F054C52C1A0 - 563828C76C230580ED979F10298EBE8C23B9CFE3BCA5A43F8F7737AFFD1BFF6B - B37BEFCDBD18000060B89DBB0E36E7BDFAAB9A531F7B7F6F54DBE25F9B0B91A3 - E4C7625CD336CF8C28006CAFFC0428E35A2B13FFD452D2BFDABEF6B6B7347B2F - FC915E0C0000309E9DBBAF6F2EBCE273CD139FB86F30338EB6C24012B94C92C7 - CC9802C0F64A8BBF3C21D23892FB344E7199F8A77EB55DF6ADDFD85C74D9CFF5 - 0EB9EF1F000098CC9EBD6F6A76EDBFA3F9F2671F1BCC94CA843FE52F491C2FE7 - CA31DB209247B647ED0488B9349FF765CB8B0079EB17002EFEEAFFADD75DD08B - 01000026D4CB2556728AAF5C64ACE51ED16AB94AC8FB14E76A73CC40FC3099BD - 7CC19771ADD54EB6FC648C77FDF7C7AFFFF6FFB9D973EEF15E0C0000B031F13C - 8057BDEEA2E6F1FB6E1FCC84FCCA7F6DDBBF5B01E69C02C0F6A82DFCE8531C49 - 7D1AA7384FFC53BF36BEFAFF76B439EFA0F7FD0300009BB7EB9C43CDB997FC79 - F3D4839F1DCC8C4AFA533E93C4B1728E6D14C923B3959F00296E9B2B5BFCBC52 - 9F5ABF0870E155AF6ACEBF3CB6E90000004C47E418916BE4B9C76ACB7394B285 - D4876173CC48FCB0D81EE5628F71DE428ACB136C7DBBEC9B7FA4D9B5D3FBFE01 - 0080E9891C23728D5A0ED26F65BE122DA4389F4BCA313312151C66275FE829CE - 4F88FCA4294FA6B5DBFD57DBEEC1D6FF7FD48B010000A6AB7F2BC08707B702B4 - DDE7BFD15B01DAE6D9029150321BF9C2AE2DF234177D1997C580D576E1551737 - E75FFE4F7B310000C0D6889C23728F5A4EB236678916CAB894CFD58EB305E287 - C4F6492745DE42F4B513AA6CBB6CFD070000B6DCEAAD00696772D96A394C88BE - 6C6C93F8C1B0F5F2459EE2DAE24F7379CB4FA2BCF592FF6FFDFAE69CF3FEFB5E - 0C0000B0B522F7881CA4BD0810AD96D3E4F2B9FC58F939B640FC80989DDAA24E - 27C0B0964EA4FCC4DAD95CFCD5B6FE030000B373D1D53FD5FB9F6BF392B539CB - A856AACDB145A272C3D6CA17748AF3C59FE2F2E429AB6A315E6D5FFBB77EA0D9 - BBFFEFF662000080D9D8B5FB8AE6C26BBEDC3CF1C0C9C14C8887FCA596E471C8 - C729172AB5CD33259158321BB5C51C73790BF9382F00ACB60BAF7C55B3EFFCFF - 672F06000098ADC8452227A9E52AFD96E734211FA7B95C6D8E2D103F1CB64EDB - E24EF3294EAD76D2E473FD76D91B7BC9FFAE0B7A310000C08CF57291959CA492 - AB0CCF6D520B799CABCD3125F1C360EB0D5BD869E1972D3F6156DB575D7FB507 - FF010000DB2A7292C84D6A394BBFD5729C6821F5B9DA1C53163F18B646DBA2CE - 177D19A7969F3429EEB74BBEDE83FF000080EDD7CF4DD6E62BEBF399BC85B638 - 579B630AE287C2D61AB6A0D382CF5B7EA2A413A7DFAEBAE5CDCD9EBDDFD28B01 - 0000B657E42691A394794B3DB7C95B487DAE36C714C50F84E96B5BCCF9622FE3 - BC95274F3F3EFF35FF53AF070000980FFD1C657DEEB23A2E5B688B73B5393629 - 7E286C9D610B392DF4BC9527C9EAC9F3BA5BBFB3D9BDE7BA5E0C0000301F2247 - 895C25CF5DD6E734F938B590FA5C6D8E29891F06D3D5B688F3455EC6D1D28991 - 4E9AB56DDF255EFB070000CC9F7EAE52CF63D6E63AA985B638579B6313E207C1 - D618B680D3024F2D3F31D6B7D7DDFA1DCD8E9D97F762000080F912B94AE42CB5 - 5CA6DFF29C276F21F5B9DA1C53103F04A6A76DF1E68BBB8CDBDAEA09E3EA3F00 - 0030CFD6EF02A8E538790B6D71AE36C706C50F86E91BB670D3C24E2D9D1CF9C9 - B2DA5CFD070000E69D5D000B217E004C47DBA2CD177519B7B5D593C4D57F0000 - 6011F47397B5F9CCF016DAE25C6D8E0D500098BE610B362DE8D4D249914E90B5 - CDD57F00006051D80530F7E29BCFE6B52DD67C3197715B5B3D415CFD07000016 - 896701CCB5F881B0B5CA855CB6FCE4586D57DDFC2657FF0100808512394CE432 - B51CA7DF6A3951B4907AB648FC00989E7CE10E8BDBDAEA8971DEABFF875E0F00 - 00B058FAB9CC6A6E53CF7DF21686C54C49FC30D89C610B323F9616716AE944C8 - 4F8C7EBBF25BAE6FF6ECFD965E0C0000B0582297899CA696EBACCD85F296E471 - 69D831C610DF78A663D442ADB57CE1AFC6E75FF5F77A3D0000C062EAE734C3F3 - 9EF5ADCDB0634C400160736A0B315FC0790B292E177D1AEF6C2EBCF2A266CFBE - BFD38B0100001653E43491DBE4B94E3D078A16F263792BD5E618537CD3D95A69 - E1B62DF8BCDFD9BCFA50BC3603000060B1F5739B7E9E53CF8152CBC76CA1F846 - B37969A1E68BB6B680D35C6AF909D06F7B2FFCBE5E0F0000B0D8FAB9CD6AAEB3 - 3607CA5B2E9F2B633629BEF96CCCB005582ED8B6969F083B9AAB6EFE56AFFE03 - 00009642FF9580DF1AD1A0ADCD7FDA5B487DCDB0630CA100B079B5C5572EDCDA - 385FF8FD13E1BC4BFF6EAF070000580EFD1CA74CFCF338A4B81C976A734C20BE - F14C475AA4F9A2CCE7A2A5855E2EFE9DCD055778F81F0000B05C22C7895C27E5 - 3DC373A3D492DA1C9B10DF6C2637CE02CC176BDECA45DF6F5FF5F57FA3D70300 - 002C977EAEB39AFBD473A3B28D32CE6728C4379C8D4B8B2E5FA4799CA4B9BCAD - 5DEC7B5FE5E17F0000C0F2E9E73AEDB9D06ACBE57365CC0629004C57B940DB5A - 5AF0D1EF6C2EFDFAAB9A5DBB5FDF8B010000964BE43A91F3A4FC676D4E34AC85 - D43305F14D6732E32EC0DAC2ADB78BAFFEEBBD1E00006039F5739E7A3ED46FA1 - 1C8F32EEE7185000D8B87291863C4ED25CD952F56B67B3E7C26FEFF5000000CB - A99FF3ACE640F51C295A2E9F2B633620BEF14C47B930DBDADA057FE9D75F69FB - 3F0000B0D4FAB7015CD98BEA79517B0BA9679314002633EEC2AB2DD868F902EF - 2FF88BAF39DEEB010000965B3FF72913FF3C0E294EE351C6FD1C3DF1CD6672E5 - E20C799CC4382DE87C61AFB63D1778F73F0000B0FCFAB9CFFA9C687DCE944B9F - 0965CC841400A6A35C90790B791FDFF3FEC2BEE43ADBFF0100806E88DC2772A0 - 322FEACBFBB285D4B3090A00E31B77C1D5166AB4B4B857C7075E6BFB3F0000D0 - 1DFD1C687D6EB41A87FCD838C6FD5CE729004CAEB6B86A8B33CDB5B7DDFBBFA5 - D703000074433F07AAE7476B5BAE36176A730CA100B0716911E68B2E9FABB5B5 - 95AEDD7BFF5AAF070000E8867E0ED49E23D55B529B63020A00D3932FC6B420DB - E7BEFABFB2FD1F0000E89E7E2EB43E471A3DC72629008C67230BAE5CB0D1E2FB - DD6F7B2EFAD65E0F0000D02DFD5C683537AAE74E93DAC8D7744E7CB3195F5A54 - F9A24C716DDCDEF69CFBC65E0F0000D02DFD5CA89E27AD6FA16D1C52CF181400 - 36A75C74B57E7DBBE0F20BBDFE0F0000E8A4C8852227AAE54AFD1646F56C8002 - C0F4C4424C2DE4FDDA76E03ADBFF010080EEEAE744EB73A5BEBCCFE7D9240580 - D1862DB6B6C598E6EB6DCF055EFF07000074573F27AAE74BABADD4369F0C3B46 - 8F02C0F8D262AA2DBA34374EDBE9FE7F0000A0D3FA3951E4A3B59CA9ADE5F2B9 - F2182D140036AEB6D8D222CC5B583B76FF3F0000D065AB39D1DA5C69ED389F0F - 29CEE7988002C074940B3389B9BCAAB5B3B9F298FBFF010000FAB9D1DA7CA9DF - 97D27136490160FAD2E2CC17E96ABCFF12F7FF030000ACE646B5DC299F634A14 - 00861BB6E0CA0599C6C3DACE66D75EDBFF010000FAB951BE0360584BCA7169D8 - B1CE5300184F5A44B5C596CFD53E97E2FE78D71E0500000080D5DC686DCEB43E - 4E7D8A93DAE718420160636A8BAC9C8B7E6D3BFFB28B9A1D3B2FEFC5000000DD - 16B951E44865DED46FA1EC436D8E3129006C5E2CBC7C11B68D773417BFD6D57F - 000080A49F23ADCD9BFADAC66C8202C0C6958BAFB638D7B6BD175ED7EB010000 - 08FD1CA99E3FF5E571528E19930240BB618BAA5C8CF9676BC7FA6DCF3E3B0000 - 0000929DE7C42DD2EB73A7BED48761C74AC38E759A02C068F9021B6791B57D6E - 47B373F71583180000803D7BD30E80529E57D58E27E37E8E1E0580C9D5165739 - 17FDFAB673E7B5BD1E000080D0CF91EAF9535FD987DA1C635000D89C5870F9E2 - 6B1BC71B002E6876ECBA200E000000D0133952E44A65FED4D73666831400A6AF - BE482F7EAD070002000094FAB9D2FA1C6A75CC9428006C4CB910CB05BABEDFB5 - FBC2410C000040D2CF95DA73A9D5962BC78C4101A06ED8624AC7D2226CFBECDA - E37B2FF40600000080D26AAEB436875AAF3CDEF6B930EC586729000C972FAC71 - 1657FA5CFED9FE78E7EE78BD050000006BE5CF0048D238CDE5C74AE37EAEF314 - 0026535B54E55CDEAFC60A00000000EBED3E377600D4F3A87A1F6A738CA000B0 - 71B1D0DA165B3AB6FA991DAF780300000040BBF579D47AC38E318202C0748C5E - A43BCF8DF75B02000090DB75CE37F7FE677B2E353CD762020A00D3952FCEBC01 - 0000305C2D978AC69428004CAE5C80E5C25C7FFCE0D75D318801000028F573A6 - 5AAE95FAD472E59811140036A76DC1AD5DA0E75EEA01800000006D5673A6B5B9 - D47A6DF38C410160BD610B2A1D6B5B90F5AF3D3BF4DF040000E8B6F69CA92DEF - 4AF3C372AD61C73A490160F3862DBC98DBD1ECDE737E7F080000C03AFD9CA99F - 3FAD372CE762020A00A3B52DC25C7E3C7D3ECDED68F65E70DD20060000A0D4CF - 995673A8B53955C8E39AF2F3542800B42B174F6D318DFA8C0508000030BE8DE4 - 58F2B03129004C2E2DA6B64515F3A901000030995139559A97734D48016063CA - 85366C71020000B071B57C4BFEB5010A009B376AE15998000000A3C9ADB69802 - C0D6EA2FD05DE7BC7EA5070000A062CFE5834092BF851400A62B5FACABF18E5D - 5E03080000D066F7EECB0651A8E7556C9A02C0F4A48519BD050B00003099328F - 4A6339D5942800000000400728006C4E5E95AA51A902000018DFA8FC4A8EB509 - 0A00000000D0010A009369AB36A5F9FCB8CA140000C0E46A79555B7E25EF9A80 - 02C0F4C5022C16E1598B120000A0D5BA9CA99257B1590A00000000D0010A0000 - 0000D0010A00000000D0010A00000000D0010A001B37EE03293CB80200006034 - 39D6165300000000800E5000000000800E5000000000800E5000000000800E50 - 00000000800E5000000000800E5000000000800E5000000000800E5000000000 - 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 - 000000800E5000000000800E5000000000800E5000000000800E500000000080 - 0E5000000000800E5000000000800E5000000000800E5000000000800E500000 - 0000800E5000000000800E5000000000800E5000000000800E5000000000800E - 5000000000800E5000000000800E5000000000800E5000000000800E50000000 - 00800E5000000000800E5000000000800E5000000000800E5000000000800E50 - 00000000800E5000000000800E5000000000800E5000000000800E5000000000 - 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 - 000000800E5000000000800E5000000000800E5000000000800E500000000080 - 0E5000000000800E5000000000800E5000000000800ED831E85995BE27799F5A - 144C52BF2BEB53DB5D697B9A37BCE5579A5D7B6FE8C500AD8EDE744B73F0E0C1 - C1885978EEB9E79A07EEFB58F3F0430F0E6600806D71E6C5BB9A7B7FE7077BD1 - E95E7BB9D2CE64ED95AC3F3B18479F5A287B7A5292CBAAF43DC9FBD4140080A9 - DBBF7F7FF3633FF9F6E6AAABAF19CC306B5104F8C55FF8B995820000B00D1400 - 6622125800B6D1777FCFF749FEB7D9B5D75DDFFCBDB7FEF0600400B09C140000 - B6D9A11BBE7910B19D0EF77E0EB11B030060592900006C3349E7FC3874C31B07 - 1100C0F25100008081C347ECC6000096970200000CC46D00070E5E3A1801002C - 17050000C844110000601929000040E6E8B19B071100C072510000804CBC92D1 - 6D0000C03252000080C2F113B70E220080E5A100000085C35E0708002C210500 - 806D14DBCD993F070E1EF4B30100968E0200C036DAB77FFF2062DE1C3F71DB20 - 0200580E0A00005071C8EB00018025A30000B08D3C6D7E7EEDDFBFBF39AC0800 - 002C110500806D74F0E0C141C43C3A7CC4C3000180E5A10000002D8EDE74F3CA - 4E00008065A00000B08DAE7DFDF583887975C82B01018025A1000000431C3EE2 - 390000C072500000D846577AD7FCDC8B07017A582300B00C140000B691FBCB17 - 83B7010000CB400100609B5C7B9DFBFF17C5D163370F220080C5A50000B04D5C - FD5F1C575D7D8DDB00008085A70000B04D22A96471DC78935D0000C062530000 - D826575EA500B0488E1EBB651001002C260500806D72E0E0C141C422889F975D - 1B00C022530000D80671FFBF6472F178182000B0C8140000B6C1A11BDE388858 - 24476F721B0000B0B8140000B6C1E123DE2BBF8862E7C6E11BFCEC0080C5A400 - 00306392C8C576F888DD1B00C0625200009831DBFF17DBA11BBE79A5880300B0 - 6814000066CCF6FFC516C9BF220E00B08814000066C8F6FFE5A08803002C2205 - 00801972E578394411C76D0000C0A25100009821578E9787570202008B460100 - 60866CFF5F1E478FDD3C88000016830200C08C48FE97CB55575FD31C3878E960 - 040030FF14000066C4FBE3978FA20E00B0481400006624DE1FCF72397EE2B641 - 040030FF14000066C053E397D3818307576E05000058040A00003360FBFFF2F2 - 30400060512800006CB1B8F27FF42649E2B23A7C83E20E00B018140000B6D821 - 09E2528BDB003C0C100058040A00005BECF011C9E1B2738B0700B008140000B6 - 506CFF777578F979C30300B008140000B690EDFFDDD07FCEC32D831100C07C52 - 0000D842C74FDC3A8858766EF50000E69D0200C0163970F052EF88EF90B8D523 - 76020000CC2B0500802DE2DEFFEE71CB070030CF140000B6C8D163DEFDDF356E - F90000E6990200C016B0FDBF9BE2671E3F7B008079A40000B0056EBCC9D5FFAE - 72EB070030AF140000B6C0D1635E09D755C74FDC36880000E68B0200C094F5B7 - 811F1C8CE89AF8D9BBFD030098470A000053E6E17F580300C03C52000098B2C3 - 5E05D779D60000308F140000A6C8F67F42AC816BAFBB7E300200980F0A000053 - E4017024377A1024003067140000A6E89057C031602D0000F3460100604AE2FD - EFFBF7EF1F8CE8BA580BB1260000E6850200C0941C3EE2C16FAC75D46D0000C0 - 1C51000098125BBE29D9150200CC1305008029387AD32D123DAA0E7925200030 - 27140000A6E0F01157FFA9BBF1D8CD830800607B2900006C52D71FF6F6DC73CF - 35777EF0F6C188D2B5D75DDF1C3878E9600400B07D14000036A9EB5BBC1FB8EF - 63CDFBDFF79EC1881A6F030000E6810200C026757DFBFF230F3FD83CFCD0832B - 3B01A83BEA360000600E2800006C8277BD37CDFDF77D6CA5BFE7AE8FACF4AC77 - D5D5D7AC340080EDA40000B009F1F4FFAE8B5B00C2FDF7F77BEAEC020000B69B - 0200C026743DA98BADFFC93D777D78105173D8EB0001806DA60000B041F164F7 - AE6FEB7EE4A1870651FF6D00794180B50E1C3CB8F246000080EDA20000B0419E - ECBE7EDBFF3D777B0EC030371E73CB0800B07D14000036C83DDDB10360ED15FF - 931E0438D421452300601B2900006C80EDFFF52DFF5E07389CB7460000DB4901 - 0060038E9FB8751075577AFA7FC9EB00873B7CC4C3000180EDA10000B0019EE8 - DE348F3C5C7FE09FD7010E77F4A69B5776020000CC9A0200C08462EB7F3CD1BD - EBEE6FD901D0B633805587149000806DA0000030210FFFEB6B4BF41F3FF598D7 - 018E70F888E7000000B3A700003021DBFF475FE5B70B60B87810603C48120060 - 9614000026D04FDC6CFF7F60C47DFE27EFF620C051BC0D000098350500800978 - 827B5FDBFDFF49EC00F03AC0E1DC4A0200CC9A0200C0040EB96ABB629C2DFE6E - 0318AEFF3049B7010000B3B36BD0B36A47A5AFB5289EA47E58DBD55CFA86FFA6 - D9B9FBB25E0C2CB0D8B27DE34DB70C46DD1589FD9D77DC3E18B5BBE8E28B9BAF - FFC66F1A8C68F3577FF9D14104307BF15AD2AF79DDD7AE1424538B02E5B7BCE9 - 68F3FAEBAE5FD362FEE5D3A79BA79F7A6AF0D5304567CF3CDA3C76EFBFEB45AF - B4B4B32D2DA49E11228165ADF43DC9FBD422A14F7D144F529FDAEE4ADBD3BCE1 - 2DBFD2ECDA7B432F0616D8F7BFF58757DEE1DE75FFFEF77FB7F983DFFBDDC1A8 - 5DFC11F933EFFAB9C1889AC74F9D6A7EEA277E74300298BE48DAF7F592FC48E0 - F7EDDBBF320ED7F6C61B75F2AE8F34BFF1EE5F72AB17D375E6C5BB9A7B7FE707 - 7BD1E95E7BB9D2CE642D0A02A98FE4BF2C1084B2A72725B9AC4ADF93BC4F4D01 - 003A2AAE90BCE35D3FBFD277DDCFBEF31D636FEFFF99DEF7CC431387FB273FFD - 76AF4D04A62292FA48F0AFBAEA9AE6CAABAFFE4AB2BF15A208F08BBFA0C8CB14 - 2900CC4424B0008C70E886374AFE0726B9B7FFE45D1F1E44B4397EE2B6410430 - 99B835EDBBBFE77B9B1FFFC9B737BFF46BBFB9D2C73876AB6D65F21FE2BFBDD5 - FF0D60FA140000C670F88887FF85491FEC37EA758178B02430BEB8B5EAF8B7DD - F69584FFEFFFC8DB56C69BD9CEBF19DBF5DF05362E6D736755FA9EE47D6A6E01 - 800E8A2BFF3FF72F7E7930EAB671EFFFCFC51FA90C17DB68633B2D24476FBAA5 - B9D1AB22579E9371F2EE0F77FAFC88ABECF1DAD0C337BC71EE6EA9DAC8FF4F80 - 566E01988994E4B22A7D4FF23E350500E8A0F843FCFBDFFA438351B76DE47EF5 - B852E52AD170777EF0F6E6D7DFFD4B83115D175774631B37ABE2F7CE6FBCFB97 - 3BF3BC8CB8D21F5BECE316A1797E8E8A020053A500301391C0023084EDFF7DF1 - B4E78DFCF17DF26E57B64789DB003C6382C47321D68BABE03FF6936F5FFA7BCE - 23E98F6DFDF10695280279882A306D0A000043A4AB304C7EFF7FB2D1AFEB9248 - FEE3419310247D75719E441160D98A65F17FCFDFFEF6EF58796B4A24FFFE7F0E - B09514000086F087D8AA8D5EC98F5D03711F2FC3D96902A345B2FCDDDFF37D83 - D1628B02F3F7BFF587579E31F3B7FECE7728FC0033A1000030443C7889BECD5C - C9B70B60B428362DDB954D36C6F9325CBCE26E91CF9594F8C736FFF8BF056096 - 1400005AC41F69DE71DC1757F01F3FF5D86034B9788A37A3C5032781D1E24189 - 8B46E20FCC0305008016B6FFAF3A79D7E612785734C763C709E181FB9D2FA3FC - F5057A5062EC5690F803F3420100A0852771AFDA6C42126F105004182D769CC4 - 554260B848AAE7BD481BFF3BC6C3FDDEF1AE9F97F80373430100A0A29F887920 - 5372F2AECDBFCACFEB00C773A344A1F3EE572C1BCBE123F3FBE68CB89D2712FF - 78B89F677B00F3440100A0C256EC55D348FE831D00E3397ACC7300601C87E670 - 07C0B5D75DDFFCC37FFC8EE6FBDFFA43127F602E290000541CF64EF6AF98D6FD - C85E07389ED879E2E193DDE63C194F24D8F372AEC4FF2E719FFF8FFFE4DB9DBF - C05C53000028D8FEBFD6B4760004BB00C663074AB76DE68D1B5D1357DCB75BBC - 91C07DFEC0A25000002848BE566DF6F57F25AF031C8FD701C278AE7DFDF61500 - A2581CDBFDBFFB7BBED7767F606128000014245FAB36FBFABF921D00E38964C2 - 6B28BBCDB9329EEDDA6E1F4FF78FE4DF767F60D12800006422E9722567D59D77 - DC3E88A6235E0738CD5B0A96D93C3FE11CE645DCAE35CB5767A6ABFEF1747F80 - 45A40000909174AD8A643D1EDC376DD37AA8E0B28B279C2B4675579C7F8CE7AA - ABAF1E445B2BEEF577D51F58740A000099797CADD476B9678BAED4DB01309E48 - FE0F791B45673DF2F0F48B6FCB6AAB13F23817E3E9FE71AF3FC0A253000018B0 - FD7FADAD7A605F3C54702B76162CA3C34714A460942BAFDABA0240FCFF8578C2 - FF3CBC6D00601A140000066CFF5FB5D5F7EA7BC0D97814A5BACB2D00E3DBAA1D - 0071C5FFEFFFC8DB9C83C052510000E8893FF0BCC379D55627E8D37EB8E03273 - 1B4037D92533BE7810E034A52DFF71CF3FC0B2510000E89164AD75F2EEADBD4F - 3F929BC74F9D1A8C18E6F8895B0711D0665A5BF46337812DFFC032530000E871 - AFF55AF7DCB535F7FFE7DC06309E484866F99A335844D3D8A67FF4A65B569EF2 - 6FCB3FB0CC140080CE8B3FF6E25E6BFAE2DEFF59DC7FBC550F195C46D667F7D8 - 213399CD3E0720EEF7FFFEB7FED06004B0BC140080CEB3FD7FADADDEFE9FCCAA - D0B00C8E9F702F72D7C4DB3218DF81031BDB251305E078D09FFBFD81AE500000 - 3ACF3DD66BCD726BBEDB00C6130F39DBEA779DC322DBC8830023F9FFB19F7CBB - 1D3640A72800009D16F7564BAC56F51FCE37BB2B8FB3DA6DB00C8E1EF3960A98 - 96F8BD1FC9BFDFFF40D72800009DE6CACF5AB37E3DDF2C1E36B82C0EBB55055A - 4DF2D47EC93FD0650A0040A7B9AABA56DC973F4BF10C8059FF3717556C7156B0 - EA96D891C374A5E4DF93FE81AE5200003ACBF6FFB5E2A9E3DBF1E031B7018CEF - F011BB00BAE4790FC99C2AC93F800200D06137DEE4EA7FEEE4366DC7F720C0F1 - 1DB203005A0D2BE8C6EE19C93F800200D061478FDD328808B3BEFF3F895D07B6 - 3A8F279297A33759B750B3AF25B98FE43F5EF527F9075000003A2AAE146DE4B5 - 51CB2AEEC5DFCE247CBB8A0F8BE8F011BB00605CF1BBFEEFBDF5870723001400 - 804EF2F0BFB5EED9E607F17910E0F8E26AA62B99309A7BFE01D65300003AC92B - D5D63A79F7F6BE8ECF6D00933964FDC23AF9330024FF00750A0040E7D8FEBFDE - 3C5C81771BC0F88E9FB8751001494AF625FF00ED140080CE397EE2B641449897 - EDF7DE0630BE7E11EBD2C18865F5C0FDCE894945D2FFF7DEFA43927F80160A00 - 40E77895DA5AF3F21EFEB805E0F153A706234689670100ABF6EDDBBF72E53FBF - 150080B51400804EF100B5F5EEB96B7BEFFFCF9D9CA3FF5DE69D0759C25AC7BF - ED36C93FC0080A0040A71C3EE2E169B9B8EA1EAF009C179E0330BE4874243B00 - C0241400804EB1FD7FAD794BB8DD063019BB000080492800009D71F4A65B6CFF - 2FCCE3FBF7DD06303EAFB3040026A1000074C6E123AEFEE7E24A7BBC7F7FDE78 - F2F9F8E27596D75E77FD600400309C0200D00971E5DF53D3D79AD72BEDB12B61 - 9E9E4B30EF6E3C76CB200200184E0100E88443B64AAF33CF0FDCBB670E6F4D98 - 579E6B01008C4B0100E804DBFFD78A2BECF1C0BD7975F26ECF011897DD2D00C0 - B8140080A527415A6FDEAFB0CFE3C309E7D951B701000063500000965E3CFD9F - B516E10ABB22C0F8A2C0E50D1700C0280A00C0D2F3AEF4F51621B93E79B702C0 - 243CE762F9CCF36D3A002C26050060A91D38786973D5D5D70C468445B9B27ECF - 9CBEA5605EDDA8D0B574BC0D038069530000969A7BFFD75B942BEB91FC3C70DF - C7062346B9F6BAEB570A5E00006D140080A566FBFF7A8B7465DD6D009351F002 - 00865100009696EDFFEBC53DC58BB4ADD8830027A3E005000CA300002CADE327 - 6E1D442477DE71FB205A0C8F9F7ACC83D02610052FB70100006D140080A575D8 - 53D1D759C42BEAF7B80D60220A5F00401B05006029F5AF841E1C8C088F9F3AB5 - 72457DD1B80D60320A5F00401B05006029B9177ABD930BFA5ABDB805208A178C - 270A5F9E7DB11C9EF71A4000A64C0100584AAE82AEB768F7FFE716B578B15D8E - 9FB86D10B1C83CFF028069530000964EBC0ACDF6FFB5E20AFA2227135E073899 - 435E070800542800004BE7F01157FF4B0FDCF7B141B498E27FFF457A7DE176DB - BF7FFF4A210C0020A700002C1D573FD73B79F7E26FA1BFC7C30027A210060094 - 140080A512573DE3EA27ABE2CAF9323C497F198A18B374F4A69B9D0B00C01A0A - 00C05271D573BD65B972EE7580933BE461980040460100581A71B5D3F6FFF5EE - BF7FB1EFFFCF29024CE6F011E70300B04A0100581A71B5D396E7F5EE59A257E8 - 791BC064FA6FC4B874300200BA4E0100581AAE76AE1757CC97E9E9F9CB54CC98 - 156F030000120500602978ED59DDB25D315F96071ACED2D163370F2216D1C30F - 3D38880060F3140080A5E0616775F1FEFC65E33680C95C75F5356E035860CF2F - D10E1E00B69F0200B0146CFF5F2FAE1C3E7EEAB1C16879B80D6072C74FDC3A88 - 00802E530000165E5CDDB4FD7FBD3BEFB87D102D97B80DC0B6E8C91CB6430600 - E8510000169EE4BF6E99EF955FD6E2C6563970F0E0CAAD0000D3B44C0F9985AE - 500000169E879CADB7ACDBFF93657CB6C156739E00D3E6A1ACB0781400808516 - DBFF5DD95C6FD913E47E81E3D460C4388EDE74CB2002D8BC5F7FF72F2F75A119 - 96D58E41CFAAF43DC9FBD4A26092FA5D599FDAEE4ADBD3BCE12DBFD2ECDA7B43 - 2F06A6ECF8B7DDD67CF7F77CEF6044F24F7EFAED4B7F9F7CFCDCE3E7CFF87EF1 - 177ECE15BB05F3E33FF9F6E6DAEBAE1F8C607CF1FF03F2B7483C70FFC60AC307 - 0E5CBA721B515829BE3E7E6AE5F788E49FA93BF3E25DCDBDBFF383BDE874AFBD - 5C6967B2F64AD69FCDFAD442D9D393925C56A5EF49DEA7A6000073E667DEF5F3 - 5FF9C384BEB832FE533FF1A383D1F28A673FFCFD1F79DB60C438EEFCE0EDCDAF - BFFB970623168102003571EFFD23BD647C25C97FBEFF60D4988BDFFF12731696 - 02C04CA4249755E97B92F7A92900C01C89ADFFFFF01FBF63302279FF7BDFD3FC - F66FFDE660B4DC7EEE5FFC72B37FFFFEC18851224178FB4FFCA807772D100500 - E296AE48F01F7EF8A195E4DE3350585A0A003311092CC042F250B3BA8D6EF35C - 44FE109E4C144B0E792520CCAD48F4FB3B757E79E556AE1FFE81EF6D7EF69DEF - 5829EADEF9C10FF89D076C9A0200B0B0BCDBBCAE4B7F209EBCDBFDEC933A7CC4 - 6B33615E44C21FBBB6E2F91C6FFB1F7E6825E98FDB7422D98F6300D3A600002C - A4D8FEEFDEFFF522F9EFD2F6EE7BEEFAF020625CF1EC04B74DC0F6887BF4E30A - 7F9EF0C7D5FD78A89E5B7380595000001692EDFF755DBB221E7F30DB123B39AF - 0484D9892BF9FFFEF77F7725D98F07B4C6157E093FB05D140080852481A9EB62 - 32EC3680C929A0C1D68AA43FAEECFFD44FBC6D25F1FF83DFFB5D5BFA81B9A000 - 002C1C5B98EB626B6917FFC0F45EFBC9F56FA1B9743002A6217E07E7497FDCDB - EF957CC0BC51000016CEE1231EFE57D3D5ADF0F107B62B6B93BBF126BB0060B3 - 621B7F24FA697BBFA41F98770A00C0C2397483A798D79CBCBBBB0FC4BBC76D00 - 133B7ACC6D34B05151708D57F5C583FCE2AABF2224B0281400808562FB7FBB2E - 3F0CCF6D00938BB768C4AD00C078E26A7F3CC13FB6F8C7BBF9E3557D008B4601 - 005828B6FFD745F2DFE5274AC7D5B7B8FF96C97818208C96EEED7FFBE009FEB6 - F8038B4C0100581871E5FFA8FB96AB3C093F760174F716888DF2360D6817897F - 6CF34FF7F67B6D1FB00C1400808571E80657FFDB7479FB7F72E71DB70F22C615 - 45B5B8AD06589527FEB6F903CB4601005818878F48546AE28F550FA0EADF06E0 - 0ADDE4DC56037D127FA00B14008085E04A653B5BDF57DDE3618013F3560DBA4E - E20F74890200B0106CFF6FF7C0FDB6FF275D7E15E246F59FADE15900748FC41F - E822050060211C3F71EB2022175BDEBD026F557C2FDC063039B7D7D025F13BE2 - DFFFFEEF36FFE4A77F4AE20F748E020030F70E1CBCD4FBCA5B78F8DF7A6E0398 - 5CDC5E133B0160D94591F09FFCF4DB9B3FF8BDDF552C043A490100987BEEFD6F - E7F57FEBB90D6063DC66C3328BEDFE3FFBCE7734BFF80B3FD78BBDC71FE82E05 - 0060EE1D3DE6DDFF6DEEF100C075DC06B0316EB36159DDF9C1DB57B6FBDB3105 - A00000CC39DBFFDB79ED5D3BB7014C2ECEB338DF6059C4EFC778C8DFAFBFFB97 - FCAE0418500000E6DA8D37B9FADFE6CE3B6E1F4494DC06B0316EB7615944C2FF - BFBFF31D1EF20750500000E6DAD1635E4FD6C6D3FFDBD9EABB31C74FDC368860 - 71C5EEA878D05FF400ACA50000CCADFE96E4838311B9F8C3D683ACDAC5D53F05 - 92C9C5F9E6961B16DD6FBCFB97FD7E0468A10000CC2D0FFF6BE70AF76877DE61 - EBEF4638EF5874AEFC03B4530000E6D661AF256BE5FEFFD1BC0D60639C7700B0 - BC140080B964FB7FBB789FB52B5CE3F13680C9C579E7618000B09C140080B9E4 - 6164ED4E7AF7FFD8BC0D60630E1FB10B00009691020030970EB902D9EAE4DDAE - 6A8FCB6D001BE3FC0380E5A40000CC9DD87EBC7FFFFEC1885C24B31E003819B7 - 014C2ECE3FB70100C0F2510000E68EEDC7ED24B393731BC0C61C3D76CB200200 - 9685020030776C3F6E27999D9CDB0036C64E1C00583E0A00C05C397AD32D928E - 1691C44632CBE4EC9CD898435E0908004B450100982B878FB8FADF4612BB7176 - 4E6CCC8DC76E1E4400C032500000E686078F0D2789DD38B7016CCCB5D75DDF1C - 3878E96004002C3A0500606ED86EDCCEF6FFCDB383626314E500607928000073 - C3F6FF7692D7CDB38362638EBA0D00009686020030176CFF1F4EF2BA790FDCF7 - B141C424AEBAFA9A9506002C3E0500602EC4D3FFA9B3FD7F3A7C1F37CE2E0000 - 580E0A00C05C9060B4B3FD7F7A4EDEED7BB911873D9F030096820200B0EDE229 - E3B618B7B3FD7F7AEEB9CBF772230E1C3CB8F246000060B1290000DBCEBDFFED - 6C5B9FAEF87E7A16C0C6DC78CC6D3A00B0E81400806D67FB7F3BDBFFA7CF6D00 - 1B7348A10E00169E0200B0AD6CFF1FEE4FEFF8C020625AECA8D8186FEA0080C5 - A700006CABE3276E1D44941E3F75CA76F52DF0F8A9C756BEB74CEEA8DB000060 - A1290000DBCAD3C5DB9DF4C0BA2DE37BBB31B10320760200008B490100D836B1 - F53F9E2E4EDD9D77DC3E889836CF01D8B8438A7600B0B01400806DE3E17FED62 - 8BFAC30F3D3818316D716B45BC1180C91D3EE2390000B0A8760C7A56A5EF49DE - A7160593D4EFCAFAD47657DA9EE60D6FF99566D7DE1B7A3190F99977FDBC1D00 - 2DEEFCE0ED1E00B8C5BEFB7BBED7032837E8A77EE26D2BCF5260EBFDF84FBEBD - B9F6BAEB0723C6F1C33FF0BD83085828675EBCABB9F7777EB0179DEEB5972BED - 4CD65EC9FAB3599F5A287B7A5292CBAAF43DC9FBD41400604AE25EE2BFFF236F - 1B8C8045F2DBBFF59BCDFBDFFB9EC188ADA4003039050058500A003311092CC0 - CC1D3EE23E6258546EDF0180C5A400006C8B43DE270E0BABFF00CF4B07230060 - 5128000033E75562B0F88E9FB8751001008B4201009839DBFF61F11DF63A4000 - 58380A00C04CC5957FDBFF61F1C51B3CBC450100168B02003053876E78A3EDFF - B0248E9FB86D1001008B40010098A9C3475CFD876561370F002C1605006066E2 - CA7F3C0010580ECE6900582C0A00C0CCC4F67F60B978A827002C0E050060666C - FF87E573F4A69B3DD70300168402003013070E5E6AAB302C29BB7B0060312800 - 003321F987E565770F002C06050060268E1EBB791001CB260A7CB1CB0700986F - 0A00C0968BC4E0AAABAF198C806564970F00CC3F050060CB490C60F9D9E50300 - F34F0100D872C74FDC3688806515BB7CDC060000F34D0100D852FDA4E0E06004 - 2CB31B6FB20B0000E6990200B0A56C0B86EE387AEC96410400CC230500604B1D - F67E70E88CD8EDE3819F0030BF1400802D63FB3F748F5D3F0030BF1400802D23 - 1180EE397A93DB0000605E2900005B462200DDB37FFF7EAFFE048039A500006C - 894800221100BAE7F011CFFE008079A400006C09090074D721054000984B0A00 - C096880400E8A648FE0F79030800CC1D050060EA6CFF070E1F5104048079A300 - 004C9DEDFF80422000CC1F050060AAE20FFEA33779FD1FE04D2000306F140080 - A972DF2F901C3DA6180800F3440100982AF7FD02C955575FD31C3878E9600400 - 6C370500606A62FB7FDCF70B90F89D0000F3430100981ADBFF81D2F113B70D22 - 0060BB2900005373FCC4AD8308A0EFC0C1832BB7020000DB4F0100988AB8CFD7 - 1FF9408D870102C07C500000A6C27DBE409BC36E0F0280B9A000004C852B7C40 - 9BB80D40911000B69F0200B069B6FF03A31C3E621700006C37050060D36EBCC9 - D57F60B843760000C0B653000036EDE8B15B061140DDFEFDFB9BA337F95D0100 - DB490100D894D8FA1FF7F7028C72F8885D0000B09D1400804DF1F03F605CF120 - C0D80900006C0F05006053BCDE0B98C421BF330060DB2800001B66FB3F30A9E3 - 276E1D4400C0AC2900001B76FCC46D8308603CFDC2E1A5831100304B0A00C086 - 79AD17B011F12C000060F61400800DF1302F60A3EC1E0280EDA100006CC8E123 - 1EE4056C4C3C3B246E050000664B0100D810DBFF81CDF00A5100983D05006062 - 476FBAC5F67F6053BC421400664F010098D8E123AEFE039B13B7015C7BDDF583 - 1100300B0A00C044E2CABF277803D370E3B15B061100300B0A00C0440ED9B60B - 4C89678900C06C29000013B1FD1F98163B8A0060B6140080B1F9631D98B6A36E - 03008099510000C6164FFF0798A6282A7AAB0800CC8602003036EFED06B68267 - 8B00C06C280000633970F0D2E6AAABAF198C00A6E746C5450098090500602CEE - FD07B6CAB5D75DBF52640400B69602003016DBFF81ADA4C808005B4F010018C9 - F67F60AB293202C0D6530000463A7EE2D64104B035A2C8A8D008005B4B010018 - E9B027740333601700006C2D050060A8B82277E0E0C1C10860EB283602C0D652 - 00008672450E98952836C61B010080ADA100000CE58A1C304B371EBB65100100 - D3A60000B48AD772D9FE0FCCD221AF0304802DA30000B43A7CC4D57F60B6F6EF - DFBF527C0400A64F010068E54A1CB01D141F01606B2800005571052EAEC401CC - DAD19B6EF6FB0700B6C08E41CFAAF43DC9FBD4A26092FA5D599FDAEE4ADBD3BC - E12DBFD2ECDA7B432F8685F1FD6FFDE1953FC219ED81FB3ED6FCEC3BDF3118D1 - 65F104FB1FFFC9B70F466CC6AFBFFB979B3B3FF881C1A8BB623D7933C2647EF8 - 07BE7710010BE5CC8B7735F7FECE0FF6A2D3BDF672A59DC9DA2B597F36EB530B - 654F8F1D00C03A71E5CDF6FFF19DBCFB238388AE8B62D0E3A74E0D466CC6E123 - 7E0701C0B4290000EB1CBAE18DB6DF4EE0E45D0A00AC3A79D78707119BD17F0B - C9A5831100300D0A00C03AAEBC8DEFE1871E6C1E3FF5D860044D73E71DB70F22 - 36CBDB000060BA14008035BC826B32923D4AFDA290DB00A6E1E831CF21018069 - 520000D688EDFF8CCFF67F6ADC06301D575D7D8DDB0000608A140080356CFF1F - 9FEDFFB4B133647A8E9FB8751001009BA500007C455C69B3FD7F7CF778FA3F2D - DC06303D87ED4A0280A9510000BE42F23F19DBFF19C66D00D371E0E0C1955B01 - 0080CD530000BEC203B7C6175777E32A2FB479FFFBFE7810B159C74FDC368800 - 80CD50000056C4F67F57D9C6E7EA2EA3C4F3211489A6E390DD490030150A00C0 - 0ADBFF27E3216F8CC33A990EAF270580E950000056D8623B3EDBFF1997E7444C - CFE1231E0608009BA500000CDEB57D70306214DBFF1997DB00A6276E03889D00 - 00C0C62900001EFE3721DBBA9984F5321D91FC1FF24A4000D8140500C07BB627 - F0DC73CFB9A2CB44DC06303D878F780E00006C860200749CEDFF93B94732C784 - DC06303DF12040B70100C0C6290040C7D9FE3F999377BBFF9FC9BDFF7D7F3C88 - D8ACA337DD3288008049290040C7F9637A7CB1FDDF766E36E21E0F8E9C1A454B - 00D8380500E830DB692763FB3F1BA578343DFDDB962E1D8C0080492800408779 - AFF6646CFF67334EDEAD00302D37DE641700006C8402007458BC579BF1B882CB - 66B90D607A8E1E73EB12006C8402007494EDFF9379E0BE8F0D22D81845A4E989 - 3797C4AD0000C0641400A0A36CFF9F8CEDDB4C8375343D1E060800935300800E - 8A2BFF47DD433B11DBB79906EB687ABCC1040026A700001D74E80657FF2711DB - B663FB366C96DB00A6270A99712B1300303E0500E8A0C347FCD13C09DBB699A6 - 3BEFF8C02062B3DCCA0400935100808E71D56C72B66D334D76944C4FBCC9C4C3 - 4C01607C0A00D031B6FF4F46B2C656B8C76D005311C9BFDF6900303E0500E898 - E3276E1D448CC3F67FB6C2C9BBED2A9916B73401C0F81400A0430E1CBCD4BBB3 - 27F4C07D1F1B44303D76964C4FDCD2E4360000188F020074887BFF27F3F0430F - 368F9F7A6C3082E9721BC0F4B80D0000C6A300001D72F49877FF4FE2CE3B6E1F - 44307D6E03981EB73601C0781400A0236CFF9F9CF7B5B395DC06303DF1BB2D7E - C70100C329004047DC7893ABFF93B0FD9F59701BC0F4B8C50900465300808E38 - 7AEC9641C4386CFF6716DEFFBEF70C2236EBF889DB061100D04601003AA0BF3D - F6E060C4386CFF6716FA3B4D4E0D466C46FC8E739B13000CA700001DE0E17F93 - 8984CCF67F66E5E45D1E06382D7ED701C0700A00D00187BD226B22123266C9ED - 26D3E3771D000CA700004BCEF6FFC949C89825B7014C4FFCAEF330400068A700 - 004BCE83B1261389582464304B769D4CCFE123760100401B05005872875C0D9B - 88448CED60D7C9F4F89D0700ED14006089C556D8FDFBF70F468C4322C676701B - C0F4C4EFBCA33779ED2900D42800C012B3157632B6FFB39DDEFFBEF70C2236EB - F011BB0000A04601009698ADB093B1FD9FED74F2AE8F0C2236CBEE2700A85300 - 8025155B60FD013C9907EEFFD82082D97BFCD46376A04CD121AF040480751400 - 6049D9023B99E79E7BCE1558B69D67504CCFF113B70E220020510080251457FE - BD0B7B32F748FE99038A50D373D5D5D734070E5E3A1801004101009690ADAF93 - 3B79B7FBFFD97E6E03982E855000584B01009690EDFF93B1FD9F79E23680E939 - 7AECE64104000405005832B6FF4FCEF67FE68962D4F4C46D00D100803E050058 - 32F1F47F2663FB3FF3246E0378E03E6FA49816BB0000609502002C197FEC4E4E - B2C5BCF953B7014CCD61CF440180AF50008025124FBCB6DD7532B1DD3A9E0100 - F3E49EBBEC4A999603070F36D75E77FD600400DDA600004BC4BDFF933B79B7FB - AD993F1E4C395D371E736B14000405005822B6FF4FCE9556E695E2D4F41C521C - 0580150A00B0246CFF9F9CEDFFCC33C5A9E9F1761400E85300802571FCC4AD83 - 8871B9C2CA3C731BC0741D751B00002800C0B2F0A4EBC9B9C2CABC53A49A9ED8 - 01103B0100A0CB14006009C4D6FF78D235E38B57FFD9FECFBC53A49AAE430AA5 - 00749C02002C010FFF9B9C2BAB2C822852DDF9C1DB072336EB46BF2B01E83805 - 005802B6FF4FCEBDD52C8A9377DB05302DD75E77FDCA035301A0AB140060C1C5 - 7DADB6FF4FE6E1871E6C1E3FF5D86004F3CDDB2AA6CBDB0000E8320500587087 - 8FB8FA3FA93BEFB0A59AC5728F1D2B53E3962900BA4C010016DC2157B32666FB - 3F8BC66D00D3D37F68AADB0000E826050058605E6B3539DBFF59446E0398AEE3 - 276E1D4400D02D0A00B0C06CFF9FDC3D9EFECF82721BC0F478702A005DA50000 - 0B2AAEFCDBFE3F39DBFF59546E03989E78706ADC0A00005DA300000BEAD00D6F - B4FD7F428F9F3AB5720B002C22B7014CD7F113B70D2200E80E05005850878FB8 - FA3FA99377B982CA62BBF3831F18446C961D5400749102002CA0B8F2EF5DD693 - F3FA3F169D353C3D7E8F02D0450A00B08062FB3F93B1FD9F65D07F8BC5A9C188 - CDF2205500BA4601001690EDFF93B3FD9F65612D4FCFD19B6EF62C15003A4501 - 0016CC818397DAB6BA01B64EB32CACE5E9B2A30A802E5100800523F99F5C3C39 - DDF67F9685DB00A6CB8E2A00BA44010016CCD163370F22C6758F77FFB364DC06 - 303D51548D9D5500D0050A00B040E28FD4ABAEBE6630625C27EF962CB15CDC06 - 305D765601D0150A00B040FC913AB9D8FE7FD20E00964CDC06E0B696E9B1B30A - 80AE5000800572FCC46D838871D9FECFB2B20B607A626795DB0000E802050058 - 10FD3F500F0E468CCBF67F96959D2DD375FCC4AD830800969702002C085B5427 - 67FB3FCBECF1538FB90D608A0E7B1D20001DA000000BC21FA7937BE0BE8F0D22 - 584E6E03989ED861E521AB002C3B05005800716FAAEDFF933B79B7ABFF2C373B - 5CA6CB4E2B00969D02002C00C9FFC6DCE35DE92C39B7014C971D008BEFF153A7 - 061100350A00C0528A2BA3F10C0058766E03989E797C1380DF639389A21800ED - 140060013CEF0FC089C41FCCBFFD5BBF3918C172BBF3831F90244EC973CF3D3B - 88E6C79D777C6010310E3B00008653008005105B7C6DF31D4F4AFE5D05A22B62 - CDFFEFEF7C8722C0143CF2D04383687EC46EA63B3F6897C7B8FEE0F77F771001 - 50B36BD0B36A47A5AFB5289EA47E58DBD55CFA86FFA6D9B9FBB25E0C1BF6577F - F9172BDB535F73D9E583194AF187F26FBCFB979BBFFA8B8F0E66A01B9E7EEAA9 - E6DEBFFCE8CAEF8779DCC6BE0822C9FEEDDFFA57CDE9D3A70733F3231E68BAA3 - F717C795575FD3ECD9B367304B2E8AE4BFF27FFE8BE611C572585C67CF3CDA3C - 76EFBFEB45AFB4B4B32D2DA49E11228165ADF43DC9FBD422A14F7D144F529FDA - EE4ADBD3BCE12DBFD2ECDA7B432F86A9880755EDDBBF7F302278E51FF4EDEFFD - 6E884491F1C42D568BB4C3CAEFFFF5FCFE872571E6C5BB9A7B7FE7077B515462 - 5FAEB433598B8240EA23F92F0B04A1ECE949492EABD2F724EF53530000000098 - 3605809988041600000058720A00000000D0010A00000000D0010A00000000D0 + 0000000000000000000000000000000000000000000000000000000000000080 + CED831E881D970CE0100AC7576D0035B4C3202D3E59C0200982E05029812C90A + 6CCC66CE1DE71D0040DF66927B850198904404469BF43C715E01004CC7A449BE + A2000C215181F5C63D2F367AFE38EF0000FA369AB08FFB750A02909188C078E7 + C124E7CAA8CF3AEF0000FA4625E89324F0E37C5641804E9388D045D34AF8DB3E + 33AD7F1F0060996D26619F56B2AF2040A74842E88A516B7D23C7877DCDA49F6F + B391AF0100D84E1B49AA6B5F33ECDF99F4F361B3C761E1492E58669326E8B9F2 + 78DBE737FAB9D0F6590080653749025FCE6FF673C9B0E3A3BE16169204846533 + 6C4D4F72ACF6D97C6EB3C793DA1C00C032AB25D7A3E6367B3CD43E936CF4182C + 14C907CB60D83A1EF758ED73696E9263F978D8D785DAF1716CF4EB0000A66DA3 + C971FE75B57F63D8F1341EF675C38E85DAF164A3C760EE492458646DEB77DCF9 + B6F166E6DBE230EC586ED831008045326E325D7EAEED588ADB3E3FE97C528E93 + 49E761AE493458346D6B769CF9F233693CCEFC34E6421E27E3CE01002C925A92 + 3C6AAE164F6B2E8C9A0FE5B164D279983B920C1645DB5A1D355F1EAFCD8F3337 + AA0FE37C26D4BEA666D831008079362C291E966CA7715B1F467DA6ECC3B873A1 + 6D3E99741EE686048379D6B63EC799AFC5C3E66A7D8A433E1ED58788CB71DE27 + A3C600008BAE2DC14ED2389F8FB81C8FEA531CF2F1A83E0C9B0B799C9B741EB6 + 95648379D4B62E6BF3F95C2D2EE7DAC6B5BE2D2EFB61C7F23ED4E69272AEF619 + 0080455026C0B58438CDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2A43617 + DAE6615B483098276DEB7158B25C1E8B713E376C3CCDB8ECDB8E35CD6547AE6C + CE3970E54ABCF7154757FA1D3B2E6876ED7DC357FF7FC4CE33BD78EF05FD0100 + C0A279E1A9E6E55DF7F4E3DE9F41675EB8A7397BF6A995E10B5FB963A57FF1B1 + 879ACFDFF5D04ADC9792E5BCAFCDA57EDA7118350E695CCE87DA5C689B87995A + 4D4A60FBD4D6E1A8B95A3CAC1F37AECD85FC583917D6C6971DB96225C98F047F + 25B93FE70DCD99B357347BF65C31F80C0000E1F4E9879B5D3B1E6ECEBCD82F12 + 4481A05F1C78B877344FB687C5B5B9901F2BE7C2B078581FDAE264DC39989994 + B0C076A8ADBF6173E5B118E773F978543CBDB9D7FC8DA3CDDEF3DED0ECD8FD0D + CDAEDD57343B77BF79700C0080CD78F9A50F37675E7AB839FBD25F352F3C734F + F3D9FF18BB0752121D7DDEC234E6425B1CCA71C83F5B1A770EB65C4A6260966A + EB6ED85C7EAC9C8BBE6DAE364E733B077D792CB5B07EFEB2C35736AFB8E2CDCD + CE3DDFD0ECDEFBE666C7AE37F4E601009895B367EE695E7AE1C3CDCBA7FFAAF9 + CAC31F6E3E7F326E238884BA6CA1361F2DBC3CE86BC76AE3D4D7E692DA5C32EE + 1C6C9994E8C02CD4D6DBB0B9FC583917FDB0B86C6154D2BFBE45C27FDEE5479B + DDFBBFBD39BBE30DB6F00300CC99B88560C7D97B9A979E7D5FF3CCE7EE185210 + 686BA1AD18905A1816E77DA8CD25E3CEC1D4459203B350AEB5DADA4B73F9B188 + 6BE334578EC74DF2D3E7F27E47F3CAD75ED85CFCFAA3CD9E5EC2DFEC7AB3841F + 0060C14441A039F3E1E6F4B3EF6B1EBFEF8EE6CB9F7EB2371B09764AF2F33EE6 + 87B5502B0E84721C6AE3BCCF9573B5CFC0544522045BA9B6C6CAB934CEE7232E + E7D35C6D3C4E5B9BECA71657F9CFBFFA9666E7396F6E769FD34BFC0100581A2F + BDF8BEE6E5173FDC3CFDC01F5776074C520C285BA88D539FE2501E4FCA71A8CD + C1544402045BA1B6B6CAB934CEE723CEE76B714AE4D35C6A6B13FBB5AD92F45F + 756BB367FF77B98F1F00A023E2F901A79FFD37CDD30FBEB7A518908FF3563B16 + CADD01A12D0EF97CAE1C87DA1C6C4A2443304DB53555CEA5713E1F713E5FC6F9 + DCF8897E3E17DBFB0F5E7B6BB3F7821F94F40300745C14035E78EA379A53F7BE + B7B84D20FABC8D2A0C84723EB4C5219FCF95E3509B830D89E408A6A55C4FB5F5 + 9592F2241FD7E251AD4CF8D78F5FF7376F69F69EFFDDCDAE3D277A63000058EB + CCE9F7372F3CFDAF9B4FFD873FEE8DCA847FD478580B6D7128C7493957FB0C4C + 2C1224D8ACDA3A2AE7D2B8D6A716F2715B1B96F4F7E34B0F5DD55CF8DAFF7BD3 + ECF9760FF20300602C2B0F103CFDBEE6C94FFF7AF3C8DD0FF66622F1CE13FE8D + 1603426D5CEB93721C6A7330B648986033CA35D4361ED68FD3D627F9B5F875DF + 7E6BB3F7A2B7B8DA0F00C0A6ACEC0A78E2DDCDA7DEF7DEDEA8AD0830AC3830AC + 85517D326A0C638BA40936A2B676CAB9949827F938C5A35A2DD95FDB5FF4B517 + 35AFFAA6EF6E769CFB83AEF603003055B12BE0ECF3BFD17CF12FFE75F3C4679E + E8CD44029E92FDB22FE3512DE47128C7A11C87DA1C0C1549144CAA5C376DE3BC + 2FE37C2E4FF2531B95F8EF6C2E3D746573E16BBFBBD9B3EB079B66EF05BD3900 + 00D8222F3CD59C3EF31BCD174EBEAB79E233F1D0C048F4272D04C45C28E74319 + E77D326A0C43453205E3AAAD977C2EC5B53EB5908FA3D592FD3C5E9FF85FF4F5 + 6F6B76EFFDAEDE18000066EBA517FE4DF3C4277EA179E4EE78956024F5650120 + 4FFEDBE2D4426D5CEB431E27B5395827922A1847B956DAC6795FC66DAD96E897 + 7D2FF1FFE6AB9A8BAEF931893F00007361A51070FF2F368F7C2C1E1818C97D59 + 0068EB87B550C6799F8C1AC33A915CC128E53AC9C729AEF5A35A4AF0532CF107 + 0060F18C5708C893FF3C1ED6425B1FF23894635823922C6853AE8FB671DE9771 + 6A79B29F8FEB497FB478B8DFAB8FFC58B367DF0FF6C6000030DF4E3FF71BCD17 + EEFAC5C1C30253D29F92FDB63EB5721C2D9471DE27A3C6B022122EA829D7466D + 9CE6F2BEADA5043F8FD727FD315E49FC0FBFD5C3FD0000583C6B1E1698BF3520 + B534CEFB32AEB590F7294E468D6125F98252B92EF2718AF3BE8C534B097E2D5E + 4DF8F3F1D7FFD7DFDDECB9F0C79A5D3B2FEF8D010060319D79F973CDE9277FB1 + F9C41FFDEBDE2825FF79E29F8FD35C2D4E2D9471487DC8E3508EE9B848BE20A9 + AD877C2EC5793FACA5043FC565C2BF1A5F7EC33736175DFEBF343BCF79536F0C + 0000CBE1E517FFAC79E273FFEFE6737FFA97311AB448CCDBE2344E715B0B651F + F238A9CDD14191804128D7426D9CE66A716A29B1CFE3B5C97EDEDCE70F004017 + B43F1F20B548D2CBBE8C530B6D71326A4C07455206E53AC8C729CEFBBC8594E0 + 472BE3D4CAF1CEE675DF7E4BB3FF8277BACF1F00806E78E1A9E6D9A77EB2F9D4 + FBFEB83748897F6A91A097E33497C7218D530B651FF23894633A269232BAAD5C + 03F938C579DFD6F224BFECD7B678ADDFC5AFFFE7B6FB0300D049715BC0E3F7FD + 83E2B581798B44BDAD6F6BA1EC431E87724C87EC1AF4745324E8B97C1C71DE52 + 425F9B2F5BACABD4E76D7773CDDFFEA1E68257FD1FCD8EBDAFEB8D0100A07B76 + ECBAA2D97FD15B9A8B5EF752F3D8FD77A7D9AC85D487DA5CAEF6D964D4980EF1 + C3EFAE51BF24D25C1E47529FFA349FE2E8CB78B55DFA4D5737175FFB4E57FD01 + 0020B3B21BE0DE9F6C1EF98B0762546971C5BE8CA34F71487D9A0F799CE4E3F2 + 181D105765E99694B827659C1FCFC779729FFAD4621DE571DE76375FFF5F7F4F + 73C1A5FFA7ABFE000050E8EF06F8AEE6C2D73CDE3CFE897BD36CD6925A5CF6B9 + DAB132AE7D1D4BCC0FBC5BCA9F77F90BA0EC6B2D92FCB2AFB778C2FF65DFFACF + 9B5D7B4EF4C60000C030674EBFBFF9FC9FFF83216F0A482DAEDE977DAD85B20F + 791CCA314B2A1238BAA1FC59E7E314479F5A487124F4659C12FD14E7BB007636 + 57FFB51B9AF35EFDCE66D7CECB7B630000602C2F3CD53CF5D8FFA379E03FFD69 + 6F9027FD67067D24EB692EC5D1977148713E4EF23894639650246D2CBF48D273 + F938E2B2853CB94FF3AB09FE6ACBB7FBF7DBB57FE7C79BFD07FE59B37387D7FB + 0100C04476EF6DF69EFF5DCDC5AFDDD99CBAEFCF7A13F9DFE8A94FDAC6D14742 + 9F1F1FF76B59627EC8CB6FD8891D711AA7B8D622D14F7D7BBBE835AF6C2EFFD6 + 5FF1A03F000098827840E0E7FEFC479A273EFBE5188D6891F0A7BEAD853C0E79 + 1CCA314B24923A9657F9F3CDC711A7718ACB16897DD9972DAEFAEF6CAE3AFA8D + CD8597FF5F4DB3D7557F0000989A179E6A9EFCDC7FD73C78C75FF60691E0A75B + 01CA16897BD9D75AC8E390C7A11CB3242279633945C29ECBC711A7718ACB16C9 + 7DEA53A25FB6DD2B7D3CE5FF1597FDC6CA76250000608A7A7F639FFBCAFFAEB9 + F0CACF378F7FE2E3BD89F81B3DE47FBBA7B9A41C97467D7ED4D7B3A0228963F9 + 0C3B81234EE314972D25FDB5B6B60870DD5B7EBE39E715FF632F060000B6CAEE + 7D279A03AFBFAA3975CF7F1CCCA4BFDD6BDAE673E567468D59027EA8CB67D889 + 1B711AA7386F91E0A73E8F23D94F73FDF145AFB9A8B9E2CDBFD3ECD8755D6F0C + 0000CCC2D9331F6F1EFEF0F7364F7C365E1558DE0E30CE9B02F216F238E47128 + C72C303B00964B24ECB97C1C711AA738B594D8E7713FD15F9BFCF7C771BFFF81 + 6FFA9D66E7AED7F6C60000C0ACECD87949F38A2BFE76B3EFFCFFD23CF9F0A998 + E91F5891FEBE2FB5CD87727ED49805A600B03C869DA811A7718A538BC43E8F6B + 2D1502FAC97F3CEC6FE79E4B7A63000060D6E275DBE7EEFF5BCDB917DE362802 + 84F87B7E94B6CF94F3A3C62C280580E530EC048D388D539C5A24F7A96F6BABC9 + FFD7FD4D0FFB030080B9307838E005573CD23CFEC9FCE1806DD2F1B6CF95F3A3 + C62C200580C537ECC48C388D539C5A24F7659FB7D5C43FC691FCEFBBF8E77A31 + 0000302FF6EC3B312802DCD31BC5DFF521F5A5718F27A3C62C180580C536EC84 + 8C388D539C5A9EF4A73E6F79F2DF7FD2FFDEF33DE91F0000E6511401D6BF21A0 + 4D3AD6F699727ED49805A200B0B8869D8811A7718A53CB93FED4D712FFFEF8BA + B7FCF366F7DEEFECC50000C0BCDAB9FBBAE6C0EBAFAC1401529F1B762C94F3A3 + C62C080580C5959F74659CC6294E2D4FFA539FDA6AD29F7AC93F00002C8ED916 + 0158400A008B293FF9CA388D539C5A24F5659F9AE41F000096C1EC8A006D5FC3 + 1C5300583C6D275DC4699CE2D422A92FFBD4F2E43FDA6EC93F00002CB0D522C0 + 07063349E402A534573B16CAF97CDCF635CC290580C5D276B2459CC6294E2D4F + FA539F5A99FCC795FF774AFE010060C1ADDF0990444E504A73B563A19CCFC76D + 5FC31C5200581C6D2759C4699CE2D4F2A43FF5A949FE01006099290250500058 + 0C6D275BDED75A2DF14F497FEA25FF0000B0AC262B028CA3EDEB36FAEF31430A + 008B213F99529CF7B516097EEAF326F90700802E99BC08D0369FA4E3A33EC79C + 5100987FF94955C6790B91D8A7719EF4E72D25FE11EF6EAEF98E1F6BCED9F703 + BD18000058565104B8E8753B9BC7EEFD2FBDD1D95E4B39C438867D3E9F9FE4DF + 641B2800CCB7B69329E2348E443EF5693E25FB65CB93FF5DCDD7FDCDEF6ECEBD + F0EDBD1800005876BBCF795373C1159F6F1EFFE4C70733798E314C7C2E15016A + C5807C3CEEBFC9365000985F6D2751C4699CE248E8F3B8D6D627FFFB2EFEB95E + 0C000074C59E7D2736590448CAAFCBC7E3FE9BCC9802C07C6A3B99A22FE3D452 + A29FC729E14F71BF5DF6E66F6C2E78F5FFA737BDB737060000BA64CF396F6E76 + BFE243CDD30F9F1ACC946A897E3E97A46335C38EB14D1400E6537EB2A438EFCB + 5626FE79D29FFA7E7BF5375ED51CBCE6DDBDF0FCDE180000E89C9D7B9BFD17FE + AD5EA6F047CD57BEF4F4607294C837DAA463C33EC31C5000983FF94953C6B516 + 097EEACBB6B60070E1D5AF6C2EFD965F6F76ECBABC370600003A2B8A0097BCA9 + 79E1E93F6A5E78F285C1E42891778C927F669CCF3343911C323FDA4E9688D338 + EFDBDAFAE43FDAE5DFFACF7AC9FF75BD180000E8BAC80D2247C87386B5B9442D + D7482DE47D8A435BCC368B1F2CF3A376A2445FC6F9C91871D9F29377F74A7FCD + DF795BB367FF7FDB8B010000FA76EE7E6D73D16B77368FDDF767BD51E417B57B + FD6BCACFC69839A700303FF21326C5795FB632E9CF5B2A00F4DBD71EBFA5D97F + F13FEEC50000006BED3EE7DB9AF3BEE6BEE689CF7C7A30338EB64241E42A791F + F2986DA400301FDA4E8E886B2D92FCD4E7497F9EFC47BCBBB9F24DDFD85C70F9 + 2FF7869EF80F0000D49DB3EFE666EF791F6A9EFA5CBC192092FBC8377265C25F + 1EAFC93F33CEE7D9620A00F3219D0CE50992C691CCA73EE6A22F5B5900D8D55C + 78D52B9B03DFF8CBCDCEDD1EFA0700000CB1736FB3FBFC23CDE9891E0A98A482 + 41AD70508ED9460A00DB2F3F21521C7D1947729FC7794B497F1EEF6E5EFB37FE + D766F7DE9B7A310000C0703B771D6CCE7BD5D734A73EFE81DEA8B6C5BF361722 + 47C98FC5B8A66D9E195100D85EF90950C6B55626FEA9A5A47FB57DDDAD6F69F6 + 5EF0A3BD180000603C3B775FD75C70F9E79BC73F79EF60661C6D858124729924 + 8F99310580ED95167F7942A47124F7699CE232F14FFD6ABBF4DBBEA9B9F0D25F + E81D72DF3F000030993D7BDFD4ECDA7F7BF395CF3D3A982995097FCA5F92385E + CE9563B641248F6C8FDA091073693EEFCB961701F2D62F005CF49AFFADD79DDF + 8B01000026D4CB2556728AAF5E64ACE51ED16AB94AC8FB14E76A73CC40FC3099 + BD7CC19771ADD54EB6FC648C77FDF7C7AFFF8EFFB9D973EEF15E0C0000B031F1 + 3C8057BEEEC2E6B17B6F1BCC84FCCA7F6DDBBF5B01E69C02C0F6A82DFCE8531C + 497D1AA7384FFC53BF36BEEAFF76B439EFA0F7FD0300009BB7EB9C43CDB917FF + 79F3E4039F1BCC8C4AFA533E93C4B1728E6D14C923B3959F00296E9B2B5BFCBC + 529F5ABF0870C195AF6C5E71596CD3010000988EC83122D7C8738FD596E72865 + 0BA90FC3E69891F861B13DCAC51EE3BC85149727D8FA76E9B7FC68B36BA7F7FD + 030000D3133946E41AB51CA4DFCA7C255A48713E97946366242A38CC4EBED053 + 9C9F10F949539E4C6BB7FBAFB6DD83ADFFFFA8170300004C57FF56808F0C6E05 + 68BBCF7FA3B702B4CDB30522A16436F2855D5BE4692EFA322E8B01ABED822B2F + 6A5E71D93FEDC50000005B23728EC83D6A39C9DA9C255A28E3523E573BCE1688 + 1F12DB279D14790BD1D74EA8B2EDB2F51F0000D872ABB702A49DC965ABE53021 + FAB2B14DE207C3D6CB17798A6B8B3FCDE52D3F89F2D64BFEBFED1B9A73CEFBEF + 7B310000C0D68ADC237290F62240B45A4E93CBE7F263E5E7D802F10362766A8B + 3A9D00C35A3A91F2136B6773D16B6CFD07000066E7C2AB7EBAF73FD7E6256B73 + 9651AD549B638B44E586AD952FE814E78B3FC5E5C95356D562BCDABEEE6FFD60 + B377FFDFEDC5000000B3B16BF7E5CD05577FA579FCFE938399100FF94B2DC9E3 + 908F532E546A9B674A22B164366A8B39E6F216F2715E00586D175CF1CA66DF2B + FE9FBD18000060B62217899CA496ABF45B9ED3847C9CE672B539B640FC70D83A + 6D8B3BCDA738B5DA4993CFF5DBA56FEC25FFBBCEEFC500000033D6CB45567292 + 4AAE323CB7492DE471AE36C794C40F83AD376C61A7855FB6FC84596D5F73DD55 + 1EFC0700006CABC8492237A9E52CFD56CB71A285D4E76A734C59FC60D81A6D8B + 3A5FF4659C5A7ED2A4B8DF2EFE060FFE030000B65F3F37599BAFACCF67F216DA + E25C6D8E29881F0A5B6BD8824E0B3E6FF989924E9C7EBBF2E637377BF67E6B2F + 060000D85E919B448E52E62DF5DC266F21F5B9DA1C53143F10A6AF6D31E78BBD + 8CF3569E3CFDF815AFFE9F7A3D0000C07CE8E728EB7397D571D9425B9CABCDB1 + 49F14361EB0C5BC869A1E7AD3C49564F9ED7DDF25DCDEE3DD7F662000080F910 + 394AE42A79EEB23EA7C9C7A985D4E76A734C49FC3098AEB6459C2FF2328E964E + 8C74D2AC6DFB2EF6DA3F000060FEF473957A1EB336D7492DB4C5B9DA1C9B103F + 08B6C6B0059C16786AF989B1BEBDEE96EF6C76ECBCAC17030000CC97C8552267 + A9E532FD96E73C790BA9CFD5E69882F821303D6D8B375FDC65DCD6564F1857FF + 01008079B67E17402DC7C95B688B73B53936287E304CDFB0859B16766AE9E4C8 + 4F96D5E6EA3F000030EFEC025808F103603ADA166DBEA8CBB8ADAD9E24AEFE03 + 00008BA09FBBACCD6786B7D016E76A736C8002C0F40D5BB06941A7964E8A7482 + AC6DAEFE0300008BC22E80B917DF7C36AF6DB1E68BB98CDBDAEA09E2EA3F0000 + B0483C0B60AEC50F84AD552EE4B2E527C76ABBF2A637B9FA0F00002C94C86122 + 97A9E538FD56CB89A285D4B345E207C0F4E40B7758DCD6564F8CF35EF53FF47A + 000080C5D2CF6556739B7AEE93B7302C664AE287C1E60C5B90F9B1B488534B27 + 427E62F4DB15DF7A5DB367EFB7F662000080C512B94CE434B55C676D2E94B724 + 8F4BC38E3186F8C6331DA3166AADE50B7F357EC5957FAFD70300002CA67E4E33 + 3CEF59DFDA0C3BC604140036A7B610F3059CB790E272D1A7F1CEE6822B2E6CF6 + ECFB3BBD1800006031454E13B94D9EEBD473A068213F96B7526D8E31C5379DAD + 95166EDB82CFFB9DCDAB0EC56B33000000165B3FB7E9E739F51C28B57CCC168A + 6F349B97166ABE686B0B38CDA5969F00FDB6F782EFEFF50000008BAD9FDBACE6 + 3A6B73A0BCE5F2B9326693E29BCFC60C5B80E5826D6BF989B0A3B9F2A66FF3EA + 3F00006029F45F09F86D110DDADAFCA7BD85D4D70C3BC6100A009B575B7CE5C2 + AD8DF385DF3F11CEBBE4EFF67A000080E5D0CF71CAC43F8F438ACB71A936C704 + E21BCF74A4459A2FCA7C2E5A5AE8E5E2DFD99C7FB987FF010000CB25729CC875 + 52DE333C374A2DA9CDB109F1CD6672E32CC07CB1E6AD5CF4FDF635DFF0377A3D + 0000C072E9E73AABB94F3D372ADB28E37C86427CC3D9B8B4E8F2459AC7499ACB + DBDAC5BEF7951EFE0700002C9F7EAED39E0BADB65C3E57C66C9002C074950BB4 + ADA5051FFDCEE6926FB8B2D9B5FBF5BD18000060B944AE13394FCA7FD6E644C3 + 5A483D5310DF742633EE02AC2DDC7ABBE8AABFDEEB01000096533FE7A9E743FD + 16CAF128E37E8E0105808D2B1769C8E324CD952D55BF76367B2EF88E5E0F0000 + B09CFA39CF6A0E54CF91A2E5F2B9326603E21BCF74940BB3ADAD5DF0977CC315 + B6FF0300004BAD7F1BC015BDA89E17B5B7907A3649016032E32EBCDA828D962F + F0FE82BFE8EAE3BD1E000060B9F5739F32F1CFE390E2341E65DCCFD113DF6C26 + 572ECE90C7498CD382CE17F66ADB73BE77FF030000CBAF9FFBACCF89D6E74CB9 + F49950C64C4801603ACA0599B790F7F13DEF2FEC8BAFB5FD1F0000E886C87D22 + 072AF3A2BEBC2F5B483D9BA00030BE71175C6DA1464B8B7B757CE0B5B6FF0300 + 00DDD1CF81D6E746AB71C88F8D63DCCF759E02C0E46A8BABB638D35C7BDBBDFF + 5B7B3D00004037F473A07A7EB4B6E56A73A136C7100A001B971661BEE8F2B95A + 5B5BE9DABDF7AFF57A0000806EE8E740ED3952BD25B53926A000303DF9624C0B + B27DEE35FF95EDFF000040F7F473A1F539D2E839364901603C1B5970E5828D16 + DFEF7EDB73E1B7F57A0000806EE9E742ABB9513D779AD446BEA673E29BCDF8D2 + A2CA17658A6BE3F6B6E7DC37F67A0000806EE9E742F53C697D0B6DE3907AC6A0 + 00B039E5A2ABF5EBDBF9975DE0F57F00004027452E1439512D57EAB730AA6703 + 1400A62716626A21EFD7B603D7DAFE0F000074573F275A9F2BF5E57D3ECF2629 + 008C366CB1B52DC6345F6F7BCEF7FA3F0000A0BBFA39513D5F5A6DA5B6F964D8 + 317A1400C69716536DD1A5B971DA4EF7FF0300009DD6CF89221FADE54C6D2D97 + CF95C768A100B071B5C5961661DEC2DAB1FBFF0100802E5BCD89D6E64A6BC7F9 + 7C48713EC7041400A6A35C9849CCE555AD9DCD15C7DCFF0F0000D0CF8DD6E64B + FDBE948EB3490A00D3971667BE4857E3FD17BBFF1F0000603537AAE54EF91C53 + A20030DCB005572EC8341ED67636BBF6DAFE0F0000D0CF8DF21D00C35A528E4B + C38E759E02C078D222AA2DB67CAEF6B914F7C7BBF62800000000ACE6466B73A6 + F571EA539CD43EC7100A001B535B64E55CF46BDB2B2EBDB0D9B1F3B25E0C0000 + D06D911B458E54E64DFD16CA3ED4E6189302C0E6C5C2CB1761DB784773D16B5D + FD07000048FA39D2DABCA9AF6DCC2628006C5CB9F86A8B736DDB7BC1B5BD1E00 + 0080D0CF91EAF9535F1E27E598312900B41BB6A8CAC5987FB676ACDFF6ECB303 + 00000020D9794EDC22BD3E77EA4B7D1876AC34EC58A729008C962FB0711659DB + E776343B775F3E88010000D8B337ED0028E57955ED7832EEE7E85100985C6D71 + 9573D1AF6F3B775ED3EB01000008FD1CA99E3FF5957DA8CD31060580CD890597 + 2FBEB671BC01E0FC66C7AEF3E3000000003D912345AE54E64F7D6D6336480160 + FAEA8BF4A2D77A0020000040A99F2BADCFA156C74C8902C0C6940BB15CA0EBFB + 5DBB2F18C400000024FD5CA93D975A6DB972CC181400EA862DA6742C2DC2B6CF + AE3DBEF7026F0000000028ADE64A6B73A8F5CAE36D9F0BC38E759602C070F9C2 + 1A6771A5CFE59FED8F77EE8ED75B000000B056FE0C80248DD35C7EAC34EEE73A + 4F016032B54555CEE5FD6AAC00000000B0DEEE736307403D8FAAF7A136C7080A + 001B170BAD6DB1A563AB9FD9F1B23700000000B45B9F47AD37EC182328004CC7 + E845BAF3DC78BF25000000B95DE77C4BEF7FB6E752C3732D26A000305DF9E2CC + 1B000000C3D572A9684C8902C0E4CA05582ECCF5C70F7EFDE58318000080523F + 67AAE55AA94F2D578E1941016073DA16DCDA057AEE251E00080000D06635675A + 9B4BADD736CF181400D61BB6A0D2B1B60559FFDAB343FF4D0000806E6BCF99DA + F2AE343F2CD71A76AC931400366FD8C28BB91DCDEE3DAFE80F01000058A79F33 + F5F3A7F586E55C4C400160B4B64598CB8FA7CFA7B91DCDDEF3AF1DC400000094 + FA39D36A0EB536A70A795C537E9E0A058076E5E2A92DA6519FB100010000C6B7 + 911C4B1E36260580C9A5C5D4B6A8623E3500000026332AA74AF372AE0929006C + 4CB9D0862D4E00000036AE966FC9BF36400160F3462D3C0B1300006034B9D516 + 5300D85AFD05BAEB9CD7AFF400000054ECB96C1048F2B79002C074E58B7535DE + B1CB6B00010000DAECDE7DE9200AF5BC8A4D5300989EB430A3B7600100002653 + E651692CA79A120500000000E8000580CDC9AB52352A55000000E31B955FC9B1 + 364101000000003A400160326DD5A6349F1F5799020000985C2DAF6ACBAFE45D + 13500098BE5880C5223C6B51020000B45A973355F22A364B01000000003A4001 + 000000003A4001000000003A4001000000003A400160E3C67D20850757000000 + 8C26C7DA620A00000000D0010A00000000D0010A00000000D0010A00000000D0 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 @@ -1471,303 +1128,646 @@ object AboutForm: TAboutForm 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 - 00D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A - 00000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000 - D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A00 - 000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0 - 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 - 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 - 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 - 00D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A - 00000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000 - D0010A00000000D0010A00000000D0010A00000000D0010A001B7776D08F32EE - E7000000BA4C8EB5C5140066E1EC2BCF0C220000004A72A69950009885D32F3C - 308800000028C999664201000000003A4001000000003A400160FAE28114C543 - 297C9B010000DAADCB992A79159B25339D4CDB024CF3F9718B1500006072B5BC - AA2DBF92774D400160164E3F7DFF20020000A024679A090580CD896AD3B08A53 - FFD8CB2F7D79A507000060BDD59C69547E35EC38232800000000400728004C4F - AA449555A9B3CD0BA73E378801000028F573A6B579D4EA389F67131400A6AB5C - B07D8F7FE2D14104000040696DCE54CFABD8340580AD9516AB450B0000D04EEE - 34030A009B376A81F68FBF72FAE32B3D000000ABCEBC78D7201A2FB762C31400 - 36A65C78311EB618CF36675F796610030000B0D6F07C6AFDF1619FA78502C0E4 - D2426B5B706971AE3D7EE6B4E70000000094CEBCF0C0204AEA39D5AA34DF769C - 160A00EDCAC5545B5CA33EB33A3EF3B20200000040E9CCD92F0FA2307E8EB56A - 9CCFD0A300305A2C9E510B283F9E3E9FE6FAF14B4F97552D000000FAB9D2FA1C - 6A751CF2B8A6FC3C150A009B9716596DB1AD2EC2974F7B06000000406935575A - CD9FD64A73B5634C400160BD618B2A5F78B5CFB57DEDD9E6A94FDB0100000050 - EAE74AEDB9D47A793ED6F67561D8B14E5200D89CB6059516E4EAF167BFF07473 - 76CDBD2D000000DD163952E44AABD6E7526BB5CD33060580C9950BAE5CA06DC7 - 9BE69597EC02000000485673A43CA74AD2381D6B3BCE981400A62B5F98790B67 - BD0A10000020F3D28B1FEFFDCFD59CA9DE98120580E918B538FBC75E7E211637 - 000000E1EC4B719174742ED57E9C0928006CDCB88B74F533CF3F75FF20020000 - 606D8E54CFA3D61A768C1114002693165ABEE0CAB9BC5F1B3FF5293B00000000 - 927E8EB43E77EA6BEB436D8E11140086CB17D5B085557E2EFFECEADCB35F7CBA - 39EB39000000002BB951E44879CEB4AA9CCB8F95C6FD5CE72900D48D5A5CA94F - ADA676FC6C73FA8C5D00000000FDDC686DBEB43E87CA95C7DB3E17861DEB2C05 - 808D2917535A8469BED6F7E3573C0810000020CB8D56F3A57A9F1F4FCA316350 - 0098BE7281E6E3B3CDB3A73E12930000009DD6CF8DD6E64B7DE598295100D89C - 618B341FAFCE7DEECF1400000000FAB9D1F0FCA93E6683140026972FBEA49C8B - BEBDBD72DA6D0000004077F573A27ABEB4DA42D987DA1C635000182D5F5CC316 - D8A8CFA5F9B3CD8BCFDFB532030000D045FD9C6835475A2F9FAF1D4FC6FD1C3D - 0A00ED462DB2D4A796D48EE5AD695EFA9202000000D05DAB39512D678A16521F - 861D2B0D3BD6690A001B572EAA7231B6B7C71F5000000000BAAB9F13D5F3A5D5 - 16F23829C78C490160F36A8BB3365E9D7BF68B4F7B0E000000D049910B454E94 - E7486B5B681BB3090A001B932FC2A49C8BBE6CAF7C25F61C000000A08BD6DEFF - BF9A23AD6DA1EC436D8E3129008C275F64E542CBE76A9F4BF1DAB1E700000000 - 5DD4CF85D6E748EBC7A13697D43EC7100A00C30D5B44F9620B693CACAD56B71E - FAE07FEEF5000000DDD2CF85D6E748C35B528E4BC38E759E02C0F4A505992FCC - 5A7CB679E9D90FACCC00000074413F075ACD89FA6A713EC79428004C47DBE28C - B9BCA215F1EAF8E5E7EEEEF5000000DDD0CF81EAF9D16A5C4AC7D92405808D4B - 0B305F886961E62DD4C75FFA84DB00000080EEE8E740EB73A3FA389F0F29CEE7 - 988002C0F8F2C5562EB834374E5BAD723DF1A9CF791D200000D00991FB440E54 - E645E3B75C3E571EA38502C068C31653BEE872697E747BE1C93FEAF5000000CB - AD9FFBD4F3A27A2BB5CD27C38ED1A300303D6931A64597F7B5D6AF767DE9131E - 040800002CBF7EEEB39A0BD55BC8FB7C9E4D5200D89CDA022DFB61ED15B70100 - 00004B6F75FBFF38DBFEC3A89E0D5000984CBEE8CAB8361EA7BDE23600000060 - A9F5739E49EFF98F16DAC621F58C4101603C1B59546951E62D167CDEFAF36E03 - 00000096D9EAF6FFF6BC686D9BD446BEA6731400A6A7B660C799F33600000060 - 79AD7DFA7FD9C2B8736C9202C0C6D516633E576B65756BB5EAF5EC63FFBAD703 - 00002C977EAEB39AFBACCF89F271AD25B53926A00030B9DA62AB2DC234375E7B - ECAFFEA4D70300002C977EAE53CF83DA5BAE36176A730CA10030BE7117575A9C - E9F3291E5EE97AF68BCF342F3DF31F7A310000C072881C27729D3CF7199E1B85 - FCD838C6FD5CE729004C476DA1A616F23E16775AE029EEB7673EFF87BD1E0000 - 6039F4739CB579CFFABC28E47DD942EAD90405808DC917612D4E629C2FF0F499 - 7AFBDC7FB9AB397BE6F3BD18000060B1456E13394E99F7AC6F65CE944B9F0965 - CC8414002633EE224B0B335F9CD1F22240C479EBCF3FFFC46FF77A000080C5D6 - CF6D86E73F6BE390E2341E65DCCFD1A300303DB5055B6BE5825F3BFFE8DD6E03 - 000000165F3FB7199EFFAC9F2F5B483D9BA400B071F962ACC5499A2B5B5AF06B - DB738F3DED61800000C0428B9C26729B5ACED36FB51C295A2E9F2B6336400160 - 72E32EB6B440F3453A5E7BE2D36E0300000016573FA7A9E73BF516CAF128E37E - 8E010580E9AA2DDC5A4B15AFB20AD66F8FFDC5FDCD4BCF9FECC50000008B2572 - 99C8696AB94EBFE539D1B01652CF1428006C4EBE286B7192E6F2367CC13FFDF0 - AFF67A000080C5D2CF65EA794EBFB5E542B97CAE8CD92005808D1967D1A5455A - B67CB1475C6F8FFEF9479A57BC12100000582091C3442E53E6376B5B2D372ADB - 28E37C868202C0F4D4166B3E172D2DF072D1D7DBB35FB00B000000581CFD1CA6 - 9EDFF4DBB0DC28B5A436C72628006C5E6D31E68B34C5E5B85CFCEBDB67FED31F - DA050000002C84C85D228729F39AD556CB85428ACB71A936C7041400366ED8E2 - 2B176E5B2B4F84F5CD2E0000006011F473977A5ED36FA3F39F7E0BA9AF19768C - 211400A6235FA4B5384973A9A5C59F4E84F5ED33FFE98FEC02000000E65AFFEA - FF1F4534A4E53950DE72F95C19B3490A005B2F2DDA72A1972740F4F5F6ECE77F - ADD7030000CCA77ECE52CF67FAAD9603A5968FD9420A009B535BA069E1962DA4 - B86DC147BFBE7DE64F3C0B000000984F2B57FF7B394B99C7ACB6613950B4901F - CB5BA936C7981400A667D842CC1770DEF2455FC66B9B5D000000C03C6ABFFADF - 96EBA4B86C6D861D63020A009B37EE424D8B3AB5B4F0D3C991B7F5F32BBB004E - 7FA217030000CC87C851EA57FF47E53AD1E72DC9E3D2B0638C410160BAD282CC - 17712D6E6BE5C9B1B63DF1E95FE8F5000000F3A19FA3D4F397D556CB7DF21686 - C54C8902C0D62B1771D96A2748B4F5C71EFDF38F342F3D7FB2170300006CAFC8 - 4D224729F396D1794EAD85D4B3451400A6A3B650CB855CC66DAD7692ACB6C7EE - FE995E0F0000B0BDFAB9493D6F596DB59C276FA12DCED5E6989002C0F40D5BAC - 6931A7964E88F224696F4F7CFA73CD0B4FFD4E2F060000D81E9193446E52CB59 - DA5B9E03E52DA43E579B63131400A6A76DC1E60BBA8CDB5A7982AC6D9FFDB377 - 3767CF7EB917030000CC56E4229193D47295F5F9CCB016DAE25C6D8E0D5000D8 - 1AC3166D5AD4A99527C9E8F6DC634F37CF3EE6B5800000C0EC452E1239492D57 - 696F79EE93B790FA5C6D8E4D520098AEB6859B2FEC326E6BE50993DA9995FED3 - EFFB6DAF05040000662A7290C845F2DCA4DE6A394EDE425B9CABCDB1410A005B - 67D8E24D8B3BB574829427CDF0F6857BFF69AF070000988D7E0E52CF4FDA5B9E - F3E42DA43E579B630A1400A6AF6D01E70BBC8CA3E527465B5B5B613BF5970F78 - 202000003013917B440E92E724C3770144CB739DD4425B9CABCDB1090A005B6B - D8224E8B3C6FE589919F38F513EBB31FFAD5E695339FEFC50000005B23728EC8 - 3DCA7CA4DFCA5CA5CC69F2716A21F5B9DA1C53B26BD0337D3B8A3EC9C7F967F2 - 16521C459AFC58DE9AE6F473A79BDDE77EAAD97FF0B695310000C0B43DFEF17F - D87CE9139FEE4529D98F3E6F29F9CFE348E6539F5A688B73B53936490160EBF4 - 13F4BE14AF26EEEB8F97C7CAB86CA11F7FF9739F6F2EBAE6C266F7B96FE84F03 - 00004C496CFD7FF04FFE6D2F4A097E4AF2539C27FD1147F29EC629C1CF5B487D - AE36C714B90560EBB42DE87CC197716AF9C992E2BC952758DC0AF06B6E050000 - 00A6AABFF53F5E415ECF43D6B7329FC95B688B73B539A6C00E80AD95AED487B5 - 57EDFBCAE3790BE55C391FFAB15B0100008069EB6FFDFF4C2F8A843FB548EECB - 3825FDA9A5E4BE6C21F5B9DA1C53A600B0F5F2443D37CE38FFDAB285B5E32F7F - EE0BCD45D75CE05600000060D3FA5BFF7FAF1795497F99F8A73E25FE29CEE7F2 - 16F238579B634A1400B65E4AD64399B8E7F2B9F2781AE7F3B571D33CF1C0879B - 4BAEBDA5D9B5FB9295310000C0A44EBFF0C9E681DF7F7B2FAA25FBA9A5043F8F - A345129FFA9092FDD44AB539B68067006CBDB6055ECEA7B9D4F293271FE72D3F - F1564FBA2FDDF74F9BB3AF7CB9170300004C267289C829D6E61D65FE51B6B63C - 26B55C6D2ED4E698223B0066235DA50FF915FB7C3E94C7F2CF9473790BABF1B3 - 8F7DA9D977E0C966EF8537AD8C010000C6F5CC677FAEF9EC9F7FA817D512FFB2 - CF5B24F0A96F6BA5DA1C5B4401607652A21ECA783579EF1B3597E6F37EEDDC53 - 0F7EB2B9E8AB2F6F76EFFDDA95310000C0282F3CFDC7CDA7DEFBABBDA896F00F - 4BFE532B13FE32C1CFE7F263E5E7D8020A00B39312F490C7A5DAB13CB9CF5BA8 - F5FDF885273EDA5C70E59B3C0F0000001829EEFB7FE483FFB839FDDCF3BD5124 - F329E91F27F98F04BE1C87E8CBC636510098AD94A487F5097BFBF1B2AFB5B036 - 3EFDDC4BCDCE9DF735E77DD55F6F76EC3867300F0000B056DCF77FEAAFFEE7E6 - C9073FDB1B45029F27FC79D25F2B0044529FFA94E09771299FAB1D670B2800CC - 5E9EACE7CA7148097D7E2C9FABCD87D5FED9C79E68CEB9E09166DFABFEFA600E - 000060AD273FFDBF368FDEF5915E14897C9EFCA73EB518D75A4AF8A395E390C7 - B9DA1C5B440160F6CAA43DEF73B563F95CAD25F97847F3F4230F37175EBEABD9 - B3FFD0600E0000A0EFF953FFB2F9CCCAFBFE23716F4BFADB92FF48E0F33825F4 - 29CEE79272CC8C28006C8F32594F7D1E27E55CDE9773A1FEB9273E794F73C96B - BFAED975CED5FD690000A0F34E7FF98EE6813FFCD95E14097C9EF4E7897F1EA7 - 643F5A24F2A92F5B487D1836C78C28006C8F5AC29E94E3D04FE2D77F5D1A97C7 - EBFD738F7FD8430101008015F1D0BF876EFF878387FED512FD32E12FC7D12289 - 4FAD1C873C669B29006C9F949C873C51CFE7437E2CA9CD8518B77DBEFF50C033 - CF4511E0360F050400800E8B87FE3DFA676F6B9E79F4B1DE2812F75400A825FF - F97C6A91D4E77199F0A7712E9FAB1D678B29006CAF5AB21EDA92F8BC0FF95C6D - 3EE49F699A179E7AB679E5958F34E7BFFAAF29020000400745F2FFF97B7EAC79 - E2139FE98D52729F12FCB6B8D6F2643FB590F729CED5E698010580EDD596B487 - 721C622E6FC9B0F924C53B9AE71E7BA2D977E0C966EF85370DE6000080AE8827 - FE7FFEEEBB7A514AF0F316897D1ED75A4AEC532BE7421E873C669B28006CBF7A - 92BE763E94E3DCA8CFAF8F9F7AF093CDBE4B1E6BF65E786C650C00002CBFA71F - F967CDC31FFC8FBD284FFA53B25F8BD3B8AD95097F2DD1CFE76AC799110580F9 - 9012F4B6243EFA3851F271DE42792C698FA30870E1E53BBD1E1000003A205EF7 - F7E9F7FF762F8AC4BD96EC9771D952825FB63816224E7D8A73B539664801603E - B425E9218D877D26E49FAB7D4D583F1FAF07BCE8AB2F6B76EFFDDAC10C0000B0 - 6C5E78FA8F9B4FFCD12FF4A25AB29FB7349F92FEB69692FC94D4E77D8A431EB3 - CD1400E6479EACB725F0B93896B7D2A8B9D5F88907FEB4B9F86B2E6F76EF7DDD - 6006000058162F3EF3DEE6E37FF0BFF5A23CD17FB918E72D12FC3C2E13FE68B5 - B968B97C5C1E631B2800CC975A821E7D3E1FCA7129FF9AB20FEBE3C7EFBF4311 - 000000964C24FF0FFCBB7FDA8B6A897D19E7FDB09692F994F4D712FDDA1CDB4C - 0160BEB425E9218DA38F13281F97622E9F6FFB4CD28F150100006079AC4DFEA3 - E557FDCB1D0091D8A7BEAD451E925A8C434AEED33C734C0160FE0C4BDCD3B8F6 - 99E8534BF238D7FE1945000000587CEB93FF3CC92FE3BCA5F932E12F5BC8FB14 - 87B6986DA600309F6A097A5B321FDA8EE55F9BB7D2DA3945000000585CF5E43F - 5AEDAAFFB82D12F9D4972D978FCB636C330580F95426E969DC96C087DAB1B6CF - E6EA9F5104000080C5D39EFCA784BF369F5A9EF0A79692FC3C4E2D49713EC71C - 5200985F79623E2AB12F3F9B5AAE3697D4E67728020000C002594DFE2359AF25 - F8B527FFE7C97E6A79929FC6219F0F795C6A9B671B2900CCB73C31AF25F4A98F - 93AB96C4D7B47DAE3EAF08000000F3EFB9A77EB7F9C41FFC6C2F2A13FCD4DA92 - FF3CAEB594E4471C52629FE693B69839A20030FFF2C4BC4CD2D338FA38C9EA49 - FC7AF9D7A5BEFDEBA308B0EF558F357B2F3A3698010000E6C5D30FBFABF9F4FB - FE7FBD284FEEF316C97F24F011977D8A6B2D728468118794D8A7F9A42D66CE28 - 002C863C312F93F764D43829BF3EFA3849F37EBDA71EFCA422000000CC9948FE - 1FFCC01FF5A294CC972D25FF6D45805A8BBC206FA11C27F9B83CC69C5100580C - 65529E27EFC3B41DAFFD7B71B2E6FD7A510478E5CC9DCDF9AFFE6BCD8E1DE70C - 66010080593BFBCA979BCF9FFC91E6D10F7FA837CA13FEBCD592FFD4D23825FD - A9453E90FA5A0B65CF825000581C79525EC6F5847D75BE76BC9C8B719CC079BF - DE738F7DA979E5950F377B2FF9D666D7EEF307B30000C0AC9C7EE193CD17FFF2 - 7F694EDDFBF1DE284FEAF33669F21F39C0B096E471AE6D9E39A200B058F2A4BC - 96C0D7A4F9DAF1DABF919FB869BCB68F22C0735F785F73C1955104B8A4370700 - 00CC4224FF0FFEC98F354F3FF4B9DE2825F165B21F7D99EC97E3E8538BBFF5CB - 3E6F218F435BCC1C5300583C79D29EC7A11C2769BE767CDC7F63AD979F7FA939 - F5B13F6C2EFE9ACBBC2100000066205EF377FFEFFDBF7A7F8B3FDF1BE5497D5B - 8B64BE368E3EB548DECB3E6F218F435BCC9C5300584C79923E6E029FE66BC7F3 - B9C94EE0C7EFFFD366DFABBEE8E1800000B085E2617F9F7AEF6FF4A23CA11FA7 - 45525FF6A9C5DFFE659FB790C7A12D660128002CAE3C692F93FA5A921FD27CED - F8B063B938C9E333AB277B3C1CF0CCCAC301FF2B0F07040080298A87FD3D7AF2 - 7F6C1EFDF09FF54665625FBBBF3F6FE958DEA7167FCF977DDE421E87B69805A1 - 00B0B8CA447DD43849F3B5E36DC7E2E48EB9F693FCF9C79E689E79F48F9A0B2F - 7B43B3F39C570F660100808D7AF9D98F369FFE4F3FD23CFDD0677BA348D2F3E4 - 3E6F71AC2C06A438EF538BBFEBCB3E6F218F431EB3A01400165B99A88F1A2769 - BEED78C88F455C3BE1636EF5D8CA7301EE7B6F73FE153B9B73F61F5A99030000 - 26F7ECE3FFAAF9F8BF7F67EF6FEC177AA33CA96FBBEA9FCF9571DEE26FF7B2CF - 5BC8E390C7A11CB3201400165F99C48F1A2769BEED78AE7682B7CF7DE9131F6D - 76EEF98B66CF8587BC2A10000026F0D28B5F689EF8F83F6A1EBEFD3DBD512DA1 - 1F672EEFF3167FAF977DDE421E873C0EE59805A200B01CB6BA08501EAF9DF46B - 7F497CF9D12F34CF7DE13F36175C7E75B36BCF5583790000A0CDE9E7FEB479E8 - 3FFF54F3E4A73ED31BE5897C19D7E6CAB86CF1F77AD9E72DE471C8E3508E5930 - 0A00CB6354D2DF96E48F4AFE4BC37E2184D5B9979F7FB13975DF7F5E794BC0CE - 7D879A5DBB3C201000004AA75F7AB679F673FF47F3C93FFEFF0E5EF117097A2D - B1AFCDA538EF6B2DFE4E8F96C7A9853C0E791CCA310B480160B9CCAA081086FD - 720869EEECCA5B025EFEF29F34E71DFC5A0F080400804C3CE8EFF31FFE9F9A2F - 7CF4EEDEA896D0E72D9F2B3F177D5B8BBFCDA3E5716A218F431E8772CC825200 - 583E1B2D0284F2583AD1877D4DDB2F8AB5F10B4F3DBBF280C0F3BEEAB966C739 - D7DB0D000040A7C555FFE7BEF8EEE613FFE1E77B7F2B3FDD9B2913FCBCE5F329 - CEFBD4D238FE164F73298EBE6C218F431E8772CC025300584E9B29028CD2F6B5 - 6DBF3452DCEF9FFCF4C7EC060000A0D3D255FFCF9FFC2FBD519EB8E7FDA838B5 - 721C2DFEF6CEE35A0B791CF238946316DC661241E6DBB0A43FE2344E71D97666 - 7D5B8B02521EA77119D7FA9DCD15476F6E2EB8F21F347BCE39AF37060080E516 - 57FD9F79E49F379FBDF3F6DE2825E86DC97D3EAE1D4B71AD45E29EFA5A0B791C - F2389463964024632CAF48E073A3C6A5FC78ED1740DB2F89B20FEBE79E79E4A1 - E6D92FFC61B3EF92BDCD9E7DD70F66010060F93CFFC4BF6D1EFEE04F374F3CF0 - 406F9412F594D8A7843E1FE773B5BE6CF17776D9D75AC8E390C7A11CB3241400 - 96DF668B00E3CA7F99E47D88B83E7EF9F9979A273EF1E15E706773EE8557BB2D - 000080A512DBFD1FFBCB7FD43C7CE77B7A7FFBBED09B49C97D6A91ACD7C6B57E - 588BBFAF53DFD6421E873C0EE5982532ADE48FF9362CE98F388DF338B6E9A73E - CDF7B7EEAF8D535BDDDABF763CAA5F1B5F73CBADCDB9977E5F73CEB90A010000 - 2CAE975EF842F3C263FFAA79F0037FDC1BA524BD96D0B725FBF9676AE36891AC - E7711A87D4A7F990C7218F433966C9A4648FE557FEACF3718AA34F2DA43892F3 - 324EC97B8AF384BE1C0F4BFACBAFDBD9EC3B706173D9377F6773CE457FD7F301 - 00005828719FFF4B4FFDDBE6D18FFC9BE6F9C7E3E9FE29414FAD96E00F9B2BE3 - 48D2CB38FA320E29CEC7491E8772CC128AE48DEE287FDEF938C5795F6B91A497 - FDB03649F2BF76BCEF920B9B2BDEFCDF37FB5EF5EDBD310000CCB7E7BFF47BCD - 673FF42F9BE79FC813FF3C792FC7B5B8FC7CAD45B25EF6B516CA3EE47128C72C - A948E0E896F2679E8F539CF76D2D92F4D49771DEDA92FCE1C97F3EBEE0EACB9A - CB0E7F5FB3F78213BD310000CC97179F795FF3C593FFB279F2A1CFF74691900F - 4BFAF3F1A8CFE52D92F4328EBEAD85B20F791CCA314B2C9236BA29FFD997EB20 - C6692E8F23214F7D9A4F713F595F1BE72D4FF0C74FFEF3A6100000C03C89C4FF - D193FFAA79E6A1477BA3949CE72D4FE88725FBC312FF6891A4977D8A43EAD37C - C8E3241F97C7E88094D8D14DE5CF3F1F479CC6B538B548CECBBE8C53AB25F6E3 - 25FF7953080000603B8D4EFC531B96F40F9B8B16097A394E73294E2DB4C5218F - 4339A6232249A3DBCA35908F539CF76D2D92F3B6BEAD4D9EFCE72D9E1170D91B - FFAE87050200B0E5BEF270BF0FFFDBE21EFF516D9C2240D92241CFFB140F6BA1 - EC431E87724C87448206E53AC8C729CEFBBC8548C8D3B88C532BC7799B2CF12F - 5B14020EBEE1C666FFABBFD7EB03010098AA789DDF735FF8CDE6D4BD7F3A61E2 - 9FB77192FE68919CE7711AE77148E3D442D9873C0EE5988E89A40C42B9166AE3 - 34578B538BA4BC8CF37E23AD2C10B4FD5B3B9A2BDE745373DEE5279ABDFB8FF6 - C60000B0312F3E7767F3ECE7DED77CF6CF3ED81B45E29C12F3AD6AE9BF91F765 - 9C5A688B9351633A281229486AEB219F4B71DE0F6BFDA47C354EE35ADCD6DA76 - 07D4BE7675EE82AB5FD3BCFA1BBEA3D9B5EFA85D0100008C25AEF69F79FECEE6 - 0B7FF9BBCD335F79A27F9E944FB3E5FF668AA32FE3B616CA3EE471529BA38322 - 618252B92EF2718AF3BE8C534B49792D4EAD1C8FDBDABE2EFF6FF5E7AE78D331 - BB02000068B57AB5FF8EDEA89694A7B9616DDCCF45CB3F9BFF77522BC7D14219 - E77DC8E3508EE9B84892A0A65C1BB5719ACBFBB69692F23C5E9BA8D7C76DADED - 73F9FCDAFFC6BE4B2E682EFDFA63CD79AFF9F666F739AFEDCD0100D0552FBFF4 - A9E6D9CFFF5EF3D85FDDD13CFFC433BD9932198FBE8C6B6D23C763AEFC6F8C6A - 21EF539C8C1AC34A62046DCAF5D136CEFB324E2D25E2E5B8D6E7AD3637EE7C19 - A7F18E955B040E7EDDB1E6DC4B4E28060000744424FD2F3CF1BEE6D4C7EF186C - F18F243925E0B5BE8CCBD676AC9C6FFB77F3F95A0B659CF7C9A831AC88840846 - 29D7493E4E71AD1FD5CAC43C8DF3BE9C6F1B97F3B5CF97C7FA73175F7559F3AA - 6B6F6CF65CF84D6E1300005832B1BDFFF4D31F6DBEF4C09F364F3E1CEFED8FE4 - 385A2D314FFDB0B86D6ED867F2BE1687D4A7F968A1AD0F791CCA31AC1109108C - A35C2B6DE3BC2FE3B65626E5B53EB57C5C1ECBE76A9F1BD6F75BDC2670C9D71D - 6ACE7BF5D166C79E6FF20041008005130FF23B7BFAA3CDB35FB8B379E2E3F70C - B6F747629C5A9990D7FA61F1B8C7CACFE4F3C35A28E3BC4F468D619D487A605C - B5F592CFA5B8D6A716F271B43C09AFC5793F2CCEC7B5CF0CEBF3B63A77F155AF - 692EFCEA43CDB9177D53B363EF372A080000CC999584FFC5BF685E78EAA3CDD3 - 9FB9A779F2E1B4B53F5A2DE1CE93F3B67E589C8F6B9FA9F5A995E368A13617F2 - E3491E27B5395827921C9854B96EDAC6795FC6F9DCF0247C7DB21EFD66E6A21F - 375EDB5241E09C0B5EDBEC39EF9B3C3F000060C6E23EFED3CF7EB479E9994F55 - 12FEB2E509F7A838EFDBE66AF3B5BE8CF3B990FA341FCA38EF935163182A921A - D888DADA29E752E29CE4E3148F6AB5C47C923EC56DE351F1A8D634AFBEE150B3 - FF55AF6BF6EC7B5DB3EB9C5737BBF77DE3CA3C00009BF3F2F37FD19C79E90BCD - E9E73FD93CF7A54F365FB8EB9EC191487CC7696D097919B78DF3BEED33F9E7CA - 78540B791CCA7128C7A1360743F51318D8B8720DB58D87F5E3B47113F751E35A - 5FC6C3E6CA16D6CFC54E81BD075FD39CFF55DFD4ECD8755EB3E7DCD735AFECF8 - 2AB710000014620BFFCEB35F6C4EBFF0C9E6EC99679B2F7FF1A3CD8BA73E3FB8 - B21F52429C5A28E7CA564BC26B497AD9A778D438EFCBF9715AC8E390CFE7468D - 616C298181CDA8ADA3722E8D6B7D6A211FB7B53231AF25F2653FEA586AE5E743 - ED73211DAF1D2BE3D57EA53870E9AB7BBFBB77AC1408C24A91206E27D8D9FFCC - D95DAFED8DCF5B890100164D4AEA57BC72B639FDD2A75692FB10097EB3E36CF3 - E2635F2892FCB22FE37C2E92ED501E4BF379325E4BCCD35CD98F7BAC8CC769A1 - 8C6B7D528E436D0EC69612139886723DD5D657CCE5F3F9B8168F6A6572DE36CE - E7DBE2DA386F712CA4BEF69968A18C87F549390EB539008079364EE29AC6C3FA - 322E5B88243CF5B5CF442B8FB525F1296E3B3E6CAEAD856171DE27E538D4E660 - 62920BA66D9C24368DF3F988F3F932CEE74625E9C3E6CAE3A3C693B4501BA73E - C5A11C27E55CED330000F36CDC84369FCFC7795FCE6FA49509FBB0F1A8CF962D - 8E87723EB4C5219FCF8D1AC3A6482ED82A9324B7F97CC4F97C2D8E243DA4B9D4 - 8625EFB5636D7361D8BF55B6306C2E8CEA73E3CE0100CC935AB23A6C6E585FC6 - C3E6DA5A4ACE6B49FC2473A1762CA4E3F95C5B1CF2F95C390EB539D81449055B - 6D9C64368DF3F988CBF934571B8FD3C649EE272900845173A19C4FCAE3B9DA5C - 6ED4710080AD362A411D96D4E6C7222EE7D35C6DDC3657B661C97B6AE37CA6AD - 85DA38F5290EE5F1A41C87DA1C4C8524825929D7DAB0A4373F16716D9CE6CA71 - 4AE0F3F95ACB13FDD4D73E576BA1361F2D0C8BF33ED4E6726DF30000F3AA2D81 - AD25C1E55CF4C3E2B285DA7CADE5C97EEA6B9FCB5B489F2FE7CB71A88DF33E57 - CED53E035325B960966AEB6DD85C7EAC9C8B7E585CB6306E7160540B93CC0DEB - 435BDC669CCF0000CCC238496BFE995A3CACCF5B18676ED2166A497EDEC2B038 - EF436D2E19770EA64E22C176A8ADBB6173F9B1722EFAB6B9DA38CD8D2A0684DA - 7CB4306C2EB4C5219F4FDA62008045564B8A438ACBB97C7E583C6C2EB5509B8F - 16DA92FED0360E6D7DA8CD25E3CEC1969168B09D6AEB6FD85C792CC6F95C3E1E - 154F7B2E8C13877C3E376A0C00B028CAC4B66D9CCF479CCF8F1B4F7B2EB4C5A1 - 364EF23819770EB69C048379505B87A3E66AF1B07EDCB83617F263E55C28E3B2 - 4F71288FE7C69D030098479326C0F9B188CBF9BC1F16D7E6427EAC9C0BC3E261 - 7DA8CDE56AF36D9F85999058304FDAD6E3B0A4B83C16E37C6ED8789A71D9B71D - 0BB5B964DC39008079346ED29BE6F263E55CF4B5B9D44F3B0EA3C6218DCBF950 - 9B0B6DF33053120BE651DBBA1C951CD7E272AE6D5CEBDBE2B21F762CEF436D2E - 29E76A9F010058046D49732ECDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2 - A43617DAE6615B483098676DEB739CF95A3C6CAED6A738E4E3517D88B81CE77D - 326A0C00B0E8CA24B86D9CCF475C8E47F5290EF978541F86CD853CCE4D3A0FDB - 4AB2C1A2685BABA3E6CBE3B5F971E646F5619CCF84DAD7D40C3B060030CF8625 - C0C312EB346EEBC3A8CF947D18772EB4CD2793CEC3DC9060B068DAD6EC38F3E5 - 67D2789CF969CC853C4EC69D03005824B58478D45C2D9ED65C18351FCA63C9A4 - F3307724192CB2B6F53BEE7CDB7833F36D7118762C37EC1800C02219961C0F4B - BADB8EA5B8EDF393CE27E53899741EE69A448365B0D1643A3F56FB5C9A9BE458 - 3E1EF675A1767C1C1BFD3A008069DB68229C7F5DEDDF18763C8D877DDDB063A1 - 763CD9E831987B120996CDB0353DC9B1DA67F3B9CD1E4F6A730000CB6C54729E - E4739B3D1E6A9F49367A0C168AE48365366C7D8F5AFBE5F1B6CF6FF473A1EDB3 - 0000CB6E9C843D29E737FBB964D8F1515F0B0B490242578C5AEB1B393EEC6B26 - FD7C9B8D7C0D00C076DA48F25CFB9A4913F451FFDDCD1E878527B9A08BC659F7 - 9BF9CCB4FE7D008065364EC2DDF699CD7C6D4ED24FA7EC1AF4D065B34ED825FF - 00007DA312F0491274093F8CA00000EB8D9BA04BE401003667A309F9B85F27E1 - 878C0406469BF43C715E01004CC7A409BC841F8690A8C0C66CE6DC71DE0100F4 - 6D266197ECC3842422305DCE290080E992E8C394485660B69C7300006B49F001 + 00D0010A00000000D0010A00000000D0010A00000000D0013B063DABD2F724EF + 538B8249EA77657D6ABB2B6D4FF386B7FC5AB36BEFF5BD18A0D5D11B6F6E0E1E + 3C3818310BCF3EFB6C73FFBD1F6F1E7AF081C10C00B02DCEBC706773CFBB7FA8 + 179DEEB5972AED4CD65ECEFAB38371F4A985B2A72725B9AC4ADF93BC4F4D0100 + 98BAFDFBF7373FFE536F6FAEBCEAEAC10CB31645805FFEA55F5829080000DB40 + 016026228105601B7DCFF77EBFE47F9B5D73ED75CDDF7BEB8F0C460000CB4901 + 00609B1DBAFE5B0611DBE970EFE710BB31000096950200C0369374CE8F43D7BF + 711001002C1F05000018387CC46E0C006079290000C040DC0670E0E025831100 + C072510000804C140100009691020000648E1EBB691001002C17050000C8C42B + 19DD0600002C23050000281C3F71CB200200581E0A00005038EC758000C01252 + 0000D846B1DD9CF973E0E0413F1B0060E92800006CA37DFBF70F22E6CDF113B7 + 0E220080E5A00000001587BC0E100058320A0000DBC8D3E6E7D7FEFDFB9BC38A + 0000C012510000D846070F1E1C44CCA3C3473C0C1000581E0A0000D0E2E88D37 + ADEC04000058060A0000DBE89AD75F3788985787BC12100058120A000030C4E1 + 239E0300002C070500806D748577CDCFBD7810A087350200CB400100601BB9BF + 7C31781B0000B00C140000B6C935D7BAFF7F511C3D76D3200200585C0A0000DB + C4D5FFC571E55557BB0D000058780A0000DB24924A16C70D37DA0500002C3605 + 00806D72C5950A008BE4E8B19B071100C062520000D826070E1E1C442C82F879 + D9B501002C320500806D10F7FF4B26178F870102008B4C0100601B1CBAFE8D83 + 884572F446B70100008B4B0100601B1C3EE2BDF28B28766E1CBEDECF0E00584C + 0A00003326895C6C878FD8BD01002C2605008019B3FD7FB11DBAFE5B568A3800 + 008B46010060C66CFF5F6C91FC2BE200008B48010060866CFF5F0E8A3800C022 + 5200009821578E97431471DC0600002C1A0500801972E5787978252000B06814 + 000066C8F6FFE571F4D84D8308006031280000CC88E47FB95C79D5D5CD818397 + 0C460000F34F01006046BC3F7EF928EA00008B4401006046E2FDF12C97E3276E + 1D440000F34F010060063C357E391D387870E55600008045A000003003B6FF2F + 2F0F03040016850200C0168B2BFF476F94242EABC3D72BEE00008B410100608B + 1D92202EB5B80DC0C300018045A00000B0C50E1F911C2E3BB77800008B400100 + 600BC5F67F5787979F373C00008B400100600BD9FEDF0DFDE73CDC3C180100CC + 270500802D74FCC42D838865E7560F0060DE2900006C9103072FF18EF80E895B + 3D62270000C0BC520000D822EEFDEF1EB77C0000F34C0100608B1C3DE6DDFF5D + E3960F00609E2900006C01DBFFBB297EE6F1B3070098470A00005BE0861B5DFD + EF2AB77E0000F34A0100600B1C3DE695705D75FCC4AD83080060BE2800004C59 + 7F1BF8C1C188AE899FBDDB3F008079A4000030651EFE87350000CC2305008029 + 3BEC55709D670D0000F3480100608A6CFF27C41AB8E6DAEB06230080F9A00000 + 30451E004772830741020073460100608A0E79051C03D60200306F140000A624 + DEFFBE7FFFFEC188AE8BB5106B0200605E2800004CC9E1231EFCC65A47DD0600 + 00CC1105008029B1E59B925D2100C03C5100009882A337DE2CD1A3EA90570202 + 0073420100600A0E1F71F59FBA1B8EDD34880000B6970200C02675FD616FCF3E + FB6C73C7876E1B8C285D73ED75CD8183970C460000DB4701006093BABEC5FBFE + 7B3FDE7CE0FDEF1D8CA8F1360000601E2800006C52D7B7FF3FFCD003CD430F3E + B0B21380BAA36E030000E6800200C02678D77BD3DC77EFC757FABBEFFCE84ACF + 7A575E75F54A0300D84E0A00009B104FFFEFBAB80520DC775FBFA7CE2E000060 + BB2900006C42D793BAD8FA9FDC7DE74706113587BD0E1000D8660A00001B144F + 76EFFAB6EE871F7C7010F5DF0690170458EBC0C1832B6F040000D82E0A00001B + E4C9EEEBB7FDDF7D97E7000C73C331B78C0000DB4701006083DCD31D3B00D65E + F13FE94180431D52340200B6910200C006D8FE5FDFF2EF7580C3796B0400B09D + 14000036E0F8895B065177A5A7FF97BC0E70B8C3473C0C1000D81E0A00001BE0 + 89EE4DF3F043F507FE791DE070476FBC6965270000C0AC2900004C28B6FEC713 + DDBBEEBE961D006D3B03587548010900D8060A000013F2F0BFBEB644FFB1538F + 7A1DE008878F780E0000307B0A000013B2FD7FF4557EBB00868B0701C6832401 + 00664901006002FDC4CDF6FFFB47DCE77FF22E0F021CC5DB0000805953000098 + 8027B8F7B5DDFF9FC40E00AF031CCEAD2400C0AC2900004CE090ABB62BC6D9E2 + EF3680E1FA0F93741B0000303BBB063DAB7654FA5A8BE249EA87B55DCD256FF8 + 6F9A9DBB2FEDC5C0028B2DDB37DC78F360D45D91D8DF71FB6D8351BB0B2FBAA8 + F9866FFAE6C188367FF5971F1B4400B317AF25FDDAD77DDD4A4132B528507EEB + 9B8E36AFBFF6BA352DE65F3A7DBA79EAC927075F0D5374F6CC23CDA3F7FCBB5E + F4724B3BDBD242EA19211258D64ADF93BC4F2D12FAD447F124F5A9EDAEB43DCD + 1BDEF26BCDAEBDD7F7626081FDC05B7F64E51DEE5DF7EF7FFF3DCD1FFCDE7B06 + A376F147E4CFBEF31706236A1E3B75AAF9E99FFCB1C10860FA2269DFD74BF223 + 81DFB76FFFCA385CD31B6FD4C93B3FDAFCD6BB7EC5AD5E4CD79917EE6CEE79F7 + 0FF5A2D3BDF652A59DC95A1404521FC97F592008654F4F4A725995BE27799F9A + 020074545C2179C73B7F71A5EFBA9FFFB9778CBDBDFF677BDF330F4D1CEE9FFC + CCDBBD3611988A48EA23C1BFF2CAAB9B2BAEBAEAABC9FE568822C02FFF92222F + 53A400301391C00230C2A1EBDF28F91F98E4DEFE93777E6410D1E6F8895B0711 + C064E2D6B4EFF9DEEF6B7EE2A7DEDEFCCA6FFCF64A1FE3D8ADB695C97F88FFF6 + 56FF3780E953000018C3E1231EFE17267DB0DFA8D705E2C192C0F8E2D6AAE3DF + 7EEB5713FEBFFFA36F5B196F663BFF666CD77F17D8B8B4CD9D55E97B92F7A9B9 + 05003A28AEFCFFC2BFF8D5C1A8DBC6BDFF3F177FA4325C6CA38DEDB4901CBDF1 + E6E606AF8A5C794EC6C9BB3ED2E9F323AEB2C76B430F5FFFC6B9BBA56A23FF3F + 015AB90560265292CBAAF43DC9FBD41400A083E20FF11F78EB0F0F46DDB691FB + D5E34A95AB44C3DDF1A1DB9ADF7CD7AF0C46745D5CD18D6DDCAC8ADF3BBFF5AE + 5FEDCCF332E24A7F6CB18F5B84E6F9392A0A004C9502C04C44020BC010B6FFF7 + C5D39E37F2C7F7C9BB5CD91E256E03F08C0912CF85582FAE82FFF84FBD7DE9EF + 398FA43FB6F5C71B54A208E421AAC0B42900000C91AEC230F9FDFFC946BFAE4B + 22F98F074D4290F4D5C579124580652B96C5FF3D7FFB3BBE73E5AD2991FCFBFF + 39C05652000018C21F62AB367A253F760DC47DBC0C67A7098C16C9F2F77CEFF7 + 0F468B2D0ACC3FF0D61F5979C6CCDFFA3BDFA9F003CC840200C010F1E025FA36 + 7325DF2E80D1A2D8B46C5736D918E7CB70F18ABB453E5752E21FDBFCE3FF1680 + 5952000068117FA479C7715F5CC17FECD4A383D1E4E229DE8C160F9C04468B07 + 252E1A893F300F1400005AD8FEBFEAE49D9B4BE05DD11C8F1D2784FBEF73BE8C + F2D717E84189B15B41E20FCC0B050080169EC4BD6AB30949BC41401160B4D871 + 12570981E122A99EF7226DFCEF180FF77BC73B7F51E20FCC0D0500808A7E22E6 + 814CC9C93B37FF2A3FAF031CCF0D1285CEBB4FB16C2C878FCCEF9B33E2769E48 + FCE3E17E9EED01CC130500800A5BB1574D23F90F76008CE7E831CF0180711C9A + C31D00D75C7B5DF30FFFF13B9A1F78EB0F4BFC81B9A400005071D83BD9BF6A5A + F7237B1DE07862E789874F769BF3643C9160CFCBB912FFBBC47DFE3FF1536F77 + FE02734D0100A060FBFF5AD3DA0110EC02188F1D28DDB699376E744D5C71DF6E + F14602F7F9038B420100A020F95AB5D9D7FF95BC0E703C5E0708E3B9E6F5DB57 + 008862716CF7FF9EEFFD3EDBFD8185A1000050907CADDAECEBFF4A76008C2792 + 09AFA1EC36E7CA78B66BBB7D3CDD3F927FDBFD8145A300009089A4CB959C5577 + DC7EDB209A8E781DE0346F295866F3FC8473981771BBD62C5F9D99AEFAC7D3FD + 01169102004046D2B52A92F57870DFB44DEBA182CB2E9E70AE18D55D71FE319E + 2BAFBA6A106DADB8D7DF557F60D129000064E6F1B552DBE5EE2DBA526F07C078 + 22F93FE46D149DF5F043D32FBE2DABAD4EC8E35C8CA7FBC7BDFE008B4E010060 + C0F6FFB5B6EA817DF150C1ADD859B08C0E1F51908251AEB872EB0A00F1FF17E2 + 09FFF3F0B601806950000018B0FD7FD556DFABEF0167E35194EA2EB7008C6FAB + 7600C415FFBFFFA36F730E024B450100A027FEC0F30EE7555B9DA04FFBE182CB + CC6D00DD6497CCF8E24180D394B6FCC73DFF00CB460100A04792B5D6C9BBB6F6 + 3EFD486E1E3B756A306298E3276E1944409B696DD18FDD04B6FC03CB4C0100A0 + C7BDD66BDD7DE7D6DCFF9F731BC078222199E56BCE60114D639BFED11B6F5E79 + CABF2DFFC0325300003A2FFED88B7BADE98B7BFF6771FFF1563D647019599FDD + 6387CC6436FB1C80B8DFFF07DEFAC38311C0F25200003ACFF6FFB5B67AFB7F32 + AB42C332387EC2BDC85D136FCB607C070E6C6C974C1480E3417FEEF707BA4201 + 00E83CF758AF35CBADF96E03184F3CE46CABDF750E8B6C230F028CE4FFC77FEA + ED76D8009DA20000745ADC5B2DB15AD57F38DFECAE3CCE6AB7C132387ACC5B2A + 605AE2F77E24FF7EFF035DA30000749A2B3F6BCDFAF57CB378D8E0B238EC5615 + 6835C953FB25FF40972900009DE6AAEA5A715FFE2CC5330066FDDF5C54B1C559 + C1AA5B62470ED395927F4FFA07BA4A0100E82CDBFFD78AA78E6FC783C7DC0630 + BEC347EC02E892E73C2473AA24FF000A004087DD70A3ABFFB993DBB41DDF8300 + C777C80E006835ACA01BBB6724FF000A0040871D3D76F32022CCFAFEFF24761D + D8EA3C9E485E8EDE68DD42CDBE96E43E92FF78D59FE41F400100E8A8B852B491 + D7462DABB8177F3B93F0ED2A3E2CA2C347EC028071C5EFFABFF7D61F198C0050 + 00003AC9C3FFD6BA7B9B1FC4E74180E38BAB99AE64C268EEF907584F0100E824 + AF545BEBE45DDBFB3A3EB7014CE690F50BEBE4CF0090FC03D42900009D63FBFF + 7AF37005DE6D00E33B7EE29641042429D997FC03B45300003AE7F8895B071161 + 5EB6DF7B1BC0F8FA45AC4B062396D5FDF73927261549FFDF7BEB0F4BFE015A28 + 00009DE3556A6BCDCB7BF8E31680C74E9D1A8C18259E0500ACDAB76FFFCA95FF + FC560000D65200003AC503D4D6BBFBCEEDBDFF3F77728EFE7799771E64096B1D + FFF65B25FF00232800009D72F88887A7E5E2AA7BBC02705E780EC0F822D191EC + 0000935000003AC5F6FFB5E62DE1761BC064EC02000026A1000074C6D11B6FB6 + FDBF308FEFDF771BC0F8BCCE120098840200D019878FB8FA9F8B2BEDF1FEFD79 + E3C9E7E38BD7595E73ED75831100C0700A004027C4957F4F4D5F6B5EAFB4C7AE + 84797A2EC1BCBBE1D8CD83080060380500A0130ED92ABDCE3C3F70EFEE39BC35 + 615E79AE0500302E0500A0136CFF5F2BAEB0C703F7E6D5C9BB3C07605C76B700 + 00E3520000969E0469BD79BFC23E8F0F279C6747DD0600008C410100587AF1F4 + 7FD65A842BEC8A00E38B0297375C0000A32800004BCFBBD2D75B84E4FAE45D0A + 0093F09C8BE533CFB7E900B098140080A576E0E025CD95575D3D181116E5CAFA + DD73FA968279758342D7D2F1360C00A64D0100586AEEFD5F6F51AEAC47F273FF + BD1F1F8C18E59A6BAF5B29780100B4510000969AEDFFEB2DD29575B7014C46C1 + 0B0018460100585AB6FFAF17F7142FD2B6620F029C8C821700308C0200B0B48E + 9FB8651091DC71FB6D8368313C76EA510F429B4014BCDC060000B451000096D6 + 614F455F6711AFA8DFED368089287C01006D140080A5D4BF127A7030223C76EA + D4CA15F545E33680C9287C01006D140080A5E45EE8F54E2EE86BF5E21680285E + 309E287C79F6C57278CE6B0001983205006029B90ABADEA2DDFF9F5BD4E2C576 + 397EE2D641C422F3FC0B00A64D0100583AF12A34DBFFD78A2BE88B9C4C781DE0 + 640E791D200050A100002C9DC3475CFD2FDD7FEFC707D1628AFFFD17E9F585DB + 6DFFFEFD2B853000809C0200B0745CFD5CEFE45D8BBF85FE6E0F039C88421800 + 50520000964A5CF58CAB9FAC8A2BE7CBF024FD652862CCD2D11B6F722E00006B + 2800004BC555CFF596E5CAB9D7014EEE90876102001905006069C4D54EDBFFD7 + BBEFBEC5BEFF3FA7083099C3479C0F00C02A05006069C4D54E5B9ED7BB7B895E + A1E76D0093E9BF11E392C10800E83A05006069B8DAB95E5C315FA6A7E72F5331 + 6356BC0D000048140080A5E0B56775CB76C57C591E68384B478FDD348858440F + 3DF8C0200280CD5300009682879DD5C5FBF3978DDB002673E55557BB0D60813D + B7443B7800D87E0A00C052B0FD7FBDB872F8D8A94707A3E5E13680C91D3F71CB + 200200BA4C010058787175D3F6FFF5EEB8FDB641B45CE23600DBA22773D80E19 + 00A0470100587892FFBA65BE577E598B1B5BE5C0C1832BB702004CD3323D6416 + BA42010058781E72B6DEB26EFF4F96F1D9065BCD79024C9B87B2C2E251000016 + 5A6CFF776573BD654F90FB058E538311E3387AE3CD830860F37EF35DBFBAD485 + 6658563B063DABD2F724EF538B8249EA77657D6ABB2B6D4FF386B7FC5AB36BEF + F5BD1898B2E3DF7E6BF33DDFFB7D8311C93FF999B72FFD7DF2F1738F9F3FE3FB + E55FFA0557EC16CC4FFCD4DB9B6BAEBD6E3082F1C5FF0FC8DF2271FF7D1B2B0C + 1F3870C9CA6D4461A5F8FAD8A995DF23927FA6EECC0B7736F7BCFB877AD1E95E + 7BA9D2CE64EDE5AC3F9BF5A985B2A72725B9AC4ADF93BC4F4D0100E6CCCFBEF3 + 17BFFA87097D7165FCA77FF2C706A3E515CF7EF8FB3FFAB6C18871DCF1A1DB9A + DF7CD7AF0C462C0205006AE2DEFB877BC9F84A92FF5CFFC1A83117BFFF25E62C + 2C05809948492EABD2F724EF5353008039125BFFFFE13F7EC76044F281F7BDB7 + F9DDDFF9EDC168B9FDC2BFF8D566FFFEFD8311A34482F0F69FFC310FEE5A200A + 00C42D5D91E03FF4D0832BC9BD67A0B0B41400662212588085E4A166751BDDE6 + B988FC213C9928961CF24A40985B91E8F777EAFCEACAAD5C3FF283DFD7FCFCCF + BD63A5A87BC7873EE8771EB0690A00C0C2F26EF3BA2EFD8178F22EF7B34FEAF0 + 11AFCD847911097FECDA8AE773BCED7FF8E195A43F6ED389643F8E014C9B0200 + B09062FBBF7BFFD78BE4BF4BDBBBEFBEF323838871C5B313DC3601DB23EED18F + 2BFC79C21F57F7E3A17A6ECD01664101005848B6FFD775ED8A78FCC16C4BECE4 + BC12106627AEE4FFFBDF7FCF4AB21F0F688D2BFC127E60BB2800000B490253D7 + C564D86D0093534083AD15497F5CD9FFE99F7CDB4AE2FF07BFF71E5BFA81B9A0 + 00002C1C5B98EB626B6917FFC0F45EFBC9F56FA1B9643002A6217E07E7497FDC + DBEF957CC0BC51000016CEE1231EFE57D3D5ADF0F107B62B6B93BBE146BB0060 + B3621B7F24FA697BBFA41F98770A00C0C23974BDA798D79CBCABBB0FC4BBDB6D + 00133B7ACC6D34B05151708D57F5C583FCE2AABF2224B0281400808562FB7FBB + 2E3F0CCF6D00938BB768C4AD00C078E26A7F3CC13FB6F8C7BBF9E3557D008B46 + 01005828B6FFD745F2DFE5274AC7D5B7B8FF96C97818208C96EEED7FFBE009FE + B6F8038B4C0100581871E5FFA8FB96AB3C093F760174F716888DF2360D681789 + 7F6CF34FF7F67B6D1FB00C1400808571E87A57FFDB7479FB7F72C7EDB70D22C6 + 1545B5B8AD06589527FEB6F903CB4601005818878F48546AE28F550FA0EADF06 + E00ADDE4DC56037D127FA00B14008085E04A653B5BDF57DDED618013F3560DBA + 4EE20F74890200B0106CFF6F77FF7DB6FF275D7E15E246F59FADE15900748FC4 + 1FE822050060211C3F71CB2022175BDEBD026F557C2FDC063039B7D7D025F13B + E2DFFFFE7B9A7FF2333F2DF1073A470100987B070E5EE27DE52D3CFC6F3DB701 + 4C2E6EAF899D00B0ECA248F84F7EE6EDCD1FFCDE7B140B814E520000E69E7BFF + DB79FDDF7A6E03D818B7D9B0CC62BBFFCFFFDC3B9A5FFEA55FE8C5DEE30F7497 + 020030F78E1EF3EEFF36777B00E03A6E03D818B7D9B0ACEEF8D06D2BDBFDED98 + 02500000E69CEDFFEDBCF6AE9DDB002617E7599C6FB02CE2F7633CE4EF37DFF5 + 2B7E57020C28000073ED861B5DFD6F73C7EDB70D224A6E03D818B7DBB02C22E1 + FFDF7FEE1D1EF20750500000E6DAD1635E4FD6C6D3FFDBD9EABB31C74FDC3A88 + 6071C5EEA878D05FF400ACA50000CCADFE96E4838311B9F8C3D683ACDAC5D53F + 0592C9C5F9E6961B16DD6FBDEB57FD7E0468A10000CC2D0FFF6BE70AF76877DC + 6EEBEF4638EF5874AEFC03B4530000E6D661AF256BE5FEFFD1BC0D60639C7700 + B0BC140080B964FB7FBB789FB52B5CE3F13680C9C579E7618000B09C140080B9 + E46164ED4E7AF7FFD8BC0D60630E1FB10B00009691020030970EB902D9EAE45D + AE6A8FCB6D001BE3FC0380E5A40000CC9DD87EBC7FFFFEC1885C24B31E003819 + B7014C2ECE3FB70100C0F2510000E68EEDC7ED24B393731BC0C61C3D76F32002 + 009685020030776C3F6E27999D9CDB0036C64E1C00583E0A00C05C397AE3CD92 + 8E1691C44632CBE4EC9CD898435E0908004B450100982B878FB8FADF4612BB71 + 764E6CCC0DC76E1A4400C032500000E686078F0D2789DD38B7016CCC35D75ED7 + 1C3878C96004002C3A0500606ED86EDCCEF6FFCDB383626314E5006079280000 + 73C3F6FF7692D7CDB38362638EBA0D00009686020030176CFF1F4EF2BA79F7DF + FBF141C424AEBCEAEA9506002C3E0500602EC4D3FFA9B3FD7F3A7C1F37CE2E00 + 00580E0A00C05C9060B4B3FD7F7A4EDEE57BB911873D9F030096820200B0EDE2 + 29E3B618B7B3FD7F7AEEBED3F772230E1C3CB8F246000060B1290000DBCEBDFF + ED6C5B9FAEF87E7A16C0C6DC70CC6D3A00B0E81400806D67FB7F3BDBFFA7CF6D + 001B7348A10E00169E0200B0AD6CFF1FEE4F6FFFE020625AECA8D8186FEA0080 + C5A700006CABE3276E1944941E3B75CA76F52DF0D8A94757BEB74CEEA8DB0000 + 60A1290000DBCAD3C5DB9DF4C0BA2DE37BBB31B10320760200008B490100D836 + B1F53F9E2E4EDD1DB7DF36889836CF01D8B8438A7600B0B01400806DE3E17FED + 628BFA430F3E3018316D716B45BC1180C91D3EE2390000B0A8760C7A56A5EF49 + DEA7160593D4EFCAFAD47657DA9EE60D6FF9B566D7DEEB7B3190F9D977FEA21D + 002DEEF8D06D1E00B8C5BEE77BBFCF032837E8A77FF26D2BCF5260EBFDC44FBD + BDB9E6DAEB0623C6F1233FF87D83085828675EB8B3B9E7DD3FD48B4EF7DA4B95 + 76266B2F67FDD9AC4F2D943D3D29C96555FA9EE47D6A0A003025712FF1DFFFD1 + B70D46C022F9DDDFF9EDE603EF7BEF60C4565200989C02002C28058099880416 + 60E60E1F711F312C2AB7EF00C062520000B6C521EF138785D57F80E725831100 + B02814008099F32A31587CC74FDC3288008045A10000CC9CEDFFB0F80E7B1D20 + 002C1C050060A6E2CABFEDFFB0F8E20D1EDEA200008B45010098A943D7BFD1F6 + 7F5812C74FDC3A88008045A00000CCD4E123AEFEC3B2B09B0700168B02003033 + 71E53F1E00082C07E734002C160500606662FB3FB05C3CD41300168702003033 + B6FFC3F2397AE34D9EEB01000B420100988903072FB155189694DD3D00B01814 + 00809990FCC3F2B2BB0700168302003013478FDD348880651305BED8E50300CC + 37050060CB456270E555570F46C032B2CB0700E69F0200B0E52406B0FCECF201 + 80F9A700006CB9E3276E1D44C0B28A5D3E6E030080F9A600006CA97E52707030 + 0296D90D37DA050000F34C0100D852B60543771C3D76F3200200E6910200B0A5 + 0E7B3F387446ECF6F1C04F00985F0A00C096B1FD1FBAC7AE1F00985F0A00C096 + 910840F71CBDD16D000030AF1400802D231180EED9BF7FBF577F02C09C520000 + B6442400910800DD73F888677F00C03C520000B6840400BAEB90022000CC2505 + 00604B440200745324FF87BC010400E68E02003075B6FF03878F280202C0BC51 + 0000A6CEF67F40211000E68F02003055F107FFD11BBDFE0FF026100098370A00 + C054B9EF17488E1E530C048079A200004C95FB7E81E4CAABAE6E0E1CBC643002 + 00B69B02003035B1FD3FEEFB0548FC4E0080F9A100004C8DEDFF40E9F8895B07 + 1100B0DD140080A9397EE2964104D077E0E0C1955B010080EDA700004C45DCE7 + EB8F7CA0C6C30001603E28000053E13E5FA0CD61B70701C05C500000A6C2153E + A04DDC06A0480800DB4F0100D834DBFF81510E1FB10B0000B69B0200B06937DC + E8EA3F30DC213B000060DB2900009B76F4D8CD8308A06EFFFEFDCDD11BFDAE00 + 80EDA400006C4A6CFD8FFB7B0146397CC42E0000D84E0A00C0A678F81F30AE78 + 1060EC040000B6870200B0295EEF054CE290DF1900B06D1400800DB3FD1F98D4 + F113B70C220060D61400800D3B7EE2D64104309E7EE1F092C108009825050060 + C3BCD60BD88878160000307B0A00C086789817B051760F01C0F650000036E4F0 + 110FF20236269E1D12B7020000B3A500006C88EDFFC06678852800CC9E020030 + B1A337DE6CFB3FB0295E210A00B3A700004CECF01157FF81CD89DB00AEB9F6BA + C1080098050500602271E5DF13BC8169B8E1D8CD830800980505006022876CDB + 05A6C4B3440060B614008089D8FE0F4C8B1D4500305B0A00C0D8FCB10E4CDB51 + B70100C0CC280000638BA7FF034C531415BD55040066430100189BF776035BC1 + B345006036140080B11C38784973E555570F4600D37383E22200CC8402003016 + F7FE035BE59A6BAF5B293202005B4B0100188BEDFFC05652640480ADA700008C + 64FB3FB0D514190160EB290000231D3F71CB2002D81A516454680480ADA50000 + 8C74D813BA8119B00B0000B696020030545C913B70F0E06004B075141B01606B + 29000043B92207CC4A141BE38D0000C0D65000008672450E98A51B8EDD3C8800 + 80695300005AC56BB96CFF0766E990D70102C0965100005A1D3EE2EA3F305BFB + F7EF5F293E0200D3A70000B472250ED80E8A8F00B035140080AAB8021757E200 + 66EDE88D37F9FD03005B60C7A06755FA9EE47D6A513049FDAEAC4F6D77A5ED69 + DEF0965F6B76EDBDBE17C3C2F881B7FEC8CA1FE18C76FFBD1F6F7EFEE7DE3118 + D165F104FB9FF8A9B70F466CC66FBEEB579B3B3EF4C1C1A8BB623D7933C2647E + E407BF6F10010BE5CC0B7736F7BCFB877AD1E95E7BA9D2CE64EDE5AC3F9BF5A9 + 85B2A7C70E00609DB8F266FBFFF84EDEF5D14144D74531E8B153A7062336E3F0 + 11BF830060DA140080750E5DFF46DB6F2770F24E0500569DBCF3238388CDE8BF + 85E492C1080098060500601D57DEC6F7D0830F348F9D7A743082A6B9E3F6DB06 + 119BE56D0000305D0A00C01A5EC13519C91EA57E51C86D00D370F498E79000C0 + 342900006BC4F67FC667FB3F356E03988E2BAFBADA6D000030450A00C01AB6FF + 8FCFF67FDAD819323DC74FDC32880080CD520000BE2AAEB4D9FE3FBEBB3DFD9F + 166E03989EC3762501C0D42800005F25F99F8CEDFF0CE33680E93870F0E0CAAD + 0000C0E62900005FE5815BE38BABBB719517DA7CE0FD7F3C88D8ACE3276E1D44 + 00C0662800002B62FBBFAB6CE373759751E2F9108A44D371C8EE2400980A0500 + 6085EDFF93F19037C6619D4C87D79302C0742800002B6CB11D9FEDFF8CCB7322 + A6E7F0110F030480CD52000006EFDA3E3818318AEDFF8CCB6D00D313B701C44E + 000060E31400000FFF9B906DDD4CC27A998E48FE0F792520006C8A0200E03DDB + 1378F6D9675DD165226E03989EC3473C070000364301003ACEF6FFC9DC2D9963 + 426E03989E7810A0DB000060E31400A0E36CFF9FCCC9BBDCFFCFE43EF0FE3F1E + 446CD6D11B6F1E4400C0A41400A0E3FC313DBED8FE6F3B371B71B707474E8DA2 + 25006C9C02007498EDB493B1FD9F8D523C9A9EFE6D4B970C4600C0241400A0C3 + BC577B32B6FFB31927EF520098961B6EB40B0000364201003A2CDEABCD785CC1 + 65B3DC06303D478FB9750900364201003ACAF6FFC9DC7FEFC707116C8C22D2F4 + C49B4BE256000060320A00D051B6FF4FC6F66DA6C13A9A1E0F030480C9290040 + 07C595FFA3EEA19D88EDDB4C8375343DDE600200935300800E3A74BDABFF9388 + 6DDBB17D1B36CB6D00D31385CCB8950900189F020074D0E123FE689E846DDB4C + D31DB77F7010B1596E650280C9280040C7B86A3639DBB699263B4AA627DE64E2 + 61A600303E0500E818DBFF272359632BDCED3680A988E4DFEF3400189F020074 + CCF113B70C22C661FB3F5BE1E45D76954C8B5B9A00607C0A00D021070E5EE2DD + D913BAFFDE8F0F22981E3B4BA6276E69721B00008C4701003AC4BDFF9379E8C1 + 079AC74E3D3A18C174B90D607ADC060000E35100800E397ACCBBFF2771C7EDB7 + 0D22983EB7014C8F5B9B00603C0A00D011B6FF4FCEFBDAD94A6E03989EF8DD16 + BFE30080E11400A0236EB8D1D5FF49D8FECF2CB80D607ADCE20400A329004047 + 1C3D76F320621CB6FF330B1F78FF7B07119B75FCC4AD83080068A300001DD0DF + 1E7B7030621CB6FF330BFD9D26A7062336237EC7B9CD0900865300800EF0F0BF + C9444266FB3FB372F24E0F039C16BFEB0060380500E880C35E9135110919B3E4 + 7693E9F1BB0E00865300802567FBFFE42464CC92DB00A6277ED779182000B453 + 008025E7C1589389442C12329825BB4EA6E7F011BB0000A08D02002CB943AE86 + 4D4422C676B0EB647AFCCE0380760A00B0C4622BECFEFDFB0723C62111633BB8 + 0D607AE277DED11BBDF614006A14006089D90A3B19DBFFD94E1F78FF7B07119B + 75F8885D000050A300004BCC56D8C9D8FECF763A79E74707119B65F71300D429 + 00C0928A2DB0FE009ECCFDF77D7C10C1EC3D76EA513B50A6E890570202C03A0A + 00B0A46C819DCCB3CF3EEB0A2CDBCE3328A6E7F8895B061100902800C0128A2B + FFDE853D99BB25FFCC0145A8E9B9F2AAAB9B03072F198C0080A000004BC8D6D7 + C99DBCCBFDFF6C3FB7014C97422800ACA500004BC8F6FFC9D8FECF3C711BC0F4 + 1C3D76D32002008202002C19DBFF2767FB3FF344316A7AE236806800409F0200 + 2C9978FA3F93B1FD9F7912B701DC7FAF37524C8B5D0000B04A0100968C3F7627 + 27D962DEFCA9DB00A6E6B067A200C0572900C01289275EDBEE3A99D86E1DCF00 + 807972F79D76A54CCB8183079B6BAEBD6E3002806E53008025E2DEFFC99DBCCB + FDD6CC1F0FA69CAE1B8EB9350A008202002C11DBFF27E74A2BF34A716A7A0E29 + 8E02C00A05005812B6FF4FCEF67FE699E2D4F4783B0A00F42900C092387EE296 + 41C4B85C61659EB90D60BA8EBA0D00001400605978D2F5E45C6165DE29524D4F + EC00889D0000D0650A00B00462EB7F3CE99AF1C5ABFF6CFF67DE29524DD72185 + 52003A4E0100968087FF4DCE9555164114A9EEF8D06D83119B7583DF9500749C + 02002C01DBFF27E7DE6A16C5C9BBEC0298966BAEBD6EE581A900D0550A00B0E0 + E2BE56DBFF27F3D0830F348F9D7A743082F9E66D15D3E56D0000749902002CB8 + C3475CFD9FD41DB7DB52CD62B9DB8E95A971CB14005DA600000BEE90AB5913B3 + FD9F45E33680E9E93F34D56D0000749302002C30AFB59A9CEDFF2C22B7014CD7 + F113B70C2200E81605005860B6FF4FEE6E4FFF6741B90D607A3C381580AE5200 + 80051557FE6DFF9F9CEDFF2C2AB7014C4F3C38356E050080AE5100800575E8FA + 37DAFE3FA1C74E9D5AB905001691DB00A6EBF8895B071100748702002CA8C347 + 5CFD9FD4C93B5D4165B1DDF1A10F0E2236CB0E2A00BA48010016505CF9F72EEB + C979FD1F8BCE1A9E1EBF4701E82205005840B1FD9FC9D8FECF32E8BFC5E2D460 + C46679902A005DA300000BC8F6FFC9D9FECFB2B096A7E7E88D3779960A009DA2 + 00000BE6C0C14B6C5BDD005BA75916D6F274D9510540972800C08291FC4F2E9E + 9C6EFB3FCBC26D00D3654715005DA200000BE6E8B19B0611E3BADBBBFF59326E + 03989E28AAC6CE2A00E80205005820F147EA95575D3D1831AE93774996582E6E + 03982E3BAB00E80A05005820FE489D5C6CFF3F6907004B266E03705BCBF4D859 + 0540572800C002397EE2D641C4B86CFF6759D905303DB1B3CA6D000074810200 + 2C88FE1FA8070723C665FB3FCBCACE96E93A7EE296410400CB4B010016842DAA + 93B3FD9F65F6D8A947DD06304587BD0E10800E50008005E18FD3C9DD7FEFC707 + 112C27B7014C4FECB0F2905500969D02002C80B837D5F6FFC99DBCCBD57F969B + 1D2ED365A71500CB4E01001680E47F63EEF6AE74969CDB00A6CB0E80C5F7D8A9 + 538308801A05006029C595D17806002C3BB7014CCF3CBE09C0EFB1C944510C80 + 760A00B0009EF307E044E20FE6DFFD9DDF1E8C60B9DDF1A10F4A12A7E4D9679F + 1944F3E38EDB3F388818871D0000C32900C002882DBEB6F98E2725FFAE02D115 + B1E6FFF79F7B8722C0143CFCE08383687EC46EA63B3E6497C7B8FEE0F7DF3388 + 00A8D935E859B5A3D2D75A144F523FACED6A2E79C37FD3ECDC7D692F860DFBAB + BFFC8B95EDA9AFBEF4B2C10CA5F843F9B7DEF5ABCD5FFDC5C70633D00D4F3DF9 + 6473CF5F7E6CE5F7C33C6E635F049164FFEEEFFCABE6F4E9D38399F9110F34DD + D1FB8BE38AABAE6EF6ECD93398251745F25FFB3FFF45F3B062392CAEB3671E69 + 1EBDE7DFF5A2975BDAD9961652CF0891C0B256FA9EE47D6A91D0A73E8A27A94F + 6D77A5ED69DEF0965F6B76EDBDBE17C354C483AAF6EDDF3F1811BCF20FFAF6F7 + 7E3744A2C878E216AB45DA61E5F7FF7A7EFFC39238F3C29DCD3DEFFEA15E1495 + D8972AED4CD6A22090FA48FECB0241287B7A5292CBAAF43DC9FBD41400000000 + A64D016026228105000000969C02000000007480020000000074800200000000 + 7480020000000074800200000000748002000000007480020000000074800200 + 0000007480020000000074800200000000748002000000007480020000000074 + 8002000000007480020000000074800200000000748002000000007480020000 + 0000748002000000007480020000000074800200000000748002000000007480 + 0200000000748002000000007480020000000074800200000000748002000000 + 0074800200000000748002000000007480020000000074800200000000748002 + 0000000074800200000000748002000000007480020000000074800200000000 + 7480020000000074800200000000748002000000007480020000000074800200 + 0000007480020000000074800200000000748002000000007480020000000074 + 8002000000007480020000000074800200000000748002000000007480020000 + 0000748002000000007480020000000074800200000000748002000000007480 + 0200000000748002000000007480020000000074800200000000748002000000 + 0074800200000000748002000000007480020000000074800200000000748002 + 0000000074800200000000748002000000007480020000000074800200000000 + 7480020000000074800200000000748002000000007480020000000074800200 + 0000007480020000000074800200000000748002000000007480020000000074 + 8002000000007480020000000074800200000000748002000000007480020000 + 0000748002000000007480020000000074800200000000748002000000007480 + 0200000000748002000000007480020000000074800200000000748002000000 + 00748002000000007480020000000074800200000000748002C0C69D1DF4A38C + FB390000802E93636D3105805938FBF2D38308000080929C6926140066E1F4F3 + F70F220000004A72A6995000000000800E5000000000800E500098BE782045F1 + 500ADF6600008076EB72A64A5EC566C94C27D3B600D37C7EDC62050000985C2D + AF6ACBAFE45D1350009885D34FDD378800000028C9996642016073A2DA34ACE2 + D43FF6D28B5F59E9010000586F35671A955F0D3BCE080A00000000D0010A00D3 + 932A516555EA6CF3FCA9CF0F620000004AFD9C696D1EB53ACEE7D9040580E92A + 176CDF639F7C6410010000505A9B33D5F32A364D01606BA5C56AD1020000B493 + 3BCD8002C0E68D5AA0FDE32F9FFEC44A0F0000C0AA332FDC3988C6CBADD83005 + 808D29175E8C872DC6B3CDD9979F1EC4000000AC353C9F5A7F7CD8E769A10030 + B9B4D0DA165C5A9C6B8F9F39ED3900000000A533CFDF3F88927A4EB52ACDB71D + A7850240BB7231D516D7A8CFAC8ECFBCA400000000503A73F62B83288C9F63AD + 1AE733F428008C168B67D402CA8FA7CFA7B97EFCE25365550B0000807EAEB43E + 875A1D873CAE293F4F8502C0E6A545565B6CAB8BF0A5D39E01000000505ACD95 + 56F3A7B5D25CED18135000586FD8A2CA175EED736D5F7BB679F2337600000000 + 94FAB9527B2EB55E9E8FB57D5D1876AC93140036A76D41A505B97AFC992F3ED5 + 9C5D736F0B000040B7458E14B9D2AAF5B9D45A6DF38C41016072E5822B1768DB + F1A679F945BB0000000092D51C29CFA992344EC7DA8E33260580E9CA1766DEC2 + 59AF02040000C8BCF8C2277AFF733567AA37A64401603A462DCEFEB1979E8FC5 + 0D00004038FB625C241D9D4BB51F67020A001B37EE225DFDCC734FDE37880000 + 00589B23D5F3A8B5861D63040580C9A485962FB8722EEFD7C64F7EDA0E000000 + 80A49F23ADCF9DFADAFA509B63040580E1F245356C61959FCB3FBB3AF7CC979E + 6ACE7A0E000000C04A6E1439529E33AD2AE7F263A5713FD7790A0075A31657EA + 53ABA91D3FDB9C3E6317000000403F375A9B2FADCFA172E5F1B6CF8561C73A4B + 016063CAC59416619AAFF5FDF8650F02040000C872A3D57CA9DEE7C79372CC18 + 1400A6AF5CA0F9F86CF3CCA98FC624000040A7F573A3B5F9525F39664A140036 + 67D822CDC7AB739FFF3305000000807E6E343C7FAA8FD9200580C9E58B2F29E7 + A26F6F2F9F761B000000D05DFD9CA89E2FADB650F6A136C718140046CB17D7B0 + 0536EA7369FE6CF3C27377AECC00000074513F275ACD91D6CBE76BC793713F47 + 8F0240BB518B2CF5A925B563796B9A17BFAC0000000074D76A4E54CB99A285D4 + 8761C74AC38E759A02C0C6958BAA5C8CEDEDB1FB1500000080EEEAE744F57C69 + B5853C4ECA31635200D8BCDAE2AC8D57E79EF9D2539E030000007452E4429113 + E539D2DA16DAC66C8202C0C6E48B3029E7A22FDBCB5F8D3D07000000E8A2B5F7 + FFAFE6486B5B28FB509B634C0A00E3C91759B9D0F2B9DAE752BC76EC39000000 + 4017F573A1F539D2FA71A8CD25B5CF318402C070C31651BED8421A0F6BABD5AD + 073FF49F7B3D000040B7F473A1F539D2F09694E3D2B0639DA700307D6941E60B + B3169F6D5E7CE6832B330000005DD0CF815673A2BE5A9CCF31250A00D3D1B638 + 632EAF6845BC3A7EE9D9BB7A3D00004037F473A07A7EB41A97D27136490160E3 + D202CC17625A98790BF5F1973FE936000000A03BFA39D0FADCA83ECEE7438AF3 + 3926A00030BE7CB1950B2ECD8DD356AB5C8F7FFAF35E070800007442E43E9103 + 9579D1F82D97CF95C768A10030DAB0C5942FBA5C9A1FDD9E7FE28F7A3D0000C0 + 72EBE73EF5BCA8DE4A6DF3C9B063F428004C4F5A8C69D1E57DADF5AB5D5FFEA4 + 0701020000CBAF9FFBACE642F516F23E9F6793140036A7B640CB7E587BD96D00 + 0000C0D25BDDFE3FCEB6FF30AA6703140026932FBA32AE8DC7692FBB0D000000 + 586AFD9C67D27BFEA385B671483D63500018CF4616555A94798B059FB7FEBCDB + 0000008065B6BAFDBF3D2F5ADB26B591AFE91C0580E9A92DD871E6BC0D000000 + 585E6B9FFE5FB630EE1C9BA400B071B5C598CFD55A59DD5AAD7A3DF3E8BFEEF5 + 000000CBA59FEBACE63EEB73A27C5C6B496D8E0928004CAEB6D86A8B30CD8DD7 + 1EFDAB3FE9F5000000CBA59FEBD4F3A0F696ABCD85DA1C4328008C6FDCC59516 + 67FA7C8A8757BA9EF9D2D3CD8B4FFF875E0C0000B01C22C7895C27CF7D86E746 + 213F368E713FD7790A00D3515BA8A985BC8FC59D16788AFBEDE92FFC61AF0700 + 00580EFD1C676DDEB33E2F0A795FB6907A3641016063F245588B9318E70B3C7D + A6DE3EFF5FEE6CCE9EF9422F060000586C91DB448E53E63DEB5B9933E5D26742 + 1933210580C98CBBC8D2C2CC1767B4BC081071DEFAF3CF3DFEBBBD1E000060B1 + F5739BE1F9CFDA38A4388D4719F773F428004C4F6DC1D65AB9E0D7CE3F7297DB + 00000080C5D7CF6D86E73FEBE7CB1652CF2629006C5CBE186B7192E6CA9616FC + DAF6ECA34F7918200000B0D022A789DCA696F3F45B2D478A96CBE7CA980D5000 + 98DCB88B2D2DD07C918ED71EFF8CDB00000080C5D5CF69EAF94EBD85723CCAB8 + 9F63400160BA6A0BB7D652C5ABAC82F5DBA37F715FF3E273277B310000C06289 + 5C26729A5AAED36F794E34AC85D433050A009B932FCA5A9CA4B9BC0D5FF04F3D + F4EBBD1E000060B1F473997A9ED36F6DB9502E9F2B633648016063C659746991 + 962D5FEC11D7DB237FFED1E665AF040400001648E43091CB94F9CDDA56CB8DCA + 36CA389FA1A000303DB5C59ACF454B0BBC5CF4F5F6CC17ED0200000016473F87 + A9E737FD362C374A2DA9CDB1090A009B575B8CF9224D71392E17FFFAF6D9FFF4 + 8776010000000B217297C861CABC66B5D572A190E2725CAACD310105808D1BB6 + F8CA85DBD6CA13617DB30B0000005804FDDCA59ED7F4DBE8FCA7DF42EA6B861D + 63080580E9C817692D4ED25C6A69F1A713617DFBEC7FFA23BB00000080B9D6BF + FAFF47110D69790E94B75C3E57C66C9202C0D64B8BB65CE8E509107DBD3DF385 + DFE8F5000000F3A99FB3D4F3997EABE540A9E563B69002C0E6D416685AB8650B + 296E5BF0D1AF6F9FFD13CF02000000E6D3CAD5FF5ECE52E631AB6D580E142DE4 + C7F256AACD31260580E919B610F3059CB77CD197F1DA6617000000308FDAAFFE + B7E53A292E5B9B61C7988002C0E68DBB50D3A24E2D2DFC7472E46DFDFCCA2E80 + D39FECC5000000F3217294FAD5FF51B94EF4794BF2B834EC1863500098AEB420 + F3455C8BDB5A7972AC6D8F7FE6977A3D0000C07CE8E728F5FC65B5D5729FBC85 + 613153A200B0F5CA455CB6DA09126DFDB147FEFCA3CD8BCF9DECC5000000DB2B + 7293C851CABC65749E536B21F56C110580E9A82DD4722197715BAB9D24ABEDD1 + BB7EB6D70300006CAF7E6E52CF5B565B2DE7C95B688B73B53926A400307DC316 + 6B5ACCA9A513A23C49DADBE39FF97CF3FC93EFEEC5000000DB237292C84D6A39 + 4B7BCB73A0BC85D4E76A736C8202C0F4B42DD87C4197715B2B4F90B5ED737FF6 + AEE6ECD9AFF462000080D98A5C2472925AAEB23E9F19D6425B9CABCDB1010A00 + 5B63D8A24D8B3AB5F22419DD9E7DF4A9E69947BD1610000098BDC8452227A9E5 + 2AED2DCF7DF216529FABCDB1490A00D3D5B670F3855DC66DAD3C61523BB3D27F + E6FDBFEBB5800000C04C450E12B9489E9BD45B2DC7C95B688B73B53936480160 + EB0C5BBC6971A7964E90F2A419DEBE78CF3FEDF5000000B3D1CF41EAF9497BCB + 739EBC85D4E76A734C8102C0F4B52DE07C819771B4FCC4686B6B2B6CA7FEF27E + 0F040400006622728FC841F29C64F82E806879AE935A688B73B539364101606B + 0D5BC46991E7AD3C31F213A77E627DEEC3BFDEBC7CE60BBD180000606B44CE11 + B947998FF45B99AB94394D3E4E2DA43E579B634A760D7AA66F47D127F938FF4C + DE428AA348931FCB5BD39C7EF674B3FBDC4F37FB0FDEBA3206000098B6C73EF1 + 0F9B2F7FF233BD2825FBD1E72D25FF791CC97CEA530B6D71AE36C72629006C9D + 7E82DE97E2D5C47DFDF1F25819972DF4E3AF7CFE0BCD85575FD0EC3EF70DFD69 + 0000802989ADFF0FFCC9BFED4529C14F497E8AF3A43FE248DED33825F8790BA9 + CFD5E69822B7006C9DB6059D2FF8324E2D3F59529CB7F2048B5B017EC3AD0000 + 00C054F5B7FEC72BC8EB79C8FA56E633790B6D71AE36C714D801B0B5D295FAB0 + F6AA7D5F793C6FA19C2BE7433F762B000000306DFDADFF9FED4591F0A716C97D + 19A7A43FB594DC972DA43E579B63CA1400B65E9EA8E7C619E75F5BB6B076FC95 + CF7FB1B9F0EAF3DD0A0000006C5A7FEBFFEFF5A232E92F13FFD4A7C43FC5F95C + DE421EE76A734C8902C0D64BC97A2813F75C3E571E4FE37CBE366E9AC7EFFF48 + 73F1353737BB765FBC3206000098D4E9E73FD5DCFFFB6FEF45B5643FB594E0E7 + 71B448E2531F52B29F5AA936C716F00C80ADD7B6C0CBF934975A7EF2E4E3BCE5 + 27DEEA49F7E57BFF6973F6E5AFF462000080C9442E1139C5DABCA3CC3FCAD696 + C7A496ABCD85DA1C536407C06CA4ABF421BF629FCF87F258FE99722E6F61357E + E6D12F37FB0E3CD1ECBDE0C695310000C0B89EFEDC2F349FFBF30FF7A25AE25F + F6798B043EF56DAD549B638B2800CC4E4AD44319AF26EF7DA3E6D27CDEAF9D7B + F2814F3517BEE6B266F7DEAF5B190300008CF2FC537FDC7CFA7DBFDE8B6A09FF + B0E43FB532E12F13FC7C2E3F567E8E2DA000303B29410F795CAA1DCB93FBBC85 + 5ADF8F9F7FFC63CDF957BCC9F30000008091E2BEFF873FF48F9BD3CF3ED71B45 + 329F92FE7192FF48E0CB7188BE6C6C130580D94A497A589FB0B71F2FFB5A0B6B + E3D3CFBED8ECDC796F73DED7FCF566C78E7306F30000006BC57DFFA7FEEA7F6E + 9E78E073BD5124F079C29F27FDB5024024F5A94F097E1997F2B9DA71B68002C0 + ECE5C97AAE1C8794D0E7C7F2B9DA7C58ED9F79F4F1E69CF31F6EF6BDF2AF0FE6 + 000000D67AE233FF6BF3C89D1FED4591C8E7C97FEA538B71ADA5843F5A390E79 + 9CABCDB145140066AF4CDAF33E573B96CFD55A928F77344F3DFC5073C165BB9A + 3DFB0F0DE6000000FA9E3BF52F9BCFAEBCEF3F12F7B6A4BF2DF98F043E8F5342 + 9FE27C2E29C7CC8802C0F62893F5D4E77152CEE57D3917EA9F7BFC53773717BF + F6EB9B5DE75CD59F0600003AEFF4576E6FEEFFC39FEF4591C0E7497F9EF8E771 + 4AF6A345229FFAB285D4876173CC8802C0F6A825EC49390EFD247EFDD7A57179 + BCDE3FFBD8473C1410000058110FFD7BF0B67F3878E85F2DD12F13FE721C2D92 + F8D4CA71C863B69902C0F649C979C813F57C3EE4C792DA5C8871DBE7FB0F053C + F36C14016EF550400000E8B078E8DF237FF6B6E6E9471EED8D22714F05805AF2 + 9FCFA716497D1E97097F1AE7F2B9DA71B69802C0F6AA25EBA12D89CFFB90CFD5 + E643FE99A679FEC9679A975FFE68F38A57FD3545000000E8A048FEBF70F78F37 + 8F7FF2B3BD514AEE5382DF16D75A9EECA716F23EC5B9DA1C33A000B0BDDA92F6 + 508E43CCE52D19369FA47847F3ECA38F37FB0E3CD1ECBDE0C6C11C0000D015F1 + C4FF2FDC75672F4A097EDE22B1CFE35A4B897D6AE55CC8E390C76C130580ED57 + 4FD2D7CE87729C1BF5F9F5F1930F7CAAD977F1A3CDDE0B8EAD8C010080E5F7D4 + C3FFAC79E843FFB117E5497F4AF66B711AB7B532E1AF25FAF95CED3833A20030 + 1F5282DE96C4471F274A3ECE5B288F25ED7114012EB86CA7D70302004007C4EB + FE3EF381DFED4591B8D792FD322E5B4AF0CB16C742C4A94F71AE36C70C2900CC + 87B6243DA4F1B0CF84FC73B5AF09EBE7E3F58017BEE6D266F7DEAF1BCC000000 + CBE6F9A7FEB8F9E41FFD522FAA25FB794BF329E96F6B29C94F497DDEA738E431 + DB4C01607EE4C97A5B029F8B63792B8D9A5B8D1FBFFF4F9B8BBEF6B266F7DED7 + 0D6600008065F1C2D3EF6B3EF107FF5B2FCA13FD978A71DE22C1CFE332E18F56 + 9B8B96CBC7E531B68102C07CA925E8D1E7F3A11C97F2AF29FBB03E7EECBEDB15 + 01000060C944F27FFFBFFBA7BDA896D89771DE0F6B29994F497F2DD1AFCDB1CD + 1400E64B5B921ED238FA3881F27129E6F2F9B6CF24FD581100000096C7DAE43F + 5A7ED5BFDC0110897DEADB5AE421A9C538A4E43ECD33C71400E6CFB0C43D8D6B + 9F893EB5248F73ED9F5104000080C5B73EF9CF93FC32CE5B9A2F13FEB285BC4F + 71688BD9660A00F3A996A0B725F3A1ED58FEB5792BAD9D5304000080C5554FFE + A3D5AEFA8FDB22914F7DD972F9B83CC6365300984F65929EC66D097CA81D6BFB + 6CAEFE1945000000583CEDC97F4AF86BF3A9E5097F6A29C9CFE3D49214E773CC + 210580F99527E6A312FBF2B3A9E56A73496D7E87220000002C90D5E43F92F55A + 825F7BF27F9EECA79627F9691CF2F990C7A5B679B69102C07CCB13F35A429FFA + 38B96A497C4DDBE7EAF38A00000030FF9E7DF23DCD27FFE0E77B5199E0A7D696 + FCE771ADA5243FE29012FB349FB4C5CC110580F99727E665929EC6D1C749564F + E2D7CBBF2EF5ED5F1F45807DAF7CB4D97BE1B1C10C0000302F9E7AE89DCD67DE + FFFFEB4579729FB748FE23818FB8EC535C6B9123448B38A4C43ECD276D317346 + 016031E4897999BC27A3C649F9F5D1C7499AF7EB3DF9C0A71401000060CE44F2 + FFC007FFA817A564BE6C29F96F2B02D45AE405790BE538C9C7E531E68C02C062 + 2893F23C791FA6ED78EDDF8B9335EFD78B22C0CB67EE685EF1AABFD6ECD871CE + 6016000098B5B32F7FA5F9C2C91F6D1EF9C8877BA33CE1CF5B2DF94F2D8D53D2 + 9F5AE403A9AFB550F62C080580C59127E5655C4FD857E76BC7CBB918C7099CF7 + EB3DFBE8979B975FFE4873CE2BBFADD9BDFB158359000060564E3FFFA9E64B7F + F9BF34A7EEF9446F9427F5799B34F98F1C60584BF238D736CF1C5100582C7952 + 5E4BE06BD27CED78EDDFC84FDC345EDB4711E0D92FBDBF39FF8A6F6B76EDBEB8 + 37070000CC4224FF0FFCC98F374F3DF8F9DE2825F165B21F7D99EC97E3E8538B + BFF5CB3E6F218F435BCC1C5300583C79D29EC7A11C2769BE767CDC7F63AD979E + 7BB139F5F13F6C2EFADA4BBD2100000066205EF377DFEFFDBF7A7F8B3FD71BE5 + 497D5B8B64BE368E3EB548DECB3E6F218F435BCC9C5300584C79923E6E029FE6 + 6BC7F3B9C94EE0C7EEFBD366DF2BBFE4E1800000B085E2617F9F7EDF6FF5A23C + A11FA745525FF6A9C5DFFE659FB790C7A12D660128002CAE3C692F93FA5A921F + D27CEDF8B063B938C9E333AB277B3C1CF0CCCAC301FF2B0F07040080298A87FD + 3D72F27F6C1EF9C89FF54665625FBBBF3F6FE958DEA7167FCF977DDE421E87B6 + 9805A100B0B8CA447DD43849F3B5E36DC7E2E48EB9F693FCB9471F6F9E7EE48F + 9A0B2E7D43B3F39C570D660100808D7AE9998F359FF94F3FDA3CF5E0E77AA348 + D2F3E43E6F71AC2C06A438EF538BBFEBCB3E6F218F431EB3A01400165B99A88F + 1A2769BEED78C88F455C3BE1636EF5D8CA7301EE7D5FF38ACB7736E7EC3FB432 + 0700004CEE99C7FE55F3897FFF73BDBFB19FEF8DF2A4BEEDAA7F3E57C6798BBF + DDCB3E6F218F431E8772CC825000587C65123F6A9CA4F9B6E3B9DA09DE3EF7E5 + 4F7EACD9B9E72F9ADDE71FF2AA40000098C00BCF7FB1F9F227FE51F3D06DEFED + 8D6A09FD3873799FB7F87BBDECF316F238E47128C72C100580E5B0D54580F278 + EDA45FFB4BE22B8F7CB179F64BFFB139FFB2AB9A5D7BAE1CCC0300006D4E3FFB + A7CD83FFF9A79B273EFDD9DE284FE4CBB83657C6658BBFD7CB3E6F218F431E87 + 72CC825100581EA392FEB6247F54F25F1AF60B21ACCEBDF4DC0BCDA97BFFF3CA + 5B029ABDB11BC003020100A0F4C2F3CF34CF3EF27F349FFAE3FFEFE0157F91A0 + D712FBDA5C8AF3BED6E2EFF468799C5AC8E390C7A11CB380140096CBAC8A0061 + D82F8790E6CEF6DF12F0CC9F34E71DFC3A0F080400804C3CE8EF8B1FFD9F9A2F + 7EECAEDEA896D0E72D9F2B3F177D5B8BBFCDA3E5716A218F431E8772CC825200 + 583E1B2D0284F2583AD1877D4DDB2F8AB5F1F34F3EB3F280C0F3BEE6D9E6ECEE + EBEC060000A0D3E2AAFF738FBEABF9E47FF8C5DEDFCA4FF566CA043F6FF97C8A + F33EB5348EBFC5D35C8AA32F5BC8E390C7A11CB3C0140096D3668A00A3B47D6D + DB2F8D14F7FB273EF371BB010000E8B474D5FF0B27FF4B6F9427EE793F2A4EAD + 1C478BBFBDF3B8D6421E873C0EE59805B7994490F9362CE98F388D535CB69D59 + DFD6A28094C7695CC6B57E6773F9D19B9AF32EFB07CDDE73CFEB8D010060B9C5 + 55FF673EFFCF9BCFDD715B6F9412F4B6E43E1FD78EA5B8D622714F7DAD853C0E + 791CCA314B209231965724F0B951E3527EBCF60BA0ED9744D987F5734F3FFC60 + F3EC97FEB0D977F1DE66CFBEEB06B30000B07C9E7BFCDF360FDFFE33CDE3F7DF + DF1BA5443D25F629A1CFC7F95CAD2F5BFC9D5DF6B516F238E47128C72C090580 + E5B7D922C0B8F25F26791F22AE8F5F7AEEC5E6F14F7EA417DCD19C7BC1556E0B + 000060A9C476FF47FFF21F350FDDF1DEDEDFBECFF76652729F5A24EBB571AD1F + D6E2EFEBD4B7B590C7218F433966894C2BF963BE0D4BFA234EE33C8E6DFAA94F + F3FDADFB6BE3D456B7F6AF1D8FEAD7C657DF7C4BB3F792EF6FF69EAB100000C0 + E27AE1F92F362F3CFAAF9A073EF8C7BD514AD26B097D5BB29F7FA6368E16C97A + 1EA771487D9A0F791CF2389463964C4AF6587EE5CF3A1FA738FAD4428A23392F + E394BCA7384FE8CBF1B0A4BFFCBA9DCDBE031734977ECB7735BBCFFFBB9E0F00 + 00C04289FBFC5F7AFADF368F7CF4DF34CF3D164FF74F097A6AB5047FD85C1947 + 925EC6D1977148713E4EF23894639650246F7447F9F3CEC729CEFB5A8B24BDEC + 87B54992FFB5E37D175FD05CFEE6FFBED9F7CAEFE88D010060BE3DF7E5DF6B3E + F7E17FD93CF7789EF8E7C97B39AEC5E5E76B2D92F5B2AFB550F6218F43396649 + 450247B7943FF37C9CE2BC6F6B91A4A7BE8CF3D696E40F4FFEF3F1F9575DDA5C + 7AF8FB9BBDE79FE88D010060BEBCF0F4FB9B2F9DFC97CD130F7EA1378A847C58 + D29F8F477D2E6F91A49771F46D2D947DC8E3508E596291B4D14DF9CFBE5C0731 + 4E73791C0979EAD37C8AFBC9FADA386F79823F7EF29F3785000000E64924FE8F + 9CFC57CDD30F3ED21BA5E43C6F79423F2CD91F96F8478B24BDEC531C529FE643 + 1E27F9B83C4607A4C48E6E2A7FFEF938E234AEC5A945725EF6659C5A2DB11F2F + F9CF9B42000000DB6974E29FDAB0A47FD85CB448D0CB719A4B716AA12D0E791C + CA311D11491ADD56AE817C9CE2BC6F6B919CB7F56D6DF2E43F6FF18C804BDFF8 + 773D2C1000802DF7D587FB7DE4DF16F7F88F6AE31401CA16097ADEA778580B65 + 1FF23894633A24123428D7413E4E71DEE72D44429EC6659C5A39CEDB64897FD9 + A21070F00D3734FB5EF57D5E1F0800C054C5EBFC9EFBE26F37A7EEF9D30913FF + BC8D93F4478BE43C8FD3388F431AA716CA3EE47128C7744C246510CAB5501BA7 + B95A9C5A24E5659CF71B696581A0EDDFDAD15CFEA61B9BF32E3BD1ECDD7FB437 + 0600808D79E1D93B9A673EFFFEE6737FF6A1DE2812E794986F554BFF8DBC2FE3 + D4425B9C8C1AD341914841525B0FF95C8AF37E58EB27E5AB711AD7E2B6D6B63B + A0F6B5AB73E75FF5EAE655DFF89DCDCE7D47ED0A0000602C71B5FFE5E7EE68BE + F897EF699EFEEA13FDF3A47C9A2DFF37531C7D19B7B550F6218F93DA1C1D1409 + 1394CA75918F539CF7659C5A4ACA6B716AE578DCD6F675F97FAB3F77F99B8ED9 + 15000040ABD5ABFDB7F746B5A43CCD0D6BE37E2E5AFED9FCBF935A398E16CA38 + EF431E87724CC745920435E5DAA88DD35CDEB7B59494E7F1DA44BD3E6E6B6D9F + CBE7D7FE37F65D7C7E73C9371C6BCE7BF57734BBCF796D6F0E0080AE7AE9C54F + 37CF7CE1F79A47FFEAF6E6B9C79FEECD94C978F4655C6B1B391E73E57F63540B + 799FE264D4185612236853AE8FB671DE97716A29112FC7B53E6FB5B971E7CB38 + 8D77ACDC2270F0EB8F35E75E7C42310000A02322E97FFEF1F737A73E71FB608B + 7F24C92901AFF5655CB6B663E57CDBBF9BCFD75A28E3BC4F468D61452444304A + B94EF2718A6BFDA85626E6699CF7E57CDBB89CAF7DBE3CD69FBBE8CA4B9B575E + 7343B3E7826F769B0000C09289EDFDA79FFA58F3E5FBFFB479E2A1786F7F24C7 + D16A8979EA87C56D73C33E93F7B538A43ECD470B6D7DC8E3508E618D4880601C + E55A691BE77D19B7B53229AFF5A9E5E3F2583E57FBDCB0BEDFE236818BBFFE50 + 73DEAB8E36CD9E6FF60041008005130FF26B4E7FAC79E68B77348F7FE2EEC1F6 + FE488C532B13F25A3F2C1EF758F9997C7E580B659CF7C9A831AC13490F8CABB6 + 5EF2B914D7FAD4423E8E9627E1B538EF87C5F9B8F699617DDE56E72EBAF2D5CD + 05AF39D49C7BE13737CDDE6F5210000098332B09FF0B7FD13CFFE4C79AA73E7B + 77F3C443696B7FB45AC29D27E76DFDB0381FD73E53EB532BC7D1426D2EE4C793 + 3C4E6A73B04E243930A972DDB48DF3BE8CF3B9E149F8FA643DFACDCC453F6EBC + B6A582C039E7BFB6D973DE377B7E0000C08CC57DFCA79FF958F3E2D39FAE24FC + 65CB13EE5171DEB7CDD5E66B7D19E77321F5693E9471DE27A3C630542435B011 + B5B553CEA5C439C9C7291ED56A89F9247D8ADBC6A3E251AD695E75FDA166FF2B + 5FD7ECD9F7BA66D739AF6A76EFFBA69579000036E7A5E7FEA239F3E2179BD3CF + 7DAA79F6CB9F6ABE78E7DD832391F88ED3DA12F2326E1BE77DDB67F2CF95F1A8 + 16F23894E3508E436D0E86EA2730B071E51A6A1B0FEBC769E326EEA3C6B5BE8C + 87CD952DAC9F8B9D027B0FBEBA79C5D77C73B363D779CD9E735FD79CD9F1356E + 21000028C416FE5D67BFD49C7EFE53CDD933CF345FF9D2C79A174E7D6170653F + A48438B550CE95AD9684D792F4B24FF1A871DE97F3E3B490C7219FCF8D1AC3D8 + 5202039B515B47E55C1AD7FAD4423E6E6B65625E4BE4CB7ED4B1D4CACF87DAE7 + 423A5E3B56C6ABFD4A71E09257F57E77EF58291084952241DC4EB0B3FF99333B + 5EDBEC3DF7BC95180060D1A4A47EC5CB679BD32F7E7A25B90F91E0373BCE362F + 3CFAC522C92FFB32CEE722D90EE5B1349F27E3B5C43CCD95FDB8C7CA789C16CA + B8D627E538D4E6606C2931816928D7536D7DC55C3E9F8F6BF1A85626E76DE37C + BE2DAE8DF316C742EA6B9F8916CA78589F94E3509B03009867E324AE693CAC2F + E3B28548C2535FFB4CB4F2585B129FE2B6E3C3E6DA5A1816E77D528E436D0E26 + 26B960DAC64962D3389F8F389F2FE37C6E54923E6CAE3C3E6A3C490BB571EA53 + 1CCA7152CED53E030030CFC64D68F3F97C9CF7E5FC465A99B00F1B8FFA6CD9E2 + 7828E7435B1CF2F9DCA8316C8AE482AD3249729BCF479CCFD7E248D2439A4B6D + 58F25E3BD6361786FD5B650BC3E6C2A83E37EE1C00C03CA925ABC3E686F5653C + 6CAEADA5E4BC96C44F32176AC7423A9ECFB5C5219FCF95E3509B834D9154B0D5 + C64966D3389F8FB89C4F73B5F1386D9CE47E920240183517CAF9A43C9EABCDE5 + 461D0700D86AA312D461496D7E2CE2723ECDD5C66D73651B96BCA736CE67DA5A + A88D539FE2501E4FCA71A8CDC1544822989572AD0D4B7AF36311D7C669AE1CA7 + 043E9FAFB53CD14F7DED73B5166AF3D1C2B038EF436D2ED7360F0030AFDA12D8 + 5A125CCE453F2C2E5BA8CDD75A9EECA7BEF6B9BC85F4F972BE1C87DA38EF73E5 + 5CED333055920B66A9B6DE86CDE5C7CAB9E887C5650BE3160746B530C9DCB03E + B4C56DC6F90C00C02C8C93B4E69FA9C5C3FABC8571E6266DA196E4E72D0C8BF3 + 3ED4E69271E760EA24126C87DABA1B36971F2BE7A26F9BAB8DD3DCA86240A8CD + 470BC3E6425B1CF2F9A42D06005864B5A438A4B89CCBE787C5C3E6520BB5F968 + A12DE90F6DE3D0D687DA5C32EE1C6C198906DBA9B6FE86CD95C7629CCFE5E351 + F1B4E7C23871C8E773A3C600008BA24C6CDBC6F97CC4F9FCB8F1B4E7425B1C6A + E3248F9371E760CB49309807B575386AAE160FEBC78D6B73213F56CE85322EFB + 1487F2786EDC390080793469029C1F8BB89CCFFB61716D2EE4C7CAB9302C1ED6 + 87DA5CAE36DFF65998098905F3A46D3D0E4B8ACB6331CEE7868DA719977DDBB1 + 509B4BC69D03009847E326BD692E3F56CE455F9B4BFDB4E3306A1CD2B89C0FB5 + B9D0360F3325B1601EB5ADCB51C9712D2EE7DAC6B5BE2D2EFB61C7F23ED4E692 + 72AEF619008045D09634E7D25C7EAC9CABF5E31EAB1D4F7D8A436D9CF7A12D4E + 6A73A16D1EB685048379D6B63EC799AFC5C3E66A7D8A433E1ED58788CB71DE27 + A3C600008BAE4C82DBC6F97CC4E578549FE2908F47F561D85CC8E3DCA4F3B0AD + 241B2C8AB6B53A6ABE3C5E9B1F676E541FC6F94CA87D4DCDB0630000F36C5802 + 3C2CB14EE3B63E8CFA4CD98771E742DB7C32E93CCC0D09068BA66DCD8E335F7E + 268DC7999FC65CC8E364DC39008045524B8847CDD5E269CD8551F3A13C964C3A + 0F734792C1226B5BBFE3CEB78D3733DF168761C772C38E01002C9261C9F1B0A4 + BBED588ADB3E3FE97C528E9349E761AE493458061B4DA6F363B5CFA5B9498EE5 + E3615F176AC7C7B1D1AF030098B68D26C2F9D7D5FE8D61C7D378D8D70D3B166A + C7938D1E83B9279160D90C5BD3931CAB7D369FDBECF1A4360700B0CC4625E749 + 3EB7D9E3A1F69964A3C760A1483E5866C3D6F7A8B55F1E6FFBFC463F17DA3E0B + 00B0ECC649D893727EB39F4B861D1FF5B5B090242074C5A8B5BE91E3C3BE66D2 + CFB7D9C8D700006CA78D24CFB5AF9934411FF5DFDDEC715878920BBA689C75BF + 99CF4CEBDF07005866E324DC6D9FD9CCD7E624FD74CAAE410F5D36EB845DF20F + 00D0372A019F244197F0C3080A00B0DEB809BA441E006073369A908FFB75127E + C8486060B449CF13E71500C0744C9AC04BF86108890A6CCC66CE1DE71D0040DF + 661276C93E4C482202D3E59C0200982E893E4C89640566CB390700B096041F00 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1777,7 +1777,7 @@ object AboutForm: TAboutForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000D8764DF3FF0764077F316BD20BEE0000000049454E44AE426082} + 00000000806DD734FF7F4F2A7E33C72A40270000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512@2x.png' @@ -1809,11 +1809,6 @@ object AboutForm: TAboutForm Value = 100.000000000000000000 end> ControlCollection = < - item - Column = 0 - Control = LauncherLabel - Row = 1 - end item Column = 0 Control = AuthorsLabel @@ -1843,6 +1838,11 @@ object AboutForm: TAboutForm Column = 0 Control = FFmpegLabel Row = 7 + end + item + Column = 0 + Control = Layout1 + Row = 1 end> RowCollection = < item @@ -1891,20 +1891,6 @@ object AboutForm: TAboutForm item Value = 50.000000000000010000 end> - object LauncherLabel: TLabel - Align = Client - AutoSize = True - StyledSettings = [FontColor] - Margins.Left = 20.000000000000000000 - Size.Width = 535.000000000000000000 - Size.Height = 50.000000000000000000 - Size.PlatformDefault = False - TextSettings.Font.Family = 'Nexa' - TextSettings.Font.Size = 26.000000000000000000 - TextSettings.Font.StyleExt = {00070000000000000004000000} - Text = 'AErender Launcher' - TabOrder = 0 - end object AuthorsLabel: TLabel Align = Client AutoSize = True @@ -1916,7 +1902,7 @@ object AboutForm: TAboutForm TextSettings.Font.Size = 16.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'Created by Lin Stilson // Further Development by Lily Stilson' - TabOrder = 1 + TabOrder = 0 end object DescriptionLabel: TLabel Align = Client @@ -1929,7 +1915,7 @@ object AboutForm: TAboutForm TextSettings.Font.Size = 14.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'An advanced GUI for Adobe After Effects Render Engine' - TabOrder = 2 + TabOrder = 1 end object FromRussiaWithLoveLabel: TLabel Align = Client @@ -1942,7 +1928,7 @@ object AboutForm: TAboutForm TextSettings.Font.Size = 16.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'From Russia with '#55357#56473 - TabOrder = 3 + TabOrder = 2 end object CopyrightsLabel: TLabel Align = Client @@ -1956,7 +1942,7 @@ object AboutForm: TAboutForm Text = 'Adobe After Effects and Adobe After Effects Render Engine are pr' + 'operty of Adobe Systems inc.' - TabOrder = 4 + TabOrder = 3 end object WebsiteLabel: TLabel Align = Client @@ -1971,7 +1957,7 @@ object AboutForm: TAboutForm TextSettings.Font.StyleExt = {00060000000000000004000000} TextSettings.FontColor = claWhite Text = 'aerenderlauncher.com' - TabOrder = 5 + TabOrder = 4 OnClick = WebsiteLabelClick end object FFmpegLabel: TLabel @@ -1987,7 +1973,180 @@ object AboutForm: TAboutForm TextSettings.FontColor = xFFDDDDDD TextSettings.WordWrap = False Text = 'FFMPEG: Undetected. Feature will be disabled.' + TabOrder = 5 + end + object Layout1: TLayout + Align = Client + Size.Width = 555.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False TabOrder = 6 + object Path2: TPath + Align = Left + Data.Path = { + 730100000000000085EB6C4233336342010000003E0AB5413333634201000000 + CDCC644100008C42010000000000000000008C4201000000C3F52E4200000000 + 010000005C8F6842000000000100000066669A4200008C420100000033337B42 + 00008C420100000085EB6C42333363420300000085EB6C423333634200000000 + 6666414233336B4101000000CDCCF04100003242010000006666604200003242 + 010000006666414233336B41030000006666414233336B4100000000CD4C0643 + 00008C4201000000CDCCA34200008C42020000001F05AC42CDCC3A4202000000 + 9042B4426666BA4102000000E27ABC420000000001000000D8A3124300000000 + 0100000049611043CDCC4C4101000000F828D242CDCC4C4101000000E47ACC42 + 3433E74101000000D8230C433433E7410100000053F80943CDCC244201000000 + D923C842CDCC2442010000007B94C24200006442010000000A97084300006442 + 01000000CD4C064300008C4203000000CD4C064300008C42000000000A972343 + 9A99A54101000000707D23433433D34102000000B85E28436766A24102000000 + B89E2D4334339B4102000000B89E324334339B410200000052B8374334339B41 + 020000001E453C433433AB4102000000707D3E43CECCC04101000000B81E3743 + CECC0A420200000070FD3443686602420200000047E132430200FC4102000000 + 47E12E430200FC4102000000E17A28430200FC4102000000E1FA21439B990B42 + 02000000476120430100304201000000CCCC1B4300008C420100000099990F43 + 00008C42010000003D4A18439A99A541010000000A9723439A99A54103000000 + 0A9723439A99A54100000000E1FA4843CDCC464202000000C2B5484333335F42 + 02000000E13A4D43CDCC7042020000007BD45543CDCC7042020000007B545A43 + CDCC704202000000AE87604300006A42020000000AD7634367665E4201000000 + AE476A4334337D4202000000482164436766894202000000852B5B439A998E42 + 0200000085AB53439A998E420200000085AB42439A998E4202000000856B3A43 + 3433734202000000C2353D43010034420200000028DC3F430200F04102000000 + C2F54B439C99994102000000C2F55B439C99994102000000C2756C439C999941 + 02000000C2F574433633EB4102000000E17A6F43CECC464201000000E1FA4843 + CECC464203000000E1FA4843CDCC4642000000005C8F654366661E4202000000 + D7E36543CCCC04420200000033736143FFFFEF410200000033735A43FFFFEF41 + 0200000099D95343FFFFEF4102000000D7E34D43CCCC044202000000C2F54A43 + 66661E42010000005C8F654366661E42030000005C8F654366661E4200000000 + CDCC8C4300008C420100000033138F43CDCC30420200000029BC8F43CDCC1242 + 02000000A4308E430000F841020000003D4A8A430000F841020000003D8A8643 + 0000F841020000005C6F8343333315420200000066C682433333334201000000 + CD8C804300008C42010000000000754300008C4201000000C3B57D43CCCCA441 + 01000000154E8443CCCCA44101000000711D84436666DA4102000000850B8743 + 3333B341020000001FC5894333339F4102000000B9DE8C4333339F4102000000 + 86AB924333339F4102000000158E9643CCCCE441020000005D2F954366663042 + 0100000066E6924300008C4201000000CDCC8C4300008C4203000000CDCC8C43 + 00008C4200000000F6E8B743CDCCCC3D0100000000C0B14300008C4201000000 + CD0CAC4300008C42010000000040AC43CDCC7C42020000007BD4A94333338A42 + 02000000E19AA64333338E4202000000E19AA34333338E4202000000E15A9C43 + 33338E420200000000C097430000764202000000142E99433333354202000000 + 14AE9A436666E2410200000014CEA04300009C41020000004701A84300009C41 + 02000000E19AAA4300009C4102000000F568AE436666B24102000000F568AF43 + 3333DB4101000000A3D0B14300CDCC3D01000000F6E8B74300CDCC3D03000000 + F6E8B743CDCCCC3D0000000066469F433333354202000000D7839E439A995742 + 020000005218A14333336F4202000000B8FEA44333336F420200000052D8A843 + 33336F4202000000D7A3AC43CDCC584202000000CC6CAD433333354202000000 + 5B2FAE43CCCC1242020000001E65AB433333F74102000000848BA7433333F741 + 020000001FA5A3433333F741020000005C0FA0439A9911420200000066469F43 + 333335420300000066469F433333354200000000C395BE43CDCC464202000000 + 3473BE4333335F4202000000C3B5C043CDCC7042020000009002C543CDCC7042 + 020000009042C743CDCC7042020000002A5CCA4300006A4202000000D803CC43 + 67665E42010000002A3CCF4334337D4202000000F728CC436766894202000000 + 16AEC7439A998E420200000016EEC3439A998E4202000000166EBB439A998E42 + 02000000164EB743343373420200000035B3B84301003442020000006806BA43 + 0200F041020000003513C0439C999941020000003513C8439C99994102000000 + 3553D0439C999941020000003593D4433633EB4102000000C4D5D143CECC4642 + 01000000C395BE43CECC464203000000C395BE43CDCC46420000000048E1CC43 + 66661E4202000000850BCD43CCCC04420200000034D3CA43FFFFEF4102000000 + 3453C743FFFFEF41020000006706C443FFFFEF4102000000860BC143CCCC0442 + 020000007C94BF4366661E420100000048E1CC4366661E420300000048E1CC43 + 66661E4200000000B8BEDE439A99A54101000000EBB1DE433433D34102000000 + 8F22E1436766A241020000008FC2E34334339B41020000008F42E64334339B41 + 020000005CCFE84334339B4102000000C215EB433433AB4102000000EB31EC43 + CECCC041010000008F82E843CECC0A4202000000EB71E7436866024202000000 + D763E6430200FC4102000000D763E4430200FC4102000000A430E1430200FC41 + 02000000A4F0DD439B990B4202000000D723DD4301003042010000009AD9DA43 + 00008C420100000000C0D44300008C42010000005218D9439A99A54101000000 + B8BEDE439A99A54103000000B8BEDE439A99A541000000008FE2004400000000 + 01000000CCACFC433333674201000000665607443333674201000000CDCC0644 + 00008C42010000000000F54300008C4201000000852BFB430000000001000000 + 8FE2004400000000030000008FE200440000000000000000F65815449A99A541 + 01000000C34518449A99A54101000000F618164400008C4201000000F6381344 + 00008C4201000000D763134433337B42020000005C6F12443333894202000000 + 8F621044CDCC8E420200000048010F4400008F42020000009A590B4433338F42 + 02000000290C094466667A42020000005CCF094433333542020000005C8F0A44 + 6666E241020000000AC70D4433339B41020000005C5F114400009C4102000000 + C205134400009C4102000000C2751444CDCCB44102000000EBF114440000DC41 + 01000000F65815449A99A54103000000F65815449A99A54100000000CDDC0C44 + 333335420200000090720C44CCCC5A420200000033D30D443333714202000000 + 3EDA0F4433337142020000000BA71444333371420200000052F815443333F341 + 02000000862B11443333F341020000007B240F443333F3410200000066460D44 + 9A990F4202000000CDDC0C443333354203000000CDDC0C443333354200000000 + 5C5F1D449A99A54101000000293C1C4400003A4202000000AEE71B4400005842 + 0200000071AD1C44CDCC6E4202000000A4A01E44CDCC6E4202000000A4802044 + CDCC6E4202000000150E22449A99554202000000336322449A99374201000000 + 5C7F23449A99A54101000000C28526449A99A541010000005158244434338C42 + 01000000B79E214434338C420100000009B721449B997D420200000051382044 + CECC884202000000FFEF1E449A998D420200000065361D449A998D4202000000 + 32431A449A998D4202000000468118449A99774202000000132E194467663A42 + 010000008E521A449B99A541010000005C5F1D449B99A541030000005C5F1D44 + 9A99A541000000005C1F304400008C42010000008F423144CDCC304202000000 + 0A973144CDCC12420200000047D130440000F8410200000014DE2E440000F841 + 0200000014FE2C440000F84102000000A3702B443333154202000000281C2B44 + 33333342010000005CFF294400008C4201000000F6F8264400008C4201000000 + 67262944CCCCA4410100000001E02B44CCCCA44101000000AFC72B446666DA41 + 02000000B93E2D443333B34102000000E29A2E4433339F4102000000AF273044 + 33339F4102000000150E334433339F41020000005DFF3444CCCCE44102000000 + 015034446666304201000000292C334400008C42010000005C1F304400008C42 + 030000005C1F304400008C420000000066A64044CDCC7E42020000003DFA3E44 + 9A998A420200000047613D4400008F4202000000148E3B4400008F4202000000 + E1FA374400008F4202000000EB6135449A997B4202000000AE2736449A993542 + 0200000071ED36443433DF4102000000AE473A4467669A4102000000E1DA3D44 + 67669A4102000000E19A3F4467669A410200000014DE40446766AA4102000000 + 85FB4144CECCD4410100000033B33F44CECC0A42020000000A173F4468660042 + 020000005C3F3E446966F64102000000C2653D446966F64102000000F5583B44 + 6966F641020000001E9539443433134202000000D63339449B99354202000000 + 99C9384434335B4202000000E02A3A4434336F420200000047113C4434336F42 + 02000000E10A3D4434336F4202000000A3103E44CECC6A42020000008FF23E44 + CECC5E420100000066A64044CDCC7E420300000066A64044CDCC7E4200000000 + 85DB4744000000000100000066A646443333DB4102000000A30048449A99AD41 + 02000000706D49440000A04102000000D7D34A440000A04102000000D7534E44 + 0000A04102000000C3754F440000EC4102000000EBD14E440000304201000000 + CCAC4D4400008C4201000000FF9F4A4400008C42010000007AC44B4466663042 + 020000003D2A4C4466660C420200000051284B446666FA410200000051884944 + 6666FA410200000084BB47446666FA4102000000653646449999154202000000 + 32E345443333334201000000C3C5444400008C4201000000F6B8414400008C42 + 01000000B9CE4444000000000100000085DB4744000000000300000085DB4744 + 000000000000000014BE5344CDCC464202000000CCAC534433335F4202000000 + 14CE5444CDCC7042020000007AF45644CDCC7042020000007A145844CDCC7042 + 0200000047A1594400006A42020000001E755A4467665E420100000047115C44 + 34337D4202000000AD875A4467668942020000003D4A58449A998E4202000000 + 3D6A56449A998E42020000003D2A52449A998E42020000003D1A504434337342 + 02000000CCCC50440100344202000000667651440200F04102000000CC7C5444 + 9C99994102000000CC7C58449C99994102000000CC9C5C449C99994102000000 + CCBC5E443633EB4102000000145E5D44CECC46420100000014BE5344CECC4642 + 0300000014BE5344CDCC46420000000033E35A4466661E420200000052F85A44 + CCCC04420200000029DC5944FFFFEF4102000000291C5844FFFFEF4102000000 + C3755644FFFFEF410200000052F85444CCCC044202000000CD3C544466661E42 + 0100000033E35A4466661E420300000033E35A4466661E4200000000ECD16344 + 9A99A5410100000086CB63443433D34102000000D80365446766A24102000000 + D853664434339B4102000000D893674434339B41020000003EDA684434339B41 + 0200000072FD69443433AB4102000000868B6A44CECCC04101000000D8B36844 + CECC0A4202000000862B684468660242020000007CA467440200FC4102000000 + 7CA466440200FC4102000000E20A65440200FC4102000000E26A63449B990B42 + 020000007C04634401003042010000005DDF614400008C420100000090D25E44 + 00008C4201000000B9FE60449A99A54101000000ECD163449A99A54103000000 + ECD163449A99A541} + Fill.Color = claWhite + Margins.Left = 20.000000000000000000 + Position.X = 20.000000000000000000 + Size.Width = 320.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + WrapMode = Fit + end + object LauncherLabel: TLabel + Align = Client + AutoSize = True + StyledSettings = [FontColor] + Margins.Left = 8.000000000000000000 + Margins.Bottom = 12.000000000000000000 + Size.Width = 207.000000000000000000 + Size.Height = 38.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Size = 14.000000000000000000 + TextSettings.VertAlign = Trailing + Text = '(v0.8.6-beta)' + TabOrder = 0 + end end end end diff --git a/src/AboutUnit.pas b/src/AboutUnit.pas index cf90475..74082c5 100644 --- a/src/AboutUnit.pas +++ b/src/AboutUnit.pas @@ -67,6 +67,8 @@ TAboutForm = class(TForm) GridPanelLayout1: TGridPanelLayout; GridPanelLayout2: TGridPanelLayout; LogoRotationAnim: TFloatAnimation; + Path2: TPath; + Layout1: TLayout; procedure WebsiteLabelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure Image1DblClick(Sender: TObject); @@ -114,7 +116,7 @@ procedure TAboutForm.SetLanguage(LanguageCode: Integer); procedure TAboutForm.FormShow(Sender: TObject); begin - LauncherLabel.Text := 'AErender Launcher (' + APPVERSION + ')'; + LauncherLabel.Text := '(' + APPVERSION + ')'; if MainUnit.FFMPEG then begin FFmpegLabel.FontColor := $FF1E90FF; @@ -134,7 +136,7 @@ procedure TAboutForm.Image1DblClick(Sender: TObject); procedure TAboutForm.WebsiteLabelClick(Sender: TObject); begin - Open('http://aerenderlauncher.com', []); + Open('https://aerenderlauncher.com', []); end; procedure TAboutForm.LogoRotationAnimFinish(Sender: TObject); diff --git a/src/HelpUnit.fmx b/src/HelpUnit.fmx index 442eac6..59827dc 100644 --- a/src/HelpUnit.fmx +++ b/src/HelpUnit.fmx @@ -40,8 +40,8 @@ object HelpForm: THelpForm DefaultItemStyles.GroupHeaderStyle = '' DefaultItemStyles.GroupFooterStyle = '' OnChange = ContentsChange - Viewport.Width = 200.000000000000000000 - Viewport.Height = 567.000000000000000000 + Viewport.Width = 196.000000000000000000 + Viewport.Height = 563.000000000000000000 object ListBoxGroupHeader1: TListBoxGroupHeader Selectable = False TabOrder = 0 diff --git a/src/ImportUnit.fmx b/src/ImportUnit.fmx index 41a2d2f..9ff66b1 100644 --- a/src/ImportUnit.fmx +++ b/src/ImportUnit.fmx @@ -32,7 +32,7 @@ object ImportForm: TImportForm Text = 'Import After Effects Project' TabOrder = 0 end - object XMLFile: TEdit + object ImportedFile: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Right TabOrder = 1 @@ -79,24 +79,24 @@ object ImportForm: TImportForm end object compLayout: TGroupBox Align = Client - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 5.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 326.000000000000000000 - Size.Height = 336.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Size.Width = 328.000000000000000000 + Size.Height = 338.000000000000000000 Size.PlatformDefault = False Text = 'Compositions' TabOrder = 5 object GridPanelLayout1: TGridPanelLayout Align = Bottom - Margins.Left = 10.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 10.000000000000000000 - Position.X = 10.000000000000000000 - Position.Y = 299.000000000000000000 - Size.Width = 306.000000000000000000 - Size.Height = 27.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 302.000000000000000000 + Size.Width = 312.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False TabOrder = 1 ColumnCollection = < @@ -126,9 +126,9 @@ object ImportForm: TImportForm end> object selectallButton: TButton Align = Client - Margins.Right = 3.000000000000000000 - Size.Width = 150.000000000000000000 - Size.Height = 27.000000000000000000 + Margins.Right = 2.000000000000000000 + Size.Width = 154.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Text = 'Select All' @@ -136,115 +136,117 @@ object ImportForm: TImportForm end object deselallButton: TButton Align = Client - Margins.Left = 3.000000000000000000 - Size.Width = 150.000000000000000000 - Size.Height = 27.000000000000000000 + Margins.Left = 2.000000000000000000 + Size.Width = 154.000000000000000000 + Size.Height = 28.000000000000000000 Size.PlatformDefault = False TabOrder = 1 Text = 'Deselect All' OnClick = deselallButtonClick end end - object compositions: TListBox + object compListBox: TListBox Align = Client - Margins.Left = 10.000000000000000000 + Margins.Left = 8.000000000000000000 Margins.Top = 20.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Size.Width = 306.000000000000000000 - Size.Height = 274.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 312.000000000000000000 + Size.Height = 278.000000000000000000 Size.PlatformDefault = False + AlternatingRowBackground = True DisableFocusEffect = True DefaultItemStyles.ItemStyle = '' DefaultItemStyles.GroupHeaderStyle = '' DefaultItemStyles.GroupFooterStyle = '' ShowCheckboxes = True - OnChange = compositionsChange - OnChangeCheck = compositionsChangeCheck - Viewport.Width = 302.000000000000000000 - Viewport.Height = 270.000000000000000000 + OnChange = compListBoxChange + OnChangeCheck = compListBoxChangeCheck + Viewport.Width = 308.000000000000000000 + Viewport.Height = 274.000000000000000000 end end object compImportLayout: TLayout Align = Right - Position.X = 336.000000000000000000 + Position.X = 352.000000000000000000 Position.Y = 64.000000000000000000 - Size.Width = 304.000000000000000000 - Size.Height = 346.000000000000000000 + Size.Width = 288.000000000000000000 + Size.Height = 354.000000000000000000 Size.PlatformDefault = False TabOrder = 7 object compProp: TGroupBox Align = Client - Margins.Left = 5.000000000000000000 - Margins.Top = 5.000000000000000000 - Margins.Right = 10.000000000000000000 - Size.Width = 289.000000000000000000 - Size.Height = 214.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Size.Width = 264.000000000000000000 + Size.Height = 338.000000000000000000 Size.PlatformDefault = False Text = 'Composition Properties' TabOrder = 0 object compName: TLabel Align = Top - Margins.Left = 10.000000000000000000 + Margins.Left = 12.000000000000000000 Margins.Top = 20.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 12.000000000000000000 Position.Y = 20.000000000000000000 - Size.Width = 269.000000000000000000 - Size.Height = 17.000000000000000000 + Size.Width = 236.000000000000000000 + Size.Height = 16.000000000000000000 Size.PlatformDefault = False Text = 'Name: ' TabOrder = 5 end object compResolution: TLabel Align = Top - Margins.Left = 10.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 10.000000000000000000 - Position.Y = 42.000000000000000000 - Size.Width = 269.000000000000000000 - Size.Height = 17.000000000000000000 + Margins.Left = 12.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 12.000000000000000000 + Position.Y = 40.000000000000000000 + Size.Width = 236.000000000000000000 + Size.Height = 16.000000000000000000 Size.PlatformDefault = False Text = 'Resolution: ' TabOrder = 3 end object compFramerate: TLabel Align = Top - Margins.Left = 10.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 10.000000000000000000 - Position.Y = 64.000000000000000000 - Size.Width = 269.000000000000000000 - Size.Height = 17.000000000000000000 + Margins.Left = 12.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 12.000000000000000000 + Position.Y = 60.000000000000000000 + Size.Width = 236.000000000000000000 + Size.Height = 16.000000000000000000 Size.PlatformDefault = False Text = 'Framerate: ' TabOrder = 2 end object compRangeIn: TLabel Align = Top - Margins.Left = 10.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 10.000000000000000000 - Position.Y = 86.000000000000000000 - Size.Width = 269.000000000000000000 - Size.Height = 17.000000000000000000 + Margins.Left = 12.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 12.000000000000000000 + Position.Y = 80.000000000000000000 + Size.Width = 236.000000000000000000 + Size.Height = 16.000000000000000000 Size.PlatformDefault = False Text = 'Range start: ' TabOrder = 1 end object compRangeOut: TLabel Align = Top - Margins.Left = 10.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 10.000000000000000000 - Position.Y = 108.000000000000000000 - Size.Width = 269.000000000000000000 - Size.Height = 17.000000000000000000 + Margins.Left = 12.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Position.X = 12.000000000000000000 + Position.Y = 100.000000000000000000 + Size.Width = 236.000000000000000000 + Size.Height = 16.000000000000000000 Size.PlatformDefault = False Text = 'Range end: ' TabOrder = 0 @@ -252,48 +254,67 @@ object ImportForm: TImportForm end object importProp: TGroupBox Align = Bottom - Margins.Left = 5.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 5.000000000000000000 - Position.X = 5.000000000000000000 - Position.Y = 219.000000000000000000 - Size.Width = 289.000000000000000000 + Enabled = False + Margins.Left = 8.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 224.000000000000000000 + Size.Width = 264.000000000000000000 Size.Height = 122.000000000000000000 Size.PlatformDefault = False Text = 'Import Properties' + Visible = False TabOrder = 1 - object splitRenderCheckbox: TCheckBox + object SplitRenderLayout: TLayout Align = Top - Margins.Left = 10.000000000000000000 + Margins.Left = 8.000000000000000000 Margins.Top = 20.000000000000000000 - Margins.Right = 10.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 8.000000000000000000 Position.Y = 20.000000000000000000 - Size.Width = 269.000000000000000000 - Size.Height = 19.000000000000000000 + Size.Width = 248.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False - TabOrder = 0 - Text = 'Prepare for split rendering' + TabOrder = 3 + object SplitRenderCheckbox: TCheckBox + Align = Client + Size.Width = 248.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + TabOrder = 0 + Text = 'Prepare for split rendering' + end end end end object StatusBar1: TStatusBar - Position.Y = 410.000000000000000000 + Position.Y = 418.000000000000000000 ShowSizeGrip = True Size.Width = 640.000000000000000000 - Size.Height = 40.000000000000000000 + Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 10 object importButton: TButton Align = Center Size.Width = 128.000000000000000000 - Size.Height = 28.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False TabOrder = 0 Text = 'Import' OnClick = importButtonClick end end + object Splitter1: TSplitter + Align = Right + Cursor = crHSplit + MinSize = 20.000000000000000000 + Position.X = 344.000000000000000000 + Position.Y = 64.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 354.000000000000000000 + Size.PlatformDefault = False + end object XMLDocument: TXMLDocument Left = 8 Top = 416 @@ -305,9 +326,9 @@ object ImportForm: TImportForm Top = 416 object LinkControlToPropertyShowCheckboxes: TLinkControlToProperty Category = 'Quick Bindings' - Control = splitRenderCheckbox + Control = SplitRenderCheckbox Track = True - Component = compositions + Component = compListBox ComponentProperty = 'ShowCheckboxes' CustomFormat = 'IfThen(IsChecked, False, True)' InitializeControlValue = False diff --git a/src/ImportUnit.pas b/src/ImportUnit.pas index cd88261..b2569b7 100644 --- a/src/ImportUnit.pas +++ b/src/ImportUnit.pas @@ -33,6 +33,11 @@ interface System.UITypes, System.Classes, System.Variants, + System.JSON, + System.Generics.Collections, + System.Rtti, + System.Bindings.Outputs, + FMX.Types, FMX.Controls, FMX.Forms, @@ -50,20 +55,25 @@ interface FMX.Edit, FMX.DialogService.Sync, FMX.BufferedLayout, + Fmx.Bind.Editors, + Fmx.Bind.DBEngExt, + FMX.ListBox, + Xml.xmldom, Xml.XMLIntf, Xml.XMLDoc, - FMX.ListBox, + Data.Bind.EngExt, - Fmx.Bind.DBEngExt, - System.Rtti, - System.Bindings.Outputs, - Fmx.Bind.Editors, Data.Bind.Components, + + AErenderLauncher.Rendering, + AErenderLauncher.Math, + {$IFDEF MSWINDOWS}Fmx.Platform.Win, WinApi.Windows;{$ENDIF MSWINDOWS} {$IFDEF MACOS}MacApi.Foundation;{$ENDIF MACOS} type + TFormSender = (FS_JSON, FS_XML); TImportForm = class(TForm) importButton: TButton; topLayout: TLayout; @@ -71,7 +81,7 @@ TImportForm = class(TForm) projectPathLayout: TLayout; aerProjectPathLabel: TLabel; aerProjectPath: TEdit; - compositions: TListBox; + compListBox: TListBox; compLayout: TGroupBox; XMLDocument: TXMLDocument; compProp: TGroupBox; @@ -82,33 +92,38 @@ TImportForm = class(TForm) compRangeOut: TLabel; importProp: TGroupBox; compImportLayout: TLayout; - splitRenderCheckbox: TCheckBox; + SplitRenderCheckbox: TCheckBox; BindingsList1: TBindingsList; LinkControlToPropertyShowCheckboxes: TLinkControlToProperty; - XMLFile: TEdit; + ImportedFile: TEdit; selectallButton: TButton; deselallButton: TButton; StatusBar1: TStatusBar; GridPanelLayout1: TGridPanelLayout; + SplitRenderLayout: TLayout; + Splitter1: TSplitter; procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); - procedure compositionsChangeCheck(Sender: TObject); + procedure compListBoxChangeCheck(Sender: TObject); procedure importButtonClick(Sender: TObject); procedure selectallButtonClick(Sender: TObject); procedure deselallButtonClick(Sender: TObject); - procedure compositionsChange(Sender: TObject); + procedure compListBoxChange(Sender: TObject); procedure SetLanguage(LanguageCode: Integer); procedure FormCreate(Sender: TObject); private { Private declarations } + RootNode: IXMLNode; + Project: TJSONValue; + {$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} public { Public declarations } + FormSender: TFormSender; end; var ImportForm: TImportForm; - RootNode: IXMLNode; CheckedComps, CompCount: Integer; PARAMSTART: Boolean = False; XMLPath: String; @@ -158,13 +173,60 @@ procedure TImportForm.SetLanguage(LanguageCode: Integer); end; procedure TImportForm.importButtonClick(Sender: TObject); -var - i, k: Integer; begin - MainForm.projectPath.Text := RootNode.Attributes['project']; + var Compositions: TList := TList.Create; + + if (CheckedComps = 1) or (CheckedComps = 0) then begin + Compositions.Add(TComposition.Create( + Project.A[compListBox.ItemIndex].P['Name'].Value, + TFrameSpan.Create(Project.A[compListBox.ItemIndex].P['Frames'].A[0].Value, Project.A[compListBox.ItemIndex].P['Frames'].A[1].Value), + 1 + )); + end else begin + for var i := 0 to compListBox.Count - 1 do + if compListBox.ListItems[i].IsChecked then + Compositions.Add(TComposition.Create( + Project.A[i].P['Name'].Value, + TFrameSpan.Create(Project.A[i].P['Frames'].A[0].Value, Project.A[i].P['Frames'].A[1].Value), + 1 + )); + end; + + RenderTasks.Add(TRenderTask.Create( + MainForm.projectPath.Text, + MainForm.outputPath.Text, + + MainForm.outputModuleBox.Items[MainForm.outputModuleBox.ItemIndex], + MainForm.renderSettingsBox.Items[MainForm.renderSettingsBox.ItemIndex], + + MainForm.missingFilesCheckbox.IsChecked, + MainForm.soundCheckbox.IsChecked, + MainForm.threadedRender.IsChecked, + IfThenElse(MainForm.customCheckbox.IsChecked = True, MainForm.customProp.Text, ''), // yeet, + + MainForm.cacheUsageTrackBar.Value, + MainForm.memUsageTrackBar.Value, + + Compositions + )); + + {if ((SplitRenderCheckbox.Enabled) and (SplitRenderCheckbox.IsChecked)) and (CheckedComps <= 1) then begin + + end else begin + if (CheckedComps = 1) or (CheckedComps = 0) then begin + + end else begin + for var i := 0 to CheckedComps do + + end; + end; } + + + + {MainForm.projectPath.Text := RootNode.Attributes['project']; MainForm.outputPath.Text := ''; k := 0; - if ((splitRenderCheckbox.Enabled) and (splitRenderCheckbox.IsChecked)) and (CheckedComps <= 1) then + if ((SplitRenderCheckbox.Enabled) and (SplitRenderCheckbox.IsChecked)) and (CheckedComps <= 1) then begin MainForm.compSwitch.Enabled := False; MainForm.compSwitch.IsChecked := False; @@ -182,9 +244,9 @@ procedure TImportForm.importButtonClick(Sender: TObject); MainForm.compGrid.Enabled := False; MainForm.compGrid.Visible := False; - MainForm.compName.Text := RootNode.ChildNodes['compositions'].ChildNodes[compositions.Selected.Index].ChildNodes['name'].Text; - MainForm.inFrame.Text := Trunc(StrToFloat(RootNode.ChildNodes['compositions'].ChildNodes[compositions.Selected.Index].ChildNodes['rangeStart'].Text)).ToString; - MainForm.outFrame.Text := Trunc(StrToFloat(RootNode.ChildNodes['compositions'].ChildNodes[compositions.Selected.Index].ChildNodes['rangeEnd'].Text)).ToString; + MainForm.compName.Text := RootNode.ChildNodes['compositions'].ChildNodes[compListBox.Selected.Index].ChildNodes['name'].Text; + MainForm.inFrame.Text := Trunc(StrToFloat(RootNode.ChildNodes['compositions'].ChildNodes[compListBox.Selected.Index].ChildNodes['rangeStart'].Text)).ToString; + MainForm.outFrame.Text := Trunc(StrToFloat(RootNode.ChildNodes['compositions'].ChildNodes[compListBox.Selected.Index].ChildNodes['rangeEnd'].Text)).ToString; end else begin @@ -208,9 +270,9 @@ procedure TImportForm.importButtonClick(Sender: TObject); MainForm.threadsCount.Visible := False; MainForm.threadsCount.Enabled := False; - MainForm.compName.Text := RootNode.ChildNodes['compositions'].ChildNodes[compositions.ItemIndex].ChildNodes['name'].Text; - MainForm.inFrame.Text := Trunc(StrToFloat(RootNode.ChildNodes['compositions'].ChildNodes[compositions.ItemIndex].ChildNodes['rangeStart'].Text)).ToString; - MainForm.outFrame.Text := Trunc(StrToFloat(RootNode.ChildNodes['compositions'].ChildNodes[compositions.ItemIndex].ChildNodes['rangeEnd'].Text)).ToString; + MainForm.compName.Text := RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['name'].Text; + MainForm.inFrame.Text := Trunc(StrToFloat(RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['rangeStart'].Text)).ToString; + MainForm.outFrame.Text := Trunc(StrToFloat(RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['rangeEnd'].Text)).ToString; end else begin @@ -235,43 +297,57 @@ procedure TImportForm.importButtonClick(Sender: TObject); MainForm.compCount.Value := CheckedComps; MainForm.inFrame.Text := ''; MainForm.outFrame.Text := ''; - for i := 0 to CompCount - 1 do - if compositions.ListItems[i].IsChecked then + for var i := 0 to CompCount - 1 do + if compListBox.ListItems[i].IsChecked then begin MainForm.compGrid.Cells[0, k] := RootNode.ChildNodes['compositions'].ChildNodes[i].ChildNodes['name'].Text; inc (k); end; end; - end; + end; } + + + XMLDocument.Active := False; ImportForm.Close; end; -procedure TImportForm.compositionsChange(Sender: TObject); +procedure TImportForm.compListBoxChange(Sender: TObject); begin - compName.Text := Language[LANG].ImportForm.Name + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compositions.ItemIndex].ChildNodes['name'].Text; - compResolution.Text := Language[LANG].ImportForm.Resolution + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compositions.ItemIndex].ChildNodes['resolution'].Text; - compFramerate.Text := Language[LANG].ImportForm.Framerate + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compositions.ItemIndex].ChildNodes['framerate'].Text; - compRangeIn.Text := Language[LANG].ImportForm.RangeStart + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compositions.ItemIndex].ChildNodes['rangeStart'].Text; - compRangeOut.Text := Language[LANG].ImportForm.RangeEnd + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compositions.ItemIndex].ChildNodes['rangeEnd'].Text; + case FormSender of + FS_JSON: begin + compName.Text := Language[LANG].ImportForm.Name + ': ' + Project.A[compListBox.ItemIndex].P['Name'].Value; + compResolution.Text := Language[LANG].ImportForm.Resolution + ': ' + Project.A[compListBox.ItemIndex].P['FootageDimensions'].A[0].Value + 'x' + Project.A[compListBox.ItemIndex].P['FootageDimensions'].A[1].Value; + compFramerate.Text := Language[LANG].ImportForm.Framerate + ': ' + Project.A[compListBox.ItemIndex].P['FootageFramerate'].Value; + compRangeIn.Text := Language[LANG].ImportForm.RangeStart + ': ' + Project.A[compListBox.ItemIndex].P['Frames'].A[0].Value; + compRangeOut.Text := Language[LANG].ImportForm.RangeEnd + ': ' + Project.A[compListBox.ItemIndex].P['Frames'].A[1].Value; + end; + FS_XML: begin + compName.Text := Language[LANG].ImportForm.Name + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['name'].Text; + compResolution.Text := Language[LANG].ImportForm.Resolution + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['resolution'].Text; + compFramerate.Text := Language[LANG].ImportForm.Framerate + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['framerate'].Text; + compRangeIn.Text := Language[LANG].ImportForm.RangeStart + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['rangeStart'].Text; + compRangeOut.Text := Language[LANG].ImportForm.RangeEnd + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['rangeEnd'].Text; + end; + end; end; -procedure TImportForm.compositionsChangeCheck(Sender: TObject); +procedure TImportForm.compListBoxChangeCheck(Sender: TObject); begin CheckedComps := 0; for var i := 0 to CompCount - 1 do - if compositions.ListItems[i].IsChecked then + if compListBox.ListItems[i].IsChecked then inc (CheckedComps); if CheckedComps > 0 then - splitRenderCheckbox.Enabled := False + SplitRenderCheckbox.Enabled := False else - splitRenderCheckbox.Enabled := True; + SplitRenderCheckbox.Enabled := True; end; procedure TImportForm.deselallButtonClick(Sender: TObject); begin for var i := 0 to CompCount-1 do - compositions.ListItems[i].IsChecked := False; + compListBox.ListItems[i].IsChecked := False; end; procedure TImportForm.FormClose(Sender: TObject; var Action: TCloseAction); @@ -279,46 +355,59 @@ procedure TImportForm.FormClose(Sender: TObject; var Action: TCloseAction); CheckedComps := 0; CompCount := 0; aerProjectPath.Text := ''; - compositions.Clear; + FreeAndNil(Project); + compListBox.Clear; + //compositions.Items.Clear; end; procedure TImportForm.FormCreate(Sender: TObject); begin - compositions.AniCalculations.Animation := True; + compListBox.AniCalculations.Animation := True; end; procedure TImportForm.FormShow(Sender: TObject); begin - try - if PARAMSTART then - begin - XMLFile.Text := ExtractFileName(XMLPath); - XMLDocument.LoadFromFile(XMLPath); - end - else - begin - {$IFDEF MSWINDOWS} - XMLFile.Text := ExtractFileName(MainForm.XMLOpenDialog.FileName); - {$ELSE} - XMLFile.Text := ExtractFileName(ImportedPath); - {$ENDIF} - XMLDocument.LoadFromFile(MainForm.XMLOpenDialog.FileName); - end; + compListBox.Clear; + case FormSender of + FS_JSON: begin + //ShowMessage(MainForm.ProjectJson); + Project := TJSONObject.ParseJSONValue(MainForm.ProjectJson); + ImportedFile.Text := APPFOLDER + ExtractFileName(MainForm.projectPath.Text).Replace('.aep', '.json'); + aerProjectPath.Text := MainForm.projectPath.Text; + CompCount := (Project as TJSONArray).Count; + for var i := 0 to CompCount - 1 do + compListBox.Items.Add(Project.A[i].P['Name'].Value); + end; + FS_XML: begin + try + if PARAMSTART then begin + ImportedFile.Text := ExtractFileName(XMLPath); + XMLDocument.LoadFromFile(XMLPath); + end else begin + {$IFDEF MSWINDOWS} + ImportedFile.Text := ExtractFileName(MainForm.XMLOpenDialog.FileName); + {$ELSE MACOS} + ImportedFile.Text := ExtractFileName(ImportedPath); + {$ENDIF} + XMLDocument.LoadFromFile(MainForm.XMLOpenDialog.FileName); + end; - XMLDocument.Active := True; + XMLDocument.Active := True; - XMLDocument.Encoding := 'utf-8'; + XMLDocument.Encoding := 'utf-8'; - RootNode := XMLDocument.DocumentElement; + RootNode := XMLDocument.DocumentElement; - aerProjectPath.Text := RootNode.Attributes['project']; - CompCount := StrToInt(RootNode.ChildNodes['compositions'].Attributes['count']); - for var i := 0 to CompCount - 1 do - compositions.Items.Add(RootNode.ChildNodes['compositions'].ChildNodes[i].ChildNodes['name'].Text); - except - on Exception do begin - TDialogServiceSync.MessageDialog(Language[LANG].Errors.IncompatibleFile, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); - ImportForm.Close; + aerProjectPath.Text := RootNode.Attributes['project']; + CompCount := StrToInt(RootNode.ChildNodes['compositions'].Attributes['count']); + for var i := 0 to CompCount - 1 do + compListBox.Items.Add(RootNode.ChildNodes['compositions'].ChildNodes[i].ChildNodes['name'].Text); + except + on Exception do begin + TDialogServiceSync.MessageDialog(Language[LANG].Errors.IncompatibleFile, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); + ImportForm.Close; + end; + end; end; end; end; @@ -326,7 +415,7 @@ procedure TImportForm.FormShow(Sender: TObject); procedure TImportForm.selectallButtonClick(Sender: TObject); begin for var i := 0 to CompCount - 1 do - compositions.ListItems[i].IsChecked := True; + compListBox.ListItems[i].IsChecked := True; end; end. diff --git a/src/MainUnit.fmx b/src/MainUnit.fmx index 33c56ce..c2f71bc 100644 --- a/src/MainUnit.fmx +++ b/src/MainUnit.fmx @@ -2697,14 +2697,14 @@ object MainForm: TMainForm 000000BE054011536F75726365526563742E426F74746F6D0500000000000000 E605400000064F70617175650900005450463007544C61796F75740009537479 6C654E616D65060A6C6162656C7374796C650756697369626C6508085461624F - 7264657202020005545465787400095374796C654E616D650604746578740541 + 7264657202030005545465787400095374796C654E616D650604746578740541 6C69676E0706436C69656E74064C6F636B656409074869745465737408165465 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 005450463007544C61796F757400095374796C654E616D65060B627574746F6E 7374796C6505416C69676E0708436F6E74656E74730A53697A652E5769647468 0500000000009324B106400B53697A652E4865696768740500000000004A92E8 05401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08085461624F726465720203000B54476C6F774566666563740008536F66746E + 08085461624F726465720204000B54476C6F774566666563740008536F66746E 657373050000000000CDCCCCFC3F09476C6F77436F6C6F720709784646343837 394133074F706163697479050000000000000080FF3F0754726967676572060E 4973466F63757365643D7472756507456E61626C65640800001254427574746F @@ -2762,7 +2762,7 @@ object MainForm: TMainForm 436F6C6F7207097846463138314131440C50726573736564436F6C6F72070863 6C6157686974650000005450463007544C61796F757400095374796C654E616D 650610627574746F6E7374796C656C6162656C0756697369626C650808546162 - 4F726465720204001654427574746F6E5374796C65546578744F626A65637400 + 4F726465720205001654427574746F6E5374796C65546578744F626A65637400 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C 6F636B656409165465787453657474696E67732E466F6E74436F6C6F72070978 46463138314131440D536861646F7756697369626C650808486F74436F6C6F72 @@ -2773,7 +2773,7 @@ object MainForm: TMainForm 6E0708436F6E74656E74730A53697A652E57696474680500000000009324B106 400B53697A652E4865696768740500000000004A92E805401453697A652E506C 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 0205001254427574746F6E5374796C654F626A65637400095374796C654E616D + 0206001254427574746F6E5374796C654F626A65637400095374796C654E616D 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730C536F 757263654C6F6F6B757006124F6E797820426C75657374796C652E706E670A53 697A652E57696474680500000000009324B106400B53697A652E486569676874 @@ -2827,7 +2827,7 @@ object MainForm: TMainForm 61636B0B4E6F726D616C436F6C6F7207097846463138314131440C5072657373 6564436F6C6F720708636C6157686974650000005450463007544C61796F7574 00095374796C654E616D6506157370656564627574746F6E7374796C656C6162 - 656C0756697369626C6508085461624F726465720206001654427574746F6E53 + 656C0756697369626C6508085461624F726465720207001654427574746F6E53 74796C65546578744F626A65637400095374796C654E616D6506047465787405 416C69676E0706436C69656E74064C6F636B656409165465787453657474696E 67732E466F6E74436F6C6F7207097846463138314131440D536861646F775669 @@ -2838,7 +2838,7 @@ object MainForm: TMainForm 74746F6E05416C69676E0708436F6E74656E74730A53697A652E576964746805 00000000009324B106400B53697A652E4865696768740500000000004A92E805 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F726465720207001254427574746F6E5374796C654F626A65637400 + 085461624F726465720208001254427574746F6E5374796C654F626A65637400 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F 6E74656E74730C536F757263654C6F6F6B757006124F6E797820426C75657374 796C652E706E670A53697A652E57696474680500000000009324B106400B5369 @@ -2892,7 +2892,7 @@ object MainForm: TMainForm 6F720708636C61426C61636B0B4E6F726D616C436F6C6F720709784646313831 4131440C50726573736564436F6C6F720708636C615768697465000000545046 3007544C61796F757400095374796C654E616D65060F746F6F6C627574746F6E - 6C6162656C0756697369626C6508085461624F72646572020800165442757474 + 6C6162656C0756697369626C6508085461624F72646572020900165442757474 6F6E5374796C65546578744F626A65637400095374796C654E616D6506047465 787405416C69676E0706436C69656E74064C6F636B6564091654657874536574 74696E67732E466F6E74436F6C6F7207097846463138314131440D536861646F @@ -2901,7 +2901,7 @@ object MainForm: TMainForm 097846463138314131440C50726573736564436F6C6F720708636C6157686974 650000005450463007544C61796F757400095374796C654E616D650610636F6C 6F72627574746F6E7374796C650756697369626C6508085461624F7264657202 - 09000B54476C6F774566666563740008536F66746E657373050000000000CDCC + 0A000B54476C6F774566666563740008536F66746E657373050000000000CDCC CCFC3F09476C6F77436F6C6F720709784646343837394133074F706163697479 050000000000000080FF3F0754726967676572060E4973466F63757365643D74 72756507456E61626C65640800001254427574746F6E5374796C654F626A6563 @@ -2951,7 +2951,7 @@ object MainForm: TMainForm 545046300B54477269644C61796F757400095374796C654E616D65060E737069 6E65646974627574746F6E0A4974656D486569676874050000000000000080FF BF094974656D576964746805000000000000008005400B4F7269656E74617469 - 6F6E0708566572746963616C0756697369626C6508085461624F72646572020A + 6F6E0708566572746963616C0756697369626C6508085461624F72646572020B 0007544C61796F7574000A53697A652E57696474680500000000000000C80440 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 74666F726D44656661756C7408000754427574746F6E00095374796C654E616D @@ -2970,7 +2970,7 @@ object MainForm: TMainForm 6661756C74080B5374796C654C6F6F6B757006157363726F6C6C626172626F74 746F6D627574746F6E000000005450463007544C61796F757400095374796C65 4E616D650609656469747374796C650756697369626C6508085461624F726465 - 72020B000B54476C6F774566666563740008536F66746E657373050000000000 + 72020C000B54476C6F774566666563740008536F66746E657373050000000000 CDCCCCFC3F09476C6F77436F6C6F720709784646343837394133074F70616369 7479050000000000000080FF3F0754726967676572060E4973466F6375736564 3D7472756507456E61626C65640800000C545374796C654F626A656374000953 @@ -3006,7 +3006,7 @@ object MainForm: TMainForm 726F6D7074064C6F636B656409074F706163697479050000000000000080FE3F 0756697369626C65080000005450463007544C61796F757400095374796C654E 616D65060D74696D65656469747374796C650756697369626C6508085461624F - 72646572020C000B54476C6F774566666563740008536F66746E657373050000 + 72646572020D000B54476C6F774566666563740008536F66746E657373050000 000000CDCCCCFC3F09476C6F77436F6C6F720709784646343837394133074F70 6163697479050000000000000080FF3F0754726967676572060E4973466F6375 7365643D7472756507456E61626C65640800000C545374796C654F626A656374 @@ -3085,7 +3085,7 @@ object MainForm: TMainForm 00000000000000A003400B53697A652E48656967687405000000000000009803 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 0000005450463007544C61796F757400095374796C654E616D65060D64617465 - 656469747374796C650756697369626C6508085461624F72646572020D000B54 + 656469747374796C650756697369626C6508085461624F72646572020E000B54 476C6F774566666563740008536F66746E657373050000000000CDCCCCFC3F09 476C6F77436F6C6F720709784646343837394133074F70616369747905000000 0000000080FF3F0754726967676572060E4973466F63757365643D7472756507 @@ -3151,7 +3151,7 @@ object MainForm: TMainForm 05000000000000009803401453697A652E506C6174666F726D44656661756C74 080756697369626C65080000005450463007544C61796F757400095374796C65 4E616D650611636C656172696E67656469747374796C650756697369626C6508 - 085461624F72646572020E000B54476C6F774566666563740008536F66746E65 + 085461624F72646572020F000B54476C6F774566666563740008536F66746E65 7373050000000000CDCCCCFC3F09476C6F77436F6C6F72070978464634383739 4133074F706163697479050000000000000080FF3F0754726967676572060E49 73466F63757365643D7472756507456E61626C65640800000C545374796C654F @@ -3201,7 +3201,7 @@ object MainForm: TMainForm 74696F6E0B42727573682E436F6C6F72070978374634343735394400000B5446 6F6E744F626A65637400095374796C654E616D650604666F6E74000000545046 3007544C61796F757400095374796C654E616D65060C7370696E626F78737479 - 6C650756697369626C6508085461624F72646572020F000B54476C6F77456666 + 6C650756697369626C6508085461624F726465720210000B54476C6F77456666 6563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C 6F720709784646343837394133074F706163697479050000000000000080FF3F 0754726967676572060E4973466F63757365643D7472756507456E61626C6564 @@ -3248,7 +3248,7 @@ object MainForm: TMainForm 34343735394400000B54466F6E744F626A65637400095374796C654E616D6506 04666F6E740000005450463007544C61796F757400095374796C654E616D6506 0D73706C69747465727374796C650756697369626C6508085461624F72646572 - 0210000854456C6C6970736500095374796C654E616D6506046772697005416C + 0211000854456C6C6970736500095374796C654E616D6506046772697005416C 69676E07034669740946696C6C2E4B696E6407084772616469656E741446696C 6C2E4772616469656E742E506F696E74730E0105436F6C6F7207097846463441 34393534064F66667365740500000000000000000000000105436F6C6F720709 @@ -3260,7 +3260,7 @@ object MainForm: TMainForm 0000000000C804401453697A652E506C6174666F726D44656661756C74080C53 74726F6B652E436F6C6F720708636C6157686974650000005450463007544C61 796F757400095374796C654E616D65060D636865636B626F787374796C650756 - 697369626C6508085461624F7264657202110007544C61796F75740005416C69 + 697369626C6508085461624F7264657202120007544C61796F75740005416C69 676E07044C6566740A53697A652E576964746805000000000000009003400B53 697A652E4865696768740500000000000000C804401453697A652E506C617466 6F726D44656661756C7408001154436865636B5374796C654F626A6563740009 @@ -3308,7 +3308,7 @@ object MainForm: TMainForm 726D616C436F6C6F720708636C6157686974650C50726573736564436F6C6F72 0708636C6157686974650000005450463007544C61796F757400095374796C65 4E616D650610726164696F627574746F6E7374796C650756697369626C650808 - 5461624F7264657202120007544C61796F75740005416C69676E07044C656674 + 5461624F7264657202130007544C61796F75740005416C69676E07044C656674 0A53697A652E576964746805000000000000009003400B53697A652E48656967 68740500000000000000C804401453697A652E506C6174666F726D4465666175 6C7408001154436865636B5374796C654F626A65637400095374796C654E616D @@ -3355,7 +3355,7 @@ object MainForm: TMainForm 6C6157686974650B4E6F726D616C436F6C6F720708636C6157686974650C5072 6573736564436F6C6F720708636C6157686974650000005450463007544C6179 6F757400095374796C654E616D65060E7363726F6C6C6261727374796C650756 - 697369626C6508085461624F726465720213000754427574746F6E0009537479 + 697369626C6508085461624F726465720214000754427574746F6E0009537479 6C654E616D65060A6C656674627574746F6E05416C69676E07044C656674064C 6F636B6564090A506F736974696F6E2E5905000000000000008003400A53697A 652E576964746805000000000000008003400B53697A652E4865696768740500 @@ -3940,7 +3940,7 @@ object MainForm: TMainForm 2E576964746805000000000000009003400B53697A652E486569676874050000 0000000000A003401453697A652E506C6174666F726D44656661756C74080000 00005450463007544C61796F757400095374796C654E616D65060D73697A6567 - 7269707374796C650756697369626C6508085461624F726465720220000C5453 + 7269707374796C650756697369626C6508085461624F726465720221000C5453 74796C654F626A6563740005416C69676E070643656E7465720C536F75726365 4C6F6F6B757006124F6E797820426C75657374796C652E706E670A53697A652E 57696474680500000000000000E002400B53697A652E48656967687405000000 @@ -3981,7 +3981,7 @@ object MainForm: TMainForm 544C61796F757400095374796C654E616D65060D6D656E75766965777374796C 650D50616464696E672E526967687405000000000000008002400E5061646469 6E672E426F74746F6D05000000000000008002400756697369626C6508085461 - 624F726465720221000C545374796C654F626A6563740005416C69676E070643 + 624F726465720222000C545374796C654F626A6563740005416C69676E070643 6C69656E74074361704D6F6465070454696C650D4D617267696E732E52696768 7405000000000000008002C00E4D617267696E732E426F74746F6D0500000000 0000008002C00C536F757263654C6F6F6B757006124F6E797820426C75657374 @@ -4005,7 +4005,7 @@ object MainForm: TMainForm 0B53697A652E48656967687405000000000000009804401453697A652E506C61 74666F726D44656661756C74080000005450463007544C61796F757400095374 796C654E616D6506106D656E756261726974656D7374796C650756697369626C - 6508085461624F726465720222000C545374796C654F626A6563740005416C69 + 6508085461624F726465720223000C545374796C654F626A6563740005416C69 676E0708436F6E74656E7473074F70616369747905000000000000000000000C 536F757263654C6F6F6B757006124F6E797820426C75657374796C652E706E67 0A536F757263654C696E6B0E010E436170496E736574732E4C65667405000000 @@ -4132,7 +4132,7 @@ object MainForm: TMainForm 65727365062249734D6F7573654F7665723D66616C73653B497353656C656374 65643D66616C736500000000005450463007544C61796F757400095374796C65 4E616D65060D6D656E756974656D7374796C650756697369626C650808546162 - 4F726465720223000C545374796C654F626A6563740005416C69676E0708436F + 4F726465720224000C545374796C654F626A6563740005416C69676E0708436F 6E74656E7473074F70616369747905000000000000000000000C536F75726365 4C6F6F6B757006124F6E797820426C75657374796C652E706E670A536F757263 654C696E6B0E010E436170496E736574732E4C6566740500000000000000A002 @@ -4282,7 +4282,7 @@ object MainForm: TMainForm 095374796C654E616D6506126D656E75736570617261746F727374796C650B4D 617267696E732E546F70050000000000000080FF3F0E4D617267696E732E426F 74746F6D050000000000000080FF3F0756697369626C6508085461624F726465 - 720224000C545374796C654F626A6563740005416C69676E0703546F700C536F + 720225000C545374796C654F626A6563740005416C69676E0703546F700C536F 757263654C6F6F6B757006124F6E797820426C75657374796C652E706E670A53 697A652E57696474680500000000000000C804400B53697A652E486569676874 05000000000000008000401453697A652E506C6174666F726D44656661756C74 @@ -4294,7 +4294,7 @@ object MainForm: TMainForm 6F787374796C650C50616464696E672E4C65667405000000000000008000400B 50616464696E672E546F7005000000000000008002400D50616464696E672E52 6967687405000000000000008000400E50616464696E672E426F74746F6D0500 - 0000000000008000400756697369626C6508085461624F726465720225000C54 + 0000000000008000400756697369626C6508085461624F726465720226000C54 5374796C654F626A65637400095374796C654E616D65060A6261636B67726F75 6E6405416C69676E0706436C69656E74074361704D6F6465070454696C65064C 6F636B6564090C536F757263654C6F6F6B757006124F6E797820426C75657374 @@ -4322,7 +4322,7 @@ object MainForm: TMainForm 787374796C6505416C69676E0708436F6E74656E74730A53697A652E57696474 680500000000009324B106400B53697A652E4865696768740500000000004A92 E805401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F726465720226000B54476C6F774566666563740008536F6674 + 6508085461624F726465720227000B54476C6F774566666563740008536F6674 6E657373050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846463438 37394133074F706163697479050000000000000080FF3F075472696767657206 0E4973466F63757365643D7472756507456E61626C65640800000C5442727573 @@ -4395,7 +4395,7 @@ object MainForm: TMainForm 68740500000000000000C804401453697A652E506C6174666F726D4465666175 6C74080756697369626C6508000000005450463007544C61796F757400095374 796C654E616D6506106C697374626F786974656D7374796C650756697369626C - 6508085461624F726465720227000654476C79706800095374796C654E616D65 + 6508085461624F726465720228000654476C79706800095374796C654E616D65 060A676C7970687374796C650C4D617267696E732E4C65667405000000000000 008000400B4D617267696E732E546F70050000000000000080FF3F0D4D617267 696E732E526967687405000000000000008000400E4D617267696E732E426F74 @@ -4471,7 +4471,7 @@ object MainForm: TMainForm 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E 6407044E6F6E6500000000005450463007544C61796F757400095374796C654E 616D65060E736561726368626F787374796C650756697369626C650808546162 - 4F726465720228000C545374796C654F626A65637400095374796C654E616D65 + 4F726465720229000C545374796C654F626A65637400095374796C654E616D65 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730C536F75 7263654C6F6F6B757006124F6E797820426C75657374796C652E706E67085772 61704D6F6465070454696C650A536F757263654C696E6B0E010E436170496E73 @@ -4510,25 +4510,25 @@ object MainForm: TMainForm 682E436F6C6F72070978374634343735394400000B54466F6E744F626A656374 00095374796C654E616D650604666F6E740000005450463007544C61796F7574 00095374796C654E616D650609746F6F6C6C6162656C0756697369626C650808 - 5461624F7264657202290005545465787400095374796C654E616D6506047465 + 5461624F72646572022A0005545465787400095374796C654E616D6506047465 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 74650000005450463007544C61796F757400095374796C654E616D6506126C69 7374626F786865616465726C6162656C0756697369626C6508085461624F7264 - 6572022A0005545465787400095374796C654E616D6506047465787405416C69 + 6572022B0005545465787400095374796C654E616D6506047465787405416C69 676E0706436C69656E74064C6F636B6564090748697454657374081654657874 53657474696E67732E466F6E742E53697A650500000000000000980340165465 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 005450463007544C61796F757400095374796C654E616D6506166C697374626F 786974656D64657461696C6C6162656C0756697369626C6508085461624F7264 - 6572022B0016544163746976655374796C65546578744F626A65637400095374 + 6572022C0016544163746976655374796C65546578744F626A65637400095374 796C654E616D6506045465787405416C69676E0706436C69656E74064C6F636B 656409074F7061636974790500000000009A9999FE3F16546578745365747469 6E67732E466F6E74436F6C6F720708636C6157686974650D536861646F775669 7369626C65080D41637469766554726967676572070853656C65637465640B41 6374697665436F6C6F720708636C6157686974650000005450463007544C6179 6F757400095374796C654E616D6506106C697374626F786974656D6C6162656C - 0756697369626C6508085461624F72646572022C001654416374697665537479 + 0756697369626C6508085461624F72646572022D001654416374697665537479 6C65546578744F626A65637400095374796C654E616D6506045465787405416C 69676E0706436C69656E74064C6F636B656409165465787453657474696E6773 2E466F6E742E53697A650500000000000000F00240165465787453657474696E @@ -4536,7 +4536,7 @@ object MainForm: TMainForm 69626C65080D41637469766554726967676572070853656C65637465640B4163 74697665436F6C6F720708636C6157686974650000005450463007544C61796F 757400095374796C654E616D6506136C697374626F786974656D6E6F64657461 - 696C0756697369626C6508085461624F72646572022D000954436865636B426F + 696C0756697369626C6508085461624F72646572022E000954436865636B426F 7800095374796C654E616D650605636865636B05416C69676E07084D6F73744C 6566740843616E466F637573081244697361626C65466F637573456666656374 090D4D617267696E732E52696768740500000000000000A001400A53697A652E @@ -4573,7 +4573,7 @@ object MainForm: TMainForm 676572070853656C65637465640B416374697665436F6C6F720708636C615768 697465000000005450463007544C61796F757400095374796C654E616D650617 6C697374626F786974656D626F74746F6D64657461696C0756697369626C6508 - 085461624F72646572022E000954436865636B426F7800095374796C654E616D + 085461624F72646572022F000954436865636B426F7800095374796C654E616D 650605636865636B05416C69676E07084D6F73744C6566740843616E466F6375 73081244697361626C65466F637573456666656374090D4D617267696E732E52 696768740500000000000000A001400A53697A652E5769647468050000000000 @@ -4619,7 +4619,7 @@ object MainForm: TMainForm 65080D41637469766554726967676572070853656C65637465640B4163746976 65436F6C6F720708636C6157686974650000005450463007544C61796F757400 095374796C654E616D6506166C697374626F786974656D726967687464657461 - 696C0756697369626C6508085461624F72646572022F000B54477269644C6179 + 696C0756697369626C6508085461624F726465720230000B54477269644C6179 6F757400095374796C654E616D6506046172656105416C69676E0706436C6965 6E740748697454657374080A4974656D48656967687405000000000000008005 40094974656D5769647468050000000000000080FFBF0B4F7269656E74617469 @@ -4675,7 +4675,7 @@ object MainForm: TMainForm 005450463007544C61796F757400095374796C654E616D6506156C697374626F 786974656D6C65667464657461696C0A506F736974696F6E2E58050000000000 0000E507400A506F736974696F6E2E590500000000000080A707400756697369 - 626C6508085461624F726465720230000B54477269644C61796F757400095374 + 626C6508085461624F726465720231000B54477269644C61796F757400095374 796C654E616D6506046172656105416C69676E0706436C69656E740748697454 657374080A4974656D4865696768740500000000000000800540094974656D57 69647468050000000000000080FFBF0B4F7269656E746174696F6E070A486F72 @@ -4729,7 +4729,7 @@ object MainForm: TMainForm 697369626C65080D41637469766554726967676572070853656C65637465640B 416374697665436F6C6F720708636C6157686974650000000000545046300754 4C61796F757400095374796C654E616D6506126C697374626F78706C61696E68 - 65616465720756697369626C6508085461624F726465720231000C545374796C + 65616465720756697369626C6508085461624F726465720232000C545374796C 654F626A65637400095374796C654E616D65060A6261636B67726F756E640541 6C69676E0708436F6E74656E74730C536F757263654C6F6F6B757006124F6E79 7820426C75657374796C652E706E670A536F757263654C696E6B0E010E436170 @@ -4751,7 +4751,7 @@ object MainForm: TMainForm 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 7453657474696E67732E486F727A416C69676E07074C656164696E6700000000 5450463007544C61796F757400095374796C654E616D6506126C697374626F78 - 67726F75706865616465720756697369626C6508085461624F72646572023200 + 67726F75706865616465720756697369626C6508085461624F72646572023300 0C545374796C654F626A65637400095374796C654E616D65060A6261636B6772 6F756E6405416C69676E0708436F6E74656E74730C536F757263654C6F6F6B75 7006124F6E797820426C75657374796C652E706E670A536F757263654C696E6B @@ -4773,7 +4773,7 @@ object MainForm: TMainForm 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 7465165465787453657474696E67732E486F727A416C69676E07074C65616469 6E67000000005450463007544C61796F757400095374796C654E616D65060D6C - 697374626F78666F6F7465720756697369626C6508085461624F726465720233 + 697374626F78666F6F7465720756697369626C6508085461624F726465720234 0007544C61796F757400095374796C654E616D6506046172656105416C69676E 0706436C69656E740005545465787400095374796C654E616D65060474657874 05416C69676E0706436C69656E740748697454657374080C4D617267696E732E @@ -4898,7 +4898,7 @@ object MainForm: TMainForm 4E616D65061764656C657465627574746F6E746578747072657373656405436F 6C6F720708636C6157686974650000005450463007544C61796F757400095374 796C654E616D650615636F6C6F726C697374626F786974656D7374796C650756 - 697369626C6508085461624F7264657202340016544163746976655374796C65 + 697369626C6508085461624F7264657202350016544163746976655374796C65 546578744F626A65637400095374796C654E616D6506047465787405416C6967 6E0706436C69656E740C4D617267696E732E4C6566740500000000000000C000 400B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 @@ -4925,7 +4925,7 @@ object MainForm: TMainForm 6768740500000000000000B804401453697A652E506C6174666F726D44656661 756C74080C5374726F6B652E436F6C6F72070978464632303233323700000054 50463007544C61796F757400095374796C654E616D65060D7472656576696577 - 7374796C650756697369626C6508085461624F726465720235000B54476C6F77 + 7374796C650756697369626C6508085461624F726465720236000B54476C6F77 4566666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77 436F6C6F720709784646343837394133074F7061636974790500000000000000 80FF3F0754726967676572060E4973466F63757365643D7472756507456E6162 @@ -4989,7 +4989,7 @@ object MainForm: TMainForm 2E48656967687405000000000000008002401453697A652E506C6174666F726D 44656661756C74080756697369626C650800000000005450463007544C61796F 757400095374796C654E616D65061174726565766965776974656D7374796C65 - 0756697369626C6508085461624F726465720236000C54537065656442757474 + 0756697369626C6508085461624F726465720237000C54537065656442757474 6F6E00095374796C654E616D650606627574746F6E05416C69676E07044C6566 740C4D617267696E732E4C6566740500000000000000C000400B4D617267696E 732E546F700500000000000000C000400D4D617267696E732E52696768740500 @@ -5025,7 +5025,7 @@ object MainForm: TMainForm 68697465000000005450463007544C61796F757400095374796C654E616D6506 1B7472656576696577657870616E646572627574746F6E7374796C650B4D6172 67696E732E546F70050000000000000080FF3F0756697369626C650808546162 - 4F726465720237000554506174680005416C69676E070643656E746572094461 + 4F726465720238000554506174680005416C69676E070643656E746572094461 74612E506174680A400000000500000000000000D36D3F431BEF484301000000 1749E043BA09E54301000000D36D3F43C73B344401000000D36D3F431BEF4843 03000000D36D3F431BEF48430A46696C6C2E436F6C6F720708636C6157686974 @@ -5051,7 +5051,7 @@ object MainForm: TMainForm 0080FF3F0754726967676572060F4973457870616E6465643D747275650E5472 6967676572496E766572736506104973457870616E6465643D66616C73650000 00005450463007544C61796F757400095374796C654E616D65060C706F706F76 - 65727374796C650756697369626C6508085461624F726465720238000C545374 + 65727374796C650756697369626C6508085461624F726465720239000C545374 796C654F626A65637400095374796C654E616D650602626705416C69676E0706 436C69656E74074361704D6F6465070454696C650C50616464696E672E4C6566 7405000000000000008000400B50616464696E672E546F700500000000000000 @@ -5112,7 +5112,7 @@ object MainForm: TMainForm 676572060F497353656C65637465643D747275650E54726967676572496E7665 7273650610497353656C65637465643D66616C73650000005450463007544C61 796F757400095374796C654E616D65060F746162636F6E74726F6C7374796C65 - 0756697369626C6508085461624F726465720239000C5442727573684F626A65 + 0756697369626C6508085461624F72646572023A000C5442727573684F626A65 637400095374796C654E616D6506107363726F6C6C6261636B67726F756E640B 42727573682E436F6C6F72070978464633313334333900000C545374796C654F 626A6563740005416C69676E0708436F6E74656E7473074361704D6F64650704 @@ -5126,7 +5126,7 @@ object MainForm: TMainForm 10536F75726365526563742E5269676874050000000000000093064011536F75 726365526563742E426F74746F6D0500000000000000D307400000064F706171 7565090000005450463007544C61796F757400095374796C654E616D65060C74 - 61626974656D7374796C650756697369626C6508085461624F72646572023A00 + 61626974656D7374796C650756697369626C6508085461624F72646572023B00 0F545461625374796C654F626A65637400095374796C654E616D650603746F70 05416C69676E0708436F6E74656E74730C436C69704368696C6472656E09064C 6F636B6564090C536F757263654C6F6F6B757006124F6E797820426C75657374 @@ -5276,7 +5276,7 @@ object MainForm: TMainForm 416374697665436F6C6F720708636C61576869746508486F74436F6C6F720708 636C615768697465000000005450463007544C61796F757400095374796C654E 616D65060D7461626974656D637573746F6D0756697369626C6508085461624F - 72646572023B000F545461625374796C654F626A65637400095374796C654E61 + 72646572023C000F545461625374796C654F626A65637400095374796C654E61 6D650603746F7005416C69676E0708436F6E74656E74730C436C69704368696C 6472656E09064C6F636B6564090C536F757263654C6F6F6B757006124F6E7978 20426C75657374796C652E706E670D4163746976655472696767657207085365 @@ -5441,7 +5441,7 @@ object MainForm: TMainForm 6C6F720708636C61576869746508486F74436F6C6F720708636C615768697465 00000000005450463007544C61796F757400095374796C654E616D6506107072 6F67726573736261727374796C650756697369626C6508085461624F72646572 - 023C000C545374796C654F626A65637400095374796C654E616D650605747261 + 023D000C545374796C654F626A65637400095374796C654E616D650605747261 636B05416C69676E0708436F6E74656E7473074361704D6F6465070454696C65 0C536F757263654C6F6F6B757006124F6E797820426C75657374796C652E706E 6708577261704D6F6465070454696C650A536F757263654C696E6B0E010E4361 @@ -5487,7 +5487,7 @@ object MainForm: TMainForm 696768740500000000000000BE064011536F75726365526563742E426F74746F 6D05000000000000009B07400000064F70617175650900000000545046300754 4C61796F757400095374796C654E616D650613736D616C6C7363726F6C6C6261 - 727374796C650756697369626C6508085461624F72646572023D000654547261 + 727374796C650756697369626C6508085461624F72646572023E000654547261 636B00095374796C654E616D65060668747261636B05416C69676E0706436C69 656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E 74616C0A53697A652E57696474680500000000000000C804400B53697A652E48 @@ -5500,7 +5500,7 @@ object MainForm: TMainForm 53697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75 7006147363726F6C6C62617276747261636B7374796C65000000545046300754 4C61796F757400095374796C654E616D65060E7363726F6C6C626F787374796C - 650756697369626C6508085461624F72646572023E0007544C61796F75740009 + 650756697369626C6508085461624F72646572023F0007544C61796F75740009 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E 74656E7473064C6F636B6564090007544C61796F757400095374796C654E616D 650607636F6E74656E7405416C69676E0706436C69656E740A53697A652E5769 @@ -5541,7 +5541,7 @@ object MainForm: TMainForm 68740500000000000000C804401453697A652E506C6174666F726D4465666175 6C74080000000000005450463007544C61796F757400095374796C654E616D65 06146672616D65647363726F6C6C626F787374796C650756697369626C650808 - 5461624F72646572023F000C545374796C654F626A65637400095374796C654E + 5461624F726465720240000C545374796C654F626A65637400095374796C654E 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E747306 4C6F636B6564090C50616464696E672E4C65667405000000000000008000400B 50616464696E672E546F7005000000000000008000400D50616464696E672E52 @@ -5595,7 +5595,7 @@ object MainForm: TMainForm 652E4865696768740500000000000000C804401453697A652E506C6174666F72 6D44656661756C74080000000000005450463007544C61796F75740009537479 6C654E616D6506096D656D6F7374796C650756697369626C6508085461624F72 - 6465720240000B54476C6F774566666563740008536F66746E65737305000000 + 6465720241000B54476C6F774566666563740008536F66746E65737305000000 0000CDCCCCFC3F09476C6F77436F6C6F720709784646343837394133074F7061 63697479050000000000000080FF3F0754726967676572060E4973466F637573 65643D7472756507456E61626C65640800000C545374796C654F626A65637400 @@ -5652,7 +5652,7 @@ object MainForm: TMainForm 35394400000B54466F6E744F626A65637400095374796C654E616D650604666F 6E740000005450463007544C61796F757400095374796C654E616D650611696D 616765636F6E74726F6C7374796C650756697369626C6508085461624F726465 - 720241000B54476C6F774566666563740008536F66746E657373050000000000 + 720242000B54476C6F774566666563740008536F66746E657373050000000000 CDCCCCFC3F09476C6F77436F6C6F720709784646343837394133074F70616369 7479050000000000000080FF3F0754726967676572060E4973466F6375736564 3D7472756507456E61626C65640800000C545374796C654F626A656374000953 @@ -5679,7 +5679,7 @@ object MainForm: TMainForm 0000000000A004401453697A652E506C6174666F726D44656661756C74080000 00005450463007544C61796F757400095374796C654E616D65060D747261636B 6261727374796C6505416C69676E070643656E7465720756697369626C650808 - 5461624F7264657202420B466978656448656967687402180009545374796C65 + 5461624F7264657202430B466978656448656967687402180009545374796C65 5461670003546167020E095374796C654E616D6506095468756D6253697A6500 000C545374796C654F626A65637400095374796C654E616D6506066874726163 6B05416C69676E070A5665727443656E746572064C6F636B6564090C536F7572 @@ -5779,7 +5779,7 @@ object MainForm: TMainForm 000000000000C9074011536F75726365526563742E426F74746F6D0500000000 000080D70740000013546F756368416E696D6174696F6E2E4C696E6B0E000000 5450463007544C61796F757400095374796C654E616D65060F64726F70746172 - 6765747374796C650756697369626C6508085461624F726465720243000A5452 + 6765747374796C650756697369626C6508085461624F726465720244000A5452 656374616E676C650005416C69676E0708436F6E74656E74730946696C6C2E4B 696E6407044E6F6E650748697454657374080A53697A652E5769647468050000 0000000000C804400B53697A652E4865696768740500000000000000C8044014 @@ -5812,7 +5812,7 @@ object MainForm: TMainForm 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B 696E6407044E6F6E650000005450463013544269746D61705377697463684F62 6A65637400095374796C654E616D65060B7377697463687374796C6505416C69 - 676E070643656E746572085461624F72646572024412547261636B696E675468 + 676E070643656E746572085461624F72646572024512547261636B696E675468 756D625363616C65050000000000000080FF3F0756697369626C650805547261 636B0E010E436170496E736574732E4C6566740500000000000000C001400D43 6170496E736574732E546F700500000000000000C001400F436170496E736574 @@ -5843,7 +5843,7 @@ object MainForm: TMainForm 4A700E000E546578744269746D61704A704F6E0E000C536F757263654C6F6F6B 757006124F6E797820426C75657374796C652E706E6700005450463007544C61 796F757400095374796C654E616D650609677269647374796C65075669736962 - 6C6508085461624F726465720245000B54476C6F774566666563740008536F66 + 6C6508085461624F726465720246000B54476C6F774566666563740008536F66 746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F72070978464634 3837394133074F706163697479050000000000000080FF3F0754726967676572 060E4973466F63757365643D7472756507456E61626C65640800000C54427275 @@ -5920,7 +5920,7 @@ object MainForm: TMainForm 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 00000000005450463007544C61796F757400095374796C654E616D65060F6865 616465726974656D7374796C650756697369626C6508085461624F7264657202 - 46001254427574746F6E5374796C654F626A65637400095374796C654E616D65 + 47001254427574746F6E5374796C654F626A65637400095374796C654E616D65 060A6261636B67726F756E6405416C69676E0708436F6E74656E7473064C6F63 6B6564090C536F757263654C6F6F6B757006124F6E797820426C75657374796C 652E706E6707486F744C696E6B0E010E436170496E736574732E4C6566740500 @@ -6072,7 +6072,7 @@ object MainForm: TMainForm 74796C6512000000000E56696577706F72742E57696474680500000000000000 B804400F56696577706F72742E48656967687405000000000000000000000000 005450463007544C61796F757400095374796C654E616D65061263616C656E64 - 61726C6162656C7374796C650756697369626C6508085461624F726465720247 + 61726C6162656C7374796C650756697369626C6508085461624F726465720248 0005545465787400095374796C654E616D6506047465787405416C69676E0706 436C69656E74064C6F636B656409074869745465737408165465787453657474 696E67732E466F6E74436F6C6F720708636C6157686974650000005450463008 @@ -6093,7 +6093,7 @@ object MainForm: TMainForm 80FE3F0754726967676572061049734D6F7573654F7665723D747275650E5472 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 00005450463007544C61796F757400095374796C654E616D65060D657870616E - 6465727374796C650756697369626C6508085461624F726465720248000A5452 + 6465727374796C650756697369626C6508085461624F726465720249000A5452 656374616E676C650005416C69676E0708436F6E74656E74730A46696C6C2E43 6F6C6F7207097846463331333433390748697454657374080A53697A652E5769 6474680500000000000000C804400B53697A652E486569676874050000000000 @@ -6121,7 +6121,7 @@ object MainForm: TMainForm 68740500000000000000C803401453697A652E506C6174666F726D4465666175 6C740800000000005450463007544C61796F757400095374796C654E616D6506 13657870616E646572627574746F6E7374796C650756697369626C6508085461 - 624F726465720249001254427574746F6E5374796C654F626A65637400095374 + 624F72646572024A001254427574746F6E5374796C654F626A65637400095374 796C654E616D65060A6261636B67726F756E6405416C69676E070643656E7465 72074F70616369747905000000000000000000000C536F757263654C6F6F6B75 7006124F6E797820426C75657374796C652E706E670A53697A652E5769647468 @@ -6177,7 +6177,7 @@ object MainForm: TMainForm 7870616E6465643D747275650E54726967676572496E76657273650610497345 7870616E6465643D66616C7365000000005450463007544C61796F7574000953 74796C654E616D65061264726F70646F776E65646974627574746F6E07566973 - 69626C6508085461624F72646572024A001254427574746F6E5374796C654F62 + 69626C6508085461624F72646572024B001254427574746F6E5374796C654F62 6A65637400095374796C654E616D65060A6261636B67726F756E6405416C6967 6E0708436F6E74656E74730C536F757263654C6F6F6B757006124F6E79782042 6C75657374796C652E706E6707486F744C696E6B0E010E436170496E73657473 @@ -6238,7 +6238,7 @@ object MainForm: TMainForm 726365526563742E426F74746F6D0500000000000000A60740000013546F7563 68416E696D6174696F6E2E4C696E6B0E000000005450463007544C61796F7574 00095374796C654E616D65060E636F6D626F656469747374796C650756697369 - 626C6508085461624F72646572024B000C545374796C654F626A656374000953 + 626C6508085461624F72646572024C000C545374796C654F626A656374000953 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 656E7473074361704D6F6465070454696C650C50616464696E672E4C65667405 000000000000008000400B50616464696E672E546F7005000000000000008000 @@ -6302,7 +6302,7 @@ object MainForm: TMainForm 0B42727573682E436F6C6F72070978374634343735394400000B54466F6E744F 626A65637400095374796C654E616D650604666F6E740000005450463007544C 61796F757400095374796C654E616D65060D636F6D626F626F787374796C6507 - 56697369626C6508085461624F72646572024C000B54476C6F77456666656374 + 56697369626C6508085461624F72646572024D000B54476C6F77456666656374 0008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F7207 09784646343837394133074F706163697479050000000000000080FF3F075472 6967676572060E4973466F63757365643D7472756507456E61626C6564080000 @@ -6353,7 +6353,7 @@ object MainForm: TMainForm 00000C5442727573684F626A65637400095374796C654E616D65060A666F7265 67726F756E640000005450463007544C61796F757400095374796C654E616D65 06177472616E73706172656E746C697374626F787374796C650756697369626C - 6508085461624F72646572024D000C5442727573684F626A6563740009537479 + 6508085461624F72646572024E000C5442727573684F626A6563740009537479 6C654E616D650618416C7465726E6174696E67526F774261636B67726F756E64 0B42727573682E436F6C6F720709784646333933453434000007544C61796F75 7400095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 @@ -6433,7 +6433,7 @@ object MainForm: TMainForm 000000000953746F7056616C7565050000000000000080FF3F07547269676765 720610497344726F70446F776E3D66616C73650000005450463007544C61796F 757400095374796C654E616D65060E6E756D626572626F787374796C65075669 - 7369626C6508085461624F72646572024E000B54476C6F774566666563740008 + 7369626C6508085461624F72646572024F000B54476C6F774566666563740008 536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F72070978 4646343837394133074F706163697479050000000000000080FF3F0754726967 676572060E4973466F63757365643D7472756507456E61626C65640800000C54 @@ -6468,7 +6468,7 @@ object MainForm: TMainForm 6C6F72070978374634343735394400000B54466F6E744F626A65637400095374 796C654E616D650604666F6E740000005450463007544C61796F757400095374 796C654E616D65060D706F707570626F787374796C650756697369626C650808 - 5461624F72646572024F000B54476C6F774566666563740008536F66746E6573 + 5461624F726465720250000B54476C6F774566666563740008536F66746E6573 73050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846463438373941 33074F706163697479050000000000000080FF3F0754726967676572060E4973 466F63757365643D7472756507456E61626C65640800001254427574746F6E53 @@ -6561,7 +6561,7 @@ object MainForm: TMainForm 6D616C436F6C6F7207097846463138314131440C50726573736564436F6C6F72 0708636C6157686974650000005450463007544C61796F757400095374796C65 4E616D65060C6172636469616C7374796C650756697369626C6508085461624F - 726465720250000854456C6C6970736500095374796C654E616D65060A626163 + 726465720251000854456C6C6970736500095374796C654E616D65060A626163 6B67726F756E6405416C69676E07034669740946696C6C2E4B696E6407084772 616469656E741446696C6C2E4772616469656E742E506F696E74730E0105436F 6C6F720709784646344134393534064F66667365740500000000000000000000 @@ -6604,7 +6604,7 @@ object MainForm: TMainForm 6E74436F6C6F720709784646313831413144155465787453657474696E67732E 576F726457726170080000005450463007544C61796F757400095374796C654E 616D650611636F726E6572627574746F6E7374796C650756697369626C650808 - 5461624F726465720251000B54476C6F774566666563740008536F66746E6573 + 5461624F726465720252000B54476C6F774566666563740008536F66746E6573 73050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846463438373941 33074F706163697479050000000000000080FF3F0754726967676572060E4973 466F63757365643D7472756507456E61626C65640800000A5452656374616E67 @@ -6638,7 +6638,7 @@ object MainForm: TMainForm 436F6C6F720709784646313831413144155465787453657474696E67732E576F 726457726170080000005450463007544C61796F757400095374796C654E616D 65060D7465787463656C6C7374796C650756697369626C6508085461624F7264 - 657202520007544C61796F757400095374796C654E616D650607636F6E74656E + 657202530007544C61796F757400095374796C654E616D650607636F6E74656E 7405416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E 732E4C65667405000000000000008001400B4D617267696E732E546F70050000 00000000008001400D4D617267696E732E526967687405000000000000008001 @@ -6650,7 +6650,7 @@ object MainForm: TMainForm 73656C656374696F6E0B42727573682E436F6C6F720709783746343437353944 00000B54466F6E744F626A65637400095374796C654E616D650604666F6E7400 00005450463007544C61796F757400095374796C654E616D65060E636865636B - 63656C6C7374796C650756697369626C6508085461624F726465720253000754 + 63656C6C7374796C650756697369626C6508085461624F726465720254000754 4C61796F75740005416C69676E07044C6566740A53697A652E57696474680500 000000000000A003400B53697A652E4865696768740500000000000000C80440 1453697A652E506C6174666F726D44656661756C7408001154436865636B5374 @@ -6712,7 +6712,7 @@ object MainForm: TMainForm 65526563742E5269676874050000000000000092054011536F75726365526563 742E426F74746F6D0500000000000000A2064000000000005450463007544C61 796F757400095374796C654E616D65061170726F677265737363656C6C737479 - 6C650756697369626C6508085461624F7264657202540007544C61796F757400 + 6C650756697369626C6508085461624F7264657202550007544C61796F757400 095374796C654E616D650605747261636B05416C69676E0708436F6E74656E74 730C50616464696E672E4C656674050000000000000080FF3F0B50616464696E 672E546F70050000000000000080FF3F0D50616464696E672E52696768740500 @@ -6752,7 +6752,7 @@ object MainForm: TMainForm 63742E52696768740500000000000000BE064011536F75726365526563742E42 6F74746F6D05000000000000009B07400000064F706171756509000000005450 463007544C61796F757400095374796C654E616D65060E706F70757063656C6C - 7374796C650756697369626C6508085461624F7264657202550007544C61796F + 7374796C650756697369626C6508085461624F7264657202560007544C61796F 75740005416C69676E070552696768740A506F736974696F6E2E580500000000 0000008C04400A53697A652E57696474680500000000000000F002400B53697A 652E4865696768740500000000000000C804401453697A652E506C6174666F72 @@ -6780,7 +6780,7 @@ object MainForm: TMainForm 00B804401453697A652E506C6174666F726D44656661756C7408165465787453 657474696E67732E466F6E74436F6C6F720708636C6157686974650000005450 463007544C61796F757400095374796C654E616D65060E696D61676563656C6C - 7374796C650756697369626C6508085461624F726465720256000654496D6167 + 7374796C650756697369626C6508085461624F726465720257000654496D6167 6500095374796C654E616D650605696D6167650E4D756C74695265734269746D 61700E01000005416C69676E0706436C69656E74064C6F636B65640907486974 54657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D61 @@ -6792,7 +6792,7 @@ object MainForm: TMainForm 4E616D65061177696E646F77626F726465727374796C6505416C69676E070643 656E7465720A53697A652E57696474680500000000000000F805400B53697A65 2E48656967687405000000000000008305401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508085461624F726465720257000C5453 + 44656661756C74080756697369626C6508085461624F726465720258000C5453 74796C654F626A65637400095374796C654E616D6506046D61736B05416C6967 6E0708436F6E74656E7473064C6F636B6564090C536F757263654C6F6F6B7570 06124F6E797820426C75657374796C652E706E6708577261704D6F6465070454 @@ -6944,7 +6944,7 @@ object MainForm: TMainForm 0B53697A652E4865696768740500000000000000FC03401453697A652E506C61 74666F726D44656661756C74080000005450463007544C61796F757400095374 796C654E616D65060B6D696E62746E7374796C650756697369626C6508085461 - 624F72646572025800135453797374656D427574746F6E4F626A656374000953 + 624F72646572025900135453797374656D427574746F6E4F626A656374000953 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 656E7473074361704D6F6465070454696C650C536F757263654C6F6F6B757006 124F6E797820426C75657374796C652E706E6708577261704D6F646507064365 @@ -6970,7 +6970,7 @@ object MainForm: TMainForm 6874050000000000000093074011536F75726365526563742E426F74746F6D05 00000000000000AE054000000000005450463007544C61796F75740009537479 6C654E616D65060B6D617862746E7374796C650756697369626C650808546162 - 4F72646572025900135453797374656D427574746F6E4F626A65637400095374 + 4F72646572025A00135453797374656D427574746F6E4F626A65637400095374 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 6E7473074361704D6F6465070454696C650C536F757263654C6F6F6B75700612 4F6E797820426C75657374796C652E706E6708577261704D6F6465070643656E @@ -6996,7 +6996,7 @@ object MainForm: TMainForm 74050000000000008093074011536F75726365526563742E426F74746F6D0500 000000000000B0044000000000005450463007544C61796F757400095374796C 654E616D65060B72657362746E7374796C650756697369626C6508085461624F - 72646572025A00135453797374656D427574746F6E4F626A6563740009537479 + 72646572025B00135453797374656D427574746F6E4F626A6563740009537479 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E 7473074361704D6F6465070454696C650C536F757263654C6F6F6B757006124F 6E797820426C75657374796C652E706E6708577261704D6F6465070643656E74 @@ -7022,7 +7022,7 @@ object MainForm: TMainForm 050000000000008093074011536F75726365526563742E426F74746F6D050000 000000000082054000000000005450463007544C61796F757400095374796C65 4E616D65060D636C6F736562746E7374796C650756697369626C650808546162 - 4F72646572025C00135453797374656D427574746F6E4F626A65637400095374 + 4F72646572025D00135453797374656D427574746F6E4F626A65637400095374 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 6E7473074361704D6F6465070454696C650C536F757263654C6F6F6B75700612 4F6E797820426C75657374796C652E706E6708577261704D6F6465070643656E @@ -7048,7 +7048,7 @@ object MainForm: TMainForm 74050000000000008093074011536F75726365526563742E426F74746F6D0500 000000000000B0034000000000005450463007544C61796F757400095374796C 654E616D65060F746F6F6C77696E646F777374796C650756697369626C650808 - 5461624F72646572025E000C545374796C654F626A65637400095374796C654E + 5461624F72646572025F000C545374796C654F626A65637400095374796C654E 616D6506046D61736B05416C69676E0708436F6E74656E7473064C6F636B6564 090C536F757263654C6F6F6B757006124F6E797820426C75657374796C652E70 6E6708577261704D6F6465070454696C650756697369626C65080A536F757263 @@ -7175,7 +7175,7 @@ object MainForm: TMainForm 04400B53697A652E4865696768740500000000000000C003401453697A652E50 6C6174666F726D44656661756C74080000005450463007544C61796F75740009 5374796C654E616D650611746F6F6C636C6F736562746E7374796C6507566973 - 69626C6508085461624F72646572026000135453797374656D427574746F6E4F + 69626C6508085461624F72646572026100135453797374656D427574746F6E4F 626A65637400095374796C654E616D65060A6261636B67726F756E6405416C69 676E0708436F6E74656E74730C536F757263654C6F6F6B757006124F6E797820 426C75657374796C652E706E6708577261704D6F6465070643656E7465720748 @@ -7201,10 +7201,10 @@ object MainForm: TMainForm 0000008093074011536F75726365526563742E426F74746F6D05000000000000 00B0034000000000005450463007544C61796F757400095374796C654E616D65 0611616E69696E64696361746F727374796C650756697369626C650808546162 - 4F726465720263000C5442727573684F626A65637400095374796C654E616D65 + 4F726465720264000C5442727573684F626A65637400095374796C654E616D65 060466696C6C0000005450463007544C61796F757400095374796C654E616D65 060E7461626C65766965777374796C650756697369626C6508085461624F7264 - 65720266000C5442727573684F626A65637400095374796C654E616D65061841 + 65720267000C5442727573684F626A65637400095374796C654E616D65061841 6C7465726E6174696E67526F774261636B67726F756E640B42727573682E436F 6C6F720709784646333933453434000007544C61796F757400095374796C654E 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E747300 @@ -7253,7 +7253,7 @@ object MainForm: TMainForm 06400B53697A652E48656967687405000000000000008002401453697A652E50 6C6174666F726D44656661756C74080756697369626C65080000000000545046 3007544C61796F757400095374796C654E616D6506136D61676E696669657267 - 6C6173737374796C650756697369626C6508085461624F7264657202690A4669 + 6C6173737374796C650756697369626C6508085461624F72646572026A0A4669 78656457696474680396000B4669786564486569676874039600000754436972 636C6500095374796C654E616D650607636F6E74656E7405416C69676E070643 6C69656E741446696C6C2E4269746D61702E577261704D6F6465070454696C65 @@ -7289,7 +7289,7 @@ object MainForm: TMainForm 1C6D61676E6966696572676C61737372656374616E676C657374796C650A5369 7A652E57696474680500000000000000C804400B53697A652E48656967687405 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F72646572026C000A5452656374616E676C65 + 0756697369626C6508085461624F72646572026D000A5452656374616E676C65 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 6E741446696C6C2E4269746D61702E577261704D6F6465070454696C65094669 6C6C2E4B696E6407064269746D61700748697454657374080C4D617267696E73 @@ -7329,7 +7329,7 @@ object MainForm: TMainForm 616E676C657374617469634C6F7570650A53697A652E57696474680500000000 000000C804400B53697A652E4865696768740500000000000000C80440145369 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F72646572026F000A5452656374616E676C6500095374796C654E616D650607 + 4F726465720270000A5452656374616E676C6500095374796C654E616D650607 636F6E74656E7405416C69676E0706436C69656E740A53697A652E5769647468 0500000000000000C804400B53697A652E4865696768740500000000000000C8 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E @@ -7494,405 +7494,342 @@ object MainForm: TMainForm Platform = 'Windows' ResourcesBin = { 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 - AF00060B627574746F6E7374796C6503BA040609656469747374796C6503A305 - 060A6C6162656C7374796C65031501060D67726F7570626F787374796C650383 - 02060D747261636B6261727374796C65038107060D636865636B626F78737479 - 6C6503880506147363726F6C6C62617268747261636B7374796C65033B010614 + AF00060B627574746F6E7374796C6503C5040609656469747374796C6503AE05 + 060A6C6162656C7374796C65032001060D67726F7570626F787374796C65038E + 02060D747261636B6261727374796C65038C07060D636865636B626F78737479 + 6C6503930506147363726F6C6C62617268747261636B7374796C65033B010614 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 - 6172626F74746F6D627574746F6E03220406137363726F6C6C6261726C656674 - 627574746F6E03390406147363726F6C6C6261727269676874627574746F6E03 - 3A0406127363726F6C6C626172746F70627574746F6E033804060E7363726F6C - 6C6261727374796C65035804060A7468756D627374796C65033B02060B737769 - 7463687374796C6503D101060D636F6D626F626F787374796C6503F607060E63 - 6F6D626F656469747374796C65038209060F746162636F6E74726F6C7374796C - 65039C01060B746162646F747374796C65035901060C7461626974656D737479 - 6C6503E404060D7468756D626261727374796C65034F03060C6C697374626F78 - 7374796C6503A207060D6C697374626F78666F6F74657203800106106C697374 - 626F786974656D7374796C65031B0306126C697374626F78706C61696E686561 - 646572033B020609677269647374796C65039808060F6865616465726974656D - 7374796C6503C303061970726F67726573736261726D696E696572726F727374 - 796C65035603061170726F677265737363656C6C7374796C65039A0206106D65 - 6E756261726974656D7374796C6503250B060C6D656E756261727374796C6503 - 6C02060D6D656E756974656D7374796C6503520B06126D656E75736570617261 - 746F727374796C65037801060D6D656E75766965777374796C65038802060E69 - 6D61676563656C6C7374796C65033201060E706F70757063656C6C7374796C65 - 03C603060D7465787463656C6C7374796C65039B0106096D656D6F7374796C65 - 03DC07060E6C696E6B6C6162656C7374796C65034503060E7374617475736261 - 727374796C6503E401060C7370696E626F787374796C65031E08060D73697A65 - 677269707374796C6503F004060C746F6F6C6261727374796C6503CA00061570 - 726F67726573736261726572726F727374796C65036404060F64726F70746172 - 6765747374796C65036804061464726F707461726765746669656C647374796C - 6503890E060C706F706F7665727374796C65032A02060D706F707570626F7873 - 74796C6503320606147374617475736261726E6F677269707374796C6503D400 - 0613736D616C6C7363726F6C6C6261727374796C6503A301060D73706C697474 - 65727374796C650360040610636C6F7365627574746F6E7374796C6503660406 - 0E6D6178627574746F6E7374796C6503F603060E726573627574746F6E737479 - 6C65030F04060E6D696E627574746F6E7374796C65030E04060F746F6F6C7769 - 6E646F777374796C6503B20D061177696E646F77626F726465727374796C6503 - 4A100610726164696F627574746F6E7374796C6503AE050618756C63656E7465 - 72726164696F627574746F6E7374796C650352050617756C7269676874726164 - 696F627574746F6E7374796C650355050616756C6C656674726164696F627574 - 746F6E7374796C65035005061070726F67726573736261727374796C65035F04 - 060D657870616E6465727374796C650366060613657870616E64657262757474 - 6F6E7374796C650376020615657870616E646572636865636B626F787374796C - 6503D005060E6C6162656C66696C6C7374796C6503B8010613636F6D626F6564 - 69746572726F727374796C65038709061E70726F6772657373626172696E6465 - 7465726D696E61626C657374796C650379040611616E69696E64696361746F72 - 7374796C6503BA010615616E69696E64696361746F72686F727A7374796C6503 - 8A02060A70616E656C7374796C65031E01060E6C6F67627574746F6E7374796C - 65038A07061470726F67726573736261726D696E697374796C65035103061B74 - 72656576696577657870616E646572627574746F6E7374796C65037E02061174 - 726565766965776974656D7374796C65031305060D7472656576696577737479 - 6C650336070619616374696F6E746F6F6C627574746F6E6D756C746976696577 - 033F07060E616464627574746F6E7374796C650337070617696E666F746F6F6C - 627574746F6E6D756C74697669657703B40D061B6F7267616E697A65746F6F6C - 627574746F6E6D756C74697669657703F906061B73657474696E6773746F6F6C - 627574746F6E6D756C746976696577038813061172656D6F7665627574746F6E - 7374796C6503DA060614706F7075706261636B67726F756E647374796C6503BA - 0000545046300A5452656374616E676C6500095374796C654E616D65060F6261 - 636B67726F756E647374796C6505416C69676E070643656E7465720A46696C6C - 2E436F6C6F7207097846463244324432440A53697A652E576964746805000000 - 000000009407400B53697A652E4865696768740500000000000080D206401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E650756697369626C650800005450463007544C61796F7574000953 - 74796C654E616D65060B627574746F6E7374796C6505416C69676E070643656E - 7465720A53697A652E57696474680500000000000000C805400B53697A652E48 - 65696768740500000000000000C803401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508000A5452656374616E676C650009537479 - 6C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E74 - 0C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E - 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 - 696474680500000000000000C805400B53697A652E4865696768740500000000 - 000000C803401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E - 31084475726174696F6E05000000000000000000000C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 - 323032300953746F7056616C7565070978464634303430343007547269676765 - 72063049734D6F7573654F7665723D747275653B4973507265737365643D6661 - 6C73653B4973466F63757365643D66616C73650E54726967676572496E766572 - 7365063149734D6F7573654F7665723D66616C73653B4973507265737365643D - 66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 - 6E696D6174696F6E32084475726174696F6E05000000000000000000000C5072 - 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463430343034300953746F7056616C756507097846463137353739 - 430754726967676572062F4973507265737365643D747275653B49734D6F7573 - 654F7665723D747275653B4973466F63757365643D66616C736500000F54436F + 6172626F74746F6D627574746F6E032D0406137363726F6C6C6261726C656674 + 627574746F6E03440406147363726F6C6C6261727269676874627574746F6E03 + 450406127363726F6C6C626172746F70627574746F6E034304060E7363726F6C + 6C6261727374796C65036304060A7468756D627374796C65033B02060B737769 + 7463687374796C6503DC01060D636F6D626F626F787374796C65030108060E63 + 6F6D626F656469747374796C65038D09060F746162636F6E74726F6C7374796C + 6503A701060B746162646F747374796C65035901060C7461626974656D737479 + 6C6503EF04060D7468756D626261727374796C65034F03060C6C697374626F78 + 7374796C6503AD07060D6C697374626F78666F6F746572038B0106106C697374 + 626F786974656D7374796C6503260306126C697374626F78706C61696E686561 + 6465720346020609677269647374796C6503A308060F6865616465726974656D + 7374796C6503CE03061970726F67726573736261726D696E696572726F727374 + 796C65036103061170726F677265737363656C6C7374796C6503A50206106D65 + 6E756261726974656D7374796C6503300B060C6D656E756261727374796C6503 + 6C02060D6D656E756974656D7374796C65035D0B06126D656E75736570617261 + 746F727374796C65038301060D6D656E75766965777374796C65039102060E69 + 6D61676563656C6C7374796C65033D01060E706F70757063656C6C7374796C65 + 03D103060D7465787463656C6C7374796C6503A60106096D656D6F7374796C65 + 03E707060E6C696E6B6C6162656C7374796C65035003060E7374617475736261 + 727374796C6503E401060C7370696E626F787374796C65035F07060D73697A65 + 677269707374796C6503FB04060C746F6F6C6261727374796C6503CA00061570 + 726F67726573736261726572726F727374796C65036F04060F64726F70746172 + 6765747374796C65037304061464726F707461726765746669656C647374796C + 6503940E060C706F706F7665727374796C65033502060D706F707570626F7873 + 74796C65033D0606147374617475736261726E6F677269707374796C6503D400 + 0613736D616C6C7363726F6C6C6261727374796C6503AE01060D73706C697474 + 65727374796C65036B040610636C6F7365627574746F6E7374796C6503710406 + 0E6D6178627574746F6E7374796C65030104060E726573627574746F6E737479 + 6C65031A04060E6D696E627574746F6E7374796C65031904060F746F6F6C7769 + 6E646F777374796C6503BD0D0610726164696F627574746F6E7374796C6503B9 + 050618756C63656E746572726164696F627574746F6E7374796C65035D050617 + 756C7269676874726164696F627574746F6E7374796C650360050616756C6C65 + 6674726164696F627574746F6E7374796C65035B05061670726F677265737362 + 617266696E6973687374796C65037004060D657870616E6465727374796C6503 + 71060613657870616E646572627574746F6E7374796C65038102061565787061 + 6E646572636865636B626F787374796C6503DB05060E6C6162656C66696C6C73 + 74796C6503C3010613636F6D626F656469746572726F727374796C6503920906 + 1E70726F6772657373626172696E64657465726D696E61626C657374796C6503 + 84040611616E69696E64696361746F727374796C6503EA010615616E69696E64 + 696361746F72686F727A7374796C65039502060A70616E656C7374796C650329 + 01060E6C6F67627574746F6E7374796C65039507061470726F67726573736261 + 726D696E697374796C65035C03061B7472656576696577657870616E64657262 + 7574746F6E7374796C65038902061174726565766965776974656D7374796C65 + 030905060D74726565766965777374796C650341070619616374696F6E746F6F + 6C627574746F6E6D756C746976696577034A07060E616464627574746F6E7374 + 796C650337070617696E666F746F6F6C627574746F6E6D756C74697669657703 + B40D061B6F7267616E697A65746F6F6C627574746F6E6D756C74697669657703 + F906061B73657474696E6773746F6F6C627574746F6E6D756C74697669657703 + 8813061172656D6F7665627574746F6E7374796C6503DA060614706F70757062 + 61636B67726F756E647374796C6503BA00061A70726F67726573736261726D69 + 6E6966696E6973687374796C65036203061070726F6772657373626172737479 + 6C65036A04061177696E646F77626F726465727374796C650394100054504630 + 0A5452656374616E676C6500095374796C654E616D65060F6261636B67726F75 + 6E647374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463244324432440A53697A652E576964746805000000000000009407 + 400B53697A652E4865696768740500000000000080D206401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0756697369626C650800005450463007544C61796F757400095374796C654E61 + 6D65060B627574746F6E7374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000C805400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F726465720201000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070643 + 6C69656E740C436C69704368696C6472656E090A436C6970506172656E74090A + 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E31084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 - 6F6C6F72416E696D6174696F6E33084475726174696F6E050000000000000000 + 6F6C6F72416E696D6174696F6E32084475726174696F6E050000000000000000 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 - 7456616C756507097846463241383245320953746F7056616C75650709784646 - 3137353739430754726967676572062E4973507265737365643D747275653B49 - 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 - 726967676572496E7665727365062F4973507265737365643D66616C73653B49 - 734D6F7573654F7665723D747275653B4973466F63757365643D747275650000 - 0005545465787400095374796C654E616D6506047465787405416C69676E0706 - 436C69656E7413456E61626C6544726167486967686C69676874080748697454 - 657374080A53697A652E57696474680500000000000000C805400B53697A652E - 4865696768740500000000000000C803401453697A652E506C6174666F726D44 - 656661756C7408165465787453657474696E67732E466F6E74436F6C6F720708 - 636C6157686974650000005450463007544C61796F757400095374796C654E61 - 6D650609656469747374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000000000C805400B53697A652E486569676874050000 - 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508000C5442727573684F626A65637400095374796C654E616D65 - 060A666F726567726F756E6400000C5442727573684F626A6563740009537479 - 6C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72070978 - 393632413832453200000B54466F6E744F626A65637400095374796C654E616D - 650604666F6E7409466F6E742E53697A650500000000000000D0024000000A54 - 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 - 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 - 3230323032300748697454657374080A53697A652E5769647468050000000000 - 0000C805400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 09784646313531353135000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D650614656469745374726F6B65416E696D6174696F6E3108447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060C53 - 74726F6B652E436F6C6F720A537461727456616C756507097846463135313531 - 350953746F7056616C756507097846463241383245320754726967676572060E - 4973466F63757365643D747275650E54726967676572496E7665727365060F49 - 73466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650614656469745374726F6B65416E696D6174696F6E - 32084475726174696F6E050000000000000000000007496E7665727365090C50 - 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 - 616C756507097846463135313531350953746F7056616C756507097846463443 - 344334430754726967676572062149734D6F7573654F7665723D747275653B49 - 73466F63757365643D66616C73653B0E54726967676572496E76657273650622 - 49734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C73 - 653B00000007544C61796F757400095374796C654E616D650607627574746F6E - 7305416C69676E07055269676874064C6F636B6564090B4D617267696E732E54 - 6F7005000000000000008000400D4D617267696E732E52696768740500000000 - 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 - 0A506F736974696F6E2E580500000000000000C004400A506F736974696F6E2E - 5905000000000000008000400A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000000000A803401453697A652E50 - 6C6174666F726D44656661756C7408000007544C61796F757400095374796C65 - 4E616D650607636F6E74656E7405416C69676E0706436C69656E74064C6F636B - 6564090C4D617267696E732E4C65667405000000000000008001400B4D617267 - 696E732E546F7005000000000000008000400D4D617267696E732E5269676874 - 05000000000000008000400E4D617267696E732E426F74746F6D050000000000 - 00008000400A53697A652E57696474680500000000000000A804400B53697A65 - 2E4865696768740500000000000000A803401453697A652E506C6174666F726D - 44656661756C7408000006544C6162656C00095374796C654E616D6506067072 - 6F6D7074064C6F636B656409074F706163697479050000000000000080FE3F16 - 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 04546578740604546578740000005450463007544C61796F757400095374796C - 654E616D65060A6C6162656C7374796C6505416C69676E070643656E7465720A + 7456616C756507097846463430343034300953746F7056616C75650709784646 + 3137353739430754726967676572062F4973507265737365643D747275653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463241383245320953746F7056616C7565 + 07097846463137353739430754726967676572062E4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 7275650E54726967676572496E7665727365062F4973507265737365643D6661 + 6C73653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 72756500000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E7413456E61626C6544726167486967686C6967687408 + 0748697454657374080A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C6157686974650000005450463007544C61796F757400095374 + 796C654E616D650609656469747374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720202000C5442727573684F + 626A65637400095374796C654E616D65060A666F726567726F756E6400000C54 + 42727573684F626A65637400095374796C654E616D65060973656C656374696F + 6E0B42727573682E436F6C6F72070978393632413832453200000B54466F6E74 + 4F626A65637400095374796C654E616D650604666F6E7409466F6E742E53697A + 650500000000000000D0024000000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080A 53697A652E57696474680500000000000000C805400B53697A652E4865696768 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080756697369626C65080005545465787400095374796C654E616D65060474 - 65787405416C69676E0708436F6E74656E74730748697454657374080A53697A - 652E57696474680500000000000000C805400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C740816 - 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 0000005450463007544C61796F757400095374796C654E616D65060D67726F75 - 70626F787374796C6505416C69676E070643656E7465720A53697A652E576964 - 74680500000000000000F004400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C6508000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E64 - 07044E6F6E650748697454657374080C4D617267696E732E4C65667405000000 - 00000000C000400B4D617267696E732E546F7005000000000000009002400D4D - 617267696E732E52696768740500000000000000C000400E4D617267696E732E - 426F74746F6D0500000000000000C000400A53697A652E576964746805000000 - 00000000D804400B53697A652E48656967687405000000000000009804401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 7207097846463135313531350005545465787400095374796C654E616D650604 - 74657874084175746F53697A65090A436C6970506172656E7409074869745465 - 7374080C4D617267696E732E4C6566740500000000000000A002400A506F7369 - 74696F6E2E5805000000000060559502400A506F736974696F6E2E5905000000 - 00004055D501C00A53697A652E576964746805000000000000B8C703400B5369 - 7A652E4865696768740500000000000060FF02401453697A652E506C6174666F - 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F - 720708636C615768697465155465787453657474696E67732E576F7264577261 - 7008000000005450463007544C61796F757400095374796C654E616D65060D74 - 7261636B6261727374796C6505416C69676E070643656E7465720A53697A652E - 57696474680500000000000000C805400B53697A652E48656967687405000000 - 00000000C805401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C65080B46697865644865696768740211000A5452656374616E676C65 - 00095374796C654E616D65060668747261636B05416C69676E070A5665727443 - 656E7465720A46696C6C2E436F6C6F7207097846463135313531350748697454 - 657374080A506F736974696F6E2E590500000000000000BC04400A53697A652E - 57696474680500000000000000C805400B53697A652E48656967687405000000 - 00000000A001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009537479 - 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E - 74730946696C6C2E4B696E6407044E6F6E65064C6F636B656409074869745465 - 7374080C4D617267696E732E4C6566740500000000000000C001400B4D617267 - 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 - 0500000000000000C001400E4D617267696E732E426F74746F6D050000000000 - 000080FF3F0A53697A652E57696474680500000000000000B005400B53697A65 - 2E4865696768740500000000000000C000401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265 - 6374616E676C6500095374796C654E616D650609686967686C6967687405416C - 69676E07044C6566740A46696C6C2E436F6C6F72070978464632413832453207 - 48697454657374080C50616464696E672E4C6566740500000000000000A00240 - 0A53697A652E57696474680500000000000000F003400B53697A652E48656967 - 68740500000000000000A001401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666 - 6563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C - 6F720709784646324138324532074F706163697479050000000000000080FF3F - 07456E61626C6564080000000A5452656374616E676C6500095374796C654E61 - 6D65060676747261636B05416C69676E070A486F727A43656E7465720A46696C - 6C2E436F6C6F7207097846463135313531350748697454657374080A506F7369 - 74696F6E2E580500000000000000BC04400A53697A652E576964746805000000 - 00000000A001400B53697A652E4865696768740500000000000000C805401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000A5452656374616E676C6500095374796C654E616D65060A62 - 61636B67726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B - 696E6407044E6F6E65064C6F636B6564090748697454657374080C4D61726769 - 6E732E4C6566740500000000000000C001400B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E52696768740500000000000000C0 - 01400E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A - 652E576964746805000000000000000000000B53697A652E4865696768740500 - 000000000000C405401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009 - 5374796C654E616D650609686967686C6967687405416C69676E0703546F700A - 46696C6C2E436F6C6F7207097846463241383245320748697454657374080A53 - 697A652E57696474680500000000000000A001400B53697A652E486569676874 - 0500000000000000F003401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F774566666563 - 740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F72 - 0709784646324138324532074F706163697479050000000000000080FF3F0745 - 6E61626C65640800000006545468756D6200095374796C654E616D6506066874 - 68756D62064C6F636B6564090A506F736974696F6E2E580500000000003033AB - 03400A506F736974696F6E2E59050000000000FFFFA304400A53697A652E5769 - 6474680500000000000000F002400B53697A652E486569676874050000000000 - 0000F002401453697A652E506C6174666F726D44656661756C74080B5374796C - 654C6F6F6B7570060D7468756D626261727374796C65000006545468756D6200 - 095374796C654E616D650606767468756D62064C6F636B6564090A506F736974 - 696F6E2E58050000000000CBCCA804400A506F736974696F6E2E590500000000 - 009899B103400A53697A652E57696474680500000000000000F002400B53697A - 652E4865696768740500000000000000F002401453697A652E506C6174666F72 - 6D44656661756C74080B5374796C654C6F6F6B7570060D7468756D6262617273 - 74796C650000005450463007544C61796F757400095374796C654E616D65060D - 636865636B626F787374796C6505416C69676E070643656E7465720A53697A65 - 2E5769647468050000000000ACAA8006400B53697A652E486569676874050000 - 00000058559904401453697A652E506C6174666F726D44656661756C74080756 - 697369626C65080007544C61796F75740005416C69676E07044C6566740A5369 - 7A652E576964746805000000000000009003400B53697A652E48656967687405 - 000000000058559904401453697A652E506C6174666F726D44656661756C7408 - 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F - 756E6405416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 - 463230323032300748697454657374080A53697A652E57696474680500000000 - 000000F002400B53697A652E4865696768740500000000000000F00240145369 - 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 0709784646313531353135000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653105416C69676E0706436C69656E740A46696C - 6C2E436F6C6F720709784646324138324532074869745465737408074F706163 - 69747905000000000000000000000C4D617267696E732E4C6566740500000000 - 0000008000400B4D617267696E732E546F7005000000000000008000400D4D61 + 74080C5374726F6B652E436F6C6F720709784646313531353135000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650614656469745374726F + 6B65416E696D6174696F6E31084475726174696F6E0500000000000000000000 + 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 + 7456616C756507097846463135313531350953746F7056616C75650709784646 + 3241383245320754726967676572060E4973466F63757365643D747275650E54 + 726967676572496E7665727365060F4973466F63757365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614656469 + 745374726F6B65416E696D6174696F6E32084475726174696F6E050000000000 + 000000000007496E7665727365090C50726F70657274794E616D65060C537472 + 6F6B652E436F6C6F720A537461727456616C7565070978464631353135313509 + 53746F7056616C75650709784646344334433443075472696767657206214973 + 4D6F7573654F7665723D747275653B4973466F63757365643D66616C73653B0E + 54726967676572496E7665727365062249734D6F7573654F7665723D66616C73 + 653B4973466F63757365643D66616C73653B00000007544C61796F7574000953 + 74796C654E616D650607627574746F6E7305416C69676E07055269676874064C + 6F636B6564090B4D617267696E732E546F7005000000000000008000400D4D61 7267696E732E526967687405000000000000008000400E4D617267696E732E42 - 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 - 000000B002400B53697A652E4865696768740500000000000000B00240145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D - 65061B6368656368626F7856697362696C697479416E696D6174696F6E310844 - 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 - 074F7061636974790A537461727456616C756505000000000000000000000953 - 746F7056616C75650500000000000000C805400754726967676572060E497343 - 6865636B65643D747275650E54726967676572496E7665727365060F49734368 - 65636B65643D66616C73650000000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650618636865636B626F785374726F6B65416E696D617469 + 6F74746F6D05000000000000008000400A506F736974696F6E2E580500000000 + 000000C004400A506F736974696F6E2E5905000000000000008000400A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000A803401453697A652E506C6174666F726D44656661756C740800 + 0007544C61796F757400095374796C654E616D650607636F6E74656E7405416C + 69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C656674 + 05000000000000008001400B4D617267696E732E546F70050000000000000080 + 00400D4D617267696E732E526967687405000000000000008000400E4D617267 + 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 + 0500000000000000A804400B53697A652E4865696768740500000000000000A8 + 03401453697A652E506C6174666F726D44656661756C7408000006544C616265 + 6C00095374796C654E616D65060670726F6D7074064C6F636B656409074F7061 + 63697479050000000000000080FE3F165465787453657474696E67732E466F6E + 74436F6C6F720708636C61576869746504546578740604546578740000005450 + 463007544C61796F757400095374796C654E616D65060A6C6162656C7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 7264657202030005545465787400095374796C654E616D650604746578740541 + 6C69676E0708436F6E74656E74730748697454657374080A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974650000005450 + 463007544C61796F757400095374796C654E616D65060D67726F7570626F7873 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 0000000000F004400B53697A652E4865696768740500000000000000C8044014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F726465720204000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946696C + 6C2E4B696E6407044E6F6E650748697454657374080C4D617267696E732E4C65 + 66740500000000000000C000400B4D617267696E732E546F7005000000000000 + 009002400D4D617267696E732E52696768740500000000000000C000400E4D61 + 7267696E732E426F74746F6D0500000000000000C000400A53697A652E576964 + 74680500000000000000D804400B53697A652E48656967687405000000000000 + 009804401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350005545465787400095374796C65 + 4E616D65060474657874084175746F53697A65090A436C6970506172656E7409 + 0748697454657374080C4D617267696E732E4C6566740500000000000000A002 + 400A506F736974696F6E2E5805000000000060559502400A506F736974696F6E + 2E590500000000004055D501C00A53697A652E576964746805000000000000B8 + C703400B53697A652E4865696768740500000000000060FF02401453697A652E + 506C6174666F726D44656661756C7408165465787453657474696E67732E466F + 6E74436F6C6F720708636C615768697465155465787453657474696E67732E57 + 6F72645772617008000000005450463007544C61796F757400095374796C654E + 616D65060D747261636B6261727374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C805401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F7264657202050B4669786564486569 + 6768740211000A5452656374616E676C6500095374796C654E616D6506066874 + 7261636B05416C69676E070A5665727443656E7465720A46696C6C2E436F6C6F + 7207097846463135313531350748697454657374080A506F736974696F6E2E59 + 0500000000000000BC04400A53697A652E57696474680500000000000000C805 + 400B53697A652E4865696768740500000000000000A001401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E + 6F6E65064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 740500000000000000C001400B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E52696768740500000000000000C001400E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 680500000000000000B005400B53697A652E4865696768740500000000000000 + C000401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E + 616D650609686967686C6967687405416C69676E07044C6566740A46696C6C2E + 436F6C6F7207097846463241383245320748697454657374080C50616464696E + 672E4C6566740500000000000000A002400A53697A652E576964746805000000 + 00000000F003400B53697A652E4865696768740500000000000000A001401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6500000B54476C6F774566666563740008536F66746E6573730500 + 00000000CDCCCCFC3F09476C6F77436F6C6F720709784646324138324532074F + 706163697479050000000000000080FF3F07456E61626C6564080000000A5452 + 656374616E676C6500095374796C654E616D65060676747261636B05416C6967 + 6E070A486F727A43656E7465720A46696C6C2E436F6C6F720709784646313531 + 3531350748697454657374080A506F736974696F6E2E580500000000000000BC + 04400A53697A652E57696474680500000000000000A001400B53697A652E4865 + 696768740500000000000000C805401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + C001400B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 + 6E732E52696768740500000000000000C001400E4D617267696E732E426F7474 + 6F6D050000000000000080FF3F0A53697A652E57696474680500000000000000 + 0000000B53697A652E4865696768740500000000000000C405401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E6500000A5452656374616E676C6500095374796C654E616D65060968696768 + 6C6967687405416C69676E0703546F700A46696C6C2E436F6C6F720709784646 + 3241383245320748697454657374080A53697A652E5769647468050000000000 + 0000A001400B53697A652E4865696768740500000000000000F003401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6500000B54476C6F774566666563740008536F66746E65737305000000 + 0000CDCCCCFC3F09476C6F77436F6C6F720709784646324138324532074F7061 + 63697479050000000000000080FF3F07456E61626C6564080000000654546875 + 6D6200095374796C654E616D650606687468756D62064C6F636B6564090A506F + 736974696F6E2E580500000000003033AB03400A506F736974696F6E2E590500 + 00000000FFFFA304400A53697A652E57696474680500000000000000F002400B + 53697A652E4865696768740500000000000000F002401453697A652E506C6174 + 666F726D44656661756C74080B5374796C654C6F6F6B7570060D7468756D6262 + 61727374796C65000006545468756D6200095374796C654E616D650606767468 + 756D62064C6F636B6564090A506F736974696F6E2E58050000000000CBCCA804 + 400A506F736974696F6E2E590500000000009899B103400A53697A652E576964 + 74680500000000000000F002400B53697A652E48656967687405000000000000 + 00F002401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B7570060D7468756D626261727374796C650000005450463007544C61 + 796F757400095374796C654E616D65060D636865636B626F787374796C650541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000ACAA80 + 06400B53697A652E48656967687405000000000058559904401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 7202060007544C61796F75740005416C69676E07044C6566740A53697A652E57 + 6964746805000000000000009003400B53697A652E4865696768740500000000 + 0058559904401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646323032 + 3032300748697454657374080A53697A652E57696474680500000000000000F0 + 02400B53697A652E4865696768740500000000000000F002401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000A5452656374616E676C6500095374796C654E616D65060A + 52656374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F + 6C6F720709784646324138324532074869745465737408074F70616369747905 + 000000000000000000000C4D617267696E732E4C656674050000000000000080 + 00400B4D617267696E732E546F7005000000000000008000400D4D617267696E + 732E526967687405000000000000008000400E4D617267696E732E426F74746F + 6D05000000000000008000400A53697A652E57696474680500000000000000B0 + 02400B53697A652E4865696768740500000000000000B002401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061B63 + 68656368626F7856697362696C697479416E696D6174696F6E31084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D6506074F7061 + 636974790A537461727456616C756505000000000000000000000953746F7056 + 616C75650500000000000000C805400754726967676572060E4973436865636B + 65643D747275650E54726967676572496E7665727365060F4973436865636B65 + 643D66616C73650000000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650618636865636B626F785374726F6B65416E696D6174696F6E3108 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 + 313531350953746F7056616C7565070978464632413832453207547269676765 + 72060E4973436865636B65643D747275650E54726967676572496E7665727365 + 060F4973436865636B65643D66616C736500000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650617636865636B626F78436F6C6F72416E69 + 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463230323032300953746F7056616C7565070978464634303430343007 + 54726967676572061049734D6F7573654F7665723D747275650E547269676765 + 72496E7665727365061149734D6F7573654F7665723D66616C73650000000005 + 545465787400095374796C654E616D6506047465787405416C69676E0706436C + 69656E740A53697A652E57696474680500000000005855DD05400B53697A652E + 48656967687405000000000058559904401453697A652E506C6174666F726D44 + 656661756C7408165465787453657474696E67732E466F6E74436F6C6F720708 + 636C615768697465000000545046300A5452656374616E676C6500095374796C + 654E616D6506147363726F6C6C62617268747261636B7374796C6505416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F72070978464631353135313507 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669 + 7369626C65080006545468756D6200095374796C654E616D6506057468756D62 + 064C6F636B6564090A53697A652E576964746805000000000000008003400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D627374 + 796C65000000545046300A5452656374616E676C6500095374796C654E616D65 + 06147363726F6C6C62617276747261636B7374796C6505416C69676E07064365 + 6E7465720A46696C6C2E436F6C6F720709784646313531353135074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C65 + 080006545468756D6200095374796C654E616D6506057468756D62064C6F636B + 6564090A53697A652E57696474680500000000000000C804400B53697A652E48 + 656967687405000000000000008003401453697A652E506C6174666F726D4465 + 6661756C74080B5374796C654C6F6F6B7570060A7468756D627374796C650000 + 005450463007544C61796F757400095374796C654E616D6506157363726F6C6C + 626172626F74746F6D627574746F6E05416C69676E070643656E746572075669 + 7369626C6508085461624F726465720209000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0706436C6965 + 6E740C436C69704368696C6472656E090A436C6970506172656E74090A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D617469 6F6E31084475726174696F6E05000000000000000000000C50726F7065727479 - 4E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565070978 - 46463135313531350953746F7056616C75650709784646324138324532075472 - 6967676572060E4973436865636B65643D747275650E54726967676572496E76 - 65727365060F4973436865636B65643D66616C736500000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650617636865636B626F78436F6C6F - 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3230323032300953746F7056616C756507097846463430343034300754726967 + 676572062049734D6F7573654F7665723D747275653B4973507265737365643D + 66616C73650E54726967676572496E7665727365062149734D6F7573654F7665 + 723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E32084475726174696F6E05000000000000000000000C 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463230323032300953746F7056616C75650709784646343034 - 3034300754726967676572061049734D6F7573654F7665723D747275650E5472 - 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 - 00000005545465787400095374796C654E616D6506047465787405416C69676E - 0706436C69656E740A53697A652E57696474680500000000005855DD05400B53 - 697A652E48656967687405000000000058559904401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C615768697465000000545046300A5452656374616E676C650009 - 5374796C654E616D6506147363726F6C6C62617268747261636B7374796C6505 - 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646313531 - 3531350748697454657374080A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000000000C804401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 650756697369626C65080006545468756D6200095374796C654E616D65060574 - 68756D62064C6F636B6564090A53697A652E5769647468050000000000000080 - 03400B53697A652E4865696768740500000000000000C804401453697A652E50 - 6C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060A746875 - 6D627374796C65000000545046300A5452656374616E676C6500095374796C65 - 4E616D6506147363726F6C6C62617276747261636B7374796C6505416C69676E - 070643656E7465720A46696C6C2E436F6C6F7207097846463135313531350748 - 697454657374080A53697A652E57696474680500000000000000C804400B5369 - 7A652E4865696768740500000000000000C804401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507566973 - 69626C65080006545468756D6200095374796C654E616D6506057468756D6206 - 4C6F636B6564090A53697A652E57696474680500000000000000C804400B5369 - 7A652E48656967687405000000000000008003401453697A652E506C6174666F - 726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D62737479 - 6C650000005450463007544C61796F757400095374796C654E616D6506157363 - 726F6C6C626172626F74746F6D627574746F6E05416C69676E070643656E7465 - 720756697369626C6508000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C6970 - 4368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72 - 07097846463230323032300748697454657374080A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000C804 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646343034303430075472696767657206204973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 - 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 - 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E32084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463430343034300953746F7056616C7565070978464631373537394307547269 - 67676572061F4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275650E54726967676572496E766572736506204973507265737365643D - 66616C73653B49734D6F7573654F7665723D7472756500000007544C61796F75 - 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E - 7465720A53697A652E57696474680500000000000000A002400B53697A652E48 - 65696768740500000000000000C001401453697A652E506C6174666F726D4465 - 6661756C74080005545061746800095374796C654E616D650605506174683105 - 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 - 000000000000C8420000C84201000000000096430000C8420100000000004843 - 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080A53697A652E576964746805000000000000 - 00A002400B53697A652E4865696768740500000000000000C001401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000000005450463007544C61796F757400095374796C654E616D650613 - 7363726F6C6C6261726C656674627574746F6E05416C69676E070643656E7465 - 720756697369626C6508000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C6970 - 4368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72 - 07097846463230323032300748697454657374080A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000C804 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646343034303430075472696767657206204973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 - 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 - 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E32084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463430343034300953746F7056616C7565070978464631373537394307547269 - 67676572061F4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275650E54726967676572496E766572736506204973507265737365643D - 66616C73653B49734D6F7573654F7665723D7472756500000007544C61796F75 - 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E - 7465720A53697A652E57696474680500000000000000A002400B53697A652E48 - 65696768740500000000000000C001401453697A652E506C6174666F726D4465 - 6661756C74080005545061746800095374796C654E616D650605506174683105 - 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 - 000000000000C8420000C84201000000000096430000C8420100000000004843 - 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080D526F746174696F6E416E676C6505000000 - 00000000B405400A53697A652E57696474680500000000000000A002400B5369 - 7A652E4865696768740500000000000000C001401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000 - 5450463007544C61796F757400095374796C654E616D6506147363726F6C6C62 - 61727269676874627574746F6E05416C69676E070643656E7465720756697369 - 626C6508000A5452656374616E676C6500095374796C654E616D65060A626163 - 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 - 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 - 30323032300748697454657374080A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000C804401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 - 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463230323032300953746F705661 - 6C756507097846463430343034300754726967676572062049734D6F7573654F - 7665723D747275653B4973507265737365643D66616C73650E54726967676572 - 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 - 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 - 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 - 300953746F7056616C756507097846463137353739430754726967676572061F - 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E - 54726967676572496E766572736506204973507265737365643D66616C73653B - 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 - 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 - 7A652E57696474680500000000000000A002400B53697A652E48656967687405 - 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 - 0005545061746800095374796C654E616D650605506174683105416C69676E07 - 06436C69656E7409446174612E506174680A3400000004000000000000000000 - C8420000C84201000000000096430000C8420100000000004843000096430300 - 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080D526F746174696F6E416E676C650500000000000000B405 - C00A53697A652E57696474680500000000000000A002400B53697A652E486569 - 6768740500000000000000C001401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 - 4C61796F757400095374796C654E616D6506127363726F6C6C626172746F7062 - 7574746F6E05416C69676E070643656E7465720756697369626C6508000A5452 + 6C756507097846463430343034300953746F7056616C75650709784646313735 + 3739430754726967676572061F4973507265737365643D747275653B49734D6F + 7573654F7665723D747275650E54726967676572496E76657273650620497350 + 7265737365643D66616C73653B49734D6F7573654F7665723D74727565000000 + 07544C61796F757400095374796C654E616D6506074C61796F75743105416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000A00240 + 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 + 74666F726D44656661756C74080005545061746800095374796C654E616D6506 + 05506174683105416C69676E0706436C69656E7409446174612E506174680A34 + 00000004000000000000000000C8420000C84201000000000096430000C84201 + 0000000000484300009643030000000000C8420000C8420A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000000005450463007544C61796F757400095374796C + 654E616D6506137363726F6C6C6261726C656674627574746F6E05416C69676E + 070643656E7465720756697369626C6508085461624F72646572020A000A5452 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 416C69676E0706436C69656E740C436C69704368696C6472656E090A436C6970 506172656E74090A46696C6C2E436F6C6F720709784646323032303230074869 @@ -7921,6052 +7858,3321 @@ object MainForm: TMainForm 446174612E506174680A3400000004000000000000000000C8420000C8420100 0000000096430000C842010000000000484300009643030000000000C8420000 C8420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0D526F746174696F6E416E676C650500000000000000B406400A53697A652E57 + 0D526F746174696F6E416E676C650500000000000000B405400A53697A652E57 696474680500000000000000A002400B53697A652E4865696768740500000000 000000C001401453697A652E506C6174666F726D44656661756C74080B537472 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 - 5374796C654E616D65060E7363726F6C6C6261727374796C6505416C69676E07 - 0643656E7465720756697369626C6508000754427574746F6E00095374796C65 - 4E616D65060A6C656674627574746F6E05416C69676E07044C656674064C6F63 - 6B6564090A506F736974696F6E2E5905000000000000008003400A53697A652E - 576964746805000000000000008003400B53697A652E48656967687405000000 - 000000009003401453697A652E506C6174666F726D44656661756C74080B5374 - 796C654C6F6F6B757006137363726F6C6C6261726C656674627574746F6E0000 - 0754427574746F6E00095374796C654E616D65060B7269676874627574746F6E - 05416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E58 - 05000000000000008804400A506F736974696F6E2E5905000000000000008003 - 400A53697A652E576964746805000000000000008003400B53697A652E486569 - 67687405000000000000009003401453697A652E506C6174666F726D44656661 - 756C74080B5374796C654C6F6F6B757006147363726F6C6C6261727269676874 - 627574746F6E00000754427574746F6E00095374796C654E616D65060C626F74 - 746F6D627574746F6E05416C69676E0706426F74746F6D064C6F636B6564090A - 506F736974696F6E2E5905000000000000008804400A53697A652E5769647468 - 0500000000000000C804400B53697A652E486569676874050000000000000080 - 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F - 6F6B757006157363726F6C6C626172626F74746F6D627574746F6E0000065454 - 7261636B00095374796C654E616D65060668747261636B05416C69676E070643 - 6C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A - 6F6E74616C0A53697A652E576964746805000000000000009003400B53697A65 - 2E48656967687405000000000000009003401453697A652E506C6174666F726D - 44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C62617268 - 747261636B7374796C6500000654547261636B00095374796C654E616D650606 - 76747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269 - 656E746174696F6E070A486F72697A6F6E74616C0A53697A652E576964746805 - 000000000000009003400B53697A652E48656967687405000000000000009003 - 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F - 6B757006147363726F6C6C62617276747261636B7374796C6500000754427574 - 746F6E00095374796C654E616D650609746F70627574746F6E05416C69676E07 - 03546F700A53697A652E57696474680500000000000000C804400B53697A652E - 48656967687405000000000000008003401453697A652E506C6174666F726D44 - 656661756C74080B5374796C654C6F6F6B757006127363726F6C6C626172746F - 70627574746F6E000000545046300A5452656374616E676C6500095374796C65 - 4E616D65060A7468756D627374796C6505416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463444344434440748697454657374080A5369 - 7A652E57696474680500000000000000C804400B53697A652E48656967687405 - 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D6506147468756D62436F - 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 - 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463444344434440953746F7056616C7565070978464631 - 37353739430754726967676572060E4973507265737365643D747275650E5472 - 6967676572496E7665727365060F4973507265737365643D66616C736500000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F - 72416E696D6174696F6E315374796C65084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463444344434440953746F7056616C7565070763 - 6C61477261790754726967676572061049734D6F7573654F7665723D74727565 - 0E54726967676572496E7665727365061149734D6F7573654F7665723D66616C - 7365000000545046300D545377697463684F626A65637400095374796C654E61 - 6D65060B7377697463687374796C6505416C69676E070643656E746572044B69 - 6E64070C466164696E67547261636B730A53697A652E57696474680500000000 - 000000C805400B53697A652E4865696768740500000000000000C80340145369 - 7A652E506C6174666F726D44656661756C740812547261636B696E675468756D - 625363616C65050000000000000080FF3F0756697369626C65080A46696C6C2E - 436F6C6F7207097846463230323032300C46696C6C4F6E2E436F6C6F72070978 - 46463137353739430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F - 6B652E4B696E6407044E6F6E650B5468756D622E436F6C6F7207097846463430 - 343034300D5468756D624F6E2E436F6C6F7207097846463241383245320C5468 - 756D624F6E2E4B696E640705536F6C6964105468756D625374726F6B652E4B69 - 6E6407044E6F6E650F5468756D625374726F6B652E4361700705526F756E6410 - 5468756D625374726F6B652E446173680706437573746F6D105468756D625374 - 726F6B652E4A6F696E0705526F756E64165468756D625374726F6B652E437573 - 746F6D446173680A08000000000000000000000000005450463007544C61796F - 757400095374796C654E616D65060D636F6D626F626F787374796C6505416C69 - 676E070643656E7465720A53697A652E57696474680500000000000000C80540 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508000C5442727573684F62 - 6A65637400095374796C654E616D65060A666F726567726F756E6400000B5446 - 6F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E742E - 53697A650500000000000000D00240000007544C61796F757400095374796C65 - 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 - 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C7408000A5452656374616E676C6500095374796C654E616D65060A52656374 - 616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080A53697A652E57696474680500 - 000000000000C805400B53697A652E4865696768740500000000000000C80340 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E650007544C61796F757400095374796C654E616D6506114275 - 74746F6E5374796C654F626A65637405416C69676E070846697452696768740B - 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 - 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 - 00000000000080FF3F0A506F736974696F6E2E580500000000005ED99705400A - 506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769647468 - 050000000000889AB803400B53697A652E4865696768740500000000000000B8 - 03401453697A652E506C6174666F726D44656661756C74080007544C61796F75 - 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E - 7465720C4D617267696E732E4C656674050000000000000080FF3F0A53697A65 - 2E57696474680500000000000000A002400B53697A652E486569676874050000 - 0000000000C001401453697A652E506C6174666F726D44656661756C74080005 - 545061746800095374796C654E616D650605506174683105416C69676E070643 - 6C69656E7409446174612E506174680A3400000004000000000000000000C842 - 0000C84201000000000096430000C84201000000000048430000964303000000 - 0000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465074869 - 7454657374080A53697A652E57696474680500000000000000A002400B53697A - 652E4865696768740500000000000000C001401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 - 6F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463230323032300953746F7056616C75650709 - 7846463430343034300754726967676572063049734D6F7573654F7665723D74 - 7275653B4973507265737365643D66616C73653B4973466F63757365643D6661 - 6C73650E54726967676572496E7665727365063149734D6F7573654F7665723D - 66616C73653B4973507265737365643D66616C73653B4973466F63757365643D - 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650615627574746F6E436F6C6F72416E696D6174696F6E3208447572617469 - 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463430343034300953746F - 7056616C756507097846463137353739430754726967676572062F4973507265 - 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 - 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E330844 - 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 - 320953746F7056616C756507097846463137353739430754726967676572062E - 4973507265737365643D747275653B49734D6F7573654F7665723D747275653B - 4973466F63757365643D747275650E54726967676572496E7665727365062F49 - 73507265737365643D66616C73653B49734D6F7573654F7665723D747275653B - 4973466F63757365643D747275650000000007544C61796F757400095374796C - 654E616D650607636F6E74656E7405416C69676E0706436C69656E74064C6F63 - 6B6564090C4D617267696E732E4C65667405000000000000008000400B4D6172 - 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 - 740500000000000000D803400E4D617267696E732E426F74746F6D0500000000 - 0000008000400A53697A652E576964746805000000000000008E05400B53697A - 652E4865696768740500000000000000A803401453697A652E506C6174666F72 - 6D44656661756C74080000005450463007544C61796F757400095374796C654E - 616D65060E636F6D626F656469747374796C6505416C69676E070643656E7465 - 720A53697A652E57696474680500000000000000C805400B53697A652E486569 - 6768740500000000000000C803401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508000C5442727573684F626A6563740009537479 - 6C654E616D65060A666F726567726F756E6400000B54466F6E744F626A656374 - 00095374796C654E616D650604666F6E7409466F6E742E53697A650500000000 - 000000D00240000007544C61796F757400095374796C654E616D65060A626163 - 6B67726F756E6405416C69676E0708436F6E74656E74730A53697A652E576964 - 74680500000000000000C805400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C7408000A54526563 - 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C - 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 - 300748697454657374080A53697A652E57696474680500000000000000C80540 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 - 3032303230000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E - 050000000000000000000007496E7665727365090C50726F70657274794E616D - 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464632 - 30323032300953746F7056616C75650709784646343034303430075472696767 - 6572062049734D6F7573654F7665723D747275653B4973466F63757365643D66 - 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 - 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 - 696F6E325374796C65084475726174696F6E050000000000000000000007496E - 7665727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F - 720A537461727456616C756507097846463430343034300953746F7056616C75 - 6507097846463241383245320754726967676572061F49734D6F7573654F7665 - 723D747275653B4973466F63757365643D747275650E54726967676572496E76 - 65727365062049734D6F7573654F7665723D747275653B4973466F6375736564 - 3D66616C7365000007544C61796F757400095374796C654E616D650605617272 - 6F7705416C69676E070846697452696768740B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 - FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F73 - 6974696F6E2E580500000000005ED99705400A506F736974696F6E2E59050000 - 000000000080FF3F0A53697A652E5769647468050000000000889AB803400B53 - 697A652E4865696768740500000000000000B803401453697A652E506C617466 - 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653105416C69676E0708436F6E74656E74730A46 - 696C6C2E436F6C6F7207097846463330333033300748697454657374080A5369 - 7A652E5769647468050000000000889AB803400B53697A652E48656967687405 - 00000000000000B803401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 - 74796C65084475726174696F6E050000000000000000000007496E7665727365 - 090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463330333033300953746F7056616C7565070978464634 - 30343034300754726967676572062049734D6F7573654F7665723D747275653B - 4973466F63757365643D66616C73650E54726967676572496E76657273650621 - 49734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C73 - 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 - 436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E050000 - 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463430343034300953746F7056616C75 - 6507097846463137353739430754726967676572061F4973466F63757365643D - 747275653B49734D6F7573654F7665723D7472756500000007544C61796F7574 - 00095374796C654E616D6506074C61796F75743105416C69676E070643656E74 - 65720C4D617267696E732E4C656674050000000000000080FF3F0A53697A652E + 5374796C654E616D6506147363726F6C6C6261727269676874627574746F6E05 + 416C69676E070643656E7465720756697369626C6508085461624F7264657202 + 0B000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E09 + 0A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463230323032300953746F7056616C7565 + 07097846463430343034300754726967676572062049734D6F7573654F766572 + 3D747275653B4973507265737365643D66616C73650E54726967676572496E76 + 65727365062149734D6F7573654F7665723D66616C73653B4973507265737365 + 643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463430343034300953 + 746F7056616C756507097846463137353739430754726967676572061F497350 + 7265737365643D747275653B49734D6F7573654F7665723D747275650E547269 + 67676572496E766572736506204973507265737365643D66616C73653B49734D + 6F7573654F7665723D7472756500000007544C61796F757400095374796C654E + 616D6506074C61796F75743105416C69676E070643656E7465720A53697A652E 57696474680500000000000000A002400B53697A652E48656967687405000000 00000000C001401453697A652E506C6174666F726D44656661756C7408000554 5061746800095374796C654E616D650605506174683105416C69676E0706436C 69656E7409446174612E506174680A3400000004000000000000000000C84200 00C84201000000000096430000C8420100000000004843000096430300000000 00C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507486974 - 54657374080A53697A652E57696474680500000000000000A002400B53697A65 - 2E4865696768740500000000000000C001401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000000000 - 0C5442727573684F626A65637400095374796C654E616D65060973656C656374 - 696F6E0B42727573682E436F6C6F720709783936324138324532000007544C61 - 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0706 - 436C69656E740C4D617267696E732E4C65667405000000000000008000400B4D - 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 - 6768740500000000000000F003400E4D617267696E732E426F74746F6D050000 - 00000000008000400A53697A652E576964746805000000000000008805400B53 - 697A652E4865696768740500000000000000A803401453697A652E506C617466 - 6F726D44656661756C74080000005450463007544C61796F757400095374796C - 654E616D65060F746162636F6E74726F6C7374796C6505416C69676E07064365 - 6E7465720A53697A652E576964746805000000000000008E06400B53697A652E - 486569676874050000000000FFFFC905401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646333033303330064C6F636B6564 - 090748697454657374080C50616464696E672E4C656674050000000000000080 - 00400B50616464696E672E546F7005000000000000008000400D50616464696E - 672E526967687405000000000000008000400E50616464696E672E426F74746F - 6D05000000000000008000400A53697A652E576964746805000000000000008E - 06400B53697A652E486569676874050000000000FFFFC905401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 46313531353135000000545046300A5452656374616E676C6500095374796C65 - 4E616D65060B746162646F747374796C6505416C69676E070643656E7465720A - 46696C6C2E436F6C6F7207097846463135313531350748697454657374080A53 - 697A652E576964746805000000000000008005400B53697A652E486569676874 - 05000000000000008001401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F5443 - 6F6C6F72416E696D6174696F6E00084475726174696F6E05000000000018B7D1 - F23F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 - 7456616C756507097846463135313531350953746F7056616C75650709784646 - 3241383245320754726967676572060F497353656C65637465643D747275650E - 54726967676572496E76657273650610497353656C65637465643D66616C7365 - 0000005450463007544C61796F757400095374796C654E616D65060C74616269 - 74656D7374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508000A5452656374616E676C6500095374796C654E616D650603746F700541 - 6C69676E0708436F6E74656E74730C436C69704368696C6472656E0907436F72 - 6E6572730B07546F704C65667408546F705269676874000A46696C6C2E436F6C - 6F720709784646323032303230064C6F636B6564090748697454657374080553 - 696465730B03546F70044C656674055269676874000A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F720709784646313531353135000654476C79706800095374796C654E - 616D65060A676C7970687374796C650C4D617267696E732E4C65667405000000 - 000000008001400D4D617267696E732E526967687405000000000000008001C0 - 05416C69676E07044C6566740A53697A652E5769647468050000000000000080 - 03400B53697A652E48656967687405000000000000008003401453697A652E50 - 6C6174666F726D44656661756C7408000005545465787400095374796C654E61 - 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 - 697454657374080C4D617267696E732E4C6566740500000000000000C000400B - 4D617267696E732E546F700500000000000000C000400D4D617267696E732E52 - 696768740500000000000000C000400E4D617267696E732E426F74746F6D0500 - 000000000000C000400A53697A652E57696474680500000000000000B004400B - 53697A652E48656967687405000000000000009803401453697A652E506C6174 - 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F - 6C6F720708636C615768697465155465787453657474696E67732E576F726457 - 7261700800000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650612746162436F6C6F72416E696D6174696F6E310D416E696D6174696F6E54 - 7970650705496E4F7574084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463230323032300953746F7056616C7565070978464634303430 - 34300754726967676572062149734D6F7573654F7665723D747275653B497353 - 656C65637465643D66616C73650E54726967676572496E766572736506224973 - 4D6F7573654F7665723D66616C73653B497353656C65637465643D66616C7365 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061274 - 6162436F6C6F72416E696D6174696F6E32084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463230323032300953746F7056616C75650709 - 7846463241383245320754726967676572060F497353656C65637465643D7472 - 75650E54726967676572496E76657273650610497353656C65637465643D6661 - 6C736500000000545046300A5452656374616E676C6500095374796C654E616D - 65060D7468756D626261727374796C6505416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463241383245320748697454657374080A5369 - 7A652E57696474680500000000000000A003400B53697A652E48656967687405 - 00000000000000A003401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F7207097846463135313531350756697369626C65 - 08000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061474 - 68756D62436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 - 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463241383245320953746F7056616C7565 - 07097846463137353739430754726967676572061F4973507265737365643D74 - 7275653B49734D6F7573654F7665723D747275650E54726967676572496E7665 - 72736506104973507265737365643D66616C73653B00000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E - 696D6174696F6E32084475726174696F6E05000000000000000000000C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463241383245320953746F7056616C75650709784646343039424646 - 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 - 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 - 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D6506157468756D62 - 5374726F6B65416E696D6174696F6E31084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A - 537461727456616C756507097846463135313531350953746F7056616C756507 - 097846463137353739430754726967676572061F4973507265737365643D7472 - 75653B49734D6F7573654F7665723D747275650E54726967676572496E766572 - 7365060F4973507265737365643D66616C73650000005450463007544C61796F - 757400095374796C654E616D65060C6C697374626F787374796C6505416C6967 - 6E070643656E7465720A53697A652E5769647468050000000000FFFFE905400B - 53697A652E48656967687405000000000000008306401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508000C5442727573684F626A - 65637400095374796C654E616D650618416C7465726E6174696E67526F774261 - 636B67726F756E640B42727573682E436F6C6F72070978464632433243324300 - 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F - 756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 - 784646323032303230064C6F636B6564090748697454657374080C5061646469 - 6E672E4C65667405000000000000008000400B50616464696E672E546F700500 - 0000000000008000400D50616464696E672E5269676874050000000000000080 - 00400E50616464696E672E426F74746F6D05000000000000008000400A53697A - 652E5769647468050000000000FFFFE905400B53697A652E4865696768740500 - 0000000000008306401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F7207097846463135313531350007544C61796F7574 - 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 - 6E740C436C69704368696C6472656E090A53697A652E57696474680500000000 - 00FFFFC105400B53697A652E4865696768740500000000000000DE0540145369 - 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 - 095374796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72 - 07097846463241383245320748697454657374080A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000C804 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D - 650610666F637573656473656C656374696F6E0A46696C6C2E436F6C6F720709 - 7846463241383245320748697454657374080A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000C8044014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E650B5374726F6B652E446173680703446F740000000A54536372 - 6F6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C - 69676E070552696768740B536D616C6C4368616E676505000000000000000000 - 000B4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E - 2E58050000000000FFFFC505400A506F736974696F6E2E590500000000000000 - 8000400A53697A652E576964746805000000000000008003400B53697A652E48 - 65696768740500000000000000DE05401453697A652E506C6174666F726D4465 - 6661756C740800000A545363726F6C6C42617200095374796C654E616D65060A - 687363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368 - 616E676505000000000000000000000B4F7269656E746174696F6E070A486F72 - 697A6F6E74616C0A506F736974696F6E2E5805000000000000008000400A506F - 736974696F6E2E590500000000000000E205400A53697A652E57696474680500 - 00000000FFFFE105400B53697A652E4865696768740500000000000000800340 - 1453697A652E506C6174666F726D44656661756C740800000F54536D616C6C53 - 63726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C - 6C62617205416C69676E070552696768740B536D616C6C4368616E6765050000 - 00000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D - 617267696E732E4C65667405000000000000008000400A506F736974696F6E2E - 580500000000000000C605400A506F736974696F6E2E59050000000000000080 - 00400A53697A652E576964746805000000000000008002400B53697A652E4865 - 6967687405000000000000008002401453697A652E506C6174666F726D446566 - 61756C74080756697369626C650800000F54536D616C6C5363726F6C6C426172 - 00095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69 - 676E0706426F74746F6D0B536D616C6C4368616E676505000000000000000000 - 000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E - 732E546F7005000000000000008000400A506F736974696F6E2E580500000000 - 0000008000400A506F736974696F6E2E590500000000000000E205400A53697A - 652E576964746805000000000000009606400B53697A652E4865696768740500 - 0000000000008002401453697A652E506C6174666F726D44656661756C740807 - 56697369626C65080000000B54476C6F774566666563740008536F66746E6573 - 73050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846464636394532 - 44074F7061636974790500000000006666E6FE3F0754726967676572060E4973 - 466F63757365643D7472756507456E61626C6564080000005450463007544C61 - 796F757400095374796C654E616D65060D6C697374626F78666F6F7465720541 - 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 - 05400B53697A652E4865696768740500000000000000D003401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C65080005545465787400 - 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 00000000A001400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E52696768740500000000000000A001400E4D617267696E732E - 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 00000000FC04400B53697A652E4865696768740500000000000000B003401453 - 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 - 732E466F6E74436F6C6F720708636C6157686974650000005450463007544C61 - 796F757400095374796C654E616D6506106C697374626F786974656D7374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 0000D605400B53697A652E4865696768740500000000000000C003401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508000654476C - 79706800095374796C654E616D65060A676C7970687374796C650C4D61726769 - 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 - 00400E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69 - 676E07044C6566740A53697A652E576964746805000000000000008003400B53 + 54657374080D526F746174696F6E416E676C650500000000000000B405C00A53 + 697A652E57696474680500000000000000A002400B53697A652E486569676874 + 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C6179 + 6F757400095374796C654E616D6506127363726F6C6C626172746F7062757474 + 6F6E05416C69676E070643656E7465720756697369626C6508085461624F7264 + 6572020C000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846463137353739430754726967676572061F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E + 54726967676572496E766572736506204973507265737365643D66616C73653B + 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0005545061746800095374796C654E616D650605506174683105416C69676E07 + 06436C69656E7409446174612E506174680A3400000004000000000000000000 + C8420000C84201000000000096430000C8420100000000004843000096430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080D526F746174696F6E416E676C650500000000000000B406 + 400A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 + 4C61796F757400095374796C654E616D65060E7363726F6C6C6261727374796C + 6505416C69676E070643656E7465720756697369626C6508085461624F726465 + 72020D000754427574746F6E00095374796C654E616D65060A6C656674627574 + 746F6E05416C69676E07044C656674064C6F636B6564090A506F736974696F6E + 2E5905000000000000008003400A53697A652E57696474680500000000000000 + 8003400B53697A652E48656967687405000000000000009003401453697A652E + 506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006137363 + 726F6C6C6261726C656674627574746F6E00000754427574746F6E0009537479 + 6C654E616D65060B7269676874627574746F6E05416C69676E07055269676874 + 064C6F636B6564090A506F736974696F6E2E5805000000000000008804400A50 + 6F736974696F6E2E5905000000000000008003400A53697A652E576964746805 + 000000000000008003400B53697A652E48656967687405000000000000009003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B757006147363726F6C6C6261727269676874627574746F6E00000754427574 + 746F6E00095374796C654E616D65060C626F74746F6D627574746F6E05416C69 + 676E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E59050000 + 00000000008804400A53697A652E57696474680500000000000000C804400B53 697A652E48656967687405000000000000008003401453697A652E506C617466 - 6F726D44656661756C7408000005545465787400095374796C654E616D650604 - 7465787405416C69676E0706436C69656E740748697454657374080C4D617267 - 696E732E4C6566740500000000000000C000400B4D617267696E732E546F7005 - 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 - C000400E4D617267696E732E426F74746F6D050000000000000080FF3F0A5369 - 7A652E57696474680500000000000000CA05400B53697A652E48656967687405 - 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 65155465787453657474696E67732E576F726457726170081654657874536574 - 74696E67732E486F727A416C69676E07074C656164696E670000095443686563 - 6B426F7800095374796C654E616D650605636865636B05416C69676E07084D6F - 73744C6566740843616E466F637573081244697361626C65466F637573456666 - 656374090A53697A652E57696474680500000000000000A003400B53697A652E - 4865696768740500000000000000C003401453697A652E506C6174666F726D44 - 656661756C74080756697369626C65080000005450463007544C61796F757400 - 095374796C654E616D6506126C697374626F78706C61696E6865616465720541 - 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 - 05400B53697A652E4865696768740500000000000000D003401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463244324432 - 44064C6F636B6564090748697454657374080A53697A652E5769647468050000 - 00000000009205400B53697A652E4865696768740500000000000000D0034014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F720709784646313531353135000005545465787400095374796C654E616D65 - 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 - 54657374080C4D617267696E732E4C6566740500000000000000A001400B4D61 - 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 - 68740500000000000000A001400E4D617267696E732E426F74746F6D05000000 - 000000008000400A53697A652E57696474680500000000000000FC04400B5369 - 7A652E4865696768740500000000000000B003401453697A652E506C6174666F - 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F - 720708636C6157686974650000005450463007544C61796F757400095374796C - 654E616D650609677269647374796C6505416C69676E070643656E7465720A53 - 697A652E5769647468050000000000FFFFE905400B53697A652E486569676874 - 05000000000000008306401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508000C5442727573684F626A65637400095374796C654E - 616D650618416C7465726E6174696E67526F774261636B67726F756E640B4272 - 7573682E436F6C6F72070978333237383738373800000C5442727573684F626A - 65637400095374796C654E616D6506086C696E6566696C6C0B42727573682E43 - 6F6C6F72070978464631353135313500000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 - 090748697454657374080C50616464696E672E4C656674050000000000000080 - 00400B50616464696E672E546F7005000000000000008000400D50616464696E - 672E526967687405000000000000008000400E50616464696E672E426F74746F - 6D05000000000000008000400A53697A652E5769647468050000000000FFFFE9 - 05400B53697A652E48656967687405000000000000008306401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 4631353135313500075448656164657200095374796C654E616D650606686561 - 6465720553696465730B03546F70044C65667406426F74746F6D055269676874 - 0005416C69676E0703546F700748697454657374080A506F736974696F6E2E58 - 05000000000000008000400A506F736974696F6E2E5905000000000000008000 - 400A53697A652E5769647468050000000000FFFFE105400B53697A652E486569 - 6768740500000000000000A803401453697A652E506C6174666F726D44656661 - 756C7408000007544C61796F757400095374796C654E616D650607636F6E7465 - 6E7405416C69676E0706436C69656E740C436C69704368696C6472656E090A53 - 697A652E5769647468050000000000FFFFC105400B53697A652E486569676874 - 0500000000000000B405401453697A652E506C6174666F726D44656661756C74 - 08000A5452656374616E676C6500095374796C654E616D65060973656C656374 - 696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974546573 - 7408074F706163697479050000000000000080FD3F0A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E61 - 6D650605666F6375730A46696C6C2E436F6C6F72070978414632413832453207 - 48697454657374080C4D617267696E732E4C656674050000000000000080FF3F - 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E - 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F0A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 595261646975730500000000000000C000400000000A545363726F6C6C426172 - 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 - 696768740B536D616C6C4368616E676505000000000000000000000B4F726965 - 6E746174696F6E0708566572746963616C0A506F736974696F6E2E5805000000 - 0000FFFFC505400A506F736974696F6E2E590500000000000000B803400A5369 - 7A652E576964746805000000000000008003400B53697A652E48656967687405 - 00000000000000B405401453697A652E506C6174666F726D44656661756C7408 - 00000A545363726F6C6C42617200095374796C654E616D65060A687363726F6C - 6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500 - 0000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E7461 - 6C0A506F736974696F6E2E5805000000000000008000400A506F736974696F6E - 2E590500000000000000E205400A53697A652E5769647468050000000000FFFF - E105400B53697A652E48656967687405000000000000008003401453697A652E - 506C6174666F726D44656661756C740800000F54536D616C6C5363726F6C6C42 - 617200095374796C654E616D65060F76736D616C6C7363726F6C6C6261720541 - 6C69676E070552696768740B536D616C6C4368616E6765050000000000000000 - 00000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E73 - 2E4C65667405000000000000008000400A506F736974696F6E2E580500000000 - 000000C605400A506F736974696F6E2E5905000000000000008000400A53697A - 652E576964746805000000000000008002400B53697A652E4865696768740500 - 0000000000008002401453697A652E506C6174666F726D44656661756C740807 - 56697369626C650800000F54536D616C6C5363726F6C6C42617200095374796C - 654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F - 74746F6D0B536D616C6C4368616E676505000000000000000000000B4F726965 - 6E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005 - 000000000000008000400A506F736974696F6E2E580500000000000000800040 - 0A506F736974696F6E2E590500000000000000E205400A53697A652E57696474 - 6805000000000000009606400B53697A652E4865696768740500000000000000 - 8002401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508000000005450463007544C61796F757400095374796C654E616D65060F68 - 65616465726974656D7374796C6505416C69676E070643656E7465720A53697A - 652E576964746805000000000000009205400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646344334433443064C6F636B65640907486974546573 - 74080A53697A652E576964746805000000000000009205400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D6506156865616465 - 72436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463443344334430953746F7056616C7565070978 - 46463241383245320754726967676572060E4973507265737365643D74727565 - 0E54726967676572496E7665727365060F4973507265737365643D66616C7365 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061668 - 65616465725374726F6B65416E696D6174696F6E31084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D65060C5374726F6B652E43 - 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 - 616C756507097846463241383245320754726967676572060E49735072657373 - 65643D747275650E54726967676572496E7665727365060F4973507265737365 - 643D66616C736500000005545465787400095374796C654E616D650604746578 - 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 - 0C4D617267696E732E4C6566740500000000000000A001400B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 0000000000A001400E4D617267696E732E426F74746F6D050000000000000080 - 00400A53697A652E57696474680500000000000000FC04400B53697A652E4865 - 696768740500000000000000B003401453697A652E506C6174666F726D446566 - 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C - 6157686974650000005450463007544C61796F757400095374796C654E616D65 - 061970726F67726573736261726D696E696572726F727374796C6505416C6967 - 6E070643656E7465720A53697A652E576964746805000000000033338505400B - 53697A652E4865696768740500000000009999E104401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508000A5452656374616E676C - 6500095374796C654E616D65060668747261636B05416C69676E0708436F6E74 - 656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B65 - 64090748697454657374080A53697A652E576964746805000000000033338505 - 400B53697A652E4865696768740500000000009999E104401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 000A5452656374616E676C6500095374796C654E616D65060A68696E64696361 - 746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978464645 - 3232413241064C6F636B6564090748697454657374080A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000009999 - E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E650000000A5452656374616E676C6500095374796C65 - 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 - 7374080A53697A652E576964746805000000000033338505400B53697A652E48 - 65696768740500000000009999E104401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000A545265637461 - 6E676C6500095374796C654E616D65060A76696E64696361746F7205416C6967 - 6E0706426F74746F6D0A46696C6C2E436F6C6F72070978464645323241324106 - 4C6F636B6564090748697454657374080A506F736974696F6E2E590500000000 - 0099998D04400A53697A652E576964746805000000000033338505400B53697A - 652E4865696768740500000000000000A803401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054 - 50463007544C61796F757400095374796C654E616D65061170726F6772657373 - 63656C6C7374796C6505416C69676E070643656E7465720A53697A652E576964 - 74680500000000000000F805400B53697A652E48656967687405000000000000 - 00FC05401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C65080007544C61796F757400095374796C654E616D65060668747261636B05 - 416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E732E - 4C65667405000000000000008000400B4D617267696E732E546F700500000000 - 0000008000400D4D617267696E732E526967687405000000000000008000400E - 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 - 696474680500000000000000F005400B53697A652E4865696768740500000000 - 000000F405401453697A652E506C6174666F726D44656661756C7408000A5452 - 656374616E676C6500095374796C654E616D65060A68696E64696361746F7205 - 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846463241383245 - 32064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 - 0000000000000080FF3F0B4D617267696E732E546F70050000000000000080FF - 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 - 6E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805 - 0000000000000080FF3F0A506F736974696F6E2E59050000000000000080FF3F - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000000F005401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C - 61796F757400095374796C654E616D6506106D656E756261726974656D737479 - 6C6505416C69676E070643656E7465720C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D - 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 - 00000000009205400B53697A652E4865696768740500000000000000D0034014 - 53697A652E506C6174666F726D44656661756C74080756697369626C6508000A - 5452656374616E676C650005416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646324138324532074869745465737408074F70616369 - 747905000000000017B7D1F13F0A53697A652E57696474680500000000000000 - 9205400B53697A652E4865696768740500000000000000D003401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E050000 - 00000018B7D1F23F0C50726F70657274794E616D6506074F7061636974790A53 - 7461727456616C756505000000000000000000000953746F7056616C75650500 - 00000000000080FF3F0754726967676572060F497353656C65637465643D7472 - 75650E54726967676572496E76657273650610497353656C65637465643D6661 - 6C73650000000A5452656374616E676C6500095374796C654E616D65060A6261 - 636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F - 6C6F720709784646324138324532074869745465737408074F70616369747905 - 000000000017B7D1F13F0A53697A652E57696474680500000000000000920540 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0F54466C6F6174416E696D6174696F6E00084475726174696F6E050000000000 - 18B7D1F23F0C50726F70657274794E616D6506074F7061636974790A53746172 - 7456616C756505000000000000000000000953746F7056616C75650500000000 - 00000080FF3F0754726967676572061049734D6F7573654F7665723D74727565 - 0E54726967676572496E7665727365061149734D6F7573654F7665723D66616C - 736500000007544C61796F757400095374796C654E616D650605676C79706805 - 416C69676E07044C6566740A53697A652E57696474680500000000000000C803 - 400B53697A652E4865696768740500000000000000D003401453697A652E506C - 6174666F726D44656661756C74080007544C61796F757400095374796C654E61 - 6D650609636865636B6D61726B05416C69676E0708436F6E74656E7473074F70 - 61636974790500000000006F1283F53F0A53697A652E57696474680500000000 - 000000C803400B53697A652E4865696768740500000000000000D00340145369 - 7A652E506C6174666F726D44656661756C7408000554506174680005416C6967 - 6E070643656E74657209446174612E506174680A580000000700000000000000 - 56D9524391AE2C43010000009276664365021643010000009F3983432B7C3C43 - 010000009E9AA64382D2B442010000006F1CB04375A4D1420100000026DF8243 - 263F67430300000056D9524391AE2C430A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080A53697A652E576964746805000000000000 - 00B002400B53697A652E4865696768740500000000000000B002401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6500000F54466C6F6174416E696D6174696F6E00084475726174696F6E05 - 0000000000CDCCCCFB3F0C50726F70657274794E616D6506074F706163697479 - 0A537461727456616C756505000000000000000000000953746F7056616C7565 - 050000000000000080FF3F0754726967676572060E4973436865636B65643D74 - 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 - 6C73650000000654476C79706800095374796C654E616D65060A676C79706873 - 74796C650C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 - 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 - 740500000000000000C000400E4D617267696E732E426F74746F6D0500000000 - 00000080FF3F05416C69676E070552696768740A53697A652E57696474680500 - 0000000000008003400B53697A652E4865696768740500000000000000800340 - 1453697A652E506C6174666F726D44656661756C740800000654496D61676500 - 095374796C654E616D6506066269746D61700E4D756C74695265734269746D61 - 700E01000005416C69676E0708436F6E74656E74730C4D617267696E732E4C65 - 667405000000000000008000400B4D617267696E732E546F7005000000000000 - 008000400D4D617267696E732E526967687405000000000000008000400E4D61 - 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 - 74680500000000000000A803400B53697A652E48656967687405000000000000 - 00B003401453697A652E506C6174666F726D44656661756C7408000000055454 - 65787400095374796C654E616D6506047465787405416C69676E07044C656674 - 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 0000000000008002400D4D617267696E732E5269676874050000000000000080 - 02400A506F736974696F6E2E5805000000000000008404400A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000D003401453697A652E506C6174666F726D44656661756C74081654657874 - 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 - 7453657474696E67732E486F727A416C69676E07074C656164696E6700000554 - 5465787400095374796C654E616D65060873686F727463757405416C69676E07 - 055269676874064C6F636B6564090748697454657374080C4D617267696E732E - 4C6566740500000000000000C002400D4D617267696E732E5269676874050000 - 0000000000C001400A506F736974696F6E2E580500000000000000C000C00A53 - 697A652E57696474680500000000000000C804400B53697A652E486569676874 - 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 - 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 - 7465165465787453657474696E67732E486F727A416C69676E07074C65616469 - 6E67000007544C61796F757400095374796C654E616D6506077375626D61726B - 05416C69676E070552696768740A506F736974696F6E2E580500000000000000 - D404400A53697A652E57696474680500000000000000A003400B53697A652E48 - 65696768740500000000000000D003401453697A652E506C6174666F726D4465 - 6661756C7408000554506174680005416C69676E070643656E74657209446174 - 612E506174680A34000000040000000000000000000000000000000100000000 - 0000000000803F010000000000803F0000003F0300000000000000000000000A - 46696C6C2E436F6C6F720708636C615768697465064C6F636B65640907486974 - 54657374080A53697A652E57696474680500000000000000E001400B53697A65 - 2E48656967687405000000000000008002401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450 - 46300A5452656374616E676C6500095374796C654E616D65060C6D656E756261 - 727374796C6505416C69676E070643656E7465720C436C69704368696C647265 - 6E090946696C6C2E4B696E6407044E6F6E650748697454657374080A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E650756697369626C6508000A5452656374 - 616E676C650005416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080C4D617267696E732E4C656674 - 050000000000000080FFBF0B4D617267696E732E546F70050000000000000080 - FFBF0D4D617267696E732E5269676874050000000000000080FFBF0A53697A65 - 2E57696474680500000000000000D004400B53697A652E486569676874050000 - 0000000000CC04401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F720709784646313531353135000007544C61796F7574 - 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 - 6E740C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 - 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 - 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 - 0080FF3F0A53697A652E57696474680500000000000000C004400B53697A652E - 4865696768740500000000000000C004401453697A652E506C6174666F726D44 - 656661756C74080000005450463007544C61796F757400095374796C654E616D - 65060D6D656E756974656D7374796C6505416C69676E070643656E7465720C4D - 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 - 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 - 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F - 0A53697A652E57696474680500000000008EE3F605400B53697A652E48656967 - 68740500000000008EE3F003401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508000A5452656374616E676C650005416C69676E07 - 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207 - 4869745465737408074F70616369747905000000000017B7D1F13F0A53697A65 - 2E57696474680500000000008EE3F605400B53697A652E486569676874050000 - 0000008EE3F003401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F - 6E00084475726174696F6E05000000000018B7D1F23F0C50726F70657274794E - 616D6506074F7061636974790A537461727456616C7565050000000000000000 - 00000953746F7056616C7565050000000000000080FF3F075472696767657206 - 0F497353656C65637465643D747275650E54726967676572496E766572736506 - 10497353656C65637465643D66616C73650000000A5452656374616E676C6500 - 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207486974 - 5465737408074F70616369747905000000000000000000000A53697A652E5769 - 6474680500000000008EE3F605400B53697A652E486569676874050000000000 - 8EE3F003401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008 - 4475726174696F6E05000000000018B7D1F23F07496E7665727365090C50726F - 70657274794E616D6506074F7061636974790A537461727456616C7565050000 - 00000000000000000953746F7056616C7565050000000000000080FF3F075472 - 6967676572061049734D6F7573654F7665723D747275650E5472696767657249 - 6E7665727365061149734D6F7573654F7665723D66616C736500000007544C61 - 796F757400095374796C654E616D650605676C79706805416C69676E07044C65 - 66740A53697A652E57696474680500000000000000C803400B53697A652E4865 - 696768740500000000008EE3F003401453697A652E506C6174666F726D446566 - 61756C74080007544C61796F757400095374796C654E616D650609636865636B - 6D61726B05416C69676E0708436F6E74656E7473074F70616369747905000000 - 00006F1283F53F0A53697A652E57696474680500000000000000C803400B5369 - 7A652E4865696768740500000000008EE3F003401453697A652E506C6174666F - 726D44656661756C7408000554506174680005416C69676E070643656E746572 - 09446174612E506174680A58000000070000000000000056D9524391AE2C4301 - 0000009276664365021643010000009F3983432B7C3C43010000009E9AA64382 - D2B442010000006F1CB04375A4D1420100000026DF8243263F67430300000056 - D9524391AE2C430A46696C6C2E436F6C6F720708636C61576869746507486974 - 54657374080A53697A652E57696474680500000000000000B002400B53697A65 - 2E4865696768740500000000000000B002401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C - 6F6174416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB - 3F0C50726F70657274794E616D6506074F7061636974790A537461727456616C - 756505000000000000000000000953746F7056616C7565050000000000000080 - FF3F0754726967676572060E4973436865636B65643D747275650E5472696767 - 6572496E7665727365060F4973436865636B65643D66616C7365000000065447 - 6C79706800095374796C654E616D65060A676C7970687374796C650C4D617267 - 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 - 000000000000008000400D4D617267696E732E52696768740500000000000000 - C000400E4D617267696E732E426F74746F6D050000000000000080FF3F05416C - 69676E07044C6566740A53697A652E576964746805000000000000008003400B - 53697A652E48656967687405000000000000008003401453697A652E506C6174 - 666F726D44656661756C740800000654496D61676500095374796C654E616D65 - 06066269746D61700E4D756C74695265734269746D61700E01000005416C6967 - 6E07044C6566740C4D617267696E732E4C65667405000000000000008000400B - 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 - 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 - 0000000000008000400A506F736974696F6E2E5805000000000000008000400A - 506F736974696F6E2E5905000000000000008000400A53697A652E5769647468 - 0500000000000000A803400B53697A652E4865696768740500000000008EE3D0 - 03401453697A652E506C6174666F726D44656661756C74080000000554546578 - 7400095374796C654E616D6506047465787405416C69676E07044C656674064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 000000008002400D4D617267696E732E52696768740500000000000000800240 - 0A506F736974696F6E2E5805000000000000008404400A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000008EE3 - F003401453697A652E506C6174666F726D44656661756C740816546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 - 657474696E67732E486F727A416C69676E07074C656164696E67000005545465 - 787400095374796C654E616D65060873686F727463757405416C69676E070552 - 69676874064C6F636B6564090748697454657374080C4D617267696E732E4C65 - 66740500000000000000C002400D4D617267696E732E52696768740500000000 - 000000C001400A506F736974696F6E2E580500000000001CC7BD04400A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000008EE3F003401453697A652E506C6174666F726D44656661756C740816 - 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 - 000007544C61796F757400095374796C654E616D6506077375626D61726B0541 - 6C69676E070552696768740A506F736974696F6E2E580500000000008EE3CE05 - 400A53697A652E57696474680500000000000000A003400B53697A652E486569 - 6768740500000000008EE3F003401453697A652E506C6174666F726D44656661 - 756C7408000554506174680005416C69676E070643656E74657209446174612E - 506174680A340000000400000000000000000000000000000001000000000000 - 000000803F010000000000803F0000003F0300000000000000000000000A4669 - 6C6C2E436F6C6F720708636C615768697465064C6F636B656409074869745465 - 7374080A53697A652E57696474680500000000000000C001400B53697A652E48 - 65696768740500000000000000A002401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054504630 - 07544C61796F757400095374796C654E616D6506126D656E7573657061726174 - 6F727374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 080005544C696E650005416C69676E0703546F70084C696E6554797065070354 - 6F700C4D617267696E732E4C656674050000000000000080FFBF0B4D61726769 - 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 - 0000000000000080FFBF0A506F736974696F6E2E58050000000000000080FFBF - 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 - 680500000000000000D004400B53697A652E4865696768740500000000000000 - 80FF3F1453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646313531353135000000545046300A5452656374616E - 676C6500095374796C654E616D65060D6D656E75766965777374796C6505416C - 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463230323032 - 300A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F720709784646313531353135000A5452 - 656374616E676C650005416C69676E0706436C69656E740A46696C6C2E436F6C - 6F7207097846463230323032300748697454657374080A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000000000 - C804401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646313531353135000D54536861646F77456666656374 - 000844697374616E6365050000000000000080014009446972656374696F6E05 - 00000000000000B4044008536F66746E657373050000000000000080FE3F074F - 706163697479050000000000000080FE3F0B536861646F77436F6C6F72070863 - 6C61426C61636B00000007544C61796F757400095374796C654E616D65060763 - 6F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566 - 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 - 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 - 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 - 680500000000000000C004400B53697A652E4865696768740500000000000000 - C004401453697A652E506C6174666F726D44656661756C740800000054504630 - 07544C61796F757400095374796C654E616D65060E696D61676563656C6C7374 - 796C6505416C69676E070643656E7465720756697369626C6508000654496D61 - 676500095374796C654E616D650605696D6167650E4D756C7469526573426974 - 6D61700E01000005416C69676E0706436C69656E74064C6F636B656409074869 - 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D - 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 - 000000000080FF3F0A53697A652E57696474680500000000000000C004400B53 - 697A652E4865696768740500000000000000C004401453697A652E506C617466 - 6F726D44656661756C74080000005450463007544C61796F757400095374796C - 654E616D65060E706F70757063656C6C7374796C6505416C69676E070643656E - 7465720A53697A652E57696474680500000000000000BB06400B53697A652E48 - 65696768740500000000000000AE04401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C65080007544C61796F75740005416C69676E07 - 0552696768740A506F736974696F6E2E580500000000000000AC06400A53697A - 652E57696474680500000000000000F002400B53697A652E4865696768740500 - 000000000000AE04401453697A652E506C6174666F726D44656661756C740800 - 0554506174680005416C69676E070643656E74657209446174612E506174680A - 400000000500000000000000000000000000803F010000000000803F0000803F - 010000000000003F0000000001000000000000000000803F0300000000000000 - 000000000A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080B4D617267696E732E546F700500000000000000E001C00A53697A652E57 - 6964746805000000000000008002400B53697A652E4865696768740500000000 - 0000008001401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6500000554506174680005416C69676E070643 - 656E74657209446174612E506174680A34000000040000000000000000000000 - 00000000010000000000803F00000000010000000000003F0000803F03000000 - 00000000000000000A46696C6C2E436F6C6F720708636C615768697465074869 - 7454657374080B4D617267696E732E546F700500000000000000C001400A5369 - 7A652E576964746805000000000000008002400B53697A652E48656967687405 - 000000000000008001401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E650000000554546578740009537479 - 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 - 64090748697454657374080C4D617267696E732E4C6566740500000000000000 - A001400B4D617267696E732E546F7005000000000000008000400D4D61726769 - 6E732E52696768740500000000000000A001400E4D617267696E732E426F7474 - 6F6D05000000000000008000400A53697A652E57696474680500000000000000 - A206400B53697A652E48656967687405000000000000009E04401453697A652E - 506C6174666F726D44656661756C7408165465787453657474696E67732E466F - 6E74436F6C6F720708636C6157686974650000005450463007544C61796F7574 - 00095374796C654E616D65060D7465787463656C6C7374796C6505416C69676E - 070643656E7465720756697369626C65080007544C61796F757400095374796C - 654E616D650607636F6E74656E7405416C69676E0708436F6E74656E7473064C - 6F636B6564090C4D617267696E732E4C65667405000000000000008001400B4D - 617267696E732E546F7005000000000000008001400D4D617267696E732E5269 - 67687405000000000000008001400E4D617267696E732E426F74746F6D050000 - 00000000008001400A53697A652E57696474680500000000000000A804400B53 - 697A652E4865696768740500000000000000A804401453697A652E506C617466 - 6F726D44656661756C740800000C5442727573684F626A65637400095374796C - 654E616D65060A666F726567726F756E6400000C5442727573684F626A656374 - 00095374796C654E616D65060973656C656374696F6E0B42727573682E436F6C - 6F72070978393632413832453200000B54466F6E744F626A6563740009537479 - 6C654E616D650604666F6E740000005450463007544C61796F75740009537479 - 6C654E616D6506096D656D6F7374796C6505416C69676E070643656E7465720A - 53697A652E5769647468050000000000CCCC8806400B53697A652E4865696768 - 740500000000006666F405401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508000C5442727573684F626A65637400095374796C65 - 4E616D65060A666F726567726F756E6400000C5442727573684F626A65637400 - 095374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F - 72070978374634343735394400000B54466F6E744F626A65637400095374796C - 654E616D650604666F6E7400000A5452656374616E676C6500095374796C654E - 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 - 697A652E5769647468050000000000CCCC8806400B53697A652E486569676874 - 0500000000006666F405401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F - 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C - 69656E740C4D617267696E732E4C65667405000000000000008000400B4D6172 - 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 - 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 - 0000008000400A53697A652E57696474680500000000009899E905400B53697A - 652E4865696768740500000000006666CC05401453697A652E506C6174666F72 - 6D44656661756C740800000A545363726F6C6C42617200095374796C654E616D - 65060A687363726F6C6C62617205416C69676E0706426F74746F6D0643757273 - 6F72070763724172726F770B536D616C6C4368616E6765050000000000000000 - 00000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974 - 696F6E2E590500000000006666D405400A53697A652E57696474680500000000 - 00CCCC8806400B53697A652E4865696768740500000000000000800340145369 - 7A652E506C6174666F726D44656661756C740800000A545363726F6C6C426172 - 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 - 6967687406437572736F72070763724172726F770B536D616C6C4368616E6765 - 05000000000000000000000B4F7269656E746174696F6E070856657274696361 - 6C0A506F736974696F6E2E580500000000009899F105400A53697A652E576964 - 746805000000000000008003400B53697A652E48656967687405000000000066 - 66D405401453697A652E506C6174666F726D44656661756C7408000007544C61 - 796F75740005416C69676E0706436C69656E740A53697A652E57696474680500 - 000000009899F105400B53697A652E4865696768740500000000006666D40540 - 1453697A652E506C6174666F726D44656661756C7408000F54536D616C6C5363 - 726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C - 62617205416C69676E0705526967687406437572736F72070763724172726F77 - 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 - 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 - 00008000400A53697A652E576964746805000000000000008002400B53697A65 - 2E48656967687405000000000000008002401453697A652E506C6174666F726D - 44656661756C74080756697369626C650800000F54536D616C6C5363726F6C6C - 42617200095374796C654E616D65060F68736D616C6C7363726F6C6C62617205 - 416C69676E0706426F74746F6D06437572736F72070763724172726F770B536D - 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E - 070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000000000 - 8000400A53697A652E576964746805000000000000009606400B53697A652E48 - 656967687405000000000000008002401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C65080000000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D6506146D656D6F5374726F6B65416E696D617469 - 6F6E31084475726174696F6E050000000000000000000007496E766572736509 - 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 - 7456616C756507097846463135313531350953746F7056616C75650709784646 - 3430343034300754726967676572062049734D6F7573654F7665723D74727565 - 3B4973466F63757365643D66616C73650E54726967676572496E766572736506 - 2149734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C - 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 146D656D6F5374726F6B65416E696D6174696F6E32084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D65060C5374726F6B652E43 - 6F6C6F720A537461727456616C756507097846463430343034300953746F7056 - 616C756507097846463241383245320754726967676572060E4973466F637573 - 65643D747275650E54726967676572496E7665727365060F4973466F63757365 - 643D66616C7365000000005450463007544C61796F757400095374796C654E61 - 6D65060E6C696E6B6C6162656C7374796C6505416C69676E070643656E746572 - 0A53697A652E5769647468050000000000CCCC8006400B53697A652E48656967 - 68740500000000009A998104401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C65080005545465787400095374796C654E616D650604 - 7465787405416C69676E0708436F6E74656E74730748697454657374080A5369 - 7A652E5769647468050000000000CCCC8006400B53697A652E48656967687405 - 00000000009A998104401453697A652E506C6174666F726D44656661756C7408 - 1A5465787453657474696E67732E466F6E742E5374796C654578740A0D000000 - 04040000000000000004000000165465787453657474696E67732E466F6E7443 - 6F6C6F72070D636C61446F64676572626C7565000F54436F6C6F72416E696D61 - 74696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E31 - 5374796C65084475726174696F6E050000000000000000000007496E76657273 - 65090C50726F70657274794E616D6506165465787453657474696E67732E466F - 6E74436F6C6F720A537461727456616C7565070D636C61446F64676572626C75 - 650953746F7056616C7565070E636C6144656570736B79626C75650754726967 - 676572063049734D6F7573654F7665723D747275653B4973507265737365643D - 66616C73653B4973466F63757365643D66616C73650E54726967676572496E76 - 65727365063149734D6F7573654F7665723D66616C73653B4973507265737365 - 643D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 - 74696F6E325374796C65084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D6506165465787453657474696E67732E466F6E74436F - 6C6F720A537461727456616C7565070E636C6144656570736B79626C75650953 - 746F7056616C756507097846463137353739430754726967676572062F497350 - 7265737365643D747275653B49734D6F7573654F7665723D747275653B497346 - 6F63757365643D66616C736500000000545046300A5452656374616E676C6500 - 095374796C654E616D65060E7374617475736261727374796C6505416C69676E - 070643656E7465720C436C69704368696C6472656E090A46696C6C2E436F6C6F - 7207097846463235323532350748697454657374080553696465730B03546F70 - 000A53697A652E57696474680500000000000000F004400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313507566973 - 69626C65080007544C61796F757400095374796C654E616D6506074C61796F75 - 743105416C69676E070552696768740A506F736974696F6E2E58050000000000 - 00008C04400A53697A652E57696474680500000000000000C803400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C740800095453697A654772697000095374796C654E616D650609 - 73697A65677267697005416C69676E0706426F74746F6D0A506F736974696F6E - 2E590500000000000000C803400A53697A652E57696474680500000000000000 - C803400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C7408000000005450463007544C61796F7574 - 00095374796C654E616D65060C7370696E626F787374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000006666E005400B5369 - 7A652E4865696768740500000000000000A803401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508000A5452656374616E676C6500 - 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A - 652E57696474680500000000006666E005400B53697A652E4865696768740500 - 000000000000A803401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646313531353135000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 - 696F6E315374796C65084475726174696F6E050000000000000000000007496E - 7665727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F - 720A537461727456616C756507097846463135313531350953746F7056616C75 - 6507097846463430343034300754726967676572061049734D6F7573654F7665 - 723D747275650E54726967676572496E7665727365061149734D6F7573654F76 - 65723D66616C73650000000C5442727573684F626A65637400095374796C654E - 616D65060A666F726567726F756E640B42727573682E436F6C6F720709784646 - 45414541454100000C5442727573684F626A65637400095374796C654E616D65 - 060973656C656374696F6E0B42727573682E436F6C6F72070978393632413832 - 4532000007544C61796F757400095374796C654E616D650607636F6E74656E74 - 05416C69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C - 65667405000000000000008000400B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E526967687405000000000000008000400E4D - 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 - 64746805000000000070668405400B53697A652E486569676874050000000000 - 00008803401453697A652E506C6174666F726D44656661756C74080000075442 - 7574746F6E00095374796C654E616D65060B6D696E7573627574746F6E05416C - 69676E07074669744C6566740843616E466F6375730806437572736F72070763 - 724172726F770C4D617267696E732E4C65667405000000000000008000400B4D - 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 - 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 - 00000000008000400A506F736974696F6E2E5805000000000000008000400A50 - 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 - 0000000000E8FF8703400B53697A652E48656967687405000000000000008803 - 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F - 6B7570060B627574746F6E7374796C65000554506174680005416C69676E0706 - 436C69656E7409446174612E506174680A400000000500000000000000000080 - 3F00000000010000000000803F0000803F01000000000000000000003F010000 - 000000803F00000000030000000000803F000000000A46696C6C2E436F6C6F72 - 0708636C6157686974650748697454657374080C4D617267696E732E4C656674 - 0500000000000000C001400B4D617267696E732E546F700500000000000000C0 - 01400D4D617267696E732E52696768740500000000000000C001400E4D617267 - 696E732E426F74746F6D0500000000000000C001400A53697A652E5769647468 - 050000000000A0FF9F01400B53697A652E4865696768740500000000000000A0 - 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E650000000754427574746F6E00095374796C654E616D65 - 060A706C7573627574746F6E05416C69676E070846697452696768740843616E - 466F6375730806437572736F72070763724172726F770C4D617267696E732E4C - 65667405000000000000008000400B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E526967687405000000000000008000400E4D - 617267696E732E426F74746F6D05000000000000008000400A506F736974696F - 6E2E580500000000006A66BA05400A506F736974696F6E2E5905000000000000 - 008000400A53697A652E5769647468050000000000F0FF8703400B53697A652E - 48656967687405000000000000008803401453697A652E506C6174666F726D44 - 656661756C74080B5374796C654C6F6F6B7570060B627574746F6E7374796C65 - 000554506174680005416C69676E0706436C69656E7409446174612E50617468 - 0A34000000040000000000000000000000000000000100000000000000000080 - 3F010000000000803F0000003F0300000000000000000000000A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080C4D617267696E732E - 4C6566740500000000000000C001400B4D617267696E732E546F700500000000 - 000000C001400D4D617267696E732E52696768740500000000000000C001400E - 4D617267696E732E426F74746F6D0500000000000000C001400A53697A652E57 - 69647468050000000000C0FF9F01400B53697A652E4865696768740500000000 - 000000A001401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 - 5374796C654E616D65060D73697A65677269707374796C6505416C69676E0706 - 43656E7465720A53697A652E57696474680500000000000000C803400B53697A - 652E4865696768740500000000000000C803401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508000A5452656374616E676C650009 - 5374796C654E616D65060A52656374616E676C653105416C69676E070643656E - 7465720A46696C6C2E436F6C6F7207097846463630363036300A53697A652E57 - 696474680500000000000000A000400B53697A652E4865696768740500000000 - 000000A000401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009537479 - 6C654E616D65060A52656374616E676C653205416C69676E070643656E746572 - 0A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C - 6566740500000000000000A002400A53697A652E576964746805000000000000 - 00A000400B53697A652E4865696768740500000000000000A000401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6500000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653305416C69676E070643656E7465720A46696C6C2E436F6C6F72 - 07097846463630363036300C4D617267696E732E4C6566740500000000000000 - A002400B4D617267696E732E546F700500000000000000A002400A53697A652E - 57696474680500000000000000A000400B53697A652E48656967687405000000 - 00000000A000401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653405416C69676E070643656E7465 - 720A46696C6C2E436F6C6F7207097846463630363036300B4D617267696E732E - 546F700500000000000000A002400A53697A652E576964746805000000000000 - 00A000400B53697A652E4865696768740500000000000000A000401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6500000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653505416C69676E070643656E7465720A46696C6C2E436F6C6F72 - 07097846463630363036300B4D617267696E732E546F700500000000000000A0 - 02400D4D617267696E732E52696768740500000000000000A002400A53697A65 - 2E57696474680500000000000000A000400B53697A652E486569676874050000 - 0000000000A000401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65000953 - 74796C654E616D65060A52656374616E676C653605416C69676E070643656E74 - 65720A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E73 - 2E4C6566740500000000000000A002400E4D617267696E732E426F74746F6D05 - 00000000000000A002400A53697A652E57696474680500000000000000A00040 - 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0000545046300A5452656374616E676C6500095374796C654E616D65060C746F - 6F6C6261727374796C6505416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463235323532350748697454657374080553696465730B0642 - 6F74746F6D000A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000000C804401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 350756697369626C650800005450463007544C61796F757400095374796C654E - 616D65061570726F67726573736261726572726F727374796C6505416C69676E - 070643656E7465720A53697A652E576964746805000000000033338505400B53 - 697A652E4865696768740500000000009999E104401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 - 00095374796C654E616D65060668747261636B05416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000003333850540 - 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 3531353135000A5452656374616E676C6500095374796C654E616D65060A6869 - 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 - 09784646453232413241064C6F636B6564090748697454657374080C4D617267 - 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 - 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 - 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F - 736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500 - 00000000000080FF3F0A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000009999D904401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 000A5452656374616E676C6500095374796C654E616D65060676747261636B05 - 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 - 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 - 6805000000000033338505400B53697A652E4865696768740500000000009999 - E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646313531353135000A5452656374616E676C65000953 - 74796C654E616D65060A76696E64696361746F7205416C69676E0706426F7474 - 6F6D0A46696C6C2E436F6C6F720709784646453232413241064C6F636B656409 - 0748697454657374080C4D617267696E732E4C656674050000000000000080FF - 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 - 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D - 050000000000000080FF3F0A506F736974696F6E2E58050000000000000080FF - 3F0A506F736974696F6E2E5905000000000099998904400A53697A652E576964 - 746805000000000033338105400B53697A652E48656967687405000000000000 - 00A803401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000000005450463007544C61796F757400095374 - 796C654E616D65060F64726F707461726765747374796C6505416C69676E0706 - 43656E7465720A53697A652E5769647468050000000000ACAAD905400B53697A - 652E4865696768740500000000000000CF05401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508000A5452656374616E676C650005 - 416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E6507 - 48697454657374080A53697A652E5769647468050000000000ACAAD905400B53 - 697A652E4865696768740500000000000000CF05401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720708636C61576869 - 7465105374726F6B652E546869636B6E65737305000000000000008001400B53 - 74726F6B652E4461736807044461736807585261646975730500000000000000 - C0024007595261646975730500000000000000C0024000055454657874000953 - 74796C654E616D6506047465787405416C69676E0706426F74746F6D07486974 - 54657374080C4D617267696E732E4C6566740500000000000000A002400D4D61 - 7267696E732E52696768740500000000000000A002400A506F736974696F6E2E - 580500000000000000A002400A506F736974696F6E2E590500000000000000D6 - 04400A53697A652E5769647468050000000000ACAAB105400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C - 6157686974650000001254466C6F61744B6579416E696D6174696F6E00084475 - 726174696F6E050000000000999999FE3F044B6579730E010001034B65790500 - 00000000000080FE3F0556616C75650500000000000000A003C00001034B6579 - 050000000000000080FF3F0000044C6F6F70090C50726F70657274794E616D65 - 060B50616464696E672E546F7010537461727446726F6D43757272656E740807 - 54726967676572060F4973447261674F7665723D747275650000055450617468 - 0005416C69676E070643656E74657209446174612E506174680AC40000001000 - 00000000000008EC8343F087A4430100000008EC8343083CFB430200000035BE - 7143504DF9430200000012835C43A8E6F54302000000F0674943F803F1430100 - 000008EC8343FC0116440100000008EC8343FC5116440100000000408443FC51 - 16440100000010689A43FC412B4401000000081CD043F803F14302000000915D - C64321E0F54302000000919DBB439643F94302000000087CB043F833FB430100 - 0000087CB043F087A4430100000008EC8343F087A44303000000000000000000 - 00000A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000100C804401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61 - 796F757400095374796C654E616D65061464726F707461726765746669656C64 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 0000000000A08A07400B53697A652E4865696768740500000000000000B20440 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 - 0A5452656374616E676C6500095374796C654E616D65060A52656374616E676C - 653105416C69676E0706436C69656E740946696C6C2E4B696E6407044E6F6E65 - 0748697454657374080A53697A652E576964746805000000000000A08A07400B - 53697A652E4865696768740500000000000000B204401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463241 - 383245320005545465787400095374796C654E616D6506047465787405416C69 - 676E0706436C69656E740748697454657374080A53697A652E57696474680500 - 0000000000809A05400B53697A652E4865696768740500000000000000B20440 - 1453697A652E506C6174666F726D44656661756C740816546578745365747469 - 6E67732E466F6E74436F6C6F720708636C615768697465000007544C61796F75 - 7400095374796C654E616D6506074C61796F75743105416C69676E07044C6566 - 740A53697A652E57696474680500000000000000C805400B53697A652E486569 - 6768740500000000000000B204401453697A652E506C6174666F726D44656661 - 756C74080005545061746800095374796C654E616D650605506174683105416C - 69676E070643656E74657209446174612E506174680A24010000180000000000 - 000073B8AC43C14A7843010000006D2717435849DD430200000086CB0A431078 - E343020000009683ED421078E34302000000DACED4425849DD43020000009A19 - BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEAC6430100 - 0000B4288B4385EB61430100000068D1D4426811584202000000281CBC42CAA1 - 264202000000281CBC42E6FBAC410200000068D1D442D04D144102000000A886 - ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D14410100 - 000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D2 - 5943020000009F5AB14343EB614302000000A05AB1439C046A4302000000FACE - AF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A78430A46 - 696C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A - 652E57696474680500000000000000F002400B53697A652E4865696768740500 - 000000000000F002401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400 - 0005545061746800095374796C654E616D650605506174683205416C69676E07 - 0643656E74657209446174612E506174680A24010000180000000000000073B8 - AC43C14A7843010000006D2717435849DD430200000086CB0A431078E3430200 - 00009683ED421078E34302000000DACED4425849DD43020000009A19BC42081C - D743020000009A19BC424C17CD4302000000DACED4421DEAC64301000000B428 - 8B4385EB61430100000068D1D4426811584202000000281CBC42CAA126420200 - 0000281CBC42E6FBAC410200000068D1D442D04D144102000000A886ED429CC2 - 45C002000000CCCC0A439CC245C002000000B4281743D04D14410100000016B9 - AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D259430200 - 00009F5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43711D - 72430200000073B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E - 436F6C6F720708636C6157686974650748697454657374080C4D617267696E73 - 2E4C6566740500000000000000A004400A53697A652E57696474680500000000 - 000000F002400B53697A652E4865696768740500000000000000F00240145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E6508577261704D6F6465070346697400000554506174680009537479 - 6C654E616D650605506174683305416C69676E070643656E7465720944617461 - 2E506174680A24010000180000000000000073B8AC43C14A7843010000006D27 - 17435849DD430200000086CB0A431078E343020000009683ED421078E3430200 - 0000DACED4425849DD43020000009A19BC42081CD743020000009A19BC424C17 - CD4302000000DACED4421DEAC64301000000B4288B4385EB61430100000068D1 - D4426811584202000000281CBC42CAA1264202000000281CBC42E6FBAC410200 - 000068D1D442D04D144102000000A886ED429CC245C002000000CCCC0A439CC2 - 45C002000000B4281743D04D14410100000016B9AC43918D4B4302000000BECF - AF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB61430200 - 0000A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43C14A - 78430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C615768 - 6974650748697454657374080D4D617267696E732E5269676874050000000000 - 0000A004400A53697A652E57696474680500000000000000F002400B53697A65 - 2E4865696768740500000000000000F002401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D - 6F6465070346697400000007544C61796F757400095374796C654E616D650607 - 4C61796F75743205416C69676E070552696768740A506F736974696F6E2E5805 - 00000000000040B106400A53697A652E57696474680500000000000000C80540 - 0B53697A652E4865696768740500000000000000B204401453697A652E506C61 - 74666F726D44656661756C74080005545061746800095374796C654E616D6506 - 05506174683105416C69676E070643656E74657209446174612E506174680A24 - 010000180000000000000073B8AC43C14A7843010000006D2717435849DD4302 - 00000086CB0A431078E343020000009683ED421078E34302000000DACED44258 - 49DD43020000009A19BC42081CD743020000009A19BC424C17CD4302000000DA - CED4421DEAC64301000000B4288B4385EB61430100000068D1D4426811584202 - 000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D0 - 4D144102000000A886ED429CC245C002000000CCCC0A439CC245C002000000B4 - 281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB514302 - 0000009F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1439C - 046A4302000000FACEAF43711D72430200000073B8AC43C14A78430300000073 - B8AC43C14A78430A46696C6C2E436F6C6F720708636C61576869746507486974 - 54657374080D526F746174696F6E416E676C650500000000000000B406400A53 - 697A652E57696474680500000000000000F002400B53697A652E486569676874 - 0500000000000000F002401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 - 74000005545061746800095374796C654E616D650605506174683205416C6967 - 6E070643656E74657209446174612E506174680A240100001800000000000000 - 73B8AC43C14A7843010000006D2717435849DD430200000086CB0A431078E343 - 020000009683ED421078E34302000000DACED4425849DD43020000009A19BC42 - 081CD743020000009A19BC424C17CD4302000000DACED4421DEAC64301000000 - B4288B4385EB61430100000068D1D4426811584202000000281CBC42CAA12642 - 02000000281CBC42E6FBAC410200000068D1D442D04D144102000000A886ED42 - 9CC245C002000000CCCC0A439CC245C002000000B4281743D04D144101000000 - 16B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D25943 - 020000009F5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43 - 711D72430200000073B8AC43C14A78430300000073B8AC43C14A78430A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080C4D61726769 - 6E732E4C6566740500000000000000A004400D526F746174696F6E416E676C65 - 0500000000000000B406400A53697A652E57696474680500000000000000F002 - 400B53697A652E4865696768740500000000000000F002401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 08577261704D6F64650703466974000005545061746800095374796C654E616D - 650605506174683305416C69676E070643656E74657209446174612E50617468 - 0A24010000180000000000000073B8AC43C14A7843010000006D2717435849DD - 430200000086CB0A431078E343020000009683ED421078E34302000000DACED4 - 425849DD43020000009A19BC42081CD743020000009A19BC424C17CD43020000 - 00DACED4421DEAC64301000000B4288B4385EB61430100000068D1D442681158 - 4202000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D4 - 42D04D144102000000A886ED429CC245C002000000CCCC0A439CC245C0020000 - 00B4281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB51 - 43020000009F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1 - 439C046A4302000000FACEAF43711D72430200000073B8AC43C14A7843030000 - 0073B8AC43C14A78430A46696C6C2E436F6C6F720708636C6157686974650748 - 697454657374080D4D617267696E732E52696768740500000000000000A00440 - 0D526F746174696F6E416E676C650500000000000000B406400A53697A652E57 - 696474680500000000000000F002400B53697A652E4865696768740500000000 - 000000F002401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400000000 - 005450463007544C61796F757400095374796C654E616D65060C706F706F7665 - 727374796C6505416C69676E070643656E7465720756697369626C6508000A54 - 52656374616E676C6500095374796C654E616D650602626705416C69676E0706 - 436C69656E740A46696C6C2E436F6C6F72070978464632303230323007486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 0007544C61796F757400095374796C654E616D650607636F6E74656E7405416C - 69676E0706436C69656E740C4D617267696E732E4C6566740500000000000000 - 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 - 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 - 6F6D050000000000000080FF3F0A53697A652E57696474680500000000000000 - C004400B53697A652E4865696768740500000000000000C004401453697A652E - 506C6174666F726D44656661756C740800000D54536861646F77456666656374 - 000844697374616E63650500000000000000C0004009446972656374696F6E05 - 00000000000000B4054008536F66746E657373050000000000000080FE3F074F - 706163697479050000000000000080FE3F0B536861646F77436F6C6F72070863 - 6C61426C61636B000000005450463007544C61796F757400095374796C654E61 - 6D65060D706F707570626F787374796C6505416C69676E070643656E7465720A - 53697A652E57696474680500000000000080C406400B53697A652E4865696768 - 740500000000000000D404401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508000A5452656374616E676C6500095374796C654E61 - 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46 - 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 - 7A652E57696474680500000000000080C406400B53697A652E48656967687405 - 00000000000000D404401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 - 74796C65084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463230323032300953746F7056616C7565070978464634303430343007547269 - 67676572062049734D6F7573654F7665723D747275653B497350726573736564 - 3D66616C73650E54726967676572496E7665727365062149734D6F7573654F76 - 65723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D - 6174696F6E325374796C65084475726174696F6E05000000000000000000000C - 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463430343034300953746F7056616C75650709784646324138 - 3245320754726967676572062049734D6F7573654F7665723D747275653B4973 - 507265737365643D747275653B0E54726967676572496E766572736506204973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650000 - 0007544C61796F75740005416C69676E070552696768740A506F736974696F6E - 2E580500000000000080B506400A53697A652E57696474680500000000000000 - F002400B53697A652E4865696768740500000000000000D404401453697A652E - 506C6174666F726D44656661756C7408000554506174680005416C69676E0706 - 43656E74657209446174612E506174680A400000000500000000000000000000 - 000000803F010000000000803F0000803F010000000000003F00000000010000 - 00000000000000803F0300000000000000000000000A46696C6C2E436F6C6F72 - 0708636C6157686974650748697454657374080B4D617267696E732E546F7005 - 00000000000000E001C00A53697A652E57696474680500000000000000800240 - 0B53697A652E48656967687405000000000000008001401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 000554506174680005416C69676E070643656E74657209446174612E50617468 - 0A3400000004000000000000000000000000000000010000000000803F000000 - 00010000000000003F0000803F0300000000000000000000000A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080B4D617267696E732E - 546F700500000000000000C001400A53697A652E576964746805000000000000 - 008002400B53697A652E48656967687405000000000000008001401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6500000005545465787400095374796C654E616D6506047465787405416C - 69676E0706436C69656E740748697454657374080C4D617267696E732E4C6566 - 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 - 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 - 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 - 680500000000000080B306400B53697A652E4865696768740500000000000000 - CC04401453697A652E506C6174666F726D44656661756C740816546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 - 300A5452656374616E676C6500095374796C654E616D65061473746174757362 - 61726E6F677269707374796C6505416C69676E070643656E7465720C436C6970 - 4368696C6472656E090A46696C6C2E436F6C6F72070978464632353235323505 - 53696465730B03546F70000A53697A652E57696474680500000000000000F004 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 3135313531350756697369626C650800005450463007544C61796F7574000953 - 74796C654E616D650613736D616C6C7363726F6C6C6261727374796C6505416C - 69676E070643656E7465720756697369626C6508000654547261636B00095374 - 796C654E616D65060668747261636B05416C69676E0706436C69656E74064C6F - 636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A5369 - 7A652E57696474680500000000000000C804400B53697A652E48656967687405 - 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 0B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B737479 - 6C6500000654547261636B00095374796C654E616D65060676747261636B0541 - 6C69676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E - 070A486F72697A6F6E74616C0A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000000000C804401453697A652E50 - 6C6174666F726D44656661756C74080B5374796C654C6F6F6B75700614736372 - 6F6C6C62617276747261636B7374796C650000005450463007544C61796F7574 - 00095374796C654E616D65060D73706C69747465727374796C6505416C69676E - 070643656E7465720A53697A652E57696474680500000000000000A904400B53 - 697A652E4865696768740500000000000080C105401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 - 00095374796C654E616D65060A52656374616E676C653105416C69676E070643 - 6C69656E740A46696C6C2E436F6C6F7207097846463330333033300748697454 - 657374080553696465730B044C656674055269676874000A53697A652E576964 - 74680500000000000000A904400B53697A652E48656967687405000000000000 - 80C105401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F720709784646313531353135000007544C61796F757400095374 - 796C654E616D6506064C61796F757405416C69676E0706436C69656E740A5369 - 7A652E57696474680500000000000000A904400B53697A652E48656967687405 - 00000000000080C105401453697A652E506C6174666F726D44656661756C7408 - 0007544C61796F757400095374796C654E616D6506046772697005416C69676E - 070A5665727443656E746572064C6F636B6564090A506F736974696F6E2E5905 - 000000000000008004400A53697A652E57696474680500000000000000A90440 - 0B53697A652E48656967687405000000000000008004401453697A652E506C61 - 74666F726D44656661756C7408000754436972636C6500095374796C654E616D - 650607436972636C653305416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463430343034300748697454657374080E4D617267696E732E - 426F74746F6D0500000000000000A003400A53697A652E576964746805000000 - 00000000E001400B53697A652E4865696768740500000000000000E001401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 72070978464631353135313500000754436972636C6500095374796C654E616D - 650607436972636C653205416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463430343034300748697454657374080B4D617267696E732E - 546F700500000000000000A003400A53697A652E576964746805000000000000 - 00E001400B53697A652E4865696768740500000000000000E001401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 78464631353135313500000754436972636C6500095374796C654E616D650607 - 436972636C653105416C69676E070643656E7465720A46696C6C2E436F6C6F72 - 07097846463430343034300748697454657374080A53697A652E576964746805 - 00000000000000E001400B53697A652E4865696768740500000000000000E001 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F72070978464631353135313500000000005450463007544C61796F7574 - 00095374796C654E616D650610636C6F7365627574746F6E7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508000A5452656374616E - 676C6500095374796C654E616D65060B636C6F7365627574746F6E05416C6967 - 6E0706436C69656E740A46696C6C2E436F6C6F72070978464632303230323007 - 48697454657374080A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 - 416E696D6174696F6E315374796C65084475726174696F6E0500000000000000 - 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463230323032300953746F7056616C756507097846 - 464646363135370754726967676572062049734D6F7573654F7665723D747275 - 653B4973507265737365643D66616C73650E54726967676572496E7665727365 - 062149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 - 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0614436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05 - 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846464646363135370953746F705661 - 6C756507097846464532344634350754726967676572061F49734D6F7573654F - 7665723D747275653B4973507265737365643D747275650E5472696767657249 - 6E7665727365062049734D6F7573654F7665723D747275653B49735072657373 - 65643D66616C736500000005545061746800095374796C654E616D6506055061 - 74683105416C69676E070643656E74657209446174612E506174680AC4000000 - 10000000000000000000A0C00000704101000000000070410000A0C001000000 - 000048420000F041010000000000AA420000A0C0010000000000D24200007041 - 0100000000008C4200004842010000000000D2420000B442010000000000AA42 - 0000DC42020000003BDF34429E6F8C4202000000FE547D427FAAB04202000000 - 000048420000964201000000000070410000DC42010000000000A0C00000B442 - 010000000000F04100005C42010000000000A0C000007041030000000000A0C0 - 000070410A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080A53697A652E57696474680500000000000000A002400B53697A652E4865 - 696768740500000000000000A002401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000545046300754 - 4C61796F757400095374796C654E616D65060E6D6178627574746F6E7374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508000A545265 - 6374616E676C6500095374796C654E616D6506096D6178627574746F6E05416C - 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 - 300748697454657374080A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C - 6F72416E696D6174696F6E315374796C65084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463230323032300953746F7056616C75650709 - 7846463241383245320754726967676572062049734D6F7573654F7665723D74 - 7275653B4973507265737365643D66616C73650E54726967676572496E766572 - 7365062149734D6F7573654F7665723D66616C73653B4973507265737365643D - 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F - 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463241383245320953746F70 - 56616C756507097846463137353739430754726967676572061F49734D6F7573 - 654F7665723D747275653B4973507265737365643D747275650E547269676765 - 72496E7665727365062049734D6F7573654F7665723D747275653B4973507265 - 737365643D66616C736500000005545061746800095374796C654E616D650605 - 506174683105416C69676E070643656E74657209446174612E506174680A5800 - 000007000000000000000000C8420000C8420100000000002F440000C8420100 - 000000002F4400002F4401000000008009440080094401000000008009440000 - 7A430100000000007A4300007A43030000000000C8420000C8420A46696C6C2E - 436F6C6F720708636C6157686974650748697454657374080A53697A652E5769 - 6474680500000000000000A002400B53697A652E486569676874050000000000 - 0000A002401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E650000005450463007544C61796F757400095374 - 796C654E616D65060E726573627574746F6E7374796C6505416C69676E070643 - 656E7465720A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C803401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508000A5452656374616E676C65000953 - 74796C654E616D650609726573627574746F6E05416C69676E0706436C69656E - 740A46696C6C2E436F6C6F720709784646323032303230074869745465737408 - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F - 6E315374796C65084475726174696F6E05000000000000000000000C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463230323032300953746F7056616C7565070978464632413832453207 - 54726967676572062049734D6F7573654F7665723D747275653B497350726573 - 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 - 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 - 6E696D6174696F6E325374796C65084475726174696F6E050000000000000000 - 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 - 7456616C756507097846463241383245320953746F7056616C75650709784646 - 3137353739430754726967676572061F49734D6F7573654F7665723D74727565 - 3B4973507265737365643D747275650E54726967676572496E76657273650620 - 49734D6F7573654F7665723D747275653B4973507265737365643D66616C7365 - 00000005545061746800095374796C654E616D650605506174683105416C6967 - 6E070643656E74657209446174612E506174680A580000000700000000000000 - 0000C8420000C8420100000000002F440000C8420100000000002F4400002F44 - 010000000080094400800944010000000080094400007A430100000000007A43 - 00007A43030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080D526F746174696F6E416E676C6505000000 - 00000000B406400A53697A652E57696474680500000000000000A002400B5369 - 7A652E4865696768740500000000000000A002401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054 - 50463007544C61796F757400095374796C654E616D65060E6D696E627574746F - 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 000A5452656374616E676C6500095374796C654E616D6506096D696E62757474 - 6F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646 - 3230323032300748697454657374080A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05 - 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463230323032300953746F705661 - 6C756507097846463241383245320754726967676572062049734D6F7573654F - 7665723D747275653B4973507265737365643D66616C73650E54726967676572 - 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 - 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65084475 - 726174696F6E05000000000000000000000C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646324138324532 - 0953746F7056616C756507097846463137353739430754726967676572061F49 - 734D6F7573654F7665723D747275653B4973507265737365643D747275650E54 - 726967676572496E7665727365062049734D6F7573654F7665723D747275653B - 4973507265737365643D66616C736500000005545061746800095374796C654E - 616D650605506174683105416C69676E070643656E74657209446174612E5061 - 74680A40000000050000000000000000002F44008009440100000000002F4400 - 002F44010000000000C84200002F44010000000000C842008009440300000000 - 002F44008009440A46696C6C2E436F6C6F720708636C61576869746507486974 - 54657374080B4D617267696E732E546F700500000000000000A002400D526F74 - 6174696F6E416E676C650500000000000000B406400A53697A652E5769647468 - 0500000000000000A002400B53697A652E4865696768740500000000000000C0 - 00401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E650000005450463007544C61796F757400095374796C65 - 4E616D65060F746F6F6C77696E646F777374796C6505416C69676E070643656E - 7465720A53697A652E576964746805000000000056D5AF07400B53697A652E48 - 65696768740500000000000000B306401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508000A5452656374616E676C650009537479 - 6C654E616D6506046D61736B05416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F7207097846463130313031300A53697A652E5769647468050000 - 00000056D5AF07400B53697A652E4865696768740500000000000000B3064014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E650756697369626C6508000007544C61796F757400095374796C - 654E616D6506046C65667405416C69676E07084D6F73744C656674064C6F636B - 6564090A506F736974696F6E2E590500000000000000C803400A53697A652E57 - 696474680500000000000000A001400B53697A652E4865696768740500000000 - 0000009A06401453697A652E506C6174666F726D44656661756C7408000A5452 - 656374616E676C650005416C69676E07084D6F73744C6566740A46696C6C2E43 - 6F6C6F7207097846463230323032300748697454657374080553696465730B04 - 4C656674055269676874000A53697A652E57696474680500000000000000A001 - 400B53697A652E48656967687405000000000000009506401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 31353135313500000A5452656374616E676C6500095374796C654E616D65060A - 52656374616E676C653105416C69676E070A4D6F7374426F74746F6D13456E61 - 626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207097846 - 463230323032300748697454657374080A506F736974696F6E2E590500000000 - 0000009506400553696465730B044C65667406426F74746F6D000A53697A652E - 57696474680500000000000000A001400B53697A652E48656967687405000000 - 00000000A001401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F7207097846463135313531350007544C61796F75740009 - 5374796C654E616D6506074C61796F75743305416C69676E07094D6F73745269 - 6768740A506F736974696F6E2E5805000000000000008001400A53697A652E57 - 69647468050000000000000080FF3F0B53697A652E4865696768740500000000 - 000000A001401453697A652E506C6174666F726D44656661756C7408000A5452 - 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 - 416C69676E0703546F700A46696C6C2E436F6C6F720709784646313531353135 - 0748697454657374080A53697A652E5769647468050000000000000080FF3F0B - 53697A652E486569676874050000000000000080FF3F1453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 00000007544C61796F757400095374796C654E616D650605726967687405416C - 69676E07094D6F73745269676874064C6F636B6564090A506F736974696F6E2E - 580500000000005655AD07400A506F736974696F6E2E590500000000000000C8 - 03400A53697A652E57696474680500000000000000A001400B53697A652E4865 - 6967687405000000000000009A06401453697A652E506C6174666F726D446566 - 61756C7408000A5452656374616E676C650005416C69676E07094D6F73745269 - 6768740A46696C6C2E436F6C6F72070978464632303230323007486974546573 - 74080553696465730B044C656674055269676874000A53697A652E5769647468 - 0500000000000000A001400B53697A652E486569676874050000000000000095 - 06401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313500000A5452656374616E676C65000953 - 74796C654E616D65060A52656374616E676C653105416C69676E070A4D6F7374 - 426F74746F6D13456E61626C6544726167486967686C69676874080A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080A506F736974 - 696F6E2E5905000000000000009506400553696465730B06426F74746F6D0552 - 69676874000A53697A652E57696474680500000000000000A001400B53697A65 - 2E4865696768740500000000000000A001401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 0007544C61796F757400095374796C654E616D6506074C61796F75743305416C - 69676E07084D6F73744C6566740A53697A652E57696474680500000000000000 - 80FF3F0B53697A652E4865696768740500000000000000A001401453697A652E - 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653105416C69676E0703546F700A46 - 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 - 7A652E5769647468050000000000000080FF3F0B53697A652E48656967687405 - 0000000000000080FF3F1453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E6500000000000A5452656374616E67 - 6C650005416C69676E07074D6F7374546F700A46696C6C2E436F6C6F72070978 - 4646323032303230064C6F636B6564090748697454657374080A53697A652E57 - 6964746805000000000056D5AF07400B53697A652E4865696768740500000000 - 000000C803401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F7207097846463135313531350007544C61796F7574000953 - 74796C654E616D65060763617074696F6E05416C69676E0708436F6E74656E74 - 73064C6F636B6564090748697454657374090A53697A652E5769647468050000 - 00000056D5AF07400B53697A652E4865696768740500000000000000C8034014 - 53697A652E506C6174666F726D44656661756C7408000007544C61796F757400 - 05416C69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C - 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 - 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 - 64746805000000000056D5AE07400B53697A652E486569676874050000000000 - 0000B803401453697A652E506C6174666F726D44656661756C74080007544C61 - 796F75740005416C69676E07044C656674064C6F636B6564090A53697A652E57 - 6964746805000000000000009002400B53697A652E4865696768740500000000 - 000000B803401453697A652E506C6174666F726D44656661756C740800000754 - 4C61796F757400095374796C654E616D65060773797362746E7305416C69676E - 0706436C69656E74064C6F636B6564090A53697A652E57696474680500000000 - 005655AA07400B53697A652E4865696768740500000000000000B80340145369 - 7A652E506C6174666F726D44656661756C7408000C545370656564427574746F - 6E00095374796C654E616D650605636C6F736505416C69676E07055269676874 - 064C6F636B6564090A506F736974696F6E2E5805000000000056D59D07400A53 - 697A652E57696474680500000000000000C803400B53697A652E486569676874 - 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 - 080B5374796C654C6F6F6B75700610636C6F7365627574746F6E7374796C6500 - 0005545465787400095374796C654E616D6506057469746C6505416C69676E07 - 06436C69656E74064C6F636B6564090748697454657374080A53697A652E5769 - 64746805000000000056D59D07400B53697A652E486569676874050000000000 - 0000B803401453697A652E506C6174666F726D44656661756C74080454657874 - 06055469746C65165465787453657474696E67732E466F6E74436F6C6F720708 - 636C615768697465000000000007544C61796F757400095374796C654E616D65 - 0606636C69656E7405416C69676E0706436C69656E74064C6F636B6564090748 - 697454657374090A53697A652E576964746805000000000056D5AA07400B5369 - 7A652E48656967687405000000000000009506401453697A652E506C6174666F - 726D44656661756C7408000007544C61796F757400095374796C654E616D6506 - 06626F74746F6D05416C69676E0706426F74746F6D064C6F636B6564090A506F - 736974696F6E2E580500000000000000A001400A506F736974696F6E2E590500 - 000000000000AE06400A53697A652E576964746805000000000056D5AA07400B - 53697A652E4865696768740500000000000000A001401453697A652E506C6174 - 666F726D44656661756C7408000A5452656374616E676C6500095374796C654E - 616D6506047265637405416C69676E0706426F74746F6D0A46696C6C2E436F6C - 6F7207097846463230323032300553696465730B03546F7006426F74746F6D00 - 0A53697A652E576964746805000000000056D5AA07400B53697A652E48656967 - 68740500000000000000A001401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F7207097846463135313531350000000054 - 50463007544C61796F757400095374796C654E616D65061177696E646F77626F - 726465727374796C6505416C69676E070643656E7465720A53697A652E576964 - 746805000000000056D5AF07400B53697A652E48656967687405000000000000 - 00B306401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C6508000A5452656374616E676C6500095374796C654E616D6506046D61736B - 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 - 3130313031300A53697A652E576964746805000000000056D5AF07400B53697A - 652E4865696768740500000000000000B306401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369 - 626C6508000007544C61796F757400095374796C654E616D6506046C65667405 - 416C69676E07084D6F73744C656674064C6F636B6564090A506F736974696F6E - 2E590500000000000000F003400A53697A652E57696474680500000000000000 - A001400B53697A652E48656967687405000000000000009506401453697A652E - 506C6174666F726D44656661756C7408000A5452656374616E676C650005416C - 69676E07084D6F73744C6566740A46696C6C2E436F6C6F720709784646323032 - 3032300748697454657374080553696465730B044C656674055269676874000A - 53697A652E57696474680500000000000000A001400B53697A652E4865696768 - 7405000000000000009006401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F72070978464631353135313500000A545265 - 6374616E676C6500095374796C654E616D65060A52656374616E676C65310541 - 6C69676E070A4D6F7374426F74746F6D13456E61626C6544726167486967686C - 69676874080A46696C6C2E436F6C6F7207097846463230323032300748697454 - 657374080A506F736974696F6E2E590500000000000000900640055369646573 - 0B044C65667406426F74746F6D000A53697A652E576964746805000000000000 - 00A001400B53697A652E4865696768740500000000000000A001401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 7846463135313531350007544C61796F757400095374796C654E616D6506074C - 61796F75743305416C69676E07094D6F737452696768740A506F736974696F6E - 2E5805000000000000008001400A53697A652E57696474680500000000000000 - 80FF3F0B53697A652E4865696768740500000000000000A001401453697A652E - 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653105416C69676E0703546F700A46 - 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 - 7A652E5769647468050000000000000080FF3F0B53697A652E48656967687405 - 0000000000000080FF3F1453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000000000007544C61796F757400 - 095374796C654E616D650605726967687405416C69676E07094D6F7374526967 - 6874064C6F636B6564090A506F736974696F6E2E580500000000005655AD0740 - 0A506F736974696F6E2E590500000000000000F003400A53697A652E57696474 - 680500000000000000A001400B53697A652E4865696768740500000000000000 - 9506401453697A652E506C6174666F726D44656661756C7408000A5452656374 - 616E676C650005416C69676E07094D6F737452696768740A46696C6C2E436F6C - 6F7207097846463230323032300748697454657374080553696465730B044C65 - 6674055269676874000A53697A652E57696474680500000000000000A001400B - 53697A652E48656967687405000000000000009006401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 3135313500000A5452656374616E676C6500095374796C654E616D65060A5265 - 6374616E676C653105416C69676E070A4D6F7374426F74746F6D13456E61626C - 6544726167486967686C69676874080A46696C6C2E436F6C6F72070978464632 - 30323032300748697454657374080A506F736974696F6E2E5905000000000000 - 009006400553696465730B06426F74746F6D055269676874000A53697A652E57 - 696474680500000000000000A001400B53697A652E4865696768740500000000 - 000000A001401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F7207097846463135313531350007544C61796F7574000953 - 74796C654E616D6506074C61796F75743305416C69676E07084D6F73744C6566 - 740A53697A652E5769647468050000000000000080FF3F0B53697A652E486569 - 6768740500000000000000A001401453697A652E506C6174666F726D44656661 - 756C7408000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653105416C69676E0703546F700A46696C6C2E436F6C6F72070978 - 46463135313531350748697454657374080A53697A652E576964746805000000 - 0000000080FF3F0B53697A652E486569676874050000000000000080FF3F1453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6500000000000A5452656374616E676C650005416C69676E07074D - 6F7374546F700A46696C6C2E436F6C6F720709784646323032303230064C6F63 - 6B6564090748697454657374080A53697A652E576964746805000000000056D5 - AF07400B53697A652E4865696768740500000000000000F003401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 46463135313531350007544C61796F757400095374796C654E616D6506076361 - 7074696F6E05416C69676E0708436F6E74656E7473064C6F636B656409074869 - 7454657374090A53697A652E576964746805000000000056D5AF07400B53697A - 652E4865696768740500000000000000F003401453697A652E506C6174666F72 - 6D44656661756C7408000007544C61796F75740005416C69676E0706436C6965 - 6E74064C6F636B6564090C4D617267696E732E4C656674050000000000000080 - FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E - 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F - 6D050000000000000080FF3F0A53697A652E576964746805000000000056D5AE - 07400B53697A652E4865696768740500000000000000E003401453697A652E50 - 6C6174666F726D44656661756C74080007544C61796F75740005416C69676E07 - 044C656674064C6F636B6564090A53697A652E57696474680500000000000000 - 9002400B53697A652E4865696768740500000000000000E003401453697A652E - 506C6174666F726D44656661756C7408000007544C61796F757400095374796C - 654E616D65060469636F6E064C6F636B6564090A506F736974696F6E2E580500 - 0000000000009002400A506F736974696F6E2E590500000000000000E001400A - 53697A652E57696474680500000000000000C803400B53697A652E4865696768 - 740500000000000000A803401453697A652E506C6174666F726D44656661756C - 7408000007544C61796F757400095374796C654E616D65060773797362746E73 - 05416C69676E0706436C69656E74064C6F636B6564090A53697A652E57696474 - 680500000000005655AA07400B53697A652E4865696768740500000000000000 - E003401453697A652E506C6174666F726D44656661756C7408000C5453706565 - 64427574746F6E00095374796C654E616D650605636C6F736505416C69676E07 - 055269676874064C6F636B6564090A506F736974696F6E2E5805000000000056 - 559107400A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000E003401453697A652E506C6174666F726D44 - 656661756C74080B5374796C654C6F6F6B75700610636C6F7365627574746F6E - 7374796C6500000C545370656564427574746F6E00095374796C654E616D6506 - 036D617805416C69676E07055269676874064C6F636B6564090A506F73697469 - 6F6E2E5805000000000056558207400A53697A652E5769647468050000000000 - 0000F003400B53697A652E4865696768740500000000000000E003401453697A - 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060E - 6D6178627574746F6E7374796C6500000C545370656564427574746F6E000953 - 74796C654E616D65060372657305416C69676E07055269676874064C6F636B65 - 64090A506F736974696F6E2E58050000000000ACAAE606400A53697A652E5769 - 6474680500000000000000F003400B53697A652E486569676874050000000000 - 0000E003401453697A652E506C6174666F726D44656661756C74080B5374796C - 654C6F6F6B7570060E726573627574746F6E7374796C6500000C545370656564 - 427574746F6E00095374796C654E616D6506036D696E05416C69676E07055269 - 676874064C6F636B6564090A506F736974696F6E2E58050000000000ACAAC806 - 400A53697A652E57696474680500000000000000F003400B53697A652E486569 - 6768740500000000000000E003401453697A652E506C6174666F726D44656661 - 756C74080B5374796C654C6F6F6B7570060E6D696E627574746F6E7374796C65 - 000005545465787400095374796C654E616D6506057469746C6505416C69676E - 0706436C69656E74064C6F636B6564090748697454657374080A53697A652E57 - 69647468050000000000ACAAC806400B53697A652E4865696768740500000000 - 000000E003401453697A652E506C6174666F726D44656661756C740804546578 - 7406055469746C65165465787453657474696E67732E466F6E74436F6C6F7207 - 08636C615768697465000000000007544C61796F757400095374796C654E616D - 650606636C69656E7405416C69676E0706436C69656E74064C6F636B65640907 - 48697454657374090A53697A652E576964746805000000000056D5AA07400B53 - 697A652E48656967687405000000000000009006401453697A652E506C617466 - 6F726D44656661756C7408000007544C61796F757400095374796C654E616D65 - 0606626F74746F6D05416C69676E0706426F74746F6D064C6F636B6564090A50 - 6F736974696F6E2E580500000000000000A001400A506F736974696F6E2E5905 - 00000000000000AE06400A53697A652E576964746805000000000056D5AA0740 - 0B53697A652E4865696768740500000000000000A001401453697A652E506C61 - 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 - 4E616D6506047265637405416C69676E0706426F74746F6D0A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080553696465730B0354 - 6F7006426F74746F6D000A53697A652E576964746805000000000056D5AA0740 - 0B53697A652E4865696768740500000000000000A001401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 3531353135000000005450463007544C61796F757400095374796C654E616D65 - 0610726164696F627574746F6E7374796C6505416C69676E070643656E746572 - 0A53697A652E57696474680500000000000000F205400B53697A652E48656967 - 68740500000000000000A803401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C65080007544C61796F75740005416C69676E07044C65 - 66740A53697A652E57696474680500000000000000A803400B53697A652E4865 - 696768740500000000000000A803401453697A652E506C6174666F726D446566 - 61756C7408000854456C6C6970736500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E070643656E7465720A46696C6C2E436F6C6F7207 - 09784646323032303230064C6F636B6564090748697454657374080A53697A65 - 2E57696474680500000000000000F002400B53697A652E486569676874050000 - 0000000000F002401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F720709784646313531353135000854456C6C69707365 - 00095374796C654E616D650609636865636B6D61726B05416C69676E0706436C - 69656E740A46696C6C2E436F6C6F720709784646324138324532064C6F636B65 - 6409074869745465737408074F70616369747905000000000000000000000C4D - 617267696E732E4C65667405000000000000008000400B4D617267696E732E54 - 6F7005000000000000008000400D4D617267696E732E52696768740500000000 - 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 - 0A53697A652E57696474680500000000000000B002400B53697A652E48656967 - 68740500000000000000B002401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E69 - 6D6174696F6E00095374796C654E616D65061A6F706163697479436865636B6D - 61726B416E696D6174696F6E31084475726174696F6E05000000000000000000 - 000C50726F70657274794E616D6506074F7061636974790A537461727456616C - 756505000000000000000000000953746F7056616C7565050000000000000080 - FF3F0754726967676572060E4973436865636B65643D747275650E5472696767 - 6572496E7665727365060F4973436865636B65643D66616C73650000000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D65061A726164696F62 - 7574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000 - 000000000000000007496E7665727365090C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 - 0953746F7056616C756507097846463430343034300754726967676572061049 - 734D6F7573654F7665723D747275650E54726967676572496E76657273650611 - 49734D6F7573654F7665723D66616C736500000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 - 74796C65084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75650709 - 7846463135313531350953746F7056616C756507097846463241383245320754 - 726967676572060E4973436865636B65643D747275650E54726967676572496E - 7665727365060F4973436865636B65643D66616C736500000000055454657874 - 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 - 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 - 000000C805400B53697A652E4865696768740500000000000000A80340145369 - 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 - 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 - 6F757400095374796C654E616D650618756C63656E746572726164696F627574 - 746F6E7374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000005655FB05400B53697A652E4865696768740500000000000000 - A004401453697A652E506C6174666F726D44656661756C74080756697369626C - 65080007544C61796F75740005416C69676E0706426F74746F6D0A506F736974 - 696F6E2E5905000000000000008804400A53697A652E57696474680500000000 - 005655FB05400B53697A652E4865696768740500000000000000C00140145369 - 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 - 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F - 6E74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C65 - 6674000A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000005655FB0540 - 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 3531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 6506216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174 - 696F6E31084475726174696F6E050000000000000000000007496E7665727365 - 090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463230323032300953746F7056616C7565070978464634 - 30343034300754726967676572061049734D6F7573654F7665723D747275650E - 54726967676572496E7665727365061149734D6F7573654F7665723D66616C73 - 6500000A5452656374616E676C6500095374796C654E616D650609636865636B - 6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F - 704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846 - 46324138324532064C6F636B656409074869745465737408074F706163697479 - 05000000000000000000000C4D617267696E732E4C6566740500000000000000 - 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 - 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 - 6F6D050000000000000080FF3F0A53697A652E57696474680500000000005655 - F705400B53697A652E48656967687405000000000000008001401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A - 636865636B6D61726B4F706163697479416E696D6174696F6E31084475726174 - 696F6E05000000000000000000000C50726F70657274794E616D6506074F7061 - 636974790A537461727456616C756505000000000000000000000953746F7056 - 616C7565050000000000000080FF3F0754726967676572060E4973436865636B - 65643D747275650E54726967676572496E7665727365060F4973436865636B65 - 643D66616C7365000000000005545465787400095374796C654E616D65060474 - 65787405416C69676E0706436C69656E74064C6F636B65640907486974546573 - 74080A53697A652E57696474680500000000005655FB05400B53697A652E4865 - 6967687405000000000000008804401453697A652E506C6174666F726D446566 - 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C - 6157686974650000005450463007544C61796F757400095374796C654E616D65 - 0617756C7269676874726164696F627574746F6E7374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000005655FB05400B5369 - 7A652E4865696768740500000000000000A004401453697A652E506C6174666F - 726D44656661756C74080756697369626C65080007544C61796F75740005416C - 69676E0706426F74746F6D0A506F736974696F6E2E5905000000000000008804 - 400A53697A652E57696474680500000000005655FB05400B53697A652E486569 - 6768740500000000000000C001401453697A652E506C6174666F726D44656661 - 756C7408000A5452656374616E676C6500095374796C654E616D65060A626163 - 6B67726F756E6405416C69676E0708436F6E74656E747307436F726E6572730B - 08546F7052696768740B426F74746F6D5269676874000A46696C6C2E436F6C6F - 720709784646323032303230064C6F636B6564090748697454657374080A5369 - 7A652E57696474680500000000005655FB05400B53697A652E48656967687405 - 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F720709784646313531353135000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D6506216261636B67726F756E64 - 556C427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E - 050000000000000000000007496E7665727365090C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646323032 - 3032300953746F7056616C756507097846463430343034300754726967676572 - 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 - 65061149734D6F7573654F7665723D66616C736500000A5452656374616E676C - 6500095374796C654E616D650609636865636B6D61726B05416C69676E070843 - 6F6E74656E747307436F726E6572730B08546F7052696768740B426F74746F6D - 5269676874000A46696C6C2E436F6C6F720709784646324138324532064C6F63 - 6B656409074869745465737408074F7061636974790500000000000000000000 - 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 - 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 - 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 - FF3F0A53697A652E57696474680500000000005655F705400B53697A652E4865 - 6967687405000000000000008001401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 - 6E696D6174696F6E00095374796C654E616D65061A636865636B6D61726B4F70 - 6163697479416E696D6174696F6E31084475726174696F6E0500000000000000 - 0000000C50726F70657274794E616D6506074F7061636974790A537461727456 - 616C756505000000000000000000000953746F7056616C756505000000000000 - 0080FF3F0754726967676572060E4973436865636B65643D747275650E547269 - 67676572496E7665727365060F4973436865636B65643D66616C736500000000 - 0005545465787400095374796C654E616D6506047465787405416C69676E0706 - 436C69656E74064C6F636B6564090748697454657374080A53697A652E576964 - 74680500000000005655FB05400B53697A652E48656967687405000000000000 - 008804401453697A652E506C6174666F726D44656661756C7408165465787453 - 657474696E67732E466F6E74436F6C6F720708636C6157686974650000005450 - 463007544C61796F757400095374796C654E616D650616756C6C656674726164 - 696F627574746F6E7374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000005655FB05400B53697A652E486569676874050000 - 0000000000A004401453697A652E506C6174666F726D44656661756C74080756 - 697369626C65080007544C61796F75740005416C69676E0706426F74746F6D0A - 506F736974696F6E2E5905000000000000008804400A53697A652E5769647468 - 0500000000005655FB05400B53697A652E4865696768740500000000000000C0 - 01401453697A652E506C6174666F726D44656661756C7408000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E747307436F726E6572730B07546F704C6566740A426F74 - 746F6D4C656674000A46696C6C2E436F6C6F720709784646323032303230064C - 6F636B6564090748697454657374080A53697A652E5769647468050000000000 - 5655FB05400B53697A652E4865696768740500000000000000C001401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 09784646313531353135000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F7241 - 6E696D6174696F6E31084475726174696F6E050000000000000000000007496E - 7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097846463230323032300953746F7056616C756507 - 097846463430343034300754726967676572061049734D6F7573654F7665723D - 747275650E54726967676572496E7665727365061149734D6F7573654F766572 - 3D66616C736500000A5452656374616E676C6500095374796C654E616D650609 - 636865636B6D61726B05416C69676E0708436F6E74656E747307436F726E6572 - 730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F - 720709784646324138324532064C6F636B656409074869745465737408074F70 - 616369747905000000000000000000000C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D - 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 - 0000005655F705400B53697A652E486569676874050000000000000080014014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E - 616D65061A636865636B6D61726B4F706163697479416E696D6174696F6E3108 - 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 - 06074F7061636974790A537461727456616C7565050000000000000000000009 - 53746F7056616C7565050000000000000080FF3F0754726967676572060E4973 - 436865636B65643D747275650E54726967676572496E7665727365060F497343 - 6865636B65643D66616C7365000000000005545465787400095374796C654E61 - 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 - 697454657374080A53697A652E57696474680500000000005655FB05400B5369 - 7A652E48656967687405000000000000008804401453697A652E506C6174666F - 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F - 720708636C6157686974650000005450463007544C61796F757400095374796C - 654E616D65061070726F67726573736261727374796C6505416C69676E070643 - 656E7465720A53697A652E576964746805000000000033338505400B53697A65 - 2E4865696768740500000000009999E104401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508000A5452656374616E676C65000953 - 74796C654E616D65060668747261636B05416C69676E0708436F6E74656E7473 - 0A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564090748 - 697454657374080A53697A652E576964746805000000000033338505400B5369 - 7A652E4865696768740500000000009999E104401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 3135000A5452656374616E676C6500095374796C654E616D65060A68696E6469 - 6361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207097846 - 46324138324532064C6F636B6564090748697454657374080C4D617267696E73 - 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 - 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F - 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F736974 - 696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500000000 - 00000080FF3F0A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000009999D904401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A54 - 52656374616E676C6500095374796C654E616D65060676747261636B05416C69 - 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230 - 3230064C6F636B6564090748697454657374080A53697A652E57696474680500 - 0000000033338505400B53697A652E4865696768740500000000009999E10440 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F720709784646313531353135000A5452656374616E676C6500095374796C - 654E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A - 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 - 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D - 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 - 000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A50 - 6F736974696F6E2E5905000000000099998904400A53697A652E576964746805 - 000000000033338105400B53697A652E4865696768740500000000000000A803 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000000005450463007544C61796F757400095374796C65 - 4E616D65060D657870616E6465727374796C6505416C69676E070643656E7465 - 720A53697A652E576964746805000000000000C08407400B53697A652E486569 - 6768740500000000000000C803401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508000A5452656374616E676C6500095374796C65 - 4E616D65060B626772656374616E676C6505416C69676E0708436F6E74656E74 - 730C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978464632 - 4432443244064C6F636B6564090748697454657374080A53697A652E57696474 - 6805000000000000C08407400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F7207097846463135313531350007544C61796F757400095374796C - 654E616D6506074C61796F75743305416C69676E0703546F700A53697A652E57 - 6964746805000000000000C08407400B53697A652E4865696768740500000000 - 000000C803401453697A652E506C6174666F726D44656661756C74080007544C - 61796F757400095374796C654E616D6506074C61796F75743405416C69676E07 - 08436F6E74656E74730A53697A652E576964746805000000000000C08407400B - 53697A652E4865696768740500000000000000C803401453697A652E506C6174 - 666F726D44656661756C7408000A5452656374616E676C6500095374796C654E - 616D65060A52656374616E676C653205416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F720709784646323532353235064C6F636B656409074869 - 7454657374080A53697A652E576964746805000000000000C08407400B53697A - 652E4865696768740500000000000000C803401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 3500000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 - 0709784646313531353135064C6F636B6564090748697454657374080A53697A - 652E576964746805000000000000C08407400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 - 6F6E00095374796C654E616D650614466C6F6174416E696D6174696F6E315374 - 796C65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C - 6174696F6E070843697263756C61720C50726F70657274794E616D6506075363 - 616C652E580A537461727456616C7565050000000000000080FF3F0953746F70 - 56616C756505000000000000000000000754726967676572060F497345787061 - 6E6465643D747275650E54726967676572496E76657273650610497345787061 - 6E6465643D66616C73650000000007544C61796F757400095374796C654E616D - 6506074C61796F75743305416C69676E0708436F6E74656E74730A53697A652E - 576964746805000000000000C08407400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C7408000554 - 5465787400095374796C654E616D6506047465787405416C69676E07044C6566 - 74084175746F53697A65090A436C6970506172656E7409064C6F636B65640907 - 48697454657374080C4D617267696E732E4C6566740500000000000000A00240 - 0A506F736974696F6E2E580500000000000000A002400A53697A652E57696474 - 6805000000000000B8C703400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C740816546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 - 657474696E67732E486F727A416C69676E07074C656164696E670000000F5445 - 7870616E646572427574746F6E00095374796C654E616D650606627574746F6E - 05416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E58 - 0500000000000080F506400A53697A652E57696474680500000000000000A003 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C740800000000005450463007544C61796F757400 - 095374796C654E616D650613657870616E646572627574746F6E7374796C6505 - 416C69676E070643656E7465720B4D617267696E732E546F7005000000000000 - 0080FF3F0A53697A652E57696474680500000000000000B003400B53697A652E - 4865696768740500000000000000B003401453697A652E506C6174666F726D44 - 656661756C74080756697369626C65080005545061746800095374796C654E61 - 6D650605506174683105416C69676E070643656E74657209446174612E506174 - 680A3400000004000000000000000000C8420000C84201000000000096430000 - C842010000000000484300009643030000000000C8420000C8420A46696C6C2E - 436F6C6F720708636C6157686974650748697454657374080D526F746174696F - 6E416E676C650500000000000000B405400A53697A652E576964746805000000 - 00000000A002400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E61 - 6D650614466C6F6174416E696D6174696F6E315374796C65084475726174696F - 6E050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263 - 756C61720C50726F70657274794E616D65060D526F746174696F6E416E676C65 - 0A537461727456616C75650500000000000000B405400953746F7056616C7565 - 05000000000000000000000754726967676572060F4973457870616E6465643D - 747275650E54726967676572496E766572736506104973457870616E6465643D - 66616C7365000000005450463007544C61796F757400095374796C654E616D65 - 0615657870616E646572636865636B626F787374796C6505416C69676E070643 - 656E7465720A53697A652E576964746805000000000000008406400B53697A65 - 2E48656967687405000000000000008404401453697A652E506C6174666F726D - 44656661756C74080756697369626C65080007544C61796F75740005416C6967 - 6E07044C6566740A53697A652E57696474680500000000000000C003400B5369 - 7A652E48656967687405000000000000008404401453697A652E506C6174666F - 726D44656661756C7408000554506174680005416C69676E0706436C69656E74 - 09446174612E506174680AD80100002700000000000000FEC8BA4402E7924402 - 0000002592AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FE - B09E440200000093A4A4446A0C9F44020000004A80AC44FC79AA440200000004 - 6EBA44FC79AA44020000004A00C844FC79AA44020000000080CF44FEB09E4402 - 0000000080CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402 - E7924402000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B8 - 76BF44FE309744020000000277C344EEA09A44020000000277C34404DE9E4402 - 0000000277C344121BA34402000000B876BF44008CA64402000000FE88BA4400 - 8CA644020000004C9BB544008CA64402000000009CB144121BA3440200000000 - 9CB14404DE9E4402000000009CB144EEA09A44020000004C9BB544FE30974402 - 000000FE88BA44FE309744000000000080BA44045E9B4402000000146EB84404 - 5E9B440200000000C0B64454F79C440200000000C0B64400F09E440200000000 - C0B644ACE8A04402000000146EB844FC81A244020000000080BA44FC81A24402 - 000000EC91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400 - F09E44020000000040BE4454F79C4402000000EC91BC44045E9B440200000000 - 80BA44045E9B440A46696C6C2E436F6C6F720709783630303030303030074869 - 7454657374080C4D617267696E732E4C65667405000000000000008000400B4D - 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 - 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 - 00000000008000400A53697A652E57696474680500000000000000A003400B53 - 697A652E4865696768740500000000000000E803401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65085772 - 61704D6F64650703466974000F54436F6C6F72416E696D6174696F6E00084475 - 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709783630303030303030 - 0953746F7056616C75650708636C61426C61636B0754726967676572060E4973 - 436865636B65643D7472756500000F54436F6C6F72416E696D6174696F6E0008 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C75650708636C61426C6163 - 6B0953746F7056616C756507097836303030303030300754726967676572060F - 4973436865636B65643D66616C73650000000005545465787400095374796C65 - 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 - 0748697454657374080C4D617267696E732E4C65667405000000000000008002 - 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 - 2E5269676874050000000000000080FF3F0A53697A652E576964746805000000 - 00000000C605400B53697A652E4865696768740500000000000000F803401453 - 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 - 732E466F6E74436F6C6F72070978464645454545454516546578745365747469 - 6E67732E486F727A416C69676E07074C656164696E670000005450463007544C - 61796F757400095374796C654E616D65060E6C6162656C66696C6C7374796C65 - 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 00C805400B53697A652E4865696768740500000000000000C803401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508000A54526563 - 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646313531 - 3531350A53697A652E57696474680500000000000000C805400B53697A652E48 - 65696768740500000000000000C803401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000055454657874 - 00095374796C654E616D6506047465787405416C69676E0708436F6E74656E74 - 730748697454657374080A53697A652E57696474680500000000000000C80540 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C7408165465787453657474696E67732E466F6E7443 - 6F6C6F720708636C6157686974650000005450463007544C61796F7574000953 - 74796C654E616D650613636F6D626F656469746572726F727374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508000C5442727573684F - 626A65637400095374796C654E616D65060A666F726567726F756E6400000B54 - 466F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E74 - 2E53697A650500000000000000D00240000007544C61796F757400095374796C - 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 - 730A53697A652E57696474680500000000000000C805400B53697A652E486569 - 6768740500000000000000C803401453697A652E506C6174666F726D44656661 - 756C7408000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F72 - 07097846463230323032300748697454657374080A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F720709784646323032303230000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C - 65084475726174696F6E050000000000000000000007496E7665727365090C50 - 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 - 616C756507097846463230323032300953746F7056616C756507097846463430 - 343034300754726967676572062049734D6F7573654F7665723D747275653B49 - 73466F63757365643D66616C73650E54726967676572496E7665727365062149 - 734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C7365 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 - 6F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05000000 - 0000000000000007496E7665727365090C50726F70657274794E616D65060C53 - 74726F6B652E436F6C6F720A537461727456616C756507097846463430343034 - 300953746F7056616C756507097846464532324132410754726967676572061F - 49734D6F7573654F7665723D747275653B4973466F63757365643D747275650E - 54726967676572496E7665727365062049734D6F7573654F7665723D74727565 - 3B4973466F63757365643D66616C7365000007544C61796F757400095374796C - 654E616D6506056172726F7705416C69676E070846697452696768740B4D6172 - 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 - 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 - 00000080FF3F0A506F736974696F6E2E580500000000005ED99705400A506F73 - 6974696F6E2E59050000000000000080FF3F0A53697A652E5769647468050000 - 000000889AB803400B53697A652E4865696768740500000000000000B8034014 - 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C - 6500095374796C654E616D65060A52656374616E676C653105416C69676E0708 - 436F6E74656E74730A46696C6C2E436F6C6F7207097846463330333033300748 - 697454657374080A53697A652E5769647468050000000000889AB803400B5369 - 7A652E4865696768740500000000000000B803401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 - 6E696D6174696F6E315374796C65084475726174696F6E050000000000000000 - 000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463330333033300953746F7056 - 616C756507097846463430343034300754726967676572062049734D6F757365 - 4F7665723D747275653B4973466F63757365643D66616C73650E547269676765 - 72496E7665727365062149734D6F7573654F7665723D66616C73653B4973466F - 63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650614436F6C6F72416E696D6174696F6E325374796C650844 - 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 - 300953746F7056616C756507097846463943313731370754726967676572061F - 4973466F63757365643D747275653B49734D6F7573654F7665723D7472756500 - 000007544C61796F757400095374796C654E616D6506074C61796F7574310541 - 6C69676E070643656E7465720C4D617267696E732E4C65667405000000000000 - 0080FF3F0A53697A652E57696474680500000000000000A002400B53697A652E - 4865696768740500000000000000C001401453697A652E506C6174666F726D44 - 656661756C74080005545061746800095374796C654E616D6506055061746831 - 05416C69676E0706436C69656E7409446174612E506174680A34000000040000 - 00000000000000C8420000C84201000000000096430000C84201000000000048 - 4300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C - 6157686974650748697454657374080A53697A652E5769647468050000000000 - 0000A002400B53697A652E4865696768740500000000000000C001401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E650000000000000C5442727573684F626A65637400095374796C654E61 - 6D65060973656C656374696F6E0B42727573682E436F6C6F7207097839363241 - 38324532000007544C61796F757400095374796C654E616D650607636F6E7465 - 6E7405416C69676E0706436C69656E740C4D617267696E732E4C656674050000 - 00000000008000400B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E52696768740500000000000000F003400E4D617267696E73 - 2E426F74746F6D05000000000000008000400A53697A652E5769647468050000 - 00000000008805400B53697A652E4865696768740500000000000000A8034014 - 53697A652E506C6174666F726D44656661756C74080000005450463007544C61 - 796F757400095374796C654E616D65061E70726F6772657373626172696E6465 - 7465726D696E61626C657374796C6505416C69676E070643656E7465720A5369 - 7A652E5769647468050000000000ABAAB006400B53697A652E48656967687405 - 00000000000000C003401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508000A5452656374616E676C6500095374796C654E616D65 - 060676747261636B05416C69676E0708436F6E74656E747307456E61626C6564 - 080A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 - 48697454657374080A53697A652E57696474680500000000000000E006400B53 - 697A652E48656967687405000000000000009404401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 3531350756697369626C6508000A5452656374616E676C6500095374796C654E - 616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A4669 - 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 - 657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 - 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 - 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 - 00000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73 - 6974696F6E2E590500000000000000F002400A53697A652E5769647468050000 - 0000000000DE06400B53697A652E4865696768740500000000000000A8034014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E6500000007544C61796F757400095374796C654E616D65060668 - 747261636B05416C69676E0708436F6E74656E74730A53697A652E5769647468 - 050000000000ABAAB006400B53697A652E4865696768740500000000000000C0 - 03401453697A652E506C6174666F726D44656661756C7408000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E74730C436C69704368696C6472656E090A46696C6C2E43 - 6F6C6F720709784646324138324532064C6F636B656409074869745465737408 - 0A53697A652E5769647468050000000000ABAAB006400B53697A652E48656967 - 68740500000000000000C003401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F720709784646313531353135000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E - 696D6174696F6E315374796C6507456E61626C656409084475726174696F6E05 - 00000000000000800140044C6F6F70090C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C756507097846463241383245320754726967676572060E4973 - 56697369626C653D7472756500000000005450463007544C61796F7574000953 - 74796C654E616D650611616E69696E64696361746F727374796C6505416C6967 - 6E070643656E7465720756697369626C650800045441726300095374796C654E - 616D65060341726305416C69676E0708436F6E74656E74730748697454657374 - 080D526F746174696F6E416E676C650500000000000000B407400A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F720708636C615768697465105374726F6B652E54686963 - 6B6E657373050000000000000080004008456E64416E676C6505000000000000 - 00B405C0000F54466C6F6174416E696D6174696F6E00095374796C654E616D65 - 0603616E6907456E61626C656409084475726174696F6E050000000000000080 - FF3F044C6F6F70090C50726F70657274794E616D65060D526F746174696F6E41 - 6E676C650A537461727456616C756505000000000000000000000953746F7056 - 616C75650500000000000000B407400754726967676572060E49735669736962 - 6C653D74727565000000005450463007544C61796F757400095374796C654E61 - 6D650615616E69696E64696361746F72686F727A7374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000000040C006400B5369 - 7A652E48656967687405000000000000008000401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508000A5452656374616E676C6500 - 095374796C654E616D65060A52656374616E676C653105416C69676E0706436C - 69656E740C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978 - 46463430343034300A53697A652E57696474680500000000000040C006400B53 - 697A652E48656967687405000000000000008000401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000554 - 4C696E6500095374796C654E616D6506054C696E6531084C696E655479706507 - 06426F74746F6D0A53697A652E57696474680500000000000000A00B400B5369 - 7A652E48656967687405000000000000008000401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464632413832 - 4532105374726F6B652E546869636B6E65737305000000000000008002400B53 - 74726F6B652E44617368070444617368000F54466C6F6174416E696D6174696F - 6E00095374796C654E616D650603616E6907456E61626C656409084475726174 - 696F6E0500000000000000800340044C6F6F70090C50726F70657274794E616D - 65060A506F736974696F6E2E580A537461727456616C75650500000000000000 - C808C00953746F7056616C756505000000000000000000000754726967676572 - 060E497356697369626C653D7472756500000000005450463007544C61796F75 - 7400095374796C654E616D65060A70616E656C7374796C6505416C69676E0706 - 43656E7465720A53697A652E57696474680500000000000000C006400B53697A - 652E4865696768740500000000000000A406401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A65 - 2E57696474680500000000000000C006400B53697A652E486569676874050000 - 0000000000A406401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 - 095374796C654E616D65060E6C6F67627574746F6E7374796C6505416C69676E - 070643656E7465720A53697A652E57696474680500000000000000C005400B53 - 697A652E4865696768740500000000000000C005401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070643 - 6C69656E740C436C69704368696C6472656E090A436C6970506172656E74090A - 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 - 697A652E57696474680500000000000000C005400B53697A652E486569676874 - 0500000000000000C005401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D61 - 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D - 6174696F6E31084475726174696F6E05000000000000000000000C50726F7065 - 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 - 7846463230323032300953746F7056616C756507097846463430343034300754 - 726967676572063049734D6F7573654F7665723D747275653B49735072657373 - 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 - 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 - 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 - 6F6C6F72416E696D6174696F6E32084475726174696F6E050000000000000000 - 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 - 7456616C756507097846463430343034300953746F7056616C75650709784646 - 3137353739430754726967676572062F4973507265737365643D747275653B49 - 734D6F7573654F7665723D747275653B4973466F63757365643D66616C736500 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 - 74746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000 - 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463241383245320953746F7056616C7565 - 07097846463137353739430754726967676572062E4973507265737365643D74 - 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 - 7275650E54726967676572496E7665727365062F4973507265737365643D6661 - 6C73653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 - 727565000005545061746800095374796C654E616D650605506174683105416C - 69676E0706436C69656E7409446174612E506174680A5C020000320000000000 - 00000000A841CDCCCC40010000000000A8410000C041010000000000C03F0000 - C041010000000000C03F00000000010000009A99694100000000010000000000 - A841CDCCCC40030000000000A841CDCCCC400000000000009C410000F0400100 - 0000000058410000F04001000000000058410000C03F01000000000040400000 - C03F01000000000040400000B4410100000000009C410000B441010000000000 - 9C410000F0400300000000009C410000F04000000000000040410000F0400100 - 0000000090400000F04001000000000090400000C04001000000000040410000 - C04001000000000040410000F04003000000000040410000F040000000000000 - 9040000010410100000000009041000010410100000000009041000028410100 - 0000000090400000284101000000000090400000104103000000000090400000 - 1041000000000000904000004041010000000000904100004041010000000000 - 9041000058410100000000009040000058410100000000009040000040410300 - 0000000090400000404100000000000090400000704101000000000090410000 - 7041010000000000904100008441010000000000904000008441010000000000 - 9040000070410300000000009040000070410000000000009040000090410100 - 00000000904100009041010000000000904100009C4101000000000090400000 - 9C41010000000000904000009041030000000000904000009041000000000000 - 70410000C04001000000333393410000C0400100000000007041666626400100 - 0000000070410000C04003000000000070410000C0400A46696C6C2E436F6C6F - 720708636C6157686974650748697454657374080C4D617267696E732E4C6566 - 740500000000000000A002400B4D617267696E732E546F700500000000000000 - A002400D4D617267696E732E52696768740500000000000000A002400E4D6172 - 67696E732E426F74746F6D0500000000000000A002400A53697A652E57696474 - 6805000000000000009805400B53697A652E4865696768740500000000000000 - 9805401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6508577261704D6F6465070346697400000000545046 - 3007544C61796F757400095374796C654E616D65061470726F67726573736261 - 726D696E697374796C6505416C69676E070643656E7465720A53697A652E5769 - 64746805000000000033338505400B53697A652E486569676874050000000000 - 9999E104401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508000A5452656374616E676C6500095374796C654E616D650606687472 - 61636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 - 784646343034303430064C6F636B6564090748697454657374080A53697A652E - 576964746805000000000033338505400B53697A652E48656967687405000000 - 00009999E104401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009537479 - 6C654E616D65060A68696E64696361746F7205416C69676E07044C6566740A46 - 696C6C2E436F6C6F720709784646324138324532064C6F636B65640907486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000009999E104401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452 - 656374616E676C6500095374796C654E616D65060676747261636B05416C6967 - 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430343034 - 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 - 00000033338505400B53697A652E4865696768740500000000009999E1044014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E65000A5452656374616E676C6500095374796C654E616D65060A - 76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F - 6C6F720709784646324138324532064C6F636B6564090748697454657374080A - 506F736974696F6E2E5905000000000099998D04400A53697A652E5769647468 - 05000000000033338505400B53697A652E4865696768740500000000000000A8 - 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000000005450463007544C61796F757400095374796C - 654E616D65061B7472656576696577657870616E646572627574746F6E737479 - 6C6505416C69676E070643656E7465720B4D617267696E732E546F7005000000 - 0000000080FF3F0A53697A652E57696474680500000000000000B003400B5369 - 7A652E4865696768740500000000000000B003401453697A652E506C6174666F - 726D44656661756C74080756697369626C65080005545061746800095374796C - 654E616D650605506174683105416C69676E070643656E74657209446174612E - 506174680A3400000004000000000000000000C8420000C84201000000000096 - 430000C842010000000000484300009643030000000000C8420000C8420A4669 - 6C6C2E436F6C6F720708636C6157686974650748697454657374080D526F7461 - 74696F6E416E676C650500000000000000B405C00A53697A652E576964746805 - 00000000000000A002400B53697A652E4865696768740500000000000000C001 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C - 654E616D650614466C6F6174416E696D6174696F6E315374796C650844757261 - 74696F6E05000000000000000000000D496E746572706F6C6174696F6E070843 - 697263756C61720C50726F70657274794E616D65060D526F746174696F6E416E - 676C650A537461727456616C75650500000000000000B405C00953746F705661 - 6C756505000000000000000000000754726967676572060F4973457870616E64 - 65643D747275650E54726967676572496E766572736506104973457870616E64 - 65643D66616C736500000000545046300A5452656374616E676C650009537479 - 6C654E616D65061174726565766965776974656D7374796C6505416C69676E07 - 0643656E7465720946696C6C2E4B696E6407044E6F6E65074869745465737408 - 0553696465730B06426F74746F6D000A53697A652E5769647468050000000000 - 0000AE05400B53697A652E4865696768740500000000000000A004401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 097846463135313531350756697369626C6508000C545370656564427574746F - 6E00095374796C654E616D650606627574746F6E05416C69676E07044C656674 - 0A53697A652E57696474680500000000000000A003400B53697A652E48656967 - 68740500000000000000A004401453697A652E506C6174666F726D4465666175 - 6C74080B5374796C654C6F6F6B7570061B7472656576696577657870616E6465 - 72627574746F6E7374796C65000007544C61796F75740005416C69676E070843 - 6F6E74656E74730C4D617267696E732E4C6566740500000000000000A003400A - 53697A652E576964746805000000000000008605400B53697A652E4865696768 - 740500000000000000A004401453697A652E506C6174666F726D44656661756C - 7408000954436865636B426F7800095374796C654E616D650605636865636B05 - 416C69676E07044C6566740843616E466F637573081244697361626C65466F63 - 7573456666656374090A53697A652E57696474680500000000000000A003400B - 53697A652E4865696768740500000000000000A004401453697A652E506C6174 - 666F726D44656661756C740800000654476C79706800095374796C654E616D65 - 060A676C7970687374796C650C4D617267696E732E4C65667405000000000000 - 008000400B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D050000000000000080FF3F05416C69676E07044C6566740A506F736974 - 696F6E2E580500000000000000B003400A506F736974696F6E2E590500000000 - 00000080FF3F0A53697A652E576964746805000000000000008003400B53697A - 652E48656967687405000000000000009804401453697A652E506C6174666F72 - 6D44656661756C7408000005545465787400095374796C654E616D6506047465 - 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 - 080A53697A652E57696474680500000000000000BC04400B53697A652E486569 - 6768740500000000000000A004401453697A652E506C6174666F726D44656661 - 756C74080454657874060454657874165465787453657474696E67732E466F6E - 74436F6C6F720708636C615768697465155465787453657474696E67732E576F - 72645772617008165465787453657474696E67732E486F727A416C69676E0707 - 4C656164696E670000000A5452656374616E676C650005416C69676E07074669 - 744C6566740946696C6C2E4B696E6407044E6F6E650748697454657374080E4D - 617267696E732E426F74746F6D050000000000000080FF3F0553696465730B04 - 4C656674000A53697A652E5769647468050000000000986F8905400B53697A65 - 2E48656967687405000000000000009C04401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646324138324532 - 105374726F6B652E546869636B6E657373050000000000000080004000000054 - 50463007544C61796F757400095374796C654E616D65060D7472656576696577 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000E106400B53697A652E4865696768740500000000000080810740 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 - 0C5442727573684F626A65637400095374796C654E616D650618416C7465726E - 6174696E67526F774261636B67726F756E640B42727573682E436F6C6F720709 - 78304646464646464600000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 - 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 - 657374080C50616464696E672E4C656674050000000000000080FF3F0D506164 - 64696E672E5269676874050000000000000080FF3F0A53697A652E5769647468 - 0500000000000000E106400B53697A652E486569676874050000000000008081 - 07401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F7207097846463135313531350007544C61796F757400095374796C65 - 4E616D650607636F6E74656E7405416C69676E0706436C69656E740C436C6970 - 4368696C6472656E090B4D617267696E732E546F70050000000000000080FF3F - 0A53697A652E57696474680500000000000000CD06400B53697A652E48656967 - 68740500000000000000F006401453697A652E506C6174666F726D4465666175 - 6C7408000A5452656374616E676C6500095374796C654E616D65060973656C65 - 6374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454 - 657374080A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54526563 - 74616E676C6500095374796C654E616D650610666F637573656473656C656374 - 696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974546573 - 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B652E44 - 6173680703446F740000000A545363726F6C6C42617200095374796C654E616D - 65060A767363726F6C6C62617205416C69676E070552696768740B536D616C6C - 4368616E676505000000000000000000000B4F7269656E746174696F6E070856 - 6572746963616C0C4D617267696E732E4C65667405000000000000008000400A - 506F736974696F6E2E580500000000000000D006400A53697A652E5769647468 - 05000000000000008003400B53697A652E4865696768740500000000000000F1 - 06401453697A652E506C6174666F726D44656661756C740800000A545363726F - 6C6C42617200095374796C654E616D65060A687363726F6C6C62617205416C69 - 676E0706426F74746F6D0B536D616C6C4368616E676505000000000000000000 - 000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E - 732E546F7005000000000000008000400A506F736974696F6E2E580500000000 - 00000080FF3F0A506F736974696F6E2E590500000000000000F306400A53697A - 652E57696474680500000000000000DF06400B53697A652E4865696768740500 - 0000000000008003401453697A652E506C6174666F726D44656661756C740800 - 000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F7673 - 6D616C6C7363726F6C6C62617205416C69676E070552696768740B536D616C6C - 4368616E676505000000000000000000000B4F7269656E746174696F6E070856 - 6572746963616C0C4D617267696E732E4C65667405000000000000008000400A - 506F736974696F6E2E580500000000000000C605400A506F736974696F6E2E59 - 05000000000000008000400A53697A652E576964746805000000000000008002 - 400B53697A652E48656967687405000000000000008002401453697A652E506C - 6174666F726D44656661756C74080756697369626C650800000F54536D616C6C - 5363726F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F - 6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505 - 000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74 - 616C0B4D617267696E732E546F7005000000000000008000400A506F73697469 - 6F6E2E5805000000000000008000400A506F736974696F6E2E59050000000000 - 0000E205400A53697A652E576964746805000000000000009606400B53697A65 - 2E48656967687405000000000000008002401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508000000005450463007544C61796F75 - 7400095374796C654E616D650619616374696F6E746F6F6C627574746F6E6D75 - 6C74697669657705416C69676E070643656E7465720A53697A652E5769647468 - 0500000000000000C805400B53697A652E4865696768740500000000000000C8 - 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08085461624F72646572027C0B46697865644865696768740232000654476C79 - 706800095374796C654E616D65060A676C7970687374796C650C4D617267696E - 732E4C65667405000000000000009002400B4D617267696E732E546F70050000 - 00000000009002400E4D617267696E732E426F74746F6D050000000000000090 - 024005416C69676E07044C6566740A506F736974696F6E2E5805000000000000 - 009002400A506F736974696F6E2E5905000000000000009002400A53697A652E - 576964746805000000000000008004400B53697A652E48656967687405000000 - 000000008004401453697A652E506C6174666F726D44656661756C740800000A - 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E0706436C69656E740C436C69704368696C6472656E090A436C - 6970506172656E74090A46696C6C2E436F6C6F72070978464632303230323007 - 48697454657374080C4D617267696E732E4C6566740500000000000000C804C0 - 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 - 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E - 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646343034303430 - 0754726967676572063049734D6F7573654F7665723D747275653B4973507265 - 737365643D66616C73653B4973466F63757365643D66616C73650E5472696767 - 6572496E7665727365063149734D6F7573654F7665723D66616C73653B497350 - 7265737365643D66616C73653B4973466F63757365643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F - 6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463241383245320953746F7056616C7565070978 - 46463137353739430754726967676572062E4973507265737365643D74727565 - 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 - 0E54726967676572496E7665727365062F4973507265737365643D66616C7365 - 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 - 00000005545465787400095374796C654E616D6506047465787405416C69676E - 0706436C69656E740748697454657374080A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000C804401453 - 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 - 732E466F6E74436F6C6F720708636C615768697465000007544C61796F757400 - 095374796C654E616D6506074C61796F75743205416C69676E07044C6566740A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080005545061746800095374796C654E616D65060469636F6E05416C69676E - 070643656E74657209446174612E506174680A18010000170000000000000000 - 00C03F0000C03F01000000000000000000000001000000000040400000000001 - 0000000000C03F0000C03F030000000000C03F0000C03F000000000000904000 - 0000000100000000004041000000000100000000004041CDCC4C3F0100000000 - 009040CDCC4C3F01000000000090400000000003000000000090400000000000 - 0000000000904033337340010000000000904000004040010000000000404100 - 0040400100000000004041333373400100000000009040333373400300000000 - 0090403333734000000000000090409A99D94001000000000090400000C04001 - 000000000040410000C04001000000000040419A99D94001000000000090409A - 99D94003000000000090409A99D9400A46696C6C2E436F6C6F720708636C6157 - 686974650748697454657374080A53697A652E57696474680500000000000000 - D003400B53697A652E4865696768740500000000000000E003401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E6508577261704D6F64650703466974000000005450463007544C61796F7574 - 00095374796C654E616D65060E616464627574746F6E7374796C6505416C6967 - 6E070643656E7465720A53697A652E57696474680500000000000000C805400B - 53697A652E4865696768740500000000000000C003401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F72646572027E - 0B46697865644865696768740218000654476C79706800095374796C654E616D - 65060A676C7970687374796C650C4D617267696E732E4C656674050000000000 - 00009002400B4D617267696E732E546F7005000000000000009002400E4D6172 - 67696E732E426F74746F6D050000000000000090024005416C69676E07044C65 - 66740A506F736974696F6E2E5805000000000000009002400A506F736974696F - 6E2E5905000000000000009002400A53697A652E576964746805000000000000 - 008004400B53697A652E48656967687405000000000000008004401453697A65 - 2E506C6174666F726D44656661756C740800000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69 - 656E740C436C69704368696C6472656E090A436C6970506172656E74090A4669 - 6C6C2E436F6C6F7207097846463230323032300748697454657374080C4D6172 - 67696E732E4C6566740500000000000000C003C00A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000C003 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646343034303430075472696767657206304973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73653B49 - 73466F63757365643D66616C73650E54726967676572496E7665727365063149 - 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 - 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E33084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463241383245320953746F7056616C7565070978464631373537394307547269 - 67676572062E4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D747275650E54726967676572496E7665 - 727365062F4973507265737365643D66616C73653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D74727565000000055454657874000953 - 74796C654E616D6506047465787405416C69676E0706436C69656E7407486974 - 54657374080A53697A652E576964746805000000000000009805400B53697A65 - 2E4865696768740500000000000000C003401453697A652E506C6174666F726D - 44656661756C74080454657874060454657874165465787453657474696E6773 - 2E466F6E74436F6C6F720708636C615768697465000007544C61796F75740009 - 5374796C654E616D6506074C61796F75743205416C69676E07044C6566740A53 - 697A652E57696474680500000000000000C003400B53697A652E486569676874 - 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 - 080005545061746800095374796C654E616D65060469636F6E05416C69676E07 - 08436F6E74656E747309446174612E506174680AAC0000000E00000000000000 - CDCC34410000C040010000000000C0400000C040010000000000C040CDCC3441 - 010000009A99A940CDCC3441010000009A99A9400000C0400100000000000000 - 0000C04001000000000000009A99A940010000009A99A9409A99A94001000000 - 9A99A94000000000010000000000C04000000000010000000000C0409A99A940 - 01000000CDCC34419A99A94001000000CDCC34410000C04003000000CDCC3441 - 0000C0400A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080C4D617267696E732E4C65667405000000000000008001400B4D61726769 - 6E732E546F7005000000000000008001400D4D617267696E732E526967687405 - 000000000000008001400E4D617267696E732E426F74746F6D05000000000000 - 008001400A53697A652E576964746805000000000000008003400B53697A652E - 48656967687405000000000000008003401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F - 64650703466974000000005450463007544C61796F757400095374796C654E61 - 6D650617696E666F746F6F6C627574746F6E6D756C74697669657705416C6967 - 6E070643656E7465720A53697A652E57696474680500000000000000C805400B - 53697A652E4865696768740500000000000000C804401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F72646572027B - 0B46697865644865696768740232000654476C79706800095374796C654E616D - 65060A676C7970687374796C650C4D617267696E732E4C656674050000000000 - 00009002400B4D617267696E732E546F7005000000000000009002400E4D6172 - 67696E732E426F74746F6D050000000000000090024005416C69676E07044C65 - 66740A506F736974696F6E2E5805000000000000009002400A506F736974696F - 6E2E5905000000000000009002400A53697A652E576964746805000000000000 - 008004400B53697A652E48656967687405000000000000008004401453697A65 - 2E506C6174666F726D44656661756C740800000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69 - 656E740C436C69704368696C6472656E090A436C6970506172656E74090A4669 - 6C6C2E436F6C6F7207097846463230323032300748697454657374080C4D6172 - 67696E732E4C6566740500000000000000C804C00A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000C804 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646343034303430075472696767657206304973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73653B49 - 73466F63757365643D66616C73650E54726967676572496E7665727365063149 - 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 - 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E33084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463241383245320953746F7056616C7565070978464631373537394307547269 - 67676572062E4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D747275650E54726967676572496E7665 - 727365062F4973507265737365643D66616C73653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D74727565000000055454657874000953 - 74796C654E616D6506047465787405416C69676E0706436C69656E7407486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080454657874060454657874165465787453657474696E6773 - 2E466F6E74436F6C6F720708636C615768697465000007544C61796F75740009 - 5374796C654E616D6506074C61796F75743205416C69676E07044C6566740A53 - 697A652E57696474680500000000000000C804400B53697A652E486569676874 - 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 - 080005545061746800095374796C654E616D65060469636F6E05416C69676E07 - 0643656E74657209446174612E506174680A84070000A0000000000000009A99 - 87429A99074302000000010076429A9907430200000001005E42CDCC06430200 - 0000343347423433054302000000010030429A9903430200000067661A42CE4C - 01430200000067660642CECCFC4202000000CECCE4410100F742020000000100 - C041CECCEF420200000034339F419B99E74202000000CECC7C416866DF420200 - 0000353343413533D64202000000CECC14413533CC42020000009A99C9400000 - C24202000000000080403333B742020000009A991940CDCCAB4202000000CDCC - 4C3F3333A04202000000000000003333944202000000000000009A9987420200 - 0000000000000100764202000000CDCC4C3F01005E42020000009A991940CECC - 4642020000000000804000003042020000009A99C94066661A42020000003333 - 134166660642020000009A994141CCCCE4410200000033337B41FFFFBF410200 - 000066669E4132339F41020000003333BF41CACC7C41020000000000E4413133 - 43410200000000000642CACC14410200000066661A429A99C940020000000000 - 30420000804002000000333347429A9919400200000000005E42CDCC4C3F0200 - 00006666764200000000020000009A9987420000000002000000343394420000 - 0000020000003433A042CDCC4C3F02000000CDCCAB429A991940020000003333 - B74200008040020000000000C2429A99C940020000003333CC42333313410200 - 00003333D6429A994141020000006666DF4233337B41020000009999E7426666 - 9E4102000000CCCCEF423333BF4102000000FFFFF6420000E44102000000CCCC - FC420000064202000000CC4C014300001A4202000000999903439A992F420200 - 000033330543CDCC464202000000CDCC064300005E4202000000999907430000 - 764202000000999907439A99874202000000999907433433944202000000CCCC - 06433433A0420200000033330543CDCCAB4202000000999903436766B7420200 - 0000CD4C01433333C24202000000CCCCFC423433CC4202000000FFFFF6423433 - D64202000000CCCCEF426766DF42020000009999E7429A99E742020000006666 - DF42CDCCEF42020000003333D6420000F742020000003333CC42CDCCFC420200 - 00003333C242CD4C0143020000006666B7429A99034302000000CCCCAB423333 - 0543020000003333A042CDCC064302000000333394429A990743020000009A99 - 87429A990743030000009A9987429A990743000000009A998742000010410200 - 00009A9979420000104102000000CECC644233331B4102000000CECC50429A99 - 314102000000CECC3C42000048410200000001002A420000684102000000CECC - 184200008841020000003433074200009C41020000003633EF41CDCCB4410200 - 00006966D2419A99D141020000009C99B5416766EE41020000009C999D41CDCC - 064202000000D0CC88416666184202000000A099694100002A4202000000A099 - 494166663C42020000003A333341CCCC50420200000033331B41333365420200 - 00000000104100007A4202000000000010419A99874202000000000010413433 - 92420200000033331B41CDCC9C42020000009A993141CDCCA642020000000000 - 4841CDCCB04202000000000068413333BA4202000000000088410000C3420200 - 000000009C41CDCCCB4202000000CDCCB4419A99D342020000009A99D141CDCC - DA42020000006766EE410000E24202000000CDCC06420000E842020000006666 - 18423333ED420200000000002A423333F2420200000066663C423333F6420200 - 0000666650420000F9420200000066666442CDCCFB4202000000333379423333 - FD4202000000666687423333FD4202000000333392423333FD42020000009999 - 9C42CDCCFB42020000009999A6420000F942020000009999B0423333F6420200 - 0000FFFFB9423333F24202000000CCCCC2423333ED42020000009999CB423333 - E842020000006666D3420000E242020000009999DA42CDCCDA4202000000CCCC - E1429A99D34202000000CCCCE742CDCCCB4202000000FFFFEC420000C3420200 - 0000FFFFF1423333BA4202000000FFFFF5420000B14202000000CCCCF8420000 - A742020000009999FB4200009D4202000000FFFFFC429A99924202000000FFFF - FC42CDCC874202000000FFFFFC4200007A42020000009999FB42343365420200 - 0000CCCCF8423433514202000000FFFFF54234333D4202000000FFFFF1426766 - 2A4202000000FFFFEC42CECC184202000000FFFFE7423433074202000000CCCC - E1423633EF41020000009999DA426966D241020000006666D3429C99B5410200 - 00009999CB429C999D4102000000CCCCC242D0CC884102000000FFFFB942A099 - 694102000000CCCCB042A0994941020000009999A6423A33334102000000CDCC - 9C4233331B41020000006666924200001041020000009A998742000010410300 - 00009A998742000010410000000033337D42CDCC1042010000009A999042CDCC - 1042010000009A999042CDCC34420100000034337D42CDCC3442010000003433 - 7D42CDCC10420300000033337D42CDCC10420000000033337D42333359420100 - 00009A99904233335942010000009A9990420000C7420100000034337D420000 - C7420100000034337D42333359420300000033337D42333359420A46696C6C2E - 436F6C6F720708636C6157686974650748697454657374080A53697A652E5769 - 6474680500000000000000D003400B53697A652E486569676874050000000000 - 0000E003401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6508577261704D6F646507034669740000000054 - 50463007544C61796F757400095374796C654E616D65061B6F7267616E697A65 - 746F6F6C627574746F6E6D756C74697669657705416C69676E070643656E7465 - 720A53697A652E57696474680500000000000000C805400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508085461624F7264657202790B46697865644865 - 696768740232000654476C79706800095374796C654E616D65060A676C797068 - 7374796C650C4D617267696E732E4C65667405000000000000009002400B4D61 - 7267696E732E546F7005000000000000009002400E4D617267696E732E426F74 - 746F6D050000000000000090024005416C69676E07044C6566740A506F736974 - 696F6E2E5805000000000000009002400A506F736974696F6E2E590500000000 - 0000009002400A53697A652E576964746805000000000000008004400B53697A - 652E48656967687405000000000000008004401453697A652E506C6174666F72 - 6D44656661756C740800000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C6970 - 4368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72 - 07097846463230323032300748697454657374080C4D617267696E732E4C6566 - 740500000000000000C804C00A53697A652E57696474680500000000000000C8 - 05400B53697A652E4865696768740500000000000000C804401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562 - 7574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000 - 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463230323032300953746F7056616C75 - 6507097846463430343034300754726967676572063049734D6F7573654F7665 - 723D747275653B4973507265737365643D66616C73653B4973466F6375736564 - 3D66616C73650E54726967676572496E7665727365063149734D6F7573654F76 - 65723D66616C73653B4973507265737365643D66616C73653B4973466F637573 - 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3308447572 - 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632413832453209 - 53746F7056616C756507097846463137353739430754726967676572062E4973 - 507265737365643D747275653B49734D6F7573654F7665723D747275653B4973 - 466F63757365643D747275650E54726967676572496E7665727365062F497350 - 7265737365643D66616C73653B49734D6F7573654F7665723D747275653B4973 - 466F63757365643D7472756500000005545465787400095374796C654E616D65 - 06047465787405416C69676E0706436C69656E740748697454657374080A5369 - 7A652E57696474680500000000000000C804400B53697A652E48656967687405 - 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 65000007544C61796F757400095374796C654E616D6506074C61796F75743205 - 416C69676E07044C6566740A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C74080005545061746800095374796C654E616D65 - 060469636F6E05416C69676E070643656E74657209446174612E506174680AD0 - 00000011000000000000009A99E9409A99C940010000006666664066661E4101 - 000000000000009A99C940010000000000003F9A99B94001000000CDCC4C409A - 99094101000000CDCC4C40000000000100000000008040000000000100000000 - 00804000000841010000006666D6406666B640010000009A99E9409A99C94003 - 0000009A99E9409A99C940000000009A99993E00004041010000009A99993E33 - 333341010000000000E04033333341010000000000E04000004041010000009A - 99993E00004041030000009A99993E000040410A46696C6C2E436F6C6F720708 - 636C6157686974650748697454657374080A53697A652E576964746805000000 - 00000000D003400B53697A652E4865696768740500000000000000E003401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6508577261704D6F64650703466974000000005450463007544C61 - 796F757400095374796C654E616D65061B73657474696E6773746F6F6C627574 - 746F6E6D756C74697669657705416C69676E070643656E7465720A53697A652E - 57696474680500000000000000C805400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F72646572027A0B4669786564486569676874023200 - 0654476C79706800095374796C654E616D65060A676C7970687374796C650C4D - 617267696E732E4C65667405000000000000009002400B4D617267696E732E54 - 6F7005000000000000009002400E4D617267696E732E426F74746F6D05000000 - 0000000090024005416C69676E07044C6566740A506F736974696F6E2E580500 - 0000000000009002400A506F736974696F6E2E5905000000000000009002400A - 53697A652E576964746805000000000000008004400B53697A652E4865696768 - 7405000000000000008004401453697A652E506C6174666F726D44656661756C - 740800000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0706436C69656E740C436C69704368696C647265 - 6E090A436C6970506172656E74090A46696C6C2E436F6C6F7207097846463230 - 323032300748697454657374080C4D617267696E732E4C656674050000000000 - 0000C804C00A53697A652E57696474680500000000000000C805400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F - 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 - 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463230323032300953746F7056616C7565070978464634 - 30343034300754726967676572063049734D6F7573654F7665723D747275653B - 4973507265737365643D66616C73653B4973466F63757365643D66616C73650E - 54726967676572496E7665727365063149734D6F7573654F7665723D66616C73 - 653B4973507265737365643D66616C73653B4973466F63757365643D66616C73 - 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 - 627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C756507097846463241383245320953746F7056616C - 756507097846463137353739430754726967676572062E497350726573736564 - 3D747275653B49734D6F7573654F7665723D747275653B4973466F6375736564 - 3D747275650E54726967676572496E7665727365062F4973507265737365643D - 66616C73653B49734D6F7573654F7665723D747275653B4973466F6375736564 - 3D7472756500000005545465787400095374796C654E616D6506047465787405 - 416C69676E0706436C69656E740748697454657374080A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000000000 - C804401453697A652E506C6174666F726D44656661756C740804546578740604 - 54657874165465787453657474696E67732E466F6E74436F6C6F720708636C61 - 5768697465000007544C61796F757400095374796C654E616D6506074C61796F - 75743205416C69676E07044C6566740A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C804401453697A - 652E506C6174666F726D44656661756C74080005545061746800095374796C65 - 4E616D65060469636F6E05416C69676E070643656E74657209446174612E5061 - 74680A540D00001C01000000000000333351423333E7410200000033335142CD - CCE84102000000333351426666EA4102000000333351423333EB410200000033 - 335142CDCCEC4102000000333351426666EE4102000000333351423333EF4102 - 00000033335142CDCCF04102000000333351426666F241020000003333514233 - 33F3410200000033335142CDCCF44102000000333351426666F6410200000033 - 3351423333F7410100000099996F4266660E4201000000CDCC5C4200003C4201 - 00000000003A4200003442020000000000384200003642020000000000364200 - 003842020000000000344200003A420100000000003C42CDCC5C4201000000CD - CC0E429A996F42010000000000F84133335142020000006666F6413333514202 - 000000CDCCF44133335142020000000000F44133335142020000006666F24133 - 33514202000000CDCCF04133335142020000000000F041333351420200000066 - 66EE413333514202000000CDCCEC4133335142020000000000EC413333514202 - 0000006666EA413333514202000000CDCCE84133335142020000000000E84133 - 335142010000006666C24199996F4201000000FFFF4F41CCCC5C4201000000FF - FF6F41FFFF394202000000FFFF6741FFFF374202000000FFFF5F41FFFF354202 - 000000FFFF5741FFFF33420100000098999940FFFF3B420100000000000000CD - CC0E42010000003333F3400000F841020000003333F3406666F6410200000033 - 33F340CDCCF441020000003333F3400000F441020000003333F3406666F24102 - 0000003333F340CDCCF041020000003333F3400000F041020000003333F34066 - 66EE41020000003333F340CDCCEC41020000003333F3400000EC410200000033 - 33F3406666EA41020000003333F340CDCCE841020000003333F3400000E84101 - 00000000000000CDCCC0410100000066669640CDCC4C410100000066665641CD - CC6C410200000066665E41CDCC64410200000066666641CDCC5C410200000066 - 666E41CDCC54410100000066664E413433934001000000CDCCC0410000000001 - 0000006666E6413333F340020000000000E8413333F340020000009999E94133 - 33F340020000006666EA413333F340020000000000EC413333F3400200000099 - 99ED413333F340020000006666EE413333F340020000000000F0413333F34002 - 0000009999F1413333F340020000006666F2413333F340020000000000F44133 - 33F340020000009999F5413333F340020000006666F6413333F34001000000CD - CC0E42000000000100000000003C426666964001000000000034426666564102 - 0000000000364266665E410200000000003842666666410200000000003A4266 - 666E4101000000CDCC5C4266664E41010000009A996F429A99C1410100000033 - 3351423333E74103000000333351423333E7410000000033334342CDCC024202 - 00000033334342CDCC004202000000999943426766FE41020000009999434267 - 66FA4102000000999943426766F64102000000FFFF43423433F34102000000FF - FF43423433EF4102000000FFFF43423433EB4102000000FFFF43420100E84102 - 000000999943420100E44102000000999943420100E0410200000033334342CE - CCDC410200000033334342CECCD84101000000CDCC5E426866B64101000000CD - CC54429B99854101000000CDCC3442CECC9441020000006766324234338F4102 - 000000000030429B9989410200000033332D42010084410200000066662A42CE - CC7C4102000000000028423533734102000000CDCC24429C9969410100000067 - 662C423833D34001000000010014423833834001000000676602420200304102 - 0000006766004202003041020000009B99FD4168662E41020000009B99F94168 - 662E41020000009B99F54168662E41020000006866F241CECC2C410200000068 - 66EE41CECC2C41020000006866EA41CECC2C41020000003533E741CECC2C4102 - 0000003533E34168662E41020000003533DF4168662E41020000000200DC4102 - 003041020000000200D84102003041010000009C99B5413733834001000000CF - CC84413733D34001000000020094419C9969410200000068668E413633734102 - 000000CFCC8841CFCC7C410200000035338341010084410200000036337B419A - 998941020000009D99714167668E410200000004006841CECC94410100000008 - 00D0409B99854101000000080080406866B641010000006A662E419B99D94102 - 0000006A662E419B99DD4102000000D0CC2C41CECCE04102000000D0CC2C41CE - CCE44102000000D0CC2C41CECCE8410200000036332B410100EC410200000036 - 332B410100F0410200000036332B410100F4410200000036332B413433F74102 - 000000D0CC2C413433FB4102000000D0CC2C413433FF41020000006A662E4134 - 330142020000006A662E41343303420100000007008040676614420100000007 - 00D040CDCC2C42010000000400684133332542020000009E9971410000284202 - 00000037337B41CDCC2A42020000003533834199992D4202000000CECC884165 - 663042020000009B998D41CCCC324202000000020094413333354201000000CF - CC844133335542010000009C99B54133335F4201000000CFCCD8419999434202 - 000000CFCCDC4199994342020000000200E041FFFF4342020000000200E441FF - FF4342020000000200E841FFFF4342020000003533EB41656644420200000035 - 33EF4165664442020000003533F34165664442020000006866F6416566444202 - 0000006866FA41FFFF4342020000006866FE41FFFF434202000000CECC004299 - 99434202000000CECC024299994342010000000100144233335F420100000067 - 662C423333554201000000CDCC244233333542020000009A992742CDCC324202 - 00000067662A42666630420200000033332D4299992D4202000000FFFF2F42CC - CC2A4202000000666632426666284202000000CDCC34423333254201000000CD - CC5442CDCC2C4201000000CDCC5E42676614420100000033334342CDCC024203 - 00000033334342CDCC0242000000003333EF4133339741020000003333FB4133 - 339741020000009A9903429999994102000000CDCC084266669E410200000000 - 000E423333A34102000000CDCC12429999A94102000000CDCC16429999B14102 - 000000CDCC1A429999B9410200000000001E423333C341020000006766204299 - 99CD4102000000CDCC2242FFFFD7410200000001002442FFFFE3410200000001 - 0024420000F04102000000010024420100FC4102000000CECC22420000044202 - 00000067662042333309420200000001001E4266660E4202000000CDCC1A4233 - 33134202000000CDCC16423333174202000000CDCC124233331B420200000000 - 000E4266661E4202000000CDCC0842CDCC2042020000009A9903423333234202 - 0000003433FB4167662442020000003433EF4167662442020000003433E34167 - 662442020000003433D7413433234202000000CECCCC41CDCC20420200000068 - 66C24167661E4202000000CECCB84133331B4202000000CECCB0413333174202 - 000000CECCA84133331342020000006866A24166660E42020000009B999D4133 - 33094202000000CECC98410000044202000000686696410000FC410200000068 - 6696410000F04102000000686696410000E44102000000CECC98410000D84102 - 0000009B999D419A99CD41020000006866A2413433C34102000000CECCA8419A - 99B94102000000CECCB0419A99B14102000000CECCB8419A99A9410200000068 - 66C2413433A34102000000CECCCC4167669E41020000000000D8419A99994102 - 0000003333E34133339741020000003333EF4133339741030000003333EF4133 - 339741000000003333EF41CDCC1642020000000000F841CDCC16420200000000 - 00004200001642020000009A990342676614420200000034330742CDCC124202 - 000000CDCC0A4267661042020000009A990D429A990D420200000067661042CD - CC0A4202000000CDCC12429A99074202000000676614429A9903420200000001 - 0016420000004202000000CDCC16423433F74102000000CDCC16423433EF4102 - 000000CDCC16426766E64102000000000016426766DE41020000006766144234 - 33D74102000000CDCC12420100D0410200000067661042CECCC841020000009A - 990D423433C34102000000CDCC0A429A99BD41020000009A990742CECCB84102 - 0000009A9903429A99B54102000000000000426766B241020000003433F741CD - CCB041020000003433EF41CDCCB041020000006766E641CDCCB0410200000067 - 66DE416766B241020000003433D7419A99B541020000000100D041CDCCB84102 - 000000CECCC8419A99BD41020000003433C3413433C341020000009A99BD41CE - CCC84102000000CECCB8413433CF41020000009A99B5413433D7410200000067 - 66B2416766DE4102000000CDCCB0413433E74102000000CDCCB0413433EF4102 - 000000CDCCB0410100F841020000006766B24100000042020000009A99B5419A - 99034202000000CDCCB84134330742020000009A99BD41CDCC0A420200000034 - 33C3419A990D4202000000CECCC84167661042020000003433CF41CDCC124202 - 0000003433D74167661442020000003333DF4100001642020000003333E741CD - CC1642020000003333EF41CDCC1642030000003333EF41CDCC16420A46696C6C - 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 - 696474680500000000000000D003400B53697A652E4865696768740500000000 - 000000E003401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400000000 - 5450463007544C61796F757400095374796C654E616D65061172656D6F766562 - 7574746F6E7374796C6505416C69676E070643656E7465720A53697A652E5769 - 6474680500000000000000C805400B53697A652E486569676874050000000000 - 0000C003401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F72646572027D0B46697865644865696768740218000654 - 476C79706800095374796C654E616D65060A676C7970687374796C650C4D6172 - 67696E732E4C65667405000000000000009002400B4D617267696E732E546F70 - 05000000000000009002400E4D617267696E732E426F74746F6D050000000000 - 000090024005416C69676E07044C6566740A506F736974696F6E2E5805000000 - 000000008404400A506F736974696F6E2E5905000000000000009002400A5369 - 7A652E576964746805000000000000008004400B53697A652E48656967687405 - 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 - 00000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 - 6F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E09 - 0A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632303230 - 32300748697454657374080C4D617267696E732E4C6566740500000000000000 - C003C00A53697A652E57696474680500000000000000C805400B53697A652E48 - 65696768740500000000000000C003401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F - 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C - 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463230323032300953746F7056616C75650709784646343034 - 3034300754726967676572063049734D6F7573654F7665723D747275653B4973 - 507265737365643D66616C73653B4973466F63757365643D66616C73650E5472 - 6967676572496E7665727365063149734D6F7573654F7665723D66616C73653B - 4973507265737365643D66616C73653B4973466F63757365643D66616C736500 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 - 74746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000 - 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463241383245320953746F7056616C7565 - 07097846463137353739430754726967676572062E4973507265737365643D74 - 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 - 7275650E54726967676572496E7665727365062F4973507265737365643D6661 - 6C73653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 - 72756500000005545465787400095374796C654E616D6506047465787405416C - 69676E0706436C69656E740748697454657374080A53697A652E576964746805 - 000000000000009805400B53697A652E4865696768740500000000000000C003 - 401453697A652E506C6174666F726D44656661756C7408045465787406045465 - 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 - 697465000007544C61796F757400095374796C654E616D6506074C61796F7574 - 3205416C69676E07044C6566740A53697A652E57696474680500000000000000 - C003400B53697A652E4865696768740500000000000000C003401453697A652E - 506C6174666F726D44656661756C74080005545061746800095374796C654E61 - 6D65060469636F6E05416C69676E0708436F6E74656E747309446174612E5061 - 74680A4C000000060000000000000000004041CDCC4C3F0100000000000000CD - CC4C3F0100000000000000000000000100000000004041000000000100000000 - 004041CDCC4C3F0300000000004041CDCC4C3F0A46696C6C2E436F6C6F720708 - 636C6157686974650748697454657374080C4D617267696E732E4C6566740500 - 0000000000008001400B4D617267696E732E546F700500000000000000800140 - 0D4D617267696E732E526967687405000000000000008001400E4D617267696E - 732E426F74746F6D05000000000000008001400A53697A652E57696474680500 - 0000000000008003400B53697A652E4865696768740500000000000000800340 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E6508577261704D6F6465070346697400000000545046300A54 - 52656374616E676C6500095374796C654E616D650614706F7075706261636B67 - 726F756E647374796C6505416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463244324432440A53697A652E576964746805000000000000 - 009407400B53697A652E4865696768740500000000000080D206401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 7846463135313531350756697369626C65080000} - end - item - Platform = 'OSX Yosemite' - ResourcesBin = { - 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 - AF00060B627574746F6E7374796C6503EB04060D636865636B626F787374796C - 6503EA050609656469747374796C6503D4050609677269647374796C6503E608 - 060D67726F7570626F787374796C6503B402060F6865616465726974656D7374 - 796C6503F403060E696D61676563656C6C7374796C65033D01060A6C6162656C - 7374796C65032001060D6C697374626F78666F6F746572038B0106106C697374 - 626F786974656D7374796C6503520306126C697374626F78706C61696E686561 - 646572036C02060C6C697374626F787374796C6503B307060E706F7075706365 - 6C6C7374796C65038E03061070726F67726573736261727374796C6503020506 - 1170726F677265737363656C6C7374796C6503CB0206147363726F6C6C626172 - 68747261636B7374796C65033B01060E7363726F6C6C6261727374796C650363 - 0406147363726F6C6C62617276747261636B7374796C65033B01060C7370696E - 626F787374796C65034F08060B7377697463687374796C6503ED01060F746162 - 636F6E74726F6C7374796C6503F701060B746162646F747374796C65037F0106 - 0C7461626974656D7374796C65032B05060D7465787463656C6C7374796C6503 - A601060D7468756D626261727374796C65034C03060A7468756D627374796C65 - 033B02060D747261636B6261727374796C65034A0806096D656D6F7374796C65 - 030D08060D73697A65677269707374796C6503FB04060E737461747573626172 - 7374796C6503DB01060C746F6F6C6261727374796C6503CA00061570726F6772 - 6573736261726572726F727374796C65030705060E6C696E6B6C6162656C7374 - 796C65035003060C706F706F7665727374796C65035B02060D706F707570626F - 787374796C6503630606157363726F6C6C626172626F74746F6D627574746F6E - 036E0406137363726F6C6C6261726C656674627574746F6E0387040614736372 - 6F6C6C6261727269676874627574746F6E038A0406127363726F6C6C62617274 - 6F70627574746F6E038404060D636F6D626F626F787374796C65032607061473 - 74617475736261726E6F677269707374796C6503D4000613736D616C6C736372 - 6F6C6C6261727374796C6503AE01060D73706C69747465727374796C65030103 - 06106D656E756261726974656D7374796C65035C0B060C6D656E756261727374 - 796C6503B802060D6D656E756974656D7374796C6503890B06126D656E757365 - 70617261746F727374796C6503DC01060D6D656E75766965777374796C6503B7 - 020610726164696F627574746F6E7374796C6503C4050618756C63656E746572 - 726164696F627574746F6E7374796C65035D050616756C6C656674726164696F - 627574746F6E7374796C6503A7050617756C7269676874726164696F62757474 - 6F6E7374796C6503B705061470726F67726573736261726D696E697374796C65 - 03F403060E636F6D626F656469747374796C6503F8090613657870616E646572 - 627574746F6E7374796C650381020615657870616E646572636865636B626F78 - 7374796C6503DB05060D657870616E6465727374796C650316070615616E6969 - 6E64696361746F72686F727A7374796C6503D5020611616E69696E6469636174 - 6F727374796C6503BA01060A70616E656C7374796C65034401061970726F6772 - 6573736261726D696E696572726F727374796C6503EE03060E6C6F6762757474 - 6F6E7374796C6503DA07061B7472656576696577657870616E64657262757474 - 6F6E7374796C65037E02060D74726565766965777374796C6503820706117472 - 6565766965776974656D7374796C6503260500545046300A5452656374616E67 - 6C6500095374796C654E616D65060F6261636B67726F756E647374796C650541 - 6C69676E070643656E7465720A46696C6C2E436F6C6F72070978464632443244 - 32440A53697A652E576964746805000000000000009407400B53697A652E4865 - 696768740500000000000080D206401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508 - 00005450463007544C61796F757400095374796C654E616D65060B627574746F - 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F726465720202000A5452656374616E676C6500095374796C654E61 - 6D65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C69 - 704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F - 7207097846463230323032300748697454657374080A53697A652E5769647468 - 0500000000000000C805400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E6507585261646975730500000000000000C00040075952 - 61646975730500000000000000C00040000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D617469 - 6F6E31084475726174696F6E05000000000000000000000C50726F7065727479 - 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 - 3230323032300953746F7056616C756507097846463430343034300754726967 - 676572063049734D6F7573654F7665723D747275653B4973507265737365643D - 66616C73653B4973466F63757365643D66616C73650E54726967676572496E76 - 65727365063149734D6F7573654F7665723D66616C73653B4973507265737365 - 643D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F - 72416E696D6174696F6E32084475726174696F6E05000000000000000000000C - 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463430343034300953746F7056616C75650709784646313735 - 3739430754726967676572062F4973507265737365643D747275653B49734D6F - 7573654F7665723D747275653B4973466F63757365643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F - 6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000000000 - 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463241383245320953746F7056616C7565070978 - 46463137353739430754726967676572062E4973507265737365643D74727565 - 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 - 0E54726967676572496E7665727365062F4973507265737365643D66616C7365 - 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 - 00000005545465787400095374796C654E616D6506047465787405416C69676E - 0706436C69656E7413456E61626C6544726167486967686C6967687408074869 - 7454657374080A53697A652E57696474680500000000000000C805400B53697A - 652E4865696768740500000000000000C803401453697A652E506C6174666F72 - 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 - 0708636C6157686974650000005450463007544C61796F757400095374796C65 - 4E616D65060D636865636B626F787374796C6505416C69676E070643656E7465 - 720A53697A652E5769647468050000000000ACAA8006400B53697A652E486569 - 67687405000000000058559904401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508085461624F7264657202030007544C61796F75 - 740005416C69676E07044C6566740A53697A652E576964746805000000000000 - 009003400B53697A652E48656967687405000000000058559904401453697A65 - 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 - 74796C654E616D65060A6261636B67726F756E6405416C69676E070643656E74 - 65720A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A53697A652E57696474680500000000000000F002400B53697A652E486569 - 6768740500000000000000F002401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313507585261 - 646975730500000000000000C0004007595261646975730500000000000000C0 - 0040000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F720709 - 784646324138324532074869745465737408074F706163697479050000000000 - 00000000000C4D617267696E732E4C65667405000000000000008000400B4D61 - 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 - 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 - 000000008000400A53697A652E57696474680500000000000000B002400B5369 - 7A652E4865696768740500000000000000B002401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 - 646975730500000000000000C0004007595261646975730500000000000000C0 - 0040000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061B - 6368656368626F7856697362696C697479416E696D6174696F6E310844757261 - 74696F6E05000000000000000000000C50726F70657274794E616D6506074F70 - 61636974790A537461727456616C756505000000000000000000000953746F70 - 56616C75650500000000000000C805400754726967676572060E497343686563 - 6B65643D747275650E54726967676572496E7665727365060F4973436865636B - 65643D66616C73650000000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D650618636865636B626F785374726F6B65416E696D6174696F6E31 - 084475726174696F6E05000000000000000000000C50726F70657274794E616D - 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464631 - 35313531350953746F7056616C75650709784646324138324532075472696767 - 6572060E4973436865636B65643D747275650E54726967676572496E76657273 - 65060F4973436865636B65643D66616C736500000F54436F6C6F72416E696D61 - 74696F6E00095374796C654E616D650617636865636B626F78436F6C6F72416E - 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646343034303430 - 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 - 6572496E7665727365061149734D6F7573654F7665723D66616C736500000000 - 05545465787400095374796C654E616D6506047465787405416C69676E070643 - 6C69656E740A53697A652E57696474680500000000005855DD05400B53697A65 - 2E48656967687405000000000058559904401453697A652E506C6174666F726D - 44656661756C74080454657874060454657874165465787453657474696E6773 - 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 - 6F757400095374796C654E616D650609656469747374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F726465720204000C - 5442727573684F626A65637400095374796C654E616D65060A666F726567726F - 756E6400000C5442727573684F626A65637400095374796C654E616D65060973 - 656C656374696F6E0B42727573682E436F6C6F72070978393632413832453200 - 000B54466F6E744F626A65637400095374796C654E616D650604666F6E740946 - 6F6E742E53697A650500000000000000D0024000000A5452656374616E676C65 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 - 6F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230074869 - 7454657374080A53697A652E57696474680500000000000000C805400B53697A - 652E4865696768740500000000000000C803401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 3507585261646975730500000000000000C00040075952616469757305000000 - 00000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614656469745374726F6B65416E696D6174696F6E3108447572617469 - 6F6E05000000000000000000000C50726F70657274794E616D65060C5374726F - 6B652E436F6C6F720A537461727456616C756507097846463135313531350953 - 746F7056616C756507097846463241383245320754726967676572060E497346 - 6F63757365643D747275650E54726967676572496E7665727365060F4973466F - 63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650614656469745374726F6B65416E696D6174696F6E320844 - 75726174696F6E050000000000000000000007496E7665727365090C50726F70 - 657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75 - 6507097846463135313531350953746F7056616C756507097846463443344334 - 430754726967676572062149734D6F7573654F7665723D747275653B4973466F - 63757365643D66616C73653B0E54726967676572496E7665727365062249734D - 6F7573654F7665723D66616C73653B4973466F63757365643D66616C73653B00 - 000007544C61796F757400095374796C654E616D650607627574746F6E730541 - 6C69676E07055269676874064C6F636B6564090B4D617267696E732E546F7005 - 000000000000008000400D4D617267696E732E52696768740500000000000000 - 8000400E4D617267696E732E426F74746F6D05000000000000008000400A506F - 736974696F6E2E580500000000000000C004400A506F736974696F6E2E590500 - 0000000000008000400A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000000000A803401453697A652E506C6174 - 666F726D44656661756C7408000007544C61796F757400095374796C654E616D - 650607636F6E74656E7405416C69676E0706436C69656E74064C6F636B656409 - 0C4D617267696E732E4C65667405000000000000008001400B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 - 00400A53697A652E57696474680500000000000000A804400B53697A652E4865 - 696768740500000000000000A803401453697A652E506C6174666F726D446566 - 61756C7408000006544C6162656C00095374796C654E616D65060670726F6D70 - 74064C6F636B656409074F706163697479050000000000000080FE3F16546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465045465 - 78740604546578740000005450463007544C61796F757400095374796C654E61 - 6D650609677269647374796C6505416C69676E070643656E7465720A53697A65 - 2E5769647468050000000000FFFFE905400B53697A652E486569676874050000 - 00000000008306401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F726465720205000C5442727573684F626A656374 - 00095374796C654E616D650618416C7465726E6174696E67526F774261636B67 - 726F756E640B42727573682E436F6C6F72070978333237383738373800000C54 - 42727573684F626A65637400095374796C654E616D6506086C696E6566696C6C - 0B42727573682E436F6C6F72070978464631353135313500000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 - 30064C6F636B6564090748697454657374080C50616464696E672E4C65667405 - 000000000000008000400B50616464696E672E546F7005000000000000008000 - 400D50616464696E672E526967687405000000000000008000400E5061646469 - 6E672E426F74746F6D05000000000000008000400A53697A652E576964746805 - 0000000000FFFFE905400B53697A652E48656967687405000000000000008306 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F72070978464631353135313507585261646975730500000000000000C0 - 004007595261646975730500000000000000C000400007544865616465720009 - 5374796C654E616D6506066865616465720553696465730B03546F70044C6566 - 7406426F74746F6D0552696768740005416C69676E0703546F700A506F736974 - 696F6E2E5805000000000000008000400A506F736974696F6E2E590500000000 - 0000008000400A53697A652E5769647468050000000000FFFFE105400B53697A - 652E4865696768740500000000000000A803401453697A652E506C6174666F72 - 6D44656661756C7408000007544C61796F757400095374796C654E616D650607 - 636F6E74656E7405416C69676E0706436C69656E740C436C69704368696C6472 - 656E090A53697A652E5769647468050000000000FFFFC105400B53697A652E48 - 65696768740500000000000000B405401453697A652E506C6174666F726D4465 - 6661756C7408000A5452656374616E676C6500095374796C654E616D65060973 - 656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748 - 697454657374080A53697A652E57696474680500000000000000C804400B5369 - 7A652E4865696768740500000000000000C804401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 - 646975730500000000000000C0004007595261646975730500000000000000C0 - 004000000A5452656374616E676C6500095374796C654E616D650605666F6375 - 730A46696C6C2E436F6C6F720709784146324138324532074869745465737408 - 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 - 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 - 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 - FF3F0A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 - 00000000000000C0004007595261646975730500000000000000C00040000000 - 0A545363726F6C6C42617200095374796C654E616D65060A767363726F6C6C62 - 617205416C69676E070552696768740B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E0708566572746963616C0A506F73 - 6974696F6E2E58050000000000FFFFC505400A506F736974696F6E2E59050000 - 0000000000B803400A53697A652E576964746805000000000000008003400B53 - 697A652E4865696768740500000000000000B405401453697A652E506C617466 - 6F726D44656661756C740800000A545363726F6C6C42617200095374796C654E - 616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D0B536D - 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E - 070A486F72697A6F6E74616C0A506F736974696F6E2E58050000000000000080 - 00400A506F736974696F6E2E590500000000000000E205400A53697A652E5769 - 647468050000000000FFFFE105400B53697A652E486569676874050000000000 - 00008003401453697A652E506C6174666F726D44656661756C740800000F5453 - 6D616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C - 7363726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E - 676505000000000000000000000B4F7269656E746174696F6E07085665727469 - 63616C0C4D617267696E732E4C65667405000000000000008000400A506F7369 - 74696F6E2E580500000000000000C605400A506F736974696F6E2E5905000000 - 000000008000400A53697A652E576964746805000000000000008002400B5369 - 7A652E48656967687405000000000000008002401453697A652E506C6174666F - 726D44656661756C74080756697369626C650800000F54536D616C6C5363726F - 6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C6261 - 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D - 617267696E732E546F7005000000000000008000400A506F736974696F6E2E58 - 05000000000000008000400A506F736974696F6E2E590500000000000000E205 - 400A53697A652E576964746805000000000000009606400B53697A652E486569 - 67687405000000000000008002401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508000000005450463007544C61796F7574000953 - 74796C654E616D65060D67726F7570626F787374796C6505416C69676E070643 - 656E7465720A53697A652E57696474680500000000000000F004400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508085461624F726465720206000A5452 - 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 - 416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E6507 - 48697454657374080C4D617267696E732E4C6566740500000000000000C00040 - 0B4D617267696E732E546F7005000000000000009002400D4D617267696E732E - 52696768740500000000000000C000400E4D617267696E732E426F74746F6D05 - 00000000000000C000400A53697A652E57696474680500000000000000D80440 - 0B53697A652E48656967687405000000000000009804401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 353135313507585261646975730500000000000000C000400759526164697573 - 0500000000000000C000400005545465787400095374796C654E616D65060474 - 657874084175746F53697A65090A436C6970506172656E740907486974546573 - 74080C4D617267696E732E4C6566740500000000000000A002400A506F736974 - 696F6E2E5805000000000060559502400A506F736974696F6E2E590500000000 - 004055D501C00A53697A652E576964746805000000000000B8C703400B53697A - 652E4865696768740500000000000060FF02401453697A652E506C6174666F72 - 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 - 0708636C615768697465155465787453657474696E67732E576F726457726170 - 08000000005450463007544C61796F757400095374796C654E616D65060F6865 - 616465726974656D7374796C6505416C69676E070643656E7465720A53697A65 - 2E576964746805000000000000009205400B53697A652E486569676874050000 - 0000000000D003401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F726465720207000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F720709784646344334433443064C6F636B - 6564090748697454657374080A53697A652E5769647468050000000000000092 - 05400B53697A652E4865696768740500000000000000D003401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 4631353135313507585261646975730500000000000000C00040075952616469 - 75730500000000000000C00040000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650615686561646572436F6C6F72416E696D6174696F6E31 - 084475726174696F6E05000000000000000000000C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646344334 - 4334430953746F7056616C756507097846463241383245320754726967676572 - 060E4973507265737365643D747275650E54726967676572496E766572736506 - 0F4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D6506166865616465725374726F6B65416E696D61 - 74696F6E31084475726174696F6E05000000000000000000000C50726F706572 - 74794E616D65060C5374726F6B652E436F6C6F720A537461727456616C756507 - 097846463135313531350953746F7056616C7565070978464632413832453207 - 54726967676572060E4973507265737365643D747275650E5472696767657249 - 6E7665727365060F4973507265737365643D66616C7365000000055454657874 - 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 - 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 - 0000000000A001400B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E52696768740500000000000000A001400E4D617267696E73 - 2E426F74746F6D05000000000000008000400A53697A652E5769647468050000 - 0000000000FC04400B53697A652E4865696768740500000000000000B0034014 - 53697A652E506C6174666F726D44656661756C7408165465787453657474696E - 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C - 61796F757400095374796C654E616D65060E696D61676563656C6C7374796C65 - 05416C69676E070643656E7465720756697369626C6508085461624F72646572 - 0208000654496D61676500095374796C654E616D650605696D6167650E4D756C - 74695265734269746D61700E01000005416C69676E0706436C69656E74064C6F - 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 - 00000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61 - 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 - 6F74746F6D050000000000000080FF3F0A53697A652E57696474680500000000 - 000000C004400B53697A652E4865696768740500000000000000C00440145369 - 7A652E506C6174666F726D44656661756C74080000005450463007544C61796F - 757400095374796C654E616D65060A6C6162656C7374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F7264657202090005 - 545465787400095374796C654E616D6506047465787405416C69676E0708436F - 6E74656E74730748697454657374080A53697A652E5769647468050000000000 - 0000C805400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C7408165465787453657474696E67732E - 466F6E74436F6C6F720708636C6157686974650000005450463007544C61796F - 757400095374796C654E616D65060D6C697374626F78666F6F74657205416C69 - 676E070643656E7465720A53697A652E57696474680500000000000000920540 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 0A0005545465787400095374796C654E616D6506047465787405416C69676E07 - 06436C69656E74064C6F636B6564090748697454657374080C4D617267696E73 - 2E4C6566740500000000000000A001400B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000A00140 - 0E4D617267696E732E426F74746F6D05000000000000008000400A53697A652E - 57696474680500000000000000FC04400B53697A652E48656967687405000000 - 00000000B003401453697A652E506C6174666F726D44656661756C7408165465 - 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 - 005450463007544C61796F757400095374796C654E616D6506106C697374626F - 786974656D7374796C6505416C69676E070643656E7465720A53697A652E5769 - 6474680500000000000000D605400B53697A652E486569676874050000000000 - 0000C003401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F72646572020B000654476C79706800095374796C654E61 - 6D65060A676C7970687374796C650C4D617267696E732E4C6566740500000000 - 0000008000400B4D617267696E732E546F70050000000000000080FF3F0D4D61 - 7267696E732E526967687405000000000000008000400E4D617267696E732E42 - 6F74746F6D050000000000000080FF3F05416C69676E07044C6566740A506F73 - 6974696F6E2E5805000000000000008000400A506F736974696F6E2E59050000 - 000000000080FF3F0A53697A652E576964746805000000000000008003400B53 - 697A652E4865696768740500000000000000B003401453697A652E506C617466 - 6F726D44656661756C7408000005545465787400095374796C654E616D650604 - 7465787405416C69676E0706436C69656E740748697454657374080C4D617267 - 696E732E4C6566740500000000000000C000400B4D617267696E732E546F7005 - 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 - C000400E4D617267696E732E426F74746F6D050000000000000080FF3F0A5369 - 7A652E57696474680500000000000000CA05400B53697A652E48656967687405 - 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 65155465787453657474696E67732E576F726457726170081654657874536574 - 74696E67732E486F727A416C69676E07074C656164696E670000095443686563 - 6B426F7800095374796C654E616D650605636865636B05416C69676E07084D6F - 73744C6566740843616E466F637573081244697361626C65466F637573456666 - 656374090A53697A652E57696474680500000000000000A003400B53697A652E - 4865696768740500000000000000C003401453697A652E506C6174666F726D44 - 656661756C74080756697369626C65080000005450463007544C61796F757400 - 095374796C654E616D6506126C697374626F78706C61696E6865616465720541 - 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 - 05400B53697A652E4865696768740500000000000000D003401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 72020C000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F - 720709784646324432443244064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000000009205400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F7207097846463135313531350758526164697573 - 0500000000000000C0004007595261646975730500000000000000C000400000 - 05545465787400095374796C654E616D6506047465787405416C69676E070643 - 6C69656E74064C6F636B6564090748697454657374080C4D617267696E732E4C - 6566740500000000000000A001400B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E52696768740500000000000000A001400E4D - 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 - 6474680500000000000000FC04400B53697A652E486569676874050000000000 - 0000B003401453697A652E506C6174666F726D44656661756C74081654657874 - 53657474696E67732E466F6E74436F6C6F720708636C61576869746500000054 - 50463007544C61796F757400095374796C654E616D65060C6C697374626F7873 - 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 - 000000FFFFE905400B53697A652E486569676874050000000000000083064014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F72646572020D000C5442727573684F626A65637400095374796C654E61 - 6D650618416C7465726E6174696E67526F774261636B67726F756E640B427275 - 73682E436F6C6F72070978464632433243324300000A5452656374616E676C65 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 - 6F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F - 636B6564090748697454657374080C50616464696E672E4C6566740500000000 - 0000008000400B50616464696E672E546F7005000000000000008000400D5061 - 6464696E672E526967687405000000000000008000400E50616464696E672E42 - 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 - 00FFFFE905400B53697A652E4865696768740500000000000000830640145369 - 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 070978464631353135313507585261646975730500000000000000C000400759 - 5261646975730500000000000000C000400007544C61796F757400095374796C - 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C436C69 - 704368696C6472656E090A53697A652E5769647468050000000000FFFFC10540 - 0B53697A652E4865696768740500000000000000DE05401453697A652E506C61 - 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 - 4E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72070978464632 - 41383245320748697454657374080A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000C804401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6507585261646975730500000000000000C0004007595261646975730500 - 000000000000C0004000000A5452656374616E676C6500095374796C654E616D - 650610666F637573656473656C656374696F6E0A46696C6C2E436F6C6F720709 - 7846463241383245320748697454657374080A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000C8044014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E650B5374726F6B652E446173680703446F740758526164697573 - 0500000000000000C0004007595261646975730500000000000000C000400000 - 000A545363726F6C6C42617200095374796C654E616D65060A767363726F6C6C - 62617205416C69676E070552696768740B536D616C6C4368616E676505000000 - 000000000000000B4F7269656E746174696F6E0708566572746963616C0A506F - 736974696F6E2E58050000000000FFFFC505400A506F736974696F6E2E590500 - 0000000000008000400A53697A652E576964746805000000000000008003400B - 53697A652E4865696768740500000000000000DE05401453697A652E506C6174 - 666F726D44656661756C740800000A545363726F6C6C42617200095374796C65 - 4E616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D0B53 - 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F - 6E070A486F72697A6F6E74616C0A506F736974696F6E2E580500000000000000 - 8000400A506F736974696F6E2E590500000000000000E205400A53697A652E57 - 69647468050000000000FFFFE105400B53697A652E4865696768740500000000 - 0000008003401453697A652E506C6174666F726D44656661756C740800000F54 - 536D616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C - 6C7363726F6C6C62617205416C69676E070552696768740B536D616C6C436861 - 6E676505000000000000000000000B4F7269656E746174696F6E070856657274 - 6963616C0C4D617267696E732E4C65667405000000000000008000400A506F73 - 6974696F6E2E580500000000000000C605400A506F736974696F6E2E59050000 - 00000000008000400A53697A652E576964746805000000000000008002400B53 - 697A652E48656967687405000000000000008002401453697A652E506C617466 - 6F726D44656661756C74080756697369626C650800000F54536D616C6C536372 - 6F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C62 - 617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505000000 - 000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B - 4D617267696E732E546F7005000000000000008000400A506F736974696F6E2E - 5805000000000000008000400A506F736974696F6E2E590500000000000000E2 - 05400A53697A652E576964746805000000000000009606400B53697A652E4865 - 6967687405000000000000008002401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508000000005450463007544C61796F75740009 - 5374796C654E616D65060E706F70757063656C6C7374796C6505416C69676E07 - 0643656E7465720756697369626C6508085461624F72646572020E0007544C61 - 796F75740005416C69676E070552696768740A506F736974696F6E2E58050000 - 00000000008C04400A53697A652E57696474680500000000000000F002400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C7408000554506174680005416C69676E070643656E7465 - 7209446174612E506174680A400000000500000000000000000000000000803F - 010000000000803F0000803F010000000000003F000000000100000000000000 - 0000803F0300000000000000000000000A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080B4D617267696E732E546F70050000000000 - 0000E001C00A53697A652E576964746805000000000000008002400B53697A65 - 2E48656967687405000000000000008001401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000005545061 - 74680005416C69676E070643656E74657209446174612E506174680A34000000 - 04000000000000000000000000000000010000000000803F0000000001000000 - 0000003F0000803F0300000000000000000000000A46696C6C2E436F6C6F7207 - 08636C6157686974650748697454657374080B4D617267696E732E546F700500 - 000000000000C001400A53697A652E576964746805000000000000008002400B - 53697A652E48656967687405000000000000008001401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 0005545465787400095374796C654E616D6506047465787405416C69676E0706 - 436C69656E74064C6F636B6564090748697454657374080C4D617267696E732E - 4C6566740500000000000000A001400B4D617267696E732E546F700500000000 - 0000008000400D4D617267696E732E52696768740500000000000000A001400E - 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 - 696474680500000000000000C803400B53697A652E4865696768740500000000 - 000000B804401453697A652E506C6174666F726D44656661756C740816546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 - 5450463007544C61796F757400095374796C654E616D65061070726F67726573 - 736261727374796C6505416C69676E070643656E7465720A53697A652E576964 - 746805000000000033338505400B53697A652E48656967687405000000000099 - 99E104401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C6508085461624F72646572020F000A5452656374616E676C6500095374796C - 654E616D65060668747261636B05416C69676E0708436F6E74656E74730A4669 - 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 - 657374080A53697A652E576964746805000000000033338505400B53697A652E - 4865696768740500000000009999E104401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 - 585261646975730500000000000000C000400759526164697573050000000000 - 0000C00040000A5452656374616E676C6500095374796C654E616D65060A6869 - 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 - 09784646324138324532064C6F636B6564090748697454657374080C4D617267 - 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 - 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 - 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F - 736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500 - 00000000000080FF3F0A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000009999D904401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758 - 5261646975730500000000000000C00040075952616469757305000000000000 - 00C000400000000A5452656374616E676C6500095374796C654E616D65060676 - 747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 - 0709784646323032303230064C6F636B6564090748697454657374080A53697A - 652E576964746805000000000033338505400B53697A652E4865696768740500 - 000000009999E104401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646313531353135075852616469757305 - 00000000000000C0004007595261646975730500000000000000C00040000A54 - 52656374616E676C6500095374796C654E616D65060A76696E64696361746F72 - 05416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846463241 - 38324532064C6F636B6564090748697454657374080C4D617267696E732E4C65 - 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 - 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 - 7267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E - 2E58050000000000000080FF3F0A506F736974696F6E2E590500000000009999 - 8904400A53697A652E576964746805000000000033338105400B53697A652E48 - 65696768740500000000000000A803401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 - 0500000000000000C0004007595261646975730500000000000000C000400000 - 00005450463007544C61796F757400095374796C654E616D65061170726F6772 - 65737363656C6C7374796C6505416C69676E070643656E7465720A53697A652E - 57696474680500000000000000F805400B53697A652E48656967687405000000 - 00000000FC05401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F7264657202100007544C61796F757400095374796C - 654E616D65060668747261636B05416C69676E0708436F6E74656E7473064C6F - 636B6564090C4D617267696E732E4C65667405000000000000008000400B4D61 - 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 - 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 - 000000008000400A53697A652E57696474680500000000000000F005400B5369 - 7A652E4865696768740500000000000000F405401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E43 - 6F6C6F720709784646324138324532064C6F636B656409074869745465737408 - 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 - 00400A506F736974696F6E2E5805000000000000008000400A506F736974696F - 6E2E5905000000000000008000400A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000EC05401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6507585261646975730500000000000000C0004007595261646975730500 - 000000000000C0004000000000545046300A5452656374616E676C6500095374 - 796C654E616D6506147363726F6C6C62617268747261636B7374796C6505416C - 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463135313531 - 350748697454657374080A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 56697369626C65080006545468756D6200095374796C654E616D650605746875 - 6D62064C6F636B6564090A53697A652E57696474680500000000000000800340 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D62 - 7374796C650000005450463007544C61796F757400095374796C654E616D6506 - 0E7363726F6C6C6261727374796C6505416C69676E070643656E746572075669 - 7369626C6508085461624F726465720211000754427574746F6E00095374796C - 654E616D65060A6C656674627574746F6E05416C69676E07044C656674064C6F - 636B6564090A506F736974696F6E2E5905000000000000008003400A53697A65 - 2E576964746805000000000000008003400B53697A652E486569676874050000 - 00000000009003401453697A652E506C6174666F726D44656661756C74080B53 - 74796C654C6F6F6B757006137363726F6C6C6261726C656674627574746F6E00 - 000754427574746F6E00095374796C654E616D65060B7269676874627574746F - 6E05416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E - 5805000000000000008804400A506F736974696F6E2E59050000000000000080 - 03400A53697A652E576964746805000000000000008003400B53697A652E4865 - 6967687405000000000000009003401453697A652E506C6174666F726D446566 - 61756C74080B5374796C654C6F6F6B757006147363726F6C6C62617272696768 - 74627574746F6E00000754427574746F6E00095374796C654E616D65060C626F - 74746F6D627574746F6E05416C69676E0706426F74746F6D064C6F636B656409 - 0A506F736974696F6E2E5905000000000000008804400A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000000000 - 8003401453697A652E506C6174666F726D44656661756C74080B5374796C654C - 6F6F6B757006157363726F6C6C626172626F74746F6D627574746F6E00000654 - 547261636B00095374796C654E616D65060668747261636B05416C69676E0706 - 436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F7269 - 7A6F6E74616C0A53697A652E576964746805000000000000009003400B53697A - 652E48656967687405000000000000009003401453697A652E506C6174666F72 - 6D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172 - 68747261636B7374796C6500000654547261636B00095374796C654E616D6506 - 0676747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F72 - 69656E746174696F6E070A486F72697A6F6E74616C0A53697A652E5769647468 - 05000000000000009003400B53697A652E486569676874050000000000000090 - 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F - 6F6B757006147363726F6C6C62617276747261636B7374796C65000007544275 - 74746F6E00095374796C654E616D650609746F70627574746F6E05416C69676E - 0703546F700A53697A652E57696474680500000000000000C804400B53697A65 - 2E48656967687405000000000000008003401453697A652E506C6174666F726D - 44656661756C74080B5374796C654C6F6F6B757006127363726F6C6C62617274 - 6F70627574746F6E000000545046300A5452656374616E676C6500095374796C - 654E616D6506147363726F6C6C62617276747261636B7374796C6505416C6967 - 6E070643656E7465720A46696C6C2E436F6C6F72070978464631353135313507 - 48697454657374080A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669 - 7369626C65080006545468756D6200095374796C654E616D6506057468756D62 - 064C6F636B6564090A53697A652E57696474680500000000000000C804400B53 - 697A652E48656967687405000000000000008003401453697A652E506C617466 - 6F726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D627374 - 796C650000005450463007544C61796F757400095374796C654E616D65060C73 - 70696E626F787374796C6505416C69676E070643656E7465720A53697A652E57 - 696474680500000000006666E005400B53697A652E4865696768740500000000 - 000000A803401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F726465720212000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A652E57 - 696474680500000000006666E005400B53697A652E4865696768740500000000 - 000000A803401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F720709784646313531353135075852616469757305000000 - 00000000C0004007595261646975730500000000000000C00040000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E69 - 6D6174696F6E315374796C65084475726174696F6E0500000000000000000000 - 07496E7665727365090C50726F70657274794E616D65060C5374726F6B652E43 - 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 - 616C756507097846463430343034300754726967676572061049734D6F757365 - 4F7665723D747275650E54726967676572496E7665727365061149734D6F7573 - 654F7665723D66616C73650000000C5442727573684F626A6563740009537479 - 6C654E616D65060A666F726567726F756E640B42727573682E436F6C6F720709 - 78464645414541454100000C5442727573684F626A65637400095374796C654E - 616D65060973656C656374696F6E0B42727573682E436F6C6F72070978393632 - 4138324532000007544C61796F757400095374796C654E616D650607636F6E74 - 656E7405416C69676E0706436C69656E74064C6F636B6564090C4D617267696E - 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 - 00000000008000400D4D617267696E732E526967687405000000000000008000 - 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 - 2E576964746805000000000070668405400B53697A652E486569676874050000 - 00000000008803401453697A652E506C6174666F726D44656661756C74080000 - 0754427574746F6E00095374796C654E616D65060B6D696E7573627574746F6E - 05416C69676E07074669744C6566740843616E466F6375730806437572736F72 - 070763724172726F770C4D617267696E732E4C65667405000000000000008000 - 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 - 2E526967687405000000000000008000400E4D617267696E732E426F74746F6D - 05000000000000008000400A506F736974696F6E2E5805000000000000008000 - 400A506F736974696F6E2E5905000000000000008000400A53697A652E576964 - 7468050000000000E8FF8703400B53697A652E48656967687405000000000000 - 008803401453697A652E506C6174666F726D44656661756C74080B5374796C65 - 4C6F6F6B7570060B627574746F6E7374796C65000554506174680005416C6967 - 6E0706436C69656E7409446174612E506174680A400000000500000000000000 - 0000803F00000000010000000000803F0000803F01000000000000000000003F - 010000000000803F00000000030000000000803F000000000A46696C6C2E436F - 6C6F720708636C6157686974650748697454657374080C4D617267696E732E4C - 6566740500000000000000C001400B4D617267696E732E546F70050000000000 - 0000C001400D4D617267696E732E52696768740500000000000000C001400E4D - 617267696E732E426F74746F6D0500000000000000C001400A53697A652E5769 - 647468050000000000A0FF9F01400B53697A652E486569676874050000000000 - 0000A001401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E650000000754427574746F6E00095374796C654E - 616D65060A706C7573627574746F6E05416C69676E0708466974526967687408 - 43616E466F6375730806437572736F72070763724172726F770C4D617267696E - 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 - 00000000008000400D4D617267696E732E526967687405000000000000008000 - 400E4D617267696E732E426F74746F6D05000000000000008000400A506F7369 - 74696F6E2E580500000000006A66BA05400A506F736974696F6E2E5905000000 - 000000008000400A53697A652E5769647468050000000000F0FF8703400B5369 - 7A652E48656967687405000000000000008803401453697A652E506C6174666F - 726D44656661756C74080B5374796C654C6F6F6B7570060B627574746F6E7374 - 796C65000554506174680005416C69676E0706436C69656E7409446174612E50 - 6174680A34000000040000000000000000000000000000000100000000000000 - 0000803F010000000000803F0000003F0300000000000000000000000A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080C4D61726769 - 6E732E4C6566740500000000000000C001400B4D617267696E732E546F700500 - 000000000000C001400D4D617267696E732E52696768740500000000000000C0 - 01400E4D617267696E732E426F74746F6D0500000000000000C001400A53697A - 652E5769647468050000000000C0FF9F01400B53697A652E4865696768740500 - 000000000000A001401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E6500000000545046300D545377697463 - 684F626A65637400095374796C654E616D65060B7377697463687374796C6505 - 416C69676E070643656E746572044B696E64070C466164696E67547261636B73 - 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C7408085461624F72646572021312547261636B696E675468756D625363616C - 65050000000000000080FF3F0756697369626C65080A46696C6C2E436F6C6F72 - 07097846463230323032300C46696C6C4F6E2E436F6C6F720709784646313735 - 3739430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F6B652E4B69 - 6E6407044E6F6E650B5468756D622E436F6C6F7207097846463430343034300D - 5468756D624F6E2E436F6C6F7207097846463241383245320C5468756D624F6E - 2E4B696E640705536F6C6964105468756D625374726F6B652E4B696E6407044E - 6F6E650F5468756D625374726F6B652E4361700705526F756E64105468756D62 - 5374726F6B652E446173680706437573746F6D105468756D625374726F6B652E - 4A6F696E0705526F756E64165468756D625374726F6B652E437573746F6D4461 - 73680A0800000000000000000000000553686170650709526F756E6452656374 - 00005450463007544C61796F757400095374796C654E616D65060F746162636F - 6E74726F6C7374796C6505416C69676E070643656E7465720A53697A652E5769 - 64746805000000000000008E06400B53697A652E486569676874050000000000 - FFFFC905401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F726465720214000A5452656374616E676C650009537479 - 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E - 747307436F726E6572730B08546F7052696768740A426F74746F6D4C6566740B - 426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464633303330 - 3330064C6F636B6564090748697454657374080C50616464696E672E4C656674 - 05000000000000008000400B50616464696E672E546F70050000000000000080 - 00400D50616464696E672E526967687405000000000000008000400E50616464 - 696E672E426F74746F6D05000000000000008000400A53697A652E5769647468 - 05000000000000008E06400B53697A652E486569676874050000000000FFFFC9 - 05401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313507585261646975730500000000000000 - C0004007595261646975730500000000000000C00040000000545046300A5452 - 656374616E676C6500095374796C654E616D65060B746162646F747374796C65 - 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463135 - 313531350748697454657374080A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000C804401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E650756697369626C650807585261646975730500000000000000C803400759 - 5261646975730500000000000000C80340000F54436F6C6F72416E696D617469 - 6F6E00084475726174696F6E05000000000018B7D1F23F0C50726F7065727479 - 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 - 3135313531350953746F7056616C756507097846463241383245320754726967 - 676572060F497353656C65637465643D747275650E54726967676572496E7665 - 7273650610497353656C65637465643D66616C73650000005450463007544C61 - 796F757400095374796C654E616D65060C7461626974656D7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 0215000A5452656374616E676C6500095374796C654E616D650603746F700541 - 6C69676E0708436F6E74656E74730C436C69704368696C6472656E0907436F72 - 6E6572730B07546F704C65667408546F705269676874000A46696C6C2E436F6C - 6F720709784646323032303230064C6F636B6564090748697454657374080553 - 696465730B03546F70044C656674055269676874000A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313507585261646975730500000000000000 - C0004007595261646975730500000000000000C00040000654476C7970680009 - 5374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C65 - 667405000000000000008001400D4D617267696E732E52696768740500000000 - 0000008001C005416C69676E07044C6566740A506F736974696F6E2E58050000 - 00000000008001400A53697A652E576964746805000000000000008003400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C7408000005545465787400095374796C654E616D650604 - 7465787405416C69676E0706436C69656E74064C6F636B656409074869745465 - 7374080C4D617267696E732E4C6566740500000000000000C000400B4D617267 - 696E732E546F700500000000000000C000400D4D617267696E732E5269676874 - 0500000000000000C000400E4D617267696E732E426F74746F6D050000000000 - 0000C000400A53697A652E57696474680500000000000000B004400B53697A65 - 2E48656967687405000000000000009803401453697A652E506C6174666F726D - 44656661756C7408165465787453657474696E67732E466F6E74436F6C6F7207 - 08636C615768697465155465787453657474696E67732E576F72645772617008 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061274 - 6162436F6C6F72416E696D6174696F6E310D416E696D6174696F6E5479706507 - 05496E4F7574084475726174696F6E05000000000000000000000C50726F7065 - 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 - 7846463230323032300953746F7056616C756507097846463430343034300754 - 726967676572062149734D6F7573654F7665723D747275653B497353656C6563 - 7465643D66616C73650E54726967676572496E7665727365062249734D6F7573 - 654F7665723D66616C73653B497353656C65637465643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650612746162436F - 6C6F72416E696D6174696F6E32084475726174696F6E05000000000000000000 - 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463230323032300953746F7056616C7565070978464632 - 41383245320754726967676572060F497353656C65637465643D747275650E54 - 726967676572496E76657273650610497353656C65637465643D66616C736500 - 0000005450463007544C61796F757400095374796C654E616D65060D74657874 - 63656C6C7374796C6505416C69676E070643656E7465720756697369626C6508 - 085461624F7264657202160007544C61796F757400095374796C654E616D6506 - 07636F6E74656E7405416C69676E0708436F6E74656E7473064C6F636B656409 - 0C4D617267696E732E4C65667405000000000000008001400B4D617267696E73 - 2E546F7005000000000000008001400D4D617267696E732E5269676874050000 - 00000000008001400E4D617267696E732E426F74746F6D050000000000000080 - 01400A53697A652E57696474680500000000000000A804400B53697A652E4865 - 696768740500000000000000A804401453697A652E506C6174666F726D446566 - 61756C740800000C5442727573684F626A65637400095374796C654E616D6506 - 0A666F726567726F756E6400000C5442727573684F626A65637400095374796C - 654E616D65060973656C656374696F6E0B42727573682E436F6C6F7207097839 - 3632413832453200000B54466F6E744F626A65637400095374796C654E616D65 - 0604666F6E74000000545046300754436972636C6500095374796C654E616D65 - 060D7468756D626261727374796C6505416C69676E070643656E7465720A4669 - 6C6C2E436F6C6F7207097846463241383245320748697454657374080A53697A - 652E57696474680500000000000000A003400B53697A652E4865696768740500 - 000000000000A003401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F7207097846463135313531350756697369626C6508 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506147468 - 756D62436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 - 0000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097846463241383245320953746F7056616C756507 - 097846463137353739430754726967676572061F4973507265737365643D7472 - 75653B49734D6F7573654F7665723D747275650E54726967676572496E766572 - 736506104973507265737365643D66616C73653B00000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E69 - 6D6174696F6E32084475726174696F6E05000000000000000000000C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463241383245320953746F7056616C7565070978464634303942464607 - 54726967676572062049734D6F7573654F7665723D747275653B497350726573 - 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 - 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D6506157468756D6253 - 74726F6B65416E696D6174696F6E31084475726174696F6E0500000000000000 - 0000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53 - 7461727456616C756507097846463135313531350953746F7056616C75650709 - 7846463137353739430754726967676572061F4973507265737365643D747275 - 653B49734D6F7573654F7665723D747275650E54726967676572496E76657273 - 65060F4973507265737365643D66616C7365000000545046300A545265637461 - 6E676C6500095374796C654E616D65060A7468756D627374796C6505416C6967 - 6E070643656E7465720A46696C6C2E436F6C6F72070978464634443444344407 - 48697454657374080A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669 - 7369626C6508000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D6506147468756D62436F6C6F72416E696D6174696F6E31084475726174696F - 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463444344434440953746F70 - 56616C756507097846463137353739430754726967676572060E497350726573 - 7365643D747275650E54726967676572496E7665727365060F49735072657373 - 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650614436F6C6F72416E696D6174696F6E315374796C650844757261 - 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 - 6C6C2E436F6C6F720A537461727456616C756507097846463444344434440953 - 746F7056616C75650707636C61477261790754726967676572061049734D6F75 - 73654F7665723D747275650E54726967676572496E7665727365061149734D6F - 7573654F7665723D66616C73650000005450463007544C61796F757400095374 - 796C654E616D65060D747261636B6261727374796C6505416C69676E07064365 - 6E7465720A53697A652E57696474680500000000000000C805400B53697A652E - 4865696768740500000000000000C805401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F7264657202170B46697865 - 644865696768740211000A5452656374616E676C6500095374796C654E616D65 - 060668747261636B05416C69676E070A5665727443656E7465720A46696C6C2E - 436F6C6F7207097846463135313531350748697454657374080A506F73697469 - 6F6E2E590500000000000000BC04400A53697A652E5769647468050000000000 - 0000C805400B53697A652E4865696768740500000000000000A001401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6507585261646975730500000000000000A00040075952616469757305 - 00000000000000A00040000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473094669 - 6C6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C4D - 617267696E732E4C6566740500000000000000C001400B4D617267696E732E54 - 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 - 000000C001400E4D617267696E732E426F74746F6D050000000000000080FF3F - 0A53697A652E57696474680500000000000000B005400B53697A652E48656967 - 68740500000000000000C000401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573050000 - 0000000000C0FF3F07595261646975730500000000000000C0FF3F00000A5452 - 656374616E676C6500095374796C654E616D650609686967686C696768740541 - 6C69676E07044C6566740A46696C6C2E436F6C6F720709784646324138324532 - 0748697454657374080C50616464696E672E4C6566740500000000000000A002 - 400A53697A652E57696474680500000000000000F003400B53697A652E486569 - 6768740500000000000000A001401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 - 000000000000A0004007595261646975730500000000000000A0004000000B54 - 476C6F774566666563740008536F66746E657373050000000000CDCCCCFC3F09 - 476C6F77436F6C6F720709784646324138324532074F70616369747905000000 - 0000000080FF3F07456E61626C6564080000000A5452656374616E676C650009 - 5374796C654E616D65060676747261636B05416C69676E070A486F727A43656E - 7465720A46696C6C2E436F6C6F72070978464631353135313507486974546573 - 74080A506F736974696F6E2E580500000000000000BC04400A53697A652E5769 - 6474680500000000000000A001400B53697A652E486569676874050000000000 - 0000C805401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6507585261646975730500000000000000A00040 - 07595261646975730500000000000000A00040000A5452656374616E676C6500 - 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F - 6E74656E74730946696C6C2E4B696E6407044E6F6E65064C6F636B6564090748 - 697454657374080C4D617267696E732E4C6566740500000000000000C001400B - 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 - 696768740500000000000000C001400E4D617267696E732E426F74746F6D0500 - 00000000000080FF3F0A53697A652E576964746805000000000000000000000B - 53697A652E4865696768740500000000000000C405401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 0A5452656374616E676C6500095374796C654E616D650609686967686C696768 - 7405416C69676E0703546F700A46696C6C2E436F6C6F72070978464632413832 - 45320748697454657374080A53697A652E57696474680500000000000000A001 - 400B53697A652E4865696768740500000000000000F003401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 07585261646975730500000000000000A0004007595261646975730500000000 - 000000A0004000000B54476C6F774566666563740008536F66746E6573730500 - 00000000CDCCCCFC3F09476C6F77436F6C6F720709784646324138324532074F - 706163697479050000000000000080FF3F07456E61626C656408000000065454 - 68756D6200095374796C654E616D650606687468756D62064C6F636B6564090A - 506F736974696F6E2E580500000000003033AB03400A506F736974696F6E2E59 - 050000000000FFFFA304400A53697A652E57696474680500000000000000F002 - 400B53697A652E4865696768740500000000000000F002401453697A652E506C - 6174666F726D44656661756C74080B5374796C654C6F6F6B7570060D7468756D - 626261727374796C65000006545468756D6200095374796C654E616D65060676 - 7468756D62064C6F636B6564090A506F736974696F6E2E58050000000000CBCC - A804400A506F736974696F6E2E590500000000009899B103400A53697A652E57 - 696474680500000000000000F002400B53697A652E4865696768740500000000 - 000000F002401453697A652E506C6174666F726D44656661756C74080B537479 - 6C654C6F6F6B7570060D7468756D626261727374796C65000000545046300754 - 4C61796F757400095374796C654E616D6506096D656D6F7374796C6505416C69 - 676E070643656E7465720A53697A652E5769647468050000000000CCCC880640 - 0B53697A652E4865696768740500000000006666F405401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 18000C5442727573684F626A65637400095374796C654E616D65060A666F7265 - 67726F756E6400000C5442727573684F626A65637400095374796C654E616D65 - 060973656C656374696F6E0B42727573682E436F6C6F72070978374634343735 - 394400000B54466F6E744F626A65637400095374796C654E616D650604666F6E - 7400000A5452656374616E676C6500095374796C654E616D65060A6261636B67 - 726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 - 07097846463230323032300748697454657374080A53697A652E576964746805 - 0000000000CCCC8806400B53697A652E4865696768740500000000006666F405 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F72070978464631353135313507585261646975730500000000000000C0 - 004007595261646975730500000000000000C000400007544C61796F75740009 - 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 - 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 - 00400A53697A652E57696474680500000000009899E905400B53697A652E4865 - 696768740500000000006666CC05401453697A652E506C6174666F726D446566 - 61756C740800000A545363726F6C6C42617200095374796C654E616D65060A68 - 7363726F6C6C62617205416C69676E0706426F74746F6D06437572736F720707 - 63724172726F770B536D616C6C4368616E676505000000000000000000000B4F - 7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E - 590500000000006666D405400A53697A652E5769647468050000000000CCCC88 - 06400B53697A652E48656967687405000000000000008003401453697A652E50 - 6C6174666F726D44656661756C740800000A545363726F6C6C42617200095374 - 796C654E616D65060A767363726F6C6C62617205416C69676E07055269676874 - 06437572736F72070763724172726F770B536D616C6C4368616E676505000000 - 000000000000000B4F7269656E746174696F6E0708566572746963616C0A506F - 736974696F6E2E580500000000009899F105400A53697A652E57696474680500 - 0000000000008003400B53697A652E4865696768740500000000006666D40540 - 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 - 0005416C69676E0706436C69656E740A53697A652E5769647468050000000000 - 9899F105400B53697A652E4865696768740500000000006666D405401453697A - 652E506C6174666F726D44656661756C7408000F54536D616C6C5363726F6C6C - 42617200095374796C654E616D65060F76736D616C6C7363726F6C6C62617205 - 416C69676E0705526967687406437572736F72070763724172726F770B536D61 - 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 - 08566572746963616C0C4D617267696E732E4C65667405000000000000008000 - 400A53697A652E576964746805000000000000008002400B53697A652E486569 - 67687405000000000000008002401453697A652E506C6174666F726D44656661 - 756C74080756697369626C650800000F54536D616C6C5363726F6C6C42617200 - 095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C6967 - 6E0706426F74746F6D06437572736F72070763724172726F770B536D616C6C43 - 68616E676505000000000000000000000B4F7269656E746174696F6E070A486F - 72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A - 53697A652E576964746805000000000000009606400B53697A652E4865696768 - 7405000000000000008002401453697A652E506C6174666F726D44656661756C - 74080756697369626C65080000000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D6506146D656D6F5374726F6B65416E696D6174696F6E3108 - 4475726174696F6E050000000000000000000007496E7665727365090C50726F - 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C - 756507097846463135313531350953746F7056616C7565070978464634303430 - 34300754726967676572062049734D6F7573654F7665723D747275653B497346 - 6F63757365643D66616C73650E54726967676572496E7665727365062149734D - 6F7573654F7665723D66616C73653B4973466F63757365643D66616C73650000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506146D656D - 6F5374726F6B65416E696D6174696F6E32084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 - 0A537461727456616C756507097846463430343034300953746F7056616C7565 - 07097846463241383245320754726967676572060E4973466F63757365643D74 - 7275650E54726967676572496E7665727365060F4973466F63757365643D6661 - 6C7365000000005450463007544C61796F757400095374796C654E616D65060D - 73697A65677269707374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000000000C803400B53697A652E486569676874050000 - 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F726465720219000A5452656374616E676C650009 - 5374796C654E616D65060A52656374616E676C653105416C69676E070643656E - 7465720A46696C6C2E436F6C6F7207097846463630363036300A53697A652E57 - 696474680500000000000000A000400B53697A652E4865696768740500000000 - 000000A000401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009537479 - 6C654E616D65060A52656374616E676C653205416C69676E070643656E746572 - 0A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C - 6566740500000000000000A002400A53697A652E576964746805000000000000 - 00A000400B53697A652E4865696768740500000000000000A000401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6500000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653305416C69676E070643656E7465720A46696C6C2E436F6C6F72 - 07097846463630363036300C4D617267696E732E4C6566740500000000000000 - A002400B4D617267696E732E546F700500000000000000A002400A53697A652E - 57696474680500000000000000A000400B53697A652E48656967687405000000 - 00000000A000401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653405416C69676E070643656E7465 - 720A46696C6C2E436F6C6F7207097846463630363036300B4D617267696E732E - 546F700500000000000000A002400A53697A652E576964746805000000000000 - 00A000400B53697A652E4865696768740500000000000000A000401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6500000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653505416C69676E070643656E7465720A46696C6C2E436F6C6F72 - 07097846463630363036300B4D617267696E732E546F700500000000000000A0 - 02400D4D617267696E732E52696768740500000000000000A002400A53697A65 - 2E57696474680500000000000000A000400B53697A652E486569676874050000 - 0000000000A000401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65000953 - 74796C654E616D65060A52656374616E676C653605416C69676E070643656E74 - 65720A46696C6C2E436F6C6F7207097846463630363036300C4D617267696E73 - 2E4C6566740500000000000000A002400E4D617267696E732E426F74746F6D05 - 00000000000000A002400A53697A652E57696474680500000000000000A00040 - 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0000545046300A5452656374616E676C6500095374796C654E616D65060E7374 - 617475736261727374796C6505416C69676E070643656E7465720C436C697043 - 68696C6472656E090A46696C6C2E436F6C6F7207097846463235323532350553 - 696465730B03546F70000A53697A652E57696474680500000000000000F00440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 35313531350756697369626C65080007544C61796F757400095374796C654E61 - 6D6506074C61796F75743105416C69676E070552696768740A506F736974696F - 6E2E5805000000000000008C04400A53697A652E576964746805000000000000 - 00C803400B53697A652E4865696768740500000000000000C804401453697A65 - 2E506C6174666F726D44656661756C740800095453697A654772697000095374 - 796C654E616D65060973697A65677267697005416C69676E0706426F74746F6D - 0A506F736974696F6E2E590500000000000000C803400A53697A652E57696474 - 680500000000000000C803400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C740800000000545046 - 300A5452656374616E676C6500095374796C654E616D65060C746F6F6C626172 - 7374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F720709 - 7846463235323532350748697454657374080553696465730B06426F74746F6D - 000A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313507566973 - 69626C650800005450463007544C61796F757400095374796C654E616D650615 - 70726F67726573736261726572726F727374796C6505416C69676E070643656E - 7465720A53697A652E576964746805000000000033338505400B53697A652E48 - 65696768740500000000009999E104401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F72646572021A000A54526563 - 74616E676C6500095374796C654E616D65060668747261636B05416C69676E07 - 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230323006 - 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 - 0033338505400B53697A652E4865696768740500000000009999E10440145369 - 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 070978464631353135313507585261646975730500000000000000C000400759 - 5261646975730500000000000000C00040000A5452656374616E676C65000953 - 74796C654E616D65060A68696E64696361746F7205416C69676E07044C656674 - 0A46696C6C2E436F6C6F720709784646453232413241064C6F636B6564090748 - 697454657374080C4D617267696E732E4C656674050000000000000080FF3F0B - 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 - 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 - 00000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A - 506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000009999D9 - 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E6507585261646975730500000000000000C00040075952 - 61646975730500000000000000C000400000000A5452656374616E676C650009 - 5374796C654E616D65060676747261636B05416C69676E0708436F6E74656E74 - 730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 - 48697454657374080A53697A652E576964746805000000000033338505400B53 - 697A652E4865696768740500000000009999E104401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 35313507585261646975730500000000000000C0004007595261646975730500 - 000000000000C00040000A5452656374616E676C6500095374796C654E616D65 - 060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E - 436F6C6F720709784646453232413241064C6F636B6564090748697454657374 - 080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E - 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 - 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 - 80FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73697469 - 6F6E2E5905000000000099998904400A53697A652E5769647468050000000000 - 33338105400B53697A652E4865696768740500000000000000A803401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6507585261646975730500000000000000C00040075952616469757305 - 00000000000000C00040000000005450463007544C61796F757400095374796C - 654E616D65060E6C696E6B6C6162656C7374796C6505416C69676E070643656E - 7465720A53697A652E5769647468050000000000CCCC8006400B53697A652E48 - 65696768740500000000009A998104401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F72646572021B000554546578 - 7400095374796C654E616D6506047465787405416C69676E0708436F6E74656E - 74730748697454657374080A53697A652E5769647468050000000000CCCC8006 - 400B53697A652E4865696768740500000000009A998104401453697A652E506C - 6174666F726D44656661756C74081A5465787453657474696E67732E466F6E74 - 2E5374796C654578740A0D000000040400000000000000040000001654657874 - 53657474696E67732E466F6E74436F6C6F72070D636C61446F64676572626C75 - 65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 - 6F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05000000 - 0000000000000007496E7665727365090C50726F70657274794E616D65061654 - 65787453657474696E67732E466F6E74436F6C6F720A537461727456616C7565 - 070D636C61446F64676572626C75650953746F7056616C7565070E636C614465 - 6570736B79626C75650754726967676572063049734D6F7573654F7665723D74 - 7275653B4973507265737365643D66616C73653B4973466F63757365643D6661 - 6C73650E54726967676572496E7665727365063149734D6F7573654F7665723D - 66616C73653B4973507265737365643D66616C73653B4973466F63757365643D - 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F - 6E05000000000000000000000C50726F70657274794E616D6506165465787453 - 657474696E67732E466F6E74436F6C6F720A537461727456616C7565070E636C - 6144656570736B79626C75650953746F7056616C756507097846463137353739 - 430754726967676572062F4973507265737365643D747275653B49734D6F7573 - 654F7665723D747275653B4973466F63757365643D66616C7365000000005450 - 463007544C61796F757400095374796C654E616D65060C706F706F7665727374 - 796C6505416C69676E070643656E7465720756697369626C6508085461624F72 - 646572021C000A5452656374616E676C6500095374796C654E616D6506026267 - 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230 - 323032300748697454657374080A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000C804401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 464631353135313507585261646975730500000000000000C000400759526164 - 6975730500000000000000C000400007544C61796F757400095374796C654E61 - 6D650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E - 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 - 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF - 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 - 2E57696474680500000000000000C004400B53697A652E486569676874050000 - 0000000000C004401453697A652E506C6174666F726D44656661756C74080000 - 0D54536861646F77456666656374000844697374616E63650500000000000000 - C0004009446972656374696F6E0500000000000000B4054008536F66746E6573 - 73050000000000000080FE3F074F706163697479050000000000000080FE3F0B - 536861646F77436F6C6F720708636C61426C61636B000000005450463007544C - 61796F757400095374796C654E616D65060D706F707570626F787374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000000080 - C406400B53697A652E4865696768740500000000000000D404401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 - 6572021D000A5452656374616E676C6500095374796C654E616D65060A626163 - 6B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C - 6F7207097846463230323032300748697454657374080A53697A652E57696474 - 680500000000000080C406400B53697A652E4865696768740500000000000000 - D404401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6507585261646975730500000000000000C000400759 - 5261646975730500000000000000C00040000F54436F6C6F72416E696D617469 + 6F726D44656661756C74080B5374796C654C6F6F6B757006157363726F6C6C62 + 6172626F74746F6D627574746F6E00000654547261636B00095374796C654E61 + 6D65060668747261636B05416C69676E0706436C69656E74064C6F636B656409 + 0B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E5769 + 64746805000000000000009003400B53697A652E486569676874050000000000 + 00009003401453697A652E506C6174666F726D44656661756C74080B5374796C + 654C6F6F6B757006147363726F6C6C62617268747261636B7374796C65000006 + 54547261636B00095374796C654E616D65060676747261636B05416C69676E07 + 06436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0A53697A652E576964746805000000000000009003400B5369 + 7A652E48656967687405000000000000009003401453697A652E506C6174666F + 726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C6261 + 7276747261636B7374796C6500000754427574746F6E00095374796C654E616D + 650609746F70627574746F6E05416C69676E0703546F700A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 008003401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B757006127363726F6C6C626172746F70627574746F6E000000545046 + 300A5452656374616E676C6500095374796C654E616D65060A7468756D627374 + 796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463444344434440748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E650756697369626C6508000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E31 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646344434 + 4434440953746F7056616C756507097846463137353739430754726967676572 + 060E4973507265737365643D747275650E54726967676572496E766572736506 + 0F4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374 796C65084475726174696F6E05000000000000000000000C50726F7065727479 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 - 3230323032300953746F7056616C756507097846463430343034300754726967 - 676572062049734D6F7573654F7665723D747275653B4973507265737365643D - 66616C73650E54726967676572496E7665727365062149734D6F7573654F7665 - 723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 - 74696F6E325374796C65084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463430343034300953746F7056616C7565070978464632413832 - 45320754726967676572062049734D6F7573654F7665723D747275653B497350 - 7265737365643D747275653B0E54726967676572496E7665727365062049734D - 6F7573654F7665723D747275653B4973507265737365643D66616C7365000000 - 07544C61796F75740005416C69676E070552696768740A506F736974696F6E2E - 580500000000000080B506400A53697A652E57696474680500000000000000F0 - 02400B53697A652E4865696768740500000000000000D404401453697A652E50 - 6C6174666F726D44656661756C7408000554506174680005416C69676E070643 - 656E74657209446174612E506174680A40000000050000000000000000000000 - 0000803F010000000000803F0000803F010000000000003F0000000001000000 - 000000000000803F0300000000000000000000000A46696C6C2E436F6C6F7207 - 08636C6157686974650748697454657374080B4D617267696E732E546F700500 - 000000000000E001C00A53697A652E576964746805000000000000008002400B - 53697A652E48656967687405000000000000008001401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 0554506174680005416C69676E070643656E74657209446174612E506174680A - 3400000004000000000000000000000000000000010000000000803F00000000 - 010000000000003F0000803F0300000000000000000000000A46696C6C2E436F - 6C6F720708636C6157686974650748697454657374080B4D617267696E732E54 - 6F700500000000000000C001400A53697A652E57696474680500000000000000 - 8002400B53697A652E48656967687405000000000000008001401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E6500000005545465787400095374796C654E616D6506047465787405416C69 - 676E0706436C69656E740748697454657374080C4D617267696E732E4C656674 - 050000000000000080FF3F0B4D617267696E732E546F70050000000000000080 - FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267 - 696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769647468 - 0500000000000080B306400B53697A652E4865696768740500000000000000CC - 04401453697A652E506C6174666F726D44656661756C74081654657874536574 - 74696E67732E466F6E74436F6C6F720708636C61576869746500000054504630 - 07544C61796F757400095374796C654E616D6506157363726F6C6C626172626F - 74746F6D627574746F6E05416C69676E070643656E7465720756697369626C65 - 08085461624F72646572021E000A5452656374616E676C6500095374796C654E - 616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C - 69704368696C6472656E090A436C6970506172656E740907436F726E6572730B - 07546F704C65667408546F705269676874000A46696C6C2E436F6C6F72070978 - 46463230323032300748697454657374080A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000C804401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6507585261646975730500000000000000C0004007595261646975 - 730500000000000000C00040000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108 - 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 - 32300953746F7056616C75650709784646343034303430075472696767657206 - 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 - 650E54726967676572496E7665727365062149734D6F7573654F7665723D6661 - 6C73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D + 3444344434440953746F7056616C75650707636C614772617907547269676765 + 72061049734D6F7573654F7665723D747275650E54726967676572496E766572 + 7365061149734D6F7573654F7665723D66616C7365000000545046300D545377 + 697463684F626A65637400095374796C654E616D65060B737769746368737479 + 6C6505416C69676E070643656E746572044B696E64070C466164696E67547261 + 636B730A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C7408085461624F72646572020F12547261636B696E675468756D6253 + 63616C65050000000000000080FF3F0756697369626C65080A46696C6C2E436F + 6C6F7207097846463230323032300C46696C6C4F6E2E436F6C6F720709784646 + 3137353739430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F6B65 + 2E4B696E6407044E6F6E650B5468756D622E436F6C6F72070978464634303430 + 34300D5468756D624F6E2E436F6C6F7207097846463241383245320C5468756D + 624F6E2E4B696E640705536F6C6964105468756D625374726F6B652E4B696E64 + 07044E6F6E650F5468756D625374726F6B652E4361700705526F756E64105468 + 756D625374726F6B652E446173680706437573746F6D105468756D625374726F + 6B652E4A6F696E0705526F756E64165468756D625374726F6B652E437573746F + 6D446173680A08000000000000000000000000005450463007544C61796F7574 + 00095374796C654E616D65060D636F6D626F626F787374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000000C805400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572021000 + 0C5442727573684F626A65637400095374796C654E616D65060A666F72656772 + 6F756E6400000B54466F6E744F626A65637400095374796C654E616D65060466 + 6F6E7409466F6E742E53697A650500000000000000D00240000007544C61796F + 757400095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 08436F6E74656E74730A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C7408000A5452656374616E676C6500095374796C654E + 616D65060A52656374616E676C653105416C69676E0706436C69656E740A4669 + 6C6C2E436F6C6F7207097846463230323032300748697454657374080A53697A + 652E57696474680500000000000000C805400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E650007544C61796F757400095374796C + 654E616D650611427574746F6E5374796C654F626A65637405416C69676E0708 + 46697452696768740B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000 + 0000005ED99705400A506F736974696F6E2E59050000000000000080FF3F0A53 + 697A652E5769647468050000000000889AB803400B53697A652E486569676874 + 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 + 080007544C61796F757400095374796C654E616D6506074C61796F7574310541 + 6C69676E070643656E7465720C4D617267696E732E4C65667405000000000000 + 0080FF3F0A53697A652E57696474680500000000000000A002400B53697A652E + 4865696768740500000000000000C001401453697A652E506C6174666F726D44 + 656661756C74080005545061746800095374796C654E616D6506055061746831 + 05416C69676E0706436C69656E7409446174612E506174680A34000000040000 + 00000000000000C8420000C84201000000000096430000C84201000000000048 + 4300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C + 6157686974650748697454657374080A53697A652E5769647468050000000000 + 0000A002400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000000000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650615627574746F6E436F6C6F72416E696D6174696F6E31084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646323032303230095374 + 6F7056616C756507097846463430343034300754726967676572063049734D6F + 7573654F7665723D747275653B4973507265737365643D66616C73653B497346 + 6F63757365643D66616C73650E54726967676572496E7665727365063149734D + 6F7573654F7665723D66616C73653B4973507265737365643D66616C73653B49 + 73466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F + 6E32084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464634 + 30343034300953746F7056616C75650709784646313735373943075472696767 + 6572062F4973507265737365643D747275653B49734D6F7573654F7665723D74 + 7275653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 - 6D6174696F6E32084475726174696F6E05000000000000000000000C50726F70 + 6D6174696F6E33084475726174696F6E05000000000000000000000C50726F70 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463430343034300953746F7056616C7565070978464631373537394307 - 54726967676572061F4973507265737365643D747275653B49734D6F7573654F - 7665723D747275650E54726967676572496E7665727365062049735072657373 - 65643D66616C73653B49734D6F7573654F7665723D7472756500000007544C61 - 796F757400095374796C654E616D6506074C61796F75743105416C69676E0706 - 43656E7465720A53697A652E57696474680500000000000000A002400B53697A - 652E4865696768740500000000000000C001401453697A652E506C6174666F72 - 6D44656661756C74080005545061746800095374796C654E616D650605506174 - 683105416C69676E0706436C69656E7409446174612E506174680A3400000004 - 000000000000000000C8420000C84201000000000096430000C8420100000000 - 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 - 636C6157686974650748697454657374080A53697A652E576964746805000000 - 00000000A002400B53697A652E4865696768740500000000000000C001401453 + 097846463241383245320953746F7056616C7565070978464631373537394307 + 54726967676572062E4973507265737365643D747275653B49734D6F7573654F + 7665723D747275653B4973466F63757365643D747275650E5472696767657249 + 6E7665727365062F4973507265737365643D66616C73653B49734D6F7573654F + 7665723D747275653B4973466F63757365643D747275650000000007544C6179 + 6F757400095374796C654E616D650607636F6E74656E7405416C69676E070643 + 6C69656E74064C6F636B6564090C4D617267696E732E4C656674050000000000 + 00008000400B4D617267696E732E546F7005000000000000008000400D4D6172 + 67696E732E52696768740500000000000000D803400E4D617267696E732E426F + 74746F6D05000000000000008000400A53697A652E5769647468050000000000 + 00008E05400B53697A652E4865696768740500000000000000A803401453697A + 652E506C6174666F726D44656661756C74080000005450463007544C61796F75 + 7400095374796C654E616D65060E636F6D626F656469747374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 11000C5442727573684F626A65637400095374796C654E616D65060A666F7265 + 67726F756E6400000B54466F6E744F626A65637400095374796C654E616D6506 + 04666F6E7409466F6E742E53697A650500000000000000D00240000007544C61 + 796F757400095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E74730A53697A652E57696474680500000000000000C805 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C7408000A5452656374616E676C6500095374796C + 654E616D65060A52656374616E676C653105416C69676E0706436C69656E740A + 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F720709784646323032303230000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D + 6174696F6E315374796C65084475726174696F6E050000000000000000000007 + 496E7665727365090C50726F70657274794E616D65060C5374726F6B652E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973466F63 + 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65084475 + 726174696F6E050000000000000000000007496E7665727365090C50726F7065 + 7274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565 + 07097846463430343034300953746F7056616C75650709784646324138324532 + 0754726967676572061F49734D6F7573654F7665723D747275653B4973466F63 + 757365643D747275650E54726967676572496E7665727365062049734D6F7573 + 654F7665723D747275653B4973466F63757365643D66616C7365000007544C61 + 796F757400095374796C654E616D6506056172726F7705416C69676E07084669 + 7452696768740B4D617267696E732E546F70050000000000000080FF3F0D4D61 + 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 + 6F74746F6D050000000000000080FF3F0A506F736974696F6E2E580500000000 + 005ED99705400A506F736974696F6E2E59050000000000000080FF3F0A53697A + 652E5769647468050000000000889AB803400B53697A652E4865696768740500 + 000000000000B803401453697A652E506C6174666F726D44656661756C740800 + 0A5452656374616E676C6500095374796C654E616D65060A52656374616E676C + 653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 46463330333033300748697454657374080A53697A652E576964746805000000 + 0000889AB803400B53697A652E4865696768740500000000000000B803401453 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000000005450463007544C61796F757400095374796C654E616D - 6506137363726F6C6C6261726C656674627574746F6E05416C69676E07064365 - 6E7465720756697369626C6508085461624F72646572021F000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 - 6E740907436F726E6572730B07546F704C6566740A426F74746F6D4C65667400 - 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080A + 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F + 6E050000000000000000000007496E7665727365090C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463330 + 333033300953746F7056616C7565070978464634303430343007547269676765 + 72062049734D6F7573654F7665723D747275653B4973466F63757365643D6661 + 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D + 66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E325374796C65084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463430343034300953746F7056616C75650709784646313735373943 + 0754726967676572061F4973466F63757365643D747275653B49734D6F757365 + 4F7665723D7472756500000007544C61796F757400095374796C654E616D6506 + 074C61796F75743105416C69676E070643656E7465720C4D617267696E732E4C + 656674050000000000000080FF3F0A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080005545061746800095374796C654E + 616D650605506174683105416C69676E0706436C69656E7409446174612E5061 + 74680A3400000004000000000000000000C8420000C842010000000000964300 + 00C842010000000000484300009643030000000000C8420000C8420A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 + 696474680500000000000000A002400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E650000000000000C5442727573684F626A6563 + 7400095374796C654E616D65060973656C656374696F6E0B42727573682E436F + 6C6F720709783936324138324532000007544C61796F757400095374796C654E + 616D650607636F6E74656E7405416C69676E0706436C69656E740C4D61726769 + 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 + 0000000000008000400D4D617267696E732E52696768740500000000000000F0 + 03400E4D617267696E732E426F74746F6D05000000000000008000400A53697A + 652E576964746805000000000000008805400B53697A652E4865696768740500 + 000000000000A803401453697A652E506C6174666F726D44656661756C740800 + 00005450463007544C61796F757400095374796C654E616D65060F746162636F + 6E74726F6C7374796C6505416C69676E070643656E7465720A53697A652E5769 + 64746805000000000000008E06400B53697A652E486569676874050000000000 + FFFFC905401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F726465720212000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F720709784646333033303330064C6F636B656409 + 0748697454657374080C50616464696E672E4C65667405000000000000008000 + 400B50616464696E672E546F7005000000000000008000400D50616464696E67 + 2E526967687405000000000000008000400E50616464696E672E426F74746F6D + 05000000000000008000400A53697A652E576964746805000000000000008E06 + 400B53697A652E486569676874050000000000FFFFC905401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 313531353135000000545046300A5452656374616E676C6500095374796C654E + 616D65060B746162646F747374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 + 7A652E576964746805000000000000008005400B53697A652E48656967687405 + 000000000000008001401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F54436F + 6C6F72416E696D6174696F6E00084475726174696F6E05000000000018B7D1F2 + 3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463135313531350953746F7056616C7565070978464632 + 41383245320754726967676572060F497353656C65637465643D747275650E54 + 726967676572496E76657273650610497353656C65637465643D66616C736500 + 00005450463007544C61796F757400095374796C654E616D65060C7461626974 + 656D7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F726465720214000A5452656374616E676C6500095374796C654E + 616D650603746F7005416C69676E0708436F6E74656E74730C436C6970436869 + 6C6472656E0907436F726E6572730B07546F704C65667408546F705269676874 + 000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 + 48697454657374080553696465730B03546F70044C656674055269676874000A 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 00000000C0004007595261646975730500000000000000C00040000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F - 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 - 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463230323032300953746F7056616C7565070978464634 - 30343034300754726967676572062049734D6F7573654F7665723D747275653B - 4973507265737365643D66616C73650E54726967676572496E76657273650621 - 49734D6F7573654F7665723D66616C73653B4973507265737365643D66616C73 - 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 - 627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E0500 - 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C756507097846463430343034300953746F7056616C - 756507097846463137353739430754726967676572061F497350726573736564 - 3D747275653B49734D6F7573654F7665723D747275650E54726967676572496E - 766572736506204973507265737365643D66616C73653B49734D6F7573654F76 - 65723D7472756500000007544C61796F757400095374796C654E616D6506074C - 61796F75743105416C69676E070643656E7465720A53697A652E576964746805 - 00000000000000A002400B53697A652E4865696768740500000000000000C001 - 401453697A652E506C6174666F726D44656661756C7408000554506174680009 - 5374796C654E616D650605506174683105416C69676E0706436C69656E740944 - 6174612E506174680A3400000004000000000000000000C8420000C842010000 - 00000096430000C842010000000000484300009643030000000000C8420000C8 - 420A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D - 526F746174696F6E416E676C650500000000000000B405400A53697A652E5769 - 6474680500000000000000A002400B53697A652E486569676874050000000000 - 0000C001401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574000953 - 74796C654E616D6506147363726F6C6C6261727269676874627574746F6E0541 - 6C69676E070643656E7465720756697369626C6508085461624F726465720220 - 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F - 756E6405416C69676E0706436C69656E740C436C69704368696C6472656E090A - 436C6970506172656E740907436F726E6572730B08546F7052696768740B426F - 74746F6D5269676874000A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000000000C804401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758 - 5261646975730500000000000000C00040075952616469757305000000000000 - 00C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E - 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 - 616C756507097846463430343034300754726967676572062049734D6F757365 - 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 - 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 - 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3208 - 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464634303430 - 34300953746F7056616C75650709784646313735373943075472696767657206 - 1F4973507265737365643D747275653B49734D6F7573654F7665723D74727565 - 0E54726967676572496E766572736506204973507265737365643D66616C7365 - 3B49734D6F7573654F7665723D7472756500000007544C61796F757400095374 - 796C654E616D6506074C61796F75743105416C69676E070643656E7465720A53 - 697A652E57696474680500000000000000A002400B53697A652E486569676874 - 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 - 080005545061746800095374796C654E616D650605506174683105416C69676E - 0706436C69656E7409446174612E506174680A34000000040000000000000000 - 00C8420000C84201000000000096430000C84201000000000048430000964303 - 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 - 0748697454657374080D526F746174696F6E416E676C650500000000000000B4 - 05C00A53697A652E57696474680500000000000000A002400B53697A652E4865 - 696768740500000000000000C001401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007 - 544C61796F757400095374796C654E616D6506127363726F6C6C626172746F70 - 627574746F6E05416C69676E070643656E7465720756697369626C6508085461 - 624F726465720221000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0706436C69656E740C436C69704368 - 696C6472656E090A436C6970506172656E740907436F726E6572730B07546F70 - 4C65667408546F705269676874000A46696C6C2E436F6C6F7207097846463230 - 323032300748697454657374080A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000C804401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E6507585261646975730500000000000000C000400759526164697573050000 - 0000000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C65 - 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E310844757261 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000654476C79 + 706800095374796C654E616D65060A676C7970687374796C650C4D617267696E + 732E4C65667405000000000000008001400D4D617267696E732E526967687405 + 000000000000008001C005416C69676E07044C6566740A53697A652E57696474 + 6805000000000000008003400B53697A652E4865696768740500000000000000 + 8003401453697A652E506C6174666F726D44656661756C740800000554546578 + 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 000000000000C000400B4D617267696E732E546F700500000000000000C00040 + 0D4D617267696E732E52696768740500000000000000C000400E4D617267696E + 732E426F74746F6D0500000000000000C000400A53697A652E57696474680500 + 000000000000B004400B53697A652E4865696768740500000000000000980340 + 1453697A652E506C6174666F726D44656661756C740816546578745365747469 + 6E67732E466F6E74436F6C6F720708636C615768697465155465787453657474 + 696E67732E576F7264577261700800000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650612746162436F6C6F72416E696D6174696F6E310D + 416E696D6174696F6E547970650705496E4F7574084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463230323032300953746F7056616C75 + 6507097846463430343034300754726967676572062149734D6F7573654F7665 + 723D747275653B497353656C65637465643D66616C73650E5472696767657249 + 6E7665727365062249734D6F7573654F7665723D66616C73653B497353656C65 + 637465643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650612746162436F6C6F72416E696D6174696F6E320844757261 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 - 746F7056616C756507097846463430343034300754726967676572062049734D - 6F7573654F7665723D747275653B4973507265737365643D66616C73650E5472 - 6967676572496E7665727365062149734D6F7573654F7665723D66616C73653B - 4973507265737365643D66616C736500000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D617469 - 6F6E32084475726174696F6E05000000000000000000000C50726F7065727479 - 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 - 3430343034300953746F7056616C756507097846463137353739430754726967 - 676572061F4973507265737365643D747275653B49734D6F7573654F7665723D - 747275650E54726967676572496E766572736506204973507265737365643D66 - 616C73653B49734D6F7573654F7665723D7472756500000007544C61796F7574 - 00095374796C654E616D6506074C61796F75743105416C69676E070643656E74 - 65720A53697A652E57696474680500000000000000A002400B53697A652E4865 - 696768740500000000000000C001401453697A652E506C6174666F726D446566 - 61756C74080005545061746800095374796C654E616D65060550617468310541 - 6C69676E0706436C69656E7409446174612E506174680A340000000400000000 - 0000000000C8420000C84201000000000096430000C842010000000000484300 - 009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C6157 - 686974650748697454657374080D526F746174696F6E416E676C650500000000 - 000000B406400A53697A652E57696474680500000000000000A002400B53697A - 652E4865696768740500000000000000C001401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054 - 50463007544C61796F757400095374796C654E616D65060D636F6D626F626F78 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000C805400B53697A652E4865696768740500000000000000C80340 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720222000C5442727573684F626A65637400095374796C654E - 616D65060A666F726567726F756E6400000B54466F6E744F626A656374000953 - 74796C654E616D650604666F6E7409466F6E742E53697A650500000000000000 - D00240000007544C61796F757400095374796C654E616D65060A6261636B6772 - 6F756E6405416C69676E0708436F6E74656E74730A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E - 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E - 0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032300748 - 697454657374080A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 - 646975730500000000000000C0004007595261646975730500000000000000C0 - 00400007544C61796F757400095374796C654E616D650611427574746F6E5374 - 796C654F626A65637405416C69676E070846697452696768740B4D617267696E - 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 - 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 - 80FF3F0A506F736974696F6E2E580500000000005ED99705400A506F73697469 - 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 - 889AB803400B53697A652E4865696768740500000000000000B803401453697A - 652E506C6174666F726D44656661756C74080007544C61796F75740009537479 - 6C654E616D6506074C61796F75743105416C69676E070643656E7465720C4D61 - 7267696E732E4C656674050000000000000080FF3F0A53697A652E5769647468 - 0500000000000000A002400B53697A652E4865696768740500000000000000C0 - 01401453697A652E506C6174666F726D44656661756C74080005545061746800 - 095374796C654E616D650605506174683105416C69676E0706436C69656E7409 - 446174612E506174680A3400000004000000000000000000C8420000C8420100 - 0000000096430000C842010000000000484300009643030000000000C8420000 - C8420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0A53697A652E57696474680500000000000000A002400B53697A652E48656967 - 68740500000000000000C001401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000000000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 - 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463230323032300953746F7056616C7565070978464634303430 - 34300754726967676572062149734D6F7573654F7665723D747275653B497350 - 7265737365643D66616C73653B0E54726967676572496E766572736506224973 - 4D6F7573654F7665723D66616C73653B4973507265737365643D66616C73653B - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 - 6F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05000000 - 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463430343034300953746F7056616C7565 - 07097846463241383245320754726967676572062049734D6F7573654F766572 - 3D747275653B4973466F63757365643D747275653B0E54726967676572496E76 - 65727365062149734D6F7573654F7665723D747275653B4973466F6375736564 - 3D66616C73653B0000000007544C61796F757400095374796C654E616D650607 - 636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D61 - 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F - 7005000000000000008000400D4D617267696E732E5269676874050000000000 - 0000D803400E4D617267696E732E426F74746F6D05000000000000008000400A - 53697A652E576964746805000000000000008E05400B53697A652E4865696768 - 740500000000000000A803401453697A652E506C6174666F726D44656661756C - 7408000000545046300A5452656374616E676C6500095374796C654E616D6506 - 147374617475736261726E6F677269707374796C6505416C69676E070643656E - 7465720C436C69704368696C6472656E090A46696C6C2E436F6C6F7207097846 - 463235323532350553696465730B03546F70000A53697A652E57696474680500 - 000000000000F004400B53697A652E4865696768740500000000000000C80440 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F7207097846463135313531350756697369626C650800005450463007544C - 61796F757400095374796C654E616D650613736D616C6C7363726F6C6C626172 - 7374796C6505416C69676E070643656E7465720756697369626C650808546162 - 4F726465720223000654547261636B00095374796C654E616D65060668747261 - 636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E7461 - 74696F6E070A486F72697A6F6E74616C0A53697A652E57696474680500000000 - 000000C804400B53697A652E4865696768740500000000000000C80440145369 - 7A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006 - 147363726F6C6C62617268747261636B7374796C6500000654547261636B0009 - 5374796C654E616D65060676747261636B05416C69676E0706436C69656E7406 - 4C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374796C654C6F6F6B757006147363726F6C6C62617276747261636B73 - 74796C650000005450463007544C61796F757400095374796C654E616D65060D - 73706C69747465727374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000000000A904400B53697A652E486569676874050000 - 0000000080C105401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F7264657202240007544C61796F75740009537479 - 6C654E616D6506046772697005416C69676E0706436C69656E740A53697A652E - 57696474680500000000000000A904400B53697A652E48656967687405000000 - 00000080C105401453697A652E506C6174666F726D44656661756C7408000754 - 436972636C6500095374796C654E616D650607436972636C653105416C69676E - 070643656E7465720A46696C6C2E436F6C6F7207097846463430343034300A53 - 697A652E57696474680500000000000000E001400B53697A652E486569676874 - 0500000000000000E001401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F72070978464631353135313500000754436972 - 636C6500095374796C654E616D650607436972636C653205416C69676E070643 - 656E7465720A46696C6C2E436F6C6F7207097846463430343034300B4D617267 - 696E732E546F700500000000000000A003400A53697A652E5769647468050000 - 0000000000E001400B53697A652E4865696768740500000000000000E0014014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F72070978464631353135313500000754436972636C6500095374796C654E61 - 6D650607436972636C653305416C69676E070643656E7465720A46696C6C2E43 - 6F6C6F7207097846463430343034300E4D617267696E732E426F74746F6D0500 - 000000000000A003400A53697A652E57696474680500000000000000E001400B - 53697A652E4865696768740500000000000000E001401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 31353135000000005450463007544C61796F757400095374796C654E616D6506 - 106D656E756261726974656D7374796C6505416C69676E070643656E7465720C - 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A53697A652E576964746805000000000000009205400B53697A652E486569 + 746F7056616C756507097846463241383245320754726967676572060F497353 + 656C65637465643D747275650E54726967676572496E76657273650610497353 + 656C65637465643D66616C736500000000545046300A5452656374616E676C65 + 00095374796C654E616D65060D7468756D626261727374796C6505416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463241383245320748 + 697454657374080A53697A652E57696474680500000000000000A003400B5369 + 7A652E4865696768740500000000000000A003401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350756697369626C6508000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E31084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646324138324532 + 0953746F7056616C756507097846463137353739430754726967676572061F49 + 73507265737365643D747275653B49734D6F7573654F7665723D747275650E54 + 726967676572496E766572736506104973507265737365643D66616C73653B00 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506147468 + 756D62436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000 + 0000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463241383245320953746F7056616C756507 + 097846463430394246460754726967676572062049734D6F7573654F7665723D + 747275653B4973507265737365643D66616C73650E54726967676572496E7665 + 727365062149734D6F7573654F7665723D66616C73653B497350726573736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D6506157468756D625374726F6B65416E696D6174696F6E31084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D65060C537472 + 6F6B652E436F6C6F720A537461727456616C7565070978464631353135313509 + 53746F7056616C756507097846463137353739430754726967676572061F4973 + 507265737365643D747275653B49734D6F7573654F7665723D747275650E5472 + 6967676572496E7665727365060F4973507265737365643D66616C7365000000 + 5450463007544C61796F757400095374796C654E616D65060C6C697374626F78 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 00000000FFFFE905400B53697A652E4865696768740500000000000000830640 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F726465720216000C5442727573684F626A65637400095374796C654E + 616D650618416C7465726E6174696E67526F774261636B67726F756E640B4272 + 7573682E436F6C6F72070978464632433243324300000A5452656374616E676C + 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C + 6F636B6564090748697454657374080C50616464696E672E4C65667405000000 + 000000008000400B50616464696E672E546F7005000000000000008000400D50 + 616464696E672E526967687405000000000000008000400E50616464696E672E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 0000FFFFE905400B53697A652E48656967687405000000000000008306401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350007544C61796F757400095374796C654E616D65 + 0607636F6E74656E7405416C69676E0706436C69656E740C436C69704368696C + 6472656E090A53697A652E5769647468050000000000FFFFC105400B53697A65 + 2E4865696768740500000000000000DE05401453697A652E506C6174666F726D + 44656661756C7408000A5452656374616E676C6500095374796C654E616D6506 + 0973656C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0A5452656374616E676C6500095374796C654E616D650610666F637573656473 + 656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B537472 + 6F6B652E446173680703446F740000000A545363726F6C6C4261720009537479 + 6C654E616D65060A767363726F6C6C62617205416C69676E070552696768740B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E0708566572746963616C0A506F736974696F6E2E58050000000000FFFFC5 + 05400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 + 64746805000000000000008003400B53697A652E486569676874050000000000 + 0000DE05401453697A652E506C6174666F726D44656661756C740800000A5453 + 63726F6C6C42617200095374796C654E616D65060A687363726F6C6C62617205 + 416C69676E0706426F74746F6D0B536D616C6C4368616E676505000000000000 + 000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F73 + 6974696F6E2E5805000000000000008000400A506F736974696F6E2E59050000 + 0000000000E205400A53697A652E5769647468050000000000FFFFE105400B53 + 697A652E48656967687405000000000000008003401453697A652E506C617466 + 6F726D44656661756C740800000F54536D616C6C5363726F6C6C426172000953 + 74796C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E07 + 0552696768740B536D616C6C4368616E676505000000000000000000000B4F72 + 69656E746174696F6E0708566572746963616C0C4D617267696E732E4C656674 + 05000000000000008000400A506F736974696F6E2E580500000000000000C605 + 400A506F736974696F6E2E5905000000000000008000400A53697A652E576964 + 746805000000000000008002400B53697A652E48656967687405000000000000 + 008002401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C650800000F54536D616C6C5363726F6C6C42617200095374796C654E616D65 + 060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E070A486F72697A6F6E74616C0B4D617267696E732E546F70050000000000 + 00008000400A506F736974696F6E2E5805000000000000008000400A506F7369 + 74696F6E2E590500000000000000E205400A53697A652E576964746805000000 + 000000009606400B53697A652E48656967687405000000000000008002401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000000 + 0B54476C6F774566666563740008536F66746E657373050000000000CDCCCCFC + 3F09476C6F77436F6C6F720709784646463639453244074F7061636974790500 + 000000006666E6FE3F0754726967676572060E4973466F63757365643D747275 + 6507456E61626C6564080000005450463007544C61796F757400095374796C65 + 4E616D65060D6C697374626F78666F6F74657205416C69676E070643656E7465 + 720A53697A652E576964746805000000000000009205400B53697A652E486569 6768740500000000000000D003401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508085461624F726465720225000A545265637461 - 6E676C650005416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 - 0709784646324138324532074869745465737408074F70616369747905000000 - 000017B7D1F13F0A53697A652E576964746805000000000000009205400B5369 - 7A652E4865696768740500000000000000D003401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5446 - 6C6F6174416E696D6174696F6E00084475726174696F6E05000000000018B7D1 - F23F0C50726F70657274794E616D6506074F7061636974790A53746172745661 - 6C756505000000000000000000000953746F7056616C75650500000000000000 - 80FF3F0754726967676572060F497353656C65637465643D747275650E547269 - 67676572496E76657273650610497353656C65637465643D66616C7365000000 - 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 - 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 - 4646324138324532074869745465737408074F70616369747905000000000017 - B7D1F13F0A53697A652E576964746805000000000000009205400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F61 - 74416E696D6174696F6E00084475726174696F6E05000000000018B7D1F23F0C - 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 - 05000000000000000000000953746F7056616C7565050000000000000080FF3F - 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 - 6572496E7665727365061149734D6F7573654F7665723D66616C736500000007 - 544C61796F757400095374796C654E616D650605676C79706805416C69676E07 - 044C6566740A53697A652E57696474680500000000000000C803400B53697A65 - 2E4865696768740500000000000000D003401453697A652E506C6174666F726D - 44656661756C74080007544C61796F757400095374796C654E616D6506096368 - 65636B6D61726B05416C69676E0708436F6E74656E7473074F70616369747905 - 00000000006F1283F53F0A53697A652E57696474680500000000000000C80340 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C7408000554506174680005416C69676E070643656E - 74657209446174612E506174680A58000000070000000000000056D9524391AE - 2C43010000009276664365021643010000009F3983432B7C3C43010000009E9A - A64382D2B442010000006F1CB04375A4D1420100000026DF8243263F67430300 - 000056D9524391AE2C430A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080A53697A652E57696474680500000000000000B002400B53 - 697A652E4865696768740500000000000000B002401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F - 54466C6F6174416E696D6174696F6E00084475726174696F6E050000000000CD - CCCCFB3F0C50726F70657274794E616D6506074F7061636974790A5374617274 - 56616C756505000000000000000000000953746F7056616C7565050000000000 - 000080FF3F0754726967676572060E4973436865636B65643D747275650E5472 - 6967676572496E7665727365060F4973436865636B65643D66616C7365000000 - 0654476C79706800095374796C654E616D65060A676C7970687374796C650C4D - 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 - 6F7005000000000000008000400D4D617267696E732E52696768740500000000 - 000000C000400E4D617267696E732E426F74746F6D050000000000000080FF3F - 05416C69676E070552696768740A506F736974696F6E2E580500000000000000 - C001400A506F736974696F6E2E5905000000000000008000400A53697A652E57 - 6964746805000000000000008003400B53697A652E4865696768740500000000 - 000000B803401453697A652E506C6174666F726D44656661756C740800000654 - 496D61676500095374796C654E616D6506066269746D61700E4D756C74695265 - 734269746D61700E01000005416C69676E0708436F6E74656E74730C4D617267 - 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 + 756C74080756697369626C6508085461624F7264657202170005545465787400 + 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 00000000A001400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E52696768740500000000000000A001400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 00000000FC04400B53697A652E4865696768740500000000000000B003401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F720708636C6157686974650000005450463007544C61 + 796F757400095374796C654E616D6506106C697374626F786974656D7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000D605400B53697A652E4865696768740500000000000000C003401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 726465720218000654476C79706800095374796C654E616D65060A676C797068 + 7374796C650C4D617267696E732E4C65667405000000000000008000400B4D61 + 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 + 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 + 0000000080FF3F05416C69676E07044C6566740A53697A652E57696474680500 + 0000000000008003400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000554546578740009 + 5374796C654E616D6506047465787405416C69676E0706436C69656E74074869 + 7454657374080C4D617267696E732E4C6566740500000000000000C000400B4D + 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 + 6768740500000000000000C000400E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A53697A652E57696474680500000000000000CA05400B53 + 697A652E4865696768740500000000000000B003401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C615768697465155465787453657474696E67732E576F72645772 + 617008165465787453657474696E67732E486F727A416C69676E07074C656164 + 696E6700000954436865636B426F7800095374796C654E616D65060563686563 + 6B05416C69676E07084D6F73744C6566740843616E466F637573081244697361 + 626C65466F637573456666656374090A53697A652E5769647468050000000000 + 0000A003400B53697A652E4865696768740500000000000000C003401453697A + 652E506C6174666F726D44656661756C74080756697369626C65080000005450 + 463007544C61796F757400095374796C654E616D6506126C697374626F78706C + 61696E68656164657205416C69676E070643656E7465720A53697A652E576964 + 746805000000000000009205400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F726465720219000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 + 730A46696C6C2E436F6C6F720709784646324432443244064C6F636B65640907 + 48697454657374080A53697A652E576964746805000000000000009205400B53 + 697A652E4865696768740500000000000000D003401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 353135000005545465787400095374796C654E616D6506047465787405416C69 + 676E0706436C69656E74064C6F636B6564090748697454657374080C4D617267 + 696E732E4C6566740500000000000000A001400B4D617267696E732E546F7005 000000000000008000400D4D617267696E732E52696768740500000000000000 - 8000400E4D617267696E732E426F74746F6D05000000000000008000400A5369 - 7A652E57696474680500000000000000A803400B53697A652E48656967687405 + A001400E4D617267696E732E426F74746F6D05000000000000008000400A5369 + 7A652E57696474680500000000000000FC04400B53697A652E48656967687405 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 - 00000005545465787400095374796C654E616D6506047465787405416C69676E - 07044C656674064C6F636B6564090748697454657374080C4D617267696E732E - 4C65667405000000000000008002400D4D617267696E732E5269676874050000 - 00000000008002400A506F736974696F6E2E5805000000000000008404400A53 - 697A652E57696474680500000000000000C804400B53697A652E486569676874 - 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 - 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 - 7465165465787453657474696E67732E486F727A416C69676E07074C65616469 - 6E67000005545465787400095374796C654E616D65060873686F727463757405 - 416C69676E07055269676874064C6F636B6564090748697454657374080C4D61 - 7267696E732E4C6566740500000000000000C002400D4D617267696E732E5269 - 6768740500000000000000C001400A506F736974696F6E2E5805000000000000 - 00C000C00A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C7408165465787453657474696E67732E466F6E74436F6C6F720708 - 636C615768697465165465787453657474696E67732E486F727A416C69676E07 - 074C656164696E67000007544C61796F757400095374796C654E616D65060773 - 75626D61726B05416C69676E070552696768740A506F736974696F6E2E580500 - 000000000000D404400A53697A652E57696474680500000000000000A003400B - 53697A652E4865696768740500000000000000D003401453697A652E506C6174 - 666F726D44656661756C7408000554506174680005416C69676E070643656E74 - 657209446174612E506174680A34000000040000000000000000000000000000 - 0001000000000000000000803F010000000000803F0000003F03000000000000 - 00000000000A46696C6C2E436F6C6F720708636C615768697465064C6F636B65 - 64090748697454657374080A53697A652E57696474680500000000000000E001 - 400B53697A652E48656967687405000000000000008002401453697A652E506C + 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 + 650000005450463007544C61796F757400095374796C654E616D650609677269 + 647374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 0000000000FFFFE905400B53697A652E48656967687405000000000000008306 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F72646572021A000C5442727573684F626A65637400095374796C65 + 4E616D650618416C7465726E6174696E67526F774261636B67726F756E640B42 + 727573682E436F6C6F72070978333237383738373800000C5442727573684F62 + 6A65637400095374796C654E616D6506086C696E6566696C6C0B42727573682E + 436F6C6F72070978464631353135313500000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 + 64090748697454657374080C50616464696E672E4C6566740500000000000000 + 8000400B50616464696E672E546F7005000000000000008000400D5061646469 + 6E672E526967687405000000000000008000400E50616464696E672E426F7474 + 6F6D05000000000000008000400A53697A652E5769647468050000000000FFFF + E905400B53697A652E48656967687405000000000000008306401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 464631353135313500075448656164657200095374796C654E616D6506066865 + 616465720553696465730B03546F70044C65667406426F74746F6D0552696768 + 740005416C69676E0703546F700748697454657374080A506F736974696F6E2E + 5805000000000000008000400A506F736974696F6E2E59050000000000000080 + 00400A53697A652E5769647468050000000000FFFFE105400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C7408000007544C61796F757400095374796C654E616D650607636F6E74 + 656E7405416C69676E0706436C69656E740C436C69704368696C6472656E090A + 53697A652E5769647468050000000000FFFFC105400B53697A652E4865696768 + 740500000000000000B405401453697A652E506C6174666F726D44656661756C + 7408000A5452656374616E676C6500095374796C654E616D65060973656C6563 + 74696F6E0A46696C6C2E436F6C6F720709784646324138324532074869745465 + 737408074F706163697479050000000000000080FD3F0A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E + 616D650605666F6375730A46696C6C2E436F6C6F720709784146324138324532 + 0748697454657374080C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 00000000545046300A5452656374616E676C6500095374796C654E616D65060C - 6D656E756261727374796C6505416C69676E070643656E7465720C436C697043 - 68696C6472656E090946696C6C2E4B696E6407044E6F6E650748697454657374 - 080A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C650807 - 585261646975730500000000000000C000400759526164697573050000000000 - 0000C00040000A5452656374616E676C650005416C69676E0706436C69656E74 - 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080C - 4D617267696E732E4C656674050000000000000080FFBF0B4D617267696E732E - 546F70050000000000000080FFBF0D4D617267696E732E526967687405000000 - 0000000080FFBF0A53697A652E57696474680500000000000000D004400B5369 - 7A652E4865696768740500000000000000CC04401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 313507585261646975730500000000000000C000400759526164697573050000 - 0000000000C00040000007544C61796F757400095374796C654E616D65060763 - 6F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566 - 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 - 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 - 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 - 680500000000000000C004400B53697A652E4865696768740500000000000000 - C004401453697A652E506C6174666F726D44656661756C740800000054504630 - 07544C61796F757400095374796C654E616D65060D6D656E756974656D737479 - 6C6505416C69676E070643656E7465720C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D - 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 - 00000000009205400B53697A652E4865696768740500000000000000D0034014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F726465720226000A5452656374616E676C650005416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207486974 - 5465737408074F70616369747905000000000017B7D1F13F0A53697A652E5769 - 64746805000000000000009205400B53697A652E486569676874050000000000 - 0000D003401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008 - 4475726174696F6E05000000000018B7D1F23F0C50726F70657274794E616D65 - 06074F7061636974790A537461727456616C7565050000000000000000000009 - 53746F7056616C7565050000000000000080FF3F0754726967676572060F4973 - 53656C65637465643D747275650E54726967676572496E766572736506104973 - 53656C65637465643D66616C73650000000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F72070978464632413832453207486974546573 - 7408074F70616369747905000000000000000000000A53697A652E5769647468 - 05000000000000009205400B53697A652E4865696768740500000000000000D0 - 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572 - 6174696F6E05000000000018B7D1F23F07496E7665727365090C50726F706572 - 74794E616D6506074F7061636974790A537461727456616C7565050000000000 - 00000000000953746F7056616C7565050000000000000080FF3F075472696767 - 6572061049734D6F7573654F7665723D747275650E54726967676572496E7665 - 727365061149734D6F7573654F7665723D66616C736500000007544C61796F75 - 7400095374796C654E616D650605676C79706805416C69676E07044C6566740A - 53697A652E57696474680500000000000000C803400B53697A652E4865696768 - 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 74080007544C61796F757400095374796C654E616D650609636865636B6D6172 - 6B05416C69676E0708436F6E74656E7473074F7061636974790500000000006F - 1283F53F0A53697A652E57696474680500000000000000C803400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C7408000554506174680005416C69676E070643656E746572094461 - 74612E506174680A58000000070000000000000056D9524391AE2C4301000000 - 9276664365021643010000009F3983432B7C3C43010000009E9AA64382D2B442 - 010000006F1CB04375A4D1420100000026DF8243263F67430300000056D95243 - 91AE2C430A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080A53697A652E57696474680500000000000000B002400B53697A652E4865 - 696768740500000000000000B002401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174 - 416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D6506074F7061636974790A537461727456616C756505 - 000000000000000000000953746F7056616C7565050000000000000080FF3F07 - 54726967676572060E4973436865636B65643D747275650E5472696767657249 - 6E7665727365060F4973436865636B65643D66616C73650000000654476C7970 - 6800095374796C654E616D65060A676C7970687374796C650C4D617267696E73 - 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000C00040 - 0E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69676E - 07044C6566740A506F736974696F6E2E58050000000000000080FF3F0A506F73 - 6974696F6E2E5905000000000000008000400A53697A652E5769647468050000 - 00000000008003400B53697A652E4865696768740500000000000000B8034014 - 53697A652E506C6174666F726D44656661756C740800000654496D6167650009 - 5374796C654E616D6506066269746D61700E4D756C74695265734269746D6170 - 0E01000005416C69676E07044C6566740C4D617267696E732E4C656674050000 - 00000000008000400B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E526967687405000000000000008000400E4D617267696E73 - 2E426F74746F6D05000000000000008000400A506F736974696F6E2E58050000 - 00000000008000400A506F736974696F6E2E5905000000000000008000400A53 - 697A652E57696474680500000000000000A803400B53697A652E486569676874 - 0500000000000000B003401453697A652E506C6174666F726D44656661756C74 - 0800000005545465787400095374796C654E616D6506047465787405416C6967 - 6E07044C656674064C6F636B6564090748697454657374080C4D617267696E73 - 2E4C65667405000000000000008002400D4D617267696E732E52696768740500 - 0000000000008002400A506F736974696F6E2E5805000000000000008404400A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 7408165465787453657474696E67732E466F6E74436F6C6F720708636C615768 - 697465165465787453657474696E67732E486F727A416C69676E07074C656164 - 696E67000005545465787400095374796C654E616D65060873686F7274637574 - 05416C69676E07055269676874064C6F636B6564090748697454657374080C4D - 617267696E732E4C6566740500000000000000C002400D4D617267696E732E52 - 696768740500000000000000C001400A506F736974696F6E2E58050000000000 - 0000C000C00A53697A652E57696474680500000000000000C804400B53697A65 + 07595261646975730500000000000000C000400000000A545363726F6C6C4261 + 7200095374796C654E616D65060A767363726F6C6C62617205416C69676E0705 + 52696768740B536D616C6C4368616E676505000000000000000000000B4F7269 + 656E746174696F6E0708566572746963616C0A506F736974696F6E2E58050000 + 000000FFFFC505400A506F736974696F6E2E590500000000000000B803400A53 + 697A652E576964746805000000000000008003400B53697A652E486569676874 + 0500000000000000B405401453697A652E506C6174666F726D44656661756C74 + 0800000A545363726F6C6C42617200095374796C654E616D65060A687363726F + 6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505 + 000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74 + 616C0A506F736974696F6E2E5805000000000000008000400A506F736974696F + 6E2E590500000000000000E205400A53697A652E5769647468050000000000FF + FFE105400B53697A652E48656967687405000000000000008003401453697A65 + 2E506C6174666F726D44656661756C740800000F54536D616C6C5363726F6C6C + 42617200095374796C654E616D65060F76736D616C6C7363726F6C6C62617205 + 416C69676E070552696768740B536D616C6C4368616E67650500000000000000 + 0000000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E + 732E4C65667405000000000000008000400A506F736974696F6E2E5805000000 + 00000000C605400A506F736974696F6E2E5905000000000000008000400A5369 + 7A652E576964746805000000000000008002400B53697A652E48656967687405 + 000000000000008002401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C650800000F54536D616C6C5363726F6C6C4261720009537479 + 6C654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E070642 + 6F74746F6D0B536D616C6C4368616E676505000000000000000000000B4F7269 + 656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F70 + 05000000000000008000400A506F736974696F6E2E5805000000000000008000 + 400A506F736974696F6E2E590500000000000000E205400A53697A652E576964 + 746805000000000000009606400B53697A652E48656967687405000000000000 + 008002401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508000000005450463007544C61796F757400095374796C654E616D65060F + 6865616465726974656D7374796C6505416C69676E070643656E7465720A5369 + 7A652E576964746805000000000000009205400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F72646572021B000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646344334433443064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000000 + 009205400B53697A652E4865696768740500000000000000D003401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 784646313531353135000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615686561646572436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464634433443344309 + 53746F7056616C756507097846463241383245320754726967676572060E4973 + 507265737365643D747275650E54726967676572496E7665727365060F497350 + 7265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D6506166865616465725374726F6B65416E696D6174696F6E + 31084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D65060C5374726F6B652E436F6C6F720A537461727456616C75650709784646 + 3135313531350953746F7056616C756507097846463241383245320754726967 + 676572060E4973507265737365643D747275650E54726967676572496E766572 + 7365060F4973507265737365643D66616C736500000005545465787400095374 + 796C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 + 00A001400B4D617267696E732E546F7005000000000000008000400D4D617267 + 696E732E52696768740500000000000000A001400E4D617267696E732E426F74 + 746F6D05000000000000008000400A53697A652E576964746805000000000000 + 00FC04400B53697A652E4865696768740500000000000000B003401453697A65 + 2E506C6174666F726D44656661756C7408165465787453657474696E67732E46 + 6F6E74436F6C6F720708636C6157686974650000005450463007544C61796F75 + 7400095374796C654E616D65061970726F67726573736261726D696E69657272 + 6F727374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 05000000000033338505400B53697A652E4865696768740500000000009999E1 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F72646572021C000A5452656374616E676C6500095374796C654E + 616D65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646343034303430064C6F636B65640907486974546573 + 74080A53697A652E576964746805000000000033338505400B53697A652E4865 + 696768740500000000009999E104401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E + 676C6500095374796C654E616D65060A68696E64696361746F7205416C69676E + 07044C6566740A46696C6C2E436F6C6F720709784646453232413241064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E650000000A5452656374616E676C6500095374796C654E616D650606767472 + 61636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 784646343034303430064C6F636B6564090748697454657374080A53697A652E + 576964746805000000000033338505400B53697A652E48656967687405000000 + 00009999E104401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009537479 + 6C654E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D + 0A46696C6C2E436F6C6F720709784646453232413241064C6F636B6564090748 + 697454657374080A506F736974696F6E2E5905000000000099998D04400A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F + 757400095374796C654E616D65061170726F677265737363656C6C7374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00F805400B53697A652E4865696768740500000000000000FC05401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 + 646572021D0007544C61796F757400095374796C654E616D6506066874726163 + 6B05416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E + 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 + 00000000008000400D4D617267696E732E526967687405000000000000008000 + 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 + 2E57696474680500000000000000F005400B53697A652E486569676874050000 + 0000000000F405401453697A652E506C6174666F726D44656661756C7408000A + 5452656374616E676C6500095374796C654E616D65060A68696E64696361746F + 7205416C69676E07044C6566740A46696C6C2E436F6C6F720709784646324138 + 324532064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E + 58050000000000000080FF3F0A506F736974696F6E2E59050000000000000080 + FF3F0A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000F005401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007 + 544C61796F757400095374796C654E616D6506106D656E756261726974656D73 + 74796C6505416C69676E070643656E7465720C4D617267696E732E4C65667405 + 0000000000000080FF3F0B4D617267696E732E546F70050000000000000080FF + 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F0A53697A652E576964746805 + 000000000000009205400B53697A652E4865696768740500000000000000D003 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F72646572021E000A5452656374616E676C650005416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F7207097846463241383245320748 + 69745465737408074F70616369747905000000000017B7D1F13F0A53697A652E + 576964746805000000000000009205400B53697A652E48656967687405000000 + 00000000D003401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E + 00084475726174696F6E05000000000018B7D1F23F0C50726F70657274794E61 + 6D6506074F7061636974790A537461727456616C756505000000000000000000 + 000953746F7056616C7565050000000000000080FF3F0754726967676572060F + 497353656C65637465643D747275650E54726967676572496E76657273650610 + 497353656C65637465643D66616C73650000000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463241383245320748697454 + 65737408074F70616369747905000000000017B7D1F13F0A53697A652E576964 + 746805000000000000009205400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000844 + 75726174696F6E05000000000018B7D1F23F0C50726F70657274794E616D6506 + 074F7061636974790A537461727456616C756505000000000000000000000953 + 746F7056616C7565050000000000000080FF3F0754726967676572061049734D + 6F7573654F7665723D747275650E54726967676572496E766572736506114973 + 4D6F7573654F7665723D66616C736500000007544C61796F757400095374796C + 654E616D650605676C79706805416C69676E07044C6566740A53697A652E5769 + 6474680500000000000000C803400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74080007544C61 + 796F757400095374796C654E616D650609636865636B6D61726B05416C69676E + 0708436F6E74656E7473074F7061636974790500000000006F1283F53F0A5369 + 7A652E57696474680500000000000000C803400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 000554506174680005416C69676E070643656E74657209446174612E50617468 + 0A58000000070000000000000056D9524391AE2C430100000092766643650216 + 43010000009F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB0 + 4375A4D1420100000026DF8243263F67430300000056D9524391AE2C430A4669 + 6C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A65 + 2E57696474680500000000000000B002400B53697A652E486569676874050000 + 0000000000B002401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D617469 + 6F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 + 4E616D6506074F7061636974790A537461727456616C75650500000000000000 + 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 + 060E4973436865636B65643D747275650E54726967676572496E766572736506 + 0F4973436865636B65643D66616C73650000000654476C79706800095374796C + 654E616D65060A676C7970687374796C650C4D617267696E732E4C6566740500 + 00000000000080FF3F0B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E52696768740500000000000000C000400E4D617267696E + 732E426F74746F6D050000000000000080FF3F05416C69676E07055269676874 + 0A53697A652E576964746805000000000000008003400B53697A652E48656967 + 687405000000000000008003401453697A652E506C6174666F726D4465666175 + 6C740800000654496D61676500095374796C654E616D6506066269746D61700E + 4D756C74695265734269746D61700E01000005416C69676E0708436F6E74656E + 74730C4D617267696E732E4C65667405000000000000008000400B4D61726769 + 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 + 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 + 008000400A53697A652E57696474680500000000000000A803400B53697A652E + 4865696768740500000000000000B003401453697A652E506C6174666F726D44 + 656661756C740800000005545465787400095374796C654E616D650604746578 + 7405416C69676E07044C656674064C6F636B6564090748697454657374080C4D + 617267696E732E4C65667405000000000000008002400D4D617267696E732E52 + 6967687405000000000000008002400A506F736974696F6E2E58050000000000 + 00008404400A53697A652E57696474680500000000000000C804400B53697A65 2E4865696768740500000000000000D003401453697A652E506C6174666F726D 44656661756C7408165465787453657474696E67732E466F6E74436F6C6F7207 08636C615768697465165465787453657474696E67732E486F727A416C69676E - 07074C656164696E67000007544C61796F757400095374796C654E616D650607 - 7375626D61726B05416C69676E070552696768740A506F736974696F6E2E5805 - 00000000000000D404400A53697A652E57696474680500000000000000A00340 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C7408000554506174680005416C69676E070643656E - 74657209446174612E506174680A340000000400000000000000000000000000 - 000001000000000000000000803F010000000000803F0000003F030000000000 - 0000000000000A46696C6C2E436F6C6F720708636C615768697465064C6F636B - 6564090748697454657374080A53697A652E57696474680500000000000000E0 - 01400B53697A652E48656967687405000000000000008002401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 65000000005450463007544C61796F757400095374796C654E616D6506126D65 - 6E75736570617261746F727374796C6505416C69676E070643656E7465720C4D - 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 - 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 - 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000000C804401453697A652E506C6174666F726D4465666175 - 6C7408085461624F7264657202270005544C696E650005416C69676E0703546F - 70084C696E65547970650703546F700C4D617267696E732E4C65667405000000 - 0000000080FFBF0B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E5269676874050000000000000080FFBF0A506F736974696F6E - 2E58050000000000000080FFBF0A506F736974696F6E2E590500000000000000 - 8000400A53697A652E57696474680500000000000000D004400B53697A652E48 - 6569676874050000000000000080FF3F1453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350000 - 00545046300A5452656374616E676C6500095374796C654E616D65060D6D656E - 75766965777374796C6505416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463230323032300A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000C804401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 7846463135313531350756697369626C65080758526164697573050000000000 - 0000C0004007595261646975730500000000000000C000400007544C61796F75 - 7400095374796C654E616D650607636F6E74656E7405416C69676E0706436C69 - 656E740C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 07074C656164696E67000005545465787400095374796C654E616D6506087368 + 6F727463757405416C69676E07055269676874064C6F636B6564090748697454 + 657374080C4D617267696E732E4C6566740500000000000000C002400D4D6172 + 67696E732E52696768740500000000000000C001400A506F736974696F6E2E58 + 0500000000000000C000C00A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000D003401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C615768697465165465787453657474696E67732E486F72 + 7A416C69676E07074C656164696E67000007544C61796F757400095374796C65 + 4E616D6506077375626D61726B05416C69676E070552696768740A506F736974 + 696F6E2E580500000000000000D404400A53697A652E57696474680500000000 + 000000A003400B53697A652E4865696768740500000000000000D00340145369 + 7A652E506C6174666F726D44656661756C7408000554506174680005416C6967 + 6E070643656E74657209446174612E506174680A340000000400000000000000 + 000000000000000001000000000000000000803F010000000000803F0000003F + 0300000000000000000000000A46696C6C2E436F6C6F720708636C6157686974 + 65064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 0000000000E001400B53697A652E486569676874050000000000000080024014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6500000000545046300A5452656374616E676C6500095374796C + 654E616D65060C6D656E756261727374796C6505416C69676E070643656E7465 + 720C436C69704368696C6472656E090946696C6C2E4B696E6407044E6F6E6507 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669 + 7369626C6508000A5452656374616E676C650005416C69676E0706436C69656E + 740A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0C4D617267696E732E4C656674050000000000000080FFBF0B4D617267696E73 + 2E546F70050000000000000080FFBF0D4D617267696E732E5269676874050000 + 000000000080FFBF0A53697A652E57696474680500000000000000D004400B53 + 697A652E4865696768740500000000000000CC04401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 353135000007544C61796F757400095374796C654E616D650607636F6E74656E + 7405416C69676E0706436C69656E740C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 + 00000000C004400B53697A652E4865696768740500000000000000C004401453 + 697A652E506C6174666F726D44656661756C74080000005450463007544C6179 + 6F757400095374796C654E616D65060D6D656E756974656D7374796C6505416C + 69676E070643656E7465720C4D617267696E732E4C6566740500000000000000 + 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 + 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 + 6F6D050000000000000080FF3F0A53697A652E57696474680500000000008EE3 + F605400B53697A652E4865696768740500000000008EE3F003401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 65720220000A5452656374616E676C650005416C69676E0708436F6E74656E74 + 730A46696C6C2E436F6C6F720709784646324138324532074869745465737408 + 074F70616369747905000000000017B7D1F13F0A53697A652E57696474680500 + 000000008EE3F605400B53697A652E4865696768740500000000008EE3F00340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174 + 696F6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F7061 + 636974790A537461727456616C756505000000000000000000000953746F7056 + 616C7565050000000000000080FF3F0754726967676572060F497353656C6563 + 7465643D747275650E54726967676572496E76657273650610497353656C6563 + 7465643D66616C73650000000A5452656374616E676C6500095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646324138324532074869745465737408074F70 + 616369747905000000000000000000000A53697A652E57696474680500000000 + 008EE3F605400B53697A652E4865696768740500000000008EE3F00340145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E + 05000000000018B7D1F23F07496E7665727365090C50726F70657274794E616D + 6506074F7061636974790A537461727456616C75650500000000000000000000 + 0953746F7056616C7565050000000000000080FF3F0754726967676572061049 + 734D6F7573654F7665723D747275650E54726967676572496E76657273650611 + 49734D6F7573654F7665723D66616C736500000007544C61796F757400095374 + 796C654E616D650605676C79706805416C69676E07044C6566740A53697A652E + 57696474680500000000000000C803400B53697A652E48656967687405000000 + 00008EE3F003401453697A652E506C6174666F726D44656661756C7408000754 + 4C61796F757400095374796C654E616D650609636865636B6D61726B05416C69 + 676E0708436F6E74656E7473074F7061636974790500000000006F1283F53F0A + 53697A652E57696474680500000000000000C803400B53697A652E4865696768 + 740500000000008EE3F003401453697A652E506C6174666F726D44656661756C + 7408000554506174680005416C69676E070643656E74657209446174612E5061 + 74680A58000000070000000000000056D9524391AE2C43010000009276664365 + 021643010000009F3983432B7C3C43010000009E9AA64382D2B442010000006F + 1CB04375A4D1420100000026DF8243263F67430300000056D9524391AE2C430A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080A5369 + 7A652E57696474680500000000000000B002400B53697A652E48656967687405 + 00000000000000B002401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D61 + 74696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 + 74794E616D6506074F7061636974790A537461727456616C7565050000000000 + 00000000000953746F7056616C7565050000000000000080FF3F075472696767 + 6572060E4973436865636B65643D747275650E54726967676572496E76657273 + 65060F4973436865636B65643D66616C73650000000654476C79706800095374 + 796C654E616D65060A676C7970687374796C650C4D617267696E732E4C656674 + 050000000000000080FF3F0B4D617267696E732E546F70050000000000000080 + 00400D4D617267696E732E52696768740500000000000000C000400E4D617267 + 696E732E426F74746F6D050000000000000080FF3F05416C69676E07044C6566 + 740A53697A652E576964746805000000000000008003400B53697A652E486569 + 67687405000000000000008003401453697A652E506C6174666F726D44656661 + 756C740800000654496D61676500095374796C654E616D6506066269746D6170 + 0E4D756C74695265734269746D61700E01000005416C69676E07044C6566740C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 + 400A506F736974696F6E2E5805000000000000008000400A506F736974696F6E + 2E5905000000000000008000400A53697A652E57696474680500000000000000 + A803400B53697A652E4865696768740500000000008EE3D003401453697A652E + 506C6174666F726D44656661756C740800000005545465787400095374796C65 + 4E616D6506047465787405416C69676E07044C656674064C6F636B6564090748 + 697454657374080C4D617267696E732E4C65667405000000000000008002400D + 4D617267696E732E526967687405000000000000008002400A506F736974696F + 6E2E5805000000000000008404400A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000008EE3F003401453697A65 + 2E506C6174666F726D44656661756C7408165465787453657474696E67732E46 + 6F6E74436F6C6F720708636C615768697465165465787453657474696E67732E + 486F727A416C69676E07074C656164696E67000005545465787400095374796C + 654E616D65060873686F727463757405416C69676E07055269676874064C6F63 + 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 + 0000C002400D4D617267696E732E52696768740500000000000000C001400A50 + 6F736974696F6E2E580500000000001CC7BD04400A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000008EE3F003 + 401453697A652E506C6174666F726D44656661756C7408165465787453657474 + 696E67732E466F6E74436F6C6F720708636C6157686974651654657874536574 + 74696E67732E486F727A416C69676E07074C656164696E67000007544C61796F + 757400095374796C654E616D6506077375626D61726B05416C69676E07055269 + 6768740A506F736974696F6E2E580500000000008EE3CE05400A53697A652E57 + 696474680500000000000000A003400B53697A652E4865696768740500000000 + 008EE3F003401453697A652E506C6174666F726D44656661756C740800055450 + 6174680005416C69676E070643656E74657209446174612E506174680A340000 + 000400000000000000000000000000000001000000000000000000803F010000 + 000000803F0000003F0300000000000000000000000A46696C6C2E436F6C6F72 + 0708636C615768697465064C6F636B6564090748697454657374080A53697A65 + 2E57696474680500000000000000C001400B53697A652E486569676874050000 + 0000000000A002401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 + 00095374796C654E616D6506126D656E75736570617261746F727374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 657202210005544C696E650005416C69676E0703546F70084C696E6554797065 + 0703546F700C4D617267696E732E4C656674050000000000000080FFBF0B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 6874050000000000000080FFBF0A506F736974696F6E2E580500000000000000 + 80FFBF0A506F736974696F6E2E5905000000000000008000400A53697A652E57 + 696474680500000000000000D004400B53697A652E4865696768740500000000 + 00000080FF3F1453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000000545046300A54526563 + 74616E676C6500095374796C654E616D65060D6D656E75766965777374796C65 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463230 + 323032300A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 56697369626C6508000A5452656374616E676C650005416C69676E0706436C69 + 656E740A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000D54 + 536861646F77456666656374000844697374616E636505000000000000008001 + 4009446972656374696F6E0500000000000000B4044008536F66746E65737305 + 0000000000000080FE3F074F706163697479050000000000000080FE3F0B5368 + 61646F77436F6C6F720708636C61426C61636B00000007544C61796F75740009 + 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 + 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A53697A652E57696474680500000000000000C004400B53697A652E4865 + 696768740500000000000000C004401453697A652E506C6174666F726D446566 + 61756C74080000005450463007544C61796F757400095374796C654E616D6506 + 0E696D61676563656C6C7374796C6505416C69676E070643656E746572075669 + 7369626C6508085461624F726465720223000654496D61676500095374796C65 + 4E616D650605696D6167650E4D756C74695265734269746D61700E0100000541 + 6C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D61 + 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E57696474680500000000000000C004400B53697A652E4865696768 + 740500000000000000C004401453697A652E506C6174666F726D44656661756C + 74080000005450463007544C61796F757400095374796C654E616D65060E706F + 70757063656C6C7374796C6505416C69676E070643656E7465720A53697A652E + 57696474680500000000000000BB06400B53697A652E48656967687405000000 + 00000000AE04401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F7264657202240007544C61796F75740005416C6967 + 6E070552696768740A506F736974696F6E2E580500000000000000AC06400A53 + 697A652E57696474680500000000000000F002400B53697A652E486569676874 + 0500000000000000AE04401453697A652E506C6174666F726D44656661756C74 + 08000554506174680005416C69676E070643656E74657209446174612E506174 + 680A400000000500000000000000000000000000803F010000000000803F0000 + 803F010000000000003F0000000001000000000000000000803F030000000000 + 0000000000000A46696C6C2E436F6C6F720708636C6157686974650748697454 + 657374080B4D617267696E732E546F700500000000000000E001C00A53697A65 + 2E576964746805000000000000008002400B53697A652E486569676874050000 + 00000000008001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6500000554506174680005416C69676E07 + 0643656E74657209446174612E506174680A3400000004000000000000000000 + 000000000000010000000000803F00000000010000000000003F0000803F0300 + 000000000000000000000A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080B4D617267696E732E546F700500000000000000C001400A + 53697A652E576964746805000000000000008002400B53697A652E4865696768 + 7405000000000000008001401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65000000055454657874000953 + 74796C654E616D6506047465787405416C69676E0706436C69656E74064C6F63 + 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 + 0000A001400B4D617267696E732E546F7005000000000000008000400D4D6172 + 67696E732E52696768740500000000000000A001400E4D617267696E732E426F + 74746F6D05000000000000008000400A53697A652E5769647468050000000000 + 0000A206400B53697A652E48656967687405000000000000009E04401453697A + 652E506C6174666F726D44656661756C7408165465787453657474696E67732E + 466F6E74436F6C6F720708636C6157686974650000005450463007544C61796F + 757400095374796C654E616D65060D7465787463656C6C7374796C6505416C69 + 676E070643656E7465720756697369626C6508085461624F7264657202250007 + 544C61796F757400095374796C654E616D650607636F6E74656E7405416C6967 + 6E0708436F6E74656E7473064C6F636B6564090C4D617267696E732E4C656674 + 05000000000000008001400B4D617267696E732E546F70050000000000000080 + 01400D4D617267696E732E526967687405000000000000008001400E4D617267 + 696E732E426F74746F6D05000000000000008001400A53697A652E5769647468 + 0500000000000000A804400B53697A652E4865696768740500000000000000A8 + 04401453697A652E506C6174666F726D44656661756C740800000C5442727573 + 684F626A65637400095374796C654E616D65060A666F726567726F756E640000 + 0C5442727573684F626A65637400095374796C654E616D65060973656C656374 + 696F6E0B42727573682E436F6C6F72070978393632413832453200000B54466F + 6E744F626A65637400095374796C654E616D650604666F6E7400000054504630 + 07544C61796F757400095374796C654E616D6506096D656D6F7374796C650541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000CCCC88 + 06400B53697A652E4865696768740500000000006666F405401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 720226000C5442727573684F626A65637400095374796C654E616D65060A666F + 726567726F756E6400000C5442727573684F626A65637400095374796C654E61 + 6D65060973656C656374696F6E0B42727573682E436F6C6F7207097837463434 + 3735394400000B54466F6E744F626A65637400095374796C654E616D65060466 + 6F6E7400000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080A53697A652E57696474 + 68050000000000CCCC8806400B53697A652E4865696768740500000000006666 + F405401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F7207097846463135313531350007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D6172 + 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 008000400E4D617267696E732E426F74746F6D05000000000000008000400A53 + 697A652E57696474680500000000009899E905400B53697A652E486569676874 + 0500000000006666CC05401453697A652E506C6174666F726D44656661756C74 + 0800000A545363726F6C6C42617200095374796C654E616D65060A687363726F + 6C6C62617205416C69676E0706426F74746F6D06437572736F72070763724172 + 726F770B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E59050000 + 0000006666D405400A53697A652E5769647468050000000000CCCC8806400B53 + 697A652E48656967687405000000000000008003401453697A652E506C617466 + 6F726D44656661756C740800000A545363726F6C6C42617200095374796C654E + 616D65060A767363726F6C6C62617205416C69676E0705526967687406437572 + 736F72070763724172726F770B536D616C6C4368616E67650500000000000000 + 0000000B4F7269656E746174696F6E0708566572746963616C0A506F73697469 + 6F6E2E580500000000009899F105400A53697A652E5769647468050000000000 + 00008003400B53697A652E4865696768740500000000006666D405401453697A + 652E506C6174666F726D44656661756C7408000007544C61796F75740005416C + 69676E0706436C69656E740A53697A652E57696474680500000000009899F105 + 400B53697A652E4865696768740500000000006666D405401453697A652E506C + 6174666F726D44656661756C7408000F54536D616C6C5363726F6C6C42617200 + 095374796C654E616D65060F76736D616C6C7363726F6C6C62617205416C6967 + 6E0705526967687406437572736F72070763724172726F770B536D616C6C4368 + 616E676505000000000000000000000B4F7269656E746174696F6E0708566572 + 746963616C0C4D617267696E732E4C65667405000000000000008000400A5369 + 7A652E576964746805000000000000008002400B53697A652E48656967687405 + 000000000000008002401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C650800000F54536D616C6C5363726F6C6C4261720009537479 + 6C654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E070642 + 6F74746F6D06437572736F72070763724172726F770B536D616C6C4368616E67 + 6505000000000000000000000B4F7269656E746174696F6E070A486F72697A6F + 6E74616C0B4D617267696E732E546F7005000000000000008000400A53697A65 + 2E576964746805000000000000009606400B53697A652E486569676874050000 + 00000000008002401453697A652E506C6174666F726D44656661756C74080756 + 697369626C65080000000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D6506146D656D6F5374726F6B65416E696D6174696F6E310844757261 + 74696F6E050000000000000000000007496E7665727365090C50726F70657274 + 794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75650709 + 7846463135313531350953746F7056616C756507097846463430343034300754 + 726967676572062049734D6F7573654F7665723D747275653B4973466F637573 + 65643D66616C73650E54726967676572496E7665727365062149734D6F757365 + 4F7665723D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D6506146D656D6F537472 + 6F6B65416E696D6174696F6E32084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461 + 727456616C756507097846463430343034300953746F7056616C756507097846 + 463241383245320754726967676572060E4973466F63757365643D747275650E + 54726967676572496E7665727365060F4973466F63757365643D66616C736500 + 0000005450463007544C61796F757400095374796C654E616D65060E6C696E6B + 6C6162656C7374796C6505416C69676E070643656E7465720A53697A652E5769 + 647468050000000000CCCC8006400B53697A652E486569676874050000000000 + 9A998104401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F7264657202270005545465787400095374796C654E616D + 6506047465787405416C69676E0708436F6E74656E7473074869745465737408 + 0A53697A652E5769647468050000000000CCCC8006400B53697A652E48656967 + 68740500000000009A998104401453697A652E506C6174666F726D4465666175 + 6C74081A5465787453657474696E67732E466F6E742E5374796C654578740A0D + 00000004040000000000000004000000165465787453657474696E67732E466F + 6E74436F6C6F72070D636C61446F64676572626C7565000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E315374796C65084475726174696F6E050000000000000000000007496E76 + 65727365090C50726F70657274794E616D6506165465787453657474696E6773 + 2E466F6E74436F6C6F720A537461727456616C7565070D636C61446F64676572 + 626C75650953746F7056616C7565070E636C6144656570736B79626C75650754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E325374796C65084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D6506165465787453657474696E67732E466F6E + 74436F6C6F720A537461727456616C7565070E636C6144656570736B79626C75 + 650953746F7056616C756507097846463137353739430754726967676572062F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D66616C736500000000545046300A5452656374616E67 + 6C6500095374796C654E616D65060E7374617475736261727374796C6505416C + 69676E070643656E7465720C436C69704368696C6472656E090A46696C6C2E43 + 6F6C6F7207097846463235323532350748697454657374080553696465730B03 + 546F70000A53697A652E57696474680500000000000000F004400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 56697369626C65080007544C61796F757400095374796C654E616D6506074C61 + 796F75743105416C69676E070552696768740A506F736974696F6E2E58050000 + 00000000008C04400A53697A652E57696474680500000000000000C803400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C740800095453697A654772697000095374796C654E616D + 65060973697A65677267697005416C69676E0706426F74746F6D0A506F736974 + 696F6E2E590500000000000000C803400A53697A652E57696474680500000000 + 000000C803400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C7408000000005450463007544C6179 + 6F757400095374796C654E616D65060C7370696E626F787374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000006666E00540 + 0B53697A652E4865696768740500000000000000C003401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 29000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 097846463230323032300A53697A652E57696474680500000000006666E00540 + 0B53697A652E4865696768740500000000000000C003401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 3531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E + 050000000000000000000007496E7665727365090C50726F70657274794E616D + 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464631 + 35313531350953746F7056616C75650709784646343034303430075472696767 + 6572061049734D6F7573654F7665723D747275650E54726967676572496E7665 + 727365061149734D6F7573654F7665723D66616C73650000000C544272757368 + 4F626A65637400095374796C654E616D65060A666F726567726F756E640B4272 + 7573682E436F6C6F72070978464645414541454100000C5442727573684F626A + 65637400095374796C654E616D65060973656C656374696F6E0B42727573682E + 436F6C6F720709783936324138324532000007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E74064C6F63 + 6B6564090C4D617267696E732E4C65667405000000000000008000400B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 + 0000008000400A53697A652E5769647468050000000000CCCCF004400B53697A + 652E4865696768740500000000000000A003401453697A652E506C6174666F72 + 6D44656661756C740800000754427574746F6E00095374796C654E616D65060B + 6D696E7573627574746F6E05416C69676E07044C6566740843616E466F637573 + 0806437572736F72070763724172726F770C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E + 732E426F74746F6D05000000000000008000400A506F736974696F6E2E580500 + 0000000000008000400A506F736974696F6E2E5905000000000000008000400A + 53697A652E57696474680500000000000000A003400B53697A652E4865696768 + 740500000000000000A003401453697A652E506C6174666F726D44656661756C + 74080B5374796C654C6F6F6B7570060B627574746F6E7374796C650005545061 + 74680005416C69676E070643656E74657209446174612E506174680A40000000 + 05000000000000000000803F00000000010000000000803F0000803F01000000 + 000000000000003F010000000000803F00000000030000000000803F00000000 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A53 + 697A652E576964746805000000000000008002400B53697A652E486569676874 + 05000000000000008002401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650000000754427574746F6E0009 + 5374796C654E616D65060A706C7573627574746F6E05416C69676E0705526967 + 68740843616E466F6375730806437572736F72070763724172726F770C4D6172 + 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 008000400E4D617267696E732E426F74746F6D05000000000000008000400A50 + 6F736974696F6E2E580500000000006666B405400A506F736974696F6E2E5905 + 000000000000008000400A53697A652E57696474680500000000000000A00340 + 0B53697A652E4865696768740500000000000000A003401453697A652E506C61 + 74666F726D44656661756C74080B5374796C654C6F6F6B7570060B627574746F + 6E7374796C65000554506174680005416C69676E070643656E74657209446174 + 612E506174680A34000000040000000000000000000000000000000100000000 + 0000000000803F010000000000803F0000003F0300000000000000000000000A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080A5369 + 7A652E576964746805000000000000008002400B53697A652E48656967687405 + 000000000000008002401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F + 757400095374796C654E616D65060D73697A65677269707374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C80340 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 2A000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653105416C69676E070643656E7465720A46696C6C2E436F6C6F72070978 + 46463630363036300A53697A652E57696474680500000000000000A000400B53 + 697A652E4865696768740500000000000000A000401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A + 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 + 3205416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464636 + 30363036300C4D617267696E732E4C6566740500000000000000A002400A5369 + 7A652E57696474680500000000000000A000400B53697A652E48656967687405 + 00000000000000A000401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500 + 095374796C654E616D65060A52656374616E676C653305416C69676E07064365 + 6E7465720A46696C6C2E436F6C6F7207097846463630363036300C4D61726769 + 6E732E4C6566740500000000000000A002400B4D617267696E732E546F700500 + 000000000000A002400A53697A652E57696474680500000000000000A000400B + 53697A652E4865696768740500000000000000A000401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0A5452656374616E676C6500095374796C654E616D65060A52656374616E676C + 653405416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 + 3630363036300B4D617267696E732E546F700500000000000000A002400A5369 + 7A652E57696474680500000000000000A000400B53697A652E48656967687405 + 00000000000000A000401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500 + 095374796C654E616D65060A52656374616E676C653505416C69676E07064365 + 6E7465720A46696C6C2E436F6C6F7207097846463630363036300B4D61726769 + 6E732E546F700500000000000000A002400D4D617267696E732E526967687405 + 00000000000000A002400A53697A652E57696474680500000000000000A00040 + 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 + 6C653605416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463630363036300C4D617267696E732E4C6566740500000000000000A002400E + 4D617267696E732E426F74746F6D0500000000000000A002400A53697A652E57 + 696474680500000000000000A000400B53697A652E4865696768740500000000 + 000000A000401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000545046300A5452656374616E676C65 + 00095374796C654E616D65060C746F6F6C6261727374796C6505416C69676E07 + 0643656E7465720A46696C6C2E436F6C6F720709784646323532353235074869 + 7454657374080553696465730B06426F74746F6D000A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F7207097846463135313531350756697369626C650800005450463007 + 544C61796F757400095374796C654E616D65061570726F677265737362617265 + 72726F727374796C6505416C69676E070643656E7465720A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000099 + 99E104401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F72646572022C000A5452656374616E676C6500095374796C + 654E616D65060668747261636B05416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080A53697A652E576964746805000000000033338505400B53697A652E + 4865696768740500000000009999E104401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 0A5452656374616E676C6500095374796C654E616D65060A68696E6469636174 + 6F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207097846464532 + 32413241064C6F636B6564090748697454657374080C4D617267696E732E4C65 + 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E + 2E58050000000000000080FF3F0A506F736974696F6E2E590500000000000000 + 80FF3F0A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000009999D904401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A54526563 + 74616E676C6500095374796C654E616D65060676747261636B05416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230323006 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000A5452656374616E676C6500095374796C654E61 + 6D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C + 6C2E436F6C6F720709784646453232413241064C6F636B656409074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 - 000080FF3F0A53697A652E57696474680500000000000000C004400B53697A65 - 2E4865696768740500000000000000C004401453697A652E506C6174666F726D - 44656661756C740800000A5452656374616E676C650005416C69676E0706436C - 69656E740A46696C6C2E436F6C6F720709784646323032303230074869745465 - 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000000000C804401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000D - 54536861646F77456666656374000844697374616E6365050000000000000080 - 014009446972656374696F6E0500000000000000B4044008536F66746E657373 - 050000000000000080FE3F074F706163697479050000000000000080FE3F0B53 - 6861646F77436F6C6F720708636C61426C61636B000000005450463007544C61 - 796F757400095374796C654E616D650610726164696F627574746F6E7374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 0000F205400B53697A652E4865696768740500000000000000A803401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 7264657202280007544C61796F75740005416C69676E07044C6566740A53697A - 652E57696474680500000000000000A803400B53697A652E4865696768740500 - 000000000000A803401453697A652E506C6174666F726D44656661756C740800 - 0854456C6C6970736500095374796C654E616D65060A6261636B67726F756E64 - 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463230 - 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 - 0500000000000000F002400B53697A652E4865696768740500000000000000F0 - 02401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F720709784646313531353135000854456C6C6970736500095374796C - 654E616D650609636865636B6D61726B05416C69676E0706436C69656E740A46 - 696C6C2E436F6C6F720709784646324138324532064C6F636B65640907486974 - 5465737408074F70616369747905000000000000000000000C4D617267696E73 - 2E4C65667405000000000000008000400B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000800040 - 0E4D617267696E732E426F74746F6D05000000000000008000400A53697A652E - 57696474680500000000000000B002400B53697A652E48656967687405000000 - 00000000B002401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E - 00095374796C654E616D65061A6F706163697479436865636B6D61726B416E69 - 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 - 657274794E616D6506074F7061636974790A537461727456616C756505000000 - 000000000000000953746F7056616C7565050000000000000080FF3F07547269 - 67676572060E4973436865636B65643D747275650E54726967676572496E7665 - 727365060F4973436865636B65643D66616C73650000000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D65061A726164696F627574746F6E43 - 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000000000 - 000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 - 616C756507097846463430343034300754726967676572061049734D6F757365 - 4F7665723D747275650E54726967676572496E7665727365061149734D6F7573 - 654F7665723D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650614436F6C6F72416E696D6174696F6E315374796C650844 - 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 - 0C5374726F6B652E436F6C6F720A537461727456616C75650709784646313531 - 3531350953746F7056616C756507097846463241383245320754726967676572 - 060E4973436865636B65643D747275650E54726967676572496E766572736506 - 0F4973436865636B65643D66616C73650000000005545465787400095374796C - 654E616D6506047465787405416C69676E0706436C69656E74064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000000000C80540 - 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 - 74666F726D44656661756C740804546578740604546578741654657874536574 - 74696E67732E466F6E74436F6C6F720708636C61576869746500000054504630 - 07544C61796F757400095374796C654E616D650618756C63656E746572726164 - 696F627574746F6E7374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000005655FB05400B53697A652E486569676874050000 - 0000000000A004401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F7264657202290007544C61796F75740005416C69 - 676E0706426F74746F6D0A506F736974696F6E2E590500000000000000880440 - 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 - 68740500000000000000C001401453697A652E506C6174666F726D4465666175 - 6C7408000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0708436F6E74656E747307436F726E6572730B07 - 546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F720709 - 784646323032303230064C6F636B6564090748697454657374080A53697A652E - 57696474680500000000005655FB05400B53697A652E48656967687405000000 - 00000000C001401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F720709784646313531353135000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D6506216261636B67726F756E64556C42 - 7574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000 - 000000000000000007496E7665727365090C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 - 0953746F7056616C756507097846463430343034300754726967676572061049 - 734D6F7573654F7665723D747275650E54726967676572496E76657273650611 - 49734D6F7573654F7665723D66616C736500000A5452656374616E676C650009 - 5374796C654E616D650609636865636B6D61726B05416C69676E0708436F6E74 - 656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C656674 - 000A46696C6C2E436F6C6F720709784646324138324532064C6F636B65640907 - 4869745465737408074F70616369747905000000000000000000000C4D617267 - 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 - 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 - 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A5369 - 7A652E57696474680500000000005655F705400B53697A652E48656967687405 - 000000000000008001401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174 - 696F6E00095374796C654E616D65061A636865636B6D61726B4F706163697479 - 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 - 726F70657274794E616D6506074F7061636974790A537461727456616C756505 - 000000000000000000000953746F7056616C7565050000000000000080FF3F07 - 54726967676572060E4973436865636B65643D747275650E5472696767657249 - 6E7665727365060F4973436865636B65643D66616C7365000000000005545465 - 787400095374796C654E616D6506047465787405416C69676E0706436C69656E - 74064C6F636B6564090748697454657374080A53697A652E5769647468050000 - 0000005655FB05400B53697A652E486569676874050000000000000088044014 - 53697A652E506C6174666F726D44656661756C7408165465787453657474696E - 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C - 61796F757400095374796C654E616D650616756C6C656674726164696F627574 - 746F6E7374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000005655FB05400B53697A652E4865696768740500000000000000 - A004401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F72646572022A0007544C61796F75740005416C69676E070642 - 6F74746F6D0A506F736974696F6E2E5905000000000000008804400A53697A65 - 2E57696474680500000000005655FB05400B53697A652E486569676874050000 - 0000000000C001401453697A652E506C6174666F726D44656661756C7408000A - 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E0708436F6E74656E747307436F726E6572730B07546F704C65 - 66740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846463230 - 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 - 0500000000005655FB05400B53697A652E4865696768740500000000000000C0 - 01401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313507585261646975730500000000000000 - C0004007595261646975730500000000000000C00040000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D6506216261636B67726F756E64556C - 427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500 - 00000000000000000007496E7665727365090C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463230323032 - 300953746F7056616C7565070978464634303430343007547269676765720610 - 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 - 1149734D6F7573654F7665723D66616C736500000A5452656374616E676C6500 - 095374796C654E616D650609636865636B6D61726B05416C69676E0708436F6E - 74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C6566 - 74000A46696C6C2E436F6C6F720709784646324138324532064C6F636B656409 - 074869745465737408074F70616369747905000000000000000000000C4D6172 - 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 - 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 - 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 - 697A652E57696474680500000000005655F705400B53697A652E486569676874 - 05000000000000008001401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500000000 - 00000080004007595261646975730500000000000000800040000F54466C6F61 - 74416E696D6174696F6E00095374796C654E616D65061A636865636B6D61726B - 4F706163697479416E696D6174696F6E31084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D6506074F7061636974790A53746172 - 7456616C756505000000000000000000000953746F7056616C75650500000000 - 00000080FF3F0754726967676572060E4973436865636B65643D747275650E54 - 726967676572496E7665727365060F4973436865636B65643D66616C73650000 - 00000005545465787400095374796C654E616D6506047465787405416C69676E - 0706436C69656E74064C6F636B6564090748697454657374080A53697A652E57 - 696474680500000000005655FB05400B53697A652E4865696768740500000000 - 0000008804401453697A652E506C6174666F726D44656661756C740816546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 - 5450463007544C61796F757400095374796C654E616D650617756C7269676874 - 726164696F627574746F6E7374796C6505416C69676E070643656E7465720A53 - 697A652E57696474680500000000005655FB05400B53697A652E486569676874 - 0500000000000000A004401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508085461624F72646572022C0007544C61796F75740005 - 416C69676E0706426F74746F6D0A506F736974696F6E2E590500000000000000 - 8804400A53697A652E57696474680500000000005655FB05400B53697A652E48 - 65696768740500000000000000C001401453697A652E506C6174666F726D4465 - 6661756C7408000A5452656374616E676C6500095374796C654E616D65060A62 - 61636B67726F756E6405416C69676E0708436F6E74656E747307436F726E6572 - 730B08546F7052696768740B426F74746F6D5269676874000A46696C6C2E436F - 6C6F720709784646323032303230064C6F636B6564090748697454657374080A - 53697A652E57696474680500000000005655FB05400B53697A652E4865696768 - 740500000000000000C001401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F720709784646313531353135075852616469 - 75730500000000000000C0004007595261646975730500000000000000C00040 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506216261 - 636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E3108 - 4475726174696F6E050000000000000000000007496E7665727365090C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646343034303430 - 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 - 6572496E7665727365061149734D6F7573654F7665723D66616C736500000A54 - 52656374616E676C6500095374796C654E616D650609636865636B6D61726B05 - 416C69676E0708436F6E74656E747307436F726E6572730B08546F7052696768 - 740B426F74746F6D5269676874000A46696C6C2E436F6C6F7207097846463241 - 38324532064C6F636B656409074869745465737408074F706163697479050000 - 00000000000000000C4D617267696E732E4C656674050000000000000080FF3F - 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E - 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F0A53697A652E57696474680500000000005655F70540 - 0B53697A652E48656967687405000000000000008001401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 5852616469757305000000000000008000400759526164697573050000000000 - 0000800040000F54466C6F6174416E696D6174696F6E00095374796C654E616D - 65061A636865636B6D61726B4F706163697479416E696D6174696F6E31084475 - 726174696F6E05000000000000000000000C50726F70657274794E616D650607 - 4F7061636974790A537461727456616C75650500000000000000000000095374 - 6F7056616C7565050000000000000080FF3F0754726967676572060E49734368 - 65636B65643D747275650E54726967676572496E7665727365060F4973436865 - 636B65643D66616C7365000000000005545465787400095374796C654E616D65 - 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 - 54657374080A53697A652E57696474680500000000005655FB05400B53697A65 - 2E48656967687405000000000000008804401453697A652E506C6174666F726D - 44656661756C74080454657874060454657874165465787453657474696E6773 - 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 - 6F757400095374796C654E616D65061470726F67726573736261726D696E6973 - 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 - 00000033338505400B53697A652E4865696768740500000000009999E1044014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F72646572022E000A5452656374616E676C6500095374796C654E616D65 - 060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F - 6C6F720709784646343034303430064C6F636B6564090748697454657374080A - 53697A652E576964746805000000000033338505400B53697A652E4865696768 - 740500000000009999E104401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 0000000080004007595261646975730500000000000000800040000A54526563 - 74616E676C6500095374796C654E616D65060A68696E64696361746F7205416C - 69676E07044C6566740A46696C6C2E436F6C6F72070978464632413832453206 - 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 - 000000C804400B53697A652E4865696768740500000000009999E10440145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65075852616469757305000000000000008000400759526164697573 - 05000000000000008000400000000A5452656374616E676C6500095374796C65 - 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 - 7374080A53697A652E576964746805000000000033338505400B53697A652E48 - 65696768740500000000009999E104401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 - 050000000000000080004007595261646975730500000000000000800040000A - 5452656374616E676C6500095374796C654E616D65060A76696E64696361746F - 7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632 - 4138324532064C6F636B6564090748697454657374080A506F736974696F6E2E - 5905000000000099998D04400A53697A652E5769647468050000000000333385 - 05400B53697A652E4865696768740500000000000000A803401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 6507585261646975730500000000000000800040075952616469757305000000 - 00000000800040000000005450463007544C61796F757400095374796C654E61 - 6D65060E636F6D626F656469747374796C6505416C69676E070643656E746572 - 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508085461624F726465720230000C5442727573684F - 626A65637400095374796C654E616D65060A666F726567726F756E6400000B54 - 466F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E74 - 2E53697A650500000000000000D00240000007544C61796F757400095374796C - 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 - 730A53697A652E57696474680500000000000000C805400B53697A652E486569 - 6768740500000000000000C803401453697A652E506C6174666F726D44656661 - 756C7408000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F72 - 07097846463230323032300748697454657374080A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F72070978464632303230323007585261646975730500000000000000C0 - 004007595261646975730500000000000000C00040000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F - 6E315374796C65084475726174696F6E050000000000000000000007496E7665 - 727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A - 537461727456616C756507097846463230323032300953746F7056616C756507 - 097846463430343034300754726967676572062049734D6F7573654F7665723D - 747275653B4973466F63757365643D66616C73650E54726967676572496E7665 - 727365062149734D6F7573654F7665723D66616C73653B4973466F6375736564 - 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614436F6C6F72416E696D6174696F6E325374796C6508447572617469 - 6F6E050000000000000000000007496E7665727365090C50726F70657274794E - 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 - 463430343034300953746F7056616C7565070978464632413832453207547269 - 67676572061F49734D6F7573654F7665723D747275653B4973466F6375736564 - 3D747275650E54726967676572496E7665727365062049734D6F7573654F7665 - 723D747275653B4973466F63757365643D66616C7365000007544C61796F7574 - 00095374796C654E616D6506056172726F7705416C69676E0708466974526967 - 68740B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E - 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F - 6D050000000000000080FF3F0A506F736974696F6E2E580500000000005ED997 - 05400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769 - 647468050000000000889AB803400B53697A652E486569676874050000000000 - 0000B803401453697A652E506C6174666F726D44656661756C7408000A545265 - 6374616E676C6500095374796C654E616D65060A52656374616E676C65310541 - 6C69676E0708436F6E74656E747307436F726E6572730B08546F705269676874 - 0B426F74746F6D5269676874000A46696C6C2E436F6C6F720709784646333033 - 3033300748697454657374080A53697A652E5769647468050000000000889AB8 - 03400B53697A652E4865696768740500000000000000B803401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 6507585261646975730500000000000000C00040075952616469757305000000 - 00000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 - 6F6E050000000000000000000007496E7665727365090C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464633 - 30333033300953746F7056616C75650709784646343034303430075472696767 - 6572062049734D6F7573654F7665723D747275653B4973466F63757365643D66 - 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 - 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 - 696F6E325374796C65084475726174696F6E05000000000000000000000C5072 - 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463430343034300953746F7056616C756507097846463137353739 - 430754726967676572061F4973466F63757365643D747275653B49734D6F7573 - 654F7665723D7472756500000007544C61796F757400095374796C654E616D65 - 06074C61796F75743105416C69676E070643656E7465720C4D617267696E732E - 4C656674050000000000000080FF3F0A53697A652E5769647468050000000000 - 0000A002400B53697A652E4865696768740500000000000000C001401453697A - 652E506C6174666F726D44656661756C74080005545061746800095374796C65 - 4E616D650605506174683105416C69676E0706436C69656E7409446174612E50 - 6174680A3400000004000000000000000000C8420000C8420100000000009643 - 0000C842010000000000484300009643030000000000C8420000C8420A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080A53697A652E - 57696474680500000000000000A002400B53697A652E48656967687405000000 - 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E650000000000000C5442727573684F626A65 - 637400095374796C654E616D65060973656C656374696F6E0B42727573682E43 - 6F6C6F720709783936324138324532000007544C61796F757400095374796C65 - 4E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D617267 - 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 - 000000000000008000400D4D617267696E732E52696768740500000000000000 - F003400E4D617267696E732E426F74746F6D05000000000000008000400A5369 - 7A652E576964746805000000000000008805400B53697A652E48656967687405 - 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 - 0000005450463007544C61796F757400095374796C654E616D65061365787061 - 6E646572627574746F6E7374796C6505416C69676E070643656E7465720B4D61 - 7267696E732E546F70050000000000000080FF3F0A53697A652E576964746805 - 00000000000000B003400B53697A652E4865696768740500000000000000B003 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F7264657202330005545061746800095374796C654E616D65060550 - 6174683105416C69676E070643656E74657209446174612E506174680A340000 - 0004000000000000000000C8420000C84201000000000096430000C842010000 - 000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72 - 0708636C6157686974650748697454657374080D526F746174696F6E416E676C - 650500000000000000B405400A53697A652E57696474680500000000000000A0 - 02400B53697A652E4865696768740500000000000000C001401453697A652E50 + 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 + 74696F6E2E5905000000000099998904400A53697A652E576964746805000000 + 000033338105400B53697A652E4865696768740500000000000000A803401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000000005450463007544C61796F757400095374796C654E616D + 65060F64726F707461726765747374796C6505416C69676E070643656E746572 + 0A53697A652E5769647468050000000000ACAAD905400B53697A652E48656967 + 68740500000000000000CF05401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F72646572022D000A5452656374616E + 676C650005416C69676E0708436F6E74656E74730946696C6C2E4B696E640704 + 4E6F6E650748697454657374080A53697A652E5769647468050000000000ACAA + D905400B53697A652E4865696768740500000000000000CF05401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070863 + 6C615768697465105374726F6B652E546869636B6E6573730500000000000000 + 8001400B5374726F6B652E446173680704446173680758526164697573050000 + 0000000000C0024007595261646975730500000000000000C002400005545465 + 787400095374796C654E616D6506047465787405416C69676E0706426F74746F + 6D0748697454657374080C4D617267696E732E4C6566740500000000000000A0 + 02400D4D617267696E732E52696768740500000000000000A002400A506F7369 + 74696F6E2E580500000000000000A002400A506F736974696F6E2E5905000000 + 00000000D604400A53697A652E5769647468050000000000ACAAB105400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F + 720708636C6157686974650000001254466C6F61744B6579416E696D6174696F + 6E00084475726174696F6E050000000000999999FE3F044B6579730E01000103 + 4B6579050000000000000080FE3F0556616C75650500000000000000A003C000 + 01034B6579050000000000000080FF3F0000044C6F6F70090C50726F70657274 + 794E616D65060B50616464696E672E546F7010537461727446726F6D43757272 + 656E74080754726967676572060F4973447261674F7665723D74727565000005 + 54506174680005416C69676E070643656E74657209446174612E506174680AC4 + 000000100000000000000008EC8343F087A4430100000008EC8343083CFB4302 + 00000035BE7143504DF9430200000012835C43A8E6F54302000000F0674943F8 + 03F1430100000008EC8343FC0116440100000008EC8343FC5116440100000000 + 408443FC5116440100000010689A43FC412B4401000000081CD043F803F14302 + 000000915DC64321E0F54302000000919DBB439643F94302000000087CB043F8 + 33FB4301000000087CB043F087A4430100000008EC8343F087A4430300000000 + 000000000000000A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000100C804401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000545046 + 3007544C61796F757400095374796C654E616D65061464726F70746172676574 + 6669656C647374796C6505416C69676E070643656E7465720A53697A652E5769 + 64746805000000000000A08A07400B53697A652E486569676874050000000000 + 0000B204401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F72646572022E000A5452656374616E676C650009537479 + 6C654E616D65060A52656374616E676C653105416C69676E0706436C69656E74 + 0946696C6C2E4B696E6407044E6F6E650748697454657374080A53697A652E57 + 6964746805000000000000A08A07400B53697A652E4865696768740500000000 + 000000B204401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646324138324532000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74074869745465 + 7374080A53697A652E576964746805000000000000809A05400B53697A652E48 + 65696768740500000000000000B204401453697A652E506C6174666F726D4465 + 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C615768697465000007544C61796F757400095374796C654E616D6506074C61 + 796F75743105416C69676E07044C6566740A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000B204401453 + 697A652E506C6174666F726D44656661756C7408000554506174680009537479 + 6C654E616D650605506174683105416C69676E070643656E7465720944617461 + 2E506174680A24010000180000000000000073B8AC43C14A7843010000006D27 + 17435849DD430200000086CB0A431078E343020000009683ED421078E3430200 + 0000DACED4425849DD43020000009A19BC42081CD743020000009A19BC424C17 + CD4302000000DACED4421DEAC64301000000B4288B4385EB61430100000068D1 + D4426811584202000000281CBC42CAA1264202000000281CBC42E6FBAC410200 + 000068D1D442D04D144102000000A886ED429CC245C002000000CCCC0A439CC2 + 45C002000000B4281743D04D14410100000016B9AC43918D4B4302000000BECF + AF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB61430200 + 0000A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43C14A + 78430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080A53697A652E57696474680500000000000000F0 + 02400B53697A652E4865696768740500000000000000F002401453697A652E50 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061446 - 6C6F6174416E696D6174696F6E315374796C65084475726174696F6E05000000 - 0000CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263756C61720C - 50726F70657274794E616D65060D526F746174696F6E416E676C650A53746172 - 7456616C75650500000000000000B405400953746F7056616C75650500000000 - 0000000000000754726967676572060F4973457870616E6465643D747275650E - 54726967676572496E766572736506104973457870616E6465643D66616C7365 - 000000005450463007544C61796F757400095374796C654E616D650615657870 - 616E646572636865636B626F787374796C6505416C69676E070643656E746572 - 0A53697A652E576964746805000000000000008406400B53697A652E48656967 - 687405000000000000008404401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508085461624F7264657202360007544C61796F7574 - 0005416C69676E07044C6566740A53697A652E57696474680500000000000000 - C003400B53697A652E48656967687405000000000000008404401453697A652E - 506C6174666F726D44656661756C7408000554506174680005416C69676E0706 - 436C69656E7409446174612E506174680AD80100002700000000000000FEC8BA - 4402E79244020000002592AD4402E79244020000006D5BA544FEB09E44020000 - 006D5BA544FEB09E440200000093A4A4446A0C9F44020000004A80AC44FC79AA - 4402000000046EBA44FC79AA44020000004A00C844FC79AA44020000000080CF - 44FEB09E44020000000080CF44FEB09E44020000000080CF44FEB09E44020000 - 004C5BC84402E7924402000000FEC8BA4402E7924400000000FE88BA44FE3097 - 4402000000B876BF44FE309744020000000277C344EEA09A44020000000277C3 - 4404DE9E44020000000277C344121BA34402000000B876BF44008CA644020000 - 00FE88BA44008CA644020000004C9BB544008CA64402000000009CB144121BA3 - 4402000000009CB14404DE9E4402000000009CB144EEA09A44020000004C9BB5 - 44FE30974402000000FE88BA44FE309744000000000080BA44045E9B44020000 - 00146EB844045E9B440200000000C0B64454F79C440200000000C0B64400F09E - 440200000000C0B644ACE8A04402000000146EB844FC81A244020000000080BA - 44FC81A24402000000EC91BC44FC81A244020000000040BE44ACE8A044020000 - 000040BE4400F09E44020000000040BE4454F79C4402000000EC91BC44045E9B - 44020000000080BA44045E9B440A46696C6C2E436F6C6F720709783630303030 - 3030300748697454657374080C4D617267696E732E4C65667405000000000000 - 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 - 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D05000000000000008000400A53697A652E576964746805000000000000 - 00A003400B53697A652E4865696768740500000000000000E803401453697A65 + 6508577261704D6F64650703466974000005545061746800095374796C654E61 + 6D650605506174683205416C69676E070643656E74657209446174612E506174 + 680A24010000180000000000000073B8AC43C14A7843010000006D2717435849 + DD430200000086CB0A431078E343020000009683ED421078E34302000000DACE + D4425849DD43020000009A19BC42081CD743020000009A19BC424C17CD430200 + 0000DACED4421DEAC64301000000B4288B4385EB61430100000068D1D4426811 + 584202000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1 + D442D04D144102000000A886ED429CC245C002000000CCCC0A439CC245C00200 + 0000B4281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB + 5143020000009F5AB143F1D25943020000009F5AB14343EB614302000000A05A + B1439C046A4302000000FACEAF43711D72430200000073B8AC43C14A78430300 + 000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080C4D617267696E732E4C6566740500000000000000A00440 + 0A53697A652E57696474680500000000000000F002400B53697A652E48656967 + 68740500000000000000F002401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F64650703 + 466974000005545061746800095374796C654E616D650605506174683305416C + 69676E070643656E74657209446174612E506174680A24010000180000000000 + 000073B8AC43C14A7843010000006D2717435849DD430200000086CB0A431078 + E343020000009683ED421078E34302000000DACED4425849DD43020000009A19 + BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEAC6430100 + 0000B4288B4385EB61430100000068D1D4426811584202000000281CBC42CAA1 + 264202000000281CBC42E6FBAC410200000068D1D442D04D144102000000A886 + ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D14410100 + 000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D2 + 5943020000009F5AB14343EB614302000000A05AB1439C046A4302000000FACE + AF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A78430A46 + 696C6C2E436F6C6F720708636C6157686974650748697454657374080D4D6172 + 67696E732E52696768740500000000000000A004400A53697A652E5769647468 + 0500000000000000F002400B53697A652E4865696768740500000000000000F0 + 02401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6508577261704D6F6465070346697400000007544C6179 + 6F757400095374796C654E616D6506074C61796F75743205416C69676E070552 + 696768740A506F736974696F6E2E580500000000000040B106400A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000B204401453697A652E506C6174666F726D44656661756C7408000554 + 5061746800095374796C654E616D650605506174683105416C69676E07064365 + 6E74657209446174612E506174680A24010000180000000000000073B8AC43C1 + 4A7843010000006D2717435849DD430200000086CB0A431078E3430200000096 + 83ED421078E34302000000DACED4425849DD43020000009A19BC42081CD74302 + 0000009A19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385 + EB61430100000068D1D4426811584202000000281CBC42CAA126420200000028 + 1CBC42E6FBAC410200000068D1D442D04D144102000000A886ED429CC245C002 + 000000CCCC0A439CC245C002000000B4281743D04D14410100000016B9AC4391 + 8D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F + 5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43711D724302 + 00000073B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080D526F746174696F6E416E + 676C650500000000000000B406400A53697A652E576964746805000000000000 + 00F002400B53697A652E4865696768740500000000000000F002401453697A65 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6508577261704D6F64650703466974000F54436F6C6F72416E696D617469 - 6F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 - 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709783630 - 3030303030300953746F7056616C75650708636C61426C61636B075472696767 - 6572060E4973436865636B65643D7472756500000F54436F6C6F72416E696D61 - 74696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070863 - 6C61426C61636B0953746F7056616C7565070978363030303030303007547269 - 67676572060F4973436865636B65643D66616C73650000000005545465787400 - 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 000000008002400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E5269676874050000000000000080FF3F0A53697A652E576964 - 74680500000000000000C605400B53697A652E48656967687405000000000000 - 00F803401453697A652E506C6174666F726D44656661756C7408165465787453 - 657474696E67732E466F6E74436F6C6F72070978464645454545454516546578 - 7453657474696E67732E486F727A416C69676E07074C656164696E6700000054 - 50463007544C61796F757400095374796C654E616D65060D657870616E646572 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 0000000000C08607400B53697A652E4865696768740500000000000000CE0540 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720239000A5452656374616E676C6500095374796C654E616D - 65060B626772656374616E676C6505416C69676E0708436F6E74656E74730A46 - 696C6C2E436F6C6F720709784646324432443244064C6F636B65640907486974 - 54657374080A53697A652E576964746805000000000000C08607400B53697A65 - 2E4865696768740500000000000000CE05401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 07585261646975730500000000000000C0004007595261646975730500000000 - 000000C000400007544C61796F757400095374796C654E616D6506074C61796F - 75743305416C69676E0703546F700A53697A652E576964746805000000000000 - C08607400B53697A652E4865696768740500000000000000C803401453697A65 - 2E506C6174666F726D44656661756C74080007544C61796F757400095374796C - 654E616D6506074C61796F75743405416C69676E0708436F6E74656E74730A53 - 697A652E576964746805000000000000C08607400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 08000A5452656374616E676C6500095374796C654E616D65060A52656374616E - 676C653205416C69676E0708436F6E74656E747307436F726E6572730B07546F - 704C65667408546F705269676874000A46696C6C2E436F6C6F72070978464632 - 3532353235064C6F636B6564090748697454657374080A53697A652E57696474 - 6805000000000000C08607400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646313531353135075852616469757305000000000000 - 00C0004007595261646975730500000000000000C0004000000A545265637461 - 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 - 6E0708436F6E74656E747307436F726E6572730B07546F704C65667408546F70 - 5269676874000A46696C6C2E436F6C6F720709784646313531353135064C6F63 - 6B6564090748697454657374080A53697A652E576964746805000000000000C0 - 8607400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E6507585261646975730500000000000000C000400759526164697573050000 - 0000000000C00040000F54466C6F6174416E696D6174696F6E00095374796C65 - 4E616D650614466C6F6174416E696D6174696F6E315374796C65084475726174 - 696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E07084369 - 7263756C61720C50726F70657274794E616D6506075363616C652E580A537461 - 727456616C7565050000000000000080FF3F0953746F7056616C756505000000 - 000000000000000754726967676572060F4973457870616E6465643D74727565 - 0E54726967676572496E766572736506104973457870616E6465643D66616C73 - 650000000007544C61796F757400095374796C654E616D6506074C61796F7574 - 3305416C69676E0708436F6E74656E74730A53697A652E576964746805000000 - 000000C08607400B53697A652E4865696768740500000000000000C803401453 - 697A652E506C6174666F726D44656661756C7408000554546578740009537479 - 6C654E616D6506047465787405416C69676E07044C656674084175746F53697A - 65090A436C6970506172656E7409064C6F636B6564090748697454657374080C - 4D617267696E732E4C6566740500000000000000A002400A506F736974696F6E - 2E580500000000000000A002400A53697A652E576964746805000000000000B8 - C703400B53697A652E4865696768740500000000000060FF02401453697A652E - 506C6174666F726D44656661756C740804546578740604546578741654657874 - 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 - 7453657474696E67732E486F727A416C69676E07074C656164696E670000000F - 54457870616E646572427574746F6E00095374796C654E616D65060662757474 - 6F6E05416C69676E07055269676874064C6F636B6564090A506F736974696F6E - 2E580500000000000080F906400A53697A652E57696474680500000000000000 - A003400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C740800000000005450463007544C61796F75 - 7400095374796C654E616D650615616E69696E64696361746F72686F727A7374 + 6F6E6508577261704D6F64650703466974000005545061746800095374796C65 + 4E616D650605506174683205416C69676E070643656E74657209446174612E50 + 6174680A24010000180000000000000073B8AC43C14A7843010000006D271743 + 5849DD430200000086CB0A431078E343020000009683ED421078E34302000000 + DACED4425849DD43020000009A19BC42081CD743020000009A19BC424C17CD43 + 02000000DACED4421DEAC64301000000B4288B4385EB61430100000068D1D442 + 6811584202000000281CBC42CAA1264202000000281CBC42E6FBAC4102000000 + 68D1D442D04D144102000000A886ED429CC245C002000000CCCC0A439CC245C0 + 02000000B4281743D04D14410100000016B9AC43918D4B4302000000BECFAF43 + A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB614302000000 + A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43C14A7843 + 0300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C6157686974 + 650748697454657374080C4D617267696E732E4C6566740500000000000000A0 + 04400D526F746174696F6E416E676C650500000000000000B406400A53697A65 + 2E57696474680500000000000000F002400B53697A652E486569676874050000 + 0000000000F002401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669740000 + 05545061746800095374796C654E616D650605506174683305416C69676E0706 + 43656E74657209446174612E506174680A24010000180000000000000073B8AC + 43C14A7843010000006D2717435849DD430200000086CB0A431078E343020000 + 009683ED421078E34302000000DACED4425849DD43020000009A19BC42081CD7 + 43020000009A19BC424C17CD4302000000DACED4421DEAC64301000000B4288B + 4385EB61430100000068D1D4426811584202000000281CBC42CAA12642020000 + 00281CBC42E6FBAC410200000068D1D442D04D144102000000A886ED429CC245 + C002000000CCCC0A439CC245C002000000B4281743D04D14410100000016B9AC + 43918D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D25943020000 + 009F5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43711D72 + 430200000073B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080D4D617267696E732E + 52696768740500000000000000A004400D526F746174696F6E416E676C650500 + 000000000000B406400A53697A652E57696474680500000000000000F002400B + 53697A652E4865696768740500000000000000F002401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650857 + 7261704D6F6465070346697400000000005450463007544C61796F7574000953 + 74796C654E616D65060C706F706F7665727374796C6505416C69676E07064365 + 6E7465720756697369626C6508085461624F72646572022F000A545265637461 + 6E676C6500095374796C654E616D650602626705416C69676E0706436C69656E + 740A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C61 + 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0706 + 436C69656E740C4D617267696E732E4C656674050000000000000080FF3F0B4D + 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 + 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A53697A652E57696474680500000000000000C004400B53 + 697A652E4865696768740500000000000000C004401453697A652E506C617466 + 6F726D44656661756C740800000D54536861646F774566666563740008446973 + 74616E63650500000000000000C0004009446972656374696F6E050000000000 + 0000B4054008536F66746E657373050000000000000080FE3F074F7061636974 + 79050000000000000080FE3F0B536861646F77436F6C6F720708636C61426C61 + 636B000000005450463007544C61796F757400095374796C654E616D65060D70 + 6F707570626F787374796C6505416C69676E070643656E7465720A53697A652E + 57696474680500000000000080C406400B53697A652E48656967687405000000 + 00000000D404401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F726465720230000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A53697A652E57696474680500000000000080C406400B53697A652E48 + 65696768740500000000000000D404401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572062049734D6F7573654F7665723D747275653B497350 + 7265737365643D66616C73650E54726967676572496E7665727365062149734D + 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463430343034300953746F7056616C75650709 + 7846463241383245320754726967676572062049734D6F7573654F7665723D74 + 7275653B4973507265737365643D747275653B0E54726967676572496E766572 + 7365062049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C736500000007544C61796F75740005416C69676E070552696768740A506F + 736974696F6E2E580500000000000080B506400A53697A652E57696474680500 + 000000000000F002400B53697A652E4865696768740500000000000000D40440 + 1453697A652E506C6174666F726D44656661756C740800055450617468000541 + 6C69676E070643656E74657209446174612E506174680A400000000500000000 + 000000000000000000803F010000000000803F0000803F010000000000003F00 + 00000001000000000000000000803F0300000000000000000000000A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080B4D617267696E + 732E546F700500000000000000E001C00A53697A652E57696474680500000000 + 0000008002400B53697A652E4865696768740500000000000000800140145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E6500000554506174680005416C69676E070643656E74657209446174 + 612E506174680A34000000040000000000000000000000000000000100000000 + 00803F00000000010000000000003F0000803F0300000000000000000000000A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080B4D61 + 7267696E732E546F700500000000000000C001400A53697A652E576964746805 + 000000000000008002400B53697A652E48656967687405000000000000008001 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000005545465787400095374796C654E616D65060474 + 65787405416C69676E0706436C69656E740748697454657374080C4D61726769 + 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A + 652E57696474680500000000000080B306400B53697A652E4865696768740500 + 000000000000CC04401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 000000545046300A5452656374616E676C6500095374796C654E616D65061473 + 74617475736261726E6F677269707374796C6505416C69676E070643656E7465 + 720C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978464632 + 35323532350553696465730B03546F70000A53697A652E576964746805000000 + 00000000F004400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350756697369626C650800005450463007544C6179 + 6F757400095374796C654E616D650613736D616C6C7363726F6C6C6261727374 + 796C6505416C69676E070643656E7465720756697369626C6508085461624F72 + 6465720232000654547261636B00095374796C654E616D65060668747261636B + 05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E74617469 + 6F6E070A486F72697A6F6E74616C0A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570061473 + 63726F6C6C62617268747261636B7374796C6500000654547261636B00095374 + 796C654E616D65060676747261636B05416C69676E0706436C69656E74064C6F + 636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374796C654C6F6F6B757006147363726F6C6C62617276747261636B737479 + 6C650000005450463007544C61796F757400095374796C654E616D65060D7370 + 6C69747465727374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000A904400B53697A652E4865696768740500000000 + 000080C105401453697A652E506C6174666F726D44656661756C740807566973 + 69626C6508085461624F726465720233000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653105416C69676E0706436C69656E + 740A46696C6C2E436F6C6F720709784646333033303330074869745465737408 + 0553696465730B044C656674055269676874000A53697A652E57696474680500 + 000000000000A904400B53697A652E4865696768740500000000000080C10540 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F720709784646313531353135000007544C61796F757400095374796C654E + 616D6506064C61796F757405416C69676E0706436C69656E740A53697A652E57 + 696474680500000000000000A904400B53697A652E4865696768740500000000 + 000080C105401453697A652E506C6174666F726D44656661756C74080007544C + 61796F757400095374796C654E616D6506046772697005416C69676E070A5665 + 727443656E746572064C6F636B6564090A506F736974696F6E2E590500000000 + 0000008004400A53697A652E57696474680500000000000000A904400B53697A + 652E48656967687405000000000000008004401453697A652E506C6174666F72 + 6D44656661756C7408000754436972636C6500095374796C654E616D65060743 + 6972636C653305416C69676E070643656E7465720A46696C6C2E436F6C6F7207 + 097846463430343034300748697454657374080E4D617267696E732E426F7474 + 6F6D0500000000000000A003400A53697A652E57696474680500000000000000 + E001400B53697A652E4865696768740500000000000000E001401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 464631353135313500000754436972636C6500095374796C654E616D65060743 + 6972636C653205416C69676E070643656E7465720A46696C6C2E436F6C6F7207 + 097846463430343034300748697454657374080B4D617267696E732E546F7005 + 00000000000000A003400A53697A652E57696474680500000000000000E00140 + 0B53697A652E4865696768740500000000000000E001401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 353135313500000754436972636C6500095374796C654E616D65060743697263 + 6C653105416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463430343034300748697454657374080A53697A652E57696474680500000000 + 000000E001400B53697A652E4865696768740500000000000000E00140145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 070978464631353135313500000000005450463007544C61796F757400095374 + 796C654E616D650610636C6F7365627574746F6E7374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F726465720234000A + 5452656374616E676C6500095374796C654E616D65060B636C6F736562757474 + 6F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846464646363135370754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646464636313537 + 0953746F7056616C756507097846464532344634350754726967676572061F49 + 734D6F7573654F7665723D747275653B4973507265737365643D747275650E54 + 726967676572496E7665727365062049734D6F7573654F7665723D747275653B + 4973507265737365643D66616C736500000005545061746800095374796C654E + 616D650605506174683105416C69676E070643656E74657209446174612E5061 + 74680AC400000010000000000000000000A0C000007041010000000000704100 + 00A0C001000000000048420000F041010000000000AA420000A0C00100000000 + 00D242000070410100000000008C4200004842010000000000D2420000B44201 + 0000000000AA420000DC42020000003BDF34429E6F8C4202000000FE547D427F + AAB04202000000000048420000964201000000000070410000DC420100000000 + 00A0C00000B442010000000000F04100005C42010000000000A0C00000704103 + 0000000000A0C0000070410A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080A53697A652E57696474680500000000000000A002400B + 53697A652E4865696768740500000000000000A002401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 005450463007544C61796F757400095374796C654E616D65060E6D6178627574 + 746F6E7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720235000A5452656374616E676C6500095374796C65 + 4E616D6506096D6178627574746F6E05416C69676E0706436C69656E740A4669 + 6C6C2E436F6C6F7207097846463230323032300748697454657374080A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374 + 796C65084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3230323032300953746F7056616C756507097846463241383245320754726967 + 676572062049734D6F7573654F7665723D747275653B4973507265737365643D + 66616C73650E54726967676572496E7665727365062149734D6F7573654F7665 + 723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E325374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463241383245320953746F7056616C7565070978464631373537 + 39430754726967676572061F49734D6F7573654F7665723D747275653B497350 + 7265737365643D747275650E54726967676572496E7665727365062049734D6F + 7573654F7665723D747275653B4973507265737365643D66616C736500000005 + 545061746800095374796C654E616D650605506174683105416C69676E070643 + 656E74657209446174612E506174680A5800000007000000000000000000C842 + 0000C8420100000000002F440000C8420100000000002F4400002F4401000000 + 0080094400800944010000000080094400007A430100000000007A4300007A43 + 030000000000C8420000C8420A46696C6C2E436F6C6F720708636C6157686974 + 650748697454657374080A53697A652E57696474680500000000000000A00240 + 0B53697A652E4865696768740500000000000000A002401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 00005450463007544C61796F757400095374796C654E616D65060E7265736275 + 74746F6E7374796C6505416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F726465720236000A5452656374616E676C6500095374796C + 654E616D650609726573627574746F6E05416C69676E0706436C69656E740A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 + 74796C65084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464632413832453207547269 + 67676572062049734D6F7573654F7665723D747275653B497350726573736564 + 3D66616C73650E54726967676572496E7665727365062149734D6F7573654F76 + 65723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D + 6174696F6E325374796C65084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463241383245320953746F7056616C75650709784646313735 + 3739430754726967676572061F49734D6F7573654F7665723D747275653B4973 + 507265737365643D747275650E54726967676572496E7665727365062049734D + 6F7573654F7665723D747275653B4973507265737365643D66616C7365000000 + 05545061746800095374796C654E616D650605506174683105416C69676E0706 + 43656E74657209446174612E506174680A5800000007000000000000000000C8 + 420000C8420100000000002F440000C8420100000000002F4400002F44010000 + 000080094400800944010000000080094400007A430100000000007A4300007A + 43030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869 + 74650748697454657374080D526F746174696F6E416E676C6505000000000000 + 00B406400A53697A652E57696474680500000000000000A002400B53697A652E + 4865696768740500000000000000A002401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054504630 + 07544C61796F757400095374796C654E616D65060E6D696E627574746F6E7374 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00000040C006400B53697A652E48656967687405000000000000008000401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508000A54 - 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 - 05416C69676E0706436C69656E740C436C69704368696C6472656E090A46696C - 6C2E436F6C6F7207097846463430343034300A53697A652E5769647468050000 - 0000000040C006400B53697A652E486569676874050000000000000080004014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E650758526164697573050000000000000080FF3F075952616469 - 7573050000000000000080FF3F0005544C696E6500095374796C654E616D6506 - 054C696E6531084C696E65547970650706426F74746F6D0A53697A652E576964 - 74680500000000000000A00B400B53697A652E48656967687405000000000000 - 008000401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F720709784646324138324532105374726F6B652E546869636B6E - 65737305000000000000008002400A5374726F6B652E4361700705526F756E64 - 0B5374726F6B652E446173680704446173680B5374726F6B652E4A6F696E0705 - 526F756E64000F54466C6F6174416E696D6174696F6E00095374796C654E616D - 650603616E6907456E61626C656409084475726174696F6E0500000000000000 - 800340044C6F6F70090C50726F70657274794E616D65060A506F736974696F6E - 2E580A537461727456616C75650500000000000000C808C00953746F7056616C - 756505000000000000000000000754726967676572060E497356697369626C65 - 3D7472756500000000005450463007544C61796F757400095374796C654E616D - 650611616E69696E64696361746F727374796C6505416C69676E070643656E74 - 65720756697369626C650800045441726300095374796C654E616D6506034172 - 6305416C69676E0708436F6E74656E74730748697454657374080D526F746174 - 696F6E416E676C650500000000000000B407400A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80440 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F720708636C615768697465105374726F6B652E546869636B6E6573730500 - 00000000000080004008456E64416E676C650500000000000000B405C0000F54 - 466C6F6174416E696D6174696F6E00095374796C654E616D650603616E690745 - 6E61626C656409084475726174696F6E050000000000000080FF3F044C6F6F70 - 090C50726F70657274794E616D65060D526F746174696F6E416E676C650A5374 - 61727456616C756505000000000000000000000953746F7056616C7565050000 - 0000000000B407400754726967676572060E497356697369626C653D74727565 - 000000005450463007544C61796F757400095374796C654E616D65060A70616E - 656C7374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 0500000000000000C006400B53697A652E4865696768740500000000000000A4 - 06401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 - 6F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 - 097846463230323032300A53697A652E57696474680500000000000000C00640 - 0B53697A652E4865696768740500000000000000A406401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 585261646975730500000000000000C000400759526164697573050000000000 - 0000C000400000005450463007544C61796F757400095374796C654E616D6506 - 1970726F67726573736261726D696E696572726F727374796C6505416C69676E - 070643656E7465720A53697A652E576964746805000000000033338505400B53 - 697A652E4865696768740500000000009999E104401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 - 00095374796C654E616D65060668747261636B05416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000003333850540 - 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 5852616469757305000000000000008000400759526164697573050000000000 - 0000800040000A5452656374616E676C6500095374796C654E616D65060A6869 - 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 - 09784646453232413241064C6F636B6564090748697454657374080A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000009999E104401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 - 800040075952616469757305000000000000008000400000000A545265637461 - 6E676C6500095374796C654E616D65060676747261636B05416C69676E070843 - 6F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000033 - 338505400B53697A652E4865696768740500000000009999E104401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E650758526164697573050000000000000080004007595261646975730500 - 000000000000800040000A5452656374616E676C6500095374796C654E616D65 - 060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E - 436F6C6F720709784646453232413241064C6F636B6564090748697454657374 - 080A506F736974696F6E2E5905000000000099998D04400A53697A652E576964 - 746805000000000033338505400B53697A652E48656967687405000000000000 - 00A803401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650758526164697573050000000000000080004007 - 595261646975730500000000000000800040000000005450463007544C61796F - 757400095374796C654E616D65060E6C6F67627574746F6E7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000C005 - 400B53697A652E4865696768740500000000000000C005401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 0201000A5452656374616E676C6500095374796C654E616D65060A6261636B67 - 726F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E - 090A436C6970506172656E740907436F726E6572730B08546F7052696768740B - 426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632303230 - 32300748697454657374080A53697A652E57696474680500000000000000C005 - 400B53697A652E4865696768740500000000000000C005401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 07585261646975730500000000000000C0004007595261646975730500000000 - 000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572617469 - 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463230323032300953746F - 7056616C756507097846463430343034300754726967676572063049734D6F75 - 73654F7665723D747275653B4973507265737365643D66616C73653B4973466F - 63757365643D66616C73650E54726967676572496E7665727365063149734D6F - 7573654F7665723D66616C73653B4973507265737365643D66616C73653B4973 - 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E - 32084475726174696F6E05000000000000000000000C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463430 - 343034300953746F7056616C7565070978464631373537394307547269676765 - 72062F4973507265737365643D747275653B49734D6F7573654F7665723D7472 - 75653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D61 - 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D - 6174696F6E33084475726174696F6E05000000000000000000000C50726F7065 - 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 - 7846463241383245320953746F7056616C756507097846463137353739430754 - 726967676572062E4973507265737365643D747275653B49734D6F7573654F76 - 65723D747275653B4973466F63757365643D747275650E54726967676572496E - 7665727365062F4973507265737365643D66616C73653B49734D6F7573654F76 - 65723D747275653B4973466F63757365643D7472756500000554506174680009 - 5374796C654E616D650605506174683105416C69676E0706436C69656E740944 - 6174612E506174680A5C02000032000000000000000000A841CDCCCC40010000 - 000000A8410000C041010000000000C03F0000C041010000000000C03F000000 - 00010000009A99694100000000010000000000A841CDCCCC40030000000000A8 - 41CDCCCC400000000000009C410000F04001000000000058410000F040010000 - 00000058410000C03F01000000000040400000C03F01000000000040400000B4 - 410100000000009C410000B4410100000000009C410000F0400300000000009C - 410000F04000000000000040410000F04001000000000090400000F040010000 - 00000090400000C04001000000000040410000C04001000000000040410000F0 - 4003000000000040410000F04000000000000090400000104101000000000090 - 4100001041010000000000904100002841010000000000904000002841010000 - 0000009040000010410300000000009040000010410000000000009040000040 - 4101000000000090410000404101000000000090410000584101000000000090 - 4000005841010000000000904000004041030000000000904000004041000000 - 0000009040000070410100000000009041000070410100000000009041000084 - 4101000000000090400000844101000000000090400000704103000000000090 - 4000007041000000000000904000009041010000000000904100009041010000 - 000000904100009C41010000000000904000009C410100000000009040000090 - 4103000000000090400000904100000000000070410000C04001000000333393 - 410000C04001000000000070416666264001000000000070410000C040030000 - 00000070410000C0400A46696C6C2E436F6C6F720708636C6157686974650748 - 697454657374080C4D617267696E732E4C6566740500000000000000A002400B - 4D617267696E732E546F700500000000000000A002400D4D617267696E732E52 - 696768740500000000000000A002400E4D617267696E732E426F74746F6D0500 - 000000000000A002400A53697A652E576964746805000000000000009805400B - 53697A652E48656967687405000000000000009805401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650857 - 7261704D6F64650703466974000000005450463007544C61796F757400095374 - 796C654E616D65061B7472656576696577657870616E646572627574746F6E73 - 74796C6505416C69676E070643656E7465720B4D617267696E732E546F700500 - 00000000000080FF3F0A53697A652E57696474680500000000000000B003400B - 53697A652E4865696768740500000000000000B003401453697A652E506C6174 - 666F726D44656661756C74080756697369626C65080005545061746800095374 - 796C654E616D650605506174683105416C69676E070643656E74657209446174 - 612E506174680A3400000004000000000000000000C8420000C8420100000000 - 0096430000C842010000000000484300009643030000000000C8420000C8420A - 46696C6C2E436F6C6F720708636C6157686974650748697454657374080D526F - 746174696F6E416E676C650500000000000000B405C00A53697A652E57696474 - 680500000000000000A002400B53697A652E4865696768740500000000000000 - C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374 - 796C654E616D650614466C6F6174416E696D6174696F6E315374796C65084475 - 726174696F6E05000000000000000000000D496E746572706F6C6174696F6E07 - 0843697263756C61720C50726F70657274794E616D65060D526F746174696F6E - 416E676C650A537461727456616C75650500000000000000B405C00953746F70 - 56616C756505000000000000000000000754726967676572060F497345787061 - 6E6465643D747275650E54726967676572496E76657273650610497345787061 - 6E6465643D66616C7365000000005450463007544C61796F757400095374796C - 654E616D65060D74726565766965777374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000000000E106400B53697A652E4865 - 6967687405000000000000808107401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508000C5442727573684F626A65637400095374 - 796C654E616D650618416C7465726E6174696E67526F774261636B67726F756E - 640B42727573682E436F6C6F72070978304646464646464600000A5452656374 - 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 - 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230 - 3230064C6F636B6564090748697454657374080C50616464696E672E4C656674 - 050000000000000080FF3F0D50616464696E672E526967687405000000000000 - 0080FF3F0A53697A652E57696474680500000000000000E106400B53697A652E - 48656967687405000000000000808107401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 - 676E0706436C69656E740C436C69704368696C6472656E090B4D617267696E73 - 2E546F70050000000000000080FF3F0A53697A652E5769647468050000000000 - 0000CD06400B53697A652E4865696768740500000000000000F006401453697A - 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 - 5374796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C6F7207 - 097846463241383245320748697454657374080A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80440 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E6507585261646975730500000000000000C000400759526164 - 6975730500000000000000C0004000000A5452656374616E676C650009537479 - 6C654E616D650610666F637573656473656C656374696F6E0A46696C6C2E436F - 6C6F7207097846463241383245320748697454657374080A53697A652E576964 + 00000000C804400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F726465720237000A5452656374616E676C6500095374796C654E616D6506 + 096D696E627574746F6E05416C69676E0706436C69656E740A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080A53697A652E576964 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650B5374726F6B652E446173680703446F74075852 - 61646975730500000000000000C0004007595261646975730500000000000000 - C000400000000A545363726F6C6C42617200095374796C654E616D65060A7673 - 63726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E67 - 6505000000000000000000000B4F7269656E746174696F6E0708566572746963 - 616C0C4D617267696E732E4C65667405000000000000008000400A506F736974 - 696F6E2E580500000000000000D006400A53697A652E57696474680500000000 - 0000008003400B53697A652E4865696768740500000000000000F10640145369 - 7A652E506C6174666F726D44656661756C740800000A545363726F6C6C426172 - 00095374796C654E616D65060A687363726F6C6C62617205416C69676E070642 - 6F74746F6D0B536D616C6C4368616E676505000000000000000000000B4F7269 - 656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F70 - 05000000000000008000400A506F736974696F6E2E58050000000000000080FF - 3F0A506F736974696F6E2E590500000000000000F306400A53697A652E576964 - 74680500000000000000DF06400B53697A652E48656967687405000000000000 - 008003401453697A652E506C6174666F726D44656661756C740800000F54536D - 616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C73 - 63726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E67 - 6505000000000000000000000B4F7269656E746174696F6E0708566572746963 - 616C0C4D617267696E732E4C65667405000000000000008000400A506F736974 - 696F6E2E580500000000000000C605400A506F736974696F6E2E590500000000 - 0000008000400A53697A652E576964746805000000000000008002400B53697A - 652E48656967687405000000000000008002401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C650800000F54536D616C6C5363726F6C - 6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C626172 - 05416C69676E0706426F74746F6D0B536D616C6C4368616E6765050000000000 - 00000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D61 - 7267696E732E546F7005000000000000008000400A506F736974696F6E2E5805 - 000000000000008000400A506F736974696F6E2E590500000000000000E20540 - 0A53697A652E576964746805000000000000009606400B53697A652E48656967 - 687405000000000000008002401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C650800000000545046300A5452656374616E676C6500 - 095374796C654E616D65061174726565766965776974656D7374796C6505416C - 69676E070643656E7465720946696C6C2E4B696E6407044E6F6E650748697454 - 657374080553696465730B06426F74746F6D000A53697A652E57696474680500 - 000000000000AE05400B53697A652E4865696768740500000000000000A00440 + 00C803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614436F6C6F72416E696D6174696F6E315374796C650844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463230323032 + 300953746F7056616C7565070978464632413832453207547269676765720620 + 49734D6F7573654F7665723D747275653B4973507265737365643D66616C7365 + 0E54726967676572496E7665727365062149734D6F7573654F7665723D66616C + 73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E32 + 5374796C65084475726174696F6E05000000000000000000000C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463241383245320953746F7056616C75650709784646313735373943075472 + 6967676572061F49734D6F7573654F7665723D747275653B4973507265737365 + 643D747275650E54726967676572496E7665727365062049734D6F7573654F76 + 65723D747275653B4973507265737365643D66616C7365000000055450617468 + 00095374796C654E616D650605506174683105416C69676E070643656E746572 + 09446174612E506174680A40000000050000000000000000002F440080094401 + 00000000002F4400002F44010000000000C84200002F44010000000000C84200 + 8009440300000000002F44008009440A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080B4D617267696E732E546F7005000000000000 + 00A002400D526F746174696F6E416E676C650500000000000000B406400A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C000401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F75 + 7400095374796C654E616D65060F746F6F6C77696E646F777374796C6505416C + 69676E070643656E7465720A53697A652E576964746805000000000056D5AF07 + 400B53697A652E4865696768740500000000000000B306401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 0238000A5452656374616E676C6500095374796C654E616D6506046D61736B05 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464631 + 30313031300A53697A652E576964746805000000000056D5AF07400B53697A65 + 2E4865696768740500000000000000B306401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669736962 + 6C6508000007544C61796F757400095374796C654E616D6506046C6566740541 + 6C69676E07084D6F73744C656674064C6F636B6564090A506F736974696F6E2E + 590500000000000000C803400A53697A652E57696474680500000000000000A0 + 01400B53697A652E48656967687405000000000000009A06401453697A652E50 + 6C6174666F726D44656661756C7408000A5452656374616E676C650005416C69 + 676E07084D6F73744C6566740A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080553696465730B044C656674055269676874000A53 + 697A652E57696474680500000000000000A001400B53697A652E486569676874 + 05000000000000009506401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F72070978464631353135313500000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C + 69676E070A4D6F7374426F74746F6D13456E61626C6544726167486967686C69 + 676874080A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A506F736974696F6E2E5905000000000000009506400553696465730B + 044C65667406426F74746F6D000A53697A652E57696474680500000000000000 + A001400B53697A652E4865696768740500000000000000A001401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 46463135313531350007544C61796F757400095374796C654E616D6506074C61 + 796F75743305416C69676E07094D6F737452696768740A506F736974696F6E2E + 5805000000000000008001400A53697A652E5769647468050000000000000080 + FF3F0B53697A652E4865696768740500000000000000A001401453697A652E50 + 6C6174666F726D44656661756C7408000A5452656374616E676C650009537479 + 6C654E616D65060A52656374616E676C653105416C69676E0703546F700A4669 + 6C6C2E436F6C6F7207097846463135313531350748697454657374080A53697A + 652E5769647468050000000000000080FF3F0B53697A652E4865696768740500 + 00000000000080FF3F1453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000000000007544C61796F75740009 + 5374796C654E616D650605726967687405416C69676E07094D6F737452696768 + 74064C6F636B6564090A506F736974696F6E2E580500000000005655AD07400A + 506F736974696F6E2E590500000000000000C803400A53697A652E5769647468 + 0500000000000000A001400B53697A652E48656967687405000000000000009A + 06401453697A652E506C6174666F726D44656661756C7408000A545265637461 + 6E676C650005416C69676E07094D6F737452696768740A46696C6C2E436F6C6F + 7207097846463230323032300748697454657374080553696465730B044C6566 + 74055269676874000A53697A652E57696474680500000000000000A001400B53 + 697A652E48656967687405000000000000009506401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 35313500000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653105416C69676E070A4D6F7374426F74746F6D13456E61626C65 + 44726167486967686C69676874080A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080A506F736974696F6E2E590500000000000000 + 9506400553696465730B06426F74746F6D055269676874000A53697A652E5769 + 6474680500000000000000A001400B53697A652E486569676874050000000000 + 0000A001401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F7207097846463135313531350007544C61796F757400095374 + 796C654E616D6506074C61796F75743305416C69676E07084D6F73744C656674 + 0A53697A652E5769647468050000000000000080FF3F0B53697A652E48656967 + 68740500000000000000A001401453697A652E506C6174666F726D4465666175 + 6C7408000A5452656374616E676C6500095374796C654E616D65060A52656374 + 616E676C653105416C69676E0703546F700A46696C6C2E436F6C6F7207097846 + 463135313531350748697454657374080A53697A652E57696474680500000000 + 00000080FF3F0B53697A652E486569676874050000000000000080FF3F145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E6500000000000A5452656374616E676C650005416C69676E07074D6F + 7374546F700A46696C6C2E436F6C6F720709784646323032303230064C6F636B + 6564090748697454657374080A53697A652E576964746805000000000056D5AF + 07400B53697A652E4865696768740500000000000000C803401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 463135313531350007544C61796F757400095374796C654E616D650607636170 + 74696F6E05416C69676E0708436F6E74656E7473064C6F636B65640907486974 + 54657374090A53697A652E576964746805000000000056D5AF07400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C7408000007544C61796F75740005416C69676E0706436C69656E + 74064C6F636B6564090C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E576964746805000000000056D5AE07 + 400B53697A652E4865696768740500000000000000B803401453697A652E506C + 6174666F726D44656661756C74080007544C61796F75740005416C69676E0704 + 4C656674064C6F636B6564090A53697A652E5769647468050000000000000090 + 02400B53697A652E4865696768740500000000000000B803401453697A652E50 + 6C6174666F726D44656661756C7408000007544C61796F757400095374796C65 + 4E616D65060773797362746E7305416C69676E0706436C69656E74064C6F636B + 6564090A53697A652E57696474680500000000005655AA07400B53697A652E48 + 65696768740500000000000000B803401453697A652E506C6174666F726D4465 + 6661756C7408000C545370656564427574746F6E00095374796C654E616D6506 + 05636C6F736505416C69676E07055269676874064C6F636B6564090A506F7369 + 74696F6E2E5805000000000056D59D07400A53697A652E576964746805000000 + 00000000C803400B53697A652E4865696768740500000000000000B803401453 + 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 + 0610636C6F7365627574746F6E7374796C65000005545465787400095374796C + 654E616D6506057469746C6505416C69676E0706436C69656E74064C6F636B65 + 64090748697454657374080A53697A652E576964746805000000000056D59D07 + 400B53697A652E4865696768740500000000000000B803401453697A652E506C + 6174666F726D44656661756C7408045465787406055469746C65165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974650000000000 + 07544C61796F757400095374796C654E616D650606636C69656E7405416C6967 + 6E0706436C69656E74064C6F636B6564090748697454657374090A53697A652E + 576964746805000000000056D5AA07400B53697A652E48656967687405000000 + 000000009506401453697A652E506C6174666F726D44656661756C7408000007 + 544C61796F757400095374796C654E616D650606626F74746F6D05416C69676E + 0706426F74746F6D064C6F636B6564090A506F736974696F6E2E580500000000 + 000000A001400A506F736974696F6E2E590500000000000000AE06400A53697A + 652E576964746805000000000056D5AA07400B53697A652E4865696768740500 + 000000000000A001401453697A652E506C6174666F726D44656661756C740800 + 0A5452656374616E676C6500095374796C654E616D6506047265637405416C69 + 676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646323032303230 + 0553696465730B03546F7006426F74746F6D000A53697A652E57696474680500 + 0000000056D5AA07400B53697A652E4865696768740500000000000000A00140 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F7207097846463135313531350B5374726F6B652E4A6F696E0705526F756E - 640756697369626C6508000C545370656564427574746F6E00095374796C654E - 616D650606627574746F6E05416C69676E07044C6566740A53697A652E576964 - 74680500000000000000A003400B53697A652E48656967687405000000000000 - 00A004401453697A652E506C6174666F726D44656661756C74080B5374796C65 - 4C6F6F6B7570061B7472656576696577657870616E646572627574746F6E7374 - 796C65000007544C61796F75740005416C69676E0708436F6E74656E74730C4D - 617267696E732E4C6566740500000000000000A003400A53697A652E57696474 - 6805000000000000008605400B53697A652E4865696768740500000000000000 - A004401453697A652E506C6174666F726D44656661756C740800095443686563 - 6B426F7800095374796C654E616D650605636865636B05416C69676E07044C65 - 66740843616E466F637573081244697361626C65466F63757345666665637409 - 0A53697A652E57696474680500000000000000A003400B53697A652E48656967 - 68740500000000000000A004401453697A652E506C6174666F726D4465666175 - 6C740800000654476C79706800095374796C654E616D65060A676C7970687374 - 796C650C4D617267696E732E4C65667405000000000000008000400B4D617267 - 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 - 05000000000000008000400E4D617267696E732E426F74746F6D050000000000 - 000080FF3F05416C69676E07044C6566740A506F736974696F6E2E5805000000 - 00000000B003400A506F736974696F6E2E59050000000000000080FF3F0A5369 - 7A652E576964746805000000000000008003400B53697A652E48656967687405 - 000000000000009804401453697A652E506C6174666F726D44656661756C7408 - 000005545465787400095374796C654E616D6506047465787405416C69676E07 - 06436C69656E74064C6F636B6564090748697454657374080A53697A652E5769 - 6474680500000000000000BC04400B53697A652E486569676874050000000000 - 0000A004401453697A652E506C6174666F726D44656661756C74080454657874 - 060454657874165465787453657474696E67732E466F6E74436F6C6F72070863 - 6C615768697465155465787453657474696E67732E576F726457726170081654 - 65787453657474696E67732E486F727A416C69676E07074C656164696E670000 - 000A5452656374616E676C650005416C69676E07074669744C6566740946696C - 6C2E4B696E6407044E6F6E650748697454657374080E4D617267696E732E426F - 74746F6D050000000000000080FF3F0553696465730B044C656674000A53697A - 652E576964746805000000000098858905400B53697A652E4865696768740500 - 0000000000009C04401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646324138324532105374726F6B652E54 - 6869636B6E6573730500000000000000800040000000} - end> - Left = 64 - Top = 144 - end - object AERModernAnimatedStyle: TStyleBook - StyleName = 'AER Modern Smooth Style' - Styles = < - item - ResourcesBin = { - 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 - AF00060B627574746F6E7374796C6503C5040609656469747374796C6503AC05 - 060A6C6162656C7374796C65032001060D67726F7570626F787374796C65038E - 02060D747261636B6261727374796C65038C07060D636865636B626F78737479 - 6C65039E0506147363726F6C6C62617268747261636B7374796C65033B010614 - 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 - 6172626F74746F6D627574746F6E032D0406137363726F6C6C6261726C656674 - 627574746F6E03440406147363726F6C6C6261727269676874627574746F6E03 - 450406127363726F6C6C626172746F70627574746F6E034304060E7363726F6C - 6C6261727374796C65036304060A7468756D627374796C65034402060B737769 - 7463687374796C6503DC01060C7370696E626F787374796C65032908060F7461 - 62636F6E74726F6C7374796C6503A701060B746162646F747374796C65035901 - 060C7461626974656D7374796C6503EF04060D7468756D626261727374796C65 - 034F03060C6C697374626F787374796C6503AD07060D6C697374626F78666F6F - 746572038B0106106C697374626F786974656D7374796C6503260306126C6973 - 74626F78706C61696E6865616465720346020609677269647374796C65038708 - 060F6865616465726974656D7374796C6503CE03061070726F67726573736261 - 727374796C65036A04061170726F677265737363656C6C7374796C6503A50206 - 106D656E756261726974656D7374796C6503300B060C6D656E75626172737479 - 6C65036C02060D6D656E756974656D7374796C65035D0B06126D656E75736570 - 617261746F727374796C6503E501060D6D656E75766965777374796C65039102 - 060E696D61676563656C6C7374796C65033D01060E706F70757063656C6C7374 - 796C65038E03060D7465787463656C6C7374796C6503A60106096D656D6F7374 - 796C6503DE07060E6C696E6B6C6162656C7374796C65035B03060D73697A6567 - 7269707374796C6503FB04060E7374617475736261727374796C6503DB01060C - 746F6F6C6261727374796C6503CA00061570726F67726573736261726572726F - 727374796C65036F040613736D616C6C7363726F6C6C6261727374796C6503AE - 01060D636F6D626F626F787374796C65030108060D73706C6974746572737479 - 6C6503C0030610636C6F7365627574746F6E7374796C65038604060E6D617862 - 7574746F6E7374796C65030104060E6D696E627574746F6E7374796C65031904 - 060E726573627574746F6E7374796C65031A04061177696E646F77626F726465 - 727374796C65035510060F746F6F6C77696E646F777374796C6503BD0D061072 - 6164696F627574746F6E7374796C6503C4050618756C63656E74657272616469 - 6F627574746F6E7374796C650368050616756C6C656674726164696F62757474 - 6F6E7374796C65035B050617756C7269676874726164696F627574746F6E7374 - 796C65036005060E636F6D626F656469747374796C65038D090611616E69696E - 64696361746F727374796C6503BA010613657870616E646572627574746F6E73 - 74796C650381020615657870616E646572636865636B626F787374796C6503DB - 05060A70616E656C7374796C65031E01061970726F67726573736261726D696E - 696572726F727374796C65036103061470726F67726573736261726D696E6973 - 74796C65035C03060D657870616E6465727374796C65037C060615616E69696E - 64696361746F72686F727A7374796C65038A02060E6C6F67627574746F6E7374 - 796C65038A07061B7472656576696577657870616E646572627574746F6E7374 - 796C65037502061174726565766965776974656D7374796C65030A05060D7472 - 6565766965777374796C65032D0700545046300A5452656374616E676C650009 - 5374796C654E616D65060F6261636B67726F756E647374796C6505416C69676E - 070643656E7465720A46696C6C2E436F6C6F7207097846463244324432440A53 - 697A652E576964746805000000000000009407400B53697A652E486569676874 - 0500000000000080D206401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E650756697369626C650800005450 - 463007544C61796F757400095374796C654E616D65060B627574746F6E737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 000000C805400B53697A652E4865696768740500000000000000C80340145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F726465720201000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E0706436C69656E740C436C6970436869 - 6C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978 - 46463230323032300748697454657374080A53697A652E576964746805000000 - 00000000C805400B53697A652E4865696768740500000000000000C803401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572617469 - 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463230323032300953746F - 7056616C756507097846463430343034300754726967676572063049734D6F75 - 73654F7665723D747275653B4973507265737365643D66616C73653B4973466F - 63757365643D66616C73650E54726967676572496E7665727365063149734D6F - 7573654F7665723D66616C73653B4973507265737365643D66616C73653B4973 - 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E - 32084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463430 - 343034300953746F7056616C7565070978464631373537394307547269676765 - 72062F4973507265737365643D747275653B49734D6F7573654F7665723D7472 - 75653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D61 - 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D - 6174696F6E33084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 - 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 - 7846463241383245320953746F7056616C756507097846463137353739430754 - 726967676572062E4973507265737365643D747275653B49734D6F7573654F76 - 65723D747275653B4973466F63757365643D747275650E54726967676572496E - 7665727365062F4973507265737365643D66616C73653B49734D6F7573654F76 - 65723D747275653B4973466F63757365643D7472756500000005545465787400 - 095374796C654E616D6506047465787405416C69676E0706436C69656E741345 - 6E61626C6544726167486967686C69676874080748697454657374080A53697A + 6C6F720709784646313531353135000000005450463007544C61796F75740009 + 5374796C654E616D650610726164696F627574746F6E7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000F205400B + 53697A652E4865696768740500000000000000A803401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F72646572023A + 0007544C61796F75740005416C69676E07044C6566740A53697A652E57696474 + 680500000000000000A803400B53697A652E4865696768740500000000000000 + A803401453697A652E506C6174666F726D44656661756C7408000854456C6C69 + 70736500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 070643656E7465720A46696C6C2E436F6C6F720709784646323032303230064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 0000F002400B53697A652E4865696768740500000000000000F002401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000854456C6C6970736500095374796C654E616D6506 + 09636865636B6D61726B05416C69676E0706436C69656E740A46696C6C2E436F + 6C6F720709784646324138324532064C6F636B65640907486974546573740807 + 4F70616369747905000000000000000000000C4D617267696E732E4C65667405 + 000000000000008000400B4D617267696E732E546F7005000000000000008000 + 400D4D617267696E732E526967687405000000000000008000400E4D61726769 + 6E732E426F74746F6D05000000000000008000400A53697A652E576964746805 + 00000000000000B002400B53697A652E4865696768740500000000000000B002 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C + 654E616D65061A6F706163697479436865636B6D61726B416E696D6174696F6E + 31084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D6506074F7061636974790A537461727456616C756505000000000000000000 + 000953746F7056616C7565050000000000000080FF3F0754726967676572060E + 4973436865636B65643D747275650E54726967676572496E7665727365060F49 + 73436865636B65643D66616C73650000000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D65061A726164696F627574746F6E436F6C6F72416E + 696D6174696F6E31084475726174696F6E050000000000000000000007496E76 + 65727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463430343034300754726967676572061049734D6F7573654F7665723D74 + 7275650E54726967676572496E7665727365061149734D6F7573654F7665723D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060C5374726F6B + 652E436F6C6F720A537461727456616C75650709784646313531353135095374 + 6F7056616C756507097846463241383245320754726967676572060E49734368 + 65636B65643D747275650E54726967676572496E7665727365060F4973436865 + 636B65643D66616C73650000000005545465787400095374796C654E616D6506 + 047465787405416C69676E0706436C69656E74064C6F636B6564090748697454 + 657374080A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000A803401453697A652E506C6174666F726D44 + 656661756C7408165465787453657474696E67732E466F6E74436F6C6F720708 + 636C6157686974650000005450463007544C61796F757400095374796C654E61 + 6D650618756C63656E746572726164696F627574746F6E7374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000005655FB0540 + 0B53697A652E4865696768740500000000000000A004401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 3B0007544C61796F75740005416C69676E0706426F74746F6D0A506F73697469 + 6F6E2E5905000000000000008804400A53697A652E5769647468050000000000 + 5655FB05400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C6566 + 74000A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 + 0748697454657374080A53697A652E57696474680500000000005655FB05400B + 53697A652E4865696768740500000000000000C001401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 31353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 06216261636B67726F756E64556C427574746F6E436F6C6F72416E696D617469 + 6F6E31084475726174696F6E050000000000000000000007496E766572736509 + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463230323032300953746F7056616C756507097846463430 + 343034300754726967676572061049734D6F7573654F7665723D747275650E54 + 726967676572496E7665727365061149734D6F7573654F7665723D66616C7365 + 00000A5452656374616E676C6500095374796C654E616D650609636865636B6D + 61726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F70 + 4C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F720709784646 + 324138324532064C6F636B656409074869745465737408074F70616369747905 + 000000000000000000000C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E57696474680500000000005655F7 + 05400B53697A652E48656967687405000000000000008001401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A63 + 6865636B6D61726B4F706163697479416E696D6174696F6E3108447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D6506074F706163 + 6974790A537461727456616C756505000000000000000000000953746F705661 + 6C7565050000000000000080FF3F0754726967676572060E4973436865636B65 + 643D747275650E54726967676572496E7665727365060F4973436865636B6564 + 3D66616C7365000000000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080A53697A652E57696474680500000000005655FB05400B53697A652E486569 + 67687405000000000000008804401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 57686974650000005450463007544C61796F757400095374796C654E616D6506 + 17756C7269676874726164696F627574746F6E7374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000005655FB05400B53697A + 652E4865696768740500000000000000A004401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508085461624F72646572023C000754 + 4C61796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E59 + 05000000000000008804400A53697A652E57696474680500000000005655FB05 + 400B53697A652E4865696768740500000000000000C001401453697A652E506C + 6174666F726D44656661756C7408000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 + 7307436F726E6572730B08546F7052696768740B426F74746F6D526967687400 + 0A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564090748 + 697454657374080A53697A652E57696474680500000000005655FB05400B5369 + 7A652E4865696768740500000000000000C001401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 3135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650621 + 6261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E + 31084475726174696F6E050000000000000000000007496E7665727365090C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572061049734D6F7573654F7665723D747275650E547269 + 67676572496E7665727365061149734D6F7573654F7665723D66616C73650000 + 0A5452656374616E676C6500095374796C654E616D650609636865636B6D6172 + 6B05416C69676E0708436F6E74656E747307436F726E6572730B08546F705269 + 6768740B426F74746F6D5269676874000A46696C6C2E436F6C6F720709784646 + 324138324532064C6F636B656409074869745465737408074F70616369747905 + 000000000000000000000C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E57696474680500000000005655F7 + 05400B53697A652E48656967687405000000000000008001401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A63 + 6865636B6D61726B4F706163697479416E696D6174696F6E3108447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D6506074F706163 + 6974790A537461727456616C756505000000000000000000000953746F705661 + 6C7565050000000000000080FF3F0754726967676572060E4973436865636B65 + 643D747275650E54726967676572496E7665727365060F4973436865636B6564 + 3D66616C7365000000000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080A53697A652E57696474680500000000005655FB05400B53697A652E486569 + 67687405000000000000008804401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 57686974650000005450463007544C61796F757400095374796C654E616D6506 + 16756C6C656674726164696F627574746F6E7374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000005655FB05400B53697A65 + 2E4865696768740500000000000000A004401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F72646572023D0007544C + 61796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E5905 + 000000000000008804400A53697A652E57696474680500000000005655FB0540 + 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 07436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080A53697A652E57696474680500000000005655FB05400B53697A652E + 4865696768740500000000000000C001401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650621626163 + 6B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E310844 + 75726174696F6E050000000000000000000007496E7665727365090C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463230323032300953746F7056616C7565070978464634303430343007 + 54726967676572061049734D6F7573654F7665723D747275650E547269676765 + 72496E7665727365061149734D6F7573654F7665723D66616C736500000A5452 + 656374616E676C6500095374796C654E616D650609636865636B6D61726B0541 + 6C69676E0708436F6E74656E747307436F726E6572730B07546F704C6566740A + 426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846463241383245 + 32064C6F636B656409074869745465737408074F706163697479050000000000 + 00000000000C4D617267696E732E4C656674050000000000000080FF3F0B4D61 + 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 + 6874050000000000000080FF3F0E4D617267696E732E426F74746F6D05000000 + 0000000080FF3F0A53697A652E57696474680500000000005655F705400B5369 + 7A652E48656967687405000000000000008001401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5446 + 6C6F6174416E696D6174696F6E00095374796C654E616D65061A636865636B6D + 61726B4F706163697479416E696D6174696F6E31084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D6506074F7061636974790A53 + 7461727456616C756505000000000000000000000953746F7056616C75650500 + 00000000000080FF3F0754726967676572060E4973436865636B65643D747275 + 650E54726967676572496E7665727365060F4973436865636B65643D66616C73 + 65000000000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E74064C6F636B6564090748697454657374080A53697A + 652E57696474680500000000005655FB05400B53697A652E4865696768740500 + 0000000000008804401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 0000005450463007544C61796F757400095374796C654E616D65061670726F67 + 7265737362617266696E6973687374796C6505416C69676E070643656E746572 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000009999E104401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F72646572023F000A5452656374616E + 676C6500095374796C654E616D65060668747261636B05416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000003333 + 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 4646313531353135000A5452656374616E676C6500095374796C654E616D6506 + 0A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C + 6F720709784646324345323434064C6F636B6564090748697454657374080C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 + 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F + 0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E + 59050000000000000080FF3F0A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000009999D904401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650000000A5452656374616E676C6500095374796C654E616D65060676747261 + 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646323032303230064C6F636B6564090748697454657374080A53697A652E57 + 6964746805000000000033338505400B53697A652E4865696768740500000000 + 009999E104401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000A5452656374616E676C65 + 00095374796C654E616D65060A76696E64696361746F7205416C69676E070642 + 6F74746F6D0A46696C6C2E436F6C6F720709784646324345323434064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 + 0080FF3F0A506F736974696F6E2E5905000000000099998904400A53697A652E + 576964746805000000000033338105400B53697A652E48656967687405000000 + 00000000A803401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 + 095374796C654E616D65060D657870616E6465727374796C6505416C69676E07 + 0643656E7465720A53697A652E576964746805000000000000C08407400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F726465720240000A + 5452656374616E676C6500095374796C654E616D65060B626772656374616E67 + 6C6505416C69676E0708436F6E74656E74730C436C69704368696C6472656E09 + 0A46696C6C2E436F6C6F720709784646324432443244064C6F636B6564090748 + 697454657374080A53697A652E576964746805000000000000C08407400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350007544C61796F757400095374796C654E616D6506074C61796F75743305 + 416C69676E0703546F700A53697A652E576964746805000000000000C0840740 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080007544C61796F757400095374796C654E616D + 6506074C61796F75743405416C69676E0708436F6E74656E74730A53697A652E + 576964746805000000000000C08407400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6532 + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 323532353235064C6F636B6564090748697454657374080A53697A652E576964 + 746805000000000000C08407400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F72070978464631353135313500000A5452656374616E676C6500 + 095374796C654E616D65060A52656374616E676C653105416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646313531353135064C6F63 + 6B6564090748697454657374080A53697A652E576964746805000000000000C0 + 8407400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D650614 + 466C6F6174416E696D6174696F6E315374796C65084475726174696F6E050000 + 000000CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263756C6172 + 0C50726F70657274794E616D6506075363616C652E580A537461727456616C75 + 65050000000000000080FF3F0953746F7056616C756505000000000000000000 + 000754726967676572060F4973457870616E6465643D747275650E5472696767 + 6572496E766572736506104973457870616E6465643D66616C73650000000007 + 544C61796F757400095374796C654E616D6506074C61796F75743305416C6967 + 6E0708436F6E74656E74730A53697A652E576964746805000000000000C08407 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C74080005545465787400095374796C654E616D65 + 06047465787405416C69676E07044C656674084175746F53697A65090A436C69 + 70506172656E7409064C6F636B6564090748697454657374080C4D617267696E + 732E4C6566740500000000000000A002400A506F736974696F6E2E5805000000 + 00000000A002400A53697A652E576964746805000000000000B8C703400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F + 720708636C615768697465165465787453657474696E67732E486F727A416C69 + 676E07074C656164696E670000000F54457870616E646572427574746F6E0009 + 5374796C654E616D650606627574746F6E05416C69676E07055269676874064C + 6F636B6564090A506F736974696F6E2E580500000000000080F506400A53697A + 652E57696474680500000000000000A003400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C740800 + 000000005450463007544C61796F757400095374796C654E616D650613657870 + 616E646572627574746F6E7374796C6505416C69676E070643656E7465720B4D + 617267696E732E546F70050000000000000080FF3F0A53697A652E5769647468 + 0500000000000000B003400B53697A652E4865696768740500000000000000B0 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F7264657202410005545061746800095374796C654E616D650605 + 506174683105416C69676E070643656E74657209446174612E506174680A3400 + 000004000000000000000000C8420000C84201000000000096430000C8420100 + 00000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F + 720708636C6157686974650748697454657374080D526F746174696F6E416E67 + 6C650500000000000000B405400A53697A652E57696474680500000000000000 + A002400B53697A652E4865696768740500000000000000C001401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D650614 + 466C6F6174416E696D6174696F6E315374796C65084475726174696F6E050000 + 000000CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263756C6172 + 0C50726F70657274794E616D65060D526F746174696F6E416E676C650A537461 + 727456616C75650500000000000000B405400953746F7056616C756505000000 + 000000000000000754726967676572060F4973457870616E6465643D74727565 + 0E54726967676572496E766572736506104973457870616E6465643D66616C73 + 65000000005450463007544C61796F757400095374796C654E616D6506156578 + 70616E646572636865636B626F787374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000000008406400B53697A652E486569 + 67687405000000000000008404401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F7264657202420007544C61796F75 + 740005416C69676E07044C6566740A53697A652E576964746805000000000000 + 00C003400B53697A652E48656967687405000000000000008404401453697A65 + 2E506C6174666F726D44656661756C7408000554506174680005416C69676E07 + 06436C69656E7409446174612E506174680AD80100002700000000000000FEC8 + BA4402E79244020000002592AD4402E79244020000006D5BA544FEB09E440200 + 00006D5BA544FEB09E440200000093A4A4446A0C9F44020000004A80AC44FC79 + AA4402000000046EBA44FC79AA44020000004A00C844FC79AA44020000000080 + CF44FEB09E44020000000080CF44FEB09E44020000000080CF44FEB09E440200 + 00004C5BC84402E7924402000000FEC8BA4402E7924400000000FE88BA44FE30 + 974402000000B876BF44FE309744020000000277C344EEA09A44020000000277 + C34404DE9E44020000000277C344121BA34402000000B876BF44008CA6440200 + 0000FE88BA44008CA644020000004C9BB544008CA64402000000009CB144121B + A34402000000009CB14404DE9E4402000000009CB144EEA09A44020000004C9B + B544FE30974402000000FE88BA44FE309744000000000080BA44045E9B440200 + 0000146EB844045E9B440200000000C0B64454F79C440200000000C0B64400F0 + 9E440200000000C0B644ACE8A04402000000146EB844FC81A244020000000080 + BA44FC81A24402000000EC91BC44FC81A244020000000040BE44ACE8A0440200 + 00000040BE4400F09E44020000000040BE4454F79C4402000000EC91BC44045E + 9B44020000000080BA44045E9B440A46696C6C2E436F6C6F7207097836303030 + 303030300748697454657374080C4D617267696E732E4C656674050000000000 + 00008000400B4D617267696E732E546F7005000000000000008000400D4D6172 + 67696E732E526967687405000000000000008000400E4D617267696E732E426F + 74746F6D05000000000000008000400A53697A652E5769647468050000000000 + 0000A003400B53697A652E4865696768740500000000000000E803401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6508577261704D6F64650703466974000F54436F6C6F72416E696D6174 + 696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097836 + 303030303030300953746F7056616C75650708636C61426C61636B0754726967 + 676572060E4973436865636B65643D7472756500000F54436F6C6F72416E696D + 6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650708 + 636C61426C61636B0953746F7056616C75650709783630303030303030075472 + 6967676572060F4973436865636B65643D66616C736500000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 + 00000000008002400B4D617267696E732E546F7005000000000000008000400D + 4D617267696E732E5269676874050000000000000080FF3F0A53697A652E5769 + 6474680500000000000000C605400B53697A652E486569676874050000000000 + 0000F803401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720709784646454545454545165465 + 787453657474696E67732E486F727A416C69676E07074C656164696E67000000 + 5450463007544C61796F757400095374796C654E616D65060E6C6162656C6669 + 6C6C7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C805400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F726465720243000A5452656374616E676C6500095374796C654E + 616D65060A52656374616E676C653105416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F7207097846463135313531350A53697A652E5769647468 + 0500000000000000C805400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000005545465787400095374796C654E616D65060474 + 65787405416C69676E0708436F6E74656E74730748697454657374080A53697A 652E57696474680500000000000000C805400B53697A652E4865696768740500 000000000000C803401453697A652E506C6174666F726D44656661756C740816 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 0000005450463007544C61796F757400095374796C654E616D65060965646974 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000C805400B53697A652E4865696768740500000000000000C80340 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720202000C5442727573684F626A65637400095374796C654E - 616D65060A666F726567726F756E6400000C5442727573684F626A6563740009 - 5374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72 - 070978393632413832453200000B54466F6E744F626A65637400095374796C65 - 4E616D650604666F6E7409466F6E742E53697A650500000000000000D0024000 + 0000005450463007544C61796F757400095374796C654E616D650613636F6D62 + 6F656469746572726F727374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000C805400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F726465720244000C5442727573684F626A65 + 637400095374796C654E616D65060A666F726567726F756E6400000B54466F6E + 744F626A65637400095374796C654E616D650604666F6E7409466F6E742E5369 + 7A650500000000000000D00240000007544C61796F757400095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 720709784646323032303230000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614436F6C6F72416E696D6174696F6E315374796C650844 + 75726174696F6E050000000000000000000007496E7665727365090C50726F70 + 657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75 + 6507097846463230323032300953746F7056616C756507097846463430343034 + 300754726967676572062049734D6F7573654F7665723D747275653B4973466F + 63757365643D66616C73650E54726967676572496E7665727365062149734D6F + 7573654F7665723D66616C73653B4973466F63757365643D66616C736500000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F + 72416E696D6174696F6E325374796C65084475726174696F6E05000000000000 + 0000000007496E7665727365090C50726F70657274794E616D65060C5374726F + 6B652E436F6C6F720A537461727456616C756507097846463430343034300953 + 746F7056616C756507097846464532324132410754726967676572061F49734D + 6F7573654F7665723D747275653B4973466F63757365643D747275650E547269 + 67676572496E7665727365062049734D6F7573654F7665723D747275653B4973 + 466F63757365643D66616C7365000007544C61796F757400095374796C654E61 + 6D6506056172726F7705416C69676E070846697452696768740B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A506F736974696F6E2E580500000000005ED99705400A506F73697469 + 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 + 889AB803400B53697A652E4865696768740500000000000000B803401453697A + 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 + 5374796C654E616D65060A52656374616E676C653105416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463330333033300748697454 + 657374080A53697A652E5769647468050000000000889AB803400B53697A652E + 4865696768740500000000000000B803401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D + 6174696F6E315374796C65084475726174696F6E050000000000000000000007 + 496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463330333033300953746F7056616C75 + 6507097846463430343034300754726967676572062049734D6F7573654F7665 + 723D747275653B4973466F63757365643D66616C73650E54726967676572496E + 7665727365062149734D6F7573654F7665723D66616C73653B4973466F637573 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650614436F6C6F72416E696D6174696F6E325374796C650844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463430343034300953 + 746F7056616C756507097846463943313731370754726967676572061F497346 + 6F63757365643D747275653B49734D6F7573654F7665723D7472756500000007 + 544C61796F757400095374796C654E616D6506074C61796F75743105416C6967 + 6E070643656E7465720C4D617267696E732E4C656674050000000000000080FF + 3F0A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C74080005545061746800095374796C654E616D650605506174683105416C + 69676E0706436C69656E7409446174612E506174680A34000000040000000000 + 00000000C8420000C84201000000000096430000C84201000000000048430000 + 9643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080A53697A652E57696474680500000000000000A0 + 02400B53697A652E4865696768740500000000000000C001401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650000000000000C5442727573684F626A65637400095374796C654E616D6506 + 0973656C656374696F6E0B42727573682E436F6C6F7207097839363241383245 + 32000007544C61796F757400095374796C654E616D650607636F6E74656E7405 + 416C69676E0706436C69656E740C4D617267696E732E4C656674050000000000 + 00008000400B4D617267696E732E546F7005000000000000008000400D4D6172 + 67696E732E52696768740500000000000000F003400E4D617267696E732E426F + 74746F6D05000000000000008000400A53697A652E5769647468050000000000 + 00008805400B53697A652E4865696768740500000000000000A803401453697A + 652E506C6174666F726D44656661756C74080000005450463007544C61796F75 + 7400095374796C654E616D65061E70726F6772657373626172696E6465746572 + 6D696E61626C657374796C6505416C69676E070643656E7465720A53697A652E + 5769647468050000000000ABAAB006400B53697A652E48656967687405000000 + 00000000C003401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F726465720245000A5452656374616E676C65000953 + 74796C654E616D65060676747261636B05416C69676E0708436F6E74656E7473 + 07456E61626C6564080A46696C6C2E436F6C6F72070978464632303230323006 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000E006400B53697A652E4865696768740500000000000000940440145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 07097846463135313531350756697369626C6508000A5452656374616E676C65 + 00095374796C654E616D65060A76696E64696361746F7205416C69676E070642 + 6F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 + 0080FF3F0A506F736974696F6E2E590500000000000000F002400A53697A652E + 57696474680500000000000000DE06400B53697A652E48656967687405000000 + 00000000A803401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000007544C61796F757400095374796C + 654E616D65060668747261636B05416C69676E0708436F6E74656E74730A5369 + 7A652E5769647468050000000000ABAAB006400B53697A652E48656967687405 + 00000000000000C003401453697A652E506C6174666F726D44656661756C7408 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F - 756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 - 7846463230323032300748697454657374080A53697A652E5769647468050000 - 0000000000C805400B53697A652E4865696768740500000000000000C8034014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F720709784646313531353135000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 - 4475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F - 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C - 756507097846463135313531350953746F7056616C7565070978464634303430 - 34300754726967676572062049734D6F7573654F7665723D747275653B497346 - 6F63757365643D66616C73650E54726967676572496E7665727365062149734D - 6F7573654F7665723D66616C73653B4973466F63757365643D66616C73650000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C - 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 - 0A537461727456616C756507097846463135313531350953746F7056616C7565 - 07097846463241383245320754726967676572060E4973466F63757365643D74 - 7275650E54726967676572496E7665727365060F4973466F63757365643D6661 - 6C736500000007544C61796F757400095374796C654E616D650607627574746F - 6E7305416C69676E07055269676874064C6F636B6564090B4D617267696E732E - 546F7005000000000000008000400D4D617267696E732E526967687405000000 - 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 - 400A506F736974696F6E2E580500000000000000C004400A506F736974696F6E - 2E5905000000000000008000400A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000A803401453697A652E - 506C6174666F726D44656661756C7408000007544C61796F757400095374796C - 654E616D650607636F6E74656E7405416C69676E0706436C69656E74064C6F63 - 6B6564090C4D617267696E732E4C65667405000000000000008001400B4D6172 - 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 - 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 - 0000008000400A53697A652E57696474680500000000000000A804400B53697A - 652E4865696768740500000000000000A803401453697A652E506C6174666F72 - 6D44656661756C7408000006544C6162656C00095374796C654E616D65060670 - 726F6D7074064C6F636B656409074F706163697479050000000000000080FE3F - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 6504546578740604546578740000005450463007544C61796F75740009537479 - 6C654E616D65060A6C6162656C7374796C6505416C69676E070643656E746572 - 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508085461624F726465720203000554546578740009 - 5374796C654E616D6506047465787405416C69676E0708436F6E74656E747307 - 48697454657374080A53697A652E57696474680500000000000000C805400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C6157686974650000005450463007544C61796F75740009537479 - 6C654E616D65060D67726F7570626F787374796C6505416C69676E070643656E - 7465720A53697A652E57696474680500000000000000F004400B53697A652E48 - 65696768740500000000000000C804401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F726465720204000A54526563 - 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C - 69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869 - 7454657374080C4D617267696E732E4C6566740500000000000000C000400B4D - 617267696E732E546F7005000000000000009002400D4D617267696E732E5269 - 6768740500000000000000C000400E4D617267696E732E426F74746F6D050000 - 0000000000C000400A53697A652E57696474680500000000000000D804400B53 - 697A652E48656967687405000000000000009804401453697A652E506C617466 + 756E6405416C69676E0708436F6E74656E74730C436C69704368696C6472656E + 090A46696C6C2E436F6C6F720709784646324138324532064C6F636B65640907 + 48697454657374080A53697A652E5769647468050000000000ABAAB006400B53 + 697A652E4865696768740500000000000000C003401453697A652E506C617466 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 3531350005545465787400095374796C654E616D65060474657874084175746F - 53697A65090A436C6970506172656E74090748697454657374080C4D61726769 - 6E732E4C6566740500000000000000A002400A506F736974696F6E2E58050000 - 00000060559502400A506F736974696F6E2E590500000000004055D501C00A53 - 697A652E576964746805000000000000B8C703400B53697A652E486569676874 - 0500000000000060FF02401453697A652E506C6174666F726D44656661756C74 - 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 - 7465155465787453657474696E67732E576F7264577261700800000000545046 - 3007544C61796F757400095374796C654E616D65060D747261636B6261727374 + 353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 14436F6C6F72416E696D6174696F6E315374796C6507456E61626C6564090844 + 75726174696F6E0500000000000000800140044C6F6F70090C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464632413832453207547269 + 67676572060E497356697369626C653D7472756500000000005450463007544C + 61796F757400095374796C654E616D650611616E69696E64696361746F727374 + 796C6505416C69676E070643656E7465720756697369626C6508085461624F72 + 646572024600045441726300095374796C654E616D65060341726305416C6967 + 6E0708436F6E74656E74730748697454657374080D526F746174696F6E416E67 + 6C650500000000000000B407400A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070863 + 6C615768697465105374726F6B652E546869636B6E6573730500000000000000 + 8001400A5374726F6B652E4361700705526F756E640B5374726F6B652E4A6F69 + 6E0705426576656C08456E64416E676C650500000000000000B405C0000F5446 + 6C6F6174416E696D6174696F6E00095374796C654E616D650603616E6907456E + 61626C656409084475726174696F6E050000000000000080FF3F044C6F6F7009 + 0C50726F70657274794E616D65060D526F746174696F6E416E676C650A537461 + 727456616C756505000000000000000000000953746F7056616C756505000000 + 00000000B407400754726967676572060E497356697369626C653D7472756500 + 0000005450463007544C61796F757400095374796C654E616D650615616E6969 + 6E64696361746F72686F727A7374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000040C006400B53697A652E4865696768 + 7405000000000000008000401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508085461624F726465720247000A5452656374616E67 + 6C6500095374796C654E616D65060A52656374616E676C653105416C69676E07 + 06436C69656E740C436C69704368696C6472656E090A46696C6C2E436F6C6F72 + 07097846463430343034300A53697A652E57696474680500000000000040C006 + 400B53697A652E48656967687405000000000000008000401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0005544C696E6500095374796C654E616D6506054C696E6531084C696E655479 + 70650706426F74746F6D0A53697A652E57696474680500000000000000A00B40 + 0B53697A652E48656967687405000000000000008000401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 + 4138324532105374726F6B652E546869636B6E65737305000000000000008002 + 400B5374726F6B652E44617368070444617368000F54466C6F6174416E696D61 + 74696F6E00095374796C654E616D650603616E6907456E61626C656409084475 + 726174696F6E0500000000000000800340044C6F6F70090C50726F7065727479 + 4E616D65060A506F736974696F6E2E580A537461727456616C75650500000000 + 000000C808C00953746F7056616C756505000000000000000000000754726967 + 676572060E497356697369626C653D7472756500000000005450463007544C61 + 796F757400095374796C654E616D65060A70616E656C7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000C006400B + 53697A652E4865696768740500000000000000A406401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F726465720248 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 7846463230323032300A53697A652E57696474680500000000000000C006400B + 53697A652E4865696768740500000000000000A406401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 005450463007544C61796F757400095374796C654E616D65060E6C6F67627574 + 746F6E7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C005400B53697A652E4865696768740500000000000000 + C005401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720249000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C43 + 6C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080A53697A652E576964 + 74680500000000000000C005400B53697A652E48656967687405000000000000 + 00C005401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 + 32300953746F7056616C75650709784646343034303430075472696767657206 + 3049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 653B4973466F63757365643D66616C73650E54726967676572496E7665727365 + 063149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 + 6C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 + 6D6174696F6E32084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463430343034300953746F7056616C7565070978464631373537394307 + 54726967676572062F4973507265737365643D747275653B49734D6F7573654F + 7665723D747275653B4973466F63757365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E33084475726174696F6E0500000000000000000000 + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463241383245320953746F7056616C756507097846463137 + 353739430754726967676572062E4973507265737365643D747275653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D747275650E547269 + 67676572496E7665727365062F4973507265737365643D66616C73653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D7472756500000554 + 5061746800095374796C654E616D650605506174683105416C69676E0706436C + 69656E7409446174612E506174680A5C02000032000000000000000000A841CD + CCCC40010000000000A8410000C041010000000000C03F0000C0410100000000 + 00C03F00000000010000009A99694100000000010000000000A841CDCCCC4003 + 0000000000A841CDCCCC400000000000009C410000F040010000000000584100 + 00F04001000000000058410000C03F01000000000040400000C03F0100000000 + 0040400000B4410100000000009C410000B4410100000000009C410000F04003 + 00000000009C410000F04000000000000040410000F040010000000000904000 + 00F04001000000000090400000C04001000000000040410000C0400100000000 + 0040410000F04003000000000040410000F04000000000000090400000104101 + 0000000000904100001041010000000000904100002841010000000000904000 + 0028410100000000009040000010410300000000009040000010410000000000 + 0090400000404101000000000090410000404101000000000090410000584101 + 0000000000904000005841010000000000904000004041030000000000904000 + 0040410000000000009040000070410100000000009041000070410100000000 + 0090410000844101000000000090400000844101000000000090400000704103 + 0000000000904000007041000000000000904000009041010000000000904100 + 009041010000000000904100009C41010000000000904000009C410100000000 + 0090400000904103000000000090400000904100000000000070410000C04001 + 000000333393410000C040010000000000704166662640010000000000704100 + 00C04003000000000070410000C0400A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080C4D617267696E732E4C656674050000000000 + 0000A002400B4D617267696E732E546F700500000000000000A002400D4D6172 + 67696E732E52696768740500000000000000A002400E4D617267696E732E426F + 74746F6D0500000000000000A002400A53697A652E5769647468050000000000 + 00009805400B53697A652E48656967687405000000000000009805401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6508577261704D6F64650703466974000000005450463007544C61796F + 757400095374796C654E616D65061470726F67726573736261726D696E697374 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000C805400B53697A652E4865696768740500000000000000C805401453 + 000033338505400B53697A652E4865696768740500000000009999E104401453 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F7264657202050B46697865644865696768740211000A5452656374616E67 - 6C6500095374796C654E616D65060668747261636B05416C69676E070A566572 - 7443656E7465720A46696C6C2E436F6C6F720709784646313531353135074869 - 7454657374080A506F736974696F6E2E590500000000000000BC04400A53697A - 652E57696474680500000000000000C805400B53697A652E4865696768740500 - 000000000000A001401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C65000953 - 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 - 656E74730946696C6C2E4B696E6407044E6F6E65064C6F636B65640907486974 - 54657374080C4D617267696E732E4C6566740500000000000000C001400B4D61 - 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 - 68740500000000000000C001400E4D617267696E732E426F74746F6D05000000 - 0000000080FF3F0A53697A652E57696474680500000000000000B005400B5369 - 7A652E4865696768740500000000000000C000401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54 - 52656374616E676C6500095374796C654E616D650609686967686C6967687405 - 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846463241383245 - 320748697454657374080C50616464696E672E4C6566740500000000000000A0 - 02400A53697A652E57696474680500000000000000F003400B53697A652E4865 - 696768740500000000000000A001401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F7745 - 66666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F7743 - 6F6C6F720709784646324138324532074F706163697479050000000000000080 - FF3F07456E61626C6564080000000A5452656374616E676C6500095374796C65 - 4E616D65060676747261636B05416C69676E070A486F727A43656E7465720A46 - 696C6C2E436F6C6F7207097846463135313531350748697454657374080A506F - 736974696F6E2E580500000000000000BC04400A53697A652E57696474680500 - 000000000000A001400B53697A652E4865696768740500000000000000C80540 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730946696C6C - 2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C4D6172 - 67696E732E4C6566740500000000000000C001400B4D617267696E732E546F70 - 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 - 00C001400E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 - 697A652E576964746805000000000000000000000B53697A652E486569676874 - 0500000000000000C405401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65 - 00095374796C654E616D650609686967686C6967687405416C69676E0703546F - 700A46696C6C2E436F6C6F720709784646324138324532074869745465737408 - 0A53697A652E57696474680500000000000000A001400B53697A652E48656967 - 68740500000000000000F003401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666 - 6563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C - 6F720709784646324138324532074F706163697479050000000000000080FF3F - 07456E61626C65640800000006545468756D6200095374796C654E616D650606 - 687468756D62064C6F636B6564090A506F736974696F6E2E5805000000000030 - 33AB03400A506F736974696F6E2E59050000000000FFFFA304400A53697A652E - 57696474680500000000000000F002400B53697A652E48656967687405000000 - 00000000F002401453697A652E506C6174666F726D44656661756C74080B5374 - 796C654C6F6F6B7570060D7468756D626261727374796C65000006545468756D - 6200095374796C654E616D650606767468756D62064C6F636B6564090A506F73 - 6974696F6E2E58050000000000CBCCA804400A506F736974696F6E2E59050000 - 0000009899B103400A53697A652E57696474680500000000000000F002400B53 - 697A652E4865696768740500000000000000F002401453697A652E506C617466 - 6F726D44656661756C74080B5374796C654C6F6F6B7570060D7468756D626261 - 727374796C650000005450463007544C61796F757400095374796C654E616D65 - 060D636865636B626F787374796C6505416C69676E070643656E7465720A5369 - 7A652E5769647468050000000000ACAA8006400B53697A652E48656967687405 - 000000000058559904401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F7264657202060007544C61796F7574000541 - 6C69676E07044C6566740A53697A652E57696474680500000000000000900340 - 0B53697A652E48656967687405000000000058559904401453697A652E506C61 - 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 - 4E616D65060A6261636B67726F756E6405416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 - 7A652E57696474680500000000000000F002400B53697A652E48656967687405 - 00000000000000F002401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F720709784646313531353135000A545265637461 - 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 - 6E0706436C69656E740A46696C6C2E436F6C6F72070978464632413832453207 - 4869745465737408074F70616369747905000000000000000000000C4D617267 + 624F72646572024B000A5452656374616E676C6500095374796C654E616D6506 + 0668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F720709784646343034303430064C6F636B6564090748697454657374080A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C6500 + 095374796C654E616D65060A68696E64696361746F7205416C69676E07044C65 + 66740A46696C6C2E436F6C6F720709784646324138324532064C6F636B656409 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000009999E104401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 000A5452656374616E676C6500095374796C654E616D65060676747261636B05 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464634 + 3034303430064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000033338505400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E61 + 6D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C + 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 + 7374080A506F736974696F6E2E5905000000000099998D04400A53697A652E57 + 6964746805000000000033338505400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 + 5374796C654E616D65061B7472656576696577657870616E646572627574746F + 6E7374796C6505416C69676E070643656E7465720B4D617267696E732E546F70 + 050000000000000080FF3F0A53697A652E57696474680500000000000000B003 + 400B53697A652E4865696768740500000000000000B003401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 024C0005545061746800095374796C654E616D650605506174683105416C6967 + 6E070643656E74657209446174612E506174680A340000000400000000000000 + 0000C8420000C84201000000000096430000C842010000000000484300009643 + 030000000000C8420000C8420A46696C6C2E436F6C6F720708636C6157686974 + 650748697454657374080D526F746174696F6E416E676C650500000000000000 + B405C00A53697A652E57696474680500000000000000A002400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174 + 416E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000D49 + 6E746572706F6C6174696F6E070843697263756C61720C50726F70657274794E + 616D65060D526F746174696F6E416E676C650A537461727456616C7565050000 + 0000000000B405C00953746F7056616C75650500000000000000000000075472 + 6967676572060F4973457870616E6465643D747275650E54726967676572496E + 766572736506104973457870616E6465643D66616C736500000000545046300A + 5452656374616E676C6500095374796C654E616D650611747265657669657769 + 74656D7374796C6505416C69676E070643656E7465720946696C6C2E4B696E64 + 07044E6F6E650748697454657374080553696465730B06426F74746F6D000A53 + 697A652E57696474680500000000000000AE05400B53697A652E486569676874 + 0500000000000000A004401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350756697369626C + 6508000C545370656564427574746F6E00095374796C654E616D650606627574 + 746F6E05416C69676E07044C6566740A53697A652E5769647468050000000000 + 0000A003400B53697A652E4865696768740500000000000000A004401453697A + 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570061B + 7472656576696577657870616E646572627574746F6E7374796C65000007544C + 61796F75740005416C69676E0708436F6E74656E74730C4D617267696E732E4C + 6566740500000000000000A003400A53697A652E576964746805000000000000 + 008605400B53697A652E4865696768740500000000000000A004401453697A65 + 2E506C6174666F726D44656661756C7408000954436865636B426F7800095374 + 796C654E616D650605636865636B05416C69676E07044C6566740843616E466F + 637573081244697361626C65466F637573456666656374090A53697A652E5769 + 6474680500000000000000A003400B53697A652E486569676874050000000000 + 0000A004401453697A652E506C6174666F726D44656661756C74080000065447 + 6C79706800095374796C654E616D65060A676C7970687374796C650C4D617267 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 - 000000000000008000400D4D617267696E732E52696768740500000000000000 - 8000400E4D617267696E732E426F74746F6D05000000000000008000400A5369 - 7A652E57696474680500000000000000B002400B53697A652E48656967687405 - 00000000000000B002401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174 - 696F6E00095374796C654E616D65061B6368656368626F7856697362696C6974 - 79416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C - 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 - 05000000000000000000000953746F7056616C75650500000000000000C80540 - 0754726967676572060E4973436865636B65643D747275650E54726967676572 - 496E7665727365060F4973436865636B65643D66616C73650000000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D650618636865636B626F78 - 5374726F6B65416E696D6174696F6E31084475726174696F6E050000000000CD - CCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A - 537461727456616C756507097846463135313531350953746F7056616C756507 - 097846463241383245320754726967676572060E4973436865636B65643D7472 - 75650E54726967676572496E7665727365060F4973436865636B65643D66616C - 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 17636865636B626F78436F6C6F72416E696D6174696F6E31084475726174696F - 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463230323032300953746F70 - 56616C756507097846463430343034300754726967676572061049734D6F7573 - 654F7665723D747275650E54726967676572496E7665727365061149734D6F75 - 73654F7665723D66616C73650000000005545465787400095374796C654E616D - 6506047465787405416C69676E0706436C69656E740A53697A652E5769647468 - 0500000000005855DD05400B53697A652E486569676874050000000000585599 - 04401453697A652E506C6174666F726D44656661756C74080454657874060454 - 657874165465787453657474696E67732E466F6E74436F6C6F720708636C6157 - 68697465000000545046300A5452656374616E676C6500095374796C654E616D - 6506147363726F6C6C62617268747261636B7374796C6505416C69676E070643 - 656E7465720A46696C6C2E436F6C6F7207097846463135313531350748697454 - 657374080A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C - 65080006545468756D6200095374796C654E616D6506057468756D62064C6F63 - 6B6564090A53697A652E576964746805000000000000008003400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080B5374796C654C6F6F6B7570060A7468756D627374796C6500 - 0000545046300A5452656374616E676C6500095374796C654E616D6506147363 - 726F6C6C62617276747261636B7374796C6505416C69676E070643656E746572 - 0A46696C6C2E436F6C6F7207097846463135313531350748697454657374080A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000654 - 5468756D6200095374796C654E616D6506057468756D62064C6F636B6564090A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 + 8000400E4D617267696E732E426F74746F6D050000000000000080FF3F05416C + 69676E07044C6566740A506F736974696F6E2E580500000000000000B003400A + 506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769647468 + 05000000000000008003400B53697A652E486569676874050000000000000098 + 04401453697A652E506C6174666F726D44656661756C74080000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000BC04400B53697A652E4865696768740500000000000000A00440145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C615768697465155465787453657474696E67 + 732E576F72645772617008165465787453657474696E67732E486F727A416C69 + 676E07074C656164696E670000000A5452656374616E676C650005416C69676E + 0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869745465 + 7374080E4D617267696E732E426F74746F6D050000000000000080FF3F055369 + 6465730B044C656674000A53697A652E57696474680500000000000000AE0540 + 0B53697A652E48656967687405000000000000009C04401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 + 4138324532105374726F6B652E546869636B6E65737305000000000000008000 + 400000005450463007544C61796F757400095374796C654E616D65060D747265 + 65766965777374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000E106400B53697A652E486569676874050000000000 + 00808107401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F72646572024D000C5442727573684F626A656374000953 + 74796C654E616D650618416C7465726E6174696E67526F774261636B67726F75 + 6E640B42727573682E436F6C6F72070978304646464646464600000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032 + 303230064C6F636B6564090748697454657374080C50616464696E672E4C6566 + 74050000000000000080FF3F0D50616464696E672E5269676874050000000000 + 000080FF3F0A53697A652E57696474680500000000000000E106400B53697A65 + 2E48656967687405000000000000808107401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 0007544C61796F757400095374796C654E616D650607636F6E74656E7405416C + 69676E0706436C69656E740C436C69704368696C6472656E090B4D617267696E + 732E546F70050000000000000080FF3F0A53697A652E57696474680500000000 + 000000CD06400B53697A652E4865696768740500000000000000F00640145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72 + 07097846463241383245320748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 650610666F637573656473656C656374696F6E0A46696C6C2E436F6C6F720709 + 7846463241383245320748697454657374080A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000C8044014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E650B5374726F6B652E446173680703446F740000000A54536372 + 6F6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C + 69676E070552696768740B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E732E + 4C65667405000000000000008000400A506F736974696F6E2E58050000000000 + 0000D006400A53697A652E576964746805000000000000008003400B53697A65 + 2E4865696768740500000000000000F106401453697A652E506C6174666F726D + 44656661756C740800000A545363726F6C6C42617200095374796C654E616D65 + 060A687363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C + 4368616E676505000000000000000000000B4F7269656E746174696F6E070A48 + 6F72697A6F6E74616C0B4D617267696E732E546F700500000000000000800040 + 0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E + 590500000000000000F306400A53697A652E57696474680500000000000000DF + 06400B53697A652E48656967687405000000000000008003401453697A652E50 + 6C6174666F726D44656661756C740800000F54536D616C6C5363726F6C6C4261 + 7200095374796C654E616D65060F76736D616C6C7363726F6C6C62617205416C + 69676E070552696768740B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E732E + 4C65667405000000000000008000400A506F736974696F6E2E58050000000000 + 0000C605400A506F736974696F6E2E5905000000000000008000400A53697A65 + 2E576964746805000000000000008002400B53697A652E486569676874050000 + 00000000008002401453697A652E506C6174666F726D44656661756C74080756 + 697369626C650800000F54536D616C6C5363726F6C6C42617200095374796C65 + 4E616D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74 + 746F6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F700500 + 0000000000008000400A506F736974696F6E2E5805000000000000008000400A + 506F736974696F6E2E590500000000000000E205400A53697A652E5769647468 + 05000000000000009606400B53697A652E486569676874050000000000000080 + 02401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08000000005450463007544C61796F757400095374796C654E616D6506196163 + 74696F6E746F6F6C627574746F6E6D756C74697669657705416C69676E070643 + 656E7465720A53697A652E57696474680500000000000000C805400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F7264657202770B466978 + 65644865696768740232000654476C79706800095374796C654E616D65060A67 + 6C7970687374796C650C4D617267696E732E4C65667405000000000000009002 + 400B4D617267696E732E546F7005000000000000009002400E4D617267696E73 + 2E426F74746F6D050000000000000090024005416C69676E07044C6566740A50 + 6F736974696F6E2E5805000000000000009002400A506F736974696F6E2E5905 + 000000000000009002400A53697A652E57696474680500000000000000800440 + 0B53697A652E48656967687405000000000000008004401453697A652E506C61 + 74666F726D44656661756C740800000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C + 436C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E43 + 6F6C6F7207097846463230323032300748697454657374080C4D617267696E73 + 2E4C6566740500000000000000C804C00A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463230323032300953746F70 + 56616C756507097846463430343034300754726967676572063049734D6F7573 + 654F7665723D747275653B4973507265737365643D66616C73653B4973466F63 + 757365643D66616C73650E54726967676572496E7665727365063149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C73653B497346 + 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E33 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646324138 + 3245320953746F7056616C756507097846463137353739430754726967676572 + 062E4973507265737365643D747275653B49734D6F7573654F7665723D747275 + 653B4973466F63757365643D747275650E54726967676572496E766572736506 + 2F4973507265737365643D66616C73653B49734D6F7573654F7665723D747275 + 653B4973466F63757365643D7472756500000005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E740748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080454657874060454657874165465787453657474696E67732E466F6E + 74436F6C6F720708636C615768697465000007544C61796F757400095374796C + 654E616D6506074C61796F75743205416C69676E07044C6566740A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C7408000554 + 5061746800095374796C654E616D65060469636F6E05416C69676E070643656E + 74657209446174612E506174680A1801000017000000000000000000C03F0000 + C03F010000000000000000000000010000000000404000000000010000000000 + C03F0000C03F030000000000C03F0000C03F0000000000009040000000000100 + 000000004041000000000100000000004041CDCC4C3F0100000000009040CDCC + 4C3F010000000000904000000000030000000000904000000000000000000000 + 9040333373400100000000009040000040400100000000004041000040400100 + 0000000040413333734001000000000090403333734003000000000090403333 + 734000000000000090409A99D94001000000000090400000C040010000000000 + 40410000C04001000000000040419A99D94001000000000090409A99D9400300 + 0000000090409A99D9400A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080A53697A652E57696474680500000000000000D003400B53 + 697A652E4865696768740500000000000000E003401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65085772 + 61704D6F64650703466974000000005450463007544C61796F75740009537479 + 6C654E616D65060E616464627574746F6E7374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C003401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F72646572027B0B46697865 + 644865696768740218000654476C79706800095374796C654E616D65060A676C + 7970687374796C650C4D617267696E732E4C6566740500000000000000900240 + 0B4D617267696E732E546F7005000000000000009002400E4D617267696E732E + 426F74746F6D050000000000000090024005416C69676E07044C6566740A506F + 736974696F6E2E5805000000000000009002400A506F736974696F6E2E590500 + 0000000000009002400A53697A652E576964746805000000000000008004400B + 53697A652E48656967687405000000000000008004401453697A652E506C6174 + 666F726D44656661756C740800000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C43 + 6C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080C4D617267696E732E + 4C6566740500000000000000C003C00A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C003401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 + 616C756507097846463430343034300754726967676572063049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C73653B4973466F6375 + 7365643D66616C73650E54726967676572496E7665727365063149734D6F7573 + 654F7665723D66616C73653B4973507265737365643D66616C73653B4973466F + 63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3308 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632413832 + 45320953746F7056616C75650709784646313735373943075472696767657206 + 2E4973507265737365643D747275653B49734D6F7573654F7665723D74727565 + 3B4973466F63757365643D747275650E54726967676572496E7665727365062F + 4973507265737365643D66616C73653B49734D6F7573654F7665723D74727565 + 3B4973466F63757365643D7472756500000005545465787400095374796C654E + 616D6506047465787405416C69676E0706436C69656E74074869745465737408 + 0A53697A652E576964746805000000000000009805400B53697A652E48656967 + 68740500000000000000C003401453697A652E506C6174666F726D4465666175 + 6C74080454657874060454657874165465787453657474696E67732E466F6E74 + 436F6C6F720708636C615768697465000007544C61796F757400095374796C65 + 4E616D6506074C61796F75743205416C69676E07044C6566740A53697A652E57 + 696474680500000000000000C003400B53697A652E4865696768740500000000 + 000000C003401453697A652E506C6174666F726D44656661756C740800055450 + 61746800095374796C654E616D65060469636F6E05416C69676E0708436F6E74 + 656E747309446174612E506174680AAC0000000E00000000000000CDCC344100 + 00C040010000000000C0400000C040010000000000C040CDCC3441010000009A + 99A940CDCC3441010000009A99A9400000C04001000000000000000000C04001 + 000000000000009A99A940010000009A99A9409A99A940010000009A99A94000 + 000000010000000000C04000000000010000000000C0409A99A94001000000CD + CC34419A99A94001000000CDCC34410000C04003000000CDCC34410000C0400A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D61 + 7267696E732E4C65667405000000000000008001400B4D617267696E732E546F + 7005000000000000008001400D4D617267696E732E5269676874050000000000 + 00008001400E4D617267696E732E426F74746F6D05000000000000008001400A + 53697A652E576964746805000000000000008003400B53697A652E4865696768 7405000000000000008003401453697A652E506C6174666F726D44656661756C - 74080B5374796C654C6F6F6B7570060A7468756D627374796C65000000545046 - 3007544C61796F757400095374796C654E616D6506157363726F6C6C62617262 - 6F74746F6D627574746F6E05416C69676E070643656E7465720756697369626C - 6508085461624F726465720207000A5452656374616E676C6500095374796C65 + 74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346 + 6974000000005450463007544C61796F757400095374796C654E616D65061769 + 6E666F746F6F6C627574746F6E6D756C74697669657705416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F72646572027A0B46697865 + 644865696768740232000654476C79706800095374796C654E616D65060A676C + 7970687374796C650C4D617267696E732E4C6566740500000000000000900240 + 0B4D617267696E732E546F7005000000000000009002400E4D617267696E732E + 426F74746F6D050000000000000090024005416C69676E07044C6566740A506F + 736974696F6E2E5805000000000000009002400A506F736974696F6E2E590500 + 0000000000009002400A53697A652E576964746805000000000000008004400B + 53697A652E48656967687405000000000000008004401453697A652E506C6174 + 666F726D44656661756C740800000A5452656374616E676C6500095374796C65 4E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C43 6C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 - 32300953746F7056616C75650709784646343034303430075472696767657206 - 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 - 650E54726967676572496E7665727365062149734D6F7573654F7665723D6661 - 6C73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 - 6D6174696F6E32084475726174696F6E05000000000000000000000C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463430343034300953746F7056616C7565070978464631373537394307 - 54726967676572061F4973507265737365643D747275653B49734D6F7573654F - 7665723D747275650E54726967676572496E7665727365062049735072657373 - 65643D66616C73653B49734D6F7573654F7665723D7472756500000007544C61 - 796F757400095374796C654E616D6506074C61796F75743105416C69676E0706 - 43656E7465720A53697A652E57696474680500000000000000A002400B53697A - 652E4865696768740500000000000000C001401453697A652E506C6174666F72 - 6D44656661756C74080005545061746800095374796C654E616D650605506174 - 683105416C69676E0706436C69656E7409446174612E506174680A3400000004 - 000000000000000000C8420000C84201000000000096430000C8420100000000 - 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 - 636C6157686974650748697454657374080A53697A652E576964746805000000 - 00000000A002400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000000005450463007544C61796F757400095374796C654E616D - 6506137363726F6C6C6261726C656674627574746F6E05416C69676E07064365 - 6E7465720756697369626C6508085461624F726465720208000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 - 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 - 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 - 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463230323032300953746F7056616C7565070978464634303430 - 34300754726967676572062049734D6F7573654F7665723D747275653B497350 - 7265737365643D66616C73650E54726967676572496E7665727365062149734D - 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574 - 746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000 - 0000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097846463430343034300953746F7056616C756507 - 097846463137353739430754726967676572061F4973507265737365643D7472 - 75653B49734D6F7573654F7665723D747275650E54726967676572496E766572 - 736506204973507265737365643D66616C73653B49734D6F7573654F7665723D - 7472756500000007544C61796F757400095374796C654E616D6506074C61796F - 75743105416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000A002400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C7408000554506174680009537479 - 6C654E616D650605506174683105416C69676E0706436C69656E740944617461 - 2E506174680A3400000004000000000000000000C8420000C842010000000000 - 96430000C842010000000000484300009643030000000000C8420000C8420A46 - 696C6C2E436F6C6F720708636C6157686974650748697454657374080D526F74 - 6174696F6E416E676C650500000000000000B405400A53697A652E5769647468 - 0500000000000000A002400B53697A652E4865696768740500000000000000C0 - 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000000005450463007544C61796F757400095374796C - 654E616D6506147363726F6C6C6261727269676874627574746F6E05416C6967 - 6E070643656E7465720756697369626C6508085461624F726465720209000A54 - 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 - 05416C69676E0706436C69656E740C436C69704368696C6472656E090A436C69 - 70506172656E74090A46696C6C2E436F6C6F7207097846463230323032300748 - 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 6C6F7207097846463230323032300748697454657374080C4D617267696E732E + 4C6566740500000000000000C804C00A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 + 616C756507097846463430343034300754726967676572063049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C73653B4973466F6375 + 7365643D66616C73650E54726967676572496E7665727365063149734D6F7573 + 654F7665723D66616C73653B4973507265737365643D66616C73653B4973466F + 63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3308 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632413832 + 45320953746F7056616C75650709784646313735373943075472696767657206 + 2E4973507265737365643D747275653B49734D6F7573654F7665723D74727565 + 3B4973466F63757365643D747275650E54726967676572496E7665727365062F + 4973507265737365643D66616C73653B49734D6F7573654F7665723D74727565 + 3B4973466F63757365643D7472756500000005545465787400095374796C654E + 616D6506047465787405416C69676E0706436C69656E74074869745465737408 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080454657874060454657874165465787453657474696E67732E466F6E74 + 436F6C6F720708636C615768697465000007544C61796F757400095374796C65 + 4E616D6506074C61796F75743205416C69676E07044C6566740A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C740800055450 + 61746800095374796C654E616D65060469636F6E05416C69676E070643656E74 + 657209446174612E506174680A84070000A0000000000000009A9987429A9907 + 4302000000010076429A9907430200000001005E42CDCC064302000000343347 + 423433054302000000010030429A9903430200000067661A42CE4C0143020000 + 0067660642CECCFC4202000000CECCE4410100F742020000000100C041CECCEF + 420200000034339F419B99E74202000000CECC7C416866DF4202000000353343 + 413533D64202000000CECC14413533CC42020000009A99C9400000C242020000 + 00000080403333B742020000009A991940CDCCAB4202000000CDCC4C3F3333A0 + 4202000000000000003333944202000000000000009A99874202000000000000 + 000100764202000000CDCC4C3F01005E42020000009A991940CECC4642020000 + 000000804000003042020000009A99C94066661A420200000033331341666606 + 42020000009A994141CCCCE4410200000033337B41FFFFBF410200000066669E + 4132339F41020000003333BF41CACC7C41020000000000E44131334341020000 + 0000000642CACC14410200000066661A429A99C9400200000000003042000080 + 4002000000333347429A9919400200000000005E42CDCC4C3F02000000666676 + 4200000000020000009A99874200000000020000003433944200000000020000 + 003433A042CDCC4C3F02000000CDCCAB429A991940020000003333B742000080 + 40020000000000C2429A99C940020000003333CC4233331341020000003333D6 + 429A994141020000006666DF4233337B41020000009999E74266669E41020000 + 00CCCCEF423333BF4102000000FFFFF6420000E44102000000CCCCFC42000006 + 4202000000CC4C014300001A4202000000999903439A992F4202000000333305 + 43CDCC464202000000CDCC064300005E42020000009999074300007642020000 + 00999907439A99874202000000999907433433944202000000CCCC06433433A0 + 420200000033330543CDCCAB4202000000999903436766B74202000000CD4C01 + 433333C24202000000CCCCFC423433CC4202000000FFFFF6423433D642020000 + 00CCCCEF426766DF42020000009999E7429A99E742020000006666DF42CDCCEF + 42020000003333D6420000F742020000003333CC42CDCCFC42020000003333C2 + 42CD4C0143020000006666B7429A99034302000000CCCCAB4233330543020000 + 003333A042CDCC064302000000333394429A990743020000009A9987429A9907 + 43030000009A9987429A990743000000009A99874200001041020000009A9979 + 420000104102000000CECC644233331B4102000000CECC50429A993141020000 + 00CECC3C42000048410200000001002A420000684102000000CECC1842000088 + 41020000003433074200009C41020000003633EF41CDCCB441020000006966D2 + 419A99D141020000009C99B5416766EE41020000009C999D41CDCC0642020000 + 00D0CC88416666184202000000A099694100002A4202000000A099494166663C + 42020000003A333341CCCC50420200000033331B413333654202000000000010 + 4100007A4202000000000010419A998742020000000000104134339242020000 + 0033331B41CDCC9C42020000009A993141CDCCA6420200000000004841CDCCB0 + 4202000000000068413333BA4202000000000088410000C3420200000000009C + 41CDCCCB4202000000CDCCB4419A99D342020000009A99D141CDCCDA42020000 + 006766EE410000E24202000000CDCC06420000E84202000000666618423333ED + 420200000000002A423333F2420200000066663C423333F64202000000666650 + 420000F9420200000066666442CDCCFB4202000000333379423333FD42020000 + 00666687423333FD4202000000333392423333FD420200000099999C42CDCCFB + 42020000009999A6420000F942020000009999B0423333F64202000000FFFFB9 + 423333F24202000000CCCCC2423333ED42020000009999CB423333E842020000 + 006666D3420000E242020000009999DA42CDCCDA4202000000CCCCE1429A99D3 + 4202000000CCCCE742CDCCCB4202000000FFFFEC420000C34202000000FFFFF1 + 423333BA4202000000FFFFF5420000B14202000000CCCCF8420000A742020000 + 009999FB4200009D4202000000FFFFFC429A99924202000000FFFFFC42CDCC87 + 4202000000FFFFFC4200007A42020000009999FB423433654202000000CCCCF8 + 423433514202000000FFFFF54234333D4202000000FFFFF14267662A42020000 + 00FFFFEC42CECC184202000000FFFFE7423433074202000000CCCCE1423633EF + 41020000009999DA426966D241020000006666D3429C99B541020000009999CB + 429C999D4102000000CCCCC242D0CC884102000000FFFFB942A0996941020000 + 00CCCCB042A0994941020000009999A6423A33334102000000CDCC9C4233331B + 41020000006666924200001041020000009A99874200001041030000009A9987 + 42000010410000000033337D42CDCC1042010000009A999042CDCC1042010000 + 009A999042CDCC34420100000034337D42CDCC34420100000034337D42CDCC10 + 420300000033337D42CDCC10420000000033337D4233335942010000009A9990 + 4233335942010000009A9990420000C7420100000034337D420000C742010000 + 0034337D42333359420300000033337D42333359420A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080A53697A652E57696474680500 + 000000000000D003400B53697A652E4865696768740500000000000000E00340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6508577261704D6F6465070346697400000000545046300754 + 4C61796F757400095374796C654E616D65061B6F7267616E697A65746F6F6C62 + 7574746F6E6D756C74697669657705416C69676E070643656E7465720A53697A + 652E57696474680500000000000000C805400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508085461624F7264657202760B466978656448656967687402 + 32000654476C79706800095374796C654E616D65060A676C7970687374796C65 + 0C4D617267696E732E4C65667405000000000000009002400B4D617267696E73 + 2E546F7005000000000000009002400E4D617267696E732E426F74746F6D0500 + 00000000000090024005416C69676E07044C6566740A506F736974696F6E2E58 + 05000000000000009002400A506F736974696F6E2E5905000000000000009002 + 400A53697A652E576964746805000000000000008004400B53697A652E486569 + 67687405000000000000008004401453697A652E506C6174666F726D44656661 + 756C740800000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0706436C69656E740C436C69704368696C64 + 72656E090A436C6970506172656E74090A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080C4D617267696E732E4C65667405000000 + 00000000C804C00A53697A652E57696474680500000000000000C805400B5369 7A652E4865696768740500000000000000C804401453697A652E506C6174666F 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5443 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E - 436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCC - CCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463230323032300953746F7056616C756507097846 - 463430343034300754726967676572062049734D6F7573654F7665723D747275 - 653B4973507265737365643D66616C73650E54726967676572496E7665727365 - 062149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 - 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E - 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463430343034300953746F7056 - 616C756507097846463137353739430754726967676572061F49735072657373 - 65643D747275653B49734D6F7573654F7665723D747275650E54726967676572 - 496E766572736506204973507265737365643D66616C73653B49734D6F757365 - 4F7665723D7472756500000007544C61796F757400095374796C654E616D6506 - 074C61796F75743105416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000A002400B53697A652E4865696768740500000000000000 - C001401453697A652E506C6174666F726D44656661756C740800055450617468 - 00095374796C654E616D650605506174683105416C69676E0706436C69656E74 - 09446174612E506174680A3400000004000000000000000000C8420000C84201 - 000000000096430000C842010000000000484300009643030000000000C84200 - 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 - 080D526F746174696F6E416E676C650500000000000000B405C00A53697A652E - 57696474680500000000000000A002400B53697A652E48656967687405000000 - 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 - 095374796C654E616D6506127363726F6C6C626172746F70627574746F6E0541 - 6C69676E070643656E7465720756697369626C6508085461624F72646572020A - 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F - 756E6405416C69676E0706436C69656E740C436C69704368696C6472656E090A - 436C6970506172656E74090A46696C6C2E436F6C6F7207097846463230323032 - 300748697454657374080A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574 - 746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097846463230323032300953746F7056616C756507 - 097846463430343034300754726967676572062049734D6F7573654F7665723D - 747275653B4973507265737365643D66616C73650E54726967676572496E7665 - 727365062149734D6F7573654F7665723D66616C73653B497350726573736564 - 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650615627574746F6E436F6C6F72416E696D6174696F6E32084475726174 - 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C - 6C2E436F6C6F720A537461727456616C75650709784646343034303430095374 - 6F7056616C756507097846463137353739430754726967676572061F49735072 - 65737365643D747275653B49734D6F7573654F7665723D747275650E54726967 - 676572496E766572736506204973507265737365643D66616C73653B49734D6F - 7573654F7665723D7472756500000007544C61796F757400095374796C654E61 - 6D6506074C61796F75743105416C69676E070643656E7465720A53697A652E57 - 696474680500000000000000A002400B53697A652E4865696768740500000000 - 000000C001401453697A652E506C6174666F726D44656661756C740800055450 - 61746800095374796C654E616D650605506174683105416C69676E0706436C69 - 656E7409446174612E506174680A3400000004000000000000000000C8420000 - C84201000000000096430000C842010000000000484300009643030000000000 - C8420000C8420A46696C6C2E436F6C6F720708636C6157686974650748697454 - 657374080D526F746174696F6E416E676C650500000000000000B406400A5369 - 7A652E57696474680500000000000000A002400B53697A652E48656967687405 - 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F - 757400095374796C654E616D65060E7363726F6C6C6261727374796C6505416C - 69676E070643656E7465720756697369626C6508085461624F72646572020B00 - 0754427574746F6E00095374796C654E616D65060A6C656674627574746F6E05 - 416C69676E07044C656674064C6F636B6564090A506F736974696F6E2E590500 - 0000000000008003400A53697A652E576964746805000000000000008003400B - 53697A652E48656967687405000000000000009003401453697A652E506C6174 - 666F726D44656661756C74080B5374796C654C6F6F6B757006137363726F6C6C - 6261726C656674627574746F6E00000754427574746F6E00095374796C654E61 - 6D65060B7269676874627574746F6E05416C69676E07055269676874064C6F63 - 6B6564090A506F736974696F6E2E5805000000000000008804400A506F736974 - 696F6E2E5905000000000000008003400A53697A652E57696474680500000000 - 0000008003400B53697A652E4865696768740500000000000000900340145369 - 7A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006 - 147363726F6C6C6261727269676874627574746F6E00000754427574746F6E00 - 095374796C654E616D65060C626F74746F6D627574746F6E05416C69676E0706 - 426F74746F6D064C6F636B6564090A506F736974696F6E2E5905000000000000 - 008804400A53697A652E57696474680500000000000000C804400B53697A652E - 48656967687405000000000000008003401453697A652E506C6174666F726D44 - 656661756C74080B5374796C654C6F6F6B757006157363726F6C6C626172626F - 74746F6D627574746F6E00000654547261636B00095374796C654E616D650606 - 68747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269 - 656E746174696F6E070A486F72697A6F6E74616C0A53697A652E576964746805 - 000000000000009003400B53697A652E48656967687405000000000000009003 - 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F - 6B757006147363726F6C6C62617268747261636B7374796C6500000654547261 - 636B00095374796C654E616D65060676747261636B05416C69676E0706436C69 - 656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E - 74616C0A53697A652E576964746805000000000000009003400B53697A652E48 - 656967687405000000000000009003401453697A652E506C6174666F726D4465 - 6661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172767472 - 61636B7374796C6500000754427574746F6E00095374796C654E616D65060974 - 6F70627574746F6E05416C69676E0703546F700A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000800340 - 1453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B - 757006127363726F6C6C626172746F70627574746F6E000000545046300A5452 - 656374616E676C6500095374796C654E616D65060A7468756D627374796C6505 - 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646344434 - 4434440748697454657374080A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000000000C804401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 650756697369626C6508000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D6506147468756D62436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464634443444344409 - 53746F7056616C756507097846463137353739430754726967676572060E4973 - 507265737365643D747275650E54726967676572496E7665727365060F497350 - 7265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 - 4475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463444344434440953746F7056616C75650707636C61477261790754 - 726967676572061049734D6F7573654F7665723D747275650E54726967676572 - 496E7665727365061149734D6F7573654F7665723D66616C7365000000545046 - 300D545377697463684F626A65637400095374796C654E616D65060B73776974 - 63687374796C6505416C69676E070643656E746572044B696E64070C46616469 - 6E67547261636B730A53697A652E57696474680500000000000000C805400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C7408085461624F72646572020C12547261636B696E6754 - 68756D625363616C65050000000000000080FF3F0756697369626C65080A4669 - 6C6C2E436F6C6F7207097846463230323032300C46696C6C4F6E2E436F6C6F72 - 07097846463137353739430B46696C6C4F6E2E4B696E640705536F6C69640B53 - 74726F6B652E4B696E6407044E6F6E650B5468756D622E436F6C6F7207097846 - 463430343034300D5468756D624F6E2E436F6C6F720709784646324138324532 - 0C5468756D624F6E2E4B696E640705536F6C6964105468756D625374726F6B65 - 2E4B696E6407044E6F6E650F5468756D625374726F6B652E4361700705526F75 - 6E64105468756D625374726F6B652E446173680706437573746F6D105468756D - 625374726F6B652E4A6F696E0705526F756E64165468756D625374726F6B652E - 437573746F6D446173680A08000000000000000000000000005450463007544C - 61796F757400095374796C654E616D65060C7370696E626F787374796C650541 - 6C69676E070643656E7465720A53697A652E57696474680500000000006666E0 - 05400B53697A652E4865696768740500000000000000A803401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 72020D000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F - 7207097846463230323032300A53697A652E57696474680500000000006666E0 - 05400B53697A652E4865696768740500000000000000A803401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 46313531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 - 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E - 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 - 463135313531350953746F7056616C7565070978464634303430343007547269 - 67676572061049734D6F7573654F7665723D747275650E54726967676572496E - 7665727365061149734D6F7573654F7665723D66616C73650000000C54427275 - 73684F626A65637400095374796C654E616D65060A666F726567726F756E640B - 42727573682E436F6C6F72070978464645414541454100000C5442727573684F - 626A65637400095374796C654E616D65060973656C656374696F6E0B42727573 - 682E436F6C6F720709783936324138324532000007544C61796F757400095374 - 796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74064C - 6F636B6564090C4D617267696E732E4C65667405000000000000008000400B4D - 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 - 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 - 00000000008000400A53697A652E576964746805000000000070668405400B53 - 697A652E48656967687405000000000000008803401453697A652E506C617466 - 6F726D44656661756C740800000754427574746F6E00095374796C654E616D65 - 060B6D696E7573627574746F6E05416C69676E07074669744C6566740843616E - 466F6375730806437572736F72070763724172726F770C4D617267696E732E4C - 65667405000000000000008000400B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E526967687405000000000000008000400E4D - 617267696E732E426F74746F6D05000000000000008000400A506F736974696F - 6E2E5805000000000000008000400A506F736974696F6E2E5905000000000000 - 008000400A53697A652E5769647468050000000000E8FF8703400B53697A652E - 48656967687405000000000000008803401453697A652E506C6174666F726D44 - 656661756C74080B5374796C654C6F6F6B7570060B627574746F6E7374796C65 - 000554506174680005416C69676E0706436C69656E7409446174612E50617468 - 0A4000000005000000000000000000803F00000000010000000000803F000080 - 3F01000000000000000000003F010000000000803F0000000003000000000080 - 3F000000000A46696C6C2E436F6C6F720708636C615768697465074869745465 - 7374080C4D617267696E732E4C6566740500000000000000C001400B4D617267 - 696E732E546F700500000000000000C001400D4D617267696E732E5269676874 - 0500000000000000C001400E4D617267696E732E426F74746F6D050000000000 - 0000C001400A53697A652E5769647468050000000000A0FF9F01400B53697A65 - 2E4865696768740500000000000000A001401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000075442 - 7574746F6E00095374796C654E616D65060A706C7573627574746F6E05416C69 - 676E070846697452696768740843616E466F6375730806437572736F72070763 - 724172726F770C4D617267696E732E4C65667405000000000000008000400B4D - 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 - 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 - 00000000008000400A506F736974696F6E2E580500000000006A66BA05400A50 - 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 - 0000000000F0FF8703400B53697A652E48656967687405000000000000008803 - 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F - 6B7570060B627574746F6E7374796C65000554506174680005416C69676E0706 - 436C69656E7409446174612E506174680A340000000400000000000000000000 - 000000000001000000000000000000803F010000000000803F0000003F030000 - 0000000000000000000A46696C6C2E436F6C6F720708636C6157686974650748 - 697454657374080C4D617267696E732E4C6566740500000000000000C001400B - 4D617267696E732E546F700500000000000000C001400D4D617267696E732E52 - 696768740500000000000000C001400E4D617267696E732E426F74746F6D0500 - 000000000000C001400A53697A652E5769647468050000000000C0FF9F01400B - 53697A652E4865696768740500000000000000A001401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 00005450463007544C61796F757400095374796C654E616D65060F746162636F - 6E74726F6C7374796C6505416C69676E070643656E7465720A53697A652E5769 - 64746805000000000000008E06400B53697A652E486569676874050000000000 - FFFFC905401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F72646572020E000A5452656374616E676C650009537479 - 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E - 74730A46696C6C2E436F6C6F720709784646333033303330064C6F636B656409 - 0748697454657374080C50616464696E672E4C65667405000000000000008000 - 400B50616464696E672E546F7005000000000000008000400D50616464696E67 - 2E526967687405000000000000008000400E50616464696E672E426F74746F6D - 05000000000000008000400A53697A652E576964746805000000000000008E06 - 400B53697A652E486569676874050000000000FFFFC905401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 313531353135000000545046300A5452656374616E676C6500095374796C654E - 616D65060B746162646F747374796C6505416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 - 7A652E57696474680500000000000000C804400B53697A652E48656967687405 - 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F54436F - 6C6F72416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB - 3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463135313531350953746F7056616C7565070978464632 - 41383245320754726967676572060F497353656C65637465643D747275650E54 - 726967676572496E76657273650610497353656C65637465643D66616C736500 - 00005450463007544C61796F757400095374796C654E616D65060C7461626974 - 656D7374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08085461624F72646572020F000A5452656374616E676C6500095374796C654E - 616D650603746F7005416C69676E0708436F6E74656E74730C436C6970436869 - 6C6472656E0907436F726E6572730B07546F704C65667408546F705269676874 - 000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 - 48697454657374080553696465730B03546F70044C656674055269676874000A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C803401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F720709784646313531353135000654476C79 - 706800095374796C654E616D65060A676C7970687374796C650C4D617267696E - 732E4C65667405000000000000008001400D4D617267696E732E526967687405 - 000000000000008001C005416C69676E07044C6566740A53697A652E57696474 - 6805000000000000008003400B53697A652E4865696768740500000000000000 - 8003401453697A652E506C6174666F726D44656661756C740800000554546578 - 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 - 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 000000000000C000400B4D617267696E732E546F700500000000000000C00040 - 0D4D617267696E732E52696768740500000000000000C000400E4D617267696E - 732E426F74746F6D0500000000000000C000400A53697A652E57696474680500 - 000000000000B004400B53697A652E4865696768740500000000000000980340 - 1453697A652E506C6174666F726D44656661756C740816546578745365747469 - 6E67732E466F6E74436F6C6F720708636C615768697465155465787453657474 - 696E67732E576F7264577261700800000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650612746162436F6C6F72416E696D6174696F6E310D - 416E696D6174696F6E547970650705496E4F7574084475726174696F6E050000 - 000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463230323032300953746F7056616C75 - 6507097846463430343034300754726967676572062149734D6F7573654F7665 - 723D747275653B497353656C65637465643D66616C73650E5472696767657249 - 6E7665727365062249734D6F7573654F7665723D66616C73653B497353656C65 - 637465643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650612746162436F6C6F72416E696D6174696F6E320844757261 - 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 - 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 - 746F7056616C756507097846463241383245320754726967676572060F497353 - 656C65637465643D747275650E54726967676572496E76657273650610497353 - 656C65637465643D66616C736500000000545046300A5452656374616E676C65 - 00095374796C654E616D65060D7468756D626261727374796C6505416C69676E - 070643656E7465720A46696C6C2E436F6C6F7207097846463241383245320748 - 697454657374080A53697A652E57696474680500000000000000A003400B5369 - 7A652E4865696768740500000000000000A003401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 31350756697369626C6508000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E31084475 - 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646324138324532 - 0953746F7056616C756507097846463137353739430754726967676572061F49 - 73507265737365643D747275653B49734D6F7573654F7665723D747275650E54 - 726967676572496E766572736506104973507265737365643D66616C73653B00 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506147468 - 756D62436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097846463241383245320953746F7056616C756507 - 097846463430394246460754726967676572062049734D6F7573654F7665723D - 747275653B4973507265737365643D66616C73650E54726967676572496E7665 - 727365062149734D6F7573654F7665723D66616C73653B497350726573736564 - 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D6506157468756D625374726F6B65416E696D6174696F6E31084475726174 - 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060C537472 - 6F6B652E436F6C6F720A537461727456616C7565070978464631353135313509 - 53746F7056616C756507097846463137353739430754726967676572061F4973 - 507265737365643D747275653B49734D6F7573654F7665723D747275650E5472 - 6967676572496E7665727365060F4973507265737365643D66616C7365000000 - 5450463007544C61796F757400095374796C654E616D65060C6C697374626F78 + 436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 463430343034300754726967676572063049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C73653B4973466F63757365643D66616C73 + 650E54726967676572496E7665727365063149734D6F7573654F7665723D6661 + 6C73653B4973507265737365643D66616C73653B4973466F63757365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 + 616C756507097846463137353739430754726967676572062E49735072657373 + 65643D747275653B49734D6F7573654F7665723D747275653B4973466F637573 + 65643D747275650E54726967676572496E7665727365062F4973507265737365 + 643D66616C73653B49734D6F7573654F7665723D747275653B4973466F637573 + 65643D7472756500000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E740748697454657374080A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000C804401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746500000754 + 4C61796F757400095374796C654E616D6506074C61796F75743205416C69676E + 07044C6566740A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080005545061746800095374796C654E616D65060469636F + 6E05416C69676E070643656E74657209446174612E506174680AD00000001100 + 0000000000009A99E9409A99C940010000006666664066661E41010000000000 + 00009A99C940010000000000003F9A99B94001000000CDCC4C409A9909410100 + 0000CDCC4C400000000001000000000080400000000001000000000080400000 + 0841010000006666D6406666B640010000009A99E9409A99C940030000009A99 + E9409A99C940000000009A99993E00004041010000009A99993E333333410100 + 00000000E04033333341010000000000E04000004041010000009A99993E0000 + 4041030000009A99993E000040410A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080A53697A652E57696474680500000000000000D0 + 03400B53697A652E4865696768740500000000000000E003401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6508577261704D6F64650703466974000000005450463007544C61796F757400 + 095374796C654E616D65061B73657474696E6773746F6F6C627574746F6E6D75 + 6C74697669657705416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C805400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F7264657202790B46697865644865696768740232000654476C79 + 706800095374796C654E616D65060A676C7970687374796C650C4D617267696E + 732E4C65667405000000000000009002400B4D617267696E732E546F70050000 + 00000000009002400E4D617267696E732E426F74746F6D050000000000000090 + 024005416C69676E07044C6566740A506F736974696F6E2E5805000000000000 + 009002400A506F736974696F6E2E5905000000000000009002400A53697A652E + 576964746805000000000000008004400B53697A652E48656967687405000000 + 000000008004401453697A652E506C6174666F726D44656661756C740800000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0706436C69656E740C436C69704368696C6472656E090A436C + 6970506172656E74090A46696C6C2E436F6C6F72070978464632303230323007 + 48697454657374080C4D617267696E732E4C6566740500000000000000C804C0 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646343034303430 + 0754726967676572063049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C73650E5472696767 + 6572496E7665727365063149734D6F7573654F7665723D66616C73653B497350 + 7265737365643D66616C73653B4973466F63757365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463241383245320953746F7056616C7565070978 + 46463137353739430754726967676572062E4973507265737365643D74727565 + 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 + 0E54726967676572496E7665727365062F4973507265737365643D66616C7365 + 3B49734D6F7573654F7665723D747275653B4973466F63757365643D74727565 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 0706436C69656E740748697454657374080A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C7408045465787406045465787416 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 000007544C61796F757400095374796C654E616D6506074C61796F7574320541 + 6C69676E07044C6566740A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080005545061746800095374796C654E616D6506 + 0469636F6E05416C69676E070643656E74657209446174612E506174680A540D + 00001C01000000000000333351423333E7410200000033335142CDCCE8410200 + 0000333351426666EA4102000000333351423333EB410200000033335142CDCC + EC4102000000333351426666EE4102000000333351423333EF41020000003333 + 5142CDCCF04102000000333351426666F24102000000333351423333F3410200 + 000033335142CDCCF44102000000333351426666F64102000000333351423333 + F7410100000099996F4266660E4201000000CDCC5C4200003C42010000000000 + 3A42000034420200000000003842000036420200000000003642000038420200 + 00000000344200003A420100000000003C42CDCC5C4201000000CDCC0E429A99 + 6F42010000000000F84133335142020000006666F6413333514202000000CDCC + F44133335142020000000000F44133335142020000006666F241333351420200 + 0000CDCCF04133335142020000000000F04133335142020000006666EE413333 + 514202000000CDCCEC4133335142020000000000EC4133335142020000006666 + EA413333514202000000CDCCE84133335142020000000000E841333351420100 + 00006666C24199996F4201000000FFFF4F41CCCC5C4201000000FFFF6F41FFFF + 394202000000FFFF6741FFFF374202000000FFFF5F41FFFF354202000000FFFF + 5741FFFF33420100000098999940FFFF3B420100000000000000CDCC0E420100 + 00003333F3400000F841020000003333F3406666F641020000003333F340CDCC + F441020000003333F3400000F441020000003333F3406666F241020000003333 + F340CDCCF041020000003333F3400000F041020000003333F3406666EE410200 + 00003333F340CDCCEC41020000003333F3400000EC41020000003333F3406666 + EA41020000003333F340CDCCE841020000003333F3400000E841010000000000 + 0000CDCCC0410100000066669640CDCC4C410100000066665641CDCC6C410200 + 000066665E41CDCC64410200000066666641CDCC5C410200000066666E41CDCC + 54410100000066664E413433934001000000CDCCC04100000000010000006666 + E6413333F340020000000000E8413333F340020000009999E9413333F3400200 + 00006666EA413333F340020000000000EC413333F340020000009999ED413333 + F340020000006666EE413333F340020000000000F0413333F340020000009999 + F1413333F340020000006666F2413333F340020000000000F4413333F3400200 + 00009999F5413333F340020000006666F6413333F34001000000CDCC0E420000 + 00000100000000003C4266669640010000000000344266665641020000000000 + 364266665E410200000000003842666666410200000000003A4266666E410100 + 0000CDCC5C4266664E41010000009A996F429A99C14101000000333351423333 + E74103000000333351423333E7410000000033334342CDCC0242020000003333 + 4342CDCC004202000000999943426766FE4102000000999943426766FA410200 + 0000999943426766F64102000000FFFF43423433F34102000000FFFF43423433 + EF4102000000FFFF43423433EB4102000000FFFF43420100E841020000009999 + 43420100E44102000000999943420100E0410200000033334342CECCDC410200 + 000033334342CECCD84101000000CDCC5E426866B64101000000CDCC54429B99 + 854101000000CDCC3442CECC9441020000006766324234338F41020000000000 + 30429B9989410200000033332D42010084410200000066662A42CECC7C410200 + 0000000028423533734102000000CDCC24429C9969410100000067662C423833 + D340010000000100144238338340010000006766024202003041020000006766 + 004202003041020000009B99FD4168662E41020000009B99F94168662E410200 + 00009B99F54168662E41020000006866F241CECC2C41020000006866EE41CECC + 2C41020000006866EA41CECC2C41020000003533E741CECC2C41020000003533 + E34168662E41020000003533DF4168662E41020000000200DC41020030410200 + 00000200D84102003041010000009C99B5413733834001000000CFCC84413733 + D34001000000020094419C9969410200000068668E413633734102000000CFCC + 8841CFCC7C410200000035338341010084410200000036337B419A9989410200 + 00009D99714167668E410200000004006841CECC9441010000000800D0409B99 + 854101000000080080406866B641010000006A662E419B99D941020000006A66 + 2E419B99DD4102000000D0CC2C41CECCE04102000000D0CC2C41CECCE4410200 + 0000D0CC2C41CECCE8410200000036332B410100EC410200000036332B410100 + F0410200000036332B410100F4410200000036332B413433F74102000000D0CC + 2C413433FB4102000000D0CC2C413433FF41020000006A662E41343301420200 + 00006A662E4134330342010000000700804067661442010000000700D040CDCC + 2C42010000000400684133332542020000009E99714100002842020000003733 + 7B41CDCC2A42020000003533834199992D4202000000CECC8841656630420200 + 00009B998D41CCCC324202000000020094413333354201000000CFCC84413333 + 5542010000009C99B54133335F4201000000CFCCD8419999434202000000CFCC + DC4199994342020000000200E041FFFF4342020000000200E441FFFF43420200 + 00000200E841FFFF4342020000003533EB4165664442020000003533EF416566 + 4442020000003533F34165664442020000006866F64165664442020000006866 + FA41FFFF4342020000006866FE41FFFF434202000000CECC0042999943420200 + 0000CECC024299994342010000000100144233335F420100000067662C423333 + 554201000000CDCC244233333542020000009A992742CDCC3242020000006766 + 2A42666630420200000033332D4299992D4202000000FFFF2F42CCCC2A420200 + 0000666632426666284202000000CDCC34423333254201000000CDCC5442CDCC + 2C4201000000CDCC5E42676614420100000033334342CDCC0242030000003333 + 4342CDCC0242000000003333EF4133339741020000003333FB41333397410200 + 00009A9903429999994102000000CDCC084266669E410200000000000E423333 + A34102000000CDCC12429999A94102000000CDCC16429999B14102000000CDCC + 1A429999B9410200000000001E423333C34102000000676620429999CD410200 + 0000CDCC2242FFFFD7410200000001002442FFFFE34102000000010024420000 + F04102000000010024420100FC4102000000CECC224200000442020000006766 + 2042333309420200000001001E4266660E4202000000CDCC1A42333313420200 + 0000CDCC16423333174202000000CDCC124233331B420200000000000E426666 + 1E4202000000CDCC0842CDCC2042020000009A99034233332342020000003433 + FB4167662442020000003433EF4167662442020000003433E341676624420200 + 00003433D7413433234202000000CECCCC41CDCC2042020000006866C2416766 + 1E4202000000CECCB84133331B4202000000CECCB0413333174202000000CECC + A84133331342020000006866A24166660E42020000009B999D41333309420200 + 0000CECC98410000044202000000686696410000FC4102000000686696410000 + F04102000000686696410000E44102000000CECC98410000D841020000009B99 + 9D419A99CD41020000006866A2413433C34102000000CECCA8419A99B9410200 + 0000CECCB0419A99B14102000000CECCB8419A99A941020000006866C2413433 + A34102000000CECCCC4167669E41020000000000D8419A999941020000003333 + E34133339741020000003333EF4133339741030000003333EF41333397410000 + 00003333EF41CDCC1642020000000000F841CDCC164202000000000000420000 + 1642020000009A990342676614420200000034330742CDCC124202000000CDCC + 0A4267661042020000009A990D429A990D420200000067661042CDCC0A420200 + 0000CDCC12429A99074202000000676614429A99034202000000010016420000 + 004202000000CDCC16423433F74102000000CDCC16423433EF4102000000CDCC + 16426766E64102000000000016426766DE4102000000676614423433D7410200 + 0000CDCC12420100D0410200000067661042CECCC841020000009A990D423433 + C34102000000CDCC0A429A99BD41020000009A990742CECCB841020000009A99 + 03429A99B54102000000000000426766B241020000003433F741CDCCB0410200 + 00003433EF41CDCCB041020000006766E641CDCCB041020000006766DE416766 + B241020000003433D7419A99B541020000000100D041CDCCB84102000000CECC + C8419A99BD41020000003433C3413433C341020000009A99BD41CECCC8410200 + 0000CECCB8413433CF41020000009A99B5413433D741020000006766B2416766 + DE4102000000CDCCB0413433E74102000000CDCCB0413433EF4102000000CDCC + B0410100F841020000006766B24100000042020000009A99B5419A9903420200 + 0000CDCCB84134330742020000009A99BD41CDCC0A42020000003433C3419A99 + 0D4202000000CECCC84167661042020000003433CF41CDCC1242020000003433 + D74167661442020000003333DF4100001642020000003333E741CDCC16420200 + 00003333EF41CDCC1642030000003333EF41CDCC16420A46696C6C2E436F6C6F + 720708636C6157686974650748697454657374080A53697A652E576964746805 + 00000000000000D003400B53697A652E4865696768740500000000000000E003 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6508577261704D6F64650703466974000000005450463007 + 544C61796F757400095374796C654E616D65061172656D6F7665627574746F6E 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 00000000FFFFE905400B53697A652E4865696768740500000000000000830640 + 000000000000C805400B53697A652E4865696768740500000000000000C00340 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720210000C5442727573684F626A65637400095374796C654E - 616D650618416C7465726E6174696E67526F774261636B67726F756E640B4272 - 7573682E436F6C6F72070978464632433243324300000A5452656374616E676C - 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 - 436F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C - 6F636B6564090748697454657374080C50616464696E672E4C65667405000000 - 000000008000400B50616464696E672E546F7005000000000000008000400D50 - 616464696E672E526967687405000000000000008000400E50616464696E672E - 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 0000FFFFE905400B53697A652E48656967687405000000000000008306401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 7207097846463135313531350007544C61796F757400095374796C654E616D65 - 0607636F6E74656E7405416C69676E0706436C69656E740C436C69704368696C - 6472656E090A53697A652E5769647468050000000000FFFFC105400B53697A65 - 2E4865696768740500000000000000DE05401453697A652E506C6174666F726D - 44656661756C7408000A5452656374616E676C6500095374796C654E616D6506 - 0973656C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532 - 0748697454657374080A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000000000C804401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 0A5452656374616E676C6500095374796C654E616D650610666F637573656473 - 656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748 - 697454657374080A53697A652E57696474680500000000000000C804400B5369 - 7A652E4865696768740500000000000000C804401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B537472 - 6F6B652E446173680703446F740000000A545363726F6C6C4261720009537479 - 6C654E616D65060A767363726F6C6C62617205416C69676E070552696768740B - 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 - 6F6E0708566572746963616C0A506F736974696F6E2E58050000000000FFFFC5 - 05400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 - 64746805000000000000008003400B53697A652E486569676874050000000000 - 0000DE05401453697A652E506C6174666F726D44656661756C740800000A5453 - 63726F6C6C42617200095374796C654E616D65060A687363726F6C6C62617205 - 416C69676E0706426F74746F6D0B536D616C6C4368616E676505000000000000 - 000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F73 - 6974696F6E2E5805000000000000008000400A506F736974696F6E2E59050000 - 0000000000E205400A53697A652E5769647468050000000000FFFFE105400B53 - 697A652E48656967687405000000000000008003401453697A652E506C617466 - 6F726D44656661756C740800000F54536D616C6C5363726F6C6C426172000953 - 74796C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E07 - 0552696768740B536D616C6C4368616E676505000000000000000000000B4F72 - 69656E746174696F6E0708566572746963616C0C4D617267696E732E4C656674 - 05000000000000008000400A506F736974696F6E2E580500000000000000C605 - 400A506F736974696F6E2E5905000000000000008000400A53697A652E576964 - 746805000000000000008002400B53697A652E48656967687405000000000000 - 008002401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C650800000F54536D616C6C5363726F6C6C42617200095374796C654E616D65 - 060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B - 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 - 6F6E070A486F72697A6F6E74616C0B4D617267696E732E546F70050000000000 - 00008000400A506F736974696F6E2E5805000000000000008000400A506F7369 - 74696F6E2E590500000000000000E205400A53697A652E576964746805000000 - 000000009606400B53697A652E48656967687405000000000000008002401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508000000 - 0B54476C6F774566666563740008536F66746E657373050000000000CDCCCCFC - 3F09476C6F77436F6C6F720709784646463639453244074F7061636974790500 - 000000006666E6FE3F0754726967676572060E4973466F63757365643D747275 - 6507456E61626C6564080000005450463007544C61796F757400095374796C65 - 4E616D65060D6C697374626F78666F6F74657205416C69676E070643656E7465 - 720A53697A652E576964746805000000000000009205400B53697A652E486569 - 6768740500000000000000D003401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508085461624F7264657202110005545465787400 - 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 00000000A001400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E52696768740500000000000000A001400E4D617267696E732E - 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 00000000FC04400B53697A652E4865696768740500000000000000B003401453 - 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 - 732E466F6E74436F6C6F720708636C6157686974650000005450463007544C61 - 796F757400095374796C654E616D6506106C697374626F786974656D7374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 0000D605400B53697A652E4865696768740500000000000000C003401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 726465720212000654476C79706800095374796C654E616D65060A676C797068 - 7374796C650C4D617267696E732E4C65667405000000000000008000400B4D61 - 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 - 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 - 0000000080FF3F05416C69676E07044C6566740A53697A652E57696474680500 - 0000000000008003400B53697A652E4865696768740500000000000000800340 - 1453697A652E506C6174666F726D44656661756C740800000554546578740009 - 5374796C654E616D6506047465787405416C69676E0706436C69656E74074869 - 7454657374080C4D617267696E732E4C6566740500000000000000C000400B4D + 5461624F72646572027D0B46697865644865696768740218000654476C797068 + 00095374796C654E616D65060A676C7970687374796C650C4D617267696E732E + 4C65667405000000000000009002400B4D617267696E732E546F700500000000 + 0000009002400E4D617267696E732E426F74746F6D0500000000000000900240 + 05416C69676E07044C6566740A506F736974696F6E2E58050000000000000084 + 04400A506F736974696F6E2E5905000000000000009002400A53697A652E5769 + 64746805000000000000008004400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C740800000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A436C6970 + 506172656E74090A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080C4D617267696E732E4C6566740500000000000000C003C00A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E31084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E33084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463241383245320953746F7056616C75650709784646 + 3137353739430754726967676572062E4973507265737365643D747275653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 + 726967676572496E7665727365062F4973507265737365643D66616C73653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650000 + 0005545465787400095374796C654E616D6506047465787405416C69676E0706 + 436C69656E740748697454657374080A53697A652E5769647468050000000000 + 00009805400B53697A652E4865696768740500000000000000C003401453697A + 652E506C6174666F726D44656661756C74080454657874060454657874165465 + 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 + 07544C61796F757400095374796C654E616D6506074C61796F75743205416C69 + 676E07044C6566740A53697A652E57696474680500000000000000C003400B53 + 697A652E4865696768740500000000000000C003401453697A652E506C617466 + 6F726D44656661756C74080005545061746800095374796C654E616D65060469 + 636F6E05416C69676E0708436F6E74656E747309446174612E506174680A4C00 + 0000060000000000000000004041CDCC4C3F0100000000000000CDCC4C3F0100 + 000000000000000000000100000000004041000000000100000000004041CDCC + 4C3F0300000000004041CDCC4C3F0A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080C4D617267696E732E4C65667405000000000000 + 008001400B4D617267696E732E546F7005000000000000008001400D4D617267 + 696E732E526967687405000000000000008001400E4D617267696E732E426F74 + 746F6D05000000000000008001400A53697A652E576964746805000000000000 + 008003400B53697A652E48656967687405000000000000008003401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6508577261704D6F6465070346697400000000545046300A545265637461 + 6E676C6500095374796C654E616D650614706F7075706261636B67726F756E64 + 7374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F720709 + 7846463244324432440A53697A652E576964746805000000000000009407400B + 53697A652E4865696768740500000000000080D206401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 313531350756697369626C650800005450463007544C61796F75740009537479 + 6C654E616D65061A70726F67726573736261726D696E6966696E697368737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 + 4F72646572024A000A5452656374616E676C6500095374796C654E616D650606 + 68747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646343034303430064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009 + 5374796C654E616D65060A68696E64696361746F7205416C69676E07044C6566 + 740A46696C6C2E436F6C6F720709784646324345323434064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 0A5452656374616E676C6500095374796C654E616D65060676747261636B0541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430 + 34303430064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000033338505400B53697A652E4865696768740500000000009999E1 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D + 65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C + 2E436F6C6F720709784646324345323434064C6F636B65640907486974546573 + 74080A506F736974696F6E2E5905000000000099998D04400A53697A652E5769 + 64746805000000000033338505400B53697A652E486569676874050000000000 + 0000A803401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574000953 + 74796C654E616D65061070726F67726573736261727374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000033338505400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572023E00 + 0A5452656374616E676C6500095374796C654E616D65060668747261636B0541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230 + 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000033338505400B53697A652E4865696768740500000000009999E1 + 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F720709784646313531353135000A5452656374616E676C6500095374 + 796C654E616D65060A68696E64696361746F7205416C69676E07044C6566740A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 6768740500000000000000C000400E4D617267696E732E426F74746F6D050000 - 000000000080FF3F0A53697A652E57696474680500000000000000CA05400B53 - 697A652E4865696768740500000000000000B003401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C615768697465155465787453657474696E67732E576F72645772 - 617008165465787453657474696E67732E486F727A416C69676E07074C656164 - 696E6700000954436865636B426F7800095374796C654E616D65060563686563 - 6B05416C69676E07084D6F73744C6566740843616E466F637573081244697361 - 626C65466F637573456666656374090A53697A652E5769647468050000000000 - 0000A003400B53697A652E4865696768740500000000000000C003401453697A - 652E506C6174666F726D44656661756C74080756697369626C65080000005450 - 463007544C61796F757400095374796C654E616D6506126C697374626F78706C - 61696E68656164657205416C69676E070643656E7465720A53697A652E576964 - 746805000000000000009205400B53697A652E48656967687405000000000000 - 00D003401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C6508085461624F726465720213000A5452656374616E676C6500095374796C - 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 - 730A46696C6C2E436F6C6F720709784646324432443244064C6F636B65640907 - 48697454657374080A53697A652E576964746805000000000000009205400B53 - 697A652E4865696768740500000000000000D003401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 353135000005545465787400095374796C654E616D6506047465787405416C69 - 676E0706436C69656E74064C6F636B6564090748697454657374080C4D617267 - 696E732E4C6566740500000000000000A001400B4D617267696E732E546F7005 - 000000000000008000400D4D617267696E732E52696768740500000000000000 - A001400E4D617267696E732E426F74746F6D05000000000000008000400A5369 - 7A652E57696474680500000000000000FC04400B53697A652E48656967687405 - 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 650000005450463007544C61796F757400095374796C654E616D650609677269 - 647374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 0000000000FFFFE905400B53697A652E48656967687405000000000000008306 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F726465720214000C5442727573684F626A65637400095374796C65 - 4E616D650618416C7465726E6174696E67526F774261636B67726F756E640B42 - 727573682E436F6C6F72070978333237383738373800000C5442727573684F62 - 6A65637400095374796C654E616D6506086C696E6566696C6C0B42727573682E - 436F6C6F72070978464631353135313500000A5452656374616E676C65000953 - 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 - 656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 - 64090748697454657374080C50616464696E672E4C6566740500000000000000 - 8000400B50616464696E672E546F7005000000000000008000400D5061646469 - 6E672E526967687405000000000000008000400E50616464696E672E426F7474 - 6F6D05000000000000008000400A53697A652E5769647468050000000000FFFF - E905400B53697A652E48656967687405000000000000008306401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 464631353135313500075448656164657200095374796C654E616D6506066865 - 616465720553696465730B03546F70044C65667406426F74746F6D0552696768 - 740005416C69676E0703546F700A506F736974696F6E2E580500000000000000 - 8000400A506F736974696F6E2E5905000000000000008000400A53697A652E57 - 69647468050000000000FFFFE105400B53697A652E4865696768740500000000 - 000000A803401453697A652E506C6174666F726D44656661756C740800000754 - 4C61796F757400095374796C654E616D650607636F6E74656E7405416C69676E - 0706436C69656E740C436C69704368696C6472656E090A53697A652E57696474 - 68050000000000FFFFC105400B53697A652E4865696768740500000000000000 - B405401453697A652E506C6174666F726D44656661756C7408000A5452656374 - 616E676C6500095374796C654E616D65060973656C656374696F6E0A46696C6C - 2E436F6C6F7207097846463241383245320748697454657374080A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374 - 796C654E616D650605666F6375730A46696C6C2E436F6C6F7207097841463241 - 383245320748697454657374080C4D617267696E732E4C656674050000000000 - 000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D6172 - 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F - 74746F6D050000000000000080FF3F0A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A50 + 6F736974696F6E2E59050000000000000080FF3F0A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000009999D904 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E650000000A5452656374616E676C6500095374796C654E61 + 6D65060676747261636B05416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 + 080A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F720709784646313531353135000A5452 + 656374616E676C6500095374796C654E616D65060A76696E64696361746F7205 + 416C69676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646324138 + 324532064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E + 58050000000000000080FF3F0A506F736974696F6E2E59050000000000999989 + 04400A53697A652E576964746805000000000033338105400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007 + 544C61796F757400095374796C654E616D65061177696E646F77626F72646572 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 0000000056D5AF07400B53697A652E4865696768740500000000000000B30640 + 1453697A652E506C6174666F726D44656661756C7408085461624F7264657202 + 39000A5452656374616E676C6500095374796C654E616D6506046D61736B0541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463130 + 313031300A53697A652E576964746805000000000056D5AF07400B53697A652E + 4865696768740500000000000000B306401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C + 6508000007544C61796F757400095374796C654E616D6506046C65667405416C + 69676E07084D6F73744C656674064C6F636B6564090A506F736974696F6E2E59 + 05000000000000008004400A53697A652E576964746805000000000000008001 + 400B53697A652E48656967687405000000000000009306401453697A652E506C + 6174666F726D44656661756C7408000A5452656374616E676C650005416C6967 + 6E07084D6F73744C6566740A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080553696465730B044C656674055269676874000A5369 + 7A652E576964746805000000000000008001400B53697A652E48656967687405 + 000000000000008F06401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F72070978464631353135313500000A5452656374 + 616E676C6500095374796C654E616D65060A52656374616E676C653105416C69 + 676E070A4D6F7374426F74746F6D13456E61626C6544726167486967686C6967 + 6874080A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080A506F736974696F6E2E5905000000000000008F06400553696465730B04 + 4C65667406426F74746F6D000A53697A652E5769647468050000000000000080 + 01400B53697A652E48656967687405000000000000008001401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 463135313531350007544C61796F757400095374796C654E616D6506074C6179 + 6F75743305416C69676E07094D6F737452696768740A506F736974696F6E2E58 + 0500000000000000C000400A53697A652E5769647468050000000000000080FF + 3F0B53697A652E48656967687405000000000000008001401453697A652E506C + 6174666F726D44656661756C7408000A5452656374616E676C6500095374796C + 654E616D65060A52656374616E676C653105416C69676E0703546F700A46696C + 6C2E436F6C6F7207097846463135313531350748697454657374080A53697A65 + 2E5769647468050000000000000080FF3F0B53697A652E486569676874050000 + 000000000080FF3F1453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000000000007544C61796F7574000953 + 74796C654E616D650605726967687405416C69676E07094D6F73745269676874 + 064C6F636B6564090A506F736974696F6E2E5805000000000056D5AD07400A50 + 6F736974696F6E2E5905000000000000008004400A53697A652E576964746805 + 000000000000008001400B53697A652E48656967687405000000000000009306 + 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E + 676C650005416C69676E07094D6F737452696768740A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080553696465730B044C656674 + 055269676874000A53697A652E576964746805000000000000008001400B5369 + 7A652E48656967687405000000000000008F06401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 313500000A5452656374616E676C6500095374796C654E616D65060A52656374 + 616E676C653105416C69676E070A4D6F7374426F74746F6D13456E61626C6544 + 726167486967686C69676874080A46696C6C2E436F6C6F720709784646323032 + 3032300748697454657374080A506F736974696F6E2E5905000000000000008F + 06400553696465730B06426F74746F6D055269676874000A53697A652E576964 + 746805000000000000008001400B53697A652E48656967687405000000000000 + 008001401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350007544C61796F75740009537479 + 6C654E616D6506074C61796F75743305416C69676E07084D6F73744C6566740A + 53697A652E5769647468050000000000000080FF3F0B53697A652E4865696768 + 7405000000000000008001401453697A652E506C6174666F726D44656661756C + 7408000A5452656374616E676C6500095374796C654E616D65060A5265637461 + 6E676C653105416C69676E0703546F700A46696C6C2E436F6C6F720709784646 + 3135313531350748697454657374080A53697A652E5769647468050000000000 + 000080FF3F0B53697A652E486569676874050000000000000080FF3F1453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6500000000000A5452656374616E676C650005416C69676E07074D6F73 + 74546F700A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 + 64090748697454657374080A53697A652E576964746805000000000056D5AF07 + 400B53697A652E48656967687405000000000000008004401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 3135313531350007544C61796F757400095374796C654E616D65060763617074 + 696F6E05416C69676E0708436F6E74656E7473064C6F636B6564090748697454 + 657374090C4D617267696E732E4C65667405000000000000008001400B4D6172 + 67696E732E546F7005000000000000008001400D4D617267696E732E52696768 + 7405000000000000008001400A53697A652E576964746805000000000056D5AB + 07400B53697A652E4865696768740500000000000000E003401453697A652E50 + 6C6174666F726D44656661756C7408000007544C61796F75740005416C69676E + 0706436C69656E74064C6F636B6564090C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 + 00000056D5AE07400B53697A652E4865696768740500000000000000F0034014 + 53697A652E506C6174666F726D44656661756C74080007544C61796F75740005 + 416C69676E07044C656674064C6F636B6564090A53697A652E57696474680500 + 0000000000009002400B53697A652E4865696768740500000000000000F00340 + 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 + 00095374796C654E616D65060469636F6E064C6F636B6564090A506F73697469 + 6F6E2E5805000000000000009002400A506F736974696F6E2E59050000000000 + 0000E001400A53697A652E57696474680500000000000000C803400B53697A65 + 2E4865696768740500000000000000A803401453697A652E506C6174666F726D + 44656661756C7408000007544C61796F757400095374796C654E616D65060773 + 797362746E7305416C69676E0706436C69656E74064C6F636B6564090A53697A + 652E57696474680500000000005655AA07400B53697A652E4865696768740500 + 000000000000F003401453697A652E506C6174666F726D44656661756C740800 + 0C545370656564427574746F6E00095374796C654E616D650605636C6F736505 + 416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E5805 + 000000000056559107400A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000F003401453697A652E506C61 + 74666F726D44656661756C74080B5374796C654C6F6F6B75700610636C6F7365 + 627574746F6E7374796C6500000C545370656564427574746F6E00095374796C + 654E616D6506036D617805416C69676E07055269676874064C6F636B6564090A + 506F736974696F6E2E5805000000000056558107400A53697A652E5769647468 + 05000000000000008004400B53697A652E4865696768740500000000000000F0 + 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B7570060E6D6178627574746F6E7374796C6500000C545370656564427574 + 746F6E00095374796C654E616D65060372657305416C69676E07055269676874 + 064C6F636B6564090A506F736974696F6E2E58050000000000ACAAE206400A53 + 697A652E576964746805000000000000008004400B53697A652E486569676874 + 0500000000000000F003401453697A652E506C6174666F726D44656661756C74 + 080B5374796C654C6F6F6B7570060E726573627574746F6E7374796C6500000C + 545370656564427574746F6E00095374796C654E616D6506036D696E05416C69 + 676E07055269676874064C6F636B6564090A506F736974696F6E2E5805000000 + 0000ACAAC206400A53697A652E576964746805000000000000008004400B5369 + 7A652E4865696768740500000000000000F003401453697A652E506C6174666F + 726D44656661756C74080B5374796C654C6F6F6B7570060E6D696E627574746F + 6E7374796C65000005545465787400095374796C654E616D6506057469746C65 + 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080A + 53697A652E5769647468050000000000ACAAC206400B53697A652E4865696768 + 740500000000000000F003401453697A652E506C6174666F726D44656661756C + 7408045465787406055469746C65165465787453657474696E67732E466F6E74 + 436F6C6F720708636C615768697465000000000007544C61796F757400095374 + 796C654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F + 636B6564090748697454657374090A53697A652E576964746805000000000056 + D5AB07400B53697A652E48656967687405000000000000008F06401453697A65 + 2E506C6174666F726D44656661756C7408000007544C61796F75740009537479 + 6C654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F63 + 6B6564090A506F736974696F6E2E5805000000000000008001400A506F736974 + 696F6E2E590500000000000000AF06400A53697A652E57696474680500000000 + 0056D5AB07400B53697A652E4865696768740500000000000000800140145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D6506047265637405416C69676E0706426F74746F6D0A46 + 696C6C2E436F6C6F720709784646323032303230074869745465737408055369 + 6465730B03546F7006426F74746F6D000A53697A652E57696474680500000000 + 0056D5AB07400B53697A652E4865696768740500000000000000800140145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 070978464631353135313500000000} + end + item + Platform = 'OSX Yosemite' + ResourcesBin = { + 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 + AF00060B627574746F6E7374796C6503EB04060D636865636B626F787374796C + 6503EA050609656469747374796C6503D4050609677269647374796C6503E608 + 060D67726F7570626F787374796C6503B402060F6865616465726974656D7374 + 796C6503F403060E696D61676563656C6C7374796C65033D01060A6C6162656C + 7374796C65032001060D6C697374626F78666F6F746572038B0106106C697374 + 626F786974656D7374796C6503520306126C697374626F78706C61696E686561 + 646572036C02060C6C697374626F787374796C6503B307060E706F7075706365 + 6C6C7374796C65038E03061070726F67726573736261727374796C6503020506 + 1170726F677265737363656C6C7374796C6503CB0206147363726F6C6C626172 + 68747261636B7374796C65033B01060E7363726F6C6C6261727374796C650363 + 0406147363726F6C6C62617276747261636B7374796C65033B01060C7370696E + 626F787374796C65038507060B7377697463687374796C6503ED01060F746162 + 636F6E74726F6C7374796C6503F701060B746162646F747374796C65037F0106 + 0C7461626974656D7374796C65032B05060D7465787463656C6C7374796C6503 + A601060D7468756D626261727374796C65034C03060A7468756D627374796C65 + 033B02060D747261636B6261727374796C65034A0806096D656D6F7374796C65 + 030D08060D73697A65677269707374796C6503FB04060E737461747573626172 + 7374796C6503DB01060C746F6F6C6261727374796C6503CA00061570726F6772 + 6573736261726572726F727374796C65030705060E6C696E6B6C6162656C7374 + 796C65035003060C706F706F7665727374796C65035B02060D706F707570626F + 787374796C6503630606157363726F6C6C626172626F74746F6D627574746F6E + 036E0406137363726F6C6C6261726C656674627574746F6E0387040614736372 + 6F6C6C6261727269676874627574746F6E038A0406127363726F6C6C62617274 + 6F70627574746F6E038404060D636F6D626F626F787374796C65032607061473 + 74617475736261726E6F677269707374796C6503D4000613736D616C6C736372 + 6F6C6C6261727374796C6503AE01060D73706C69747465727374796C65030103 + 06106D656E756261726974656D7374796C65035C0B060C6D656E756261727374 + 796C6503B802060D6D656E756974656D7374796C6503890B06126D656E757365 + 70617261746F727374796C6503E501060D6D656E75766965777374796C6503B7 + 020610726164696F627574746F6E7374796C6503C4050618756C63656E746572 + 726164696F627574746F6E7374796C65035D050616756C6C656674726164696F + 627574746F6E7374796C6503A7050617756C7269676874726164696F62757474 + 6F6E7374796C6503B705061470726F67726573736261726D696E697374796C65 + 03F403060E636F6D626F656469747374796C6503F8090613657870616E646572 + 627574746F6E7374796C650381020615657870616E646572636865636B626F78 + 7374796C6503DB05060D657870616E6465727374796C650316070615616E6969 + 6E64696361746F72686F727A7374796C6503E0020611616E69696E6469636174 + 6F727374796C6503D701060A70616E656C7374796C65034F01061970726F6772 + 6573736261726D696E696572726F727374796C6503F903060E6C6F6762757474 + 6F6E7374796C6503DA07061B7472656576696577657870616E64657262757474 + 6F6E7374796C65038902060D74726565766965777374796C65038D0706117472 + 6565766965776974656D7374796C65032705061670726F677265737362617266 + 696E6973687374796C6503FF04061A70726F67726573736261726D696E696669 + 6E6973687374796C6503FA0300545046300A5452656374616E676C6500095374 + 796C654E616D65060F6261636B67726F756E647374796C6505416C69676E0706 + 43656E7465720A46696C6C2E436F6C6F7207097846463244324432440A53697A + 652E576964746805000000000000009407400B53697A652E4865696768740500 + 000000000080D206401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E650756697369626C6508000054504630 + 07544C61796F757400095374796C654E616D65060B627574746F6E7374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00C805400B53697A652E4865696768740500000000000000C803401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 + 6465720202000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0706436C69656E740C436C69704368696C64 + 72656E090A436C6970506172656E74090A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C803401453697A 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6507595261646975730500000000000000C000400000000A545363726F + 4E6F6E6507585261646975730500000000000000C00040075952616469757305 + 00000000000000C00040000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E31084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 0953746F7056616C756507097846463430343034300754726967676572063049 + 734D6F7573654F7665723D747275653B4973507265737365643D66616C73653B + 4973466F63757365643D66616C73650E54726967676572496E76657273650631 + 49734D6F7573654F7665723D66616C73653B4973507265737365643D66616C73 + 653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D61 + 74696F6E32084475726174696F6E05000000000000000000000C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463430343034300953746F7056616C75650709784646313735373943075472 + 6967676572062F4973507265737365643D747275653B49734D6F7573654F7665 + 723D747275653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E33084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463241383245320953746F7056616C7565070978464631373537 + 39430754726967676572062E4973507265737365643D747275653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D747275650E5472696767 + 6572496E7665727365062F4973507265737365643D66616C73653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D74727565000000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E7413456E61626C6544726167486967686C6967687408074869745465737408 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 + 686974650000005450463007544C61796F757400095374796C654E616D65060D + 636865636B626F787374796C6505416C69676E070643656E7465720A53697A65 + 2E5769647468050000000000ACAA8006400B53697A652E486569676874050000 + 00000058559904401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F7264657202030007544C61796F75740005416C69 + 676E07044C6566740A53697A652E576964746805000000000000009003400B53 + 697A652E48656967687405000000000058559904401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E070643656E7465720A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 + 2E57696474680500000000000000F002400B53697A652E486569676874050000 + 0000000000F002401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F72070978464631353135313507585261646975730500 + 000000000000C0004007595261646975730500000000000000C00040000A5452 + 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 + 416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646324138 + 324532074869745465737408074F70616369747905000000000000000000000C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 + 400A53697A652E57696474680500000000000000B002400B53697A652E486569 + 6768740500000000000000B002401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 000000000000C0004007595261646975730500000000000000C00040000F5446 + 6C6F6174416E696D6174696F6E00095374796C654E616D65061B636865636862 + 6F7856697362696C697479416E696D6174696F6E31084475726174696F6E0500 + 0000000000000000000C50726F70657274794E616D6506074F7061636974790A + 537461727456616C756505000000000000000000000953746F7056616C756505 + 00000000000000C805400754726967676572060E4973436865636B65643D7472 + 75650E54726967676572496E7665727365060F4973436865636B65643D66616C + 73650000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0618636865636B626F785374726F6B65416E696D6174696F6E31084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D65060C537472 + 6F6B652E436F6C6F720A537461727456616C7565070978464631353135313509 + 53746F7056616C756507097846463241383245320754726967676572060E4973 + 436865636B65643D747275650E54726967676572496E7665727365060F497343 + 6865636B65643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650617636865636B626F78436F6C6F72416E696D6174696F + 6E31084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646343034303430075472696767 + 6572061049734D6F7573654F7665723D747275650E54726967676572496E7665 + 727365061149734D6F7573654F7665723D66616C736500000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E740A + 53697A652E57696474680500000000005855DD05400B53697A652E4865696768 + 7405000000000058559904401453697A652E506C6174666F726D44656661756C + 74080454657874060454657874165465787453657474696E67732E466F6E7443 + 6F6C6F720708636C6157686974650000005450463007544C61796F7574000953 + 74796C654E616D650609656469747374796C6505416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000C805400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F726465720204000C544272757368 + 4F626A65637400095374796C654E616D65060A666F726567726F756E6400000C + 5442727573684F626A65637400095374796C654E616D65060973656C65637469 + 6F6E0B42727573682E436F6C6F72070978393632413832453200000B54466F6E + 744F626A65637400095374796C654E616D650604666F6E7409466F6E742E5369 + 7A650500000000000000D0024000000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 + 730A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F7207097846463135313531350758526164 + 6975730500000000000000C0004007595261646975730500000000000000C000 + 40000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061465 + 6469745374726F6B65416E696D6174696F6E31084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060C5374726F6B652E436F6C + 6F720A537461727456616C756507097846463135313531350953746F7056616C + 756507097846463241383245320754726967676572060E4973466F6375736564 + 3D747275650E54726967676572496E7665727365060F4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650614656469745374726F6B65416E696D6174696F6E32084475726174696F + 6E050000000000000000000007496E7665727365090C50726F70657274794E61 + 6D65060C5374726F6B652E436F6C6F720A537461727456616C75650709784646 + 3135313531350953746F7056616C756507097846463443344334430754726967 + 676572062149734D6F7573654F7665723D747275653B4973466F63757365643D + 66616C73653B0E54726967676572496E7665727365062249734D6F7573654F76 + 65723D66616C73653B4973466F63757365643D66616C73653B00000007544C61 + 796F757400095374796C654E616D650607627574746F6E7305416C69676E0705 + 5269676874064C6F636B6564090B4D617267696E732E546F7005000000000000 + 008000400D4D617267696E732E526967687405000000000000008000400E4D61 + 7267696E732E426F74746F6D05000000000000008000400A506F736974696F6E + 2E580500000000000000C004400A506F736974696F6E2E590500000000000000 + 8000400A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000A803401453697A652E506C6174666F726D4465 + 6661756C7408000007544C61796F757400095374796C654E616D650607636F6E + 74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D61726769 + 6E732E4C65667405000000000000008001400B4D617267696E732E546F700500 + 0000000000008000400D4D617267696E732E5269676874050000000000000080 + 00400E4D617267696E732E426F74746F6D05000000000000008000400A53697A + 652E57696474680500000000000000A804400B53697A652E4865696768740500 + 000000000000A803401453697A652E506C6174666F726D44656661756C740800 + 0006544C6162656C00095374796C654E616D65060670726F6D7074064C6F636B + 656409074F706163697479050000000000000080FE3F16546578745365747469 + 6E67732E466F6E74436F6C6F720708636C615768697465045465787406045465 + 78740000005450463007544C61796F757400095374796C654E616D6506096772 + 69647374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 050000000000FFFFE905400B53697A652E486569676874050000000000000083 + 06401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F726465720205000C5442727573684F626A65637400095374796C + 654E616D650618416C7465726E6174696E67526F774261636B67726F756E640B + 42727573682E436F6C6F72070978333237383738373800000C5442727573684F + 626A65637400095374796C654E616D6506086C696E6566696C6C0B4272757368 + 2E436F6C6F72070978464631353135313500000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B + 6564090748697454657374080C50616464696E672E4C65667405000000000000 + 008000400B50616464696E672E546F7005000000000000008000400D50616464 + 696E672E526967687405000000000000008000400E50616464696E672E426F74 + 746F6D05000000000000008000400A53697A652E5769647468050000000000FF + FFE905400B53697A652E48656967687405000000000000008306401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313507585261646975730500000000000000C0004007595261 + 646975730500000000000000C0004000075448656164657200095374796C654E + 616D6506066865616465720553696465730B03546F70044C65667406426F7474 + 6F6D0552696768740005416C69676E0703546F700A506F736974696F6E2E5805 + 000000000000008000400A506F736974696F6E2E590500000000000000800040 + 0A53697A652E5769647468050000000000FFFFE105400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C7408000007544C61796F757400095374796C654E616D650607636F6E74656E + 7405416C69676E0706436C69656E740C436C69704368696C6472656E090A5369 + 7A652E5769647468050000000000FFFFC105400B53697A652E48656967687405 + 00000000000000B405401453697A652E506C6174666F726D44656661756C7408 + 000A5452656374616E676C6500095374796C654E616D65060973656C65637469 + 6F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 000000000000C0004007595261646975730500000000000000C0004000000A54 + 52656374616E676C6500095374796C654E616D650605666F6375730A46696C6C + 2E436F6C6F7207097841463241383245320748697454657374080C4D61726769 + 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65075852616469757305000000000000 + 00C0004007595261646975730500000000000000C000400000000A545363726F 6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C69 676E070552696768740B536D616C6C4368616E67650500000000000000000000 0B4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E2E @@ -13996,1142 +11202,1412 @@ object MainForm: TMainForm 2E576964746805000000000000009606400B53697A652E486569676874050000 00000000008002401453697A652E506C6174666F726D44656661756C74080756 697369626C6508000000005450463007544C61796F757400095374796C654E61 - 6D65060F6865616465726974656D7374796C6505416C69676E070643656E7465 - 720A53697A652E576964746805000000000000009205400B53697A652E486569 - 6768740500000000000000D003401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508085461624F726465720215000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463443344334 - 43064C6F636B6564090748697454657374080A53697A652E5769647468050000 - 00000000009205400B53697A652E4865696768740500000000000000D0034014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F720709784646313531353135000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650615686561646572436F6C6F72416E696D6174696F6E31 - 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646344334 - 4334430953746F7056616C756507097846463241383245320754726967676572 - 060E4973507265737365643D747275650E54726967676572496E766572736506 - 0F4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D6506166865616465725374726F6B65416E696D61 - 74696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 - 74794E616D65060C5374726F6B652E436F6C6F720A537461727456616C756507 - 097846463135313531350953746F7056616C7565070978464632413832453207 - 54726967676572060E4973507265737365643D747275650E5472696767657249 - 6E7665727365060F4973507265737365643D66616C7365000000055454657874 - 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 - 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 - 0000000000A001400B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E52696768740500000000000000A001400E4D617267696E73 - 2E426F74746F6D05000000000000008000400A53697A652E5769647468050000 - 0000000000FC04400B53697A652E4865696768740500000000000000B0034014 - 53697A652E506C6174666F726D44656661756C7408165465787453657474696E - 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C - 61796F757400095374796C654E616D65061070726F6772657373626172737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 0033338505400B53697A652E4865696768740500000000009999E10440145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F726465720216000A5452656374616E676C6500095374796C654E616D650606 - 68747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F - 720709784646323032303230064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000033338505400B53697A652E48656967687405 - 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F720709784646313531353135000A545265637461 - 6E676C6500095374796C654E616D65060A68696E64696361746F7205416C6967 - 6E07044C6566740A46696C6C2E436F6C6F720709784646324138324532064C6F - 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 - 00000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61 - 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 - 6F74746F6D050000000000000080FF3F0A506F736974696F6E2E580500000000 - 00000080FF3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000009999D904401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E650000000A5452656374616E676C6500 - 095374796C654E616D65060676747261636B05416C69676E0708436F6E74656E - 74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 - 0748697454657374080A53697A652E576964746805000000000033338505400B - 53697A652E4865696768740500000000009999E104401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 31353135000A5452656374616E676C6500095374796C654E616D65060A76696E - 64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72 - 0709784646324138324532064C6F636B6564090748697454657374080C4D6172 - 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 - 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 - 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A50 - 6F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905 - 000000000099998904400A53697A652E57696474680500000000003333810540 - 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0000005450463007544C61796F757400095374796C654E616D65061170726F67 - 7265737363656C6C7374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000000000F805400B53697A652E486569676874050000 - 0000000000FC05401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F7264657202170007544C61796F75740009537479 - 6C654E616D65060668747261636B05416C69676E0708436F6E74656E7473064C - 6F636B6564090C4D617267696E732E4C65667405000000000000008000400B4D - 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 - 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 - 00000000008000400A53697A652E57696474680500000000000000F005400B53 - 697A652E4865696768740500000000000000F405401453697A652E506C617466 - 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 - 6D65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E - 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 - 080C4D617267696E732E4C65667405000000000000008000400B4D617267696E - 732E546F7005000000000000008000400D4D617267696E732E52696768740500 - 0000000000008000400E4D617267696E732E426F74746F6D0500000000000000 - 8000400A506F736974696F6E2E5805000000000000008000400A506F73697469 - 6F6E2E5905000000000000008000400A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000EC05401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000000005450463007544C61796F757400095374796C654E616D6506 - 106D656E756261726974656D7374796C6505416C69676E070643656E7465720C - 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A53697A652E576964746805000000000000009205400B53697A652E486569 - 6768740500000000000000D003401453697A652E506C6174666F726D44656661 - 756C74080756697369626C6508085461624F726465720218000A545265637461 - 6E676C650005416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 - 0709784646324138324532074869745465737408074F70616369747905000000 - 000017B7D1F13F0A53697A652E576964746805000000000000009205400B5369 - 7A652E4865696768740500000000000000D003401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5446 - 6C6F6174416E696D6174696F6E00084475726174696F6E050000000000CDCCCC - FB3F0C50726F70657274794E616D6506074F7061636974790A53746172745661 - 6C756505000000000000000000000953746F7056616C75650500000000000000 - 80FF3F0754726967676572060F497353656C65637465643D747275650E547269 - 67676572496E76657273650610497353656C65637465643D66616C7365000000 - 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 - 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 - 4646324138324532074869745465737408074F70616369747905000000000017 - B7D1F13F0A53697A652E576964746805000000000000009205400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F61 - 74416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C - 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 - 05000000000000000000000953746F7056616C7565050000000000000080FF3F - 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 - 6572496E7665727365061149734D6F7573654F7665723D66616C736500000007 - 544C61796F757400095374796C654E616D650605676C79706805416C69676E07 - 044C6566740A53697A652E57696474680500000000000000C803400B53697A65 - 2E4865696768740500000000000000D003401453697A652E506C6174666F726D - 44656661756C74080007544C61796F757400095374796C654E616D6506096368 - 65636B6D61726B05416C69676E0708436F6E74656E7473074F70616369747905 - 00000000006F1283F53F0A53697A652E57696474680500000000000000C80340 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C7408000554506174680005416C69676E070643656E - 74657209446174612E506174680A58000000070000000000000056D9524391AE - 2C43010000009276664365021643010000009F3983432B7C3C43010000009E9A - A64382D2B442010000006F1CB04375A4D1420100000026DF8243263F67430300 - 000056D9524391AE2C430A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080A53697A652E57696474680500000000000000B002400B53 - 697A652E4865696768740500000000000000B002401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F - 54466C6F6174416E696D6174696F6E00084475726174696F6E050000000000CD - CCCCFB3F0C50726F70657274794E616D6506074F7061636974790A5374617274 - 56616C756505000000000000000000000953746F7056616C7565050000000000 - 000080FF3F0754726967676572060E4973436865636B65643D747275650E5472 - 6967676572496E7665727365060F4973436865636B65643D66616C7365000000 - 0654476C79706800095374796C654E616D65060A676C7970687374796C650C4D - 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 - 6F7005000000000000008000400D4D617267696E732E52696768740500000000 - 000000C000400E4D617267696E732E426F74746F6D050000000000000080FF3F - 05416C69676E070552696768740A53697A652E57696474680500000000000000 - 8003400B53697A652E48656967687405000000000000008003401453697A652E - 506C6174666F726D44656661756C740800000654496D61676500095374796C65 - 4E616D6506066269746D61700E4D756C74695265734269746D61700E01000005 - 416C69676E0708436F6E74656E74730C4D617267696E732E4C65667405000000 - 000000008000400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E526967687405000000000000008000400E4D617267696E732E - 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 00000000A803400B53697A652E4865696768740500000000000000B003401453 - 697A652E506C6174666F726D44656661756C7408000000055454657874000953 - 74796C654E616D6506047465787405416C69676E07044C656674064C6F636B65 - 64090748697454657374080C4D617267696E732E4C6566740500000000000000 - 8002400D4D617267696E732E526967687405000000000000008002400A506F73 - 6974696F6E2E5805000000000000008404400A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000000000D0034014 - 53697A652E506C6174666F726D44656661756C7408165465787453657474696E - 67732E466F6E74436F6C6F720708636C61576869746516546578745365747469 - 6E67732E486F727A416C69676E07074C656164696E6700000554546578740009 - 5374796C654E616D65060873686F727463757405416C69676E07055269676874 - 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 000000000000C002400D4D617267696E732E52696768740500000000000000C0 - 01400A506F736974696F6E2E580500000000000000C000C00A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000D003401453697A652E506C6174666F726D44656661756C74081654657874 - 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 - 7453657474696E67732E486F727A416C69676E07074C656164696E6700000754 - 4C61796F757400095374796C654E616D6506077375626D61726B05416C69676E - 070552696768740A506F736974696F6E2E580500000000000000D404400A5369 - 7A652E57696474680500000000000000A003400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 000554506174680005416C69676E070643656E74657209446174612E50617468 - 0A34000000040000000000000000000000000000000100000000000000000080 - 3F010000000000803F0000003F0300000000000000000000000A46696C6C2E43 - 6F6C6F720708636C615768697465064C6F636B6564090748697454657374080A - 53697A652E57696474680500000000000000E001400B53697A652E4865696768 - 7405000000000000008002401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300A545265 - 6374616E676C6500095374796C654E616D65060C6D656E756261727374796C65 - 05416C69676E070643656E7465720C436C69704368696C6472656E090946696C - 6C2E4B696E6407044E6F6E650748697454657374080A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E650756697369626C6508000A5452656374616E676C6500 - 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230 - 323032300748697454657374080C4D617267696E732E4C656674050000000000 - 000080FFBF0B4D617267696E732E546F70050000000000000080FFBF0D4D6172 - 67696E732E5269676874050000000000000080FFBF0A53697A652E5769647468 - 0500000000000000D004400B53697A652E4865696768740500000000000000CC - 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F720709784646313531353135000007544C61796F757400095374796C - 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D6172 - 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 - 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 - 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 - 697A652E57696474680500000000000000C004400B53697A652E486569676874 - 0500000000000000C004401453697A652E506C6174666F726D44656661756C74 - 080000005450463007544C61796F757400095374796C654E616D65060D6D656E - 756974656D7374796C6505416C69676E070643656E7465720C4D617267696E73 - 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 - 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F - 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E - 576964746805000000000000009205400B53697A652E48656967687405000000 - 00000000D003401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F72646572021A000A5452656374616E676C65000541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463241 - 38324532074869745465737408074F70616369747905000000000017B7D1F13F - 0A53697A652E576964746805000000000000009205400B53697A652E48656967 - 68740500000000000000D003401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E69 - 6D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70 - 657274794E616D6506074F7061636974790A537461727456616C756505000000 - 000000000000000953746F7056616C7565050000000000000080FF3F07547269 - 67676572060F497353656C65637465643D747275650E54726967676572496E76 - 657273650610497353656C65637465643D66616C73650000000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463241383245 - 32074869745465737408074F70616369747905000000000000000000000A5369 - 7A652E576964746805000000000000009205400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174 - 696F6E00084475726174696F6E050000000000CDCCCCFB3F07496E7665727365 - 090C50726F70657274794E616D6506074F7061636974790A537461727456616C - 756505000000000000000000000953746F7056616C7565050000000000000080 - FF3F0754726967676572061049734D6F7573654F7665723D747275650E547269 - 67676572496E7665727365061149734D6F7573654F7665723D66616C73650000 - 0007544C61796F757400095374796C654E616D650605676C79706805416C6967 - 6E07044C6566740A53697A652E57696474680500000000000000C803400B5369 - 7A652E4865696768740500000000000000D003401453697A652E506C6174666F - 726D44656661756C74080007544C61796F757400095374796C654E616D650609 - 636865636B6D61726B05416C69676E0708436F6E74656E7473074F7061636974 - 790500000000006F1283F53F0A53697A652E57696474680500000000000000C8 - 03400B53697A652E4865696768740500000000000000D003401453697A652E50 - 6C6174666F726D44656661756C7408000554506174680005416C69676E070643 - 656E74657209446174612E506174680A58000000070000000000000056D95243 - 91AE2C43010000009276664365021643010000009F3983432B7C3C4301000000 - 9E9AA64382D2B442010000006F1CB04375A4D1420100000026DF8243263F6743 - 0300000056D9524391AE2C430A46696C6C2E436F6C6F720708636C6157686974 - 650748697454657374080A53697A652E57696474680500000000000000B00240 - 0B53697A652E4865696768740500000000000000B002401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 000F54466C6F6174416E696D6174696F6E00084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A537461 - 727456616C756505000000000000000000000953746F7056616C756505000000 - 0000000080FF3F0754726967676572060E4973436865636B65643D747275650E - 54726967676572496E7665727365060F4973436865636B65643D66616C736500 - 00000654476C79706800095374796C654E616D65060A676C7970687374796C65 - 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 0000000000C000400E4D617267696E732E426F74746F6D050000000000000080 - FF3F05416C69676E07044C6566740A53697A652E576964746805000000000000 - 008003400B53697A652E48656967687405000000000000008003401453697A65 - 2E506C6174666F726D44656661756C740800000654496D61676500095374796C - 654E616D6506066269746D61700E4D756C74695265734269746D61700E010000 - 05416C69676E07044C6566740C4D617267696E732E4C65667405000000000000 - 008000400B4D617267696E732E546F7005000000000000008000400D4D617267 - 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D05000000000000008000400A506F736974696F6E2E5805000000000000 - 008000400A506F736974696F6E2E5905000000000000008000400A53697A652E - 57696474680500000000000000A803400B53697A652E48656967687405000000 - 00000000B003401453697A652E506C6174666F726D44656661756C7408000000 - 05545465787400095374796C654E616D6506047465787405416C69676E07044C - 656674064C6F636B6564090748697454657374080C4D617267696E732E4C6566 - 7405000000000000008002400D4D617267696E732E5269676874050000000000 - 00008002400A506F736974696F6E2E5805000000000000008404400A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000000000D003401453697A652E506C6174666F726D44656661756C74081654 - 65787453657474696E67732E466F6E74436F6C6F720708636C61576869746516 - 5465787453657474696E67732E486F727A416C69676E07074C656164696E6700 - 0005545465787400095374796C654E616D65060873686F727463757405416C69 - 676E07055269676874064C6F636B6564090748697454657374080C4D61726769 - 6E732E4C6566740500000000000000C002400D4D617267696E732E5269676874 - 0500000000000000C001400A506F736974696F6E2E580500000000000000C000 - C00A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000D003401453697A652E506C6174666F726D44656661 - 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 - 5768697465165465787453657474696E67732E486F727A416C69676E07074C65 - 6164696E67000007544C61796F757400095374796C654E616D6506077375626D - 61726B05416C69676E070552696768740A506F736974696F6E2E580500000000 - 000000D404400A53697A652E57696474680500000000000000A003400B53697A + 6D65060D67726F7570626F787374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000000F004400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508085461624F726465720206000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 08436F6E74656E74730946696C6C2E4B696E6407044E6F6E6507486974546573 + 74080C4D617267696E732E4C6566740500000000000000C000400B4D61726769 + 6E732E546F7005000000000000009002400D4D617267696E732E526967687405 + 00000000000000C000400E4D617267696E732E426F74746F6D05000000000000 + 00C000400A53697A652E57696474680500000000000000D804400B53697A652E + 48656967687405000000000000009804401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C000400005545465787400095374796C654E616D65060474657874084175 + 746F53697A65090A436C6970506172656E74090748697454657374080C4D6172 + 67696E732E4C6566740500000000000000A002400A506F736974696F6E2E5805 + 000000000060559502400A506F736974696F6E2E590500000000004055D501C0 + 0A53697A652E576964746805000000000000B8C703400B53697A652E48656967 + 68740500000000000060FF02401453697A652E506C6174666F726D4465666175 + 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 + 68697465155465787453657474696E67732E576F726457726170080000000054 + 50463007544C61796F757400095374796C654E616D65060F6865616465726974 + 656D7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 05000000000000009205400B53697A652E4865696768740500000000000000D0 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F726465720207000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646344334433443064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000000009205400B53697A + 652E4865696768740500000000000000D003401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 3507585261646975730500000000000000C00040075952616469757305000000 + 00000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650615686561646572436F6C6F72416E696D6174696F6E31084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646344334433443095374 + 6F7056616C756507097846463241383245320754726967676572060E49735072 + 65737365643D747275650E54726967676572496E7665727365060F4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D6506166865616465725374726F6B65416E696D6174696F6E3108 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 + 313531350953746F7056616C7565070978464632413832453207547269676765 + 72060E4973507265737365643D747275650E54726967676572496E7665727365 + 060F4973507265737365643D66616C736500000005545465787400095374796C + 654E616D6506047465787405416C69676E0706436C69656E74064C6F636B6564 + 090748697454657374080C4D617267696E732E4C6566740500000000000000A0 + 01400B4D617267696E732E546F7005000000000000008000400D4D617267696E + 732E52696768740500000000000000A001400E4D617267696E732E426F74746F + 6D05000000000000008000400A53697A652E57696474680500000000000000FC + 04400B53697A652E4865696768740500000000000000B003401453697A652E50 + 6C6174666F726D44656661756C7408165465787453657474696E67732E466F6E + 74436F6C6F720708636C6157686974650000005450463007544C61796F757400 + 095374796C654E616D65060E696D61676563656C6C7374796C6505416C69676E + 070643656E7465720756697369626C6508085461624F72646572020800065449 + 6D61676500095374796C654E616D650605696D6167650E4D756C746952657342 + 69746D61700E01000005416C69676E0706436C69656E74064C6F636B65640907 + 48697454657374080C4D617267696E732E4C656674050000000000000080FF3F + 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E + 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F0A53697A652E57696474680500000000000000C00440 + 0B53697A652E4865696768740500000000000000C004401453697A652E506C61 + 74666F726D44656661756C74080000005450463007544C61796F757400095374 + 796C654E616D65060A6C6162656C7374796C6505416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000C805400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F7264657202090005545465787400 + 095374796C654E616D6506047465787405416C69676E0708436F6E74656E7473 + 0748697454657374080A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C6157686974650000005450463007544C61796F757400095374 + 796C654E616D65060D6C697374626F78666F6F74657205416C69676E07064365 + 6E7465720A53697A652E576964746805000000000000009205400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F72646572020A0005545465 + 787400095374796C654E616D6506047465787405416C69676E0706436C69656E + 74064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 + 00000000000000A001400B4D617267696E732E546F7005000000000000008000 + 400D4D617267696E732E52696768740500000000000000A001400E4D61726769 + 6E732E426F74746F6D05000000000000008000400A53697A652E576964746805 + 00000000000000FC04400B53697A652E4865696768740500000000000000B003 + 401453697A652E506C6174666F726D44656661756C7408165465787453657474 + 696E67732E466F6E74436F6C6F720708636C6157686974650000005450463007 + 544C61796F757400095374796C654E616D6506106C697374626F786974656D73 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 0000000000D605400B53697A652E4865696768740500000000000000C0034014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F72646572020B000654476C79706800095374796C654E616D65060A676C + 7970687374796C650C4D617267696E732E4C6566740500000000000000800040 + 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E + 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F05416C69676E07044C6566740A506F736974696F6E2E + 5805000000000000008000400A506F736974696F6E2E59050000000000000080 + FF3F0A53697A652E576964746805000000000000008003400B53697A652E4865 + 696768740500000000000000B003401453697A652E506C6174666F726D446566 + 61756C7408000005545465787400095374796C654E616D650604746578740541 + 6C69676E0706436C69656E740748697454657374080C4D617267696E732E4C65 + 66740500000000000000C000400B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E52696768740500000000000000C000400E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A53697A652E576964 + 74680500000000000000CA05400B53697A652E48656967687405000000000000 + 00B003401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974651554657874 + 53657474696E67732E576F72645772617008165465787453657474696E67732E + 486F727A416C69676E07074C656164696E6700000954436865636B426F780009 + 5374796C654E616D650605636865636B05416C69676E07084D6F73744C656674 + 0843616E466F637573081244697361626C65466F637573456666656374090A53 + 697A652E57696474680500000000000000A003400B53697A652E486569676874 + 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 + 080756697369626C65080000005450463007544C61796F757400095374796C65 + 4E616D6506126C697374626F78706C61696E68656164657205416C69676E0706 + 43656E7465720A53697A652E576964746805000000000000009205400B53697A 652E4865696768740500000000000000D003401453697A652E506C6174666F72 - 6D44656661756C7408000554506174680005416C69676E070643656E74657209 - 446174612E506174680A34000000040000000000000000000000000000000100 - 0000000000000000803F010000000000803F0000003F03000000000000000000 - 00000A46696C6C2E436F6C6F720708636C615768697465064C6F636B65640907 - 48697454657374080A53697A652E57696474680500000000000000E001400B53 - 697A652E48656967687405000000000000008002401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 - 005450463007544C61796F757400095374796C654E616D6506126D656E757365 - 70617261746F727374796C6505416C69676E070643656E7465720C4D61726769 - 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 - FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F72646572021C0005544C696E650005416C6967 - 6E0703546F70084C696E65547970650703546F700C4D617267696E732E4C6566 - 740500000000000000C000400B4D617267696E732E546F700500000000000000 - 8000400D4D617267696E732E52696768740500000000000000C000400A506F73 - 6974696F6E2E580500000000000000C000400A506F736974696F6E2E59050000 - 00000000008000400A53697A652E57696474680500000000000000B004400B53 - 697A652E486569676874050000000000000080FF3F1453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 353135000000545046300A5452656374616E676C6500095374796C654E616D65 - 060D6D656E75766965777374796C6505416C69676E070643656E7465720A4669 + 6D44656661756C74080756697369626C6508085461624F72646572020C000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 324432443244064C6F636B6564090748697454657374080A53697A652E576964 + 746805000000000000009205400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350758526164697573050000000000 + 0000C0004007595261646975730500000000000000C000400000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 + 0000000000A001400B4D617267696E732E546F7005000000000000008000400D + 4D617267696E732E52696768740500000000000000A001400E4D617267696E73 + 2E426F74746F6D05000000000000008000400A53697A652E5769647468050000 + 0000000000FC04400B53697A652E4865696768740500000000000000B0034014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E + 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C + 61796F757400095374796C654E616D65060C6C697374626F787374796C650541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000FFFFE9 + 05400B53697A652E48656967687405000000000000008306401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 72020D000C5442727573684F626A65637400095374796C654E616D650618416C + 7465726E6174696E67526F774261636B67726F756E640B42727573682E436F6C + 6F72070978464632433243324300000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 + 730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 + 48697454657374080C50616464696E672E4C6566740500000000000000800040 + 0B50616464696E672E546F7005000000000000008000400D50616464696E672E + 526967687405000000000000008000400E50616464696E672E426F74746F6D05 + 000000000000008000400A53697A652E5769647468050000000000FFFFE90540 + 0B53697A652E48656967687405000000000000008306401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 353135313507585261646975730500000000000000C000400759526164697573 + 0500000000000000C000400007544C61796F757400095374796C654E616D6506 + 07636F6E74656E7405416C69676E0706436C69656E740C436C69704368696C64 + 72656E090A53697A652E5769647468050000000000FFFFC105400B53697A652E + 4865696768740500000000000000DE05401453697A652E506C6174666F726D44 + 656661756C7408000A5452656374616E676C6500095374796C654E616D650609 + 73656C656374696F6E0A46696C6C2E436F6C6F72070978464632413832453207 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852 + 61646975730500000000000000C0004007595261646975730500000000000000 + C0004000000A5452656374616E676C6500095374796C654E616D650610666F63 + 7573656473656C656374696F6E0A46696C6C2E436F6C6F720709784646324138 + 3245320748697454657374080A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650B5374726F6B652E446173680703446F740758526164697573050000000000 + 0000C0004007595261646975730500000000000000C000400000000A54536372 + 6F6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C + 69676E070552696768740B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E + 2E58050000000000FFFFC505400A506F736974696F6E2E590500000000000000 + 8000400A53697A652E576964746805000000000000008003400B53697A652E48 + 65696768740500000000000000DE05401453697A652E506C6174666F726D4465 + 6661756C740800000A545363726F6C6C42617200095374796C654E616D65060A + 687363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368 + 616E676505000000000000000000000B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0A506F736974696F6E2E5805000000000000008000400A506F + 736974696F6E2E590500000000000000E205400A53697A652E57696474680500 + 00000000FFFFE105400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000F54536D616C6C53 + 63726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C + 6C62617205416C69676E070552696768740B536D616C6C4368616E6765050000 + 00000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D + 617267696E732E4C65667405000000000000008000400A506F736974696F6E2E + 580500000000000000C605400A506F736974696F6E2E59050000000000000080 + 00400A53697A652E576964746805000000000000008002400B53697A652E4865 + 6967687405000000000000008002401453697A652E506C6174666F726D446566 + 61756C74080756697369626C650800000F54536D616C6C5363726F6C6C426172 + 00095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69 + 676E0706426F74746F6D0B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E + 732E546F7005000000000000008000400A506F736974696F6E2E580500000000 + 0000008000400A506F736974696F6E2E590500000000000000E205400A53697A + 652E576964746805000000000000009606400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000000005450463007544C61796F757400095374796C654E + 616D65060E706F70757063656C6C7374796C6505416C69676E070643656E7465 + 720756697369626C6508085461624F72646572020E0007544C61796F75740005 + 416C69676E070552696768740A506F736974696F6E2E5805000000000000008C + 04400A53697A652E57696474680500000000000000F002400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C7408000554506174680005416C69676E070643656E7465720944617461 + 2E506174680A400000000500000000000000000000000000803F010000000000 + 803F0000803F010000000000003F0000000001000000000000000000803F0300 + 000000000000000000000A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080B4D617267696E732E546F700500000000000000E001C00A + 53697A652E576964746805000000000000008002400B53697A652E4865696768 + 7405000000000000008001401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000554506174680005416C + 69676E070643656E74657209446174612E506174680A34000000040000000000 + 00000000000000000000010000000000803F00000000010000000000003F0000 + 803F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080B4D617267696E732E546F700500000000000000 + C001400A53697A652E576964746805000000000000008002400B53697A652E48 + 656967687405000000000000008001401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000554546578 + 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 000000000000A001400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E52696768740500000000000000A001400E4D617267696E + 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 + 000000000000C803400B53697A652E4865696768740500000000000000B80440 + 1453697A652E506C6174666F726D44656661756C740816546578745365747469 + 6E67732E466F6E74436F6C6F720708636C615768697465000000545046300754 + 4C61796F757400095374796C654E616D65061070726F67726573736261727374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 000033338505400B53697A652E4865696768740500000000009999E104401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F72646572020F000A5452656374616E676C6500095374796C654E616D6506 + 0668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F720709784646323032303230064C6F636B6564090748697454657374080A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F72070978464631353135313507585261646975 + 730500000000000000C0004007595261646975730500000000000000C0004000 + 0A5452656374616E676C6500095374796C654E616D65060A68696E6469636174 + 6F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207097846463241 + 38324532064C6F636B6564090748697454657374080C4D617267696E732E4C65 + 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E + 2E58050000000000000080FF3F0A506F736974696F6E2E590500000000000000 + 80FF3F0A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000009999D904401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 + 0500000000000000C0004007595261646975730500000000000000C000400000 + 000A5452656374616E676C6500095374796C654E616D65060676747261636B05 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 + 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000033338505400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135075852616469757305000000000000 + 00C0004007595261646975730500000000000000C00040000A5452656374616E + 676C6500095374796C654E616D65060A76696E64696361746F7205416C69676E + 0706426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000 + 0000000080FF3F0A506F736974696F6E2E5905000000000099998904400A5369 + 7A652E576964746805000000000033338105400B53697A652E48656967687405 + 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 + 0000C0004007595261646975730500000000000000C000400000000054504630 + 07544C61796F757400095374796C654E616D65061170726F677265737363656C + 6C7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000F805400B53697A652E4865696768740500000000000000FC05 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F7264657202100007544C61796F757400095374796C654E616D6506 + 0668747261636B05416C69676E0708436F6E74656E7473064C6F636B6564090C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 + 400A53697A652E57696474680500000000000000F005400B53697A652E486569 + 6768740500000000000000F405401453697A652E506C6174666F726D44656661 + 756C7408000A5452656374616E676C6500095374796C654E616D65060A68696E + 64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F720709 + 784646324138324532064C6F636B6564090748697454657374080C4D61726769 + 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 + 0000000000008000400D4D617267696E732E5269676874050000000000000080 + 00400E4D617267696E732E426F74746F6D05000000000000008000400A506F73 + 6974696F6E2E5805000000000000008000400A506F736974696F6E2E59050000 + 00000000008000400A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000EC05401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852 + 61646975730500000000000000C0004007595261646975730500000000000000 + C0004000000000545046300A5452656374616E676C6500095374796C654E616D + 6506147363726F6C6C62617268747261636B7374796C6505416C69676E070643 + 656E7465720A46696C6C2E436F6C6F7207097846463135313531350748697454 + 657374080A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C + 65080006545468756D6200095374796C654E616D6506057468756D62064C6F63 + 6B6564090A53697A652E576964746805000000000000008003400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B7570060A7468756D627374796C6500 + 00005450463007544C61796F757400095374796C654E616D65060E7363726F6C + 6C6261727374796C6505416C69676E070643656E7465720756697369626C6508 + 085461624F726465720211000754427574746F6E00095374796C654E616D6506 + 0A6C656674627574746F6E05416C69676E07044C656674064C6F636B6564090A + 506F736974696F6E2E5905000000000000008003400A53697A652E5769647468 + 05000000000000008003400B53697A652E486569676874050000000000000090 + 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B757006137363726F6C6C6261726C656674627574746F6E00000754427574 + 746F6E00095374796C654E616D65060B7269676874627574746F6E05416C6967 + 6E07055269676874064C6F636B6564090A506F736974696F6E2E580500000000 + 0000008804400A506F736974696F6E2E5905000000000000008003400A53697A + 652E576964746805000000000000008003400B53697A652E4865696768740500 + 0000000000009003401453697A652E506C6174666F726D44656661756C74080B + 5374796C654C6F6F6B757006147363726F6C6C6261727269676874627574746F + 6E00000754427574746F6E00095374796C654E616D65060C626F74746F6D6275 + 74746F6E05416C69676E0706426F74746F6D064C6F636B6564090A506F736974 + 696F6E2E5905000000000000008804400A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000800340145369 + 7A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006 + 157363726F6C6C626172626F74746F6D627574746F6E00000654547261636B00 + 095374796C654E616D65060668747261636B05416C69676E0706436C69656E74 + 064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C + 0A53697A652E576964746805000000000000009003400B53697A652E48656967 + 687405000000000000009003401453697A652E506C6174666F726D4465666175 + 6C74080B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B + 7374796C6500000654547261636B00095374796C654E616D6506067674726163 + 6B05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E746174 + 696F6E070A486F72697A6F6E74616C0A53697A652E5769647468050000000000 + 00009003400B53697A652E48656967687405000000000000009003401453697A + 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75700614 + 7363726F6C6C62617276747261636B7374796C6500000754427574746F6E0009 + 5374796C654E616D650609746F70627574746F6E05416C69676E0703546F700A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 7405000000000000008003401453697A652E506C6174666F726D44656661756C + 74080B5374796C654C6F6F6B757006127363726F6C6C626172746F7062757474 + 6F6E000000545046300A5452656374616E676C6500095374796C654E616D6506 + 147363726F6C6C62617276747261636B7374796C6505416C69676E070643656E + 7465720A46696C6C2E436F6C6F72070978464631353135313507486974546573 + 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508 + 0006545468756D6200095374796C654E616D6506057468756D62064C6F636B65 + 64090A53697A652E57696474680500000000000000C804400B53697A652E4865 + 6967687405000000000000008003401453697A652E506C6174666F726D446566 + 61756C74080B5374796C654C6F6F6B7570060A7468756D627374796C65000000 + 5450463007544C61796F757400095374796C654E616D65060C7370696E626F78 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 000000006666E005400B53697A652E4865696768740500000000000000C00340 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F726465720212000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 6C6C2E436F6C6F7207097846463230323032300A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80440 + 000000006666E005400B53697A652E4865696768740500000000000000C00340 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F7207097846463135313531350756697369626C6508000A5452656374616E - 676C650005416C69676E0706436C69656E740A46696C6C2E436F6C6F72070978 - 46463230323032300748697454657374080A53697A652E576964746805000000 + 6C6F72070978464631353135313507585261646975730500000000000000C000 + 4007595261646975730500000000000000C00040000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E + 315374796C65084475726174696F6E050000000000000000000007496E766572 + 7365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53 + 7461727456616C756507097846463135313531350953746F7056616C75650709 + 7846463430343034300754726967676572061049734D6F7573654F7665723D74 + 7275650E54726967676572496E7665727365061149734D6F7573654F7665723D + 66616C73650000000C5442727573684F626A65637400095374796C654E616D65 + 060A666F726567726F756E640B42727573682E436F6C6F720709784646454145 + 41454100000C5442727573684F626A65637400095374796C654E616D65060973 + 656C656374696F6E0B42727573682E436F6C6F72070978393632413832453200 + 0007544C61796F757400095374796C654E616D650607636F6E74656E7405416C + 69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C656674 + 05000000000000008000400B4D617267696E732E546F70050000000000000080 + 00400D4D617267696E732E526967687405000000000000008000400E4D617267 + 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 + 050000000000E1CCF004400B53697A652E4865696768740500000000000000A0 + 03401453697A652E506C6174666F726D44656661756C74080000075442757474 + 6F6E00095374796C654E616D65060B6D696E7573627574746F6E05416C69676E + 07044C6566740843616E466F6375730806437572736F72070763724172726F77 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 + 00400A506F736974696F6E2E5805000000000000008000400A506F736974696F + 6E2E5905000000000000008000400A53697A652E5769647468050000000000E6 + FF9F03400B53697A652E4865696768740500000000000000A003401453697A65 + 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060B62 + 7574746F6E7374796C65000554506174680005416C69676E070643656E746572 + 09446174612E506174680A4000000005000000000000000000803F0000000001 + 0000000000803F0000803F01000000000000000000003F010000000000803F00 + 000000030000000000803F000000000A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080A53697A652E576964746805000000000098FF + FF01400B53697A652E48656967687405000000000000008002401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E650000000754427574746F6E00095374796C654E616D65060A706C75736275 + 74746F6E05416C69676E070552696768740843616E466F637573080643757273 + 6F72070763724172726F770C4D617267696E732E4C6566740500000000000000 + 8000400B4D617267696E732E546F7005000000000000008000400D4D61726769 + 6E732E526967687405000000000000008000400E4D617267696E732E426F7474 + 6F6D05000000000000008000400A506F736974696F6E2E580500000000006A66 + B405400A506F736974696F6E2E5905000000000000008000400A53697A652E57 + 69647468050000000000F0FF9F03400B53697A652E4865696768740500000000 + 000000A003401453697A652E506C6174666F726D44656661756C74080B537479 + 6C654C6F6F6B7570060B627574746F6E7374796C65000554506174680005416C + 69676E070643656E74657209446174612E506174680A34000000040000000000 + 0000000000000000000001000000000000000000803F010000000000803F0000 + 003F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080A53697A652E5769647468050000000000C0FFFF + 01400B53697A652E48656967687405000000000000008002401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6500000000545046300D545377697463684F626A65637400095374796C654E61 + 6D65060B7377697463687374796C6505416C69676E070643656E746572044B69 + 6E64070C466164696E67547261636B730A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C7408085461624F7264657202131254 + 7261636B696E675468756D625363616C65050000000000000080FF3F07566973 + 69626C65080A46696C6C2E436F6C6F7207097846463230323032300C46696C6C + 4F6E2E436F6C6F7207097846463137353739430B46696C6C4F6E2E4B696E6407 + 05536F6C69640B5374726F6B652E4B696E6407044E6F6E650B5468756D622E43 + 6F6C6F7207097846463430343034300D5468756D624F6E2E436F6C6F72070978 + 46463241383245320C5468756D624F6E2E4B696E640705536F6C696410546875 + 6D625374726F6B652E4B696E6407044E6F6E650F5468756D625374726F6B652E + 4361700705526F756E64105468756D625374726F6B652E446173680706437573 + 746F6D105468756D625374726F6B652E4A6F696E0705526F756E64165468756D + 625374726F6B652E437573746F6D446173680A08000000000000000000000005 + 53686170650709526F756E645265637400005450463007544C61796F75740009 + 5374796C654E616D65060F746162636F6E74726F6C7374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000000008E06400B53 + 697A652E486569676874050000000000FFFFC905401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572021400 + 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E747307436F726E6572730B08546F7052 + 696768740A426F74746F6D4C6566740B426F74746F6D5269676874000A46696C + 6C2E436F6C6F720709784646333033303330064C6F636B656409074869745465 + 7374080C50616464696E672E4C65667405000000000000008000400B50616464 + 696E672E546F7005000000000000008000400D50616464696E672E5269676874 + 05000000000000008000400E50616464696E672E426F74746F6D050000000000 + 00008000400A53697A652E576964746805000000000000008E06400B53697A65 + 2E486569676874050000000000FFFFC905401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C00040000000545046300A5452656374616E676C6500095374796C654E + 616D65060B746162646F747374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650756697369626C65080758526164 + 6975730500000000000000C8034007595261646975730500000000000000C803 + 40000F54436F6C6F72416E696D6174696F6E00084475726174696F6E05000000 + 000018B7D1F23F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463135313531350953746F7056616C7565 + 07097846463241383245320754726967676572060F497353656C65637465643D + 747275650E54726967676572496E76657273650610497353656C65637465643D + 66616C73650000005450463007544C61796F757400095374796C654E616D6506 + 0C7461626974656D7374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F726465720215000A5452656374616E676C650009 + 5374796C654E616D650603746F7005416C69676E0708436F6E74656E74730C43 + 6C69704368696C6472656E0907436F726E6572730B07546F704C65667408546F + 705269676874000A46696C6C2E436F6C6F720709784646323032303230064C6F + 636B6564090748697454657374080553696465730B03546F70044C6566740552 + 69676874000A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C00040000654476C79706800095374796C654E616D65060A676C797068 + 7374796C650C4D617267696E732E4C65667405000000000000008001400D4D61 + 7267696E732E526967687405000000000000008001C005416C69676E07044C65 + 66740A506F736974696F6E2E5805000000000000008001400A53697A652E5769 + 64746805000000000000008003400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C74080000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E74064C6F636B6564090748697454657374080C4D617267696E732E4C656674 + 0500000000000000C000400B4D617267696E732E546F700500000000000000C0 + 00400D4D617267696E732E52696768740500000000000000C000400E4D617267 + 696E732E426F74746F6D0500000000000000C000400A53697A652E5769647468 + 0500000000000000B004400B53697A652E486569676874050000000000000098 + 03401453697A652E506C6174666F726D44656661756C74081654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746515546578745365 + 7474696E67732E576F7264577261700800000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650612746162436F6C6F72416E696D6174696F6E + 310D416E696D6174696F6E547970650705496E4F7574084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062149734D6F7573654F + 7665723D747275653B497353656C65637465643D66616C73650E547269676765 + 72496E7665727365062249734D6F7573654F7665723D66616C73653B49735365 + 6C65637465643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650612746162436F6C6F72416E696D6174696F6E32084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 0953746F7056616C756507097846463241383245320754726967676572060F49 + 7353656C65637465643D747275650E54726967676572496E7665727365061049 + 7353656C65637465643D66616C7365000000005450463007544C61796F757400 + 095374796C654E616D65060D7465787463656C6C7374796C6505416C69676E07 + 0643656E7465720756697369626C6508085461624F7264657202160007544C61 + 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0708 + 436F6E74656E7473064C6F636B6564090C4D617267696E732E4C656674050000 + 00000000008001400B4D617267696E732E546F7005000000000000008001400D + 4D617267696E732E526967687405000000000000008001400E4D617267696E73 + 2E426F74746F6D05000000000000008001400A53697A652E5769647468050000 + 0000000000A804400B53697A652E4865696768740500000000000000A8044014 + 53697A652E506C6174666F726D44656661756C740800000C5442727573684F62 + 6A65637400095374796C654E616D65060A666F726567726F756E6400000C5442 + 727573684F626A65637400095374796C654E616D65060973656C656374696F6E + 0B42727573682E436F6C6F72070978393632413832453200000B54466F6E744F + 626A65637400095374796C654E616D650604666F6E7400000054504630075443 + 6972636C6500095374796C654E616D65060D7468756D626261727374796C6505 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646324138 + 3245320748697454657374080A53697A652E57696474680500000000000000A0 + 03400B53697A652E4865696768740500000000000000A003401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 463135313531350756697369626C6508000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F + 6E31084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 41383245320953746F7056616C75650709784646313735373943075472696767 + 6572061F4973507265737365643D747275653B49734D6F7573654F7665723D74 + 7275650E54726967676572496E766572736506104973507265737365643D6661 + 6C73653B00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 6506147468756D62436F6C6F72416E696D6174696F6E32084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 + 616C756507097846463430394246460754726967676572062049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 + 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 + 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D6506157468756D625374726F6B65416E696D6174696F6E3108 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 + 313531350953746F7056616C7565070978464631373537394307547269676765 + 72061F4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 75650E54726967676572496E7665727365060F4973507265737365643D66616C + 7365000000545046300A5452656374616E676C6500095374796C654E616D6506 + 0A7468756D627374796C6505416C69676E070643656E7465720A46696C6C2E43 + 6F6C6F7207097846463444344434440748697454657374080A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000C804401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463444344434440953746F7056616C75650709784646313735373943 + 0754726967676572060E4973507265737365643D747275650E54726967676572 + 496E7665727365060F4973507265737365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D + 6174696F6E315374796C65084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463444344434440953746F7056616C75650707636C61477261 + 790754726967676572061049734D6F7573654F7665723D747275650E54726967 + 676572496E7665727365061149734D6F7573654F7665723D66616C7365000000 + 5450463007544C61796F757400095374796C654E616D65060D747261636B6261 + 727374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C805 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F7264657202170B46697865644865696768740211000A5452656374 + 616E676C6500095374796C654E616D65060668747261636B05416C69676E070A + 5665727443656E7465720A46696C6C2E436F6C6F720709784646313531353135 + 0748697454657374080A506F736974696F6E2E590500000000000000BC04400A + 53697A652E57696474680500000000000000C805400B53697A652E4865696768 + 740500000000000000A001401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 + 00000000A0004007595261646975730500000000000000A00040000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65064C6F + 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 + 000000C001400B4D617267696E732E546F70050000000000000080FF3F0D4D61 + 7267696E732E52696768740500000000000000C001400E4D617267696E732E42 + 6F74746F6D050000000000000080FF3F0A53697A652E57696474680500000000 + 000000B005400B53697A652E4865696768740500000000000000C00040145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E6507585261646975730500000000000000C0FF3F0759526164697573 + 0500000000000000C0FF3F00000A5452656374616E676C6500095374796C654E + 616D650609686967686C6967687405416C69676E07044C6566740A46696C6C2E + 436F6C6F7207097846463241383245320748697454657374080C50616464696E + 672E4C6566740500000000000000A002400A53697A652E576964746805000000 + 00000000F003400B53697A652E4865696768740500000000000000A001401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6507585261646975730500000000000000A0004007595261646975 + 730500000000000000A0004000000B54476C6F774566666563740008536F6674 + 6E657373050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846463241 + 38324532074F706163697479050000000000000080FF3F07456E61626C656408 + 0000000A5452656374616E676C6500095374796C654E616D6506067674726163 + 6B05416C69676E070A486F727A43656E7465720A46696C6C2E436F6C6F720709 + 7846463135313531350748697454657374080A506F736974696F6E2E58050000 + 0000000000BC04400A53697A652E57696474680500000000000000A001400B53 + 697A652E4865696768740500000000000000C805401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852 + 61646975730500000000000000A0004007595261646975730500000000000000 + A00040000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E64 + 07044E6F6E65064C6F636B6564090748697454657374080C4D617267696E732E + 4C6566740500000000000000C001400B4D617267696E732E546F700500000000 + 00000080FF3F0D4D617267696E732E52696768740500000000000000C001400E + 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 + 6964746805000000000000000000000B53697A652E4865696768740500000000 + 000000C405401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009537479 + 6C654E616D650609686967686C6967687405416C69676E0703546F700A46696C + 6C2E436F6C6F7207097846463241383245320748697454657374080A53697A65 + 2E57696474680500000000000000A001400B53697A652E486569676874050000 + 0000000000F003401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + A0004007595261646975730500000000000000A0004000000B54476C6F774566 + 666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F + 6C6F720709784646324138324532074F706163697479050000000000000080FF + 3F07456E61626C65640800000006545468756D6200095374796C654E616D6506 + 06687468756D62064C6F636B6564090A506F736974696F6E2E58050000000000 + 3033AB03400A506F736974696F6E2E59050000000000FFFFA304400A53697A65 + 2E57696474680500000000000000F002400B53697A652E486569676874050000 + 0000000000F002401453697A652E506C6174666F726D44656661756C74080B53 + 74796C654C6F6F6B7570060D7468756D626261727374796C6500000654546875 + 6D6200095374796C654E616D650606767468756D62064C6F636B6564090A506F + 736974696F6E2E58050000000000CBCCA804400A506F736974696F6E2E590500 + 000000009899B103400A53697A652E57696474680500000000000000F002400B + 53697A652E4865696768740500000000000000F002401453697A652E506C6174 + 666F726D44656661756C74080B5374796C654C6F6F6B7570060D7468756D6262 + 61727374796C650000005450463007544C61796F757400095374796C654E616D + 6506096D656D6F7374796C6505416C69676E070643656E7465720A53697A652E + 5769647468050000000000CCCC8806400B53697A652E48656967687405000000 + 00006666F405401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F726465720218000C5442727573684F626A65637400 + 095374796C654E616D65060A666F726567726F756E6400000C5442727573684F + 626A65637400095374796C654E616D65060973656C656374696F6E0B42727573 + 682E436F6C6F72070978374634343735394400000B54466F6E744F626A656374 + 00095374796C654E616D650604666F6E7400000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080A53697A652E5769647468050000000000CCCC8806400B53697A652E + 4865696768740500000000006666F405401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C000400007544C61796F757400095374796C654E616D650607636F6E7465 + 6E7405416C69676E0706436C69656E740C4D617267696E732E4C656674050000 + 00000000008000400B4D617267696E732E546F7005000000000000008000400D + 4D617267696E732E526967687405000000000000008000400E4D617267696E73 + 2E426F74746F6D05000000000000008000400A53697A652E5769647468050000 + 0000009899E905400B53697A652E4865696768740500000000006666CC054014 + 53697A652E506C6174666F726D44656661756C740800000A545363726F6C6C42 + 617200095374796C654E616D65060A687363726F6C6C62617205416C69676E07 + 06426F74746F6D06437572736F72070763724172726F770B536D616C6C436861 + 6E676505000000000000000000000B4F7269656E746174696F6E070A486F7269 + 7A6F6E74616C0A506F736974696F6E2E590500000000006666D405400A53697A + 652E5769647468050000000000CCCC8806400B53697A652E4865696768740500 + 0000000000008003401453697A652E506C6174666F726D44656661756C740800 + 000A545363726F6C6C42617200095374796C654E616D65060A767363726F6C6C + 62617205416C69676E0705526967687406437572736F72070763724172726F77 + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E0708566572746963616C0A506F736974696F6E2E580500000000009899 + F105400A53697A652E576964746805000000000000008003400B53697A652E48 + 65696768740500000000006666D405401453697A652E506C6174666F726D4465 + 6661756C7408000007544C61796F75740005416C69676E0706436C69656E740A + 53697A652E57696474680500000000009899F105400B53697A652E4865696768 + 740500000000006666D405401453697A652E506C6174666F726D44656661756C + 7408000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F + 76736D616C6C7363726F6C6C62617205416C69676E0705526967687406437572 + 736F72070763724172726F770B536D616C6C4368616E67650500000000000000 + 0000000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E + 732E4C65667405000000000000008000400A53697A652E576964746805000000 + 000000008002400B53697A652E48656967687405000000000000008002401453 + 697A652E506C6174666F726D44656661756C74080756697369626C650800000F + 54536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D61 + 6C6C7363726F6C6C62617205416C69676E0706426F74746F6D06437572736F72 + 070763724172726F770B536D616C6C4368616E67650500000000000000000000 + 0B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E73 + 2E546F7005000000000000008000400A53697A652E5769647468050000000000 + 00009606400B53697A652E48656967687405000000000000008002401453697A + 652E506C6174666F726D44656661756C74080756697369626C65080000000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D6506146D656D6F53 + 74726F6B65416E696D6174696F6E31084475726174696F6E0500000000000000 + 00000007496E7665727365090C50726F70657274794E616D65060C5374726F6B + 652E436F6C6F720A537461727456616C75650709784646313531353135095374 + 6F7056616C756507097846463430343034300754726967676572062049734D6F + 7573654F7665723D747275653B4973466F63757365643D66616C73650E547269 + 67676572496E7665727365062149734D6F7573654F7665723D66616C73653B49 + 73466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D6506146D656D6F5374726F6B65416E696D6174696F6E + 32084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D65060C5374726F6B652E436F6C6F720A537461727456616C75650709784646 + 3430343034300953746F7056616C756507097846463241383245320754726967 + 676572060E4973466F63757365643D747275650E54726967676572496E766572 + 7365060F4973466F63757365643D66616C7365000000005450463007544C6179 + 6F757400095374796C654E616D65060D73697A65677269707374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000C803 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 0219000A5452656374616E676C6500095374796C654E616D65060A5265637461 + 6E676C653105416C69676E070643656E7465720A46696C6C2E436F6C6F720709 + 7846463630363036300A53697A652E57696474680500000000000000A000400B + 53697A652E4865696768740500000000000000A000401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0A5452656374616E676C6500095374796C654E616D65060A52656374616E676C + 653205416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 + 3630363036300C4D617267696E732E4C6566740500000000000000A002400A53 + 697A652E57696474680500000000000000A000400B53697A652E486569676874 + 0500000000000000A000401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653305416C69676E070643 + 656E7465720A46696C6C2E436F6C6F7207097846463630363036300C4D617267 + 696E732E4C6566740500000000000000A002400B4D617267696E732E546F7005 + 00000000000000A002400A53697A652E57696474680500000000000000A00040 + 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 + 6C653405416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463630363036300B4D617267696E732E546F700500000000000000A002400A53 + 697A652E57696474680500000000000000A000400B53697A652E486569676874 + 0500000000000000A000401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653505416C69676E070643 + 656E7465720A46696C6C2E436F6C6F7207097846463630363036300B4D617267 + 696E732E546F700500000000000000A002400D4D617267696E732E5269676874 + 0500000000000000A002400A53697A652E57696474680500000000000000A000 + 400B53697A652E4865696768740500000000000000A000401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 00000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653605416C69676E070643656E7465720A46696C6C2E436F6C6F72070978 + 46463630363036300C4D617267696E732E4C6566740500000000000000A00240 + 0E4D617267696E732E426F74746F6D0500000000000000A002400A53697A652E + 57696474680500000000000000A000400B53697A652E48656967687405000000 + 00000000A000401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000000545046300A5452656374616E676C + 6500095374796C654E616D65060E7374617475736261727374796C6505416C69 + 676E070643656E7465720C436C69704368696C6472656E090A46696C6C2E436F + 6C6F7207097846463235323532350553696465730B03546F70000A53697A652E + 57696474680500000000000000F004400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F7207097846463135313531350756697369626C65080007 + 544C61796F757400095374796C654E616D6506074C61796F75743105416C6967 + 6E070552696768740A506F736974696F6E2E5805000000000000008C04400A53 + 697A652E57696474680500000000000000C803400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 0800095453697A654772697000095374796C654E616D65060973697A65677267 + 697005416C69676E0706426F74746F6D0A506F736974696F6E2E590500000000 + 000000C803400A53697A652E57696474680500000000000000C803400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C740800000000545046300A5452656374616E676C6500095374 + 796C654E616D65060C746F6F6C6261727374796C6505416C69676E070643656E + 7465720A46696C6C2E436F6C6F72070978464632353235323507486974546573 + 74080553696465730B06426F74746F6D000A53697A652E576964746805000000 00000000C804400B53697A652E4865696768740500000000000000C804401453 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 720709784646313531353135000D54536861646F774566666563740008446973 - 74616E63650500000000000000C0004009446972656374696F6E050000000000 - 0000B4044008536F66746E657373050000000000000080FE3F074F7061636974 - 79050000000000000080FE3F0B536861646F77436F6C6F720708636C61426C61 - 636B00000007544C61796F757400095374796C654E616D650607636F6E74656E - 7405416C69676E0706436C69656E740C4D617267696E732E4C65667405000000 - 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D - 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E - 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 - 00000000C004400B53697A652E4865696768740500000000000000C004401453 - 697A652E506C6174666F726D44656661756C74080000005450463007544C6179 - 6F757400095374796C654E616D65060E696D61676563656C6C7374796C650541 - 6C69676E070643656E7465720756697369626C6508085461624F72646572021D - 000654496D61676500095374796C654E616D650605696D6167650E4D756C7469 - 5265734269746D61700E01000005416C69676E0706436C69656E74064C6F636B - 6564090748697454657374080C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 - 00C004400B53697A652E4865696768740500000000000000C004401453697A65 - 2E506C6174666F726D44656661756C74080000005450463007544C61796F7574 - 00095374796C654E616D65060E706F70757063656C6C7374796C6505416C6967 - 6E070643656E7465720756697369626C6508085461624F72646572021E000754 - 4C61796F75740005416C69676E070552696768740A506F736974696F6E2E5805 - 000000000000008C04400A53697A652E57696474680500000000000000F00240 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C7408000554506174680005416C69676E070643656E - 74657209446174612E506174680A400000000500000000000000000000000000 - 803F010000000000803F0000803F010000000000003F00000000010000000000 - 00000000803F0300000000000000000000000A46696C6C2E436F6C6F72070863 - 6C6157686974650748697454657374080B4D617267696E732E546F7005000000 - 00000000E001C00A53697A652E576964746805000000000000008002400B5369 - 7A652E48656967687405000000000000008001401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000554 - 506174680005416C69676E070643656E74657209446174612E506174680A3400 - 000004000000000000000000000000000000010000000000803F000000000100 - 00000000003F0000803F0300000000000000000000000A46696C6C2E436F6C6F - 720708636C6157686974650748697454657374080B4D617267696E732E546F70 - 0500000000000000C001400A53697A652E576964746805000000000000008002 - 400B53697A652E48656967687405000000000000008001401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 00000005545465787400095374796C654E616D6506047465787405416C69676E - 0706436C69656E74064C6F636B6564090748697454657374080C4D617267696E - 732E4C6566740500000000000000A001400B4D617267696E732E546F70050000 - 00000000008000400D4D617267696E732E52696768740500000000000000A001 - 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 - 2E57696474680500000000000000C803400B53697A652E486569676874050000 - 0000000000B804401453697A652E506C6174666F726D44656661756C74081654 - 65787453657474696E67732E466F6E74436F6C6F720708636C61576869746500 - 00005450463007544C61796F757400095374796C654E616D65060D7465787463 - 656C6C7374796C6505416C69676E070643656E7465720756697369626C650808 - 5461624F72646572021F0007544C61796F757400095374796C654E616D650607 - 636F6E74656E7405416C69676E0708436F6E74656E7473064C6F636B6564090C - 4D617267696E732E4C65667405000000000000008001400B4D617267696E732E - 546F7005000000000000008001400D4D617267696E732E526967687405000000 - 000000008001400E4D617267696E732E426F74746F6D05000000000000008001 - 400A53697A652E57696474680500000000000000A804400B53697A652E486569 - 6768740500000000000000A804401453697A652E506C6174666F726D44656661 - 756C740800000C5442727573684F626A65637400095374796C654E616D65060A - 666F726567726F756E6400000C5442727573684F626A65637400095374796C65 - 4E616D65060973656C656374696F6E0B42727573682E436F6C6F720709783936 - 32413832453200000B54466F6E744F626A65637400095374796C654E616D6506 - 04666F6E740000005450463007544C61796F757400095374796C654E616D6506 - 096D656D6F7374796C6505416C69676E070643656E7465720A53697A652E5769 - 647468050000000000CCCC8806400B53697A652E486569676874050000000000 - 6666F405401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F726465720220000C5442727573684F626A656374000953 - 74796C654E616D65060A666F726567726F756E6400000C5442727573684F626A - 65637400095374796C654E616D65060973656C656374696F6E0B42727573682E - 436F6C6F72070978374634343735394400000B54466F6E744F626A6563740009 - 5374796C654E616D650604666F6E7400000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F72070978464632303230323007486974546573 - 74080A53697A652E5769647468050000000000CCCC8806400B53697A652E4865 - 696768740500000000006666F405401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000754 - 4C61796F757400095374796C654E616D650607636F6E74656E7405416C69676E - 0706436C69656E740C4D617267696E732E4C6566740500000000000000800040 - 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 - 000000000000008000400A53697A652E57696474680500000000009899E90540 - 0B53697A652E4865696768740500000000006666CC05401453697A652E506C61 - 74666F726D44656661756C740800000A545363726F6C6C42617200095374796C - 654E616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D06 - 437572736F72070763724172726F770B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A50 - 6F736974696F6E2E590500000000006666D405400A53697A652E576964746805 - 0000000000CCCC8806400B53697A652E48656967687405000000000000008003 - 401453697A652E506C6174666F726D44656661756C740800000A545363726F6C - 6C42617200095374796C654E616D65060A767363726F6C6C62617205416C6967 - 6E0705526967687406437572736F72070763724172726F770B536D616C6C4368 - 616E676505000000000000000000000B4F7269656E746174696F6E0708566572 - 746963616C0A506F736974696F6E2E580500000000009899F105400A53697A65 - 2E576964746805000000000000008003400B53697A652E486569676874050000 - 0000006666D405401453697A652E506C6174666F726D44656661756C74080000 - 07544C61796F75740005416C69676E0706436C69656E740A53697A652E576964 - 74680500000000009899F105400B53697A652E48656967687405000000000066 - 66D405401453697A652E506C6174666F726D44656661756C7408000F54536D61 - 6C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C7363 - 726F6C6C62617205416C69676E0705526967687406437572736F720707637241 - 72726F770B536D616C6C4368616E676505000000000000000000000B4F726965 - 6E746174696F6E0708566572746963616C0C4D617267696E732E4C6566740500 - 0000000000008000400A53697A652E576964746805000000000000008002400B - 53697A652E48656967687405000000000000008002401453697A652E506C6174 - 666F726D44656661756C74080756697369626C650800000F54536D616C6C5363 - 726F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C - 62617205416C69676E0706426F74746F6D06437572736F72070763724172726F - 770B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 - 74696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000 - 000000008000400A53697A652E576964746805000000000000009606400B5369 - 7A652E48656967687405000000000000008002401453697A652E506C6174666F - 726D44656661756C74080756697369626C65080000000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D6506146D656D6F5374726F6B65416E69 - 6D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70 - 657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75 - 6507097846463135313531350953746F7056616C756507097846463430343034 - 300754726967676572062049734D6F7573654F7665723D747275653B4973466F - 63757365643D66616C73650E54726967676572496E7665727365062149734D6F - 7573654F7665723D66616C73653B4973466F63757365643D66616C736500000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D6506146D656D6F - 5374726F6B65416E696D6174696F6E32084475726174696F6E050000000000CD - CCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A - 537461727456616C756507097846463430343034300953746F7056616C756507 - 097846463241383245320754726967676572060E4973466F63757365643D7472 - 75650E54726967676572496E7665727365060F4973466F63757365643D66616C - 7365000000005450463007544C61796F757400095374796C654E616D65060E6C - 696E6B6C6162656C7374796C6505416C69676E070643656E7465720A53697A65 + 7207097846463135313531350756697369626C650800005450463007544C6179 + 6F757400095374796C654E616D65061570726F67726573736261726572726F72 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 0000000033338505400B53697A652E4865696768740500000000009999E10440 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F72646572021A000A5452656374616E676C6500095374796C654E616D + 65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E43 + 6F6C6F720709784646323032303230064C6F636B656409074869745465737408 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000009999E104401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F7207097846463135313531350758526164 + 6975730500000000000000C0004007595261646975730500000000000000C000 + 40000A5452656374616E676C6500095374796C654E616D65060A68696E646963 + 61746F7205416C69676E07044C6566740A46696C6C2E436F6C6F720709784646 + 453232413241064C6F636B6564090748697454657374080C4D617267696E732E + 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 + 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E + 4D617267696E732E426F74746F6D050000000000000080FF3F0A506F73697469 + 6F6E2E58050000000000000080FF3F0A506F736974696F6E2E59050000000000 + 000080FF3F0A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000009999D904401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469 + 75730500000000000000C0004007595261646975730500000000000000C00040 + 0000000A5452656374616E676C6500095374796C654E616D6506067674726163 + 6B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 + 46323032303230064C6F636B6564090748697454657374080A53697A652E5769 + 64746805000000000033338505400B53697A652E486569676874050000000000 + 9999E104401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F72070978464631353135313507585261646975730500000000 + 000000C0004007595261646975730500000000000000C00040000A5452656374 + 616E676C6500095374796C654E616D65060A76696E64696361746F7205416C69 + 676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646453232413241 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F + 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E + 732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E580500 + 00000000000080FF3F0A506F736974696F6E2E5905000000000099998904400A + 53697A652E576964746805000000000033338105400B53697A652E4865696768 + 740500000000000000A803401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 + 00000000C0004007595261646975730500000000000000C00040000000005450 + 463007544C61796F757400095374796C654E616D65060E6C696E6B6C6162656C + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 00000000CCCC8006400B53697A652E4865696768740500000000009A99810440 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F72646572021B0005545465787400095374796C654E616D6506047465 + 787405416C69676E0708436F6E74656E74730748697454657374080A53697A65 2E5769647468050000000000CCCC8006400B53697A652E486569676874050000 - 0000009A998104401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F7264657202210005545465787400095374796C65 - 4E616D6506047465787405416C69676E0708436F6E74656E7473074869745465 - 7374080A53697A652E5769647468050000000000CCCC8006400B53697A652E48 - 65696768740500000000009A998104401453697A652E506C6174666F726D4465 - 6661756C740804546578740604546578741A5465787453657474696E67732E46 - 6F6E742E5374796C654578740A0D000000040400000000000000040000001654 - 65787453657474696E67732E466F6E74436F6C6F72070D636C61446F64676572 - 626C7565000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05 - 0000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65 - 06165465787453657474696E67732E466F6E74436F6C6F720A53746172745661 - 6C7565070D636C61446F64676572626C75650953746F7056616C7565070E636C - 6144656570736B79626C75650754726967676572063049734D6F7573654F7665 - 723D747275653B4973507265737365643D66616C73653B4973466F6375736564 - 3D66616C73650E54726967676572496E7665727365063149734D6F7573654F76 - 65723D66616C73653B4973507265737365643D66616C73653B4973466F637573 - 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650614436F6C6F72416E696D6174696F6E325374796C650844757261 - 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506165465 - 787453657474696E67732E466F6E74436F6C6F720A537461727456616C756507 - 0E636C6144656570736B79626C75650953746F7056616C756507097846463137 - 353739430754726967676572062F4973507265737365643D747275653B49734D - 6F7573654F7665723D747275653B4973466F63757365643D66616C7365000000 - 005450463007544C61796F757400095374796C654E616D65060D73697A656772 - 69707374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 0500000000000000C803400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08085461624F726465720222000A5452656374616E676C6500095374796C654E - 616D65060A52656374616E676C653105416C69676E070643656E7465720A4669 - 6C6C2E436F6C6F7207097846463630363036300A53697A652E57696474680500 - 000000000000A000400B53697A652E4865696768740500000000000000A00040 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D65 - 060A52656374616E676C653205416C69676E070643656E7465720A46696C6C2E - 436F6C6F7207097846463630363036300C4D617267696E732E4C656674050000 - 0000000000A002400A53697A652E57696474680500000000000000A000400B53 - 697A652E4865696768740500000000000000A000401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A - 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 - 3305416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464636 - 30363036300C4D617267696E732E4C6566740500000000000000A002400B4D61 - 7267696E732E546F700500000000000000A002400A53697A652E576964746805 - 00000000000000A000400B53697A652E4865696768740500000000000000A000 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653405416C69676E070643656E7465720A46696C6C - 2E436F6C6F7207097846463630363036300B4D617267696E732E546F70050000 - 0000000000A002400A53697A652E57696474680500000000000000A000400B53 - 697A652E4865696768740500000000000000A000401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A - 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 - 3505416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464636 - 30363036300B4D617267696E732E546F700500000000000000A002400D4D6172 - 67696E732E52696768740500000000000000A002400A53697A652E5769647468 - 0500000000000000A000400B53697A652E4865696768740500000000000000A0 - 00401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653605416C69676E070643656E7465720A46696C - 6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C65667405 - 00000000000000A002400E4D617267696E732E426F74746F6D05000000000000 - 00A002400A53697A652E57696474680500000000000000A000400B53697A652E - 4865696768740500000000000000A000401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054504630 - 0A5452656374616E676C6500095374796C654E616D65060E7374617475736261 - 727374796C6505416C69676E070643656E7465720C436C69704368696C647265 - 6E090A46696C6C2E436F6C6F7207097846463235323532350553696465730B03 - 546F70000A53697A652E57696474680500000000000000F004400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 - 56697369626C65080007544C61796F757400095374796C654E616D6506074C61 - 796F75743105416C69676E070552696768740A506F736974696F6E2E58050000 - 00000000008C04400A53697A652E57696474680500000000000000C803400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C740800095453697A654772697000095374796C654E616D - 65060973697A65677267697005416C69676E0706426F74746F6D0A506F736974 - 696F6E2E590500000000000000C803400A53697A652E57696474680500000000 - 000000C803400B53697A652E4865696768740500000000000000C80340145369 - 7A652E506C6174666F726D44656661756C740800000000545046300A54526563 - 74616E676C6500095374796C654E616D65060C746F6F6C6261727374796C6505 - 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646323532 - 3532350748697454657374080553696465730B06426F74746F6D000A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000000000C804401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F7207097846463135313531350756697369626C650800 - 005450463007544C61796F757400095374796C654E616D65061570726F677265 - 73736261726572726F727374796C6505416C69676E070643656E7465720A5369 - 7A652E576964746805000000000033338505400B53697A652E48656967687405 - 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F726465720223000A5452656374616E676C65 - 00095374796C654E616D65060668747261636B05416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000003333850540 - 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 3531353135000A5452656374616E676C6500095374796C654E616D65060A6869 - 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 - 09784646453232413241064C6F636B6564090748697454657374080C4D617267 - 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 - 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 - 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F - 736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500 - 00000000000080FF3F0A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000009999D904401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 000A5452656374616E676C6500095374796C654E616D65060676747261636B05 - 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 - 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 - 6805000000000033338505400B53697A652E4865696768740500000000009999 - E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646313531353135000A5452656374616E676C65000953 - 74796C654E616D65060A76696E64696361746F7205416C69676E0706426F7474 - 6F6D0A46696C6C2E436F6C6F720709784646453232413241064C6F636B656409 - 0748697454657374080C4D617267696E732E4C656674050000000000000080FF + 0000009A998104401453697A652E506C6174666F726D44656661756C74081A54 + 65787453657474696E67732E466F6E742E5374796C654578740A0D0000000404 + 0000000000000004000000165465787453657474696E67732E466F6E74436F6C + 6F72070D636C61446F64676572626C7565000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374 + 796C65084475726174696F6E050000000000000000000007496E766572736509 + 0C50726F70657274794E616D6506165465787453657474696E67732E466F6E74 + 436F6C6F720A537461727456616C7565070D636C61446F64676572626C756509 + 53746F7056616C7565070E636C6144656570736B79626C756507547269676765 + 72063049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C73653B4973466F63757365643D66616C73650E54726967676572496E766572 + 7365063149734D6F7573654F7665723D66616C73653B4973507265737365643D + 66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E325374796C65084475726174696F6E05000000000000000000000C50726F + 70657274794E616D6506165465787453657474696E67732E466F6E74436F6C6F + 720A537461727456616C7565070E636C6144656570736B79626C75650953746F + 7056616C756507097846463137353739430754726967676572062F4973507265 + 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D66616C7365000000005450463007544C61796F757400095374796C + 654E616D65060C706F706F7665727374796C6505416C69676E070643656E7465 + 720756697369626C6508085461624F72646572021C000A5452656374616E676C + 6500095374796C654E616D650602626705416C69676E0706436C69656E740A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350758526164697573 + 0500000000000000C0004007595261646975730500000000000000C000400007 + 544C61796F757400095374796C654E616D650607636F6E74656E7405416C6967 + 6E0706436C69656E740C4D617267696E732E4C656674050000000000000080FF 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D - 050000000000000080FF3F0A506F736974696F6E2E58050000000000000080FF - 3F0A506F736974696F6E2E5905000000000099998904400A53697A652E576964 - 746805000000000033338105400B53697A652E48656967687405000000000000 - 00A803401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000000005450463007544C61796F757400095374 - 796C654E616D650613736D616C6C7363726F6C6C6261727374796C6505416C69 - 676E070643656E7465720756697369626C6508085461624F7264657202240006 - 54547261636B00095374796C654E616D65060668747261636B05416C69676E07 - 06436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72 - 697A6F6E74616C0A53697A652E57696474680500000000000000C804400B5369 - 7A652E4865696768740500000000000000C804401453697A652E506C6174666F - 726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C6261 - 7268747261636B7374796C6500000654547261636B00095374796C654E616D65 - 060676747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F - 7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000000000 - C804401453697A652E506C6174666F726D44656661756C74080B5374796C654C - 6F6F6B757006147363726F6C6C62617276747261636B7374796C650000005450 - 463007544C61796F757400095374796C654E616D65060D636F6D626F626F7873 - 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 - 0000000000C805400B53697A652E4865696768740500000000000000C8034014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F726465720225000C5442727573684F626A65637400095374796C654E61 - 6D65060A666F726567726F756E6400000B54466F6E744F626A65637400095374 - 796C654E616D650604666F6E7409466F6E742E53697A650500000000000000D0 - 0240000007544C61796F757400095374796C654E616D65060A6261636B67726F - 756E6405416C69676E0708436F6E74656E74730A53697A652E57696474680500 - 000000000000C805400B53697A652E4865696768740500000000000000C80340 - 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 - 6C6500095374796C654E616D65060A52656374616E676C653105416C69676E07 - 06436C69656E740A46696C6C2E436F6C6F720709784646323032303230074869 - 7454657374080A53697A652E57696474680500000000000000C805400B53697A - 652E4865696768740500000000000000C803401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650007544C61 - 796F757400095374796C654E616D650611427574746F6E5374796C654F626A65 - 637405416C69676E070846697452696768740B4D617267696E732E546F700500 - 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 - FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F73 - 6974696F6E2E580500000000005ED99705400A506F736974696F6E2E59050000 - 000000000080FF3F0A53697A652E5769647468050000000000889AB803400B53 - 697A652E4865696768740500000000000000B803401453697A652E506C617466 - 6F726D44656661756C74080007544C61796F757400095374796C654E616D6506 - 074C61796F75743105416C69676E070643656E7465720C4D617267696E732E4C - 656674050000000000000080FF3F0A53697A652E576964746805000000000000 + 050000000000000080FF3F0A53697A652E57696474680500000000000000C004 + 400B53697A652E4865696768740500000000000000C004401453697A652E506C + 6174666F726D44656661756C740800000D54536861646F774566666563740008 + 44697374616E63650500000000000000C0004009446972656374696F6E050000 + 0000000000B4054008536F66746E657373050000000000000080FE3F074F7061 + 63697479050000000000000080FE3F0B536861646F77436F6C6F720708636C61 + 426C61636B000000005450463007544C61796F757400095374796C654E616D65 + 060D706F707570626F787374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000080C406400B53697A652E48656967687405 + 00000000000000D404401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F72646572021D000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080A53697A652E57696474680500000000000080C406400B53697A + 652E4865696768740500000000000000D404401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 + 6975730500000000000000C0004007595261646975730500000000000000C000 + 40000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 + 6F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463230323032300953746F7056616C7565 + 07097846463430343034300754726967676572062049734D6F7573654F766572 + 3D747275653B4973507265737365643D66616C73650E54726967676572496E76 + 65727365062149734D6F7573654F7665723D66616C73653B4973507265737365 + 643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650614436F6C6F72416E696D6174696F6E325374796C65084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646343034303430095374 + 6F7056616C756507097846463241383245320754726967676572062049734D6F + 7573654F7665723D747275653B4973507265737365643D747275653B0E547269 + 67676572496E7665727365062049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C736500000007544C61796F75740005416C69676E07 + 0552696768740A506F736974696F6E2E580500000000000080B506400A53697A + 652E57696474680500000000000000F002400B53697A652E4865696768740500 + 000000000000D404401453697A652E506C6174666F726D44656661756C740800 + 0554506174680005416C69676E070643656E74657209446174612E506174680A + 400000000500000000000000000000000000803F010000000000803F0000803F + 010000000000003F0000000001000000000000000000803F0300000000000000 + 000000000A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080B4D617267696E732E546F700500000000000000E001C00A53697A652E57 + 6964746805000000000000008002400B53697A652E4865696768740500000000 + 0000008001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6500000554506174680005416C69676E070643 + 656E74657209446174612E506174680A34000000040000000000000000000000 + 00000000010000000000803F00000000010000000000003F0000803F03000000 + 00000000000000000A46696C6C2E436F6C6F720708636C615768697465074869 + 7454657374080B4D617267696E732E546F700500000000000000C001400A5369 + 7A652E576964746805000000000000008002400B53697A652E48656967687405 + 000000000000008001401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650000000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A53697A652E57696474680500000000000080B306400B53697A65 + 2E4865696768740500000000000000CC04401453697A652E506C6174666F726D + 44656661756C7408165465787453657474696E67732E466F6E74436F6C6F7207 + 08636C6157686974650000005450463007544C61796F757400095374796C654E + 616D6506157363726F6C6C626172626F74746F6D627574746F6E05416C69676E + 070643656E7465720756697369626C6508085461624F72646572021E000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A436C6970 + 506172656E740907436F726E6572730B07546F704C65667408546F7052696768 + 74000A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 000000000000C0004007595261646975730500000000000000C00040000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E + 436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 463430343034300754726967676572062049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C73650E54726967676572496E7665727365 + 062149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463430343034300953746F7056 + 616C756507097846463137353739430754726967676572061F49735072657373 + 65643D747275653B49734D6F7573654F7665723D747275650E54726967676572 + 496E766572736506204973507265737365643D66616C73653B49734D6F757365 + 4F7665723D7472756500000007544C61796F757400095374796C654E616D6506 + 074C61796F75743105416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000A002400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C740800055450617468 + 00095374796C654E616D650605506174683105416C69676E0706436C69656E74 + 09446174612E506174680A3400000004000000000000000000C8420000C84201 + 000000000096430000C842010000000000484300009643030000000000C84200 + 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 + 080A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 + 4C61796F757400095374796C654E616D6506137363726F6C6C6261726C656674 + 627574746F6E05416C69676E070643656E7465720756697369626C6508085461 + 624F72646572021F000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0706436C69656E740C436C69704368 + 696C6472656E090A436C6970506172656E740907436F726E6572730B07546F70 + 4C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6507585261646975730500000000000000C00040075952616469757305 + 00000000000000C00040000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E31084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 0953746F7056616C756507097846463430343034300754726967676572062049 + 734D6F7573654F7665723D747275653B4973507265737365643D66616C73650E + 54726967676572496E7665727365062149734D6F7573654F7665723D66616C73 + 653B4973507265737365643D66616C736500000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D61 + 74696F6E32084475726174696F6E05000000000000000000000C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463430343034300953746F7056616C75650709784646313735373943075472 + 6967676572061F4973507265737365643D747275653B49734D6F7573654F7665 + 723D747275650E54726967676572496E76657273650620497350726573736564 + 3D66616C73653B49734D6F7573654F7665723D7472756500000007544C61796F + 757400095374796C654E616D6506074C61796F75743105416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000A002400B53697A652E + 4865696768740500000000000000C001401453697A652E506C6174666F726D44 + 656661756C74080005545061746800095374796C654E616D6506055061746831 + 05416C69676E0706436C69656E7409446174612E506174680A34000000040000 + 00000000000000C8420000C84201000000000096430000C84201000000000048 + 4300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C + 6157686974650748697454657374080D526F746174696F6E416E676C65050000 + 0000000000B405400A53697A652E57696474680500000000000000A002400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 005450463007544C61796F757400095374796C654E616D6506147363726F6C6C + 6261727269676874627574746F6E05416C69676E070643656E74657207566973 + 69626C6508085461624F726465720220000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E + 740C436C69704368696C6472656E090A436C6970506172656E740907436F726E + 6572730B08546F7052696768740B426F74746F6D5269676874000A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C000 + 4007595261646975730500000000000000C00040000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 + 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463230323032300953746F7056616C7565070978464634303430343007 + 54726967676572062049734D6F7573654F7665723D747275653B497350726573 + 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 + 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E + 436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463430343034300953746F7056616C756507097846 + 463137353739430754726967676572061F4973507265737365643D747275653B + 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 + 204973507265737365643D66616C73653B49734D6F7573654F7665723D747275 + 6500000007544C61796F757400095374796C654E616D6506074C61796F757431 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 00A002400B53697A652E4865696768740500000000000000C001401453697A65 2E506C6174666F726D44656661756C74080005545061746800095374796C654E 616D650605506174683105416C69676E0706436C69656E7409446174612E5061 74680A3400000004000000000000000000C8420000C842010000000000964300 00C842010000000000484300009643030000000000C8420000C8420A46696C6C - 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 - 696474680500000000000000A002400B53697A652E4865696768740500000000 - 000000C001401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65000000000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463230323032300953746F7056616C7565070978464634303430343007547269 - 67676572063049734D6F7573654F7665723D747275653B497350726573736564 - 3D66616C73653B4973466F63757365643D66616C73650E54726967676572496E - 7665727365063149734D6F7573654F7665723D66616C73653B49735072657373 - 65643D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C - 6F72416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F - 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 - 616C756507097846463430343034300953746F7056616C756507097846463137 - 353739430754726967676572062F4973507265737365643D747275653B49734D - 6F7573654F7665723D747275653B4973466F63757365643D66616C736500000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 - 6F6E436F6C6F72416E696D6174696F6E33084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463241383245320953746F7056616C75650709 - 7846463137353739430754726967676572062E4973507265737365643D747275 - 653B49734D6F7573654F7665723D747275653B4973466F63757365643D747275 - 650E54726967676572496E7665727365062F4973507265737365643D66616C73 - 653B49734D6F7573654F7665723D747275653B4973466F63757365643D747275 - 650000000007544C61796F757400095374796C654E616D650607636F6E74656E - 7405416C69676E0706436C69656E74064C6F636B6564090C4D617267696E732E - 4C65667405000000000000008000400B4D617267696E732E546F700500000000 - 0000008000400D4D617267696E732E52696768740500000000000000D803400E - 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 - 6964746805000000000000008E05400B53697A652E4865696768740500000000 - 000000A803401453697A652E506C6174666F726D44656661756C740800000054 - 50463007544C61796F757400095374796C654E616D65060D73706C6974746572 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000A904400B53697A652E4865696768740500000000000080C10540 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720226000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653105416C69676E0706436C69656E740A46696C6C - 2E436F6C6F720709784646333033303330074869745465737408055369646573 - 0B044C656674055269676874000A53697A652E57696474680500000000000000 - A904400B53697A652E4865696768740500000000000080C105401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 4646313531353135000007544C61796F757400095374796C654E616D65060467 - 72697005416C69676E0706436C69656E740A53697A652E576964746805000000 - 00000000A904400B53697A652E4865696768740500000000000080C105401453 - 697A652E506C6174666F726D44656661756C7408000754436972636C65000953 - 74796C654E616D650607436972636C653105416C69676E070643656E7465720A - 46696C6C2E436F6C6F7207097846463430343034300A53697A652E5769647468 - 0500000000000000E001400B53697A652E4865696768740500000000000000E0 - 01401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313500000754436972636C6500095374796C - 654E616D650607436972636C653205416C69676E070643656E7465720A46696C - 6C2E436F6C6F7207097846463430343034300B4D617267696E732E546F700500 - 000000000000A003400A53697A652E57696474680500000000000000E001400B - 53697A652E4865696768740500000000000000E001401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 3135313500000754436972636C6500095374796C654E616D650607436972636C - 653305416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 - 3430343034300E4D617267696E732E426F74746F6D0500000000000000A00340 - 0A53697A652E57696474680500000000000000E001400B53697A652E48656967 - 68740500000000000000E001401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F7207097846463135313531350000000054 - 50463007544C61796F757400095374796C654E616D650610636C6F7365627574 - 746F6E7374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F726465720227000A5452656374616E676C6500095374796C65 - 4E616D65060B636C6F7365627574746F6E05416C69676E0706436C69656E7413 - 456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80340 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C65 + 2E436F6C6F720708636C6157686974650748697454657374080D526F74617469 + 6F6E416E676C650500000000000000B405C00A53697A652E5769647468050000 + 0000000000A002400B53697A652E4865696768740500000000000000C0014014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000000005450463007544C61796F757400095374796C654E61 + 6D6506127363726F6C6C626172746F70627574746F6E05416C69676E07064365 + 6E7465720756697369626C6508085461624F726465720221000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E740907436F726E6572730B07546F704C65667408546F705269676874000A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 + 0000C0004007595261646975730500000000000000C00040000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572062049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C73650E54726967676572496E766572736506214973 + 4D6F7573654F7665723D66616C73653B4973507265737365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463430343034300953746F7056616C7565 + 07097846463137353739430754726967676572061F4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275650E54726967676572496E7665 + 72736506204973507265737365643D66616C73653B49734D6F7573654F766572 + 3D7472756500000007544C61796F757400095374796C654E616D6506074C6179 + 6F75743105416C69676E070643656E7465720A53697A652E5769647468050000 + 0000000000A002400B53697A652E4865696768740500000000000000C0014014 + 53697A652E506C6174666F726D44656661756C74080005545061746800095374 + 796C654E616D650605506174683105416C69676E0706436C69656E7409446174 + 612E506174680A3400000004000000000000000000C8420000C8420100000000 + 0096430000C842010000000000484300009643030000000000C8420000C8420A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080D526F + 746174696F6E416E676C650500000000000000B406400A53697A652E57696474 + 680500000000000000A002400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000000005450463007544C61796F75740009537479 + 6C654E616D65060D636F6D626F626F787374796C6505416C69676E070643656E + 7465720A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F726465720222000C54427275 + 73684F626A65637400095374796C654E616D65060A666F726567726F756E6400 + 000B54466F6E744F626A65637400095374796C654E616D650604666F6E740946 + 6F6E742E53697A650500000000000000D00240000007544C61796F7574000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E74730A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C7408000A5452656374616E676C6500095374796C654E616D65060A + 52656374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6507585261646975730500000000000000C0004007 + 595261646975730500000000000000C000400007544C61796F75740009537479 + 6C654E616D650611427574746F6E5374796C654F626A65637405416C69676E07 + 0846697452696768740B4D617267696E732E546F70050000000000000080FF3F + 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E + 732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E580500 + 000000005ED99705400A506F736974696F6E2E59050000000000000080FF3F0A + 53697A652E5769647468050000000000889AB803400B53697A652E4865696768 + 740500000000000000B803401453697A652E506C6174666F726D44656661756C + 74080007544C61796F757400095374796C654E616D6506074C61796F75743105 + 416C69676E070643656E7465720C4D617267696E732E4C656674050000000000 + 000080FF3F0A53697A652E57696474680500000000000000A002400B53697A65 + 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 44656661756C74080005545061746800095374796C654E616D65060550617468 + 3105416C69676E0706436C69656E7409446174612E506174680A340000000400 + 0000000000000000C8420000C84201000000000096430000C842010000000000 + 484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72070863 + 6C6157686974650748697454657374080A53697A652E57696474680500000000 + 000000A002400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000000000F54436F6C6F72416E696D6174696F6E00095374796C65 4E616D650614436F6C6F72416E696D6174696F6E315374796C65084475726174 - 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C + 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C 6C2E436F6C6F720A537461727456616C75650709784646323032303230095374 - 6F7056616C756507097846464646363135370754726967676572062049734D6F - 7573654F7665723D747275653B4973507265737365643D66616C73650E547269 - 67676572496E7665727365062149734D6F7573654F7665723D66616C73653B49 - 73507265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C - 65084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846464646 - 363135370953746F7056616C7565070978464645323446343507547269676765 - 72061F49734D6F7573654F7665723D747275653B4973507265737365643D7472 - 75650E54726967676572496E7665727365062049734D6F7573654F7665723D74 - 7275653B4973507265737365643D66616C736500000005545061746800095374 - 796C654E616D650605506174683105416C69676E070643656E74657209446174 - 612E506174680AC400000010000000000000000000A0C0000070410100000000 - 0070410000A0C001000000000048420000F041010000000000AA420000A0C001 - 0000000000D242000070410100000000008C4200004842010000000000D24200 - 00B442010000000000AA420000DC42020000003BDF34429E6F8C4202000000FE - 547D427FAAB04202000000000048420000964201000000000070410000DC4201 - 0000000000A0C00000B442010000000000F04100005C42010000000000A0C000 - 007041030000000000A0C0000070410A46696C6C2E436F6C6F720708636C6157 - 686974650748697454657374080A53697A652E57696474680500000000000000 - A002400B53697A652E4865696768740500000000000000A002401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E650000005450463007544C61796F757400095374796C654E616D65060E6D61 - 78627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F726465720228000A5452656374616E676C65000953 - 74796C654E616D6506096D6178627574746F6E05416C69676E0706436C69656E - 740A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 6F7056616C756507097846463430343034300754726967676572062149734D6F + 7573654F7665723D747275653B4973507265737365643D66616C73653B0E5472 + 6967676572496E7665727365062249734D6F7573654F7665723D66616C73653B + 4973507265737365643D66616C73653B00000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E325374 + 796C65084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3430343034300953746F7056616C756507097846463241383245320754726967 + 676572062049734D6F7573654F7665723D747275653B4973466F63757365643D + 747275653B0E54726967676572496E7665727365062149734D6F7573654F7665 + 723D747275653B4973466F63757365643D66616C73653B0000000007544C6179 + 6F757400095374796C654E616D650607636F6E74656E7405416C69676E070643 + 6C69656E74064C6F636B6564090C4D617267696E732E4C656674050000000000 + 00008000400B4D617267696E732E546F7005000000000000008000400D4D6172 + 67696E732E52696768740500000000000000D803400E4D617267696E732E426F + 74746F6D05000000000000008000400A53697A652E5769647468050000000000 + 00008E05400B53697A652E4865696768740500000000000000A803401453697A + 652E506C6174666F726D44656661756C7408000000545046300A545265637461 + 6E676C6500095374796C654E616D6506147374617475736261726E6F67726970 + 7374796C6505416C69676E070643656E7465720C436C69704368696C6472656E + 090A46696C6C2E436F6C6F7207097846463235323532350553696465730B0354 + 6F70000A53697A652E57696474680500000000000000F004400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350756 + 697369626C650800005450463007544C61796F757400095374796C654E616D65 + 0613736D616C6C7363726F6C6C6261727374796C6505416C69676E070643656E + 7465720756697369626C6508085461624F726465720223000654547261636B00 + 095374796C654E616D65060668747261636B05416C69676E0706436C69656E74 + 064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F - 6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463230323032300953746F7056616C7565070978464632413832453207 - 54726967676572062049734D6F7573654F7665723D747275653B497350726573 - 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 - 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 - 6E696D6174696F6E325374796C65084475726174696F6E050000000000CDCCCC - FB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 - 7456616C756507097846463241383245320953746F7056616C75650709784646 - 3137353739430754726967676572061F49734D6F7573654F7665723D74727565 - 3B4973507265737365643D747275650E54726967676572496E76657273650620 - 49734D6F7573654F7665723D747275653B4973507265737365643D66616C7365 - 00000005545061746800095374796C654E616D650605506174683105416C6967 - 6E070643656E74657209446174612E506174680A580000000700000000000000 - 0000C8420000C8420100000000002F440000C8420100000000002F4400002F44 - 010000000080094400800944010000000080094400007A430100000000007A43 - 00007A43030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080A53697A652E576964746805000000000000 - 00A002400B53697A652E4865696768740500000000000000A002401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E650000005450463007544C61796F757400095374796C654E616D65060E6D - 696E627574746F6E7374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F726465720229000A5452656374616E676C650009 - 5374796C654E616D6506096D696E627574746F6E05416C69676E0706436C6965 - 6E740A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C803401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 - 6F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646324138324532 - 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 - 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 - 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 - 416E696D6174696F6E325374796C65084475726174696F6E050000000000CDCC - CCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463241383245320953746F7056616C756507097846 - 463137353739430754726967676572061F49734D6F7573654F7665723D747275 - 653B4973507265737365643D747275650E54726967676572496E766572736506 - 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 - 6500000005545061746800095374796C654E616D650605506174683105416C69 - 676E070643656E74657209446174612E506174680A4000000005000000000000 - 0000002F44008009440100000000002F4400002F44010000000000C84200002F - 44010000000000C842008009440300000000002F44008009440A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080B4D617267696E732E - 546F700500000000000000A002400D526F746174696F6E416E676C6505000000 - 00000000B406400A53697A652E57696474680500000000000000A002400B5369 - 7A652E4865696768740500000000000000C000401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054 - 50463007544C61796F757400095374796C654E616D65060E726573627574746F - 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F72646572022A000A5452656374616E676C6500095374796C654E61 - 6D650609726573627574746F6E05416C69676E0706436C69656E740A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C - 65084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 - 323032300953746F7056616C7565070978464632413832453207547269676765 - 72062049734D6F7573654F7665723D747275653B4973507265737365643D6661 - 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D - 66616C73653B4973507265737365643D66616C736500000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 - 6F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463241383245320953746F7056616C75650709784646313735373943 - 0754726967676572061F49734D6F7573654F7665723D747275653B4973507265 - 737365643D747275650E54726967676572496E7665727365062049734D6F7573 - 654F7665723D747275653B4973507265737365643D66616C7365000000055450 - 61746800095374796C654E616D650605506174683105416C69676E070643656E - 74657209446174612E506174680A5800000007000000000000000000C8420000 - C8420100000000002F440000C8420100000000002F4400002F44010000000080 - 094400800944010000000080094400007A430100000000007A4300007A430300 - 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080D526F746174696F6E416E676C650500000000000000B406 - 400A53697A652E57696474680500000000000000A002400B53697A652E486569 - 6768740500000000000000A002401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C - 61796F757400095374796C654E616D65061177696E646F77626F726465727374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 000056D5AF07400B53697A652E4865696768740500000000000000B306401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F72646572022B000A5452656374616E676C6500095374796C654E616D6506 - 046D61736B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 - 07097846463130313031300A53697A652E576964746805000000000056D5AF07 - 400B53697A652E4865696768740500000000000000B306401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 0756697369626C6508000007544C61796F757400095374796C654E616D650604 - 6C65667405416C69676E07084D6F73744C656674064C6F636B6564090A506F73 - 6974696F6E2E590500000000000000F003400A53697A652E5769647468050000 - 0000000000A001400B53697A652E486569676874050000000000000095064014 - 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C - 650005416C69676E07084D6F73744C6566740A46696C6C2E436F6C6F72070978 - 46463230323032300748697454657374080553696465730B044C656674055269 - 676874000A53697A652E57696474680500000000000000A001400B53697A652E - 48656967687405000000000000009006401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 - 6C653105416C69676E070A4D6F7374426F74746F6D13456E61626C6544726167 - 486967686C69676874080A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080A506F736974696F6E2E59050000000000000090064005 - 53696465730B044C65667406426F74746F6D000A53697A652E57696474680500 - 000000000000A001400B53697A652E4865696768740500000000000000A00140 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F7207097846463135313531350007544C61796F757400095374796C654E61 - 6D6506074C61796F75743305416C69676E07094D6F737452696768740A506F73 - 6974696F6E2E5805000000000000008001400A53697A652E5769647468050000 - 000000000080FF3F0B53697A652E4865696768740500000000000000A0014014 - 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C - 6500095374796C654E616D65060A52656374616E676C653105416C69676E0703 - 546F700A46696C6C2E436F6C6F72070978464631353135313507486974546573 - 74080A53697A652E5769647468050000000000000080FF3F0B53697A652E4865 - 69676874050000000000000080FF3F1453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000000007544C61 - 796F757400095374796C654E616D650605726967687405416C69676E07094D6F - 73745269676874064C6F636B6564090A506F736974696F6E2E58050000000000 - 5655AD07400A506F736974696F6E2E590500000000000000F003400A53697A65 - 2E57696474680500000000000000A001400B53697A652E486569676874050000 - 00000000009506401453697A652E506C6174666F726D44656661756C7408000A - 5452656374616E676C650005416C69676E07094D6F737452696768740A46696C - 6C2E436F6C6F7207097846463230323032300748697454657374080553696465 - 730B044C656674055269676874000A53697A652E576964746805000000000000 - 00A001400B53697A652E48656967687405000000000000009006401453697A65 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B + 7374796C6500000654547261636B00095374796C654E616D6506067674726163 + 6B05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E746174 + 696F6E070A486F72697A6F6E74616C0A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75700614 + 7363726F6C6C62617276747261636B7374796C650000005450463007544C6179 + 6F757400095374796C654E616D65060D73706C69747465727374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000A904 + 400B53697A652E4865696768740500000000000080C105401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 02240007544C61796F757400095374796C654E616D6506046772697005416C69 + 676E0706436C69656E740A53697A652E57696474680500000000000000A90440 + 0B53697A652E4865696768740500000000000080C105401453697A652E506C61 + 74666F726D44656661756C7408000754436972636C6500095374796C654E616D + 650607436972636C653105416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463430343034300A53697A652E576964746805000000000000 + 00E001400B53697A652E4865696768740500000000000000E001401453697A65 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 78464631353135313500000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653105416C69676E070A4D6F7374426F74746F6D13 - 456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080A506F736974696F6E2E590500 - 0000000000009006400553696465730B06426F74746F6D055269676874000A53 - 697A652E57696474680500000000000000A001400B53697A652E486569676874 - 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F - 757400095374796C654E616D6506074C61796F75743305416C69676E07084D6F - 73744C6566740A53697A652E5769647468050000000000000080FF3F0B53697A - 652E4865696768740500000000000000A001401453697A652E506C6174666F72 - 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 - 060A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F6C - 6F7207097846463135313531350748697454657374080A53697A652E57696474 - 68050000000000000080FF3F0B53697A652E4865696768740500000000000000 - 80FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6500000000000A5452656374616E676C650005416C69 - 676E07074D6F7374546F700A46696C6C2E436F6C6F7207097846463230323032 - 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 - 00000056D5AF07400B53697A652E4865696768740500000000000000F0034014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F7207097846463135313531350007544C61796F757400095374796C654E616D - 65060763617074696F6E05416C69676E0708436F6E74656E7473064C6F636B65 - 64090748697454657374090A53697A652E576964746805000000000056D5AF07 - 400B53697A652E4865696768740500000000000000F003401453697A652E506C - 6174666F726D44656661756C7408000007544C61796F75740005416C69676E07 - 06436C69656E74064C6F636B6564090C4D617267696E732E4C65667405000000 + 78464631353135313500000754436972636C6500095374796C654E616D650607 + 436972636C653205416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463430343034300B4D617267696E732E546F700500000000000000A0 + 03400A53697A652E57696474680500000000000000E001400B53697A652E4865 + 696768740500000000000000E001401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000007 + 54436972636C6500095374796C654E616D650607436972636C653305416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F7207097846463430343034300E + 4D617267696E732E426F74746F6D0500000000000000A003400A53697A652E57 + 696474680500000000000000E001400B53697A652E4865696768740500000000 + 000000E001401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000000005450463007544C61 + 796F757400095374796C654E616D6506106D656E756261726974656D7374796C + 6505416C69676E070643656E7465720C4D617267696E732E4C65667405000000 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 - 000056D5AE07400B53697A652E4865696768740500000000000000E003401453 - 697A652E506C6174666F726D44656661756C74080007544C61796F7574000541 - 6C69676E07044C656674064C6F636B6564090A53697A652E5769647468050000 - 00000000009002400B53697A652E4865696768740500000000000000E0034014 - 53697A652E506C6174666F726D44656661756C7408000007544C61796F757400 - 095374796C654E616D65060469636F6E064C6F636B6564090A506F736974696F - 6E2E5805000000000000009002400A506F736974696F6E2E5905000000000000 - 00E001400A53697A652E57696474680500000000000000C803400B53697A652E - 4865696768740500000000000000A803401453697A652E506C6174666F726D44 - 656661756C7408000007544C61796F757400095374796C654E616D6506077379 - 7362746E7305416C69676E0706436C69656E74064C6F636B6564090A53697A65 - 2E57696474680500000000005655AA07400B53697A652E486569676874050000 - 0000000000E003401453697A652E506C6174666F726D44656661756C7408000C - 545370656564427574746F6E00095374796C654E616D650605636C6F73650541 - 6C69676E07055269676874064C6F636B6564090A506F736974696F6E2E580500 - 0000000056559107400A53697A652E57696474680500000000000000C804400B - 53697A652E4865696768740500000000000000E003401453697A652E506C6174 - 666F726D44656661756C74080B5374796C654C6F6F6B75700610636C6F736562 - 7574746F6E7374796C6500000C545370656564427574746F6E00095374796C65 - 4E616D6506036D617805416C69676E07055269676874064C6F636B6564090A50 - 6F736974696F6E2E5805000000000056558207400A53697A652E576964746805 - 00000000000000F003400B53697A652E4865696768740500000000000000E003 - 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F - 6B7570060E6D6178627574746F6E7374796C6500000C54537065656442757474 - 6F6E00095374796C654E616D65060372657305416C69676E0705526967687406 - 4C6F636B6564090A506F736974696F6E2E58050000000000ACAAE606400A5369 - 7A652E57696474680500000000000000F003400B53697A652E48656967687405 - 00000000000000E003401453697A652E506C6174666F726D44656661756C7408 - 0B5374796C654C6F6F6B7570060E726573627574746F6E7374796C6500000C54 - 5370656564427574746F6E00095374796C654E616D6506036D696E05416C6967 - 6E07055269676874064C6F636B6564090A506F736974696F6E2E580500000000 - 00ACAAC806400A53697A652E57696474680500000000000000F003400B53697A - 652E4865696768740500000000000000E003401453697A652E506C6174666F72 - 6D44656661756C74080B5374796C654C6F6F6B7570060E6D696E627574746F6E - 7374796C65000005545465787400095374796C654E616D6506057469746C6505 - 416C69676E0706436C69656E74064C6F636B6564090748697454657374080A53 - 697A652E5769647468050000000000ACAAC806400B53697A652E486569676874 - 0500000000000000E003401453697A652E506C6174666F726D44656661756C74 - 08045465787406055469746C65165465787453657474696E67732E466F6E7443 - 6F6C6F720708636C615768697465000000000007544C61796F75740009537479 - 6C654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F63 - 6B6564090748697454657374090A53697A652E576964746805000000000056D5 - AA07400B53697A652E48656967687405000000000000009006401453697A652E - 506C6174666F726D44656661756C7408000007544C61796F757400095374796C - 654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F636B - 6564090A506F736974696F6E2E580500000000000000A001400A506F73697469 - 6F6E2E590500000000000000AE06400A53697A652E5769647468050000000000 - 56D5AA07400B53697A652E4865696768740500000000000000A001401453697A - 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 - 5374796C654E616D6506047265637405416C69676E0706426F74746F6D0A4669 - 6C6C2E436F6C6F72070978464632303230323007486974546573740805536964 - 65730B03546F7006426F74746F6D000A53697A652E5769647468050000000000 - 56D5AA07400B53697A652E4865696768740500000000000000A001401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 09784646313531353135000000005450463007544C61796F757400095374796C - 654E616D65060F746F6F6C77696E646F777374796C6505416C69676E07064365 - 6E7465720A53697A652E576964746805000000000056D5AF07400B53697A652E - 4865696768740500000000000000B306401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F72646572022C000A545265 - 6374616E676C6500095374796C654E616D6506046D61736B05416C69676E0708 - 436F6E74656E74730A46696C6C2E436F6C6F7207097846463130313031300A53 - 697A652E576964746805000000000056D5AF07400B53697A652E486569676874 - 0500000000000000B306401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E650756697369626C650800000754 - 4C61796F757400095374796C654E616D6506046C65667405416C69676E07084D - 6F73744C656674064C6F636B6564090A506F736974696F6E2E59050000000000 - 0000C803400A53697A652E57696474680500000000000000A001400B53697A65 - 2E48656967687405000000000000009A06401453697A652E506C6174666F726D - 44656661756C7408000A5452656374616E676C650005416C69676E07084D6F73 - 744C6566740A46696C6C2E436F6C6F7207097846463230323032300748697454 - 657374080553696465730B044C656674055269676874000A53697A652E576964 - 74680500000000000000A001400B53697A652E48656967687405000000000000 - 009506401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F72070978464631353135313500000A5452656374616E676C6500 - 095374796C654E616D65060A52656374616E676C653105416C69676E070A4D6F - 7374426F74746F6D13456E61626C6544726167486967686C69676874080A4669 - 6C6C2E436F6C6F7207097846463230323032300748697454657374080A506F73 - 6974696F6E2E5905000000000000009506400553696465730B044C6566740642 - 6F74746F6D000A53697A652E57696474680500000000000000A001400B53697A - 652E4865696768740500000000000000A001401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 350007544C61796F757400095374796C654E616D6506074C61796F7574330541 - 6C69676E07094D6F737452696768740A506F736974696F6E2E58050000000000 - 00008001400A53697A652E5769647468050000000000000080FF3F0B53697A65 - 2E4865696768740500000000000000A001401453697A652E506C6174666F726D - 44656661756C7408000A5452656374616E676C6500095374796C654E616D6506 - 0A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F6C6F - 7207097846463135313531350748697454657374080A53697A652E5769647468 - 050000000000000080FF3F0B53697A652E486569676874050000000000000080 - FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000000000007544C61796F757400095374796C654E61 - 6D650605726967687405416C69676E07094D6F73745269676874064C6F636B65 - 64090A506F736974696F6E2E580500000000005655AD07400A506F736974696F - 6E2E590500000000000000C803400A53697A652E576964746805000000000000 - 00A001400B53697A652E48656967687405000000000000009A06401453697A65 - 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000541 - 6C69676E07094D6F737452696768740A46696C6C2E436F6C6F72070978464632 - 30323032300748697454657374080553696465730B044C656674055269676874 - 000A53697A652E57696474680500000000000000A001400B53697A652E486569 - 67687405000000000000009506401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313500000A54 - 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 - 05416C69676E070A4D6F7374426F74746F6D13456E61626C6544726167486967 - 686C69676874080A46696C6C2E436F6C6F720709784646323032303230074869 - 7454657374080A506F736974696F6E2E59050000000000000095064005536964 - 65730B06426F74746F6D055269676874000A53697A652E576964746805000000 - 00000000A001400B53697A652E4865696768740500000000000000A001401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 7207097846463135313531350007544C61796F757400095374796C654E616D65 - 06074C61796F75743305416C69676E07084D6F73744C6566740A53697A652E57 - 69647468050000000000000080FF3F0B53697A652E4865696768740500000000 - 000000A001401453697A652E506C6174666F726D44656661756C7408000A5452 - 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 - 416C69676E0703546F700A46696C6C2E436F6C6F720709784646313531353135 - 0748697454657374080A53697A652E5769647468050000000000000080FF3F0B - 53697A652E486569676874050000000000000080FF3F1453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 0000000A5452656374616E676C650005416C69676E07074D6F7374546F700A46 - 696C6C2E436F6C6F720709784646323032303230064C6F636B65640907486974 - 54657374080A53697A652E576964746805000000000056D5AF07400B53697A65 - 2E4865696768740500000000000000C803401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 0007544C61796F757400095374796C654E616D65060763617074696F6E05416C - 69676E0708436F6E74656E7473064C6F636B6564090748697454657374090A53 - 697A652E576964746805000000000056D5AF07400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 08000007544C61796F75740005416C69676E0706436C69656E74064C6F636B65 - 64090C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 - 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 - 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 - 0080FF3F0A53697A652E576964746805000000000056D5AE07400B53697A652E - 4865696768740500000000000000B803401453697A652E506C6174666F726D44 - 656661756C74080007544C61796F75740005416C69676E07044C656674064C6F - 636B6564090A53697A652E576964746805000000000000009002400B53697A65 - 2E4865696768740500000000000000B803401453697A652E506C6174666F726D - 44656661756C7408000007544C61796F757400095374796C654E616D65060773 - 797362746E7305416C69676E0706436C69656E74064C6F636B6564090A53697A - 652E57696474680500000000005655AA07400B53697A652E4865696768740500 - 000000000000B803401453697A652E506C6174666F726D44656661756C740800 - 0C545370656564427574746F6E00095374796C654E616D650605636C6F736505 - 416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E5805 - 000000000056D59D07400A53697A652E57696474680500000000000000C80340 - 0B53697A652E4865696768740500000000000000B803401453697A652E506C61 - 74666F726D44656661756C74080B5374796C654C6F6F6B75700610636C6F7365 - 627574746F6E7374796C65000005545465787400095374796C654E616D650605 - 7469746C6505416C69676E0706436C69656E74064C6F636B6564090748697454 - 657374080A53697A652E576964746805000000000056D59D07400B53697A652E - 4865696768740500000000000000B803401453697A652E506C6174666F726D44 - 656661756C7408045465787406055469746C65165465787453657474696E6773 - 2E466F6E74436F6C6F720708636C615768697465000000000007544C61796F75 - 7400095374796C654E616D650606636C69656E7405416C69676E0706436C6965 - 6E74064C6F636B6564090748697454657374090A53697A652E57696474680500 - 0000000056D5AA07400B53697A652E4865696768740500000000000000950640 - 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 - 00095374796C654E616D650606626F74746F6D05416C69676E0706426F74746F - 6D064C6F636B6564090A506F736974696F6E2E580500000000000000A001400A - 506F736974696F6E2E590500000000000000AE06400A53697A652E5769647468 - 05000000000056D5AA07400B53697A652E4865696768740500000000000000A0 - 01401453697A652E506C6174666F726D44656661756C7408000A545265637461 - 6E676C6500095374796C654E616D6506047265637405416C69676E0706426F74 - 746F6D0A46696C6C2E436F6C6F7207097846463230323032300553696465730B - 03546F7006426F74746F6D000A53697A652E576964746805000000000056D5AA - 07400B53697A652E4865696768740500000000000000A001401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 46313531353135000000005450463007544C61796F757400095374796C654E61 - 6D650610726164696F627574746F6E7374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000000000F205400B53697A652E4865 - 696768740500000000000000A803401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F72646572022E0007544C61796F - 75740005416C69676E07044C6566740A53697A652E5769647468050000000000 - 0000A803400B53697A652E4865696768740500000000000000A803401453697A - 652E506C6174666F726D44656661756C7408000854456C6C6970736500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E070643656E7465 - 720A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 - 48697454657374080A53697A652E57696474680500000000000000F002400B53 - 697A652E4865696768740500000000000000F002401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 353135000854456C6C6970736500095374796C654E616D650609636865636B6D - 61726B05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846 - 46324138324532064C6F636B656409074869745465737408074F706163697479 - 05000000000000000000000C4D617267696E732E4C6566740500000000000000 + 000000009205400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F726465720225000A5452656374616E676C650005416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463241383245320748697454 + 65737408074F70616369747905000000000017B7D1F13F0A53697A652E576964 + 746805000000000000009205400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000844 + 75726174696F6E05000000000018B7D1F23F0C50726F70657274794E616D6506 + 074F7061636974790A537461727456616C756505000000000000000000000953 + 746F7056616C7565050000000000000080FF3F0754726967676572060F497353 + 656C65637465643D747275650E54726967676572496E76657273650610497353 + 656C65637465643D66616C73650000000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F7207097846463241383245320748697454657374 + 08074F70616369747905000000000017B7D1F13F0A53697A652E576964746805 + 000000000000009205400B53697A652E4865696768740500000000000000D003 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000844757261 + 74696F6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F70 + 61636974790A537461727456616C756505000000000000000000000953746F70 + 56616C7565050000000000000080FF3F0754726967676572061049734D6F7573 + 654F7665723D747275650E54726967676572496E7665727365061149734D6F75 + 73654F7665723D66616C736500000007544C61796F757400095374796C654E61 + 6D650605676C79706805416C69676E07044C6566740A53697A652E5769647468 + 0500000000000000C803400B53697A652E4865696768740500000000000000D0 + 03401453697A652E506C6174666F726D44656661756C74080007544C61796F75 + 7400095374796C654E616D650609636865636B6D61726B05416C69676E070843 + 6F6E74656E7473074F7061636974790500000000006F1283F53F0A53697A652E + 57696474680500000000000000C803400B53697A652E48656967687405000000 + 00000000D003401453697A652E506C6174666F726D44656661756C7408000554 + 506174680005416C69676E070643656E74657209446174612E506174680A5800 + 0000070000000000000056D9524391AE2C430100000092766643650216430100 + 00009F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB04375A4 + D1420100000026DF8243263F67430300000056D9524391AE2C430A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080A53697A652E5769 + 6474680500000000000000B002400B53697A652E486569676874050000000000 + 0000B002401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D6174696F6E00 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 6506074F7061636974790A537461727456616C75650500000000000000000000 + 0953746F7056616C7565050000000000000080FF3F0754726967676572060E49 + 73436865636B65643D747275650E54726967676572496E7665727365060F4973 + 436865636B65643D66616C73650000000654476C79706800095374796C654E61 + 6D65060A676C7970687374796C650C4D617267696E732E4C6566740500000000 + 00000080FF3F0B4D617267696E732E546F7005000000000000008000400D4D61 + 7267696E732E52696768740500000000000000C000400E4D617267696E732E42 + 6F74746F6D050000000000000080FF3F05416C69676E070552696768740A506F + 736974696F6E2E580500000000000000C001400A506F736974696F6E2E590500 + 0000000000008000400A53697A652E576964746805000000000000008003400B + 53697A652E4865696768740500000000000000B803401453697A652E506C6174 + 666F726D44656661756C740800000654496D61676500095374796C654E616D65 + 06066269746D61700E4D756C74695265734269746D61700E01000005416C6967 + 6E0708436F6E74656E74730C4D617267696E732E4C6566740500000000000000 8000400B4D617267696E732E546F7005000000000000008000400D4D61726769 6E732E526967687405000000000000008000400E4D617267696E732E426F7474 6F6D05000000000000008000400A53697A652E57696474680500000000000000 - B002400B53697A652E4865696768740500000000000000B002401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A - 6F706163697479436865636B6D61726B416E696D6174696F6E31084475726174 + A803400B53697A652E4865696768740500000000000000B003401453697A652E + 506C6174666F726D44656661756C740800000005545465787400095374796C65 + 4E616D6506047465787405416C69676E07044C656674064C6F636B6564090748 + 697454657374080C4D617267696E732E4C65667405000000000000008002400D + 4D617267696E732E526967687405000000000000008002400A506F736974696F + 6E2E5805000000000000008404400A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000D003401453697A65 + 2E506C6174666F726D44656661756C7408165465787453657474696E67732E46 + 6F6E74436F6C6F720708636C615768697465165465787453657474696E67732E + 486F727A416C69676E07074C656164696E67000005545465787400095374796C + 654E616D65060873686F727463757405416C69676E07055269676874064C6F63 + 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 + 0000C002400D4D617267696E732E52696768740500000000000000C001400A50 + 6F736974696F6E2E580500000000000000C000C00A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000D003 + 401453697A652E506C6174666F726D44656661756C7408165465787453657474 + 696E67732E466F6E74436F6C6F720708636C6157686974651654657874536574 + 74696E67732E486F727A416C69676E07074C656164696E67000007544C61796F + 757400095374796C654E616D6506077375626D61726B05416C69676E07055269 + 6768740A506F736974696F6E2E580500000000000000D404400A53697A652E57 + 696474680500000000000000A003400B53697A652E4865696768740500000000 + 000000D003401453697A652E506C6174666F726D44656661756C740800055450 + 6174680005416C69676E070643656E74657209446174612E506174680A340000 + 000400000000000000000000000000000001000000000000000000803F010000 + 000000803F0000003F0300000000000000000000000A46696C6C2E436F6C6F72 + 0708636C615768697465064C6F636B6564090748697454657374080A53697A65 + 2E57696474680500000000000000E001400B53697A652E486569676874050000 + 00000000008002401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6500000000545046300A5452656374616E + 676C6500095374796C654E616D65060C6D656E756261727374796C6505416C69 + 676E070643656E7465720C436C69704368696C6472656E090946696C6C2E4B69 + 6E6407044E6F6E650748697454657374080A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650756697369626C650807585261646975730500000000000000C0 + 004007595261646975730500000000000000C00040000A5452656374616E676C + 650005416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080C4D617267696E732E4C65667405000000 + 0000000080FFBF0B4D617267696E732E546F70050000000000000080FFBF0D4D + 617267696E732E5269676874050000000000000080FFBF0A53697A652E576964 + 74680500000000000000D004400B53697A652E48656967687405000000000000 + 00CC04401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350758526164697573050000000000 + 0000C0004007595261646975730500000000000000C00040000007544C61796F + 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C + 69656E740C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 + 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 + 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F0A53697A652E57696474680500000000000000C004400B53697A + 652E4865696768740500000000000000C004401453697A652E506C6174666F72 + 6D44656661756C74080000005450463007544C61796F757400095374796C654E + 616D65060D6D656E756974656D7374796C6505416C69676E070643656E746572 + 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A53697A652E576964746805000000000000009205400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508085461624F726465720226000A5452656374 + 616E676C650005416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646324138324532074869745465737408074F706163697479050000 + 00000017B7D1F13F0A53697A652E576964746805000000000000009205400B53 + 697A652E4865696768740500000000000000D003401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 + 466C6F6174416E696D6174696F6E00084475726174696F6E05000000000018B7 + D1F23F0C50726F70657274794E616D6506074F7061636974790A537461727456 + 616C756505000000000000000000000953746F7056616C756505000000000000 + 0080FF3F0754726967676572060F497353656C65637465643D747275650E5472 + 6967676572496E76657273650610497353656C65637465643D66616C73650000 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 784646324138324532074869745465737408074F706163697479050000000000 + 00000000000A53697A652E576964746805000000000000009205400B53697A65 + 2E4865696768740500000000000000D003401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F + 6174416E696D6174696F6E00084475726174696F6E05000000000018B7D1F23F + 07496E7665727365090C50726F70657274794E616D6506074F7061636974790A + 537461727456616C756505000000000000000000000953746F7056616C756505 + 0000000000000080FF3F0754726967676572061049734D6F7573654F7665723D + 747275650E54726967676572496E7665727365061149734D6F7573654F766572 + 3D66616C736500000007544C61796F757400095374796C654E616D650605676C + 79706805416C69676E07044C6566740A53697A652E5769647468050000000000 + 0000C803400B53697A652E4865696768740500000000000000D003401453697A + 652E506C6174666F726D44656661756C74080007544C61796F75740009537479 + 6C654E616D650609636865636B6D61726B05416C69676E0708436F6E74656E74 + 73074F7061636974790500000000006F1283F53F0A53697A652E576964746805 + 00000000000000C803400B53697A652E4865696768740500000000000000D003 + 401453697A652E506C6174666F726D44656661756C7408000554506174680005 + 416C69676E070643656E74657209446174612E506174680A5800000007000000 + 0000000056D9524391AE2C43010000009276664365021643010000009F398343 + 2B7C3C43010000009E9AA64382D2B442010000006F1CB04375A4D14201000000 + 26DF8243263F67430300000056D9524391AE2C430A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080A53697A652E5769647468050000 + 0000000000B002400B53697A652E4865696768740500000000000000B0024014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6500000F54466C6F6174416E696D6174696F6E00084475726174 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061 636974790A537461727456616C756505000000000000000000000953746F7056 616C7565050000000000000080FF3F0754726967676572060E4973436865636B 65643D747275650E54726967676572496E7665727365060F4973436865636B65 - 643D66616C73650000000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D65061A726164696F627574746F6E436F6C6F72416E696D6174696F6E - 31084475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463230323032300953746F7056616C7565070978464634303430 - 34300754726967676572061049734D6F7573654F7665723D747275650E547269 - 67676572496E7665727365061149734D6F7573654F7665723D66616C73650000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C - 6F72416E696D6174696F6E315374796C65084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 - 0A537461727456616C756507097846463135313531350953746F7056616C7565 - 07097846463241383245320754726967676572060E4973436865636B65643D74 - 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 - 6C73650000000005545465787400095374796C654E616D650604746578740541 - 6C69676E0706436C69656E74064C6F636B6564090748697454657374080A5369 - 7A652E57696474680500000000000000C805400B53697A652E48656967687405 - 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 - 0454657874060454657874165465787453657474696E67732E466F6E74436F6C - 6F720708636C6157686974650000005450463007544C61796F75740009537479 - 6C654E616D650618756C63656E746572726164696F627574746F6E7374796C65 - 05416C69676E070643656E7465720A53697A652E576964746805000000000056 - 55FB05400B53697A652E4865696768740500000000000000A004401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 - 64657202300007544C61796F75740005416C69676E0706426F74746F6D0A506F - 736974696F6E2E5905000000000000008804400A53697A652E57696474680500 - 000000005655FB05400B53697A652E4865696768740500000000000000C00140 - 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 - 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 - 08436F6E74656E747307436F726E6572730B07546F704C6566740A426F74746F - 6D4C656674000A46696C6C2E436F6C6F720709784646323032303230064C6F63 - 6B6564090748697454657374080A53697A652E57696474680500000000005655 - FB05400B53697A652E4865696768740500000000000000C001401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 4646313531353135000F54436F6C6F72416E696D6174696F6E00095374796C65 - 4E616D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E69 - 6D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07496E7665 + 643D66616C73650000000654476C79706800095374796C654E616D65060A676C + 7970687374796C650C4D617267696E732E4C656674050000000000000080FF3F + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 52696768740500000000000000C000400E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F05416C69676E07044C6566740A506F736974696F6E2E + 58050000000000000080FF3F0A506F736974696F6E2E59050000000000000080 + 00400A53697A652E576964746805000000000000008003400B53697A652E4865 + 696768740500000000000000B803401453697A652E506C6174666F726D446566 + 61756C740800000654496D61676500095374796C654E616D6506066269746D61 + 700E4D756C74695265734269746D61700E01000005416C69676E07044C656674 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 + 00400A506F736974696F6E2E5805000000000000008000400A506F736974696F + 6E2E5905000000000000008000400A53697A652E576964746805000000000000 + 00A803400B53697A652E4865696768740500000000000000B003401453697A65 + 2E506C6174666F726D44656661756C740800000005545465787400095374796C + 654E616D6506047465787405416C69676E07044C656674064C6F636B65640907 + 48697454657374080C4D617267696E732E4C6566740500000000000000800240 + 0D4D617267696E732E526967687405000000000000008002400A506F73697469 + 6F6E2E5805000000000000008404400A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000D003401453697A + 652E506C6174666F726D44656661756C7408165465787453657474696E67732E + 466F6E74436F6C6F720708636C615768697465165465787453657474696E6773 + 2E486F727A416C69676E07074C656164696E6700000554546578740009537479 + 6C654E616D65060873686F727463757405416C69676E07055269676874064C6F + 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 + 000000C002400D4D617267696E732E52696768740500000000000000C001400A + 506F736974696F6E2E580500000000000000C000C00A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000D0 + 03401453697A652E506C6174666F726D44656661756C74081654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746516546578745365 + 7474696E67732E486F727A416C69676E07074C656164696E67000007544C6179 + 6F757400095374796C654E616D6506077375626D61726B05416C69676E070552 + 696768740A506F736974696F6E2E580500000000000000D404400A53697A652E + 57696474680500000000000000A003400B53697A652E48656967687405000000 + 00000000D003401453697A652E506C6174666F726D44656661756C7408000554 + 506174680005416C69676E070643656E74657209446174612E506174680A3400 + 00000400000000000000000000000000000001000000000000000000803F0100 + 00000000803F0000003F0300000000000000000000000A46696C6C2E436F6C6F + 720708636C615768697465064C6F636B6564090748697454657374080A53697A + 652E57696474680500000000000000E001400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75 + 7400095374796C654E616D6506126D656E75736570617261746F727374796C65 + 05416C69676E070643656E7465720C4D617267696E732E4C6566740500000000 + 00000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61 + 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 + 6F74746F6D050000000000000080FF3F0A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 + 4F7264657202270005544C696E650005416C69676E0703546F70084C696E6554 + 7970650703546F700C4D617267696E732E4C656674050000000000000080FFBF + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 5269676874050000000000000080FFBF0A506F736974696F6E2E580500000000 + 00000080FFBF0A506F736974696F6E2E5905000000000000008000400A53697A + 652E57696474680500000000000000D004400B53697A652E4865696768740500 + 00000000000080FF3F1453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135000000545046300A54 + 52656374616E676C6500095374796C654E616D65060D6D656E75766965777374 + 796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463230323032300A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350756697369626C650807585261646975730500000000000000C000400759 + 5261646975730500000000000000C000400007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 + 697A652E57696474680500000000000000C004400B53697A652E486569676874 + 0500000000000000C004401453697A652E506C6174666F726D44656661756C74 + 0800000A5452656374616E676C650005416C69676E0706436C69656E740A4669 + 6C6C2E436F6C6F7207097846463230323032300748697454657374080A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135000D54536861646F77 + 456666656374000844697374616E636505000000000000008001400944697265 + 6374696F6E0500000000000000B4044008536F66746E65737305000000000000 + 0080FE3F074F706163697479050000000000000080FE3F0B536861646F77436F + 6C6F720708636C61426C61636B000000005450463007544C61796F7574000953 + 74796C654E616D650610726164696F627574746F6E7374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000000F205400B53 + 697A652E4865696768740500000000000000A803401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572022800 + 07544C61796F75740005416C69676E07044C6566740A53697A652E5769647468 + 0500000000000000A803400B53697A652E4865696768740500000000000000A8 + 03401453697A652E506C6174666F726D44656661756C7408000854456C6C6970 + 736500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 0643656E7465720A46696C6C2E436F6C6F720709784646323032303230064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000000 + 00F002400B53697A652E4865696768740500000000000000F002401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 784646313531353135000854456C6C6970736500095374796C654E616D650609 + 636865636B6D61726B05416C69676E0706436C69656E740A46696C6C2E436F6C + 6F720709784646324138324532064C6F636B656409074869745465737408074F + 70616369747905000000000000000000000C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E + 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 + 000000000000B002400B53697A652E4865696768740500000000000000B00240 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C65 + 4E616D65061A6F706163697479436865636B6D61726B416E696D6174696F6E31 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 6506074F7061636974790A537461727456616C75650500000000000000000000 + 0953746F7056616C7565050000000000000080FF3F0754726967676572060E49 + 73436865636B65643D747275650E54726967676572496E7665727365060F4973 + 436865636B65643D66616C73650000000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D65061A726164696F627574746F6E436F6C6F72416E69 + 6D6174696F6E31084475726174696F6E050000000000000000000007496E7665 727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 61727456616C756507097846463230323032300953746F7056616C7565070978 46463430343034300754726967676572061049734D6F7573654F7665723D7472 75650E54726967676572496E7665727365061149734D6F7573654F7665723D66 - 616C736500000A5452656374616E676C6500095374796C654E616D6506096368 - 65636B6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B - 07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207 - 09784646324138324532064C6F636B656409074869745465737408074F706163 - 69747905000000000000000000000C4D617267696E732E4C6566740500000000 - 00000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61 - 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 - 6F74746F6D050000000000000080FF3F0A53697A652E57696474680500000000 - 005655F705400B53697A652E4865696768740500000000000000800140145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D - 65061A636865636B6D61726B4F706163697479416E696D6174696F6E31084475 - 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D650607 - 4F7061636974790A537461727456616C75650500000000000000000000095374 - 6F7056616C7565050000000000000080FF3F0754726967676572060E49734368 - 65636B65643D747275650E54726967676572496E7665727365060F4973436865 - 636B65643D66616C7365000000000005545465787400095374796C654E616D65 - 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 - 54657374080A53697A652E57696474680500000000005655FB05400B53697A65 - 2E48656967687405000000000000008804401453697A652E506C6174666F726D - 44656661756C74080454657874060454657874165465787453657474696E6773 - 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 - 6F757400095374796C654E616D650616756C6C656674726164696F627574746F + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060C5374726F6B65 + 2E436F6C6F720A537461727456616C756507097846463135313531350953746F + 7056616C756507097846463241383245320754726967676572060E4973436865 + 636B65643D747275650E54726967676572496E7665727365060F497343686563 + 6B65643D66616C73650000000005545465787400095374796C654E616D650604 + 7465787405416C69676E0706436C69656E74064C6F636B656409074869745465 + 7374080A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000A803401453697A652E506C6174666F726D4465 + 6661756C74080454657874060454657874165465787453657474696E67732E46 + 6F6E74436F6C6F720708636C6157686974650000005450463007544C61796F75 + 7400095374796C654E616D650618756C63656E746572726164696F627574746F 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 00000000005655FB05400B53697A652E4865696768740500000000000000A004 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F7264657202320007544C61796F75740005416C69676E0706426F74 + 085461624F7264657202290007544C61796F75740005416C69676E0706426F74 746F6D0A506F736974696F6E2E5905000000000000008804400A53697A652E57 696474680500000000005655FB05400B53697A652E4865696768740500000000 000000C001401453697A652E506C6174666F726D44656661756C7408000A5452 @@ -15143,8 +12619,8 @@ object MainForm: TMainForm 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F 6C6F720709784646313531353135000F54436F6C6F72416E696D6174696F6E00 095374796C654E616D6506216261636B67726F756E64556C427574746F6E436F - 6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB - 3F07496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 0007496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F 6C6F720A537461727456616C756507097846463230323032300953746F705661 6C756507097846463430343034300754726967676572061049734D6F7573654F 7665723D747275650E54726967676572496E7665727365061149734D6F757365 @@ -15160,7 +12636,7 @@ object MainForm: TMainForm 8001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 2E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374 796C654E616D65061A636865636B6D61726B4F706163697479416E696D617469 - 6F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 + 6F6E31084475726174696F6E05000000000000000000000C50726F7065727479 4E616D6506074F7061636974790A537461727456616C75650500000000000000 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 060E4973436865636B65643D747275650E54726967676572496E766572736506 @@ -15170,2617 +12646,5551 @@ object MainForm: TMainForm 400B53697A652E48656967687405000000000000008804401453697A652E506C 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 - 5374796C654E616D650617756C7269676874726164696F627574746F6E737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 005655FB05400B53697A652E4865696768740500000000000000A00440145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F7264657202340007544C61796F75740005416C69676E0706426F74746F6D0A - 506F736974696F6E2E5905000000000000008804400A53697A652E5769647468 - 0500000000005655FB05400B53697A652E4865696768740500000000000000C0 - 01401453697A652E506C6174666F726D44656661756C7408000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0708436F6E74656E747307436F726E6572730B08546F7052696768740B426F - 74746F6D5269676874000A46696C6C2E436F6C6F720709784646323032303230 + 5374796C654E616D650616756C6C656674726164696F627574746F6E7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 5655FB05400B53697A652E4865696768740500000000000000A004401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 72646572022A0007544C61796F75740005416C69676E0706426F74746F6D0A50 + 6F736974696F6E2E5905000000000000008804400A53697A652E576964746805 + 00000000005655FB05400B53697A652E4865696768740500000000000000C001 + 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E747307436F726E6572730B07546F704C6566740A426F7474 + 6F6D4C656674000A46696C6C2E436F6C6F720709784646323032303230064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000056 + 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313507585261646975730500000000000000C0004007595261 + 646975730500000000000000C00040000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D6506216261636B67726F756E64556C427574746F6E43 + 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000000000 + 000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 + 616C756507097846463430343034300754726967676572061049734D6F757365 + 4F7665723D747275650E54726967676572496E7665727365061149734D6F7573 + 654F7665723D66616C736500000A5452656374616E676C6500095374796C654E + 616D650609636865636B6D61726B05416C69676E0708436F6E74656E74730743 + 6F726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C + 2E436F6C6F720709784646324138324532064C6F636B65640907486974546573 + 7408074F70616369747905000000000000000000000C4D617267696E732E4C65 + 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A53697A652E576964 + 74680500000000005655F705400B53697A652E48656967687405000000000000 + 008001401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650758526164697573050000000000000080004007 + 595261646975730500000000000000800040000F54466C6F6174416E696D6174 + 696F6E00095374796C654E616D65061A636865636B6D61726B4F706163697479 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D6506074F7061636974790A537461727456616C756505 + 000000000000000000000953746F7056616C7565050000000000000080FF3F07 + 54726967676572060E4973436865636B65643D747275650E5472696767657249 + 6E7665727365060F4973436865636B65643D66616C7365000000000005545465 + 787400095374796C654E616D6506047465787405416C69676E0706436C69656E + 74064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 0000005655FB05400B53697A652E486569676874050000000000000088044014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E + 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C + 61796F757400095374796C654E616D650617756C7269676874726164696F6275 + 74746F6E7374796C6505416C69676E070643656E7465720A53697A652E576964 + 74680500000000005655FB05400B53697A652E48656967687405000000000000 + 00A004401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F72646572022C0007544C61796F75740005416C69676E0706 + 426F74746F6D0A506F736974696F6E2E5905000000000000008804400A53697A + 652E57696474680500000000005655FB05400B53697A652E4865696768740500 + 000000000000C001401453697A652E506C6174666F726D44656661756C740800 + 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E747307436F726E6572730B08546F7052 + 696768740B426F74746F6D5269676874000A46696C6C2E436F6C6F7207097846 + 46323032303230064C6F636B6564090748697454657374080A53697A652E5769 + 6474680500000000005655FB05400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F72070978464631353135313507585261646975730500000000 + 000000C0004007595261646975730500000000000000C00040000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D6506216261636B67726F756E + 64556C427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F + 6E050000000000000000000007496E7665727365090C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 + 323032300953746F7056616C7565070978464634303430343007547269676765 + 72061049734D6F7573654F7665723D747275650E54726967676572496E766572 + 7365061149734D6F7573654F7665723D66616C736500000A5452656374616E67 + 6C6500095374796C654E616D650609636865636B6D61726B05416C69676E0708 + 436F6E74656E747307436F726E6572730B08546F7052696768740B426F74746F + 6D5269676874000A46696C6C2E436F6C6F720709784646324138324532064C6F + 636B656409074869745465737408074F70616369747905000000000000000000 + 000C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A53697A652E57696474680500000000005655F705400B53697A652E48 + 656967687405000000000000008001401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 + 050000000000000080004007595261646975730500000000000000800040000F + 54466C6F6174416E696D6174696F6E00095374796C654E616D65061A63686563 + 6B6D61726B4F706163697479416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D6506074F706163697479 + 0A537461727456616C756505000000000000000000000953746F7056616C7565 + 050000000000000080FF3F0754726967676572060E4973436865636B65643D74 + 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 + 6C7365000000000005545465787400095374796C654E616D6506047465787405 + 416C69676E0706436C69656E74064C6F636B6564090748697454657374080A53 + 697A652E57696474680500000000005655FB05400B53697A652E486569676874 + 05000000000000008804401453697A652E506C6174666F726D44656661756C74 + 080454657874060454657874165465787453657474696E67732E466F6E74436F + 6C6F720708636C6157686974650000005450463007544C61796F757400095374 + 796C654E616D65061470726F67726573736261726D696E697374796C6505416C + 69676E070643656E7465720A53697A652E576964746805000000000033338505 + 400B53697A652E4865696768740500000000009999E104401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 022E000A5452656374616E676C6500095374796C654E616D6506066874726163 + 6B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 + 46343034303430064C6F636B6564090748697454657374080A53697A652E5769 + 64746805000000000033338505400B53697A652E486569676874050000000000 + 9999E104401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6507585261646975730500000000000000800040 + 07595261646975730500000000000000800040000A5452656374616E676C6500 + 095374796C654E616D65060A68696E64696361746F7205416C69676E07044C65 + 66740A46696C6C2E436F6C6F720709784646324138324532064C6F636B656409 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000009999E104401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758 + 5261646975730500000000000000800040075952616469757305000000000000 + 008000400000000A5452656374616E676C6500095374796C654E616D65060676 + 747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646343034303430064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000033338505400B53697A652E4865696768740500 + 000000009999E104401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65075852616469757305000000000000 + 0080004007595261646975730500000000000000800040000A5452656374616E + 676C6500095374796C654E616D65060A76696E64696361746F7205416C69676E + 0706426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C + 6F636B6564090748697454657374080A506F736974696F6E2E59050000000000 + 99998D04400A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000000000A803401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469 + 7573050000000000000080004007595261646975730500000000000000800040 + 000000005450463007544C61796F757400095374796C654E616D65060E636F6D + 626F656469747374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000C805400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C740807566973 + 69626C6508085461624F726465720230000C5442727573684F626A6563740009 + 5374796C654E616D65060A666F726567726F756E6400000B54466F6E744F626A + 65637400095374796C654E616D650604666F6E7409466F6E742E53697A650500 + 000000000000D00240000007544C61796F757400095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0708436F6E74656E74730A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 + 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080A53697A652E57696474680500000000000000 + C805400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 464632303230323007585261646975730500000000000000C000400759526164 + 6975730500000000000000C00040000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 + 084475726174696F6E050000000000000000000007496E7665727365090C5072 + 6F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572062049734D6F7573654F7665723D747275653B4973 + 466F63757365643D66616C73650E54726967676572496E766572736506214973 + 4D6F7573654F7665723D66616C73653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F + 6C6F72416E696D6174696F6E325374796C65084475726174696F6E0500000000 + 00000000000007496E7665727365090C50726F70657274794E616D65060C5374 + 726F6B652E436F6C6F720A537461727456616C75650709784646343034303430 + 0953746F7056616C756507097846463241383245320754726967676572061F49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 + 726967676572496E7665727365062049734D6F7573654F7665723D747275653B + 4973466F63757365643D66616C7365000007544C61796F757400095374796C65 + 4E616D6506056172726F7705416C69676E070846697452696768740B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E580500000000005ED99705400A506F7369 + 74696F6E2E59050000000000000080FF3F0A53697A652E576964746805000000 + 0000889AB803400B53697A652E4865696768740500000000000000B803401453 + 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070843 + 6F6E74656E747307436F726E6572730B08546F7052696768740B426F74746F6D + 5269676874000A46696C6C2E436F6C6F72070978464633303330333007486974 + 54657374080A53697A652E5769647468050000000000889AB803400B53697A65 + 2E4865696768740500000000000000B803401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469 + 75730500000000000000C0004007595261646975730500000000000000C00040 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F + 6C6F72416E696D6174696F6E315374796C65084475726174696F6E0500000000 + 00000000000007496E7665727365090C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463330333033300953 + 746F7056616C756507097846463430343034300754726967676572062049734D + 6F7573654F7665723D747275653B4973466F63757365643D66616C73650E5472 + 6967676572496E7665727365062149734D6F7573654F7665723D66616C73653B + 4973466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E32537479 + 6C65084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464634 + 30343034300953746F7056616C75650709784646313735373943075472696767 + 6572061F4973466F63757365643D747275653B49734D6F7573654F7665723D74 + 72756500000007544C61796F757400095374796C654E616D6506074C61796F75 + 743105416C69676E070643656E7465720C4D617267696E732E4C656674050000 + 000000000080FF3F0A53697A652E57696474680500000000000000A002400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C74080005545061746800095374796C654E616D65060550 + 6174683105416C69676E0706436C69656E7409446174612E506174680A340000 + 0004000000000000000000C8420000C84201000000000096430000C842010000 + 000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080A53697A652E57696474680500 + 000000000000A002400B53697A652E4865696768740500000000000000C00140 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E650000000000000C5442727573684F626A6563740009537479 + 6C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72070978 + 3936324138324532000007544C61796F757400095374796C654E616D65060763 + 6F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566 + 7405000000000000008000400B4D617267696E732E546F700500000000000000 + 8000400D4D617267696E732E52696768740500000000000000F003400E4D6172 + 67696E732E426F74746F6D05000000000000008000400A53697A652E57696474 + 6805000000000000008805400B53697A652E4865696768740500000000000000 + A803401453697A652E506C6174666F726D44656661756C740800000054504630 + 07544C61796F757400095374796C654E616D650613657870616E646572627574 + 746F6E7374796C6505416C69676E070643656E7465720B4D617267696E732E54 + 6F70050000000000000080FF3F0A53697A652E57696474680500000000000000 + B003400B53697A652E4865696768740500000000000000B003401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 657202330005545061746800095374796C654E616D650605506174683105416C + 69676E070643656E74657209446174612E506174680A34000000040000000000 + 00000000C8420000C84201000000000096430000C84201000000000048430000 + 9643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080D526F746174696F6E416E676C65050000000000 + 0000B405400A53697A652E57696474680500000000000000A002400B53697A65 + 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F + 6174416E696D6174696F6E00095374796C654E616D650614466C6F6174416E69 + 6D6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F + 0D496E746572706F6C6174696F6E070843697263756C61720C50726F70657274 + 794E616D65060D526F746174696F6E416E676C650A537461727456616C756505 + 00000000000000B405400953746F7056616C7565050000000000000000000007 + 54726967676572060F4973457870616E6465643D747275650E54726967676572 + 496E766572736506104973457870616E6465643D66616C736500000000545046 + 3007544C61796F757400095374796C654E616D650615657870616E6465726368 + 65636B626F787374796C6505416C69676E070643656E7465720A53697A652E57 + 6964746805000000000000008406400B53697A652E4865696768740500000000 + 0000008404401453697A652E506C6174666F726D44656661756C740807566973 + 69626C6508085461624F7264657202360007544C61796F75740005416C69676E + 07044C6566740A53697A652E57696474680500000000000000C003400B53697A + 652E48656967687405000000000000008404401453697A652E506C6174666F72 + 6D44656661756C7408000554506174680005416C69676E0706436C69656E7409 + 446174612E506174680AD80100002700000000000000FEC8BA4402E792440200 + 00002592AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FEB0 + 9E440200000093A4A4446A0C9F44020000004A80AC44FC79AA4402000000046E + BA44FC79AA44020000004A00C844FC79AA44020000000080CF44FEB09E440200 + 00000080CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402E7 + 924402000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B876 + BF44FE309744020000000277C344EEA09A44020000000277C34404DE9E440200 + 00000277C344121BA34402000000B876BF44008CA64402000000FE88BA44008C + A644020000004C9BB544008CA64402000000009CB144121BA34402000000009C + B14404DE9E4402000000009CB144EEA09A44020000004C9BB544FE3097440200 + 0000FE88BA44FE309744000000000080BA44045E9B4402000000146EB844045E + 9B440200000000C0B64454F79C440200000000C0B64400F09E440200000000C0 + B644ACE8A04402000000146EB844FC81A244020000000080BA44FC81A2440200 + 0000EC91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400F0 + 9E44020000000040BE4454F79C4402000000EC91BC44045E9B44020000000080 + BA44045E9B440A46696C6C2E436F6C6F72070978363030303030303007486974 + 54657374080C4D617267696E732E4C65667405000000000000008000400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 + 000000008000400A53697A652E57696474680500000000000000A003400B5369 + 7A652E4865696768740500000000000000E803401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261 + 704D6F64650703466974000F54436F6C6F72416E696D6174696F6E0008447572 + 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978363030303030303009 + 53746F7056616C75650708636C61426C61636B0754726967676572060E497343 + 6865636B65643D7472756500000F54436F6C6F72416E696D6174696F6E000844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C75650708636C61426C61636B + 0953746F7056616C756507097836303030303030300754726967676572060F49 + 73436865636B65643D66616C73650000000005545465787400095374796C654E + 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 + 48697454657374080C4D617267696E732E4C6566740500000000000000800240 + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 5269676874050000000000000080FF3F0A53697A652E57696474680500000000 + 000000C605400B53697A652E4865696768740500000000000000F80340145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720709784646454545454545165465787453657474696E + 67732E486F727A416C69676E07074C656164696E670000005450463007544C61 + 796F757400095374796C654E616D65060D657870616E6465727374796C650541 + 6C69676E070643656E7465720A53697A652E576964746805000000000000C086 + 07400B53697A652E4865696768740500000000000000CE05401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 720239000A5452656374616E676C6500095374796C654E616D65060B62677265 + 6374616E676C6505416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F720709784646324432443244064C6F636B6564090748697454657374080A53 + 697A652E576964746805000000000000C08607400B53697A652E486569676874 + 0500000000000000CE05401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F72070978464631353135313507585261646975 + 730500000000000000C0004007595261646975730500000000000000C0004000 + 07544C61796F757400095374796C654E616D6506074C61796F75743305416C69 + 676E0703546F700A53697A652E576964746805000000000000C08607400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080007544C61796F757400095374796C654E616D650607 + 4C61796F75743405416C69676E0708436F6E74656E74730A53697A652E576964 + 746805000000000000C08607400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653205416C + 69676E0708436F6E74656E747307436F726E6572730B07546F704C6566740854 + 6F705269676874000A46696C6C2E436F6C6F720709784646323532353235064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 00C08607400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 0978464631353135313507585261646975730500000000000000C00040075952 + 61646975730500000000000000C0004000000A5452656374616E676C65000953 + 74796C654E616D65060A52656374616E676C653105416C69676E0708436F6E74 + 656E747307436F726E6572730B07546F704C65667408546F705269676874000A + 46696C6C2E436F6C6F720709784646313531353135064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000000C08607400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 + 6975730500000000000000C0004007595261646975730500000000000000C000 + 40000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061446 + 6C6F6174416E696D6174696F6E315374796C65084475726174696F6E05000000 + 0000CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263756C61720C + 50726F70657274794E616D6506075363616C652E580A537461727456616C7565 + 050000000000000080FF3F0953746F7056616C75650500000000000000000000 + 0754726967676572060F4973457870616E6465643D747275650E547269676765 + 72496E766572736506104973457870616E6465643D66616C7365000000000754 + 4C61796F757400095374796C654E616D6506074C61796F75743305416C69676E + 0708436F6E74656E74730A53697A652E576964746805000000000000C0860740 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080005545465787400095374796C654E616D6506 + 047465787405416C69676E07044C656674084175746F53697A65090A436C6970 + 506172656E7409064C6F636B6564090748697454657374080C4D617267696E73 + 2E4C6566740500000000000000A002400A506F736974696F6E2E580500000000 + 000000A002400A53697A652E57696474680500000000000018D103400B53697A + 652E4865696768740500000000000060FF02401453697A652E506C6174666F72 + 6D44656661756C74080454657874060454657874165465787453657474696E67 + 732E466F6E74436F6C6F720708636C615768697465165465787453657474696E + 67732E486F727A416C69676E07074C656164696E670000000F54457870616E64 + 6572427574746F6E00095374796C654E616D650606627574746F6E05416C6967 + 6E07055269676874064C6F636B6564090A506F736974696F6E2E580500000000 + 000080F906400A53697A652E57696474680500000000000000A003400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C740800000000005450463007544C61796F757400095374796C + 654E616D650615616E69696E64696361746F72686F727A7374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000040C00640 + 0B53697A652E48656967687405000000000000008000401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 3B000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653105416C69676E0706436C69656E740C436C69704368696C6472656E09 + 0A46696C6C2E436F6C6F7207097846463430343034300A53697A652E57696474 + 680500000000000040C006400B53697A652E4865696768740500000000000000 + 8000401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E650758526164697573050000000000000080FF3F0759 + 526164697573050000000000000080FF3F0005544C696E6500095374796C654E + 616D6506054C696E6531084C696E65547970650706426F74746F6D0A53697A65 + 2E57696474680500000000000000A00B400B53697A652E486569676874050000 + 00000000008000401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F720709784646324138324532105374726F6B652E5468 + 69636B6E65737305000000000000008002400A5374726F6B652E436170070552 + 6F756E640B5374726F6B652E446173680704446173680B5374726F6B652E4A6F + 696E0705526F756E64000F54466C6F6174416E696D6174696F6E00095374796C + 654E616D650603616E6907456E61626C656409084475726174696F6E05000000 + 00000000800340044C6F6F70090C50726F70657274794E616D65060A506F7369 + 74696F6E2E580A537461727456616C75650500000000000000C808C00953746F + 7056616C756505000000000000000000000754726967676572060E4973566973 + 69626C653D7472756500000000005450463007544C61796F757400095374796C + 654E616D650611616E69696E64696361746F727374796C6505416C69676E0706 + 43656E7465720756697369626C6508085461624F72646572023C000454417263 + 00095374796C654E616D65060341726305416C69676E0708436F6E74656E7473 + 0748697454657374080D526F746174696F6E416E676C650500000000000000B4 + 07400A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720708636C61576869746510537472 + 6F6B652E546869636B6E65737305000000000000008001400A5374726F6B652E + 4361700705526F756E6408456E64416E676C650500000000000000B405C0000F + 54466C6F6174416E696D6174696F6E00095374796C654E616D650603616E6907 + 456E61626C656409084475726174696F6E050000000000000080FF3F044C6F6F + 70090C50726F70657274794E616D65060D526F746174696F6E416E676C650A53 + 7461727456616C756505000000000000000000000953746F7056616C75650500 + 000000000000B407400754726967676572060E497356697369626C653D747275 + 65000000005450463007544C61796F757400095374796C654E616D65060A7061 + 6E656C7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C006400B53697A652E4865696768740500000000000000 + A406401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F72646572023D000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0A46696C6C2E436F6C6F7207097846463230323032300A53697A652E57696474 + 680500000000000000C006400B53697A652E4865696768740500000000000000 + A406401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6507585261646975730500000000000000C000400759 + 5261646975730500000000000000C000400000005450463007544C61796F7574 + 00095374796C654E616D65061970726F67726573736261726D696E696572726F + 727374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 000000000033338505400B53697A652E4865696768740500000000009999E104 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F72646572023E000A5452656374616E676C6500095374796C654E61 + 6D65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F720709784646343034303430064C6F636B6564090748697454657374 + 080A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 00000000000080004007595261646975730500000000000000800040000A5452 + 656374616E676C6500095374796C654E616D65060A68696E64696361746F7205 + 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846464532324132 + 41064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6507585261646975730500000000000000800040075952616469 + 757305000000000000008000400000000A5452656374616E676C650009537479 + 6C654E616D65060676747261636B05416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646343034303430064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469 + 7573050000000000000080004007595261646975730500000000000000800040 + 000A5452656374616E676C6500095374796C654E616D65060A76696E64696361 + 746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846 + 46453232413241064C6F636B6564090748697454657374080A506F736974696F + 6E2E5905000000000099998D04400A53697A652E576964746805000000000033 + 338505400B53697A652E4865696768740500000000000000A803401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650758526164697573050000000000000080004007595261646975730500 + 000000000000800040000000005450463007544C61796F757400095374796C65 + 4E616D65060E6C6F67627574746F6E7374796C6505416C69676E070643656E74 + 65720A53697A652E57696474680500000000000000C005400B53697A652E4865 + 696768740500000000000000C005401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508085461624F726465720201000A5452656374 + 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 + 676E0706436C69656E740C436C69704368696C6472656E090A436C6970506172 + 656E740907436F726E6572730B08546F7052696768740B426F74746F6D526967 + 6874000A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080A53697A652E57696474680500000000000000C005400B53697A652E4865 + 696768740500000000000000C005401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 00000000000000C0004007595261646975730500000000000000C00040000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463230323032300953746F7056616C7565070978 + 46463430343034300754726967676572063049734D6F7573654F7665723D7472 + 75653B4973507265737365643D66616C73653B4973466F63757365643D66616C + 73650E54726967676572496E7665727365063149734D6F7573654F7665723D66 + 616C73653B4973507265737365643D66616C73653B4973466F63757365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463430343034300953746F70 + 56616C756507097846463137353739430754726967676572062F497350726573 + 7365643D747275653B49734D6F7573654F7665723D747275653B4973466F6375 + 7365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E33084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646324138324532 + 0953746F7056616C756507097846463137353739430754726967676572062E49 + 73507265737365643D747275653B49734D6F7573654F7665723D747275653B49 + 73466F63757365643D747275650E54726967676572496E7665727365062F4973 + 507265737365643D66616C73653B49734D6F7573654F7665723D747275653B49 + 73466F63757365643D74727565000005545061746800095374796C654E616D65 + 0605506174683105416C69676E0706436C69656E7409446174612E506174680A + 5C02000032000000000000000000A841CDCCCC40010000000000A8410000C041 + 010000000000C03F0000C041010000000000C03F00000000010000009A996941 + 00000000010000000000A841CDCCCC40030000000000A841CDCCCC4000000000 + 00009C410000F04001000000000058410000F04001000000000058410000C03F + 01000000000040400000C03F01000000000040400000B4410100000000009C41 + 0000B4410100000000009C410000F0400300000000009C410000F04000000000 + 000040410000F04001000000000090400000F04001000000000090400000C040 + 01000000000040410000C04001000000000040410000F0400300000000004041 + 0000F04000000000000090400000104101000000000090410000104101000000 + 0000904100002841010000000000904000002841010000000000904000001041 + 0300000000009040000010410000000000009040000040410100000000009041 + 0000404101000000000090410000584101000000000090400000584101000000 + 0000904000004041030000000000904000004041000000000000904000007041 + 0100000000009041000070410100000000009041000084410100000000009040 + 0000844101000000000090400000704103000000000090400000704100000000 + 0000904000009041010000000000904100009041010000000000904100009C41 + 010000000000904000009C410100000000009040000090410300000000009040 + 0000904100000000000070410000C04001000000333393410000C04001000000 + 000070416666264001000000000070410000C04003000000000070410000C040 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D + 617267696E732E4C6566740500000000000000A002400B4D617267696E732E54 + 6F700500000000000000A002400D4D617267696E732E52696768740500000000 + 000000A002400E4D617267696E732E426F74746F6D0500000000000000A00240 + 0A53697A652E576964746805000000000000009805400B53697A652E48656967 + 687405000000000000009805401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F64650703 + 466974000000005450463007544C61796F757400095374796C654E616D65061B + 7472656576696577657870616E646572627574746F6E7374796C6505416C6967 + 6E070643656E7465720B4D617267696E732E546F70050000000000000080FF3F + 0A53697A652E57696474680500000000000000B003400B53697A652E48656967 + 68740500000000000000B003401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720240000554506174680009 + 5374796C654E616D650605506174683105416C69676E070643656E7465720944 + 6174612E506174680A3400000004000000000000000000C8420000C842010000 + 00000096430000C842010000000000484300009643030000000000C8420000C8 + 420A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D + 526F746174696F6E416E676C650500000000000000B405C00A53697A652E5769 + 6474680500000000000000A002400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0009 + 5374796C654E616D650614466C6F6174416E696D6174696F6E315374796C6508 + 4475726174696F6E05000000000000000000000D496E746572706F6C6174696F + 6E070843697263756C61720C50726F70657274794E616D65060D526F74617469 + 6F6E416E676C650A537461727456616C75650500000000000000B405C0095374 + 6F7056616C756505000000000000000000000754726967676572060F49734578 + 70616E6465643D747275650E54726967676572496E7665727365061049734578 + 70616E6465643D66616C7365000000005450463007544C61796F757400095374 + 796C654E616D65060D74726565766965777374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000E106400B53697A652E + 48656967687405000000000000808107401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F726465720241000C544272 + 7573684F626A65637400095374796C654E616D650618416C7465726E6174696E + 67526F774261636B67726F756E640B42727573682E436F6C6F72070978304646 + 464646464600000A5452656374616E676C6500095374796C654E616D65060A62 + 61636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E43 + 6F6C6F720709784646323032303230064C6F636B656409074869745465737408 + 0C50616464696E672E4C656674050000000000000080FF3F0D50616464696E67 + 2E5269676874050000000000000080FF3F0A53697A652E576964746805000000 + 00000000E106400B53697A652E48656967687405000000000000808107401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350007544C61796F757400095374796C654E616D65 + 0607636F6E74656E7405416C69676E0706436C69656E740C436C69704368696C + 6472656E090B4D617267696E732E546F70050000000000000080FF3F0A53697A + 652E57696474680500000000000000CD06400B53697A652E4865696768740500 + 000000000000F006401453697A652E506C6174666F726D44656661756C740800 + 0A5452656374616E676C6500095374796C654E616D65060973656C656374696F + 6E0A46696C6C2E436F6C6F720709784646324138324532074869745465737408 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573050000 + 0000000000C0004007595261646975730500000000000000C0004000000A5452 + 656374616E676C6500095374796C654E616D650610666F637573656473656C65 + 6374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454 + 657374080A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B65 + 2E446173680703446F7407585261646975730500000000000000C00040075952 + 61646975730500000000000000C000400000000A545363726F6C6C4261720009 + 5374796C654E616D65060A767363726F6C6C62617205416C69676E0705526967 + 68740B536D616C6C4368616E676505000000000000000000000B4F7269656E74 + 6174696F6E0708566572746963616C0C4D617267696E732E4C65667405000000 + 000000008000400A506F736974696F6E2E580500000000000000D006400A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 00000000000000F106401453697A652E506C6174666F726D44656661756C7408 + 00000A545363726F6C6C42617200095374796C654E616D65060A687363726F6C + 6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500 + 0000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E7461 + 6C0B4D617267696E732E546F7005000000000000008000400A506F736974696F + 6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000000000 + 00F306400A53697A652E57696474680500000000000000DF06400B53697A652E + 48656967687405000000000000008003401453697A652E506C6174666F726D44 + 656661756C740800000F54536D616C6C5363726F6C6C42617200095374796C65 + 4E616D65060F76736D616C6C7363726F6C6C62617205416C69676E0705526967 + 68740B536D616C6C4368616E676505000000000000000000000B4F7269656E74 + 6174696F6E0708566572746963616C0C4D617267696E732E4C65667405000000 + 000000008000400A506F736974696F6E2E580500000000000000C605400A506F + 736974696F6E2E5905000000000000008000400A53697A652E57696474680500 + 0000000000008002400B53697A652E4865696768740500000000000000800240 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 + 000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F6873 + 6D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C + 6C4368616E676505000000000000000000000B4F7269656E746174696F6E070A + 486F72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000 + 400A506F736974696F6E2E5805000000000000008000400A506F736974696F6E + 2E590500000000000000E205400A53697A652E57696474680500000000000000 + 9606400B53697A652E48656967687405000000000000008002401453697A652E + 506C6174666F726D44656661756C74080756697369626C650800000000545046 + 300A5452656374616E676C6500095374796C654E616D65061174726565766965 + 776974656D7374796C6505416C69676E070643656E7465720946696C6C2E4B69 + 6E6407044E6F6E650748697454657374080553696465730B06426F74746F6D00 + 0A53697A652E57696474680500000000000000AE05400B53697A652E48656967 + 68740500000000000000A004401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F7207097846463135313531350B5374726F + 6B652E4A6F696E0705526F756E640756697369626C6508000C54537065656442 + 7574746F6E00095374796C654E616D650606627574746F6E05416C69676E0704 + 4C6566740A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000A004401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B7570061B7472656576696577657870 + 616E646572627574746F6E7374796C65000007544C61796F75740005416C6967 + 6E0708436F6E74656E74730C4D617267696E732E4C6566740500000000000000 + A003400A53697A652E576964746805000000000000008605400B53697A652E48 + 65696768740500000000000000A004401453697A652E506C6174666F726D4465 + 6661756C7408000954436865636B426F7800095374796C654E616D6506056368 + 65636B05416C69676E07044C6566740843616E466F637573081244697361626C + 65466F637573456666656374090A53697A652E57696474680500000000000000 + A003400B53697A652E4865696768740500000000000000A004401453697A652E + 506C6174666F726D44656661756C740800000654476C79706800095374796C65 + 4E616D65060A676C7970687374796C650C4D617267696E732E4C656674050000 + 00000000008000400B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E526967687405000000000000008000400E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F05416C69676E07044C6566740A50 + 6F736974696F6E2E580500000000000000B003400A506F736974696F6E2E5905 + 0000000000000080FF3F0A53697A652E57696474680500000000000000800340 + 0B53697A652E48656967687405000000000000009804401453697A652E506C61 + 74666F726D44656661756C7408000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 + 54657374080A53697A652E57696474680500000000000000BC04400B53697A65 + 2E4865696768740500000000000000A004401453697A652E506C6174666F726D + 44656661756C74080454657874060454657874165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C615768697465155465787453657474696E67 + 732E576F72645772617008165465787453657474696E67732E486F727A416C69 + 676E07074C656164696E670000000A5452656374616E676C650005416C69676E + 0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869745465 + 7374080E4D617267696E732E426F74746F6D050000000000000080FF3F055369 + 6465730B044C656674000A53697A652E57696474680500000000000000AE0540 + 0B53697A652E48656967687405000000000000009C04401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 + 4138324532105374726F6B652E546869636B6E65737305000000000000008000 + 400000005450463007544C61796F757400095374796C654E616D65061670726F + 677265737362617266696E6973687374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C7408085461624F72646572023F000A5452656374616E676C650009537479 + 6C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646323032303230064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C00040000A5452656374616E676C6500095374796C654E616D65060A68 + 696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72 + 0709784646324345323434064C6F636B6564090748697454657374080C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A50 + 6F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905 + 0000000000000080FF3F0A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000009999D904401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C000400000000A5452656374616E676C6500095374796C654E616D650606 + 76747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646323032303230064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350758526164697573 + 0500000000000000C0004007595261646975730500000000000000C00040000A + 5452656374616E676C6500095374796C654E616D65060A76696E64696361746F + 7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632 + 4345323434064C6F636B6564090748697454657374080C4D617267696E732E4C + 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F + 6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000000099 + 998904400A53697A652E576964746805000000000033338105400B53697A652E + 4865696768740500000000000000A803401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975 + 730500000000000000C0004007595261646975730500000000000000C0004000 + 0000005450463007544C61796F757400095374796C654E616D65061A70726F67 + 726573736261726D696E6966696E6973687374796C6505416C69676E07064365 + 6E7465720A53697A652E576964746805000000000033338505400B53697A652E + 4865696768740500000000009999E104401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F72646572024A000A545265 + 6374616E676C6500095374796C654E616D65060668747261636B05416C69676E + 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430 064C6F636B6564090748697454657374080A53697A652E576964746805000000 - 00005655FB05400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 720709784646313531353135000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F - 72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07 - 496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463230323032300953746F7056616C75 - 6507097846463430343034300754726967676572061049734D6F7573654F7665 - 723D747275650E54726967676572496E7665727365061149734D6F7573654F76 - 65723D66616C736500000A5452656374616E676C6500095374796C654E616D65 - 0609636865636B6D61726B05416C69676E0708436F6E74656E747307436F726E - 6572730B08546F7052696768740B426F74746F6D5269676874000A46696C6C2E - 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 - 08074F70616369747905000000000000000000000C4D617267696E732E4C6566 - 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 - 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 - 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 - 680500000000005655F705400B53697A652E4865696768740500000000000000 - 8001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374 - 796C654E616D65061A636865636B6D61726B4F706163697479416E696D617469 - 6F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 - 4E616D6506074F7061636974790A537461727456616C75650500000000000000 - 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 - 060E4973436865636B65643D747275650E54726967676572496E766572736506 - 0F4973436865636B65643D66616C736500000000000554546578740009537479 - 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 - 64090748697454657374080A53697A652E57696474680500000000005655FB05 - 400B53697A652E48656967687405000000000000008804401453697A652E506C - 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 - 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 - 5374796C654E616D65060E636F6D626F656469747374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F726465720239000C - 5442727573684F626A65637400095374796C654E616D65060A666F726567726F - 756E6400000B54466F6E744F626A65637400095374796C654E616D650604666F - 6E7409466F6E742E53697A650500000000000000D00240000007544C61796F75 - 7400095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 - 436F6E74656E74730A53697A652E57696474680500000000000000C805400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653105416C69676E0706436C69656E740A46696C - 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 - 2E57696474680500000000000000C805400B53697A652E486569676874050000 - 0000000000C803401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F720709784646323032303230000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 - 6F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F07496E76 - 65727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F72 + 000033338505400B53697A652E4865696768740500000000009999E104401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650758526164697573050000000000000080004007595261646975 + 730500000000000000800040000A5452656374616E676C6500095374796C654E + 616D65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C + 2E436F6C6F720709784646324345323434064C6F636B65640907486974546573 + 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000009999E104401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 0000000000000080004007595261646975730500000000000000800040000000 + 0A5452656374616E676C6500095374796C654E616D65060676747261636B0541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430 + 34303430064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000033338505400B53697A652E4865696768740500000000009999E1 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6507585261646975730500000000000000800040075952 + 61646975730500000000000000800040000A5452656374616E676C6500095374 + 796C654E616D65060A76696E64696361746F7205416C69676E0706426F74746F + 6D0A46696C6C2E436F6C6F720709784646324345323434064C6F636B65640907 + 48697454657374080A506F736974696F6E2E5905000000000099998D04400A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500000000 + 0000008000400759526164697573050000000000000080004000000000} + end> + Left = 64 + Top = 144 + end + object AERModernAnimatedStyle: TStyleBook + StyleName = 'AER Modern Smooth Style' + Styles = < + item + ResourcesBin = { + 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 + AF00060B627574746F6E7374796C6503C5040609656469747374796C6503AC05 + 060A6C6162656C7374796C65032001060D67726F7570626F787374796C65038E + 02060D747261636B6261727374796C65038C07060D636865636B626F78737479 + 6C65039E0506147363726F6C6C62617268747261636B7374796C65033B010614 + 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 + 6172626F74746F6D627574746F6E032D0406137363726F6C6C6261726C656674 + 627574746F6E03440406147363726F6C6C6261727269676874627574746F6E03 + 450406127363726F6C6C626172746F70627574746F6E034304060E7363726F6C + 6C6261727374796C65036304060A7468756D627374796C65034402060B737769 + 7463687374796C6503DC01060C7370696E626F787374796C65035F07060F7461 + 62636F6E74726F6C7374796C6503A701060B746162646F747374796C65035901 + 060C7461626974656D7374796C6503EF04060D7468756D626261727374796C65 + 034F03060C6C697374626F787374796C6503AD07060D6C697374626F78666F6F + 746572038B0106106C697374626F786974656D7374796C6503260306126C6973 + 74626F78706C61696E6865616465720346020609677269647374796C65038708 + 060F6865616465726974656D7374796C6503CE03061070726F67726573736261 + 727374796C65036A04061170726F677265737363656C6C7374796C6503A50206 + 106D656E756261726974656D7374796C6503300B060C6D656E75626172737479 + 6C65036C02060D6D656E756974656D7374796C65035D0B06126D656E75736570 + 617261746F727374796C6503E501060D6D656E75766965777374796C65039102 + 060E696D61676563656C6C7374796C65033D01060E706F70757063656C6C7374 + 796C65038E03060D7465787463656C6C7374796C6503A60106096D656D6F7374 + 796C6503DE07060E6C696E6B6C6162656C7374796C65035B03060D73697A6567 + 7269707374796C6503FB04060E7374617475736261727374796C6503DB01060C + 746F6F6C6261727374796C6503CA00061570726F67726573736261726572726F + 727374796C65036F040613736D616C6C7363726F6C6C6261727374796C6503AE + 01060D636F6D626F626F787374796C65030108060D73706C6974746572737479 + 6C6503C0030610636C6F7365627574746F6E7374796C65038604060E6D617862 + 7574746F6E7374796C65030104060E6D696E627574746F6E7374796C65031904 + 060E726573627574746F6E7374796C65031A04060F746F6F6C77696E646F7773 + 74796C6503BD0D0610726164696F627574746F6E7374796C6503C4050618756C + 63656E746572726164696F627574746F6E7374796C650368050616756C6C6566 + 74726164696F627574746F6E7374796C65035B050617756C7269676874726164 + 696F627574746F6E7374796C65036005060E636F6D626F656469747374796C65 + 038D090611616E69696E64696361746F727374796C6503D7010613657870616E + 646572627574746F6E7374796C650381020615657870616E646572636865636B + 626F787374796C6503DB05060A70616E656C7374796C65032901061970726F67 + 726573736261726D696E696572726F727374796C65036103061470726F677265 + 73736261726D696E697374796C65035C03060D657870616E6465727374796C65 + 037C060615616E69696E64696361746F72686F727A7374796C65039502060E6C + 6F67627574746F6E7374796C65039507061B7472656576696577657870616E64 + 6572627574746F6E7374796C65038902061174726565766965776974656D7374 + 796C65031405060D74726565766965777374796C65034107061670726F677265 + 737362617266696E6973687374796C65037004061A70726F6772657373626172 + 6D696E6966696E6973687374796C65036203061177696E646F77626F72646572 + 7374796C6503941000545046300A5452656374616E676C6500095374796C654E + 616D65060F6261636B67726F756E647374796C6505416C69676E070643656E74 + 65720A46696C6C2E436F6C6F7207097846463244324432440A53697A652E5769 + 64746805000000000000009407400B53697A652E486569676874050000000000 + 0080D206401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650756697369626C650800005450463007544C61 + 796F757400095374796C654E616D65060B627574746F6E7374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 01000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E09 + 0A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080A53697A652E57696474680500000000000000C805 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 + 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 0A537461727456616C756507097846463230323032300953746F7056616C7565 - 07097846463430343034300754726967676572062049734D6F7573654F766572 - 3D747275653B4973466F63757365643D66616C73650E54726967676572496E76 - 65727365062149734D6F7573654F7665723D66616C73653B4973466F63757365 + 07097846463430343034300754726967676572063049734D6F7573654F766572 + 3D747275653B4973507265737365643D66616C73653B4973466F63757365643D + 66616C73650E54726967676572496E7665727365063149734D6F7573654F7665 + 723D66616C73653B4973507265737365643D66616C73653B4973466F63757365 643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C65 - 4E616D650614436F6C6F72416E696D6174696F6E325374796C65084475726174 - 696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065727479 - 4E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565070978 - 46463430343034300953746F7056616C75650709784646324138324532075472 - 6967676572061F49734D6F7573654F7665723D747275653B4973466F63757365 - 643D747275650E54726967676572496E7665727365062049734D6F7573654F76 - 65723D747275653B4973466F63757365643D66616C7365000007544C61796F75 - 7400095374796C654E616D6506056172726F7705416C69676E07084669745269 - 6768740B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 - 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 - 6F6D050000000000000080FF3F0A506F736974696F6E2E580500000000005ED9 - 9705400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E57 - 69647468050000000000889AB803400B53697A652E4865696768740500000000 - 000000B803401453697A652E506C6174666F726D44656661756C7408000A5452 - 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 - 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464633 - 30333033300748697454657374080A53697A652E576964746805000000000088 - 9AB803400B53697A652E4865696768740500000000000000B803401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 14436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E0500 - 00000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463330333033 - 300953746F7056616C7565070978464634303430343007547269676765720620 - 49734D6F7573654F7665723D747275653B4973466F63757365643D66616C7365 - 0E54726967676572496E7665727365062149734D6F7573654F7665723D66616C - 73653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D61 - 74696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E32 - 5374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463430343034300953746F7056616C75650709784646313735373943075472 - 6967676572061F4973466F63757365643D747275653B49734D6F7573654F7665 - 723D7472756500000007544C61796F757400095374796C654E616D6506074C61 - 796F75743105416C69676E070643656E7465720C4D617267696E732E4C656674 - 050000000000000080FF3F0A53697A652E57696474680500000000000000A002 + 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463430343034300953 + 746F7056616C756507097846463137353739430754726967676572062F497350 + 7265737365643D747275653B49734D6F7573654F7665723D747275653B497346 + 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E33 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646324138 + 3245320953746F7056616C756507097846463137353739430754726967676572 + 062E4973507265737365643D747275653B49734D6F7573654F7665723D747275 + 653B4973466F63757365643D747275650E54726967676572496E766572736506 + 2F4973507265737365643D66616C73653B49734D6F7573654F7665723D747275 + 653B4973466F63757365643D7472756500000005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E7413456E61626C6544 + 726167486967686C69676874080748697454657374080A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 + 3007544C61796F757400095374796C654E616D650609656469747374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000000 + C805400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 65720202000C5442727573684F626A65637400095374796C654E616D65060A66 + 6F726567726F756E6400000C5442727573684F626A65637400095374796C654E + 616D65060973656C656374696F6E0B42727573682E436F6C6F72070978393632 + 413832453200000B54466F6E744F626A65637400095374796C654E616D650604 + 666F6E7409466F6E742E53697A650500000000000000D0024000000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032 + 3032300748697454657374080A53697A652E57696474680500000000000000C8 + 05400B53697A652E4865696768740500000000000000C803401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 + 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E + 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 + 463135313531350953746F7056616C7565070978464634303430343007547269 + 67676572062049734D6F7573654F7665723D747275653B4973466F6375736564 + 3D66616C73650E54726967676572496E7665727365062149734D6F7573654F76 + 65723D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D + 6174696F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C + 50726F70657274794E616D65060C5374726F6B652E436F6C6F720A5374617274 + 56616C756507097846463135313531350953746F7056616C7565070978464632 + 41383245320754726967676572060E4973466F63757365643D747275650E5472 + 6967676572496E7665727365060F4973466F63757365643D66616C7365000000 + 07544C61796F757400095374796C654E616D650607627574746F6E7305416C69 + 676E07055269676874064C6F636B6564090B4D617267696E732E546F70050000 + 00000000008000400D4D617267696E732E526967687405000000000000008000 + 400E4D617267696E732E426F74746F6D05000000000000008000400A506F7369 + 74696F6E2E580500000000000000C004400A506F736974696F6E2E5905000000 + 000000008000400A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000A803401453697A652E506C6174666F + 726D44656661756C7408000007544C61796F757400095374796C654E616D6506 + 07636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D + 617267696E732E4C65667405000000000000008001400B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 + 0A53697A652E57696474680500000000000000A804400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C7408000006544C6162656C00095374796C654E616D65060670726F6D707406 + 4C6F636B656409074F706163697479050000000000000080FE3F165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974650454657874 + 0604546578740000005450463007544C61796F757400095374796C654E616D65 + 060A6C6162656C7374796C6505416C69676E070643656E7465720A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F7264657202030005545465787400095374796C654E + 616D6506047465787405416C69676E0708436F6E74656E747307486974546573 + 74080A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 6157686974650000005450463007544C61796F757400095374796C654E616D65 + 060D67726F7570626F787374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000F004400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F726465720204000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869745465737408 + 0C4D617267696E732E4C6566740500000000000000C000400B4D617267696E73 + 2E546F7005000000000000009002400D4D617267696E732E5269676874050000 + 0000000000C000400E4D617267696E732E426F74746F6D0500000000000000C0 + 00400A53697A652E57696474680500000000000000D804400B53697A652E4865 + 6967687405000000000000009804401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000554 + 5465787400095374796C654E616D65060474657874084175746F53697A65090A + 436C6970506172656E74090748697454657374080C4D617267696E732E4C6566 + 740500000000000000A002400A506F736974696F6E2E58050000000000605595 + 02400A506F736974696F6E2E590500000000004055D501C00A53697A652E5769 + 64746805000000000000B8C703400B53697A652E486569676874050000000000 + 0060FF02401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746515546578 + 7453657474696E67732E576F72645772617008000000005450463007544C6179 + 6F757400095374796C654E616D65060D747261636B6261727374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000C805 + 400B53697A652E4865696768740500000000000000C805401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 02050B46697865644865696768740211000A5452656374616E676C6500095374 + 796C654E616D65060668747261636B05416C69676E070A5665727443656E7465 + 720A46696C6C2E436F6C6F720709784646313531353135074869745465737408 + 0A506F736974696F6E2E590500000000000000BC04400A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + A001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946 + 696C6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C + 4D617267696E732E4C6566740500000000000000C001400B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 00000000C001400E4D617267696E732E426F74746F6D050000000000000080FF + 3F0A53697A652E57696474680500000000000000B005400B53697A652E486569 + 6768740500000000000000C000401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E + 676C6500095374796C654E616D650609686967686C6967687405416C69676E07 + 044C6566740A46696C6C2E436F6C6F7207097846463241383245320748697454 + 657374080C50616464696E672E4C6566740500000000000000A002400A53697A + 652E57696474680500000000000000F003400B53697A652E4865696768740500 + 000000000000A001401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6500000B54476C6F7745666665637400 + 08536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F720709 + 784646324138324532074F706163697479050000000000000080FF3F07456E61 + 626C6564080000000A5452656374616E676C6500095374796C654E616D650606 + 76747261636B05416C69676E070A486F727A43656E7465720A46696C6C2E436F + 6C6F7207097846463135313531350748697454657374080A506F736974696F6E + 2E580500000000000000BC04400A53697A652E57696474680500000000000000 + A001400B53697A652E4865696768740500000000000000C805401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000A5452656374616E676C6500095374796C654E616D65060A6261636B67 + 726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407 + 044E6F6E65064C6F636B6564090748697454657374080C4D617267696E732E4C + 6566740500000000000000C001400B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E52696768740500000000000000C001400E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 + 64746805000000000000000000000B53697A652E486569676874050000000000 + 0000C405401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C + 654E616D650609686967686C6967687405416C69676E0703546F700A46696C6C + 2E436F6C6F7207097846463241383245320748697454657374080A53697A652E + 57696474680500000000000000A001400B53697A652E48656967687405000000 + 00000000F003401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666656374000853 + 6F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846 + 46324138324532074F706163697479050000000000000080FF3F07456E61626C + 65640800000006545468756D6200095374796C654E616D650606687468756D62 + 064C6F636B6564090A506F736974696F6E2E580500000000003033AB03400A50 + 6F736974696F6E2E59050000000000FFFFA304400A53697A652E576964746805 + 00000000000000F002400B53697A652E4865696768740500000000000000F002 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B7570060D7468756D626261727374796C65000006545468756D620009537479 + 6C654E616D650606767468756D62064C6F636B6564090A506F736974696F6E2E + 58050000000000CBCCA804400A506F736974696F6E2E590500000000009899B1 + 03400A53697A652E57696474680500000000000000F002400B53697A652E4865 + 696768740500000000000000F002401453697A652E506C6174666F726D446566 + 61756C74080B5374796C654C6F6F6B7570060D7468756D626261727374796C65 + 0000005450463007544C61796F757400095374796C654E616D65060D63686563 + 6B626F787374796C6505416C69676E070643656E7465720A53697A652E576964 + 7468050000000000ACAA8006400B53697A652E48656967687405000000000058 + 559904401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F7264657202060007544C61796F75740005416C69676E0704 + 4C6566740A53697A652E576964746805000000000000009003400B53697A652E + 48656967687405000000000058559904401453697A652E506C6174666F726D44 + 656661756C7408000A5452656374616E676C6500095374796C654E616D65060A + 6261636B67726F756E6405416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080A53697A652E576964 + 74680500000000000000F002400B53697A652E48656967687405000000000000 + 00F002401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F720709784646313531353135000A5452656374616E676C650009 + 5374796C654E616D65060A52656374616E676C653105416C69676E0706436C69 + 656E740A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 7408074F70616369747905000000000000000000000C4D617267696E732E4C65 + 667405000000000000008000400B4D617267696E732E546F7005000000000000 + 008000400D4D617267696E732E526967687405000000000000008000400E4D61 + 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 + 74680500000000000000B002400B53697A652E48656967687405000000000000 + 00B002401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000953 + 74796C654E616D65061B6368656368626F7856697362696C697479416E696D61 + 74696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 + 74794E616D6506074F7061636974790A537461727456616C7565050000000000 + 00000000000953746F7056616C75650500000000000000C80540075472696767 + 6572060E4973436865636B65643D747275650E54726967676572496E76657273 + 65060F4973436865636B65643D66616C73650000000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650618636865636B626F785374726F6B65 + 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463135313531350953746F7056616C756507097846463241 + 383245320754726967676572060E4973436865636B65643D747275650E547269 + 67676572496E7665727365060F4973436865636B65643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650617636865636B + 626F78436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 + 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463230323032300953746F7056616C756507 + 097846463430343034300754726967676572061049734D6F7573654F7665723D + 747275650E54726967676572496E7665727365061149734D6F7573654F766572 + 3D66616C73650000000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E740A53697A652E5769647468050000000000 + 5855DD05400B53697A652E48656967687405000000000058559904401453697A + 652E506C6174666F726D44656661756C74080454657874060454657874165465 + 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 + 00545046300A5452656374616E676C6500095374796C654E616D650614736372 + 6F6C6C62617268747261636B7374796C6505416C69676E070643656E7465720A + 46696C6C2E436F6C6F7207097846463135313531350748697454657374080A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650756697369626C650800065454 + 68756D6200095374796C654E616D6506057468756D62064C6F636B6564090A53 + 697A652E576964746805000000000000008003400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080B5374796C654C6F6F6B7570060A7468756D627374796C6500000054504630 + 0A5452656374616E676C6500095374796C654E616D6506147363726F6C6C6261 + 7276747261636B7374796C6505416C69676E070643656E7465720A46696C6C2E + 436F6C6F7207097846463135313531350748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E650756697369626C65080006545468756D6200 + 095374796C654E616D6506057468756D62064C6F636B6564090A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 0000008003401453697A652E506C6174666F726D44656661756C74080B537479 + 6C654C6F6F6B7570060A7468756D627374796C650000005450463007544C6179 + 6F757400095374796C654E616D6506157363726F6C6C626172626F74746F6D62 + 7574746F6E05416C69676E070643656E7465720756697369626C650808546162 + 4F726465720207000A5452656374616E676C6500095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0706436C69656E740C436C6970436869 + 6C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572617469 + 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463230323032300953746F + 7056616C756507097846463430343034300754726967676572062049734D6F75 + 73654F7665723D747275653B4973507265737365643D66616C73650E54726967 + 676572496E7665727365062149734D6F7573654F7665723D66616C73653B4973 + 507265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E + 32084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463430 + 343034300953746F7056616C7565070978464631373537394307547269676765 + 72061F4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 75650E54726967676572496E766572736506204973507265737365643D66616C + 73653B49734D6F7573654F7665723D7472756500000007544C61796F75740009 + 5374796C654E616D6506074C61796F75743105416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000A002400B53697A652E48656967 + 68740500000000000000C001401453697A652E506C6174666F726D4465666175 + 6C74080005545061746800095374796C654E616D650605506174683105416C69 + 676E0706436C69656E7409446174612E506174680A3400000004000000000000 + 000000C8420000C84201000000000096430000C8420100000000004843000096 + 43030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869 + 74650748697454657374080A53697A652E57696474680500000000000000A002 + 400B53697A652E4865696768740500000000000000C001401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000000005450463007544C61796F757400095374796C654E616D650613736372 + 6F6C6C6261726C656674627574746F6E05416C69676E070643656E7465720756 + 697369626C6508085461624F726465720208000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69 + 656E740C436C69704368696C6472656E090A436C6970506172656E74090A4669 + 6C6C2E436F6C6F7207097846463230323032300748697454657374080A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464634303430343007547269 + 67676572062049734D6F7573654F7665723D747275653B497350726573736564 + 3D66616C73650E54726967676572496E7665727365062149734D6F7573654F76 + 65723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E32084475726174696F6E0500000000000000000000 + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463430343034300953746F7056616C756507097846463137 + 353739430754726967676572061F4973507265737365643D747275653B49734D + 6F7573654F7665723D747275650E54726967676572496E766572736506204973 + 507265737365643D66616C73653B49734D6F7573654F7665723D747275650000 + 0007544C61796F757400095374796C654E616D6506074C61796F75743105416C + 69676E070643656E7465720A53697A652E57696474680500000000000000A002 400B53697A652E4865696768740500000000000000C001401453697A652E506C 6174666F726D44656661756C74080005545061746800095374796C654E616D65 0605506174683105416C69676E0706436C69656E7409446174612E506174680A 3400000004000000000000000000C8420000C84201000000000096430000C842 010000000000484300009643030000000000C8420000C8420A46696C6C2E436F - 6C6F720708636C6157686974650748697454657374080A53697A652E57696474 - 680500000000000000A002400B53697A652E4865696768740500000000000000 - C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E650000000000000C5442727573684F626A6563740009 - 5374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72 - 0709783936324138324532000007544C61796F757400095374796C654E616D65 - 0607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E - 4C65667405000000000000008000400B4D617267696E732E546F700500000000 - 0000008000400D4D617267696E732E52696768740500000000000000F003400E - 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 - 6964746805000000000000008805400B53697A652E4865696768740500000000 - 000000A803401453697A652E506C6174666F726D44656661756C740800000054 - 50463007544C61796F757400095374796C654E616D650611616E69696E646963 - 61746F727374796C6505416C69676E070643656E7465720756697369626C6508 - 00045441726300095374796C654E616D65060341726305416C69676E0708436F - 6E74656E74730748697454657374080D526F746174696F6E416E676C65050000 - 0000000000B407400A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720708636C61576869 - 7465105374726F6B652E546869636B6E65737305000000000000008000400845 - 6E64416E676C650500000000000000B405C0000F54466C6F6174416E696D6174 - 696F6E00095374796C654E616D650603616E6907456E61626C65640908447572 - 6174696F6E050000000000000080FF3F044C6F6F70090C50726F70657274794E - 616D65060D526F746174696F6E416E676C650A537461727456616C7565050000 - 00000000000000000953746F7056616C75650500000000000000B40740075472 - 6967676572060E497356697369626C653D74727565000000005450463007544C - 61796F757400095374796C654E616D650613657870616E646572627574746F6E - 7374796C6505416C69676E070643656E7465720B4D617267696E732E546F7005 - 0000000000000080FF3F0A53697A652E57696474680500000000000000B00340 - 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 3E0005545061746800095374796C654E616D650605506174683105416C69676E - 070643656E74657209446174612E506174680A34000000040000000000000000 - 00C8420000C84201000000000096430000C84201000000000048430000964303 - 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 - 0748697454657374080D526F746174696F6E416E676C650500000000000000B4 - 05400A53697A652E57696474680500000000000000A002400B53697A652E4865 - 696768740500000000000000C001401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 - 6E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D6174 - 696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0D496E - 746572706F6C6174696F6E070843697263756C61720C50726F70657274794E61 - 6D65060D526F746174696F6E416E676C650A537461727456616C756505000000 - 00000000B405400953746F7056616C7565050000000000000000000007547269 - 67676572060F4973457870616E6465643D747275650E54726967676572496E76 - 6572736506104973457870616E6465643D66616C736500000000545046300754 - 4C61796F757400095374796C654E616D650615657870616E646572636865636B - 626F787374796C6505416C69676E070643656E7465720A53697A652E57696474 - 6805000000000000008406400B53697A652E4865696768740500000000000000 - 8404401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F7264657202420007544C61796F75740005416C69676E07044C - 6566740A53697A652E57696474680500000000000000C003400B53697A652E48 - 656967687405000000000000008404401453697A652E506C6174666F726D4465 - 6661756C7408000554506174680005416C69676E0706436C69656E7409446174 - 612E506174680AD80100002700000000000000FEC8BA4402E792440200000025 - 92AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FEB09E4402 - 00000093A4A4446A0C9F44020000004A80AC44FC79AA4402000000046EBA44FC - 79AA44020000004A00C844FC79AA44020000000080CF44FEB09E440200000000 - 80CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402E7924402 - 000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B876BF44FE - 309744020000000277C344EEA09A44020000000277C34404DE9E440200000002 - 77C344121BA34402000000B876BF44008CA64402000000FE88BA44008CA64402 - 0000004C9BB544008CA64402000000009CB144121BA34402000000009CB14404 - DE9E4402000000009CB144EEA09A44020000004C9BB544FE30974402000000FE - 88BA44FE309744000000000080BA44045E9B4402000000146EB844045E9B4402 - 00000000C0B64454F79C440200000000C0B64400F09E440200000000C0B644AC - E8A04402000000146EB844FC81A244020000000080BA44FC81A24402000000EC - 91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400F09E4402 - 0000000040BE4454F79C4402000000EC91BC44045E9B44020000000080BA4404 - 5E9B440A46696C6C2E436F6C6F72070978363030303030303007486974546573 - 74080C4D617267696E732E4C65667405000000000000008000400B4D61726769 - 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 - 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 - 008000400A53697A652E57696474680500000000000000A003400B53697A652E - 4865696768740500000000000000E803401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F - 64650703466974000F54436F6C6F72416E696D6174696F6E0008447572617469 - 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097836303030303030300953746F - 7056616C75650708636C61426C61636B0754726967676572060E497343686563 - 6B65643D7472756500000F54436F6C6F72416E696D6174696F6E000844757261 - 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 - 6C6C2E436F6C6F720A537461727456616C75650708636C61426C61636B095374 - 6F7056616C756507097836303030303030300754726967676572060F49734368 - 65636B65643D66616C73650000000005545465787400095374796C654E616D65 - 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 - 54657374080C4D617267696E732E4C65667405000000000000008002400B4D61 - 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 - 6874050000000000000080FF3F0A53697A652E57696474680500000000000000 - C605400B53697A652E4865696768740500000000000000F803401453697A652E - 506C6174666F726D44656661756C7408165465787453657474696E67732E466F - 6E74436F6C6F720709784646454545454545165465787453657474696E67732E - 486F727A416C69676E07074C656164696E670000005450463007544C61796F75 - 7400095374796C654E616D65060A70616E656C7374796C6505416C69676E0706 - 43656E7465720A53697A652E57696474680500000000000000C006400B53697A - 652E4865696768740500000000000000A406401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F7207097846463230323032300A53697A65 - 2E57696474680500000000000000C006400B53697A652E486569676874050000 - 0000000000A406401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 - 095374796C654E616D65061970726F67726573736261726D696E696572726F72 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 0000000033338505400B53697A652E4865696768740500000000009999E10440 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F72646572021B000A5452656374616E676C6500095374796C654E616D - 65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E43 - 6F6C6F720709784646343034303430064C6F636B656409074869745465737408 - 0A53697A652E576964746805000000000033338505400B53697A652E48656967 - 68740500000000009999E104401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C - 6500095374796C654E616D65060A68696E64696361746F7205416C69676E0704 - 4C6566740A46696C6C2E436F6C6F720709784646453232413241064C6F636B65 - 64090748697454657374080A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000009999E104401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 0000000A5452656374616E676C6500095374796C654E616D6506067674726163 - 6B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 - 46343034303430064C6F636B6564090748697454657374080A53697A652E5769 - 64746805000000000033338505400B53697A652E486569676874050000000000 - 9999E104401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C65 - 4E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46 - 696C6C2E436F6C6F720709784646453232413241064C6F636B65640907486974 - 54657374080A506F736974696F6E2E5905000000000099998D04400A53697A65 - 2E576964746805000000000033338505400B53697A652E486569676874050000 - 0000000000A803401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 - 00095374796C654E616D65061470726F67726573736261726D696E697374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 33338505400B53697A652E4865696768740500000000009999E104401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 726465720219000A5452656374616E676C6500095374796C654E616D65060668 - 747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 - 0709784646343034303430064C6F636B6564090748697454657374080A53697A - 652E576964746805000000000033338505400B53697A652E4865696768740500 - 000000009999E104401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C65000953 - 74796C654E616D65060A68696E64696361746F7205416C69676E07044C656674 - 0A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564090748 - 697454657374080A53697A652E57696474680500000000000000C804400B5369 - 7A652E4865696768740500000000009999E104401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A - 5452656374616E676C6500095374796C654E616D65060676747261636B05416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646343034 - 303430064C6F636B6564090748697454657374080A53697A652E576964746805 - 000000000033338505400B53697A652E4865696768740500000000009999E104 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D65 - 060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E - 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 - 080A506F736974696F6E2E5905000000000099998D04400A53697A652E576964 - 746805000000000033338505400B53697A652E48656967687405000000000000 - 00A803401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000000005450463007544C61796F757400095374 - 796C654E616D65060D657870616E6465727374796C6505416C69676E07064365 - 6E7465720A53697A652E576964746805000000000000C08407400B53697A652E - 4865696768740500000000000000C803401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F72646572023D000A545265 - 6374616E676C6500095374796C654E616D65060B626772656374616E676C6505 - 416C69676E0708436F6E74656E74730C436C69704368696C6472656E090A4669 - 6C6C2E436F6C6F720709784646324432443244064C6F636B6564090748697454 - 657374080A53697A652E576964746805000000000000C08407400B53697A652E - 4865696768740500000000000000C803401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 07544C61796F757400095374796C654E616D6506074C61796F75743305416C69 - 676E0703546F700A53697A652E576964746805000000000000C08407400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080007544C61796F757400095374796C654E616D650607 - 4C61796F75743405416C69676E0708436F6E74656E74730A53697A652E576964 - 746805000000000000C08407400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C7408000A54526563 - 74616E676C6500095374796C654E616D65060A52656374616E676C653205416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323532 - 353235064C6F636B6564090748697454657374080A53697A652E576964746805 - 000000000000C08407400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F72070978464631353135313500000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653105416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646313531353135064C6F636B6564 - 090748697454657374080A53697A652E576964746805000000000000C0840740 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0F54466C6F6174416E696D6174696F6E00095374796C654E616D650614466C6F - 6174416E696D6174696F6E315374796C65084475726174696F6E050000000000 - 9A9999FD3F0D496E746572706F6C6174696F6E070843697263756C61720C5072 - 6F70657274794E616D6506075363616C652E580A537461727456616C75650500 - 00000000000080FF3F0953746F7056616C756505000000000000000000000754 - 726967676572060F4973457870616E6465643D747275650E5472696767657249 - 6E766572736506104973457870616E6465643D66616C73650000000007544C61 - 796F757400095374796C654E616D6506074C61796F75743305416C69676E0708 - 436F6E74656E74730A53697A652E576964746805000000000000C08407400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C74080005545465787400095374796C654E616D65060474 - 65787405416C69676E07044C656674084175746F53697A65090A436C69705061 - 72656E7409064C6F636B6564090748697454657374080C4D617267696E732E4C - 6566740500000000000000A002400A506F736974696F6E2E5805000000000000 - 00A002400A53697A652E576964746805000000000000B8C703400B53697A652E - 4865696768740500000000000060FF02401453697A652E506C6174666F726D44 - 656661756C74080454657874060454657874165465787453657474696E67732E - 466F6E74436F6C6F720708636C615768697465165465787453657474696E6773 - 2E486F727A416C69676E07074C656164696E670000000F54457870616E646572 - 427574746F6E00095374796C654E616D650606627574746F6E05416C69676E07 - 055269676874064C6F636B6564090A506F736974696F6E2E5805000000000000 - 80F506400A53697A652E57696474680500000000000000A003400B53697A652E - 4865696768740500000000000000C803401453697A652E506C6174666F726D44 - 656661756C740800000000005450463007544C61796F757400095374796C654E - 616D650615616E69696E64696361746F72686F727A7374796C6505416C69676E - 070643656E7465720A53697A652E57696474680500000000000040C006400B53 - 697A652E48656967687405000000000000008000401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 - 00095374796C654E616D65060A52656374616E676C653105416C69676E070643 - 6C69656E740C436C69704368696C6472656E090A46696C6C2E436F6C6F720709 - 7846463430343034300A53697A652E57696474680500000000000040C006400B - 53697A652E48656967687405000000000000008000401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650005 - 544C696E6500095374796C654E616D6506054C696E6531084C696E6554797065 - 0706426F74746F6D0A53697A652E57696474680500000000000000A00B400B53 - 697A652E48656967687405000000000000008000401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646324138 - 324532105374726F6B652E546869636B6E65737305000000000000008002400B - 5374726F6B652E44617368070444617368000F54466C6F6174416E696D617469 - 6F6E00095374796C654E616D650603616E6907456E61626C6564090844757261 - 74696F6E0500000000000000800340044C6F6F70090C50726F70657274794E61 - 6D65060A506F736974696F6E2E580A537461727456616C756505000000000000 - 00C808C00953746F7056616C7565050000000000000000000007547269676765 - 72060E497356697369626C653D7472756500000000005450463007544C61796F - 757400095374796C654E616D65060E6C6F67627574746F6E7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000C005 - 400B53697A652E4865696768740500000000000000C005401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508000A5452656374616E + 6C6F720708636C6157686974650748697454657374080D526F746174696F6E41 + 6E676C650500000000000000B405400A53697A652E5769647468050000000000 + 0000A002400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000000005450463007544C61796F757400095374796C654E616D6506 + 147363726F6C6C6261727269676874627574746F6E05416C69676E070643656E + 7465720756697369626C6508085461624F726465720209000A5452656374616E 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E 0706436C69656E740C436C69704368696C6472656E090A436C6970506172656E 74090A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A53697A652E57696474680500000000000000C005400B53697A652E486569 - 6768740500000000000000C005401453697A652E506C6174666F726D44656661 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 6E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C5072 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 6507097846463230323032300953746F7056616C756507097846463430343034 - 300754726967676572063049734D6F7573654F7665723D747275653B49735072 - 65737365643D66616C73653B4973466F63757365643D66616C73650E54726967 - 676572496E7665727365063149734D6F7573654F7665723D66616C73653B4973 - 507265737365643D66616C73653B4973466F63757365643D66616C736500000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 - 6F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463430343034300953746F7056616C75650709 - 7846463137353739430754726967676572062F4973507265737365643D747275 - 653B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C - 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 15627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05 - 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463241383245320953746F705661 - 6C756507097846463137353739430754726967676572062E4973507265737365 - 643D747275653B49734D6F7573654F7665723D747275653B4973466F63757365 - 643D747275650E54726967676572496E7665727365062F497350726573736564 - 3D66616C73653B49734D6F7573654F7665723D747275653B4973466F63757365 - 643D74727565000005545061746800095374796C654E616D6506055061746831 - 05416C69676E0706436C69656E7409446174612E506174680A5C020000320000 - 00000000000000A841CDCCCC40010000000000A8410000C041010000000000C0 - 3F0000C041010000000000C03F00000000010000009A99694100000000010000 - 000000A841CDCCCC40030000000000A841CDCCCC400000000000009C410000F0 - 4001000000000058410000F04001000000000058410000C03F01000000000040 - 400000C03F01000000000040400000B4410100000000009C410000B441010000 - 0000009C410000F0400300000000009C410000F04000000000000040410000F0 - 4001000000000090400000F04001000000000090400000C04001000000000040 - 410000C04001000000000040410000F04003000000000040410000F040000000 - 0000009040000010410100000000009041000010410100000000009041000028 - 4101000000000090400000284101000000000090400000104103000000000090 - 4000001041000000000000904000004041010000000000904100004041010000 - 0000009041000058410100000000009040000058410100000000009040000040 - 4103000000000090400000404100000000000090400000704101000000000090 - 4100007041010000000000904100008441010000000000904000008441010000 - 0000009040000070410300000000009040000070410000000000009040000090 - 41010000000000904100009041010000000000904100009C4101000000000090 - 4000009C41010000000000904000009041030000000000904000009041000000 - 00000070410000C04001000000333393410000C0400100000000007041666626 - 4001000000000070410000C04003000000000070410000C0400A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080C4D617267696E732E - 4C6566740500000000000000A002400B4D617267696E732E546F700500000000 - 000000A002400D4D617267696E732E52696768740500000000000000A002400E - 4D617267696E732E426F74746F6D0500000000000000A002400A53697A652E57 - 6964746805000000000000009805400B53697A652E4865696768740500000000 - 0000009805401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400000000 - 5450463007544C61796F757400095374796C654E616D65061B74726565766965 - 77657870616E646572627574746F6E7374796C6505416C69676E070643656E74 - 65720B4D617267696E732E546F70050000000000000080FF3F0A53697A652E57 - 696474680500000000000000B003400B53697A652E4865696768740500000000 - 000000B003401453697A652E506C6174666F726D44656661756C740800055450 - 61746800095374796C654E616D650605506174683105416C69676E070643656E - 74657209446174612E506174680A3400000004000000000000000000C8420000 - C84201000000000096430000C842010000000000484300009643030000000000 - C8420000C8420A46696C6C2E436F6C6F720708636C6157686974650748697454 - 657374080D526F746174696F6E416E676C650500000000000000B405C00A5369 - 7A652E57696474680500000000000000A002400B53697A652E48656967687405 - 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174 - 696F6E00095374796C654E616D650614466C6F6174416E696D6174696F6E3153 - 74796C65084475726174696F6E05000000000000000000000D496E746572706F - 6C6174696F6E070843697263756C61720C50726F70657274794E616D65060D52 - 6F746174696F6E416E676C650A537461727456616C75650500000000000000B4 - 05C00953746F7056616C75650500000000000000000000075472696767657206 - 0F4973457870616E6465643D747275650E54726967676572496E766572736506 - 104973457870616E6465643D66616C736500000000545046300A545265637461 - 6E676C6500095374796C654E616D65061174726565766965776974656D737479 - 6C6505416C69676E070643656E7465720946696C6C2E4B696E6407044E6F6E65 - 0748697454657374080553696465730B06426F74746F6D000A53697A652E5769 - 6474680500000000000000AE05400B53697A652E486569676874050000000000 - 0000A004401453697A652E506C6174666F726D44656661756C74080C5374726F - 6B652E436F6C6F720709784646313531353135000C545370656564427574746F - 6E00095374796C654E616D650606627574746F6E05416C69676E07044C656674 - 0A53697A652E57696474680500000000000000A003400B53697A652E48656967 - 68740500000000000000A004401453697A652E506C6174666F726D4465666175 - 6C74080B5374796C654C6F6F6B7570061B7472656576696577657870616E6465 - 72627574746F6E7374796C65000007544C61796F75740005416C69676E070843 - 6F6E74656E74730C4D617267696E732E4C6566740500000000000000A003400A - 53697A652E576964746805000000000000008605400B53697A652E4865696768 - 740500000000000000A004401453697A652E506C6174666F726D44656661756C - 7408000954436865636B426F7800095374796C654E616D650605636865636B05 - 416C69676E07044C6566740843616E466F637573081244697361626C65466F63 - 7573456666656374090A53697A652E57696474680500000000000000A003400B - 53697A652E4865696768740500000000000000A004401453697A652E506C6174 - 666F726D44656661756C740800000654476C79706800095374796C654E616D65 - 060A676C7970687374796C650C4D617267696E732E4C65667405000000000000 - 008000400B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D050000000000000080FF3F05416C69676E07044C6566740A506F736974 - 696F6E2E580500000000000000B003400A506F736974696F6E2E590500000000 - 00000080FF3F0A53697A652E576964746805000000000000008003400B53697A - 652E48656967687405000000000000009804401453697A652E506C6174666F72 - 6D44656661756C7408000005545465787400095374796C654E616D6506047465 - 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 - 080A53697A652E57696474680500000000000000BC04400B53697A652E486569 - 6768740500000000000000A004401453697A652E506C6174666F726D44656661 - 756C74080454657874060454657874165465787453657474696E67732E466F6E - 74436F6C6F720708636C615768697465155465787453657474696E67732E576F - 72645772617008165465787453657474696E67732E486F727A416C69676E0707 - 4C656164696E670000000A5452656374616E676C650005416C69676E07074669 - 744C6566740946696C6C2E4B696E6407044E6F6E650748697454657374080E4D - 617267696E732E426F74746F6D050000000000000080FF3F0553696465730B04 - 4C656674000A53697A652E5769647468050000000000986F8905400B53697A65 - 2E48656967687405000000000000009C04401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646324138324532 - 105374726F6B652E546869636B6E657373050000000000000080004000000054 - 50463007544C61796F757400095374796C654E616D65060D7472656576696577 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000E106400B53697A652E4865696768740500000000000080810740 - 1453697A652E506C6174666F726D44656661756C7408000C5442727573684F62 - 6A65637400095374796C654E616D650618416C7465726E6174696E67526F7742 - 61636B67726F756E640B42727573682E436F6C6F720709783046464646464646 - 00000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 - 6F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 - 09784646323032303230064C6F636B6564090748697454657374080C50616464 - 696E672E4C656674050000000000000080FF3F0D50616464696E672E52696768 - 74050000000000000080FF3F0A53697A652E57696474680500000000000000E1 - 06400B53697A652E48656967687405000000000000808107401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 463135313531350007544C61796F757400095374796C654E616D650607636F6E - 74656E7405416C69676E0706436C69656E740C436C69704368696C6472656E09 - 0B4D617267696E732E546F70050000000000000080FF3F0A53697A652E576964 - 74680500000000000000CD06400B53697A652E48656967687405000000000000 - 00F006401453697A652E506C6174666F726D44656661756C7408000A54526563 - 74616E676C6500095374796C654E616D65060973656C656374696F6E0A46696C - 6C2E436F6C6F7207097846463241383245320748697454657374080A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C65000953 - 74796C654E616D650610666F637573656473656C656374696F6E0A46696C6C2E - 436F6C6F7207097846463241383245320748697454657374080A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E650B5374726F6B652E446173680703446F7400 - 00000A545363726F6C6C42617200095374796C654E616D65060A767363726F6C - 6C62617205416C69676E070552696768740B536D616C6C4368616E6765050000 - 00000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D - 617267696E732E4C65667405000000000000008000400A506F736974696F6E2E - 580500000000000000D006400A53697A652E5769647468050000000000000080 - 03400B53697A652E4865696768740500000000000000F106401453697A652E50 - 6C6174666F726D44656661756C740800000A545363726F6C6C42617200095374 - 796C654E616D65060A687363726F6C6C62617205416C69676E0706426F74746F - 6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 - 74696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000 - 000000008000400A506F736974696F6E2E58050000000000000080FF3F0A506F - 736974696F6E2E590500000000000000F306400A53697A652E57696474680500 - 000000000000DF06400B53697A652E4865696768740500000000000000800340 - 1453697A652E506C6174666F726D44656661756C740800000F54536D616C6C53 - 63726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C - 6C62617205416C69676E070552696768740B536D616C6C4368616E6765050000 - 00000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D - 617267696E732E4C65667405000000000000008000400A506F736974696F6E2E - 580500000000000000C605400A506F736974696F6E2E59050000000000000080 - 00400A53697A652E576964746805000000000000008002400B53697A652E4865 - 6967687405000000000000008002401453697A652E506C6174666F726D446566 - 61756C74080756697369626C650800000F54536D616C6C5363726F6C6C426172 - 00095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69 - 676E0706426F74746F6D0B536D616C6C4368616E676505000000000000000000 - 000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E - 732E546F7005000000000000008000400A506F736974696F6E2E580500000000 - 0000008000400A506F736974696F6E2E590500000000000000E205400A53697A - 652E576964746805000000000000009606400B53697A652E4865696768740500 - 0000000000008002401453697A652E506C6174666F726D44656661756C740807 - 56697369626C650800000000} - end - item - Platform = 'OSX Yosemite' - ResourcesBin = { - 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 - AF00060B627574746F6E7374796C6503EB04060D636865636B626F787374796C - 6503F3050609656469747374796C6503D4050609677269647374796C6503E608 - 060D67726F7570626F787374796C6503B402060F6865616465726974656D7374 - 796C6503F403060E696D61676563656C6C7374796C65033D01060A6C6162656C - 7374796C65032001060D6C697374626F78666F6F746572038B0106106C697374 - 626F786974656D7374796C6503520306126C697374626F78706C61696E686561 - 646572036C02060C6C697374626F787374796C6503AA07060E706F7075706365 - 6C6C7374796C65038E03061070726F67726573736261727374796C6503020506 - 1170726F677265737363656C6C7374796C6503CB0206157363726F6C6C626172 - 626F74746F6D627574746F6E03740406147363726F6C6C62617268747261636B - 7374796C65033B0106137363726F6C6C6261726C656674627574746F6E038704 - 06147363726F6C6C6261727269676874627574746F6E038A04060E7363726F6C - 6C6261727374796C6503630406127363726F6C6C626172746F70627574746F6E - 03840406147363726F6C6C62617276747261636B7374796C65033B01060C7370 - 696E626F787374796C65034F08060B7377697463687374796C6503ED01060F74 - 6162636F6E74726F6C7374796C6503F701060B746162646F747374796C65037F - 01060C7461626974656D7374796C65032B05060D7465787463656C6C7374796C - 6503A601060D7468756D626261727374796C65034C03060A7468756D62737479 - 6C65034402060D747261636B6261727374796C65034A0806096D656D6F737479 - 6C65037008060D73697A65677269707374796C6503FB04060E73746174757362 - 61727374796C6503DB01060C746F6F6C6261727374796C6503CA00061570726F - 67726573736261726572726F727374796C65030705060E6C696E6B6C6162656C - 7374796C65035B030613736D616C6C7363726F6C6C6261727374796C6503AE01 - 060D636F6D626F626F787374796C65032708060D73706C69747465727374796C - 6503C0030610726164696F627574746F6E7374796C6503C4050618756C63656E - 746572726164696F627574746F6E7374796C650368050616756C6C6566747261 - 64696F627574746F6E7374796C6503A7050617756C7269676874726164696F62 - 7574746F6E7374796C6503AC050615616E69696E64696361746F72686F727A73 - 74796C6503D502060E6C6F67627574746F6E7374796C6503DA07061365787061 - 6E646572627574746F6E7374796C650381020615657870616E64657263686563 - 6B626F787374796C6503DB05060D657870616E6465727374796C65031607060A - 70616E656C7374796C65034401061970726F67726573736261726D696E696572 - 726F727374796C6503EE03061470726F67726573736261726D696E697374796C - 6503F403060E636F6D626F656469747374796C6503F80906106D656E75626172 - 6974656D7374796C6503650B060C6D656E756261727374796C6503B802060D6D - 656E756974656D7374796C6503890B06126D656E75736570617261746F727374 - 796C6503E501060D6D656E75766965777374796C6503DD0200545046300A5452 - 656374616E676C6500095374796C654E616D65060F6261636B67726F756E6473 - 74796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F72070978 - 46463244324432440A53697A652E576964746805000000000000009407400B53 - 697A652E4865696768740500000000000080D206401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669 - 7369626C650800005450463007544C61796F757400095374796C654E616D6506 - 0B627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E - 57696474680500000000000000C805400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F726465720202000A5452656374616E676C65000953 - 74796C654E616D65060A6261636B67726F756E6405416C69676E0706436C6965 - 6E740C436C69704368696C6472656E090A436C6970506172656E74090A46696C - 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 - 2E57696474680500000000000000C805400B53697A652E486569676874050000 - 0000000000C803401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 - C0004007595261646975730500000000000000C00040000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 - 6E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C5072 - 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463230323032300953746F7056616C756507097846463430343034 - 300754726967676572063049734D6F7573654F7665723D747275653B49735072 - 65737365643D66616C73653B4973466F63757365643D66616C73650E54726967 - 676572496E7665727365063149734D6F7573654F7665723D66616C73653B4973 - 507265737365643D66616C73653B4973466F63757365643D66616C736500000F + 300754726967676572062049734D6F7573654F7665723D747275653B49735072 + 65737365643D66616C73650E54726967676572496E7665727365062149734D6F + 7573654F7665723D66616C73653B4973507265737365643D66616C736500000F 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 6F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 7461727456616C756507097846463430343034300953746F7056616C75650709 - 7846463137353739430754726967676572062F4973507265737365643D747275 - 653B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C - 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 15627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05 + 7846463137353739430754726967676572061F4973507265737365643D747275 + 653B49734D6F7573654F7665723D747275650E54726967676572496E76657273 + 6506204973507265737365643D66616C73653B49734D6F7573654F7665723D74 + 72756500000007544C61796F757400095374796C654E616D6506074C61796F75 + 743105416C69676E070643656E7465720A53697A652E57696474680500000000 + 000000A002400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C74080005545061746800095374796C + 654E616D650605506174683105416C69676E0706436C69656E7409446174612E + 506174680A3400000004000000000000000000C8420000C84201000000000096 + 430000C842010000000000484300009643030000000000C8420000C8420A4669 + 6C6C2E436F6C6F720708636C6157686974650748697454657374080D526F7461 + 74696F6E416E676C650500000000000000B405C00A53697A652E576964746805 + 00000000000000A002400B53697A652E4865696768740500000000000000C001 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000000005450463007544C61796F757400095374796C65 + 4E616D6506127363726F6C6C626172746F70627574746F6E05416C69676E0706 + 43656E7465720756697369626C6508085461624F72646572020A000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0706436C69656E740C436C69704368696C6472656E090A436C69705061 + 72656E74090A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463230323032300953746F7056616C756507097846463430 + 343034300754726967676572062049734D6F7573654F7665723D747275653B49 + 73507265737365643D66616C73650E54726967676572496E7665727365062149 + 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562 + 7574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463430343034300953746F7056616C75 + 6507097846463137353739430754726967676572061F4973507265737365643D + 747275653B49734D6F7573654F7665723D747275650E54726967676572496E76 + 6572736506204973507265737365643D66616C73653B49734D6F7573654F7665 + 723D7472756500000007544C61796F757400095374796C654E616D6506074C61 + 796F75743105416C69676E070643656E7465720A53697A652E57696474680500 + 000000000000A002400B53697A652E4865696768740500000000000000C00140 + 1453697A652E506C6174666F726D44656661756C740800055450617468000953 + 74796C654E616D650605506174683105416C69676E0706436C69656E74094461 + 74612E506174680A3400000004000000000000000000C8420000C84201000000 + 000096430000C842010000000000484300009643030000000000C8420000C842 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D52 + 6F746174696F6E416E676C650500000000000000B406400A53697A652E576964 + 74680500000000000000A002400B53697A652E48656967687405000000000000 + 00C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000000005450463007544C61796F757400095374 + 796C654E616D65060E7363726F6C6C6261727374796C6505416C69676E070643 + 656E7465720756697369626C6508085461624F72646572020B00075442757474 + 6F6E00095374796C654E616D65060A6C656674627574746F6E05416C69676E07 + 044C656674064C6F636B6564090A506F736974696F6E2E590500000000000000 + 8003400A53697A652E576964746805000000000000008003400B53697A652E48 + 656967687405000000000000009003401453697A652E506C6174666F726D4465 + 6661756C74080B5374796C654C6F6F6B757006137363726F6C6C6261726C6566 + 74627574746F6E00000754427574746F6E00095374796C654E616D65060B7269 + 676874627574746F6E05416C69676E07055269676874064C6F636B6564090A50 + 6F736974696F6E2E5805000000000000008804400A506F736974696F6E2E5905 + 000000000000008003400A53697A652E57696474680500000000000000800340 + 0B53697A652E48656967687405000000000000009003401453697A652E506C61 + 74666F726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C + 6C6261727269676874627574746F6E00000754427574746F6E00095374796C65 + 4E616D65060C626F74746F6D627574746F6E05416C69676E0706426F74746F6D + 064C6F636B6564090A506F736974696F6E2E5905000000000000008804400A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 05000000000000008003401453697A652E506C6174666F726D44656661756C74 + 080B5374796C654C6F6F6B757006157363726F6C6C626172626F74746F6D6275 + 74746F6E00000654547261636B00095374796C654E616D65060668747261636B + 05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E74617469 + 6F6E070A486F72697A6F6E74616C0A53697A652E576964746805000000000000 + 009003400B53697A652E48656967687405000000000000009003401453697A65 + 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570061473 + 63726F6C6C62617268747261636B7374796C6500000654547261636B00095374 + 796C654E616D65060676747261636B05416C69676E0706436C69656E74064C6F + 636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A5369 + 7A652E576964746805000000000000009003400B53697A652E48656967687405 + 000000000000009003401453697A652E506C6174666F726D44656661756C7408 + 0B5374796C654C6F6F6B757006147363726F6C6C62617276747261636B737479 + 6C6500000754427574746F6E00095374796C654E616D650609746F7062757474 + 6F6E05416C69676E0703546F700A53697A652E57696474680500000000000000 + C804400B53697A652E48656967687405000000000000008003401453697A652E + 506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006127363 + 726F6C6C626172746F70627574746F6E000000545046300A5452656374616E67 + 6C6500095374796C654E616D65060A7468756D627374796C6505416C69676E07 + 0643656E7465720A46696C6C2E436F6C6F720709784646344434443444074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369 + 626C6508000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 06147468756D62436F6C6F72416E696D6174696F6E31084475726174696F6E05 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463241383245320953746F705661 - 6C756507097846463137353739430754726967676572062E4973507265737365 - 643D747275653B49734D6F7573654F7665723D747275653B4973466F63757365 - 643D747275650E54726967676572496E7665727365062F497350726573736564 - 3D66616C73653B49734D6F7573654F7665723D747275653B4973466F63757365 - 643D7472756500000005545465787400095374796C654E616D65060474657874 - 05416C69676E0706436C69656E7413456E61626C6544726167486967686C6967 - 6874080748697454657374080A53697A652E57696474680500000000000000C8 - 05400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C7408165465787453657474696E67732E466F6E - 74436F6C6F720708636C6157686974650000005450463007544C61796F757400 - 095374796C654E616D65060D636865636B626F787374796C6505416C69676E07 - 0643656E7465720A53697A652E5769647468050000000000ACAA8006400B5369 - 7A652E48656967687405000000000058559904401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F7264657202030007 - 544C61796F75740005416C69676E07044C6566740A53697A652E576964746805 - 000000000000009003400B53697A652E48656967687405000000000058559904 - 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E - 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E - 070643656E7465720A46696C6C2E436F6C6F7207097846463230323032300748 - 697454657374080A53697A652E57696474680500000000000000F002400B5369 - 7A652E4865696768740500000000000000F002401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 313507585261646975730500000000000000C000400759526164697573050000 - 0000000000C00040000A5452656374616E676C6500095374796C654E616D6506 - 0A52656374616E676C653105416C69676E0706436C69656E740A46696C6C2E43 - 6F6C6F720709784646324138324532074869745465737408074F706163697479 - 05000000000000000000000C4D617267696E732E4C6566740500000000000000 - 8000400B4D617267696E732E546F7005000000000000008000400D4D61726769 - 6E732E526967687405000000000000008000400E4D617267696E732E426F7474 - 6F6D05000000000000008000400A53697A652E57696474680500000000000000 - B002400B53697A652E4865696768740500000000000000B002401453697A652E + 6C6F720A537461727456616C756507097846463444344434440953746F705661 + 6C756507097846463137353739430754726967676572060E4973507265737365 + 643D747275650E54726967676572496E7665727365060F497350726573736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 + 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464634 + 44344434440953746F7056616C75650707636C61477261790754726967676572 + 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 + 65061149734D6F7573654F7665723D66616C7365000000545046300D54537769 + 7463684F626A65637400095374796C654E616D65060B7377697463687374796C + 6505416C69676E070643656E746572044B696E64070C466164696E6754726163 + 6B730A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C7408085461624F72646572020C12547261636B696E675468756D625363 + 616C65050000000000000080FF3F0756697369626C65080A46696C6C2E436F6C + 6F7207097846463230323032300C46696C6C4F6E2E436F6C6F72070978464631 + 37353739430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F6B652E + 4B696E6407044E6F6E650B5468756D622E436F6C6F7207097846463430343034 + 300D5468756D624F6E2E436F6C6F7207097846463241383245320C5468756D62 + 4F6E2E4B696E640705536F6C6964105468756D625374726F6B652E4B696E6407 + 044E6F6E650F5468756D625374726F6B652E4361700705526F756E6410546875 + 6D625374726F6B652E446173680706437573746F6D105468756D625374726F6B + 652E4A6F696E0705526F756E64165468756D625374726F6B652E437573746F6D + 446173680A08000000000000000000000000005450463007544C61796F757400 + 095374796C654E616D65060C7370696E626F787374796C6505416C69676E0706 + 43656E7465720A53697A652E576964746805000000000000008A06400B53697A + 652E4865696768740500000000000000C003401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508085461624F72646572020D000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 3230323032300A53697A652E576964746805000000000000008A06400B53697A + 652E4865696768740500000000000000C003401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 + 6F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05000000 + 0000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65060C53 + 74726F6B652E436F6C6F720A537461727456616C756507097846463135313531 + 350953746F7056616C7565070978464634303430343007547269676765720610 + 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 + 1149734D6F7573654F7665723D66616C73650000000C5442727573684F626A65 + 637400095374796C654E616D65060A666F726567726F756E640B42727573682E + 436F6C6F72070978464645414541454100000C5442727573684F626A65637400 + 095374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F + 720709783936324138324532000007544C61796F757400095374796C654E616D + 650607636F6E74656E7405416C69676E0706436C69656E74064C6F636B656409 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E57696474680500000000000000AC05400B53697A652E4865 + 696768740500000000000000A003401453697A652E506C6174666F726D446566 + 61756C740800000754427574746F6E00095374796C654E616D65060B6D696E75 + 73627574746F6E05416C69676E07044C6566740843616E466F63757308064375 + 72736F72070763724172726F770C4D617267696E732E4C656674050000000000 + 00008000400B4D617267696E732E546F7005000000000000008000400D4D6172 + 67696E732E526967687405000000000000008000400E4D617267696E732E426F + 74746F6D05000000000000008000400A506F736974696F6E2E58050000000000 + 00008000400A506F736974696F6E2E5905000000000000008000400A53697A65 + 2E57696474680500000000000000A003400B53697A652E486569676874050000 + 0000000000A003401453697A652E506C6174666F726D44656661756C74080B53 + 74796C654C6F6F6B7570060B627574746F6E7374796C65000554506174680005 + 416C69676E070643656E74657209446174612E506174680A4000000005000000 + 000000000000803F00000000010000000000803F0000803F0100000000000000 + 0000003F010000000000803F00000000030000000000803F000000000A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080A53697A652E + 576964746805000000000000008002400B53697A652E48656967687405000000 + 000000008002401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E650000000754427574746F6E00095374796C + 654E616D65060A706C7573627574746F6E05416C69676E070552696768740843 + 616E466F6375730806437572736F72070763724172726F770C4D617267696E73 + 2E4C65667405000000000000008000400B4D617267696E732E546F7005000000 + 000000008000400D4D617267696E732E52696768740500000000000000800040 + 0E4D617267696E732E426F74746F6D05000000000000008000400A506F736974 + 696F6E2E580500000000000000E805400A506F736974696F6E2E590500000000 + 0000008000400A53697A652E57696474680500000000000000A003400B53697A + 652E4865696768740500000000000000A003401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B7570060B627574746F6E737479 + 6C65000554506174680005416C69676E070643656E74657209446174612E5061 + 74680A3400000004000000000000000000000000000000010000000000000000 + 00803F010000000000803F0000003F0300000000000000000000000A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 + 6964746805000000000000008002400B53697A652E4865696768740500000000 + 0000008002401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 + 5374796C654E616D65060F746162636F6E74726F6C7374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000000008E06400B53 + 697A652E486569676874050000000000FFFFC905401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572020E00 + 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646333033303330064C6F636B6564090748697454657374080C50616464696E + 672E4C65667405000000000000008000400B50616464696E672E546F70050000 + 00000000008000400D50616464696E672E526967687405000000000000008000 + 400E50616464696E672E426F74746F6D05000000000000008000400A53697A65 + 2E576964746805000000000000008E06400B53697A652E486569676874050000 + 000000FFFFC905401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F720709784646313531353135000000545046300A5452 + 656374616E676C6500095374796C654E616D65060B746162646F747374796C65 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463135 + 313531350748697454657374080A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E6507585261646975730500000000000000C000400759526164697573050000 - 0000000000C00040000F54466C6F6174416E696D6174696F6E00095374796C65 - 4E616D65061B6368656368626F7856697362696C697479416E696D6174696F6E - 31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 - 6D6506074F7061636974790A537461727456616C756505000000000000000000 - 000953746F7056616C75650500000000000000C805400754726967676572060E - 4973436865636B65643D747275650E54726967676572496E7665727365060F49 - 73436865636B65643D66616C73650000000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D650618636865636B626F785374726F6B65416E696D - 6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 - 7274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565 - 07097846463135313531350953746F7056616C75650709784646324138324532 - 0754726967676572060E4973436865636B65643D747275650E54726967676572 - 496E7665727365060F4973436865636B65643D66616C736500000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650617636865636B626F7843 - 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCC - FB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 - 616C756507097846463430343034300754726967676572061049734D6F757365 - 4F7665723D747275650E54726967676572496E7665727365061149734D6F7573 - 654F7665723D66616C73650000000005545465787400095374796C654E616D65 - 06047465787405416C69676E0706436C69656E740A53697A652E576964746805 - 00000000005855DD05400B53697A652E48656967687405000000000058559904 - 401453697A652E506C6174666F726D44656661756C7408045465787406045465 - 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 - 6974650000005450463007544C61796F757400095374796C654E616D65060965 - 6469747374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000C805400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F726465720204000C5442727573684F626A6563740009537479 - 6C654E616D65060A666F726567726F756E6400000C5442727573684F626A6563 - 7400095374796C654E616D65060973656C656374696F6E0B42727573682E436F - 6C6F72070978393632413832453200000B54466F6E744F626A65637400095374 - 796C654E616D650604666F6E7409466F6E742E53697A650500000000000000D0 - 024000000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F - 7207097846463230323032300748697454657374080A53697A652E5769647468 - 0500000000000000C805400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313507585261646975730500000000000000 - C0004007595261646975730500000000000000C00040000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650614656469745374726F6B65416E - 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C - 756507097846463135313531350953746F7056616C7565070978464632413832 - 45320754726967676572060E4973466F63757365643D747275650E5472696767 - 6572496E7665727365060F4973466F63757365643D66616C736500000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D65061465646974537472 - 6F6B65416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB - 3F07496E7665727365090C50726F70657274794E616D65060C5374726F6B652E - 436F6C6F720A537461727456616C756507097846463135313531350953746F70 - 56616C756507097846463443344334430754726967676572062149734D6F7573 - 654F7665723D747275653B4973466F63757365643D66616C73653B0E54726967 - 676572496E7665727365062249734D6F7573654F7665723D66616C73653B4973 - 466F63757365643D66616C73653B00000007544C61796F757400095374796C65 - 4E616D650607627574746F6E7305416C69676E07055269676874064C6F636B65 - 64090B4D617267696E732E546F7005000000000000008000400D4D617267696E - 732E526967687405000000000000008000400E4D617267696E732E426F74746F - 6D05000000000000008000400A506F736974696F6E2E580500000000000000C0 - 04400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000A803401453697A652E506C6174666F726D44656661756C7408000007544C - 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 - 06436C69656E74064C6F636B6564090C4D617267696E732E4C65667405000000 - 000000008001400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E526967687405000000000000008000400E4D617267696E732E - 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 00000000A804400B53697A652E4865696768740500000000000000A803401453 - 697A652E506C6174666F726D44656661756C7408000006544C6162656C000953 - 74796C654E616D65060670726F6D7074064C6F636B656409074F706163697479 - 050000000000000080FE3F165465787453657474696E67732E466F6E74436F6C - 6F720708636C6157686974650454657874060454657874000000545046300754 - 4C61796F757400095374796C654E616D650609677269647374796C6505416C69 - 676E070643656E7465720A53697A652E5769647468050000000000FFFFE90540 - 0B53697A652E48656967687405000000000000008306401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 05000C5442727573684F626A65637400095374796C654E616D650618416C7465 - 726E6174696E67526F774261636B67726F756E640B42727573682E436F6C6F72 - 070978333237383738373800000C5442727573684F626A65637400095374796C - 654E616D6506086C696E6566696C6C0B42727573682E436F6C6F720709784646 - 31353135313500000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E - 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 - 080C50616464696E672E4C65667405000000000000008000400B50616464696E - 672E546F7005000000000000008000400D50616464696E672E52696768740500 - 0000000000008000400E50616464696E672E426F74746F6D0500000000000000 - 8000400A53697A652E5769647468050000000000FFFFE905400B53697A652E48 + 6E650756697369626C6508000F54436F6C6F72416E696D6174696F6E00084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646313531353135 + 0953746F7056616C756507097846463241383245320754726967676572060F49 + 7353656C65637465643D747275650E54726967676572496E7665727365061049 + 7353656C65637465643D66616C73650000005450463007544C61796F75740009 + 5374796C654E616D65060C7461626974656D7374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F72646572020F000A5452 + 656374616E676C6500095374796C654E616D650603746F7005416C69676E0708 + 436F6E74656E74730C436C69704368696C6472656E0907436F726E6572730B07 + 546F704C65667408546F705269676874000A46696C6C2E436F6C6F7207097846 + 46323032303230064C6F636B6564090748697454657374080553696465730B03 + 546F70044C656674055269676874000A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000654476C79706800095374796C654E616D65060A67 + 6C7970687374796C650C4D617267696E732E4C65667405000000000000008001 + 400D4D617267696E732E526967687405000000000000008001C005416C69676E + 07044C6566740A53697A652E576964746805000000000000008003400B53697A + 652E48656967687405000000000000008003401453697A652E506C6174666F72 + 6D44656661756C7408000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080C4D617267696E732E4C6566740500000000000000C000400B4D617267696E + 732E546F700500000000000000C000400D4D617267696E732E52696768740500 + 000000000000C000400E4D617267696E732E426F74746F6D0500000000000000 + C000400A53697A652E57696474680500000000000000B004400B53697A652E48 + 656967687405000000000000009803401453697A652E506C6174666F726D4465 + 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C615768697465155465787453657474696E67732E576F726457726170080000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650612746162 + 436F6C6F72416E696D6174696F6E310D416E696D6174696F6E54797065070549 + 6E4F7574084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464634303430343007547269 + 67676572062149734D6F7573654F7665723D747275653B497353656C65637465 + 643D66616C73650E54726967676572496E7665727365062249734D6F7573654F + 7665723D66616C73653B497353656C65637465643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650612746162436F6C6F + 72416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646324138 + 3245320754726967676572060F497353656C65637465643D747275650E547269 + 67676572496E76657273650610497353656C65637465643D66616C7365000000 + 00545046300A5452656374616E676C6500095374796C654E616D65060D746875 + 6D626261727374796C6505416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463241383245320748697454657374080A53697A652E576964 + 74680500000000000000A003400B53697A652E48656967687405000000000000 + 00A003401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350756697369626C6508000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D6506147468756D62436F + 6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB + 3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463241383245320953746F7056616C7565070978464631 + 37353739430754726967676572061F4973507265737365643D747275653B4973 + 4D6F7573654F7665723D747275650E54726967676572496E7665727365061049 + 73507265737365643D66616C73653B00000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F + 6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 41383245320953746F7056616C75650709784646343039424646075472696767 + 6572062049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 + 3D66616C73653B4973507265737365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D6506157468756D625374726F6B65 + 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463135313531350953746F7056616C756507097846463137 + 353739430754726967676572061F4973507265737365643D747275653B49734D + 6F7573654F7665723D747275650E54726967676572496E7665727365060F4973 + 507265737365643D66616C73650000005450463007544C61796F757400095374 + 796C654E616D65060C6C697374626F787374796C6505416C69676E070643656E + 7465720A53697A652E5769647468050000000000FFFFE905400B53697A652E48 656967687405000000000000008306401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350758 - 5261646975730500000000000000C00040075952616469757305000000000000 - 00C0004000075448656164657200095374796C654E616D650606686561646572 - 0553696465730B03546F70044C65667406426F74746F6D055269676874000541 - 6C69676E0703546F700A506F736974696F6E2E5805000000000000008000400A - 506F736974696F6E2E5905000000000000008000400A53697A652E5769647468 - 050000000000FFFFE105400B53697A652E4865696768740500000000000000A8 - 03401453697A652E506C6174666F726D44656661756C7408000007544C61796F - 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C - 69656E740C436C69704368696C6472656E090A53697A652E5769647468050000 - 000000FFFFC105400B53697A652E4865696768740500000000000000B4054014 - 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C - 6500095374796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C - 6F7207097846463241383245320748697454657374080A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000000000 - C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6507585261646975730500000000000000C000400759 - 5261646975730500000000000000C0004000000A5452656374616E676C650009 - 5374796C654E616D650605666F6375730A46696C6C2E436F6C6F720709784146 - 3241383245320748697454657374080C4D617267696E732E4C65667405000000 + 6661756C74080756697369626C6508085461624F726465720210000C54427275 + 73684F626A65637400095374796C654E616D650618416C7465726E6174696E67 + 526F774261636B67726F756E640B42727573682E436F6C6F7207097846463243 + 3243324300000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646323032303230064C6F636B6564090748697454657374080C + 50616464696E672E4C65667405000000000000008000400B50616464696E672E + 546F7005000000000000008000400D50616464696E672E526967687405000000 + 000000008000400E50616464696E672E426F74746F6D05000000000000008000 + 400A53697A652E5769647468050000000000FFFFE905400B53697A652E486569 + 67687405000000000000008306401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C + 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 + 06436C69656E740C436C69704368696C6472656E090A53697A652E5769647468 + 050000000000FFFFC105400B53697A652E4865696768740500000000000000DE + 05401453697A652E506C6174666F726D44656661756C7408000A545265637461 + 6E676C6500095374796C654E616D65060973656C656374696F6E0A46696C6C2E + 436F6C6F7207097846463241383245320748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009537479 + 6C654E616D650610666F637573656473656C656374696F6E0A46696C6C2E436F + 6C6F7207097846463241383245320748697454657374080A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650B5374726F6B652E446173680703446F74000000 + 0A545363726F6C6C42617200095374796C654E616D65060A767363726F6C6C62 + 617205416C69676E070552696768740B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E0708566572746963616C0A506F73 + 6974696F6E2E58050000000000FFFFC505400A506F736974696F6E2E59050000 + 00000000008000400A53697A652E576964746805000000000000008003400B53 + 697A652E4865696768740500000000000000DE05401453697A652E506C617466 + 6F726D44656661756C740800000A545363726F6C6C42617200095374796C654E + 616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D0B536D + 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E + 070A486F72697A6F6E74616C0A506F736974696F6E2E58050000000000000080 + 00400A506F736974696F6E2E590500000000000000E205400A53697A652E5769 + 647468050000000000FFFFE105400B53697A652E486569676874050000000000 + 00008003401453697A652E506C6174666F726D44656661756C740800000F5453 + 6D616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C + 7363726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E + 676505000000000000000000000B4F7269656E746174696F6E07085665727469 + 63616C0C4D617267696E732E4C65667405000000000000008000400A506F7369 + 74696F6E2E580500000000000000C605400A506F736974696F6E2E5905000000 + 000000008000400A53697A652E576964746805000000000000008002400B5369 + 7A652E48656967687405000000000000008002401453697A652E506C6174666F + 726D44656661756C74080756697369626C650800000F54536D616C6C5363726F + 6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C6261 + 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D + 617267696E732E546F7005000000000000008000400A506F736974696F6E2E58 + 05000000000000008000400A506F736974696F6E2E590500000000000000E205 + 400A53697A652E576964746805000000000000009606400B53697A652E486569 + 67687405000000000000008002401453697A652E506C6174666F726D44656661 + 756C74080756697369626C65080000000B54476C6F774566666563740008536F + 66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F720709784646 + 463639453244074F7061636974790500000000006666E6FE3F07547269676765 + 72060E4973466F63757365643D7472756507456E61626C656408000000545046 + 3007544C61796F757400095374796C654E616D65060D6C697374626F78666F6F + 74657205416C69676E070643656E7465720A53697A652E576964746805000000 + 000000009205400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F7264657202110005545465787400095374796C654E616D65060474657874 + 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080C + 4D617267696E732E4C6566740500000000000000A001400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 00000000A001400E4D617267696E732E426F74746F6D05000000000000008000 + 400A53697A652E57696474680500000000000000FC04400B53697A652E486569 + 6768740500000000000000B003401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 57686974650000005450463007544C61796F757400095374796C654E616D6506 + 106C697374626F786974656D7374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000000D605400B53697A652E4865696768 + 740500000000000000C003401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508085461624F726465720212000654476C7970680009 + 5374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C65 + 667405000000000000008000400B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E526967687405000000000000008000400E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F05416C69676E07044C + 6566740A53697A652E576964746805000000000000008003400B53697A652E48 + 656967687405000000000000008003401453697A652E506C6174666F726D4465 + 6661756C7408000005545465787400095374796C654E616D6506047465787405 + 416C69676E0706436C69656E740748697454657374080C4D617267696E732E4C + 6566740500000000000000C000400B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E52696768740500000000000000C000400E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 + 6474680500000000000000CA05400B53697A652E486569676874050000000000 + 0000B003401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746515546578 + 7453657474696E67732E576F72645772617008165465787453657474696E6773 + 2E486F727A416C69676E07074C656164696E6700000954436865636B426F7800 + 095374796C654E616D650605636865636B05416C69676E07084D6F73744C6566 + 740843616E466F637573081244697361626C65466F637573456666656374090A + 53697A652E57696474680500000000000000A003400B53697A652E4865696768 + 740500000000000000C003401453697A652E506C6174666F726D44656661756C + 74080756697369626C65080000005450463007544C61796F757400095374796C + 654E616D6506126C697374626F78706C61696E68656164657205416C69676E07 + 0643656E7465720A53697A652E576964746805000000000000009205400B5369 + 7A652E4865696768740500000000000000D003401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F726465720213000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 + 46324432443244064C6F636B6564090748697454657374080A53697A652E5769 + 64746805000000000000009205400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F72070978464631353135313500000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + A001400B4D617267696E732E546F7005000000000000008000400D4D61726769 + 6E732E52696768740500000000000000A001400E4D617267696E732E426F7474 + 6F6D05000000000000008000400A53697A652E57696474680500000000000000 + FC04400B53697A652E4865696768740500000000000000B003401453697A652E + 506C6174666F726D44656661756C7408165465787453657474696E67732E466F + 6E74436F6C6F720708636C6157686974650000005450463007544C61796F7574 + 00095374796C654E616D650609677269647374796C6505416C69676E07064365 + 6E7465720A53697A652E5769647468050000000000FFFFE905400B53697A652E + 48656967687405000000000000008306401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F726465720214000C544272 + 7573684F626A65637400095374796C654E616D650618416C7465726E6174696E + 67526F774261636B67726F756E640B42727573682E436F6C6F72070978333237 + 383738373800000C5442727573684F626A65637400095374796C654E616D6506 + 086C696E6566696C6C0B42727573682E436F6C6F720709784646313531353135 + 00000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 09784646323032303230064C6F636B6564090748697454657374080C50616464 + 696E672E4C65667405000000000000008000400B50616464696E672E546F7005 + 000000000000008000400D50616464696E672E52696768740500000000000000 + 8000400E50616464696E672E426F74746F6D05000000000000008000400A5369 + 7A652E5769647468050000000000FFFFE905400B53697A652E48656967687405 + 000000000000008306401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350007544865616465 + 7200095374796C654E616D6506066865616465720553696465730B03546F7004 + 4C65667406426F74746F6D0552696768740005416C69676E0703546F700A506F + 736974696F6E2E5805000000000000008000400A506F736974696F6E2E590500 + 0000000000008000400A53697A652E5769647468050000000000FFFFE105400B + 53697A652E4865696768740500000000000000A803401453697A652E506C6174 + 666F726D44656661756C7408000007544C61796F757400095374796C654E616D + 650607636F6E74656E7405416C69676E0706436C69656E740C436C6970436869 + 6C6472656E090A53697A652E5769647468050000000000FFFFC105400B53697A + 652E4865696768740500000000000000B405401453697A652E506C6174666F72 + 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 + 060973656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245 + 320748697454657374080A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000A5452656374616E676C6500095374796C654E616D650605666F6375730A46 + 696C6C2E436F6C6F7207097841463241383245320748697454657374080C4D61 + 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075952616469757305000000 + 00000000C000400000000A545363726F6C6C42617200095374796C654E616D65 + 060A767363726F6C6C62617205416C69676E070552696768740B536D616C6C43 + 68616E676505000000000000000000000B4F7269656E746174696F6E07085665 + 72746963616C0A506F736974696F6E2E58050000000000FFFFC505400A506F73 + 6974696F6E2E590500000000000000B803400A53697A652E5769647468050000 + 00000000008003400B53697A652E4865696768740500000000000000B4054014 + 53697A652E506C6174666F726D44656661756C740800000A545363726F6C6C42 + 617200095374796C654E616D65060A687363726F6C6C62617205416C69676E07 + 06426F74746F6D0B536D616C6C4368616E676505000000000000000000000B4F + 7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E + 5805000000000000008000400A506F736974696F6E2E590500000000000000E2 + 05400A53697A652E5769647468050000000000FFFFE105400B53697A652E4865 + 6967687405000000000000008003401453697A652E506C6174666F726D446566 + 61756C740800000F54536D616C6C5363726F6C6C42617200095374796C654E61 + 6D65060F76736D616C6C7363726F6C6C62617205416C69676E07055269676874 + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 + 00008000400A506F736974696F6E2E580500000000000000C605400A506F7369 + 74696F6E2E5905000000000000008000400A53697A652E576964746805000000 + 000000008002400B53697A652E48656967687405000000000000008002401453 + 697A652E506C6174666F726D44656661756C74080756697369626C650800000F + 54536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D61 + 6C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C43 + 68616E676505000000000000000000000B4F7269656E746174696F6E070A486F + 72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A + 506F736974696F6E2E5805000000000000008000400A506F736974696F6E2E59 + 0500000000000000E205400A53697A652E576964746805000000000000009606 + 400B53697A652E48656967687405000000000000008002401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000000005450463007 + 544C61796F757400095374796C654E616D65060F6865616465726974656D7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 000000009205400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F726465720215000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646344334433443064C6F636B65640907486974546573 + 74080A53697A652E576964746805000000000000009205400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D6506156865616465 + 72436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD + CCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463443344334430953746F7056616C7565070978 + 46463241383245320754726967676572060E4973507265737365643D74727565 + 0E54726967676572496E7665727365060F4973507265737365643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061668 + 65616465725374726F6B65416E696D6174696F6E31084475726174696F6E0500 + 00000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E43 + 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 + 616C756507097846463241383245320754726967676572060E49735072657373 + 65643D747275650E54726967676572496E7665727365060F4973507265737365 + 643D66616C736500000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 + 0C4D617267696E732E4C6566740500000000000000A001400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 0000000000A001400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E57696474680500000000000000FC04400B53697A652E4865 + 696768740500000000000000B003401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 6157686974650000005450463007544C61796F757400095374796C654E616D65 + 061070726F67726573736261727374796C6505416C69676E070643656E746572 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000009999E104401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720216000A5452656374616E + 676C6500095374796C654E616D65060668747261636B05416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000003333 + 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 4646313531353135000A5452656374616E676C6500095374796C654E616D6506 + 0A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C + 6F720709784646324138324532064C6F636B6564090748697454657374080C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 + 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F + 0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E + 59050000000000000080FF3F0A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000009999D904401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650000000A5452656374616E676C6500095374796C654E616D65060676747261 + 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646323032303230064C6F636B6564090748697454657374080A53697A652E57 + 6964746805000000000033338505400B53697A652E4865696768740500000000 + 009999E104401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000A5452656374616E676C65 + 00095374796C654E616D65060A76696E64696361746F7205416C69676E070642 + 6F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 + 0080FF3F0A506F736974696F6E2E5905000000000099998904400A53697A652E + 576964746805000000000033338105400B53697A652E48656967687405000000 + 00000000A803401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 + 095374796C654E616D65061170726F677265737363656C6C7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000F805 + 400B53697A652E4865696768740500000000000000FC05401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 02170007544C61796F757400095374796C654E616D65060668747261636B0541 + 6C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E732E4C + 65667405000000000000008000400B4D617267696E732E546F70050000000000 + 00008000400D4D617267696E732E526967687405000000000000008000400E4D + 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 + 6474680500000000000000F005400B53697A652E486569676874050000000000 + 0000F405401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060A68696E64696361746F720541 + 6C69676E07044C6566740A46696C6C2E436F6C6F720709784646324138324532 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E + 732E426F74746F6D05000000000000008000400A506F736974696F6E2E580500 + 0000000000008000400A506F736974696F6E2E5905000000000000008000400A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000EC05401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61 + 796F757400095374796C654E616D6506106D656E756261726974656D7374796C + 6505416C69676E070643656E7465720C4D617267696E732E4C65667405000000 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000C804401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6507585261646975730500000000000000C0004007595261646975 - 730500000000000000C000400000000A545363726F6C6C42617200095374796C - 654E616D65060A767363726F6C6C62617205416C69676E070552696768740B53 - 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F - 6E0708566572746963616C0A506F736974696F6E2E58050000000000FFFFC505 - 400A506F736974696F6E2E590500000000000000B803400A53697A652E576964 - 746805000000000000008003400B53697A652E48656967687405000000000000 - 00B405401453697A652E506C6174666F726D44656661756C740800000A545363 - 726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261720541 - 6C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000000000 - 0000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F7369 - 74696F6E2E5805000000000000008000400A506F736974696F6E2E5905000000 - 00000000E205400A53697A652E5769647468050000000000FFFFE105400B5369 - 7A652E48656967687405000000000000008003401453697A652E506C6174666F - 726D44656661756C740800000F54536D616C6C5363726F6C6C42617200095374 - 796C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E0705 - 52696768740B536D616C6C4368616E676505000000000000000000000B4F7269 - 656E746174696F6E0708566572746963616C0C4D617267696E732E4C65667405 - 000000000000008000400A506F736974696F6E2E580500000000000000C60540 - 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 - 6805000000000000008002400B53697A652E4865696768740500000000000000 - 8002401453697A652E506C6174666F726D44656661756C74080756697369626C - 650800000F54536D616C6C5363726F6C6C42617200095374796C654E616D6506 - 0F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B53 - 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F - 6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000000000 - 008000400A506F736974696F6E2E5805000000000000008000400A506F736974 - 696F6E2E590500000000000000E205400A53697A652E57696474680500000000 - 0000009606400B53697A652E4865696768740500000000000000800240145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650800000000 - 5450463007544C61796F757400095374796C654E616D65060D67726F7570626F - 787374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 00000000000000F004400B53697A652E4865696768740500000000000000C804 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F726465720206000A5452656374616E676C6500095374796C654E61 - 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946 - 696C6C2E4B696E6407044E6F6E650748697454657374080C4D617267696E732E - 4C6566740500000000000000C000400B4D617267696E732E546F700500000000 - 0000009002400D4D617267696E732E52696768740500000000000000C000400E - 4D617267696E732E426F74746F6D0500000000000000C000400A53697A652E57 - 696474680500000000000000D804400B53697A652E4865696768740500000000 - 0000009804401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F720709784646313531353135075852616469757305000000 - 00000000C0004007595261646975730500000000000000C00040000554546578 - 7400095374796C654E616D65060474657874084175746F53697A65090A436C69 - 70506172656E74090748697454657374080C4D617267696E732E4C6566740500 - 000000000000A002400A506F736974696F6E2E5805000000000060559502400A - 506F736974696F6E2E590500000000004055D501C00A53697A652E5769647468 - 05000000000000B8C703400B53697A652E4865696768740500000000000060FF - 02401453697A652E506C6174666F726D44656661756C74081654657874536574 - 74696E67732E466F6E74436F6C6F720708636C61576869746515546578745365 - 7474696E67732E576F72645772617008000000005450463007544C61796F7574 - 00095374796C654E616D65060F6865616465726974656D7374796C6505416C69 - 676E070643656E7465720A53697A652E57696474680500000000000000920540 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 07000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 - 6F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 - 09784646344334433443064C6F636B6564090748697454657374080A53697A65 - 2E576964746805000000000000009205400B53697A652E486569676874050000 - 0000000000D003401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F72070978464631353135313507585261646975730500 - 000000000000C0004007595261646975730500000000000000C00040000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650615686561646572 - 436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCC - CCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463443344334430953746F7056616C756507097846 - 463241383245320754726967676572060E4973507265737365643D747275650E - 54726967676572496E7665727365060F4973507265737365643D66616C736500 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506166865 - 616465725374726F6B65416E696D6174696F6E31084475726174696F6E050000 - 000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F - 6C6F720A537461727456616C756507097846463135313531350953746F705661 - 6C756507097846463241383245320754726967676572060E4973507265737365 - 643D747275650E54726967676572496E7665727365060F497350726573736564 - 3D66616C736500000005545465787400095374796C654E616D65060474657874 - 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080C - 4D617267696E732E4C6566740500000000000000A001400B4D617267696E732E + 000000009205400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F726465720218000A5452656374616E676C650005416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463241383245320748697454 + 65737408074F70616369747905000000000017B7D1F13F0A53697A652E576964 + 746805000000000000009205400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 074F7061636974790A537461727456616C756505000000000000000000000953 + 746F7056616C7565050000000000000080FF3F0754726967676572060F497353 + 656C65637465643D747275650E54726967676572496E76657273650610497353 + 656C65637465643D66616C73650000000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F7207097846463241383245320748697454657374 + 08074F70616369747905000000000017B7D1F13F0A53697A652E576964746805 + 000000000000009205400B53697A652E4865696768740500000000000000D003 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F70 + 61636974790A537461727456616C756505000000000000000000000953746F70 + 56616C7565050000000000000080FF3F0754726967676572061049734D6F7573 + 654F7665723D747275650E54726967676572496E7665727365061149734D6F75 + 73654F7665723D66616C736500000007544C61796F757400095374796C654E61 + 6D650605676C79706805416C69676E07044C6566740A53697A652E5769647468 + 0500000000000000C803400B53697A652E4865696768740500000000000000D0 + 03401453697A652E506C6174666F726D44656661756C74080007544C61796F75 + 7400095374796C654E616D650609636865636B6D61726B05416C69676E070843 + 6F6E74656E7473074F7061636974790500000000006F1283F53F0A53697A652E + 57696474680500000000000000C803400B53697A652E48656967687405000000 + 00000000D003401453697A652E506C6174666F726D44656661756C7408000554 + 506174680005416C69676E070643656E74657209446174612E506174680A5800 + 0000070000000000000056D9524391AE2C430100000092766643650216430100 + 00009F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB04375A4 + D1420100000026DF8243263F67430300000056D9524391AE2C430A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080A53697A652E5769 + 6474680500000000000000B002400B53697A652E486569676874050000000000 + 0000B002401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D6174696F6E00 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 6506074F7061636974790A537461727456616C75650500000000000000000000 + 0953746F7056616C7565050000000000000080FF3F0754726967676572060E49 + 73436865636B65643D747275650E54726967676572496E7665727365060F4973 + 436865636B65643D66616C73650000000654476C79706800095374796C654E61 + 6D65060A676C7970687374796C650C4D617267696E732E4C6566740500000000 + 00000080FF3F0B4D617267696E732E546F7005000000000000008000400D4D61 + 7267696E732E52696768740500000000000000C000400E4D617267696E732E42 + 6F74746F6D050000000000000080FF3F05416C69676E070552696768740A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 000000000000008003401453697A652E506C6174666F726D44656661756C7408 + 00000654496D61676500095374796C654E616D6506066269746D61700E4D756C + 74695265734269746D61700E01000005416C69676E0708436F6E74656E74730C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E 546F7005000000000000008000400D4D617267696E732E526967687405000000 - 00000000A001400E4D617267696E732E426F74746F6D05000000000000008000 - 400A53697A652E57696474680500000000000000FC04400B53697A652E486569 + 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 + 400A53697A652E57696474680500000000000000A803400B53697A652E486569 6768740500000000000000B003401453697A652E506C6174666F726D44656661 - 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 - 57686974650000005450463007544C61796F757400095374796C654E616D6506 - 0E696D61676563656C6C7374796C6505416C69676E070643656E746572075669 - 7369626C6508085461624F726465720208000654496D61676500095374796C65 - 4E616D650605696D6167650E4D756C74695265734269746D61700E0100000541 - 6C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D61 - 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F - 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 - 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A - 53697A652E57696474680500000000000000C004400B53697A652E4865696768 - 740500000000000000C004401453697A652E506C6174666F726D44656661756C - 74080000005450463007544C61796F757400095374796C654E616D65060A6C61 - 62656C7374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000C805400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F7264657202090005545465787400095374796C654E616D6506 - 047465787405416C69676E0708436F6E74656E74730748697454657374080A53 - 697A652E57696474680500000000000000C805400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 - 74650000005450463007544C61796F757400095374796C654E616D65060D6C69 - 7374626F78666F6F74657205416C69676E070643656E7465720A53697A652E57 - 6964746805000000000000009205400B53697A652E4865696768740500000000 - 000000D003401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F72646572020A0005545465787400095374796C654E61 - 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 - 697454657374080C4D617267696E732E4C6566740500000000000000A001400B - 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 - 696768740500000000000000A001400E4D617267696E732E426F74746F6D0500 - 0000000000008000400A53697A652E57696474680500000000000000FC04400B - 53697A652E4865696768740500000000000000B003401453697A652E506C6174 - 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F - 6C6F720708636C6157686974650000005450463007544C61796F757400095374 - 796C654E616D6506106C697374626F786974656D7374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000000000D605400B5369 - 7A652E4865696768740500000000000000C003401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F72646572020B0006 - 54476C79706800095374796C654E616D65060A676C7970687374796C650C4D61 - 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F - 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 - 00008000400E4D617267696E732E426F74746F6D050000000000000080FF3F05 - 416C69676E07044C6566740A506F736974696F6E2E5805000000000000008000 - 400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E576964 - 746805000000000000008003400B53697A652E48656967687405000000000000 - 00B003401453697A652E506C6174666F726D44656661756C7408000005545465 - 787400095374796C654E616D6506047465787405416C69676E0706436C69656E - 740748697454657374080C4D617267696E732E4C6566740500000000000000C0 - 00400B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E - 732E52696768740500000000000000C000400E4D617267696E732E426F74746F - 6D050000000000000080FF3F0A53697A652E57696474680500000000000000CA - 05400B53697A652E4865696768740500000000000000B003401453697A652E50 - 6C6174666F726D44656661756C7408165465787453657474696E67732E466F6E - 74436F6C6F720708636C615768697465155465787453657474696E67732E576F - 72645772617008165465787453657474696E67732E486F727A416C69676E0707 - 4C656164696E6700000954436865636B426F7800095374796C654E616D650605 - 636865636B05416C69676E07084D6F73744C6566740843616E466F6375730812 - 44697361626C65466F637573456666656374090A53697A652E57696474680500 - 000000000000A003400B53697A652E4865696768740500000000000000C00340 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 - 00005450463007544C61796F757400095374796C654E616D6506126C69737462 - 6F78706C61696E68656164657205416C69676E070643656E7465720A53697A65 - 2E576964746805000000000000009205400B53697A652E486569676874050000 - 0000000000D003401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F72646572020C000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F720709784646324432443244064C6F636B - 6564090748697454657374080A53697A652E5769647468050000000000000092 - 05400B53697A652E4865696768740500000000000000D003401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 4631353135313507585261646975730500000000000000C00040075952616469 - 75730500000000000000C00040000005545465787400095374796C654E616D65 - 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 - 54657374080C4D617267696E732E4C6566740500000000000000A001400B4D61 - 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 - 68740500000000000000A001400E4D617267696E732E426F74746F6D05000000 - 000000008000400A53697A652E57696474680500000000000000FC04400B5369 - 7A652E4865696768740500000000000000B003401453697A652E506C6174666F - 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F - 720708636C6157686974650000005450463007544C61796F757400095374796C - 654E616D65060C6C697374626F787374796C6505416C69676E070643656E7465 - 720A53697A652E5769647468050000000000FFFFE905400B53697A652E486569 - 67687405000000000000008306401453697A652E506C6174666F726D44656661 - 756C7408085461624F72646572020D000C5442727573684F626A656374000953 - 74796C654E616D650618416C7465726E6174696E67526F774261636B67726F75 - 6E640B42727573682E436F6C6F72070978464632433243324300000A54526563 - 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032 - 303230064C6F636B6564090748697454657374080C50616464696E672E4C6566 - 7405000000000000008000400B50616464696E672E546F700500000000000000 - 8000400D50616464696E672E526967687405000000000000008000400E506164 - 64696E672E426F74746F6D05000000000000008000400A53697A652E57696474 - 68050000000000FFFFE905400B53697A652E4865696768740500000000000000 - 8306401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646313531353135075852616469757305000000000000 - 00C0004007595261646975730500000000000000C000400007544C61796F7574 - 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 - 6E740C436C69704368696C6472656E090A53697A652E57696474680500000000 - 00FFFFC105400B53697A652E4865696768740500000000000000DE0540145369 - 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 - 095374796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72 - 07097846463241383245320748697454657374080A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000C804 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6507585261646975730500000000000000C0004007595261 - 646975730500000000000000C0004000000A5452656374616E676C6500095374 - 796C654E616D650610666F637573656473656C656374696F6E0A46696C6C2E43 - 6F6C6F7207097846463241383245320748697454657374080A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000C804401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E650B5374726F6B652E446173680703446F740758 - 5261646975730500000000000000C00040075952616469757305000000000000 - 00C000400000000A545363726F6C6C42617200095374796C654E616D65060A76 - 7363726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E - 676505000000000000000000000B4F7269656E746174696F6E07085665727469 - 63616C0A506F736974696F6E2E58050000000000FFFFC505400A506F73697469 - 6F6E2E5905000000000000008000400A53697A652E5769647468050000000000 - 00008003400B53697A652E4865696768740500000000000000DE05401453697A - 652E506C6174666F726D44656661756C740800000A545363726F6C6C42617200 - 095374796C654E616D65060A687363726F6C6C62617205416C69676E0706426F - 74746F6D0B536D616C6C4368616E676505000000000000000000000B4F726965 - 6E746174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E580500 - 0000000000008000400A506F736974696F6E2E590500000000000000E205400A - 53697A652E5769647468050000000000FFFFE105400B53697A652E4865696768 - 7405000000000000008003401453697A652E506C6174666F726D44656661756C - 740800000F54536D616C6C5363726F6C6C42617200095374796C654E616D6506 - 0F76736D616C6C7363726F6C6C62617205416C69676E070552696768740B536D - 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E - 0708566572746963616C0C4D617267696E732E4C656674050000000000000080 - 00400A506F736974696F6E2E580500000000000000C605400A506F736974696F - 6E2E5905000000000000008000400A53697A652E576964746805000000000000 - 008002400B53697A652E48656967687405000000000000008002401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C650800000F54536D - 616C6C5363726F6C6C42617200095374796C654E616D65060F68736D616C6C73 - 63726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E - 676505000000000000000000000B4F7269656E746174696F6E070A486F72697A - 6F6E74616C0B4D617267696E732E546F7005000000000000008000400A506F73 - 6974696F6E2E5805000000000000008000400A506F736974696F6E2E59050000 - 0000000000E205400A53697A652E576964746805000000000000009606400B53 - 697A652E48656967687405000000000000008002401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508000000005450463007544C61 - 796F757400095374796C654E616D65060E706F70757063656C6C7374796C6505 - 416C69676E070643656E7465720756697369626C6508085461624F7264657202 - 0E0007544C61796F75740005416C69676E070552696768740A506F736974696F - 6E2E5805000000000000008C04400A53697A652E576964746805000000000000 - 00F002400B53697A652E4865696768740500000000000000C804401453697A65 - 2E506C6174666F726D44656661756C7408000554506174680005416C69676E07 - 0643656E74657209446174612E506174680A4000000005000000000000000000 - 00000000803F010000000000803F0000803F010000000000003F000000000100 - 0000000000000000803F0300000000000000000000000A46696C6C2E436F6C6F - 720708636C6157686974650748697454657374080B4D617267696E732E546F70 - 0500000000000000E001C00A53697A652E576964746805000000000000008002 - 400B53697A652E48656967687405000000000000008001401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 00000554506174680005416C69676E070643656E74657209446174612E506174 - 680A3400000004000000000000000000000000000000010000000000803F0000 - 0000010000000000003F0000803F0300000000000000000000000A46696C6C2E - 436F6C6F720708636C6157686974650748697454657374080B4D617267696E73 - 2E546F700500000000000000C001400A53697A652E5769647468050000000000 - 00008002400B53697A652E48656967687405000000000000008001401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6500000005545465787400095374796C654E616D650604746578740541 - 6C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D61 - 7267696E732E4C6566740500000000000000A001400B4D617267696E732E546F - 7005000000000000008000400D4D617267696E732E5269676874050000000000 - 0000A001400E4D617267696E732E426F74746F6D05000000000000008000400A - 53697A652E57696474680500000000000000C803400B53697A652E4865696768 - 740500000000000000B804401453697A652E506C6174666F726D44656661756C - 7408165465787453657474696E67732E466F6E74436F6C6F720708636C615768 - 6974650000005450463007544C61796F757400095374796C654E616D65061070 - 726F67726573736261727374796C6505416C69676E070643656E7465720A5369 - 7A652E576964746805000000000033338505400B53697A652E48656967687405 - 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F72646572020F000A5452656374616E676C65 - 00095374796C654E616D65060668747261636B05416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000003333850540 - 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 - 353135313507585261646975730500000000000000C000400759526164697573 - 0500000000000000C00040000A5452656374616E676C6500095374796C654E61 - 6D65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E - 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 - 080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E - 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 - 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 - 80FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73697469 - 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000009999D904401453697A + 756C740800000005545465787400095374796C654E616D650604746578740541 + 6C69676E07044C656674064C6F636B6564090748697454657374080C4D617267 + 696E732E4C65667405000000000000008002400D4D617267696E732E52696768 + 7405000000000000008002400A506F736974696F6E2E58050000000000000084 + 04400A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 615768697465165465787453657474696E67732E486F727A416C69676E07074C + 656164696E67000005545465787400095374796C654E616D65060873686F7274 + 63757405416C69676E07055269676874064C6F636B6564090748697454657374 + 080C4D617267696E732E4C6566740500000000000000C002400D4D617267696E + 732E52696768740500000000000000C001400A506F736974696F6E2E58050000 + 0000000000C000C00A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000D003401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C615768697465165465787453657474696E67732E486F727A416C + 69676E07074C656164696E67000007544C61796F757400095374796C654E616D + 6506077375626D61726B05416C69676E070552696768740A506F736974696F6E + 2E580500000000000000D404400A53697A652E57696474680500000000000000 + A003400B53697A652E4865696768740500000000000000D003401453697A652E + 506C6174666F726D44656661756C7408000554506174680005416C69676E0706 + 43656E74657209446174612E506174680A340000000400000000000000000000 + 000000000001000000000000000000803F010000000000803F0000003F030000 + 0000000000000000000A46696C6C2E436F6C6F720708636C615768697465064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 0000E001400B53697A652E48656967687405000000000000008002401453697A 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6507585261646975730500000000000000C00040075952616469757305 - 00000000000000C000400000000A5452656374616E676C6500095374796C654E - 616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646323032303230064C6F636B65640907486974546573 - 74080A53697A652E576964746805000000000033338505400B53697A652E4865 - 696768740500000000009999E104401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135075852 - 61646975730500000000000000C0004007595261646975730500000000000000 - C00040000A5452656374616E676C6500095374796C654E616D65060A76696E64 - 696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207 - 09784646324138324532064C6F636B6564090748697454657374080C4D617267 - 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 - 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 - 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F - 736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E590500 - 0000000099998904400A53697A652E576964746805000000000033338105400B - 53697A652E4865696768740500000000000000A803401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758 - 5261646975730500000000000000C00040075952616469757305000000000000 - 00C00040000000005450463007544C61796F757400095374796C654E616D6506 - 1170726F677265737363656C6C7374796C6505416C69676E070643656E746572 - 0A53697A652E57696474680500000000000000F805400B53697A652E48656967 - 68740500000000000000FC05401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508085461624F7264657202100007544C61796F7574 - 00095374796C654E616D65060668747261636B05416C69676E0708436F6E7465 - 6E7473064C6F636B6564090C4D617267696E732E4C6566740500000000000000 - 8000400B4D617267696E732E546F7005000000000000008000400D4D61726769 - 6E732E526967687405000000000000008000400E4D617267696E732E426F7474 - 6F6D05000000000000008000400A53697A652E57696474680500000000000000 - F005400B53697A652E4865696768740500000000000000F405401453697A652E - 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 - 796C654E616D65060A68696E64696361746F7205416C69676E07044C6566740A - 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 - 7454657374080C4D617267696E732E4C65667405000000000000008000400B4D - 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 - 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 - 00000000008000400A506F736974696F6E2E5805000000000000008000400A50 - 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 - 00000000000000C804400B53697A652E4865696768740500000000000000EC05 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6507585261646975730500000000000000C0004007595261 - 646975730500000000000000C00040000000005450463007544C61796F757400 - 095374796C654E616D6506157363726F6C6C626172626F74746F6D627574746F - 6E05416C69676E070643656E7465720756697369626C6508085461624F726465 - 720211000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0706436C69656E740C436C69704368696C647265 - 6E090A436C6970506172656E740907436F726E6572730B0A426F74746F6D4C65 - 66740B426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632 - 30323032300748697454657374080A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000C804401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6507585261646975730500000000000000C0004007595261646975730500 - 000000000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646343034303430075472696767657206204973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 - 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 - 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E32084475726174696F6E05000000000000000000000C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463430343034300953746F7056616C7565070978464631373537394307547269 - 67676572061F4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275650E54726967676572496E766572736506204973507265737365643D - 66616C73653B49734D6F7573654F7665723D7472756500000007544C61796F75 - 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E - 7465720A53697A652E57696474680500000000000000A002400B53697A652E48 - 65696768740500000000000000C001401453697A652E506C6174666F726D4465 - 6661756C74080005545061746800095374796C654E616D650605506174683105 - 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 - 000000000000C8420000C84201000000000096430000C8420100000000004843 - 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080A53697A652E576964746805000000000000 - 00A002400B53697A652E4865696768740500000000000000C001401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6500000000545046300A5452656374616E676C6500095374796C654E616D - 6506147363726F6C6C62617268747261636B7374796C6505416C69676E070643 - 656E7465720A46696C6C2E436F6C6F7207097846463135313531350748697454 - 657374080A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C - 65080006545468756D6200095374796C654E616D6506057468756D62064C6F63 - 6B6564090A53697A652E576964746805000000000000008003400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080B5374796C654C6F6F6B7570060A7468756D627374796C6500 - 00005450463007544C61796F757400095374796C654E616D6506137363726F6C - 6C6261726C656674627574746F6E05416C69676E070643656E74657207566973 - 69626C6508085461624F726465720212000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E - 740C436C69704368696C6472656E090A436C6970506172656E740907436F726E - 6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E6507585261646975730500000000000000C0004007 - 595261646975730500000000000000C00040000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D61 - 74696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463230323032300953746F7056616C75650709784646343034303430075472 - 6967676572062049734D6F7573654F7665723D747275653B4973507265737365 - 643D66616C73650E54726967676572496E7665727365062149734D6F7573654F - 7665723D66616C73653B4973507265737365643D66616C736500000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F - 6C6F72416E696D6174696F6E32084475726174696F6E05000000000000000000 - 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463430343034300953746F7056616C7565070978464631 - 37353739430754726967676572061F4973507265737365643D747275653B4973 - 4D6F7573654F7665723D747275650E54726967676572496E7665727365062049 - 73507265737365643D66616C73653B49734D6F7573654F7665723D7472756500 - 000007544C61796F757400095374796C654E616D6506074C61796F7574310541 - 6C69676E070643656E7465720A53697A652E57696474680500000000000000A0 - 02400B53697A652E4865696768740500000000000000C001401453697A652E50 - 6C6174666F726D44656661756C74080005545061746800095374796C654E616D - 650605506174683105416C69676E0706436C69656E7409446174612E50617468 - 0A3400000004000000000000000000C8420000C84201000000000096430000C8 - 42010000000000484300009643030000000000C8420000C8420A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080D526F746174696F6E - 416E676C650500000000000000B405400A53697A652E57696474680500000000 - 000000A002400B53697A652E4865696768740500000000000000C00140145369 + 4E6F6E6500000000545046300A5452656374616E676C6500095374796C654E61 + 6D65060C6D656E756261727374796C6505416C69676E070643656E7465720C43 + 6C69704368696C6472656E090946696C6C2E4B696E6407044E6F6E6507486974 + 54657374080A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669736962 + 6C6508000A5452656374616E676C650005416C69676E0706436C69656E740A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080C4D61 + 7267696E732E4C656674050000000000000080FFBF0B4D617267696E732E546F + 70050000000000000080FFBF0D4D617267696E732E5269676874050000000000 + 000080FFBF0A53697A652E57696474680500000000000000D004400B53697A65 + 2E4865696768740500000000000000CC04401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 000007544C61796F757400095374796C654E616D650607636F6E74656E740541 + 6C69676E0706436C69656E740C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 + 00C004400B53697A652E4865696768740500000000000000C004401453697A65 + 2E506C6174666F726D44656661756C74080000005450463007544C61796F7574 + 00095374796C654E616D65060D6D656E756974656D7374796C6505416C69676E + 070643656E7465720C4D617267696E732E4C656674050000000000000080FF3F + 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E + 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F0A53697A652E57696474680500000000000000920540 + 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 23000A5452656374616E676C650005416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646324138324532074869745465737408074F70 + 616369747905000000000017B7D1F13F0A53697A652E57696474680500000000 + 0000009205400B53697A652E4865696768740500000000000000D00340145369 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000000005450463007544C61796F757400095374796C654E616D65 - 06147363726F6C6C6261727269676874627574746F6E05416C69676E07064365 - 6E7465720756697369626C6508085461624F726465720213000A545265637461 - 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 - 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 - 6E740907436F726E6572730B08546F7052696768740B426F74746F6D52696768 - 74000A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E + 050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974 + 790A537461727456616C756505000000000000000000000953746F7056616C75 + 65050000000000000080FF3F0754726967676572060F497353656C6563746564 + 3D747275650E54726967676572496E76657273650610497353656C6563746564 + 3D66616C73650000000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646324138324532074869745465737408074F70616369 + 747905000000000000000000000A53697A652E57696474680500000000000000 + 9205400B53697A652E4865696768740500000000000000D003401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E050000 + 000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D650607 + 4F7061636974790A537461727456616C75650500000000000000000000095374 + 6F7056616C7565050000000000000080FF3F0754726967676572061049734D6F + 7573654F7665723D747275650E54726967676572496E7665727365061149734D + 6F7573654F7665723D66616C736500000007544C61796F757400095374796C65 + 4E616D650605676C79706805416C69676E07044C6566740A53697A652E576964 + 74680500000000000000C803400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C74080007544C6179 + 6F757400095374796C654E616D650609636865636B6D61726B05416C69676E07 + 08436F6E74656E7473074F7061636974790500000000006F1283F53F0A53697A + 652E57696474680500000000000000C803400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C740800 + 0554506174680005416C69676E070643656E74657209446174612E506174680A + 58000000070000000000000056D9524391AE2C43010000009276664365021643 + 010000009F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB043 + 75A4D1420100000026DF8243263F67430300000056D9524391AE2C430A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080A53697A652E + 57696474680500000000000000B002400B53697A652E48656967687405000000 + 00000000B002401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D6174696F + 6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E + 616D6506074F7061636974790A537461727456616C7565050000000000000000 + 00000953746F7056616C7565050000000000000080FF3F075472696767657206 + 0E4973436865636B65643D747275650E54726967676572496E7665727365060F + 4973436865636B65643D66616C73650000000654476C79706800095374796C65 + 4E616D65060A676C7970687374796C650C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F7005000000000000008000400D + 4D617267696E732E52696768740500000000000000C000400E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F05416C69676E07044C6566740A53 + 697A652E576964746805000000000000008003400B53697A652E486569676874 + 05000000000000008003401453697A652E506C6174666F726D44656661756C74 + 0800000654496D61676500095374796C654E616D6506066269746D61700E4D75 + 6C74695265734269746D61700E01000005416C69676E07044C6566740C4D6172 + 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 008000400E4D617267696E732E426F74746F6D05000000000000008000400A50 + 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 + 000000000000008000400A53697A652E57696474680500000000000000A80340 + 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 + 74666F726D44656661756C740800000005545465787400095374796C654E616D + 6506047465787405416C69676E07044C656674064C6F636B6564090748697454 + 657374080C4D617267696E732E4C65667405000000000000008002400D4D6172 + 67696E732E526967687405000000000000008002400A506F736974696F6E2E58 + 05000000000000008404400A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000D003401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C615768697465165465787453657474696E67732E486F72 + 7A416C69676E07074C656164696E67000005545465787400095374796C654E61 + 6D65060873686F727463757405416C69676E07055269676874064C6F636B6564 + 090748697454657374080C4D617267696E732E4C6566740500000000000000C0 + 02400D4D617267696E732E52696768740500000000000000C001400A506F7369 + 74696F6E2E580500000000000000C000C00A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F720708636C615768697465165465787453657474696E + 67732E486F727A416C69676E07074C656164696E67000007544C61796F757400 + 095374796C654E616D6506077375626D61726B05416C69676E07055269676874 + 0A506F736974696F6E2E580500000000000000D404400A53697A652E57696474 + 680500000000000000A003400B53697A652E4865696768740500000000000000 + D003401453697A652E506C6174666F726D44656661756C740800055450617468 + 0005416C69676E070643656E74657209446174612E506174680A340000000400 + 000000000000000000000000000001000000000000000000803F010000000000 + 803F0000003F0300000000000000000000000A46696C6C2E436F6C6F72070863 + 6C615768697465064C6F636B6564090748697454657374080A53697A652E5769 + 6474680500000000000000E001400B53697A652E486569676874050000000000 + 00008002401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574000953 + 74796C654E616D6506126D656E75736570617261746F727374796C6505416C69 + 676E070643656E7465720C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 7202250005544C696E650005416C69676E0703546F70084C696E655479706507 + 03546F700C4D617267696E732E4C6566740500000000000000C000400B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 740500000000000000C000400A506F736974696F6E2E580500000000000000C0 + 00400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 + 6474680500000000000000B004400B53697A652E486569676874050000000000 + 000080FF3F1453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F720709784646313531353135000000545046300A5452656374 + 616E676C6500095374796C654E616D65060D6D656E75766965777374796C6505 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646323032 + 3032300A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350756 + 697369626C6508000A5452656374616E676C650005416C69676E0706436C6965 + 6E740A46696C6C2E436F6C6F7207097846463230323032300748697454657374 080A53697A652E57696474680500000000000000C804400B53697A652E486569 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 - 000000000000C0004007595261646975730500000000000000C00040000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E - 436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCC - CCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463230323032300953746F7056616C756507097846 - 463430343034300754726967676572062049734D6F7573654F7665723D747275 - 653B4973507265737365643D66616C73650E54726967676572496E7665727365 - 062149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 - 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 0615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E - 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463430343034300953746F7056 - 616C756507097846463137353739430754726967676572061F49735072657373 - 65643D747275653B49734D6F7573654F7665723D747275650E54726967676572 - 496E766572736506204973507265737365643D66616C73653B49734D6F757365 - 4F7665723D7472756500000007544C61796F757400095374796C654E616D6506 - 074C61796F75743105416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000A002400B53697A652E4865696768740500000000000000 - C001401453697A652E506C6174666F726D44656661756C740800055450617468 - 00095374796C654E616D650605506174683105416C69676E0706436C69656E74 - 09446174612E506174680A3400000004000000000000000000C8420000C84201 - 000000000096430000C842010000000000484300009643030000000000C84200 - 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 - 080D526F746174696F6E416E676C650500000000000000B405C00A53697A652E - 57696474680500000000000000A002400B53697A652E48656967687405000000 - 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 - 095374796C654E616D65060E7363726F6C6C6261727374796C6505416C69676E - 070643656E7465720756697369626C6508085461624F72646572021400075442 - 7574746F6E00095374796C654E616D65060A6C656674627574746F6E05416C69 - 676E07044C656674064C6F636B6564090A506F736974696F6E2E590500000000 - 0000008003400A53697A652E576964746805000000000000008003400B53697A - 652E48656967687405000000000000009003401453697A652E506C6174666F72 - 6D44656661756C74080B5374796C654C6F6F6B757006137363726F6C6C626172 - 6C656674627574746F6E00000754427574746F6E00095374796C654E616D6506 - 0B7269676874627574746F6E05416C69676E07055269676874064C6F636B6564 - 090A506F736974696F6E2E5805000000000000008804400A506F736974696F6E - 2E5905000000000000008003400A53697A652E57696474680500000000000000 - 8003400B53697A652E48656967687405000000000000009003401453697A652E - 506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006147363 - 726F6C6C6261727269676874627574746F6E00000754427574746F6E00095374 - 796C654E616D65060C626F74746F6D627574746F6E05416C69676E0706426F74 - 746F6D064C6F636B6564090A506F736974696F6E2E5905000000000000008804 - 400A53697A652E57696474680500000000000000C804400B53697A652E486569 - 67687405000000000000008003401453697A652E506C6174666F726D44656661 - 756C74080B5374796C654C6F6F6B757006157363726F6C6C626172626F74746F - 6D627574746F6E00000654547261636B00095374796C654E616D650606687472 - 61636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E74 - 6174696F6E070A486F72697A6F6E74616C0A53697A652E576964746805000000 - 000000009003400B53697A652E48656967687405000000000000009003401453 - 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 - 06147363726F6C6C62617268747261636B7374796C6500000654547261636B00 - 095374796C654E616D65060676747261636B05416C69676E0706436C69656E74 - 064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C - 0A53697A652E576964746805000000000000009003400B53697A652E48656967 - 687405000000000000009003401453697A652E506C6174666F726D4465666175 - 6C74080B5374796C654C6F6F6B757006147363726F6C6C62617276747261636B - 7374796C6500000754427574746F6E00095374796C654E616D650609746F7062 - 7574746F6E05416C69676E0703546F700A53697A652E57696474680500000000 - 000000C804400B53697A652E4865696768740500000000000000800340145369 - 7A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006 - 127363726F6C6C626172746F70627574746F6E0000005450463007544C61796F - 757400095374796C654E616D6506127363726F6C6C626172746F70627574746F - 6E05416C69676E070643656E7465720756697369626C6508085461624F726465 - 720215000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0706436C69656E740C436C69704368696C647265 - 6E090A436C6970506172656E740907436F726E6572730B07546F704C65667408 - 546F705269676874000A46696C6C2E436F6C6F72070978464632303230323007 - 48697454657374080A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000C804401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852 - 61646975730500000000000000C0004007595261646975730500000000000000 - C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 - 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463230323032300953746F705661 - 6C756507097846463430343034300754726967676572062049734D6F7573654F - 7665723D747275653B4973507265737365643D66616C73650E54726967676572 - 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 - 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 - 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 - 300953746F7056616C756507097846463137353739430754726967676572061F - 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E - 54726967676572496E766572736506204973507265737365643D66616C73653B - 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 - 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 - 7A652E57696474680500000000000000A002400B53697A652E48656967687405 - 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 - 0005545061746800095374796C654E616D650605506174683105416C69676E07 - 06436C69656E7409446174612E506174680A3400000004000000000000000000 - C8420000C84201000000000096430000C8420100000000004843000096430300 - 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 - 48697454657374080D526F746174696F6E416E676C650500000000000000B406 - 400A53697A652E57696474680500000000000000A002400B53697A652E486569 - 6768740500000000000000C001401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300A54 - 52656374616E676C6500095374796C654E616D6506147363726F6C6C62617276 - 747261636B7374796C6505416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463135313531350748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650756697369626C65080006545468756D62000953 - 74796C654E616D6506057468756D62064C6F636B6564090A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 008003401453697A652E506C6174666F726D44656661756C74080B5374796C65 - 4C6F6F6B7570060A7468756D627374796C650000005450463007544C61796F75 - 7400095374796C654E616D65060C7370696E626F787374796C6505416C69676E - 070643656E7465720A53697A652E57696474680500000000006666E005400B53 - 697A652E4865696768740500000000000000A803401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572021600 - 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 - 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 - 46463230323032300A53697A652E57696474680500000000006666E005400B53 - 697A652E4865696768740500000000000000A803401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 35313507585261646975730500000000000000C0004007595261646975730500 - 000000000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650614436F6C6F72416E696D6174696F6E315374796C650844757261 - 74696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274 - 794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75650709 - 7846463135313531350953746F7056616C756507097846463430343034300754 - 726967676572061049734D6F7573654F7665723D747275650E54726967676572 - 496E7665727365061149734D6F7573654F7665723D66616C73650000000C5442 - 727573684F626A65637400095374796C654E616D65060A666F726567726F756E - 640B42727573682E436F6C6F72070978464645414541454100000C5442727573 - 684F626A65637400095374796C654E616D65060973656C656374696F6E0B4272 - 7573682E436F6C6F720709783936324138324532000007544C61796F75740009 - 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 - 064C6F636B6564090C4D617267696E732E4C6566740500000000000000800040 - 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 - 000000000000008000400A53697A652E57696474680500000000007066840540 - 0B53697A652E48656967687405000000000000008803401453697A652E506C61 - 74666F726D44656661756C740800000754427574746F6E00095374796C654E61 - 6D65060B6D696E7573627574746F6E05416C69676E07074669744C6566740843 - 616E466F6375730806437572736F72070763724172726F770C4D617267696E73 + 756C74080C5374726F6B652E436F6C6F720709784646313531353135000D5453 + 6861646F77456666656374000844697374616E63650500000000000000C00040 + 09446972656374696F6E0500000000000000B4044008536F66746E6573730500 + 00000000000080FE3F074F706163697479050000000000000080FE3F0B536861 + 646F77436F6C6F720708636C61426C61636B00000007544C61796F7574000953 + 74796C654E616D650607636F6E74656E7405416C69676E0706436C69656E740C + 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF + 3F0A53697A652E57696474680500000000000000C004400B53697A652E486569 + 6768740500000000000000C004401453697A652E506C6174666F726D44656661 + 756C74080000005450463007544C61796F757400095374796C654E616D65060E + 696D61676563656C6C7374796C6505416C69676E070643656E74657207566973 + 69626C6508085461624F726465720226000654496D61676500095374796C654E + 616D650605696D6167650E4D756C74695265734269746D61700E01000005416C + 69676E0706436C69656E74064C6F636B6564090748697454657374080C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 + 697A652E57696474680500000000000000C004400B53697A652E486569676874 + 0500000000000000C004401453697A652E506C6174666F726D44656661756C74 + 080000005450463007544C61796F757400095374796C654E616D65060E706F70 + 757063656C6C7374796C6505416C69676E070643656E7465720756697369626C + 6508085461624F7264657202270007544C61796F75740005416C69676E070552 + 696768740A506F736974696F6E2E5805000000000000008C04400A53697A652E + 57696474680500000000000000F002400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C7408000554 + 506174680005416C69676E070643656E74657209446174612E506174680A4000 + 00000500000000000000000000000000803F010000000000803F0000803F0100 + 00000000003F0000000001000000000000000000803F03000000000000000000 + 00000A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0B4D617267696E732E546F700500000000000000E001C00A53697A652E576964 + 746805000000000000008002400B53697A652E48656967687405000000000000 + 008001401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6500000554506174680005416C69676E070643656E + 74657209446174612E506174680A340000000400000000000000000000000000 + 0000010000000000803F00000000010000000000003F0000803F030000000000 + 0000000000000A46696C6C2E436F6C6F720708636C6157686974650748697454 + 657374080B4D617267696E732E546F700500000000000000C001400A53697A65 + 2E576964746805000000000000008002400B53697A652E486569676874050000 + 00000000008001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6500000005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C6566740500000000000000A001 + 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 + 2E52696768740500000000000000A001400E4D617267696E732E426F74746F6D + 05000000000000008000400A53697A652E57696474680500000000000000C803 + 400B53697A652E4865696768740500000000000000B804401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D65060D7465787463656C6C7374796C6505416C69676E0706 + 43656E7465720756697369626C6508085461624F7264657202280007544C6179 + 6F757400095374796C654E616D650607636F6E74656E7405416C69676E070843 + 6F6E74656E7473064C6F636B6564090C4D617267696E732E4C65667405000000 + 000000008001400B4D617267696E732E546F7005000000000000008001400D4D + 617267696E732E526967687405000000000000008001400E4D617267696E732E + 426F74746F6D05000000000000008001400A53697A652E576964746805000000 + 00000000A804400B53697A652E4865696768740500000000000000A804401453 + 697A652E506C6174666F726D44656661756C740800000C5442727573684F626A + 65637400095374796C654E616D65060A666F726567726F756E6400000C544272 + 7573684F626A65637400095374796C654E616D65060973656C656374696F6E0B + 42727573682E436F6C6F72070978393632413832453200000B54466F6E744F62 + 6A65637400095374796C654E616D650604666F6E740000005450463007544C61 + 796F757400095374796C654E616D6506096D656D6F7374796C6505416C69676E + 070643656E7465720A53697A652E5769647468050000000000CCCC8806400B53 + 697A652E4865696768740500000000006666F405401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572022900 + 0C5442727573684F626A65637400095374796C654E616D65060A666F72656772 + 6F756E6400000C5442727573684F626A65637400095374796C654E616D650609 + 73656C656374696F6E0B42727573682E436F6C6F720709783746343437353944 + 00000B54466F6E744F626A65637400095374796C654E616D650604666F6E7400 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 7846463230323032300748697454657374080A53697A652E5769647468050000 + 000000CCCC8806400B53697A652E4865696768740500000000006666F4054014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F7207097846463135313531350007544C61796F757400095374796C654E616D + 650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E73 2E4C65667405000000000000008000400B4D617267696E732E546F7005000000 000000008000400D4D617267696E732E52696768740500000000000000800040 - 0E4D617267696E732E426F74746F6D05000000000000008000400A506F736974 - 696F6E2E5805000000000000008000400A506F736974696F6E2E590500000000 - 0000008000400A53697A652E5769647468050000000000E8FF8703400B53697A - 652E48656967687405000000000000008803401453697A652E506C6174666F72 - 6D44656661756C74080B5374796C654C6F6F6B7570060B627574746F6E737479 - 6C65000554506174680005416C69676E0706436C69656E7409446174612E5061 - 74680A4000000005000000000000000000803F00000000010000000000803F00 - 00803F01000000000000000000003F010000000000803F000000000300000000 - 00803F000000000A46696C6C2E436F6C6F720708636C61576869746507486974 - 54657374080C4D617267696E732E4C6566740500000000000000C001400B4D61 - 7267696E732E546F700500000000000000C001400D4D617267696E732E526967 - 68740500000000000000C001400E4D617267696E732E426F74746F6D05000000 - 00000000C001400A53697A652E5769647468050000000000A0FF9F01400B5369 - 7A652E4865696768740500000000000000A001401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000007 - 54427574746F6E00095374796C654E616D65060A706C7573627574746F6E0541 - 6C69676E070846697452696768740843616E466F6375730806437572736F7207 - 0763724172726F770C4D617267696E732E4C6566740500000000000000800040 - 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 - 000000000000008000400A506F736974696F6E2E580500000000006A66BA0540 - 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 - 68050000000000F0FF8703400B53697A652E4865696768740500000000000000 - 8803401453697A652E506C6174666F726D44656661756C74080B5374796C654C - 6F6F6B7570060B627574746F6E7374796C65000554506174680005416C69676E - 0706436C69656E7409446174612E506174680A34000000040000000000000000 - 0000000000000001000000000000000000803F010000000000803F0000003F03 - 00000000000000000000000A46696C6C2E436F6C6F720708636C615768697465 - 0748697454657374080C4D617267696E732E4C6566740500000000000000C001 - 400B4D617267696E732E546F700500000000000000C001400D4D617267696E73 - 2E52696768740500000000000000C001400E4D617267696E732E426F74746F6D - 0500000000000000C001400A53697A652E5769647468050000000000C0FF9F01 - 400B53697A652E4865696768740500000000000000A001401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 00000000545046300D545377697463684F626A65637400095374796C654E616D - 65060B7377697463687374796C6505416C69676E070643656E746572044B696E - 64070C466164696E67547261636B730A53697A652E5769647468050000000000 - 0000C805400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C7408085461624F726465720217125472 - 61636B696E675468756D625363616C65050000000000000080FF3F0756697369 - 626C65080A46696C6C2E436F6C6F7207097846463230323032300C46696C6C4F - 6E2E436F6C6F7207097846463137353739430B46696C6C4F6E2E4B696E640705 - 536F6C69640B5374726F6B652E4B696E6407044E6F6E650B5468756D622E436F - 6C6F7207097846463430343034300D5468756D624F6E2E436F6C6F7207097846 - 463241383245320C5468756D624F6E2E4B696E640705536F6C6964105468756D - 625374726F6B652E4B696E6407044E6F6E650F5468756D625374726F6B652E43 - 61700705526F756E64105468756D625374726F6B652E44617368070643757374 - 6F6D105468756D625374726F6B652E4A6F696E0705526F756E64165468756D62 - 5374726F6B652E437573746F6D446173680A0800000000000000000000000553 - 686170650709526F756E645265637400005450463007544C61796F7574000953 - 74796C654E616D65060F746162636F6E74726F6C7374796C6505416C69676E07 - 0643656E7465720A53697A652E576964746805000000000000008E06400B5369 - 7A652E486569676874050000000000FFFFC905401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F726465720218000A - 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E0708436F6E74656E747307436F726E6572730B08546F705269 - 6768740A426F74746F6D4C6566740B426F74746F6D5269676874000A46696C6C - 2E436F6C6F720709784646333033303330064C6F636B65640907486974546573 - 74080C50616464696E672E4C65667405000000000000008000400B5061646469 - 6E672E546F7005000000000000008000400D50616464696E672E526967687405 - 000000000000008000400E50616464696E672E426F74746F6D05000000000000 - 008000400A53697A652E576964746805000000000000008E06400B53697A652E - 486569676874050000000000FFFFC905401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 - 585261646975730500000000000000C000400759526164697573050000000000 - 0000C00040000000545046300A5452656374616E676C6500095374796C654E61 - 6D65060B746162646F747374796C6505416C69676E070643656E7465720A4669 - 6C6C2E436F6C6F7207097846463135313531350748697454657374080A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E650756697369626C6508075852616469 - 75730500000000000000C8034007595261646975730500000000000000C80340 - 000F54436F6C6F72416E696D6174696F6E00084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097846463135313531350953746F7056616C756507 - 097846463241383245320754726967676572060F497353656C65637465643D74 - 7275650E54726967676572496E76657273650610497353656C65637465643D66 - 616C73650000005450463007544C61796F757400095374796C654E616D65060C - 7461626974656D7374796C6505416C69676E070643656E7465720A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F726465720219000A5452656374616E676C65000953 - 74796C654E616D650603746F7005416C69676E0708436F6E74656E74730C436C - 69704368696C6472656E0907436F726E6572730B07546F704C65667408546F70 - 5269676874000A46696C6C2E436F6C6F720709784646323032303230064C6F63 - 6B6564090748697454657374080553696465730B03546F70044C656674055269 - 676874000A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000C803401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 - 585261646975730500000000000000C000400759526164697573050000000000 - 0000C00040000654476C79706800095374796C654E616D65060A676C79706873 - 74796C650C4D617267696E732E4C65667405000000000000008001400D4D6172 - 67696E732E526967687405000000000000008001C005416C69676E07044C6566 - 740A506F736974696F6E2E5805000000000000008001400A53697A652E576964 - 746805000000000000008003400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C7408000005545465 - 787400095374796C654E616D6506047465787405416C69676E0706436C69656E - 74064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 - 00000000000000C000400B4D617267696E732E546F700500000000000000C000 - 400D4D617267696E732E52696768740500000000000000C000400E4D61726769 - 6E732E426F74746F6D0500000000000000C000400A53697A652E576964746805 - 00000000000000B004400B53697A652E48656967687405000000000000009803 - 401453697A652E506C6174666F726D44656661756C7408165465787453657474 - 696E67732E466F6E74436F6C6F720708636C6157686974651554657874536574 - 74696E67732E576F7264577261700800000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D650612746162436F6C6F72416E696D6174696F6E31 - 0D416E696D6174696F6E547970650705496E4F7574084475726174696F6E0500 - 00000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C756507097846463230323032300953746F7056616C - 756507097846463430343034300754726967676572062149734D6F7573654F76 - 65723D747275653B497353656C65637465643D66616C73650E54726967676572 - 496E7665727365062249734D6F7573654F7665723D66616C73653B497353656C - 65637465643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650612746162436F6C6F72416E696D6174696F6E3208447572 + 0E4D617267696E732E426F74746F6D05000000000000008000400A53697A652E + 57696474680500000000009899E905400B53697A652E48656967687405000000 + 00006666CC05401453697A652E506C6174666F726D44656661756C740800000A + 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 + 7205416C69676E0706426F74746F6D06437572736F72070763724172726F770B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E070A486F72697A6F6E74616C0A506F736974696F6E2E5905000000000066 + 66D405400A53697A652E5769647468050000000000CCCC8806400B53697A652E + 48656967687405000000000000008003401453697A652E506C6174666F726D44 + 656661756C740800000A545363726F6C6C42617200095374796C654E616D6506 + 0A767363726F6C6C62617205416C69676E0705526967687406437572736F7207 + 0763724172726F770B536D616C6C4368616E676505000000000000000000000B + 4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E2E58 + 0500000000009899F105400A53697A652E576964746805000000000000008003 + 400B53697A652E4865696768740500000000006666D405401453697A652E506C + 6174666F726D44656661756C7408000007544C61796F75740005416C69676E07 + 06436C69656E740A53697A652E57696474680500000000009899F105400B5369 + 7A652E4865696768740500000000006666D405401453697A652E506C6174666F + 726D44656661756C7408000F54536D616C6C5363726F6C6C4261720009537479 + 6C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E070552 + 6967687406437572736F72070763724172726F770B536D616C6C4368616E6765 + 05000000000000000000000B4F7269656E746174696F6E070856657274696361 + 6C0C4D617267696E732E4C65667405000000000000008000400A53697A652E57 + 6964746805000000000000008002400B53697A652E4865696768740500000000 + 0000008002401453697A652E506C6174666F726D44656661756C740807566973 + 69626C650800000F54536D616C6C5363726F6C6C42617200095374796C654E61 + 6D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F + 6D06437572736F72070763724172726F770B536D616C6C4368616E6765050000 + 00000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C + 0B4D617267696E732E546F7005000000000000008000400A53697A652E576964 + 746805000000000000009606400B53697A652E48656967687405000000000000 + 008002401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C65080000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 6506146D656D6F5374726F6B65416E696D6174696F6E31084475726174696F6E + 050000000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B65 + 2E436F6C6F720A537461727456616C756507097846463135313531350953746F + 7056616C756507097846463430343034300754726967676572062049734D6F75 + 73654F7665723D747275653B4973466F63757365643D66616C73650E54726967 + 676572496E7665727365062149734D6F7573654F7665723D66616C73653B4973 + 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D6506146D656D6F5374726F6B65416E696D6174696F6E32 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464634 + 30343034300953746F7056616C75650709784646324138324532075472696767 + 6572060E4973466F63757365643D747275650E54726967676572496E76657273 + 65060F4973466F63757365643D66616C7365000000005450463007544C61796F + 757400095374796C654E616D65060E6C696E6B6C6162656C7374796C6505416C + 69676E070643656E7465720A53697A652E5769647468050000000000CCCC8006 + 400B53697A652E4865696768740500000000009A998104401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 022A0005545465787400095374796C654E616D6506047465787405416C69676E + 0708436F6E74656E74730748697454657374080A53697A652E57696474680500 + 00000000CCCC8006400B53697A652E4865696768740500000000009A99810440 + 1453697A652E506C6174666F726D44656661756C740804546578740604546578 + 741A5465787453657474696E67732E466F6E742E5374796C654578740A0D0000 + 0004040000000000000004000000165465787453657474696E67732E466F6E74 + 436F6C6F72070D636C61446F64676572626C7565000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E + 315374796C65084475726174696F6E050000000000CDCCCCFB3F07496E766572 + 7365090C50726F70657274794E616D6506165465787453657474696E67732E46 + 6F6E74436F6C6F720A537461727456616C7565070D636C61446F64676572626C + 75650953746F7056616C7565070E636C6144656570736B79626C756507547269 + 67676572063049734D6F7573654F7665723D747275653B497350726573736564 + 3D66616C73653B4973466F63757365643D66616C73650E54726967676572496E + 7665727365063149734D6F7573654F7665723D66616C73653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D + 6174696F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C + 50726F70657274794E616D6506165465787453657474696E67732E466F6E7443 + 6F6C6F720A537461727456616C7565070E636C6144656570736B79626C756509 + 53746F7056616C756507097846463137353739430754726967676572062F4973 + 507265737365643D747275653B49734D6F7573654F7665723D747275653B4973 + 466F63757365643D66616C7365000000005450463007544C61796F7574000953 + 74796C654E616D65060D73697A65677269707374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000000000C803400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F72646572022B000A5452 + 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646363036 + 3036300A53697A652E57696474680500000000000000A000400B53697A652E48 + 65696768740500000000000000A000401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374 + 616E676C6500095374796C654E616D65060A52656374616E676C653205416C69 + 676E070643656E7465720A46696C6C2E436F6C6F720709784646363036303630 + 0C4D617267696E732E4C6566740500000000000000A002400A53697A652E5769 + 6474680500000000000000A000400B53697A652E486569676874050000000000 + 0000A000401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C + 654E616D65060A52656374616E676C653305416C69676E070643656E7465720A + 46696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C65 + 66740500000000000000A002400B4D617267696E732E546F7005000000000000 + 00A002400A53697A652E57696474680500000000000000A000400B53697A652E + 4865696768740500000000000000A000401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653405416C + 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463630363036 + 300B4D617267696E732E546F700500000000000000A002400A53697A652E5769 + 6474680500000000000000A000400B53697A652E486569676874050000000000 + 0000A000401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C + 654E616D65060A52656374616E676C653505416C69676E070643656E7465720A + 46696C6C2E436F6C6F7207097846463630363036300B4D617267696E732E546F + 700500000000000000A002400D4D617267696E732E5269676874050000000000 + 0000A002400A53697A652E57696474680500000000000000A000400B53697A65 + 2E4865696768740500000000000000A000401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265 + 6374616E676C6500095374796C654E616D65060A52656374616E676C65360541 + 6C69676E070643656E7465720A46696C6C2E436F6C6F72070978464636303630 + 36300C4D617267696E732E4C6566740500000000000000A002400E4D61726769 + 6E732E426F74746F6D0500000000000000A002400A53697A652E576964746805 + 00000000000000A000400B53697A652E4865696768740500000000000000A000 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000000545046300A5452656374616E676C650009537479 + 6C654E616D65060E7374617475736261727374796C6505416C69676E07064365 + 6E7465720C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978 + 46463235323532350553696465730B03546F70000A53697A652E576964746805 + 00000000000000F004400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F7207097846463135313531350756697369626C65080007544C61796F75 + 7400095374796C654E616D6506074C61796F75743105416C69676E0705526967 + 68740A506F736974696F6E2E5805000000000000008C04400A53697A652E5769 + 6474680500000000000000C803400B53697A652E486569676874050000000000 + 0000C804401453697A652E506C6174666F726D44656661756C74080009545369 + 7A654772697000095374796C654E616D65060973697A65677267697005416C69 + 676E0706426F74746F6D0A506F736974696F6E2E590500000000000000C80340 + 0A53697A652E57696474680500000000000000C803400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C740800000000545046300A5452656374616E676C6500095374796C654E616D + 65060C746F6F6C6261727374796C6505416C69676E070643656E7465720A4669 + 6C6C2E436F6C6F72070978464632353235323507486974546573740805536964 + 65730B06426F74746F6D000A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 3135313531350756697369626C650800005450463007544C61796F7574000953 + 74796C654E616D65061570726F67726573736261726572726F727374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000003333 + 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 6572022C000A5452656374616E676C6500095374796C654E616D650606687472 + 61636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 784646323032303230064C6F636B6564090748697454657374080A53697A652E + 576964746805000000000033338505400B53697A652E48656967687405000000 + 00009999E104401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F720709784646313531353135000A5452656374616E676C + 6500095374796C654E616D65060A68696E64696361746F7205416C69676E0704 + 4C6566740A46696C6C2E436F6C6F720709784646453232413241064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 + 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 + 6F6D050000000000000080FF3F0A506F736974696F6E2E580500000000000000 + 80FF3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 009999D904401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E650000000A5452656374616E676C6500095374 + 796C654E616D65060676747261636B05416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000033338505400B53697A + 652E4865696768740500000000009999E104401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000A5452656374616E676C6500095374796C654E616D65060A76696E646963 + 61746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978 + 4646453232413241064C6F636B6564090748697454657374080C4D617267696E + 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F7369 + 74696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000 + 000099998904400A53697A652E576964746805000000000033338105400B5369 + 7A652E4865696768740500000000000000A803401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000 + 5450463007544C61796F757400095374796C654E616D650613736D616C6C7363 + 726F6C6C6261727374796C6505416C69676E070643656E746572075669736962 + 6C6508085461624F72646572022D000654547261636B00095374796C654E616D + 65060668747261636B05416C69676E0706436C69656E74064C6F636B6564090B + 4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B757006147363726F6C6C62617268747261636B7374796C6500000654 + 547261636B00095374796C654E616D65060676747261636B05416C69676E0706 + 436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F7269 + 7A6F6E74616C0A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172 + 76747261636B7374796C650000005450463007544C61796F757400095374796C + 654E616D65060D636F6D626F626F787374796C6505416C69676E070643656E74 + 65720A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508085461624F72646572022E000C5442727573 + 684F626A65637400095374796C654E616D65060A666F726567726F756E640000 + 0B54466F6E744F626A65637400095374796C654E616D650604666F6E7409466F + 6E742E53697A650500000000000000D00240000007544C61796F757400095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C7408000A5452656374616E676C6500095374796C654E616D65060A52 + 656374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E650007544C61796F757400095374796C654E616D6506 + 11427574746F6E5374796C654F626A65637405416C69676E0708466974526967 + 68740B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A506F736974696F6E2E580500000000005ED997 + 05400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769 + 647468050000000000889AB803400B53697A652E486569676874050000000000 + 0000B803401453697A652E506C6174666F726D44656661756C74080007544C61 + 796F757400095374796C654E616D6506074C61796F75743105416C69676E0706 + 43656E7465720C4D617267696E732E4C656674050000000000000080FF3F0A53 + 697A652E57696474680500000000000000A002400B53697A652E486569676874 + 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 + 080005545061746800095374796C654E616D650605506174683105416C69676E + 0706436C69656E7409446174612E506174680A34000000040000000000000000 + 00C8420000C84201000000000096430000C84201000000000048430000964303 + 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080A53697A652E57696474680500000000000000A002400B + 53697A652E4865696768740500000000000000C001401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562 + 7574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463230323032300953746F7056616C75 + 6507097846463430343034300754726967676572063049734D6F7573654F7665 + 723D747275653B4973507265737365643D66616C73653B4973466F6375736564 + 3D66616C73650E54726967676572496E7665727365063149734D6F7573654F76 + 65723D66616C73653B4973507265737365643D66616C73653B4973466F637573 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3208447572 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C756507097846463241383245320754726967676572060F4973 - 53656C65637465643D747275650E54726967676572496E766572736506104973 - 53656C65637465643D66616C7365000000005450463007544C61796F75740009 - 5374796C654E616D65060D7465787463656C6C7374796C6505416C69676E0706 - 43656E7465720756697369626C6508085461624F72646572021A0007544C6179 - 6F757400095374796C654E616D650607636F6E74656E7405416C69676E070843 - 6F6E74656E7473064C6F636B6564090C4D617267696E732E4C65667405000000 - 000000008001400B4D617267696E732E546F7005000000000000008001400D4D - 617267696E732E526967687405000000000000008001400E4D617267696E732E - 426F74746F6D05000000000000008001400A53697A652E576964746805000000 - 00000000A804400B53697A652E4865696768740500000000000000A804401453 - 697A652E506C6174666F726D44656661756C740800000C5442727573684F626A - 65637400095374796C654E616D65060A666F726567726F756E6400000C544272 - 7573684F626A65637400095374796C654E616D65060973656C656374696F6E0B - 42727573682E436F6C6F72070978393632413832453200000B54466F6E744F62 - 6A65637400095374796C654E616D650604666F6E740000005450463007544369 - 72636C6500095374796C654E616D65060D7468756D626261727374796C650541 - 6C69676E070643656E7465720A46696C6C2E436F6C6F72070978464632413832 - 45320748697454657374080A53697A652E57696474680500000000000000A003 - 400B53697A652E4865696768740500000000000000A003401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 3135313531350756697369626C6508000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E - 31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 + 696C6C2E436F6C6F720A537461727456616C7565070978464634303430343009 + 53746F7056616C756507097846463137353739430754726967676572062F4973 + 507265737365643D747275653B49734D6F7573654F7665723D747275653B4973 + 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E + 33084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463241 383245320953746F7056616C7565070978464631373537394307547269676765 - 72061F4973507265737365643D747275653B49734D6F7573654F7665723D7472 - 75650E54726967676572496E766572736506104973507265737365643D66616C - 73653B00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 06147468756D62436F6C6F72416E696D6174696F6E32084475726174696F6E05 - 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463241383245320953746F705661 - 6C756507097846463430394246460754726967676572062049734D6F7573654F - 7665723D747275653B4973507265737365643D66616C73650E54726967676572 - 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 - 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D6506157468756D625374726F6B65416E696D6174696F6E310844 - 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 - 0C5374726F6B652E436F6C6F720A537461727456616C75650709784646313531 - 3531350953746F7056616C756507097846463137353739430754726967676572 - 061F4973507265737365643D747275653B49734D6F7573654F7665723D747275 - 650E54726967676572496E7665727365060F4973507265737365643D66616C73 - 65000000545046300A5452656374616E676C6500095374796C654E616D65060A - 7468756D627374796C6505416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463444344434440748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E69 - 6D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E69 - 6D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463444344434440953746F7056616C7565070978464631373537394307 - 54726967676572060E4973507265737365643D747275650E5472696767657249 - 6E7665727365060F4973507265737365643D66616C736500000F54436F6C6F72 + 72062E4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 75653B4973466F63757365643D747275650E54726967676572496E7665727365 + 062F4973507265737365643D66616C73653B49734D6F7573654F7665723D7472 + 75653B4973466F63757365643D747275650000000007544C61796F7574000953 + 74796C654E616D650607636F6E74656E7405416C69676E0706436C69656E7406 + 4C6F636B6564090C4D617267696E732E4C65667405000000000000008000400B + 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 + 696768740500000000000000D803400E4D617267696E732E426F74746F6D0500 + 0000000000008000400A53697A652E576964746805000000000000008E05400B + 53697A652E4865696768740500000000000000A803401453697A652E506C6174 + 666F726D44656661756C74080000005450463007544C61796F75740009537479 + 6C654E616D65060D73706C69747465727374796C6505416C69676E070643656E + 7465720A53697A652E57696474680500000000000000A904400B53697A652E48 + 65696768740500000000000080C105401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F72646572022F000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C + 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463330333033 + 300748697454657374080553696465730B044C656674055269676874000A5369 + 7A652E57696474680500000000000000A904400B53697A652E48656967687405 + 00000000000080C105401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F720709784646313531353135000007544C61796F + 757400095374796C654E616D6506046772697005416C69676E0706436C69656E + 740A53697A652E57696474680500000000000000A904400B53697A652E486569 + 6768740500000000000080C105401453697A652E506C6174666F726D44656661 + 756C7408000754436972636C6500095374796C654E616D650607436972636C65 + 3105416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464634 + 30343034300A53697A652E57696474680500000000000000E001400B53697A65 + 2E4865696768740500000000000000E001401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 00000754436972636C6500095374796C654E616D650607436972636C65320541 + 6C69676E070643656E7465720A46696C6C2E436F6C6F72070978464634303430 + 34300B4D617267696E732E546F700500000000000000A003400A53697A652E57 + 696474680500000000000000E001400B53697A652E4865696768740500000000 + 000000E001401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F72070978464631353135313500000754436972636C650009 + 5374796C654E616D650607436972636C653305416C69676E070643656E746572 + 0A46696C6C2E436F6C6F7207097846463430343034300E4D617267696E732E42 + 6F74746F6D0500000000000000A003400A53697A652E57696474680500000000 + 000000E001400B53697A652E4865696768740500000000000000E00140145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000000005450463007544C61796F75740009537479 + 6C654E616D650610636C6F7365627574746F6E7374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508085461624F726465720230000A54 + 52656374616E676C6500095374796C654E616D65060B636C6F7365627574746F + 6E05416C69676E0706436C69656E7413456E61626C6544726167486967686C69 + 676874080A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 - 74696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0749 - 6E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463444344434440953746F7056616C7565 - 0707636C61477261790754726967676572061049734D6F7573654F7665723D74 - 7275650E54726967676572496E7665727365061149734D6F7573654F7665723D - 66616C73650000005450463007544C61796F757400095374796C654E616D6506 - 0D747261636B6261727374796C6505416C69676E070643656E7465720A53697A - 652E57696474680500000000000000C805400B53697A652E4865696768740500 - 000000000000C805401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F72646572021B0B466978656448656967687402 - 11000A5452656374616E676C6500095374796C654E616D65060668747261636B - 05416C69676E070A5665727443656E7465720A46696C6C2E436F6C6F72070978 - 46463135313531350748697454657374080A506F736974696F6E2E5905000000 - 00000000BC04400A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000A001401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 - 646975730500000000000000A0004007595261646975730500000000000000A0 - 0040000A5452656374616E676C6500095374796C654E616D65060A6261636B67 - 726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407 - 044E6F6E65064C6F636B6564090748697454657374080C4D617267696E732E4C - 6566740500000000000000C001400B4D617267696E732E546F70050000000000 - 000080FF3F0D4D617267696E732E52696768740500000000000000C001400E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 - 6474680500000000000000B005400B53697A652E486569676874050000000000 - 0000C000401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0FF3F - 07595261646975730500000000000000C0FF3F00000A5452656374616E676C65 - 00095374796C654E616D650609686967686C6967687405416C69676E07044C65 - 66740A46696C6C2E436F6C6F7207097846463241383245320748697454657374 - 080C50616464696E672E4C6566740500000000000000A002400A53697A652E57 - 696474680500000000000000F003400B53697A652E4865696768740500000000 - 000000A001401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000A000 - 4007595261646975730500000000000000A0004000000B54476C6F7745666665 - 63740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F - 720709784646324138324532074F706163697479050000000000000080FF3F07 - 456E61626C6564080000000A5452656374616E676C6500095374796C654E616D - 65060676747261636B05416C69676E070A486F727A43656E7465720A46696C6C - 2E436F6C6F7207097846463135313531350748697454657374080A506F736974 - 696F6E2E580500000000000000BC04400A53697A652E57696474680500000000 - 000000A001400B53697A652E4865696768740500000000000000C80540145369 + 74696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464646463631 + 35370754726967676572062049734D6F7573654F7665723D747275653B497350 + 7265737365643D66616C73650E54726967676572496E7665727365062149734D + 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846464646363135370953746F7056616C75650709 + 7846464532344634350754726967676572061F49734D6F7573654F7665723D74 + 7275653B4973507265737365643D747275650E54726967676572496E76657273 + 65062049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C736500000005545061746800095374796C654E616D65060550617468310541 + 6C69676E070643656E74657209446174612E506174680AC40000001000000000 + 0000000000A0C00000704101000000000070410000A0C0010000000000484200 + 00F041010000000000AA420000A0C0010000000000D242000070410100000000 + 008C4200004842010000000000D2420000B442010000000000AA420000DC4202 + 0000003BDF34429E6F8C4202000000FE547D427FAAB042020000000000484200 + 00964201000000000070410000DC42010000000000A0C00000B4420100000000 + 00F04100005C42010000000000A0C000007041030000000000A0C0000070410A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000A002401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F75 + 7400095374796C654E616D65060E6D6178627574746F6E7374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 31000A5452656374616E676C6500095374796C654E616D6506096D6178627574 + 746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846 + 463230323032300748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80340145369 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E6507585261646975730500000000000000A000400759526164697573 - 0500000000000000A00040000A5452656374616E676C6500095374796C654E61 - 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946 - 696C6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C - 4D617267696E732E4C6566740500000000000000C001400B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 00000000C001400E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A53697A652E576964746805000000000000000000000B53697A652E486569 - 6768740500000000000000C405401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E - 676C6500095374796C654E616D650609686967686C6967687405416C69676E07 - 03546F700A46696C6C2E436F6C6F720709784646324138324532074869745465 - 7374080A53697A652E57696474680500000000000000A001400B53697A652E48 - 65696768740500000000000000F003401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 - 0500000000000000A0004007595261646975730500000000000000A000400000 - 0B54476C6F774566666563740008536F66746E657373050000000000CDCCCCFC - 3F09476C6F77436F6C6F720709784646324138324532074F7061636974790500 - 00000000000080FF3F07456E61626C65640800000006545468756D6200095374 - 796C654E616D650606687468756D62064C6F636B6564090A506F736974696F6E - 2E580500000000003033AB03400A506F736974696F6E2E59050000000000FFFF - A304400A53697A652E57696474680500000000000000F002400B53697A652E48 + 044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E + 050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 + 616C756507097846463241383245320754726967676572062049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 + 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 + 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614436F6C6F72416E696D6174696F6E325374796C650844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 + 320953746F7056616C756507097846463137353739430754726967676572061F + 49734D6F7573654F7665723D747275653B4973507265737365643D747275650E + 54726967676572496E7665727365062049734D6F7573654F7665723D74727565 + 3B4973507265737365643D66616C736500000005545061746800095374796C65 + 4E616D650605506174683105416C69676E070643656E74657209446174612E50 + 6174680A5800000007000000000000000000C8420000C8420100000000002F44 + 0000C8420100000000002F4400002F4401000000008009440080094401000000 + 0080094400007A430100000000007A4300007A43030000000000C8420000C842 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A53 + 697A652E57696474680500000000000000A002400B53697A652E486569676874 + 0500000000000000A002401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F + 757400095374796C654E616D65060E6D696E627574746F6E7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 0233000A5452656374616E676C6500095374796C654E616D6506096D696E6275 + 74746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F + 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463230323032300953746F70 + 56616C756507097846463241383245320754726967676572062049734D6F7573 + 654F7665723D747275653B4973507265737365643D66616C73650E5472696767 + 6572496E7665727365062149734D6F7573654F7665723D66616C73653B497350 + 7265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632413832 + 45320953746F7056616C75650709784646313735373943075472696767657206 + 1F49734D6F7573654F7665723D747275653B4973507265737365643D74727565 + 0E54726967676572496E7665727365062049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C736500000005545061746800095374796C + 654E616D650605506174683105416C69676E070643656E74657209446174612E + 506174680A40000000050000000000000000002F44008009440100000000002F + 4400002F44010000000000C84200002F44010000000000C84200800944030000 + 0000002F44008009440A46696C6C2E436F6C6F720708636C6157686974650748 + 697454657374080B4D617267696E732E546F700500000000000000A002400D52 + 6F746174696F6E416E676C650500000000000000B406400A53697A652E576964 + 74680500000000000000A002400B53697A652E48656967687405000000000000 + 00C000401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650000005450463007544C61796F75740009537479 + 6C654E616D65060E726573627574746F6E7374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F726465720234000A545265 + 6374616E676C6500095374796C654E616D650609726573627574746F6E05416C + 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E315374796C65084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463241383245320754726967676572062049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C73650E54726967676572496E766572 + 7365062149734D6F7573654F7665723D66616C73653B4973507265737365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F + 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463241383245320953746F70 + 56616C756507097846463137353739430754726967676572061F49734D6F7573 + 654F7665723D747275653B4973507265737365643D747275650E547269676765 + 72496E7665727365062049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C736500000005545061746800095374796C654E616D650605 + 506174683105416C69676E070643656E74657209446174612E506174680A5800 + 000007000000000000000000C8420000C8420100000000002F440000C8420100 + 000000002F4400002F4401000000008009440080094401000000008009440000 + 7A430100000000007A4300007A43030000000000C8420000C8420A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080D526F746174696F + 6E416E676C650500000000000000B406400A53697A652E576964746805000000 + 00000000A002400B53697A652E4865696768740500000000000000A002401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650000005450463007544C61796F757400095374796C654E616D65 + 060F746F6F6C77696E646F777374796C6505416C69676E070643656E7465720A + 53697A652E576964746805000000000056D5AF07400B53697A652E4865696768 + 740500000000000000B306401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508085461624F726465720237000A5452656374616E67 + 6C6500095374796C654E616D6506046D61736B05416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F7207097846463130313031300A53697A652E57 + 6964746805000000000056D5AF07400B53697A652E4865696768740500000000 + 000000B306401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E650756697369626C6508000007544C61796F75 + 7400095374796C654E616D6506046C65667405416C69676E07084D6F73744C65 + 6674064C6F636B6564090A506F736974696F6E2E590500000000000000C80340 + 0A53697A652E57696474680500000000000000A001400B53697A652E48656967 + 687405000000000000009A06401453697A652E506C6174666F726D4465666175 + 6C7408000A5452656374616E676C650005416C69676E07084D6F73744C656674 + 0A46696C6C2E436F6C6F72070978464632303230323007486974546573740805 + 53696465730B044C656674055269676874000A53697A652E5769647468050000 + 0000000000A001400B53697A652E486569676874050000000000000095064014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F72070978464631353135313500000A5452656374616E676C6500095374796C + 654E616D65060A52656374616E676C653105416C69676E070A4D6F7374426F74 + 746F6D13456E61626C6544726167486967686C69676874080A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080A506F736974696F6E + 2E5905000000000000009506400553696465730B044C65667406426F74746F6D + 000A53697A652E57696474680500000000000000A001400B53697A652E486569 + 6768740500000000000000A001401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C + 61796F757400095374796C654E616D6506074C61796F75743305416C69676E07 + 094D6F737452696768740A506F736974696F6E2E580500000000000000800140 + 0A53697A652E5769647468050000000000000080FF3F0B53697A652E48656967 + 68740500000000000000A001401453697A652E506C6174666F726D4465666175 + 6C7408000A5452656374616E676C6500095374796C654E616D65060A52656374 + 616E676C653105416C69676E0703546F700A46696C6C2E436F6C6F7207097846 + 463135313531350748697454657374080A53697A652E57696474680500000000 + 00000080FF3F0B53697A652E486569676874050000000000000080FF3F145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000000000007544C61796F757400095374796C654E616D65060572 + 6967687405416C69676E07094D6F73745269676874064C6F636B6564090A506F + 736974696F6E2E580500000000005655AD07400A506F736974696F6E2E590500 + 000000000000C803400A53697A652E57696474680500000000000000A001400B + 53697A652E48656967687405000000000000009A06401453697A652E506C6174 + 666F726D44656661756C7408000A5452656374616E676C650005416C69676E07 + 094D6F737452696768740A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080553696465730B044C656674055269676874000A53697A + 652E57696474680500000000000000A001400B53697A652E4865696768740500 + 0000000000009506401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F72070978464631353135313500000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 + 6E070A4D6F7374426F74746F6D13456E61626C6544726167486967686C696768 + 74080A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A506F736974696F6E2E5905000000000000009506400553696465730B0642 + 6F74746F6D055269676874000A53697A652E57696474680500000000000000A0 + 01400B53697A652E4865696768740500000000000000A001401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 463135313531350007544C61796F757400095374796C654E616D6506074C6179 + 6F75743305416C69676E07084D6F73744C6566740A53697A652E576964746805 + 0000000000000080FF3F0B53697A652E4865696768740500000000000000A001 + 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E + 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E + 0703546F700A46696C6C2E436F6C6F7207097846463135313531350748697454 + 657374080A53697A652E5769647468050000000000000080FF3F0B53697A652E + 486569676874050000000000000080FF3F1453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000000A54 + 52656374616E676C650005416C69676E07074D6F7374546F700A46696C6C2E43 + 6F6C6F720709784646323032303230064C6F636B656409074869745465737408 + 0A53697A652E576964746805000000000056D5AF07400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C61 + 796F757400095374796C654E616D65060763617074696F6E05416C69676E0708 + 436F6E74656E7473064C6F636B6564090748697454657374090A53697A652E57 + 6964746805000000000056D5AF07400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C740800000754 + 4C61796F75740005416C69676E0706436C69656E74064C6F636B6564090C4D61 + 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E576964746805000000000056D5AE07400B53697A652E4865696768 + 740500000000000000B803401453697A652E506C6174666F726D44656661756C + 74080007544C61796F75740005416C69676E07044C656674064C6F636B656409 + 0A53697A652E576964746805000000000000009002400B53697A652E48656967 + 68740500000000000000B803401453697A652E506C6174666F726D4465666175 + 6C7408000007544C61796F757400095374796C654E616D65060773797362746E + 7305416C69676E0706436C69656E74064C6F636B6564090A53697A652E576964 + 74680500000000005655AA07400B53697A652E48656967687405000000000000 + 00B803401453697A652E506C6174666F726D44656661756C7408000C54537065 + 6564427574746F6E00095374796C654E616D650605636C6F736505416C69676E + 07055269676874064C6F636B6564090A506F736974696F6E2E58050000000000 + 56D59D07400A53697A652E57696474680500000000000000C803400B53697A65 + 2E4865696768740500000000000000B803401453697A652E506C6174666F726D + 44656661756C74080B5374796C654C6F6F6B75700610636C6F7365627574746F + 6E7374796C65000005545465787400095374796C654E616D6506057469746C65 + 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000056D59D07400B53697A652E4865696768 + 740500000000000000B803401453697A652E506C6174666F726D44656661756C + 7408045465787406055469746C65165465787453657474696E67732E466F6E74 + 436F6C6F720708636C615768697465000000000007544C61796F757400095374 + 796C654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F + 636B6564090748697454657374090A53697A652E576964746805000000000056 + D5AA07400B53697A652E48656967687405000000000000009506401453697A65 + 2E506C6174666F726D44656661756C7408000007544C61796F75740009537479 + 6C654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F63 + 6B6564090A506F736974696F6E2E580500000000000000A001400A506F736974 + 696F6E2E590500000000000000AE06400A53697A652E57696474680500000000 + 0056D5AA07400B53697A652E4865696768740500000000000000A00140145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D6506047265637405416C69676E0706426F74746F6D0A46 + 696C6C2E436F6C6F7207097846463230323032300553696465730B03546F7006 + 426F74746F6D000A53697A652E576964746805000000000056D5AA07400B5369 + 7A652E4865696768740500000000000000A001401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 3135000000005450463007544C61796F757400095374796C654E616D65061072 + 6164696F627574746F6E7374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000F205400B53697A652E48656967687405 + 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F7264657202380007544C61796F7574000541 + 6C69676E07044C6566740A53697A652E57696474680500000000000000A80340 + 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 + 74666F726D44656661756C7408000854456C6C6970736500095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E070643656E7465720A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080A53697A652E57696474680500000000000000F002400B53697A652E48 65696768740500000000000000F002401453697A652E506C6174666F726D4465 - 6661756C74080B5374796C654C6F6F6B7570060D7468756D626261727374796C - 65000006545468756D6200095374796C654E616D650606767468756D62064C6F - 636B6564090A506F736974696F6E2E58050000000000CBCCA804400A506F7369 - 74696F6E2E590500000000009899B103400A53697A652E576964746805000000 - 00000000F002400B53697A652E4865696768740500000000000000F002401453 - 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 - 060D7468756D626261727374796C650000005450463007544C61796F75740009 - 5374796C654E616D6506096D656D6F7374796C6505416C69676E070643656E74 - 65720A53697A652E5769647468050000000000CCCC8806400B53697A652E4865 - 696768740500000000006666F405401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F72646572021C000B54476C6F77 - 4566666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77 - 436F6C6F720709784646343837394133074F7061636974790500000000000000 - 80FF3F0754726967676572060E4973466F63757365643D7472756507456E6162 - 6C65640800000C5442727573684F626A65637400095374796C654E616D65060A - 666F726567726F756E6400000C5442727573684F626A65637400095374796C65 - 4E616D65060973656C656374696F6E0B42727573682E436F6C6F720709783746 - 34343735394400000B54466F6E744F626A65637400095374796C654E616D6506 - 04666F6E7400000A5452656374616E676C6500095374796C654E616D65060A62 - 61636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E43 - 6F6C6F7207097846463230323032300748697454657374080A53697A652E5769 - 647468050000000000CCCC8806400B53697A652E486569676874050000000000 - 6666F405401453697A652E506C6174666F726D44656661756C74080C5374726F - 6B652E436F6C6F72070978464631353135313507585261646975730500000000 - 000000C0004007595261646975730500000000000000C000400007544C61796F - 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C - 69656E740C4D617267696E732E4C65667405000000000000008000400B4D6172 - 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 - 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 - 0000008000400A53697A652E57696474680500000000009899E905400B53697A - 652E4865696768740500000000006666CC05401453697A652E506C6174666F72 - 6D44656661756C740800000A545363726F6C6C42617200095374796C654E616D - 65060A687363726F6C6C62617205416C69676E0706426F74746F6D0643757273 - 6F72070763724172726F770B536D616C6C4368616E6765050000000000000000 - 00000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974 - 696F6E2E590500000000006666D405400A53697A652E57696474680500000000 - 00CCCC8806400B53697A652E4865696768740500000000000000800340145369 - 7A652E506C6174666F726D44656661756C740800000A545363726F6C6C426172 - 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 - 6967687406437572736F72070763724172726F770B536D616C6C4368616E6765 - 05000000000000000000000B4F7269656E746174696F6E070856657274696361 - 6C0A506F736974696F6E2E580500000000009899F105400A53697A652E576964 - 746805000000000000008003400B53697A652E48656967687405000000000066 - 66D405401453697A652E506C6174666F726D44656661756C7408000007544C61 - 796F75740005416C69676E0706436C69656E740A53697A652E57696474680500 - 000000009899F105400B53697A652E4865696768740500000000006666D40540 - 1453697A652E506C6174666F726D44656661756C7408000F54536D616C6C5363 - 726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C - 62617205416C69676E0705526967687406437572736F72070763724172726F77 - 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 - 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 - 00008000400A53697A652E576964746805000000000000008002400B53697A65 - 2E48656967687405000000000000008002401453697A652E506C6174666F726D - 44656661756C74080756697369626C650800000F54536D616C6C5363726F6C6C - 42617200095374796C654E616D65060F68736D616C6C7363726F6C6C62617205 - 416C69676E0706426F74746F6D06437572736F72070763724172726F770B536D - 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E - 070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000000000 - 8000400A53697A652E576964746805000000000000009606400B53697A652E48 - 656967687405000000000000008002401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C65080000000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D6506146D656D6F5374726F6B65416E696D617469 - 6F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 - 4E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565070978 - 46463135313531350953746F7056616C75650709784646343034303430075472 - 6967676572062049734D6F7573654F7665723D747275653B4973466F63757365 - 643D66616C73650E54726967676572496E7665727365062149734D6F7573654F - 7665723D66616C73653B4973466F63757365643D66616C736500000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D6506146D656D6F5374726F - 6B65416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350008 + 54456C6C6970736500095374796C654E616D650609636865636B6D61726B0541 + 6C69676E0706436C69656E740A46696C6C2E436F6C6F72070978464632413832 + 4532064C6F636B656409074869745465737408074F7061636974790500000000 + 0000000000000C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A53697A652E57696474680500000000000000B002400B53 + 697A652E4865696768740500000000000000B002401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 + 466C6F6174416E696D6174696F6E00095374796C654E616D65061A6F70616369 + 7479436865636B6D61726B416E696D6174696F6E31084475726174696F6E0500 + 00000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A + 537461727456616C756505000000000000000000000953746F7056616C756505 + 0000000000000080FF3F0754726967676572060E4973436865636B65643D7472 + 75650E54726967676572496E7665727365060F4973436865636B65643D66616C + 73650000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 061A726164696F627574746F6E436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463230323032300953746F7056616C75650709784646343034303430075472 + 6967676572061049734D6F7573654F7665723D747275650E5472696767657249 + 6E7665727365061149734D6F7573654F7665723D66616C736500000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E69 + 6D6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 + 7456616C756507097846463135313531350953746F7056616C75650709784646 + 3241383245320754726967676572060E4973436865636B65643D747275650E54 + 726967676572496E7665727365060F4973436865636B65643D66616C73650000 + 000005545465787400095374796C654E616D6506047465787405416C69676E07 + 06436C69656E74064C6F636B6564090748697454657374080A53697A652E5769 + 6474680500000000000000C805400B53697A652E486569676874050000000000 + 0000A803401453697A652E506C6174666F726D44656661756C74080454657874 + 060454657874165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C6157686974650000005450463007544C61796F757400095374796C654E616D + 650618756C63656E746572726164696F627574746F6E7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000005655FB05400B + 53697A652E4865696768740500000000000000A004401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F72646572023A + 0007544C61796F75740005416C69676E0706426F74746F6D0A506F736974696F + 6E2E5905000000000000008804400A53697A652E576964746805000000000056 + 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C656674 + 000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000005655FB05400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F + 6E31084475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572061049734D6F7573654F7665723D747275650E5472 + 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 + 000A5452656374616E676C6500095374796C654E616D650609636865636B6D61 + 726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F704C + 6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B656409074869745465737408074F7061636974790500 + 0000000000000000000C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000005655F705 + 400B53697A652E48656967687405000000000000008001401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A6368 + 65636B6D61726B4F706163697479416E696D6174696F6E31084475726174696F + 6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F70616369 + 74790A537461727456616C756505000000000000000000000953746F7056616C + 7565050000000000000080FF3F0754726967676572060E4973436865636B6564 + 3D747275650E54726967676572496E7665727365060F4973436865636B65643D + 66616C7365000000000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 + 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 + 687405000000000000008804401453697A652E506C6174666F726D4465666175 + 6C74080454657874060454657874165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D650616756C6C656674726164696F627574746F6E7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 5655FB05400B53697A652E4865696768740500000000000000A004401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 72646572023E0007544C61796F75740005416C69676E0706426F74746F6D0A50 + 6F736974696F6E2E5905000000000000008804400A53697A652E576964746805 + 00000000005655FB05400B53697A652E4865696768740500000000000000C001 + 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E747307436F726E6572730B07546F704C6566740A426F7474 + 6F6D4C656674000A46696C6C2E436F6C6F720709784646323032303230064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000056 + 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 784646313531353135000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E + 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07496E76 + 65727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463430343034300754726967676572061049734D6F7573654F7665723D74 + 7275650E54726967676572496E7665727365061149734D6F7573654F7665723D + 66616C736500000A5452656374616E676C6500095374796C654E616D65060963 + 6865636B6D61726B05416C69676E0708436F6E74656E747307436F726E657273 + 0B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72 + 0709784646324138324532064C6F636B656409074869745465737408074F7061 + 6369747905000000000000000000000C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 + 00005655F705400B53697A652E48656967687405000000000000008001401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E61 + 6D65061A636865636B6D61726B4F706163697479416E696D6174696F6E310844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 074F7061636974790A537461727456616C756505000000000000000000000953 + 746F7056616C7565050000000000000080FF3F0754726967676572060E497343 + 6865636B65643D747275650E54726967676572496E7665727365060F49734368 + 65636B65643D66616C7365000000000005545465787400095374796C654E616D + 6506047465787405416C69676E0706436C69656E74064C6F636B656409074869 + 7454657374080A53697A652E57696474680500000000005655FB05400B53697A + 652E48656967687405000000000000008804401453697A652E506C6174666F72 + 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 + 0708636C6157686974650000005450463007544C61796F757400095374796C65 + 4E616D650617756C7269676874726164696F627574746F6E7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000005655FB05 + 400B53697A652E4865696768740500000000000000A004401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 02410007544C61796F75740005416C69676E0706426F74746F6D0A506F736974 + 696F6E2E5905000000000000008804400A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F + 6E74656E747307436F726E6572730B08546F7052696768740B426F74746F6D52 + 69676874000A46696C6C2E436F6C6F720709784646323032303230064C6F636B + 6564090748697454657374080A53697A652E57696474680500000000005655FB + 05400B53697A652E4865696768740500000000000000C001401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E696D + 6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07496E766572 + 7365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 463430343034300754726967676572061049734D6F7573654F7665723D747275 + 650E54726967676572496E7665727365061149734D6F7573654F7665723D6661 + 6C736500000A5452656374616E676C6500095374796C654E616D650609636865 + 636B6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B08 + 546F7052696768740B426F74746F6D5269676874000A46696C6C2E436F6C6F72 + 0709784646324138324532064C6F636B656409074869745465737408074F7061 + 6369747905000000000000000000000C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 + 00005655F705400B53697A652E48656967687405000000000000008001401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E61 + 6D65061A636865636B6D61726B4F706163697479416E696D6174696F6E310844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 074F7061636974790A537461727456616C756505000000000000000000000953 + 746F7056616C7565050000000000000080FF3F0754726967676572060E497343 + 6865636B65643D747275650E54726967676572496E7665727365060F49734368 + 65636B65643D66616C7365000000000005545465787400095374796C654E616D + 6506047465787405416C69676E0706436C69656E74064C6F636B656409074869 + 7454657374080A53697A652E57696474680500000000005655FB05400B53697A + 652E48656967687405000000000000008804401453697A652E506C6174666F72 + 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 + 0708636C6157686974650000005450463007544C61796F757400095374796C65 + 4E616D65060E636F6D626F656469747374796C6505416C69676E070643656E74 + 65720A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508085461624F726465720244000C5442727573 + 684F626A65637400095374796C654E616D65060A666F726567726F756E640000 + 0B54466F6E744F626A65637400095374796C654E616D650604666F6E7409466F + 6E742E53697A650500000000000000D00240000007544C61796F757400095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C7408000A5452656374616E676C6500095374796C654E616D65060A52 + 656374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646323032303230000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374 + 796C65084475726174696F6E050000000000CDCCCCFB3F07496E766572736509 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 - 7456616C756507097846463430343034300953746F7056616C75650709784646 - 3241383245320754726967676572060E4973466F63757365643D747275650E54 - 726967676572496E7665727365060F4973466F63757365643D66616C73650000 - 00005450463007544C61796F757400095374796C654E616D65060D73697A6567 - 7269707374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000C803400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F72646572021D000A5452656374616E676C6500095374796C65 - 4E616D65060A52656374616E676C653105416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463630363036300A53697A652E576964746805 - 00000000000000A000400B53697A652E4865696768740500000000000000A000 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653205416C69676E070643656E7465720A46696C6C - 2E436F6C6F7207097846463630363036300C4D617267696E732E4C6566740500 - 000000000000A002400A53697A652E57696474680500000000000000A000400B - 53697A652E4865696768740500000000000000A000401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 0A5452656374616E676C6500095374796C654E616D65060A52656374616E676C - 653305416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 - 3630363036300C4D617267696E732E4C6566740500000000000000A002400B4D - 617267696E732E546F700500000000000000A002400A53697A652E5769647468 - 0500000000000000A000400B53697A652E4865696768740500000000000000A0 - 00401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653405416C69676E070643656E7465720A46696C - 6C2E436F6C6F7207097846463630363036300B4D617267696E732E546F700500 - 000000000000A002400A53697A652E57696474680500000000000000A000400B - 53697A652E4865696768740500000000000000A000401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 0A5452656374616E676C6500095374796C654E616D65060A52656374616E676C - 653505416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 - 3630363036300B4D617267696E732E546F700500000000000000A002400D4D61 - 7267696E732E52696768740500000000000000A002400A53697A652E57696474 - 680500000000000000A000400B53697A652E4865696768740500000000000000 - A000401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E - 616D65060A52656374616E676C653605416C69676E070643656E7465720A4669 - 6C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C656674 - 0500000000000000A002400E4D617267696E732E426F74746F6D050000000000 - 0000A002400A53697A652E57696474680500000000000000A000400B53697A65 - 2E4865696768740500000000000000A000401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000545046 - 300A5452656374616E676C6500095374796C654E616D65060E73746174757362 - 61727374796C6505416C69676E070643656E7465720C436C69704368696C6472 - 656E090A46696C6C2E436F6C6F7207097846463235323532350553696465730B - 03546F70000A53697A652E57696474680500000000000000F004400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 0756697369626C65080007544C61796F757400095374796C654E616D6506074C - 61796F75743105416C69676E070552696768740A506F736974696F6E2E580500 - 0000000000008C04400A53697A652E57696474680500000000000000C803400B - 53697A652E4865696768740500000000000000C804401453697A652E506C6174 - 666F726D44656661756C740800095453697A654772697000095374796C654E61 - 6D65060973697A65677267697005416C69676E0706426F74746F6D0A506F7369 - 74696F6E2E590500000000000000C803400A53697A652E576964746805000000 - 00000000C803400B53697A652E4865696768740500000000000000C803401453 - 697A652E506C6174666F726D44656661756C740800000000545046300A545265 - 6374616E676C6500095374796C654E616D65060C746F6F6C6261727374796C65 - 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463235 - 323532350748697454657374080553696465730B06426F74746F6D000A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F7207097846463135313531350756697369626C6508 - 00005450463007544C61796F757400095374796C654E616D65061570726F6772 - 6573736261726572726F727374796C6505416C69676E070643656E7465720A53 + 7456616C756507097846463230323032300953746F7056616C75650709784646 + 3430343034300754726967676572062049734D6F7573654F7665723D74727565 + 3B4973466F63757365643D66616C73650E54726967676572496E766572736506 + 2149734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 14436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E0500 + 00000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D6506 + 0C5374726F6B652E436F6C6F720A537461727456616C75650709784646343034 + 3034300953746F7056616C756507097846463241383245320754726967676572 + 061F49734D6F7573654F7665723D747275653B4973466F63757365643D747275 + 650E54726967676572496E7665727365062049734D6F7573654F7665723D7472 + 75653B4973466F63757365643D66616C7365000007544C61796F757400095374 + 796C654E616D6506056172726F7705416C69676E070846697452696768740B4D + 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 + 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A506F736974696F6E2E580500000000005ED99705400A50 + 6F736974696F6E2E59050000000000000080FF3F0A53697A652E576964746805 + 0000000000889AB803400B53697A652E4865696768740500000000000000B803 + 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E + 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E + 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646333033303330 + 0748697454657374080A53697A652E5769647468050000000000889AB803400B + 53697A652E4865696768740500000000000000B803401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F + 72416E696D6174696F6E315374796C65084475726174696F6E050000000000CD + CCCCFB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463330333033300953746F + 7056616C756507097846463430343034300754726967676572062049734D6F75 + 73654F7665723D747275653B4973466F63757365643D66616C73650E54726967 + 676572496E7665727365062149734D6F7573654F7665723D66616C73653B4973 + 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646343034 + 3034300953746F7056616C756507097846463137353739430754726967676572 + 061F4973466F63757365643D747275653B49734D6F7573654F7665723D747275 + 6500000007544C61796F757400095374796C654E616D6506074C61796F757431 + 05416C69676E070643656E7465720C4D617267696E732E4C6566740500000000 + 00000080FF3F0A53697A652E57696474680500000000000000A002400B53697A + 652E4865696768740500000000000000C001401453697A652E506C6174666F72 + 6D44656661756C74080005545061746800095374796C654E616D650605506174 + 683105416C69676E0706436C69656E7409446174612E506174680A3400000004 + 000000000000000000C8420000C84201000000000096430000C8420100000000 + 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080A53697A652E576964746805000000 + 00000000A002400B53697A652E4865696768740500000000000000C001401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650000000000000C5442727573684F626A65637400095374796C65 + 4E616D65060973656C656374696F6E0B42727573682E436F6C6F720709783936 + 324138324532000007544C61796F757400095374796C654E616D650607636F6E + 74656E7405416C69676E0706436C69656E740C4D617267696E732E4C65667405 + 000000000000008000400B4D617267696E732E546F7005000000000000008000 + 400D4D617267696E732E52696768740500000000000000F003400E4D61726769 + 6E732E426F74746F6D05000000000000008000400A53697A652E576964746805 + 000000000000008805400B53697A652E4865696768740500000000000000A803 + 401453697A652E506C6174666F726D44656661756C7408000000545046300754 + 4C61796F757400095374796C654E616D650611616E69696E64696361746F7273 + 74796C6505416C69676E070643656E7465720756697369626C6508085461624F + 72646572024800045441726300095374796C654E616D65060341726305416C69 + 676E0708436F6E74656E74730748697454657374080D526F746174696F6E416E + 676C650500000000000000B407400A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720708 + 636C615768697465105374726F6B652E546869636B6E65737305000000000000 + 008001400A5374726F6B652E4361700705526F756E6408456E64416E676C6505 + 00000000000000B405C0000F54466C6F6174416E696D6174696F6E0009537479 + 6C654E616D650603616E6907456E61626C656409084475726174696F6E050000 + 000000000080FF3F044C6F6F70090C50726F70657274794E616D65060D526F74 + 6174696F6E416E676C650A537461727456616C75650500000000000000000000 + 0953746F7056616C75650500000000000000B407400754726967676572060E49 + 7356697369626C653D74727565000000005450463007544C61796F7574000953 + 74796C654E616D650613657870616E646572627574746F6E7374796C6505416C + 69676E070643656E7465720B4D617267696E732E546F70050000000000000080 + FF3F0A53697A652E57696474680500000000000000B003400B53697A652E4865 + 696768740500000000000000B003401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508085461624F72646572024C00055450617468 + 00095374796C654E616D650605506174683105416C69676E070643656E746572 + 09446174612E506174680A3400000004000000000000000000C8420000C84201 + 000000000096430000C842010000000000484300009643030000000000C84200 + 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 + 080D526F746174696F6E416E676C650500000000000000B405400A53697A652E + 57696474680500000000000000A002400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E + 00095374796C654E616D650614466C6F6174416E696D6174696F6E315374796C + 65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174 + 696F6E070843697263756C61720C50726F70657274794E616D65060D526F7461 + 74696F6E416E676C650A537461727456616C75650500000000000000B4054009 + 53746F7056616C756505000000000000000000000754726967676572060F4973 + 457870616E6465643D747275650E54726967676572496E766572736506104973 + 457870616E6465643D66616C7365000000005450463007544C61796F75740009 + 5374796C654E616D650615657870616E646572636865636B626F787374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 008406400B53697A652E48656967687405000000000000008404401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 + 64657202520007544C61796F75740005416C69676E07044C6566740A53697A65 + 2E57696474680500000000000000C003400B53697A652E486569676874050000 + 00000000008404401453697A652E506C6174666F726D44656661756C74080005 + 54506174680005416C69676E0706436C69656E7409446174612E506174680AD8 + 0100002700000000000000FEC8BA4402E79244020000002592AD4402E7924402 + 0000006D5BA544FEB09E44020000006D5BA544FEB09E440200000093A4A4446A + 0C9F44020000004A80AC44FC79AA4402000000046EBA44FC79AA44020000004A + 00C844FC79AA44020000000080CF44FEB09E44020000000080CF44FEB09E4402 + 0000000080CF44FEB09E44020000004C5BC84402E7924402000000FEC8BA4402 + E7924400000000FE88BA44FE30974402000000B876BF44FE3097440200000002 + 77C344EEA09A44020000000277C34404DE9E44020000000277C344121BA34402 + 000000B876BF44008CA64402000000FE88BA44008CA644020000004C9BB54400 + 8CA64402000000009CB144121BA34402000000009CB14404DE9E440200000000 + 9CB144EEA09A44020000004C9BB544FE30974402000000FE88BA44FE30974400 + 0000000080BA44045E9B4402000000146EB844045E9B440200000000C0B64454 + F79C440200000000C0B64400F09E440200000000C0B644ACE8A0440200000014 + 6EB844FC81A244020000000080BA44FC81A24402000000EC91BC44FC81A24402 + 0000000040BE44ACE8A044020000000040BE4400F09E44020000000040BE4454 + F79C4402000000EC91BC44045E9B44020000000080BA44045E9B440A46696C6C + 2E436F6C6F7207097836303030303030300748697454657374080C4D61726769 + 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 + 0000000000008000400D4D617267696E732E5269676874050000000000000080 + 00400E4D617267696E732E426F74746F6D05000000000000008000400A53697A + 652E57696474680500000000000000A003400B53697A652E4865696768740500 + 000000000000E803401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400 + 0F54436F6C6F72416E696D6174696F6E00084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097836303030303030300953746F7056616C75650708 + 636C61426C61636B0754726967676572060E4973436865636B65643D74727565 + 00000F54436F6C6F72416E696D6174696F6E00084475726174696F6E05000000 + 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C75650708636C61426C61636B0953746F7056616C756507 + 097836303030303030300754726967676572060F4973436865636B65643D6661 + 6C73650000000005545465787400095374796C654E616D650604746578740541 + 6C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D61 + 7267696E732E4C65667405000000000000008002400B4D617267696E732E546F + 7005000000000000008000400D4D617267696E732E5269676874050000000000 + 000080FF3F0A53697A652E57696474680500000000000000C605400B53697A65 + 2E4865696768740500000000000000F803401453697A652E506C6174666F726D + 44656661756C7408165465787453657474696E67732E466F6E74436F6C6F7207 + 09784646454545454545165465787453657474696E67732E486F727A416C6967 + 6E07074C656164696E670000005450463007544C61796F757400095374796C65 + 4E616D65060A70616E656C7374796C6505416C69676E070643656E7465720A53 + 697A652E57696474680500000000000000C006400B53697A652E486569676874 + 0500000000000000A406401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508085461624F726465720258000A5452656374616E676C + 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A53 + 697A652E57696474680500000000000000C006400B53697A652E486569676874 + 0500000000000000A406401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F + 757400095374796C654E616D65061970726F67726573736261726D696E696572 + 726F727374796C6505416C69676E070643656E7465720A53697A652E57696474 + 6805000000000033338505400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720224000A5452656374616E676C6500095374796C65 + 4E616D65060668747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000A545265637461 + 6E676C6500095374796C654E616D65060A68696E64696361746F7205416C6967 + 6E07044C6566740A46696C6C2E436F6C6F720709784646453232413241064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000009999E104401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650000000A5452656374616E676C6500095374796C654E616D6506067674 + 7261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 09784646343034303430064C6F636B6564090748697454657374080A53697A65 + 2E576964746805000000000033338505400B53697A652E486569676874050000 + 0000009999E104401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000A5452656374616E676C6500095374 + 796C654E616D65060A76696E64696361746F7205416C69676E0706426F74746F + 6D0A46696C6C2E436F6C6F720709784646453232413241064C6F636B65640907 + 48697454657374080A506F736974696F6E2E5905000000000099998D04400A53 697A652E576964746805000000000033338505400B53697A652E486569676874 - 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508085461624F72646572021E000A5452656374616E676C - 6500095374796C654E616D65060668747261636B05416C69676E0708436F6E74 - 656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 - 64090748697454657374080A53697A652E576964746805000000000033338505 - 400B53697A652E4865696768740500000000009999E104401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 31353135313507585261646975730500000000000000C0004007595261646975 - 730500000000000000C00040000A5452656374616E676C6500095374796C654E - 616D65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C - 2E436F6C6F720709784646453232413241064C6F636B65640907486974546573 - 74080C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C6179 + 6F757400095374796C654E616D65061470726F67726573736261726D696E6973 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F726465720219000A5452656374616E676C6500095374796C654E616D65 + 060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646343034303430064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000033338505400B53697A652E4865696768 + 740500000000009999E104401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C65 + 00095374796C654E616D65060A68696E64696361746F7205416C69676E07044C + 6566740A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 00000A5452656374616E676C6500095374796C654E616D65060676747261636B + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 343034303430064C6F636B6564090748697454657374080A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000099 + 99E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E + 616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A4669 + 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 + 657374080A506F736974696F6E2E5905000000000099998D04400A53697A652E + 576964746805000000000033338505400B53697A652E48656967687405000000 + 00000000A803401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 + 095374796C654E616D65060D657870616E6465727374796C6505416C69676E07 + 0643656E7465720A53697A652E576964746805000000000000C08407400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F72646572023B000A + 5452656374616E676C6500095374796C654E616D65060B626772656374616E67 + 6C6505416C69676E0708436F6E74656E74730C436C69704368696C6472656E09 + 0A46696C6C2E436F6C6F720709784646324432443244064C6F636B6564090748 + 697454657374080A53697A652E576964746805000000000000C08407400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350007544C61796F757400095374796C654E616D6506074C61796F75743305 + 416C69676E0703546F700A53697A652E576964746805000000000000C0840740 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080007544C61796F757400095374796C654E616D + 6506074C61796F75743405416C69676E0708436F6E74656E74730A53697A652E + 576964746805000000000000C08407400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6532 + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 323532353235064C6F636B6564090748697454657374080A53697A652E576964 + 746805000000000000C08407400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F72070978464631353135313500000A5452656374616E676C6500 + 095374796C654E616D65060A52656374616E676C653105416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646313531353135064C6F63 + 6B6564090748697454657374080A53697A652E576964746805000000000000C0 + 8407400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D650614 + 466C6F6174416E696D6174696F6E315374796C65084475726174696F6E050000 + 0000009A9999FD3F0D496E746572706F6C6174696F6E070843697263756C6172 + 0C50726F70657274794E616D6506075363616C652E580A537461727456616C75 + 65050000000000000080FF3F0953746F7056616C756505000000000000000000 + 000754726967676572060F4973457870616E6465643D747275650E5472696767 + 6572496E766572736506104973457870616E6465643D66616C73650000000007 + 544C61796F757400095374796C654E616D6506074C61796F75743305416C6967 + 6E0708436F6E74656E74730A53697A652E576964746805000000000000C08407 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C74080005545465787400095374796C654E616D65 + 06047465787405416C69676E07044C656674084175746F53697A65090A436C69 + 70506172656E7409064C6F636B6564090748697454657374080C4D617267696E + 732E4C6566740500000000000000A002400A506F736974696F6E2E5805000000 + 00000000A002400A53697A652E57696474680500000000000018D103400B5369 + 7A652E4865696768740500000000000060FF02401453697A652E506C6174666F + 726D44656661756C74080454657874060454657874165465787453657474696E + 67732E466F6E74436F6C6F720708636C61576869746516546578745365747469 + 6E67732E486F727A416C69676E07074C656164696E670000000F54457870616E + 646572427574746F6E00095374796C654E616D650606627574746F6E05416C69 + 676E07055269676874064C6F636B6564090A506F736974696F6E2E5805000000 + 00000080F506400A53697A652E57696474680500000000000000A003400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C740800000000005450463007544C61796F75740009537479 + 6C654E616D650615616E69696E64696361746F72686F727A7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000040C006 + 400B53697A652E48656967687405000000000000008000401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 023D000A5452656374616E676C6500095374796C654E616D65060A5265637461 + 6E676C653105416C69676E0706436C69656E740C436C69704368696C6472656E + 090A46696C6C2E436F6C6F7207097846463430343034300A53697A652E576964 + 74680500000000000040C006400B53697A652E48656967687405000000000000 + 008000401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650005544C696E6500095374796C654E616D650605 + 4C696E6531084C696E65547970650706426F74746F6D0A53697A652E57696474 + 680500000000000000A00B400B53697A652E4865696768740500000000000000 + 8000401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646324138324532105374726F6B652E546869636B6E65 + 737305000000000000008002400B5374726F6B652E4461736807044461736800 + 0F54466C6F6174416E696D6174696F6E00095374796C654E616D650603616E69 + 07456E61626C656409084475726174696F6E0500000000000000800340044C6F + 6F70090C50726F70657274794E616D65060A506F736974696F6E2E580A537461 + 727456616C75650500000000000000C808C00953746F7056616C756505000000 + 000000000000000754726967676572060E497356697369626C653D7472756500 + 000000005450463007544C61796F757400095374796C654E616D65060E6C6F67 + 627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000C005400B53697A652E4865696768740500000000 + 000000C005401453697A652E506C6174666F726D44656661756C740807566973 + 69626C6508085461624F726465720243000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E + 740C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C + 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E + 57696474680500000000000000C005400B53697A652E48656967687405000000 + 00000000C005401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F + 6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646343034303430075472696767 + 6572063049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73653B4973466F63757365643D66616C73650E54726967676572496E7665 + 727365063149734D6F7573654F7665723D66616C73653B497350726573736564 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463430343034300953746F7056616C7565070978464631373537 + 39430754726967676572062F4973507265737365643D747275653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D66616C736500000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E + 436F6C6F72416E696D6174696F6E33084475726174696F6E050000000000CDCC + CCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463241383245320953746F7056616C756507097846 + 463137353739430754726967676572062E4973507265737365643D747275653B + 49734D6F7573654F7665723D747275653B4973466F63757365643D747275650E + 54726967676572496E7665727365062F4973507265737365643D66616C73653B + 49734D6F7573654F7665723D747275653B4973466F63757365643D7472756500 + 0005545061746800095374796C654E616D650605506174683105416C69676E07 + 06436C69656E7409446174612E506174680A5C02000032000000000000000000 + A841CDCCCC40010000000000A8410000C041010000000000C03F0000C0410100 + 00000000C03F00000000010000009A99694100000000010000000000A841CDCC + CC40030000000000A841CDCCCC400000000000009C410000F040010000000000 + 58410000F04001000000000058410000C03F01000000000040400000C03F0100 + 0000000040400000B4410100000000009C410000B4410100000000009C410000 + F0400300000000009C410000F04000000000000040410000F040010000000000 + 90400000F04001000000000090400000C04001000000000040410000C0400100 + 0000000040410000F04003000000000040410000F04000000000000090400000 + 1041010000000000904100001041010000000000904100002841010000000000 + 9040000028410100000000009040000010410300000000009040000010410000 + 0000000090400000404101000000000090410000404101000000000090410000 + 5841010000000000904000005841010000000000904000004041030000000000 + 9040000040410000000000009040000070410100000000009041000070410100 + 0000000090410000844101000000000090400000844101000000000090400000 + 7041030000000000904000007041000000000000904000009041010000000000 + 904100009041010000000000904100009C41010000000000904000009C410100 + 0000000090400000904103000000000090400000904100000000000070410000 + C04001000000333393410000C040010000000000704166662640010000000000 + 70410000C04003000000000070410000C0400A46696C6C2E436F6C6F72070863 + 6C6157686974650748697454657374080C4D617267696E732E4C656674050000 + 0000000000A002400B4D617267696E732E546F700500000000000000A002400D + 4D617267696E732E52696768740500000000000000A002400E4D617267696E73 + 2E426F74746F6D0500000000000000A002400A53697A652E5769647468050000 + 00000000009805400B53697A652E486569676874050000000000000098054014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6508577261704D6F64650703466974000000005450463007544C + 61796F757400095374796C654E616D65061B7472656576696577657870616E64 + 6572627574746F6E7374796C6505416C69676E070643656E7465720B4D617267 + 696E732E546F70050000000000000080FF3F0A53697A652E5769647468050000 + 0000000000B003400B53697A652E4865696768740500000000000000B0034014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F7264657202470005545061746800095374796C654E616D650605506174 + 683105416C69676E070643656E74657209446174612E506174680A3400000004 + 000000000000000000C8420000C84201000000000096430000C8420100000000 + 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080D526F746174696F6E416E676C6505 + 00000000000000B405C00A53697A652E57696474680500000000000000A00240 + 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54466C6F6174416E696D6174696F6E00095374796C654E616D650614466C6F + 6174416E696D6174696F6E315374796C65084475726174696F6E050000000000 + 00000000000D496E746572706F6C6174696F6E070843697263756C61720C5072 + 6F70657274794E616D65060D526F746174696F6E416E676C650A537461727456 + 616C75650500000000000000B405C00953746F7056616C756505000000000000 + 000000000754726967676572060F4973457870616E6465643D747275650E5472 + 6967676572496E766572736506104973457870616E6465643D66616C73650000 + 0000545046300A5452656374616E676C6500095374796C654E616D6506117472 + 6565766965776974656D7374796C6505416C69676E070643656E746572094669 + 6C6C2E4B696E6407044E6F6E650748697454657374080553696465730B06426F + 74746F6D000A53697A652E57696474680500000000000000AE05400B53697A65 + 2E4865696768740500000000000000A004401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 0756697369626C6508000C545370656564427574746F6E00095374796C654E61 + 6D650606627574746F6E05416C69676E07044C6566740A53697A652E57696474 + 680500000000000000A003400B53697A652E4865696768740500000000000000 + A004401453697A652E506C6174666F726D44656661756C74080B5374796C654C + 6F6F6B7570061B7472656576696577657870616E646572627574746F6E737479 + 6C65000007544C61796F75740005416C69676E0708436F6E74656E74730C4D61 + 7267696E732E4C6566740500000000000000A003400A53697A652E5769647468 + 05000000000000008605400B53697A652E4865696768740500000000000000A0 + 04401453697A652E506C6174666F726D44656661756C7408000954436865636B + 426F7800095374796C654E616D650605636865636B05416C69676E07044C6566 + 740843616E466F637573081244697361626C65466F637573456666656374090A + 53697A652E57696474680500000000000000A003400B53697A652E4865696768 + 740500000000000000A004401453697A652E506C6174666F726D44656661756C + 740800000654476C79706800095374796C654E616D65060A676C797068737479 + 6C650C4D617267696E732E4C65667405000000000000008000400B4D61726769 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 - 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 - 0080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F736974 - 696F6E2E59050000000000000080FF3F0A53697A652E57696474680500000000 - 000000C804400B53697A652E4865696768740500000000009999D90440145369 + 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F05416C69676E07044C6566740A506F736974696F6E2E580500000000 + 000000B003400A506F736974696F6E2E59050000000000000080FF3F0A53697A + 652E576964746805000000000000008003400B53697A652E4865696768740500 + 0000000000009804401453697A652E506C6174666F726D44656661756C740800 + 0005545465787400095374796C654E616D6506047465787405416C69676E0706 + 436C69656E74064C6F636B6564090748697454657374080A53697A652E576964 + 74680500000000000000BC04400B53697A652E48656967687405000000000000 + 00A004401453697A652E506C6174666F726D44656661756C7408045465787406 + 0454657874165465787453657474696E67732E466F6E74436F6C6F720708636C + 615768697465155465787453657474696E67732E576F72645772617008165465 + 787453657474696E67732E486F727A416C69676E07074C656164696E67000000 + 0A5452656374616E676C650005416C69676E0708436F6E74656E74730946696C + 6C2E4B696E6407044E6F6E650748697454657374080E4D617267696E732E426F + 74746F6D050000000000000080FF3F0553696465730B044C656674000A53697A + 652E57696474680500000000000000AE05400B53697A652E4865696768740500 + 0000000000009C04401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646324138324532105374726F6B652E54 + 6869636B6E65737305000000000000008000400000005450463007544C61796F + 757400095374796C654E616D65060D74726565766965777374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000E10640 + 0B53697A652E48656967687405000000000000808107401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 4E000C5442727573684F626A65637400095374796C654E616D650618416C7465 + 726E6174696E67526F774261636B67726F756E640B42727573682E436F6C6F72 + 070978304646464646464600000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 + 7454657374080C50616464696E672E4C656674050000000000000080FF3F0D50 + 616464696E672E5269676874050000000000000080FF3F0A53697A652E576964 + 74680500000000000000E106400B53697A652E48656967687405000000000000 + 808107401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350007544C61796F75740009537479 + 6C654E616D650607636F6E74656E7405416C69676E0706436C69656E740C436C + 69704368696C6472656E090B4D617267696E732E546F70050000000000000080 + FF3F0A53697A652E57696474680500000000000000CD06400B53697A652E4865 + 696768740500000000000000F006401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C6500095374796C654E616D6506097365 + 6C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452 + 656374616E676C6500095374796C654E616D650610666F637573656473656C65 + 6374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454 + 657374080A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B65 + 2E446173680703446F740000000A545363726F6C6C42617200095374796C654E + 616D65060A767363726F6C6C62617205416C69676E070552696768740B536D61 + 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 + 08566572746963616C0C4D617267696E732E4C65667405000000000000008000 + 400A506F736974696F6E2E580500000000000000D006400A53697A652E576964 + 746805000000000000008003400B53697A652E48656967687405000000000000 + 00F106401453697A652E506C6174666F726D44656661756C740800000A545363 + 726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261720541 + 6C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000000000 + 0000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267 + 696E732E546F7005000000000000008000400A506F736974696F6E2E58050000 + 000000000080FF3F0A506F736974696F6E2E590500000000000000F306400A53 + 697A652E57696474680500000000000000DF06400B53697A652E486569676874 + 05000000000000008003401453697A652E506C6174666F726D44656661756C74 + 0800000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F + 76736D616C6C7363726F6C6C62617205416C69676E070552696768740B536D61 + 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 + 08566572746963616C0C4D617267696E732E4C65667405000000000000008000 + 400A506F736974696F6E2E580500000000000000C605400A506F736974696F6E + 2E5905000000000000008000400A53697A652E57696474680500000000000000 + 8002400B53697A652E48656967687405000000000000008002401453697A652E + 506C6174666F726D44656661756C74080756697369626C650800000F54536D61 + 6C6C5363726F6C6C42617200095374796C654E616D65060F68736D616C6C7363 + 726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E67 + 6505000000000000000000000B4F7269656E746174696F6E070A486F72697A6F + 6E74616C0B4D617267696E732E546F7005000000000000008000400A506F7369 + 74696F6E2E5805000000000000008000400A506F736974696F6E2E5905000000 + 00000000E205400A53697A652E576964746805000000000000009606400B5369 + 7A652E48656967687405000000000000008002401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508000000005450463007544C6179 + 6F757400095374796C654E616D65061670726F677265737362617266696E6973 + 687374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 000000000033338505400B53697A652E4865696768740500000000009999E104 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F726465720240000A5452656374616E676C6500095374796C654E61 + 6D65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 + 080A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F720709784646313531353135000A5452 + 656374616E676C6500095374796C654E616D65060A68696E64696361746F7205 + 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846463243453234 + 34064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 + 0000000000000080FF3F0B4D617267696E732E546F70050000000000000080FF + 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805 + 0000000000000080FF3F0A506F736974696F6E2E59050000000000000080FF3F + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000009999D904401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452656374616E + 676C6500095374796C654E616D65060676747261636B05416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000003333 + 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 4646313531353135000A5452656374616E676C6500095374796C654E616D6506 + 0A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E43 + 6F6C6F720709784646324345323434064C6F636B656409074869745465737408 + 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F + 6E2E5905000000000099998904400A53697A652E576964746805000000000033 + 338105400B53697A652E4865696768740500000000000000A803401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000000005450463007544C61796F757400095374796C654E616D65061A + 70726F67726573736261726D696E6966696E6973687374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000033338505400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572024B00 + 0A5452656374616E676C6500095374796C654E616D65060668747261636B0541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430 + 34303430064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000033338505400B53697A652E4865696768740500000000009999E1 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D + 65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E43 + 6F6C6F720709784646324345323434064C6F636B656409074869745465737408 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000009999E104401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452656374616E + 676C6500095374796C654E616D65060676747261636B05416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000003333 + 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000A5452656374616E676C6500095374796C654E616D65060A76696E6469 + 6361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F720709 + 784646324345323434064C6F636B6564090748697454657374080A506F736974 + 696F6E2E5905000000000099998D04400A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000000000A80340145369 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E6507585261646975730500000000000000C000400759526164697573 - 0500000000000000C000400000000A5452656374616E676C6500095374796C65 - 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 - 7374080A53697A652E576964746805000000000033338505400B53697A652E48 - 65696768740500000000009999E104401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350758 - 5261646975730500000000000000C00040075952616469757305000000000000 - 00C00040000A5452656374616E676C6500095374796C654E616D65060A76696E - 64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72 - 0709784646453232413241064C6F636B6564090748697454657374080C4D6172 - 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 - 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 - 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A50 - 6F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905 - 000000000099998904400A53697A652E57696474680500000000003333810540 - 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 + 044E6F6E65000000005450463007544C61796F757400095374796C654E616D65 + 061177696E646F77626F726465727374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000056D5AF07400B53697A652E486569 + 6768740500000000000000B306401453697A652E506C6174666F726D44656661 + 756C7408085461624F726465720239000A5452656374616E676C650009537479 + 6C654E616D6506046D61736B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F7207097846463130313031300A53697A652E5769647468050000 + 00000056D5AF07400B53697A652E4865696768740500000000000000B3064014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E650756697369626C6508000007544C61796F757400095374796C + 654E616D6506046C65667405416C69676E07084D6F73744C656674064C6F636B + 6564090A506F736974696F6E2E5905000000000000008004400A53697A652E57 + 6964746805000000000000008001400B53697A652E4865696768740500000000 + 0000009306401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C650005416C69676E07084D6F73744C6566740A46696C6C2E43 + 6F6C6F7207097846463230323032300748697454657374080553696465730B04 + 4C656674055269676874000A53697A652E576964746805000000000000008001 + 400B53697A652E48656967687405000000000000008F06401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 31353135313500000A5452656374616E676C6500095374796C654E616D65060A + 52656374616E676C653105416C69676E070A4D6F7374426F74746F6D13456E61 + 626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207097846 + 463230323032300748697454657374080A506F736974696F6E2E590500000000 + 0000008F06400553696465730B044C65667406426F74746F6D000A53697A652E + 576964746805000000000000008001400B53697A652E48656967687405000000 + 000000008001401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F7207097846463135313531350007544C61796F75740009 + 5374796C654E616D6506074C61796F75743305416C69676E07094D6F73745269 + 6768740A506F736974696F6E2E580500000000000000C000400A53697A652E57 + 69647468050000000000000080FF3F0B53697A652E4865696768740500000000 + 0000008001401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 + 416C69676E0703546F700A46696C6C2E436F6C6F720709784646313531353135 + 0748697454657374080A53697A652E5769647468050000000000000080FF3F0B + 53697A652E486569676874050000000000000080FF3F1453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 00000007544C61796F757400095374796C654E616D650605726967687405416C + 69676E07094D6F73745269676874064C6F636B6564090A506F736974696F6E2E + 5805000000000056D5AD07400A506F736974696F6E2E59050000000000000080 + 04400A53697A652E576964746805000000000000008001400B53697A652E4865 + 6967687405000000000000009306401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C650005416C69676E07094D6F73745269 + 6768740A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080553696465730B044C656674055269676874000A53697A652E5769647468 + 05000000000000008001400B53697A652E48656967687405000000000000008F + 06401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313500000A5452656374616E676C65000953 + 74796C654E616D65060A52656374616E676C653105416C69676E070A4D6F7374 + 426F74746F6D13456E61626C6544726167486967686C69676874080A46696C6C + 2E436F6C6F7207097846463230323032300748697454657374080A506F736974 + 696F6E2E5905000000000000008F06400553696465730B06426F74746F6D0552 + 69676874000A53697A652E576964746805000000000000008001400B53697A65 + 2E48656967687405000000000000008001401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 0007544C61796F757400095374796C654E616D6506074C61796F75743305416C + 69676E07084D6F73744C6566740A53697A652E57696474680500000000000000 + 80FF3F0B53697A652E48656967687405000000000000008001401453697A652E + 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653105416C69676E0703546F700A46 + 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 + 7A652E5769647468050000000000000080FF3F0B53697A652E48656967687405 + 0000000000000080FF3F1453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E6500000000000A5452656374616E67 + 6C650005416C69676E07074D6F7374546F700A46696C6C2E436F6C6F72070978 + 4646323032303230064C6F636B6564090748697454657374080A53697A652E57 + 6964746805000000000056D5AF07400B53697A652E4865696768740500000000 + 0000008004401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F7207097846463135313531350007544C61796F7574000953 + 74796C654E616D65060763617074696F6E05416C69676E0708436F6E74656E74 + 73064C6F636B6564090748697454657374090C4D617267696E732E4C65667405 + 000000000000008001400B4D617267696E732E546F7005000000000000008001 + 400D4D617267696E732E526967687405000000000000008001400A53697A652E + 576964746805000000000056D5AB07400B53697A652E48656967687405000000 + 00000000E003401453697A652E506C6174666F726D44656661756C7408000007 + 544C61796F75740005416C69676E0706436C69656E74064C6F636B6564090C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 + 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F + 0A53697A652E576964746805000000000056D5AE07400B53697A652E48656967 + 68740500000000000000F003401453697A652E506C6174666F726D4465666175 + 6C74080007544C61796F75740005416C69676E07044C656674064C6F636B6564 + 090A53697A652E576964746805000000000000009002400B53697A652E486569 + 6768740500000000000000F003401453697A652E506C6174666F726D44656661 + 756C7408000007544C61796F757400095374796C654E616D65060469636F6E06 + 4C6F636B6564090A506F736974696F6E2E5805000000000000009002400A506F + 736974696F6E2E590500000000000000E001400A53697A652E57696474680500 + 000000000000C803400B53697A652E4865696768740500000000000000A80340 + 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 + 00095374796C654E616D65060773797362746E7305416C69676E0706436C6965 + 6E74064C6F636B6564090A53697A652E57696474680500000000005655AA0740 + 0B53697A652E4865696768740500000000000000F003401453697A652E506C61 + 74666F726D44656661756C7408000C545370656564427574746F6E0009537479 + 6C654E616D650605636C6F736505416C69676E07055269676874064C6F636B65 + 64090A506F736974696F6E2E5805000000000056559107400A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000F003401453697A652E506C6174666F726D44656661756C74080B5374796C + 654C6F6F6B75700610636C6F7365627574746F6E7374796C6500000C54537065 + 6564427574746F6E00095374796C654E616D6506036D617805416C69676E0705 + 5269676874064C6F636B6564090A506F736974696F6E2E580500000000005655 + 8107400A53697A652E576964746805000000000000008004400B53697A652E48 + 65696768740500000000000000F003401453697A652E506C6174666F726D4465 + 6661756C74080B5374796C654C6F6F6B7570060E6D6178627574746F6E737479 + 6C6500000C545370656564427574746F6E00095374796C654E616D6506037265 + 7305416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E + 58050000000000ACAAE206400A53697A652E5769647468050000000000000080 + 04400B53697A652E4865696768740500000000000000F003401453697A652E50 + 6C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060E726573 + 627574746F6E7374796C6500000C545370656564427574746F6E00095374796C + 654E616D6506036D696E05416C69676E07055269676874064C6F636B6564090A + 506F736974696F6E2E58050000000000ACAAC206400A53697A652E5769647468 + 05000000000000008004400B53697A652E4865696768740500000000000000F0 + 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B7570060E6D696E627574746F6E7374796C65000005545465787400095374 + 796C654E616D6506057469746C6505416C69676E0706436C69656E74064C6F63 + 6B6564090748697454657374080A53697A652E5769647468050000000000ACAA + C206400B53697A652E4865696768740500000000000000F003401453697A652E + 506C6174666F726D44656661756C7408045465787406055469746C6516546578 + 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 + 000007544C61796F757400095374796C654E616D650606636C69656E7405416C + 69676E0706436C69656E74064C6F636B6564090748697454657374090A53697A + 652E576964746805000000000056D5AB07400B53697A652E4865696768740500 + 0000000000008F06401453697A652E506C6174666F726D44656661756C740800 + 0007544C61796F757400095374796C654E616D650606626F74746F6D05416C69 + 676E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E58050000 + 00000000008001400A506F736974696F6E2E590500000000000000AF06400A53 + 697A652E576964746805000000000056D5AB07400B53697A652E486569676874 + 05000000000000008001401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D650604726563740541 + 6C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080553696465730B03546F7006426F74746F6D000A53 + 697A652E576964746805000000000056D5AB07400B53697A652E486569676874 + 05000000000000008001401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F72070978464631353135313500000000} + end + item + Platform = 'OSX Yosemite' + ResourcesBin = { + 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 + AF00060B627574746F6E7374796C6503EB04060D636865636B626F787374796C + 6503F3050609656469747374796C6503D4050609677269647374796C6503E608 + 060D67726F7570626F787374796C6503B402060F6865616465726974656D7374 + 796C6503F403060E696D61676563656C6C7374796C65033D01060A6C6162656C + 7374796C65032001060D6C697374626F78666F6F746572038B0106106C697374 + 626F786974656D7374796C6503520306126C697374626F78706C61696E686561 + 646572036C02060C6C697374626F787374796C6503B307060E706F7075706365 + 6C6C7374796C65038E03061070726F67726573736261727374796C6503020506 + 1170726F677265737363656C6C7374796C6503CB0206157363726F6C6C626172 + 626F74746F6D627574746F6E03740406147363726F6C6C62617268747261636B + 7374796C65033B0106137363726F6C6C6261726C656674627574746F6E038704 + 06147363726F6C6C6261727269676874627574746F6E038A04060E7363726F6C + 6C6261727374796C6503630406127363726F6C6C626172746F70627574746F6E + 03840406147363726F6C6C62617276747261636B7374796C65033B01060C7370 + 696E626F787374796C65038507060B7377697463687374796C6503ED01060F74 + 6162636F6E74726F6C7374796C6503F701060B746162646F747374796C65037F + 01060C7461626974656D7374796C65032B05060D7465787463656C6C7374796C + 6503A601060D7468756D626261727374796C65034C03060A7468756D62737479 + 6C65034402060D747261636B6261727374796C65034A0806096D656D6F737479 + 6C65037008060D73697A65677269707374796C6503FB04060E73746174757362 + 61727374796C6503DB01060C746F6F6C6261727374796C6503CA00061570726F + 67726573736261726572726F727374796C65030705060E6C696E6B6C6162656C + 7374796C65035B030613736D616C6C7363726F6C6C6261727374796C6503AE01 + 060D636F6D626F626F787374796C65032708060D73706C69747465727374796C + 6503C0030610726164696F627574746F6E7374796C6503C4050618756C63656E + 746572726164696F627574746F6E7374796C650368050616756C6C6566747261 + 64696F627574746F6E7374796C6503A7050617756C7269676874726164696F62 + 7574746F6E7374796C6503AC050615616E69696E64696361746F72686F727A73 + 74796C6503E002060E6C6F67627574746F6E7374796C6503DA07061365787061 + 6E646572627574746F6E7374796C650381020615657870616E64657263686563 + 6B626F787374796C6503DB05060D657870616E6465727374796C65031607060A + 70616E656C7374796C65034F01061970726F67726573736261726D696E696572 + 726F727374796C6503F903061470726F67726573736261726D696E697374796C + 6503F403060E636F6D626F656469747374796C6503F80906106D656E75626172 + 6974656D7374796C6503650B060C6D656E756261727374796C6503B802060D6D + 656E756974656D7374796C6503890B06126D656E75736570617261746F727374 + 796C6503E501060D6D656E75766965777374796C6503DD02061B747265657669 + 6577657870616E646572627574746F6E7374796C650389020611747265657669 + 65776974656D7374796C65032705060D74726565766965777374796C65038D07 + 061670726F677265737362617266696E6973687374796C6503FF04061A70726F + 67726573736261726D696E6966696E6973687374796C6503F10300545046300A + 5452656374616E676C6500095374796C654E616D65060F6261636B67726F756E + 647374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F7207 + 097846463244324432440A53697A652E57696474680500000000000000940740 + 0B53697A652E4865696768740500000000000080D206401453697A652E506C61 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 585261646975730500000000000000C000400759526164697573050000000000 - 0000C00040000000005450463007544C61796F757400095374796C654E616D65 - 060E6C696E6B6C6162656C7374796C6505416C69676E070643656E7465720A53 - 697A652E5769647468050000000000CCCC8006400B53697A652E486569676874 - 0500000000009A998104401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508085461624F72646572021F0005545465787400095374 - 796C654E616D6506047465787405416C69676E0708436F6E74656E7473074869 - 7454657374080A53697A652E5769647468050000000000CCCC8006400B53697A - 652E4865696768740500000000009A998104401453697A652E506C6174666F72 - 6D44656661756C740804546578740604546578741A5465787453657474696E67 - 732E466F6E742E5374796C654578740A0D000000040400000000000000040000 - 00165465787453657474696E67732E466F6E74436F6C6F72070D636C61446F64 - 676572626C7565000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 - 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E - 616D6506165465787453657474696E67732E466F6E74436F6C6F720A53746172 - 7456616C7565070D636C61446F64676572626C75650953746F7056616C756507 - 0E636C6144656570736B79626C75650754726967676572063049734D6F757365 - 4F7665723D747275653B4973507265737365643D66616C73653B4973466F6375 - 7365643D66616C73650E54726967676572496E7665727365063149734D6F7573 - 654F7665723D66616C73653B4973507265737365643D66616C73653B4973466F - 63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650614436F6C6F72416E696D6174696F6E325374796C650844 - 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 - 165465787453657474696E67732E466F6E74436F6C6F720A537461727456616C - 7565070E636C6144656570736B79626C75650953746F7056616C756507097846 - 463137353739430754726967676572062F4973507265737365643D747275653B - 49734D6F7573654F7665723D747275653B4973466F63757365643D66616C7365 - 000000005450463007544C61796F757400095374796C654E616D650613736D61 - 6C6C7363726F6C6C6261727374796C6505416C69676E070643656E7465720756 - 697369626C6508085461624F726465720220000654547261636B00095374796C - 654E616D65060668747261636B05416C69676E0706436C69656E74064C6F636B - 6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 - 74796C654C6F6F6B757006147363726F6C6C62617268747261636B7374796C65 - 00000654547261636B00095374796C654E616D65060676747261636B05416C69 - 676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A - 486F72697A6F6E74616C0A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C - 6C62617276747261636B7374796C650000005450463007544C61796F75740009 - 5374796C654E616D65060D636F6D626F626F787374796C6505416C69676E0706 - 43656E7465720A53697A652E57696474680500000000000000C805400B53697A - 652E4865696768740500000000000000C803401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508085461624F726465720221000C54 - 42727573684F626A65637400095374796C654E616D65060A666F726567726F75 - 6E6400000B54466F6E744F626A65637400095374796C654E616D650604666F6E - 7409466F6E742E53697A650500000000000000D00240000007544C61796F7574 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 - 6F6E74656E74730A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653105416C69676E0706436C69656E740A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E - 57696474680500000000000000C805400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0 - 004007595261646975730500000000000000C000400007544C61796F75740009 - 5374796C654E616D650611427574746F6E5374796C654F626A65637405416C69 - 676E070846697452696768740B4D617267696E732E546F700500000000000000 - 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 - 67696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E - 580500000000005ED99705400A506F736974696F6E2E59050000000000000080 - FF3F0A53697A652E5769647468050000000000889AB803400B53697A652E4865 - 696768740500000000000000B803401453697A652E506C6174666F726D446566 - 61756C74080007544C61796F757400095374796C654E616D6506074C61796F75 - 743105416C69676E070643656E7465720C4D617267696E732E4C656674050000 - 000000000080FF3F0A53697A652E57696474680500000000000000A002400B53 - 697A652E4865696768740500000000000000C001401453697A652E506C617466 - 6F726D44656661756C74080005545061746800095374796C654E616D65060550 - 6174683105416C69676E0706436C69656E7409446174612E506174680A340000 - 0004000000000000000000C8420000C84201000000000096430000C842010000 - 000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72 - 0708636C6157686974650748697454657374080A53697A652E57696474680500 - 000000000000A002400B53697A652E4865696768740500000000000000C00140 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65000000000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E310844 - 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463230323032 - 300953746F7056616C7565070978464634303430343007547269676765720630 - 49734D6F7573654F7665723D747275653B4973507265737365643D66616C7365 - 3B4973466F63757365643D66616C73650E54726967676572496E766572736506 - 3149734D6F7573654F7665723D66616C73653B4973507265737365643D66616C - 73653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D61 - 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D - 6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 - 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 - 7846463430343034300953746F7056616C756507097846463137353739430754 - 726967676572062F4973507265737365643D747275653B49734D6F7573654F76 - 65723D747275653B4973466F63757365643D66616C736500000F54436F6C6F72 + 56697369626C650800005450463007544C61796F757400095374796C654E616D + 65060B627574746F6E7374796C6505416C69676E070643656E7465720A53697A + 652E57696474680500000000000000C805400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508085461624F726465720202000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0706436C + 69656E740C436C69704368696C6472656E090A436C6970506172656E74090A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 + 7A652E57696474680500000000000000C805400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 + 0000C0004007595261646975730500000000000000C00040000F54436F6C6F72 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F - 72416E696D6174696F6E33084475726174696F6E050000000000CDCCCCFB3F0C + 72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463241383245320953746F7056616C75650709784646313735 - 3739430754726967676572062E4973507265737365643D747275653B49734D6F - 7573654F7665723D747275653B4973466F63757365643D747275650E54726967 - 676572496E7665727365062F4973507265737365643D66616C73653B49734D6F - 7573654F7665723D747275653B4973466F63757365643D747275650000000007 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572063049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C73650E5472 + 6967676572496E7665727365063149734D6F7573654F7665723D66616C73653B + 4973507265737365643D66616C73653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000 + 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463430343034300953746F7056616C7565 + 07097846463137353739430754726967676572062F4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F + 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463241383245320953746F70 + 56616C756507097846463137353739430754726967676572062E497350726573 + 7365643D747275653B49734D6F7573654F7665723D747275653B4973466F6375 + 7365643D747275650E54726967676572496E7665727365062F49735072657373 + 65643D66616C73653B49734D6F7573654F7665723D747275653B4973466F6375 + 7365643D7472756500000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E7413456E61626C6544726167486967686C + 69676874080748697454657374080A53697A652E576964746805000000000000 + 00C805400B53697A652E4865696768740500000000000000C803401453697A65 + 2E506C6174666F726D44656661756C7408165465787453657474696E67732E46 + 6F6E74436F6C6F720708636C6157686974650000005450463007544C61796F75 + 7400095374796C654E616D65060D636865636B626F787374796C6505416C6967 + 6E070643656E7465720A53697A652E5769647468050000000000ACAA8006400B + 53697A652E48656967687405000000000058559904401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F726465720203 + 0007544C61796F75740005416C69676E07044C6566740A53697A652E57696474 + 6805000000000000009003400B53697A652E4865696768740500000000005855 + 9904401453697A652E506C6174666F726D44656661756C7408000A5452656374 + 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 + 676E070643656E7465720A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080A53697A652E57696474680500000000000000F002400B + 53697A652E4865696768740500000000000000F002401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 3135313507585261646975730500000000000000C00040075952616469757305 + 00000000000000C00040000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653105416C69676E0706436C69656E740A46696C6C + 2E436F6C6F720709784646324138324532074869745465737408074F70616369 + 747905000000000000000000000C4D617267696E732E4C656674050000000000 + 00008000400B4D617267696E732E546F7005000000000000008000400D4D6172 + 67696E732E526967687405000000000000008000400E4D617267696E732E426F + 74746F6D05000000000000008000400A53697A652E5769647468050000000000 + 0000B002400B53697A652E4865696768740500000000000000B002401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6507585261646975730500000000000000C00040075952616469757305 + 00000000000000C00040000F54466C6F6174416E696D6174696F6E0009537479 + 6C654E616D65061B6368656368626F7856697362696C697479416E696D617469 + 6F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 + 4E616D6506074F7061636974790A537461727456616C75650500000000000000 + 0000000953746F7056616C75650500000000000000C805400754726967676572 + 060E4973436865636B65643D747275650E54726967676572496E766572736506 + 0F4973436865636B65643D66616C73650000000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650618636865636B626F785374726F6B65416E + 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C + 756507097846463135313531350953746F7056616C7565070978464632413832 + 45320754726967676572060E4973436865636B65643D747275650E5472696767 + 6572496E7665727365060F4973436865636B65643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650617636865636B626F + 78436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD + CCCCFB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463230323032300953746F + 7056616C756507097846463430343034300754726967676572061049734D6F75 + 73654F7665723D747275650E54726967676572496E7665727365061149734D6F + 7573654F7665723D66616C73650000000005545465787400095374796C654E61 + 6D6506047465787405416C69676E0706436C69656E740A53697A652E57696474 + 680500000000005855DD05400B53697A652E4865696768740500000000005855 + 9904401453697A652E506C6174666F726D44656661756C740804546578740604 + 54657874165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 57686974650000005450463007544C61796F757400095374796C654E616D6506 + 09656469747374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000C805400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F726465720204000C5442727573684F626A656374000953 + 74796C654E616D65060A666F726567726F756E6400000C5442727573684F626A + 65637400095374796C654E616D65060973656C656374696F6E0B42727573682E + 436F6C6F72070978393632413832453200000B54466F6E744F626A6563740009 + 5374796C654E616D650604666F6E7409466F6E742E53697A6505000000000000 + 00D0024000000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350758526164697573050000000000 + 0000C0004007595261646975730500000000000000C00040000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614656469745374726F6B65 + 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463135313531350953746F7056616C756507097846463241 + 383245320754726967676572060E4973466F63757365643D747275650E547269 + 67676572496E7665727365060F4973466F63757365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D6506146564697453 + 74726F6B65416E696D6174696F6E32084475726174696F6E050000000000CDCC + CCFB3F07496E7665727365090C50726F70657274794E616D65060C5374726F6B + 652E436F6C6F720A537461727456616C75650709784646313531353135095374 + 6F7056616C756507097846463443344334430754726967676572062149734D6F + 7573654F7665723D747275653B4973466F63757365643D66616C73653B0E5472 + 6967676572496E7665727365062249734D6F7573654F7665723D66616C73653B + 4973466F63757365643D66616C73653B00000007544C61796F75740009537479 + 6C654E616D650607627574746F6E7305416C69676E07055269676874064C6F63 + 6B6564090B4D617267696E732E546F7005000000000000008000400D4D617267 + 696E732E526967687405000000000000008000400E4D617267696E732E426F74 + 746F6D05000000000000008000400A506F736974696F6E2E5805000000000000 + 00C004400A506F736974696F6E2E5905000000000000008000400A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000A803401453697A652E506C6174666F726D44656661756C7408000007 544C61796F757400095374796C654E616D650607636F6E74656E7405416C6967 6E0706436C69656E74064C6F636B6564090C4D617267696E732E4C6566740500 - 0000000000008000400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E52696768740500000000000000D803400E4D617267696E + 0000000000008001400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 - 0000000000008E05400B53697A652E4865696768740500000000000000A80340 - 1453697A652E506C6174666F726D44656661756C74080000005450463007544C - 61796F757400095374796C654E616D65060D73706C69747465727374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000000000 - A904400B53697A652E4865696768740500000000000080C105401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 - 65720222000A5452656374616E676C6500095374796C654E616D65060A526563 - 74616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F72 - 07097846463330333033300748697454657374080553696465730B044C656674 - 055269676874000A53697A652E57696474680500000000000000A904400B5369 - 7A652E4865696768740500000000000080C105401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 3135000007544C61796F757400095374796C654E616D6506046772697005416C - 69676E0706436C69656E740A53697A652E57696474680500000000000000A904 - 400B53697A652E4865696768740500000000000080C105401453697A652E506C - 6174666F726D44656661756C7408000754436972636C6500095374796C654E61 - 6D650607436972636C653105416C69676E070643656E7465720A46696C6C2E43 - 6F6C6F7207097846463430343034300A53697A652E5769647468050000000000 - 0000E001400B53697A652E4865696768740500000000000000E001401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 0978464631353135313500000754436972636C6500095374796C654E616D6506 - 07436972636C653205416C69676E070643656E7465720A46696C6C2E436F6C6F - 7207097846463430343034300B4D617267696E732E546F700500000000000000 - A003400A53697A652E57696474680500000000000000E001400B53697A652E48 - 65696768740500000000000000E001401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350000 - 0754436972636C6500095374796C654E616D650607436972636C653305416C69 - 676E070643656E7465720A46696C6C2E436F6C6F720709784646343034303430 - 0E4D617267696E732E426F74746F6D0500000000000000A003400A53697A652E - 57696474680500000000000000E001400B53697A652E48656967687405000000 - 00000000E001401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F720709784646313531353135000000005450463007544C - 61796F757400095374796C654E616D650610726164696F627574746F6E737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 000000F205400B53697A652E4865696768740500000000000000A80340145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F7264657202230007544C61796F75740005416C69676E07044C6566740A5369 - 7A652E57696474680500000000000000A803400B53697A652E48656967687405 - 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 - 000854456C6C6970736500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464632 - 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 - 680500000000000000F002400B53697A652E4865696768740500000000000000 - F002401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646313531353135000854456C6C697073650009537479 - 6C654E616D650609636865636B6D61726B05416C69676E0706436C69656E740A - 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 - 745465737408074F70616369747905000000000000000000000C4D617267696E - 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 - 00000000008000400D4D617267696E732E526967687405000000000000008000 - 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 - 2E57696474680500000000000000B002400B53697A652E486569676874050000 - 0000000000B002401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F - 6E00095374796C654E616D65061A6F706163697479436865636B6D61726B416E - 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D6506074F7061636974790A537461727456616C7565050000 - 00000000000000000953746F7056616C7565050000000000000080FF3F075472 - 6967676572060E4973436865636B65643D747275650E54726967676572496E76 - 65727365060F4973436865636B65643D66616C73650000000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D65061A726164696F627574746F6E - 436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCC - CCFB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463230323032300953746F70 - 56616C756507097846463430343034300754726967676572061049734D6F7573 - 654F7665723D747275650E54726967676572496E7665727365061149734D6F75 - 73654F7665723D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 - 313531350953746F7056616C7565070978464632413832453207547269676765 - 72060E4973436865636B65643D747275650E54726967676572496E7665727365 - 060F4973436865636B65643D66616C7365000000000554546578740009537479 - 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 - 64090748697454657374080A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000A803401453697A652E506C - 6174666F726D44656661756C7408045465787406045465787416546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 - 3007544C61796F757400095374796C654E616D650618756C63656E7465727261 - 64696F627574746F6E7374796C6505416C69676E070643656E7465720A53697A - 652E57696474680500000000005655FB05400B53697A652E4865696768740500 - 000000000000A004401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F7264657202280007544C61796F75740005416C - 69676E0706426F74746F6D0A506F736974696F6E2E5905000000000000008804 - 400A53697A652E57696474680500000000005655FB05400B53697A652E486569 - 6768740500000000000000C001401453697A652E506C6174666F726D44656661 - 756C7408000A5452656374616E676C6500095374796C654E616D65060A626163 - 6B67726F756E6405416C69676E0708436F6E74656E747307436F726E6572730B - 07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207 - 09784646323032303230064C6F636B6564090748697454657374080A53697A65 - 2E57696474680500000000005655FB05400B53697A652E486569676874050000 - 0000000000C001401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F720709784646313531353135000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D6506216261636B67726F756E64556C - 427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500 - 00000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463230323032 - 300953746F7056616C7565070978464634303430343007547269676765720610 - 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 - 1149734D6F7573654F7665723D66616C736500000A5452656374616E676C6500 - 095374796C654E616D650609636865636B6D61726B05416C69676E0708436F6E - 74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C6566 - 74000A46696C6C2E436F6C6F720709784646324138324532064C6F636B656409 - 074869745465737408074F70616369747905000000000000000000000C4D6172 - 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 - 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 - 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 - 697A652E57696474680500000000005655F705400B53697A652E486569676874 - 05000000000000008001401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D61 - 74696F6E00095374796C654E616D65061A636865636B6D61726B4F7061636974 - 79416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C - 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 - 05000000000000000000000953746F7056616C7565050000000000000080FF3F - 0754726967676572060E4973436865636B65643D747275650E54726967676572 - 496E7665727365060F4973436865636B65643D66616C73650000000000055454 - 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 - 6E74064C6F636B6564090748697454657374080A53697A652E57696474680500 - 000000005655FB05400B53697A652E4865696768740500000000000000880440 - 1453697A652E506C6174666F726D44656661756C740804546578740604546578 - 74165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 - 74650000005450463007544C61796F757400095374796C654E616D650616756C - 6C656674726164696F627574746F6E7374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000005655FB05400B53697A652E4865 - 696768740500000000000000A004401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F72646572022A0007544C61796F - 75740005416C69676E0706426F74746F6D0A506F736974696F6E2E5905000000 - 000000008804400A53697A652E57696474680500000000005655FB05400B5369 - 7A652E4865696768740500000000000000C001401453697A652E506C6174666F - 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0708436F6E74656E747307436F - 726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E - 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 - 080A53697A652E57696474680500000000005655FB05400B53697A652E486569 - 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 000000000000A804400B53697A652E4865696768740500000000000000A80340 + 1453697A652E506C6174666F726D44656661756C7408000006544C6162656C00 + 095374796C654E616D65060670726F6D7074064C6F636B656409074F70616369 + 7479050000000000000080FE3F165465787453657474696E67732E466F6E7443 + 6F6C6F720708636C615768697465045465787406045465787400000054504630 + 07544C61796F757400095374796C654E616D650609677269647374796C650541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000FFFFE9 + 05400B53697A652E48656967687405000000000000008306401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 720205000C5442727573684F626A65637400095374796C654E616D650618416C + 7465726E6174696E67526F774261636B67726F756E640B42727573682E436F6C + 6F72070978333237383738373800000C5442727573684F626A65637400095374 + 796C654E616D6506086C696E6566696C6C0B42727573682E436F6C6F72070978 + 464631353135313500000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080C50616464696E672E4C65667405000000000000008000400B50616464 + 696E672E546F7005000000000000008000400D50616464696E672E5269676874 + 05000000000000008000400E50616464696E672E426F74746F6D050000000000 + 00008000400A53697A652E5769647468050000000000FFFFE905400B53697A65 + 2E48656967687405000000000000008306401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C0004000075448656164657200095374796C654E616D65060668656164 + 65720553696465730B03546F70044C65667406426F74746F6D05526967687400 + 05416C69676E0703546F700A506F736974696F6E2E5805000000000000008000 + 400A506F736974696F6E2E5905000000000000008000400A53697A652E576964 + 7468050000000000FFFFE105400B53697A652E48656967687405000000000000 + 00A803401453697A652E506C6174666F726D44656661756C7408000007544C61 + 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0706 + 436C69656E740C436C69704368696C6472656E090A53697A652E576964746805 + 0000000000FFFFC105400B53697A652E4865696768740500000000000000B405 + 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E + 676C6500095374796C654E616D65060973656C656374696F6E0A46696C6C2E43 + 6F6C6F7207097846463241383245320748697454657374080A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000C804401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6507585261646975730500000000000000C00040 + 07595261646975730500000000000000C0004000000A5452656374616E676C65 + 00095374796C654E616D650605666F6375730A46696C6C2E436F6C6F72070978 + 41463241383245320748697454657374080C4D617267696E732E4C6566740500 + 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F + 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E + 732E426F74746F6D050000000000000080FF3F0A53697A652E57696474680500 + 000000000000C804400B53697A652E4865696768740500000000000000C80440 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6507585261646975730500000000000000C000400759526164 + 6975730500000000000000C000400000000A545363726F6C6C42617200095374 + 796C654E616D65060A767363726F6C6C62617205416C69676E07055269676874 + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E0708566572746963616C0A506F736974696F6E2E58050000000000FFFF + C505400A506F736974696F6E2E590500000000000000B803400A53697A652E57 + 6964746805000000000000008003400B53697A652E4865696768740500000000 + 000000B405401453697A652E506C6174666F726D44656661756C740800000A54 + 5363726F6C6C42617200095374796C654E616D65060A687363726F6C6C626172 + 05416C69676E0706426F74746F6D0B536D616C6C4368616E6765050000000000 + 00000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F + 736974696F6E2E5805000000000000008000400A506F736974696F6E2E590500 + 000000000000E205400A53697A652E5769647468050000000000FFFFE105400B + 53697A652E48656967687405000000000000008003401453697A652E506C6174 + 666F726D44656661756C740800000F54536D616C6C5363726F6C6C4261720009 + 5374796C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E + 070552696768740B536D616C6C4368616E676505000000000000000000000B4F + 7269656E746174696F6E0708566572746963616C0C4D617267696E732E4C6566 + 7405000000000000008000400A506F736974696F6E2E580500000000000000C6 + 05400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 + 64746805000000000000008002400B53697A652E486569676874050000000000 + 00008002401453697A652E506C6174666F726D44656661756C74080756697369 + 626C650800000F54536D616C6C5363726F6C6C42617200095374796C654E616D + 65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000 + 0000008000400A506F736974696F6E2E5805000000000000008000400A506F73 + 6974696F6E2E590500000000000000E205400A53697A652E5769647468050000 + 00000000009606400B53697A652E486569676874050000000000000080024014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080000 + 00005450463007544C61796F757400095374796C654E616D65060D67726F7570 + 626F787374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000F004400B53697A652E4865696768740500000000000000 + C804401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720206000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0946696C6C2E4B696E6407044E6F6E650748697454657374080C4D617267696E + 732E4C6566740500000000000000C000400B4D617267696E732E546F70050000 + 00000000009002400D4D617267696E732E52696768740500000000000000C000 + 400E4D617267696E732E426F74746F6D0500000000000000C000400A53697A65 + 2E57696474680500000000000000D804400B53697A652E486569676874050000 + 00000000009804401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F72070978464631353135313507585261646975730500 + 000000000000C0004007595261646975730500000000000000C0004000055454 + 65787400095374796C654E616D65060474657874084175746F53697A65090A43 + 6C6970506172656E74090748697454657374080C4D617267696E732E4C656674 + 0500000000000000A002400A506F736974696F6E2E5805000000000060559502 + 400A506F736974696F6E2E590500000000004055D501C00A53697A652E576964 + 746805000000000000B8C703400B53697A652E48656967687405000000000000 + 60FF02401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974651554657874 + 53657474696E67732E576F72645772617008000000005450463007544C61796F + 757400095374796C654E616D65060F6865616465726974656D7374796C650541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 720207000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646344334433443064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000000009205400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350758526164697573 + 0500000000000000C0004007595261646975730500000000000000C00040000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061568656164 + 6572436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463443344334430953746F7056616C75650709 + 7846463241383245320754726967676572060E4973507265737365643D747275 + 650E54726967676572496E7665727365060F4973507265737365643D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650616 + 6865616465725374726F6B65416E696D6174696F6E31084475726174696F6E05 + 0000000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E + 436F6C6F720A537461727456616C756507097846463135313531350953746F70 + 56616C756507097846463241383245320754726967676572060E497350726573 + 7365643D747275650E54726967676572496E7665727365060F49735072657373 + 65643D66616C736500000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080C4D617267696E732E4C6566740500000000000000A001400B4D617267696E + 732E546F7005000000000000008000400D4D617267696E732E52696768740500 + 000000000000A001400E4D617267696E732E426F74746F6D0500000000000000 + 8000400A53697A652E57696474680500000000000000FC04400B53697A652E48 + 65696768740500000000000000B003401453697A652E506C6174666F726D4465 + 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C6157686974650000005450463007544C61796F757400095374796C654E616D + 65060E696D61676563656C6C7374796C6505416C69676E070643656E74657207 + 56697369626C6508085461624F726465720208000654496D6167650009537479 + 6C654E616D650605696D6167650E4D756C74695265734269746D61700E010000 + 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080C + 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF + 3F0A53697A652E57696474680500000000000000C004400B53697A652E486569 + 6768740500000000000000C004401453697A652E506C6174666F726D44656661 + 756C74080000005450463007544C61796F757400095374796C654E616D65060A + 6C6162656C7374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000C805400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F7264657202090005545465787400095374796C654E616D + 6506047465787405416C69676E0708436F6E74656E7473074869745465737408 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 + 686974650000005450463007544C61796F757400095374796C654E616D65060D + 6C697374626F78666F6F74657205416C69676E070643656E7465720A53697A65 + 2E576964746805000000000000009205400B53697A652E486569676874050000 + 0000000000D003401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F72646572020A0005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C6566740500000000000000A001 + 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 + 2E52696768740500000000000000A001400E4D617267696E732E426F74746F6D + 05000000000000008000400A53697A652E57696474680500000000000000FC04 + 400B53697A652E4865696768740500000000000000B003401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D6506106C697374626F786974656D7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000D605400B + 53697A652E4865696768740500000000000000C003401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F72646572020B + 000654476C79706800095374796C654E616D65060A676C7970687374796C650C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D050000000000000080FF + 3F05416C69676E07044C6566740A506F736974696F6E2E580500000000000000 + 8000400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E57 + 6964746805000000000000008003400B53697A652E4865696768740500000000 + 000000B003401453697A652E506C6174666F726D44656661756C740800000554 + 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 + 656E740748697454657374080C4D617267696E732E4C65667405000000000000 + 00C000400B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E52696768740500000000000000C000400E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 + 00CA05400B53697A652E4865696768740500000000000000B003401453697A65 + 2E506C6174666F726D44656661756C7408165465787453657474696E67732E46 + 6F6E74436F6C6F720708636C615768697465155465787453657474696E67732E + 576F72645772617008165465787453657474696E67732E486F727A416C69676E + 07074C656164696E6700000954436865636B426F7800095374796C654E616D65 + 0605636865636B05416C69676E07084D6F73744C6566740843616E466F637573 + 081244697361626C65466F637573456666656374090A53697A652E5769647468 + 0500000000000000A003400B53697A652E4865696768740500000000000000C0 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 080000005450463007544C61796F757400095374796C654E616D6506126C6973 + 74626F78706C61696E68656164657205416C69676E070643656E7465720A5369 + 7A652E576964746805000000000000009205400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F72646572020C000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646324432443244064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000000 + 009205400B53697A652E4865696768740500000000000000D003401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313507585261646975730500000000000000C0004007595261 + 646975730500000000000000C00040000005545465787400095374796C654E61 + 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 + 697454657374080C4D617267696E732E4C6566740500000000000000A001400B + 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 + 696768740500000000000000A001400E4D617267696E732E426F74746F6D0500 + 0000000000008000400A53697A652E57696474680500000000000000FC04400B + 53697A652E4865696768740500000000000000B003401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C6157686974650000005450463007544C61796F757400095374 + 796C654E616D65060C6C697374626F787374796C6505416C69676E070643656E + 7465720A53697A652E5769647468050000000000FFFFE905400B53697A652E48 + 656967687405000000000000008306401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F72646572020D000C54427275 + 73684F626A65637400095374796C654E616D650618416C7465726E6174696E67 + 526F774261636B67726F756E640B42727573682E436F6C6F7207097846463243 + 3243324300000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646323032303230064C6F636B6564090748697454657374080C + 50616464696E672E4C65667405000000000000008000400B50616464696E672E + 546F7005000000000000008000400D50616464696E672E526967687405000000 + 000000008000400E50616464696E672E426F74746F6D05000000000000008000 + 400A53697A652E5769647468050000000000FFFFE905400B53697A652E486569 + 67687405000000000000008306401453697A652E506C6174666F726D44656661 756C74080C5374726F6B652E436F6C6F72070978464631353135313507585261 646975730500000000000000C0004007595261646975730500000000000000C0 - 0040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650621 - 6261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E - 31084475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463230323032300953746F7056616C7565070978464634303430 - 34300754726967676572061049734D6F7573654F7665723D747275650E547269 - 67676572496E7665727365061149734D6F7573654F7665723D66616C73650000 - 0A5452656374616E676C6500095374796C654E616D650609636865636B6D6172 - 6B05416C69676E0708436F6E74656E747307436F726E6572730B07546F704C65 - 66740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846463241 - 38324532064C6F636B656409074869745465737408074F706163697479050000 - 00000000000000000C4D617267696E732E4C656674050000000000000080FF3F - 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E - 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F0A53697A652E57696474680500000000005655F70540 - 0B53697A652E48656967687405000000000000008001401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 5852616469757305000000000000008000400759526164697573050000000000 - 0000800040000F54466C6F6174416E696D6174696F6E00095374796C654E616D - 65061A636865636B6D61726B4F706163697479416E696D6174696F6E31084475 - 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D650607 - 4F7061636974790A537461727456616C75650500000000000000000000095374 - 6F7056616C7565050000000000000080FF3F0754726967676572060E49734368 - 65636B65643D747275650E54726967676572496E7665727365060F4973436865 - 636B65643D66616C7365000000000005545465787400095374796C654E616D65 - 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 - 54657374080A53697A652E57696474680500000000005655FB05400B53697A65 - 2E48656967687405000000000000008804401453697A652E506C6174666F726D - 44656661756C7408165465787453657474696E67732E466F6E74436F6C6F7207 - 08636C6157686974650000005450463007544C61796F757400095374796C654E - 616D650617756C7269676874726164696F627574746F6E7374796C6505416C69 - 676E070643656E7465720A53697A652E57696474680500000000005655FB0540 - 0B53697A652E4865696768740500000000000000A004401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 2D0007544C61796F75740005416C69676E0706426F74746F6D0A506F73697469 - 6F6E2E5905000000000000008804400A53697A652E5769647468050000000000 - 5655FB05400B53697A652E4865696768740500000000000000C001401453697A - 652E506C6174666F726D44656661756C7408000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E - 74656E747307436F726E6572730B08546F7052696768740B426F74746F6D5269 - 676874000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 - 64090748697454657374080A53697A652E57696474680500000000005655FB05 - 400B53697A652E4865696768740500000000000000C001401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 31353135313507585261646975730500000000000000C0004007595261646975 - 730500000000000000C00040000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F - 72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07 - 496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463230323032300953746F7056616C75 - 6507097846463430343034300754726967676572061049734D6F7573654F7665 - 723D747275650E54726967676572496E7665727365061149734D6F7573654F76 - 65723D66616C736500000A5452656374616E676C6500095374796C654E616D65 - 0609636865636B6D61726B05416C69676E0708436F6E74656E747307436F726E - 6572730B08546F7052696768740B426F74746F6D5269676874000A46696C6C2E - 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 - 08074F70616369747905000000000000000000000C4D617267696E732E4C6566 - 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 - 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 - 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 - 680500000000005655F705400B53697A652E4865696768740500000000000000 + 00400007544C61796F757400095374796C654E616D650607636F6E74656E7405 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A53697A65 + 2E5769647468050000000000FFFFC105400B53697A652E486569676874050000 + 0000000000DE05401453697A652E506C6174666F726D44656661756C7408000A + 5452656374616E676C6500095374796C654E616D65060973656C656374696F6E + 0A46696C6C2E436F6C6F7207097846463241383245320748697454657374080A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 + 00000000C0004007595261646975730500000000000000C0004000000A545265 + 6374616E676C6500095374796C654E616D650610666F637573656473656C6563 + 74696F6E0A46696C6C2E436F6C6F720709784646324138324532074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B652E + 446173680703446F7407585261646975730500000000000000C0004007595261 + 646975730500000000000000C000400000000A545363726F6C6C426172000953 + 74796C654E616D65060A767363726F6C6C62617205416C69676E070552696768 + 740B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 + 74696F6E0708566572746963616C0A506F736974696F6E2E58050000000000FF + FFC505400A506F736974696F6E2E5905000000000000008000400A53697A652E + 576964746805000000000000008003400B53697A652E48656967687405000000 + 00000000DE05401453697A652E506C6174666F726D44656661756C740800000A + 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 + 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A50 + 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 + 00000000000000E205400A53697A652E5769647468050000000000FFFFE10540 + 0B53697A652E48656967687405000000000000008003401453697A652E506C61 + 74666F726D44656661756C740800000F54536D616C6C5363726F6C6C42617200 + 095374796C654E616D65060F76736D616C6C7363726F6C6C62617205416C6967 + 6E070552696768740B536D616C6C4368616E676505000000000000000000000B + 4F7269656E746174696F6E0708566572746963616C0C4D617267696E732E4C65 + 667405000000000000008000400A506F736974696F6E2E580500000000000000 + C605400A506F736974696F6E2E5905000000000000008000400A53697A652E57 + 6964746805000000000000008002400B53697A652E4865696768740500000000 + 0000008002401453697A652E506C6174666F726D44656661756C740807566973 + 69626C650800000F54536D616C6C5363726F6C6C42617200095374796C654E61 + 6D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F + 6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 + 74696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000 + 000000008000400A506F736974696F6E2E5805000000000000008000400A506F + 736974696F6E2E590500000000000000E205400A53697A652E57696474680500 + 0000000000009606400B53697A652E4865696768740500000000000000800240 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 + 0000005450463007544C61796F757400095374796C654E616D65060E706F7075 + 7063656C6C7374796C6505416C69676E070643656E7465720756697369626C65 + 08085461624F72646572020E0007544C61796F75740005416C69676E07055269 + 6768740A506F736974696F6E2E5805000000000000008C04400A53697A652E57 + 696474680500000000000000F002400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C740800055450 + 6174680005416C69676E070643656E74657209446174612E506174680A400000 + 000500000000000000000000000000803F010000000000803F0000803F010000 + 000000003F0000000001000000000000000000803F0300000000000000000000 + 000A46696C6C2E436F6C6F720708636C6157686974650748697454657374080B + 4D617267696E732E546F700500000000000000E001C00A53697A652E57696474 + 6805000000000000008002400B53697A652E4865696768740500000000000000 8001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E65075852616469757305000000000000008000400759 - 5261646975730500000000000000800040000F54466C6F6174416E696D617469 - 6F6E00095374796C654E616D65061A636865636B6D61726B4F70616369747941 - 6E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C5072 - 6F70657274794E616D6506074F7061636974790A537461727456616C75650500 - 0000000000000000000953746F7056616C7565050000000000000080FF3F0754 - 726967676572060E4973436865636B65643D747275650E54726967676572496E - 7665727365060F4973436865636B65643D66616C736500000000000554546578 - 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 - 064C6F636B6564090748697454657374080A53697A652E576964746805000000 - 00005655FB05400B53697A652E48656967687405000000000000008804401453 - 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 - 732E466F6E74436F6C6F720708636C6157686974650000005450463007544C61 - 796F757400095374796C654E616D650615616E69696E64696361746F72686F72 - 7A7374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 00000000000040C006400B53697A652E48656967687405000000000000008000 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 - 6C653105416C69676E0706436C69656E740C436C69704368696C6472656E090A - 46696C6C2E436F6C6F7207097846463430343034300A53697A652E5769647468 - 0500000000000040C006400B53697A652E486569676874050000000000000080 - 00401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E650758526164697573050000000000000080FF3F075952 - 6164697573050000000000000080FF3F0005544C696E6500095374796C654E61 - 6D6506054C696E6531084C696E65547970650706426F74746F6D0A53697A652E - 57696474680500000000000000A00B400B53697A652E48656967687405000000 - 000000008000401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F720709784646324138324532105374726F6B652E546869 - 636B6E65737305000000000000008002400A5374726F6B652E4361700705526F - 756E640B5374726F6B652E446173680704446173680B5374726F6B652E4A6F69 - 6E0705526F756E64000F54466C6F6174416E696D6174696F6E00095374796C65 - 4E616D650603616E6907456E61626C656409084475726174696F6E0500000000 - 000000800340044C6F6F70090C50726F70657274794E616D65060A506F736974 - 696F6E2E580A537461727456616C75650500000000000000C808C00953746F70 - 56616C756505000000000000000000000754726967676572060E497356697369 - 626C653D7472756500000000005450463007544C61796F757400095374796C65 - 4E616D65060E6C6F67627574746F6E7374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000000000C005400B53697A652E4865 - 696768740500000000000000C005401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F726465720201000A5452656374 - 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 - 676E0706436C69656E740C436C69704368696C6472656E090A436C6970506172 - 656E740907436F726E6572730B08546F7052696768740B426F74746F6D526967 - 6874000A46696C6C2E436F6C6F72070978464632303230323007486974546573 - 74080A53697A652E57696474680500000000000000C005400B53697A652E4865 - 696768740500000000000000C005401453697A652E506C6174666F726D446566 + 2E4B696E6407044E6F6E6500000554506174680005416C69676E070643656E74 + 657209446174612E506174680A34000000040000000000000000000000000000 + 00010000000000803F00000000010000000000003F0000803F03000000000000 + 00000000000A46696C6C2E436F6C6F720708636C615768697465074869745465 + 7374080B4D617267696E732E546F700500000000000000C001400A53697A652E + 576964746805000000000000008002400B53697A652E48656967687405000000 + 000000008001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000005545465787400095374796C654E + 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 + 48697454657374080C4D617267696E732E4C6566740500000000000000A00140 + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 52696768740500000000000000A001400E4D617267696E732E426F74746F6D05 + 000000000000008000400A53697A652E57696474680500000000000000C80340 + 0B53697A652E4865696768740500000000000000B804401453697A652E506C61 + 74666F726D44656661756C7408165465787453657474696E67732E466F6E7443 + 6F6C6F720708636C6157686974650000005450463007544C61796F7574000953 + 74796C654E616D65061070726F67726573736261727374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000033338505400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572020F00 + 0A5452656374616E676C6500095374796C654E616D65060668747261636B0541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230 + 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000033338505400B53697A652E4865696768740500000000009999E1 + 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313507585261646975730500000000000000 + C0004007595261646975730500000000000000C00040000A5452656374616E67 + 6C6500095374796C654E616D65060A68696E64696361746F7205416C69676E07 + 044C6566740A46696C6C2E436F6C6F720709784646324138324532064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 + 0080FF3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00009999D904401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0 + 004007595261646975730500000000000000C000400000000A5452656374616E + 676C6500095374796C654E616D65060676747261636B05416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000003333 + 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 464631353135313507585261646975730500000000000000C000400759526164 + 6975730500000000000000C00040000A5452656374616E676C6500095374796C + 654E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D + 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 + 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A50 + 6F736974696F6E2E5905000000000099998904400A53697A652E576964746805 + 000000000033338105400B53697A652E4865696768740500000000000000A803 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6507585261646975730500000000000000C0004007595261 + 646975730500000000000000C00040000000005450463007544C61796F757400 + 095374796C654E616D65061170726F677265737363656C6C7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000000F805 + 400B53697A652E4865696768740500000000000000FC05401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 02100007544C61796F757400095374796C654E616D65060668747261636B0541 + 6C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E732E4C + 65667405000000000000008000400B4D617267696E732E546F70050000000000 + 00008000400D4D617267696E732E526967687405000000000000008000400E4D + 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 + 6474680500000000000000F005400B53697A652E486569676874050000000000 + 0000F405401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060A68696E64696361746F720541 + 6C69676E07044C6566740A46696C6C2E436F6C6F720709784646324138324532 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E + 732E426F74746F6D05000000000000008000400A506F736974696F6E2E580500 + 0000000000008000400A506F736974696F6E2E5905000000000000008000400A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000EC05401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 + 00000000C0004007595261646975730500000000000000C00040000000005450 + 463007544C61796F757400095374796C654E616D6506157363726F6C6C626172 + 626F74746F6D627574746F6E05416C69676E070643656E746572075669736962 + 6C6508085461624F726465720211000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C + 436C69704368696C6472656E090A436C6970506172656E740907436F726E6572 + 730B0A426F74746F6D4C6566740B426F74746F6D5269676874000A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C000 + 4007595261646975730500000000000000C00040000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 + 6D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463230323032300953746F7056616C7565070978464634303430343007 + 54726967676572062049734D6F7573654F7665723D747275653B497350726573 + 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 + 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E + 436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463430343034300953746F7056616C756507097846 + 463137353739430754726967676572061F4973507265737365643D747275653B + 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 + 204973507265737365643D66616C73653B49734D6F7573654F7665723D747275 + 6500000007544C61796F757400095374796C654E616D6506074C61796F757431 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080005545061746800095374796C654E + 616D650605506174683105416C69676E0706436C69656E7409446174612E5061 + 74680A3400000004000000000000000000C8420000C842010000000000964300 + 00C842010000000000484300009643030000000000C8420000C8420A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 + 696474680500000000000000A002400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6500000000545046300A5452656374616E676C + 6500095374796C654E616D6506147363726F6C6C62617268747261636B737479 + 6C6505416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 + 3135313531350748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E650756697369626C65080006545468756D6200095374796C654E616D65 + 06057468756D62064C6F636B6564090A53697A652E5769647468050000000000 + 00008003400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060A + 7468756D627374796C650000005450463007544C61796F757400095374796C65 + 4E616D6506137363726F6C6C6261726C656674627574746F6E05416C69676E07 + 0643656E7465720756697369626C6508085461624F726465720212000A545265 + 6374616E676C6500095374796C654E616D65060A6261636B67726F756E640541 + 6C69676E0706436C69656E740C436C69704368696C6472656E090A436C697050 + 6172656E740907436F726E6572730B07546F704C6566740A426F74746F6D4C65 + 6674000A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 00000000000000C0004007595261646975730500000000000000C00040000F54 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F 6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD CCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 61727456616C756507097846463230323032300953746F7056616C7565070978 - 46463430343034300754726967676572063049734D6F7573654F7665723D7472 - 75653B4973507265737365643D66616C73653B4973466F63757365643D66616C - 73650E54726967676572496E7665727365063149734D6F7573654F7665723D66 - 616C73653B4973507265737365643D66616C73653B4973466F63757365643D66 + 46463430343034300754726967676572062049734D6F7573654F7665723D7472 + 75653B4973507265737365643D66616C73650E54726967676572496E76657273 + 65062149734D6F7573654F7665723D66616C73653B4973507265737365643D66 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D 650615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F - 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E 436F6C6F720A537461727456616C756507097846463430343034300953746F70 - 56616C756507097846463137353739430754726967676572062F497350726573 - 7365643D747275653B49734D6F7573654F7665723D747275653B4973466F6375 - 7365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009537479 - 6C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E33084475 - 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646324138324532 - 0953746F7056616C756507097846463137353739430754726967676572062E49 - 73507265737365643D747275653B49734D6F7573654F7665723D747275653B49 - 73466F63757365643D747275650E54726967676572496E7665727365062F4973 - 507265737365643D66616C73653B49734D6F7573654F7665723D747275653B49 - 73466F63757365643D74727565000005545061746800095374796C654E616D65 - 0605506174683105416C69676E0706436C69656E7409446174612E506174680A - 5C02000032000000000000000000A841CDCCCC40010000000000A8410000C041 - 010000000000C03F0000C041010000000000C03F00000000010000009A996941 - 00000000010000000000A841CDCCCC40030000000000A841CDCCCC4000000000 - 00009C410000F04001000000000058410000F04001000000000058410000C03F - 01000000000040400000C03F01000000000040400000B4410100000000009C41 - 0000B4410100000000009C410000F0400300000000009C410000F04000000000 - 000040410000F04001000000000090400000F04001000000000090400000C040 - 01000000000040410000C04001000000000040410000F0400300000000004041 - 0000F04000000000000090400000104101000000000090410000104101000000 - 0000904100002841010000000000904000002841010000000000904000001041 - 0300000000009040000010410000000000009040000040410100000000009041 - 0000404101000000000090410000584101000000000090400000584101000000 - 0000904000004041030000000000904000004041000000000000904000007041 - 0100000000009041000070410100000000009041000084410100000000009040 - 0000844101000000000090400000704103000000000090400000704100000000 - 0000904000009041010000000000904100009041010000000000904100009C41 - 010000000000904000009C410100000000009040000090410300000000009040 - 0000904100000000000070410000C04001000000333393410000C04001000000 - 000070416666264001000000000070410000C04003000000000070410000C040 - 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D - 617267696E732E4C6566740500000000000000A002400B4D617267696E732E54 - 6F700500000000000000A002400D4D617267696E732E52696768740500000000 - 000000A002400E4D617267696E732E426F74746F6D0500000000000000A00240 - 0A53697A652E576964746805000000000000009805400B53697A652E48656967 - 687405000000000000009805401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F64650703 - 466974000000005450463007544C61796F757400095374796C654E616D650613 - 657870616E646572627574746F6E7374796C6505416C69676E070643656E7465 - 720B4D617267696E732E546F70050000000000000080FF3F0A53697A652E5769 - 6474680500000000000000B003400B53697A652E486569676874050000000000 - 0000B003401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F7264657202300005545061746800095374796C654E616D - 650605506174683105416C69676E070643656E74657209446174612E50617468 - 0A3400000004000000000000000000C8420000C84201000000000096430000C8 - 42010000000000484300009643030000000000C8420000C8420A46696C6C2E43 - 6F6C6F720708636C6157686974650748697454657374080D526F746174696F6E - 416E676C650500000000000000B405400A53697A652E57696474680500000000 - 000000A002400B53697A652E4865696768740500000000000000C00140145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D - 650614466C6F6174416E696D6174696F6E315374796C65084475726174696F6E - 050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E07084369726375 - 6C61720C50726F70657274794E616D65060D526F746174696F6E416E676C650A - 537461727456616C75650500000000000000B405400953746F7056616C756505 - 000000000000000000000754726967676572060F4973457870616E6465643D74 - 7275650E54726967676572496E766572736506104973457870616E6465643D66 - 616C7365000000005450463007544C61796F757400095374796C654E616D6506 - 15657870616E646572636865636B626F787374796C6505416C69676E07064365 - 6E7465720A53697A652E576964746805000000000000008406400B53697A652E - 48656967687405000000000000008404401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F7264657202340007544C61 - 796F75740005416C69676E07044C6566740A53697A652E576964746805000000 - 00000000C003400B53697A652E48656967687405000000000000008404401453 - 697A652E506C6174666F726D44656661756C7408000554506174680005416C69 - 676E0706436C69656E7409446174612E506174680AD801000027000000000000 - 00FEC8BA4402E79244020000002592AD4402E79244020000006D5BA544FEB09E - 44020000006D5BA544FEB09E440200000093A4A4446A0C9F44020000004A80AC - 44FC79AA4402000000046EBA44FC79AA44020000004A00C844FC79AA44020000 - 000080CF44FEB09E44020000000080CF44FEB09E44020000000080CF44FEB09E - 44020000004C5BC84402E7924402000000FEC8BA4402E7924400000000FE88BA - 44FE30974402000000B876BF44FE309744020000000277C344EEA09A44020000 - 000277C34404DE9E44020000000277C344121BA34402000000B876BF44008CA6 - 4402000000FE88BA44008CA644020000004C9BB544008CA64402000000009CB1 - 44121BA34402000000009CB14404DE9E4402000000009CB144EEA09A44020000 - 004C9BB544FE30974402000000FE88BA44FE309744000000000080BA44045E9B - 4402000000146EB844045E9B440200000000C0B64454F79C440200000000C0B6 - 4400F09E440200000000C0B644ACE8A04402000000146EB844FC81A244020000 - 000080BA44FC81A24402000000EC91BC44FC81A244020000000040BE44ACE8A0 - 44020000000040BE4400F09E44020000000040BE4454F79C4402000000EC91BC - 44045E9B44020000000080BA44045E9B440A46696C6C2E436F6C6F7207097836 - 303030303030300748697454657374080C4D617267696E732E4C656674050000 - 00000000008000400B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E526967687405000000000000008000400E4D617267696E73 - 2E426F74746F6D05000000000000008000400A53697A652E5769647468050000 - 0000000000A003400B53697A652E4865696768740500000000000000E8034014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E6508577261704D6F64650703466974000F54436F6C6F72416E69 - 6D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097836303030303030300953746F7056616C75650708636C61426C61636B0754 - 726967676572060E4973436865636B65643D7472756500000F54436F6C6F7241 - 6E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C5072 + 56616C756507097846463137353739430754726967676572061F497350726573 + 7365643D747275653B49734D6F7573654F7665723D747275650E547269676765 + 72496E766572736506204973507265737365643D66616C73653B49734D6F7573 + 654F7665723D7472756500000007544C61796F757400095374796C654E616D65 + 06074C61796F75743105416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000A002400B53697A652E48656967687405000000000000 + 00C001401453697A652E506C6174666F726D44656661756C7408000554506174 + 6800095374796C654E616D650605506174683105416C69676E0706436C69656E + 7409446174612E506174680A3400000004000000000000000000C8420000C842 + 01000000000096430000C842010000000000484300009643030000000000C842 + 0000C8420A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080D526F746174696F6E416E676C650500000000000000B405400A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000C001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 + 00095374796C654E616D6506147363726F6C6C6261727269676874627574746F + 6E05416C69676E070643656E7465720756697369626C6508085461624F726465 + 720213000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0706436C69656E740C436C69704368696C647265 + 6E090A436C6970506172656E740907436F726E6572730B08546F705269676874 + 0B426F74746F6D5269676874000A46696C6C2E436F6C6F720709784646323032 + 3032300748697454657374080A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6507585261646975730500000000000000C00040075952616469757305000000 + 00000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650615627574746F6E436F6C6F72416E696D6174696F6E31084475726174 + 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646323032303230095374 + 6F7056616C756507097846463430343034300754726967676572062049734D6F + 7573654F7665723D747275653B4973507265737365643D66616C73650E547269 + 67676572496E7665727365062149734D6F7573654F7665723D66616C73653B49 + 73507265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F + 6E32084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464634 + 30343034300953746F7056616C75650709784646313735373943075472696767 + 6572061F4973507265737365643D747275653B49734D6F7573654F7665723D74 + 7275650E54726967676572496E766572736506204973507265737365643D6661 + 6C73653B49734D6F7573654F7665723D7472756500000007544C61796F757400 + 095374796C654E616D6506074C61796F75743105416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C74080005545061746800095374796C654E616D650605506174683105416C + 69676E0706436C69656E7409446174612E506174680A34000000040000000000 + 00000000C8420000C84201000000000096430000C84201000000000048430000 + 9643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080D526F746174696F6E416E676C65050000000000 + 0000B405C00A53697A652E57696474680500000000000000A002400B53697A65 + 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450 + 463007544C61796F757400095374796C654E616D65060E7363726F6C6C626172 + 7374796C6505416C69676E070643656E7465720756697369626C650808546162 + 4F726465720214000754427574746F6E00095374796C654E616D65060A6C6566 + 74627574746F6E05416C69676E07044C656674064C6F636B6564090A506F7369 + 74696F6E2E5905000000000000008003400A53697A652E576964746805000000 + 000000008003400B53697A652E48656967687405000000000000009003401453 + 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 + 06137363726F6C6C6261726C656674627574746F6E00000754427574746F6E00 + 095374796C654E616D65060B7269676874627574746F6E05416C69676E070552 + 69676874064C6F636B6564090A506F736974696F6E2E58050000000000000088 + 04400A506F736974696F6E2E5905000000000000008003400A53697A652E5769 + 64746805000000000000008003400B53697A652E486569676874050000000000 + 00009003401453697A652E506C6174666F726D44656661756C74080B5374796C + 654C6F6F6B757006147363726F6C6C6261727269676874627574746F6E000007 + 54427574746F6E00095374796C654E616D65060C626F74746F6D627574746F6E + 05416C69676E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E + 5905000000000000008804400A53697A652E57696474680500000000000000C8 + 04400B53697A652E48656967687405000000000000008003401453697A652E50 + 6C6174666F726D44656661756C74080B5374796C654C6F6F6B75700615736372 + 6F6C6C626172626F74746F6D627574746F6E00000654547261636B0009537479 + 6C654E616D65060668747261636B05416C69676E0706436C69656E74064C6F63 + 6B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A + 652E576964746805000000000000009003400B53697A652E4865696768740500 + 0000000000009003401453697A652E506C6174666F726D44656661756C74080B + 5374796C654C6F6F6B757006147363726F6C6C62617268747261636B7374796C + 6500000654547261636B00095374796C654E616D65060676747261636B05416C + 69676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E07 + 0A486F72697A6F6E74616C0A53697A652E576964746805000000000000009003 + 400B53697A652E48656967687405000000000000009003401453697A652E506C + 6174666F726D44656661756C74080B5374796C654C6F6F6B757006147363726F + 6C6C62617276747261636B7374796C6500000754427574746F6E00095374796C + 654E616D650609746F70627574746F6E05416C69676E0703546F700A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 00000000008003401453697A652E506C6174666F726D44656661756C74080B53 + 74796C654C6F6F6B757006127363726F6C6C626172746F70627574746F6E0000 + 005450463007544C61796F757400095374796C654E616D6506127363726F6C6C + 626172746F70627574746F6E05416C69676E070643656E746572075669736962 + 6C6508085461624F726465720215000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C + 436C69704368696C6472656E090A436C6970506172656E740907436F726E6572 + 730B07546F704C65667408546F705269676874000A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000C804400B53697A652E4865696768740500000000000000C80440 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6507585261646975730500000000000000C000400759526164 + 6975730500000000000000C00040000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E + 31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 + 323032300953746F7056616C7565070978464634303430343007547269676765 + 72062049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D + 66616C73653B4973507265737365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 + 6E696D6174696F6E32084475726174696F6E05000000000000000000000C5072 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 650708636C61426C61636B0953746F7056616C75650709783630303030303030 - 0754726967676572060F4973436865636B65643D66616C736500000000055454 + 6507097846463430343034300953746F7056616C756507097846463137353739 + 430754726967676572061F4973507265737365643D747275653B49734D6F7573 + 654F7665723D747275650E54726967676572496E766572736506204973507265 + 737365643D66616C73653B49734D6F7573654F7665723D747275650000000754 + 4C61796F757400095374796C654E616D6506074C61796F75743105416C69676E + 070643656E7465720A53697A652E57696474680500000000000000A002400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C74080005545061746800095374796C654E616D65060550 + 6174683105416C69676E0706436C69656E7409446174612E506174680A340000 + 0004000000000000000000C8420000C84201000000000096430000C842010000 + 000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080D526F746174696F6E416E676C + 650500000000000000B406400A53697A652E57696474680500000000000000A0 + 02400B53697A652E4865696768740500000000000000C001401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6500000000545046300A5452656374616E676C6500095374796C654E616D6506 + 147363726F6C6C62617276747261636B7374796C6505416C69676E070643656E + 7465720A46696C6C2E436F6C6F72070978464631353135313507486974546573 + 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508 + 0006545468756D6200095374796C654E616D6506057468756D62064C6F636B65 + 64090A53697A652E57696474680500000000000000C804400B53697A652E4865 + 6967687405000000000000008003401453697A652E506C6174666F726D446566 + 61756C74080B5374796C654C6F6F6B7570060A7468756D627374796C65000000 + 5450463007544C61796F757400095374796C654E616D65060C7370696E626F78 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 000000006666E005400B53697A652E4865696768740500000000000000C00340 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F726465720216000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F7207097846463230323032300A53697A652E57696474680500 + 000000006666E005400B53697A652E4865696768740500000000000000C00340 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F72070978464631353135313507585261646975730500000000000000C000 + 4007595261646975730500000000000000C00040000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E + 315374796C65084475726174696F6E050000000000CDCCCCFB3F07496E766572 + 7365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53 + 7461727456616C756507097846463135313531350953746F7056616C75650709 + 7846463430343034300754726967676572061049734D6F7573654F7665723D74 + 7275650E54726967676572496E7665727365061149734D6F7573654F7665723D + 66616C73650000000C5442727573684F626A65637400095374796C654E616D65 + 060A666F726567726F756E640B42727573682E436F6C6F720709784646454145 + 41454100000C5442727573684F626A65637400095374796C654E616D65060973 + 656C656374696F6E0B42727573682E436F6C6F72070978393632413832453200 + 0007544C61796F757400095374796C654E616D650607636F6E74656E7405416C + 69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C656674 + 05000000000000008000400B4D617267696E732E546F70050000000000000080 + 00400D4D617267696E732E526967687405000000000000008000400E4D617267 + 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 + 050000000000D8CCF004400B53697A652E4865696768740500000000000000A0 + 03401453697A652E506C6174666F726D44656661756C74080000075442757474 + 6F6E00095374796C654E616D65060B6D696E7573627574746F6E05416C69676E + 07044C6566740843616E466F6375730806437572736F72070763724172726F77 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 + 00400A506F736974696F6E2E5805000000000000008000400A506F736974696F + 6E2E5905000000000000008000400A53697A652E576964746805000000000000 + 00A003400B53697A652E4865696768740500000000000000A003401453697A65 + 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060B62 + 7574746F6E7374796C65000554506174680005416C69676E070643656E746572 + 09446174612E506174680A4000000005000000000000000000803F0000000001 + 0000000000803F0000803F01000000000000000000003F010000000000803F00 + 000000030000000000803F000000000A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080A53697A652E57696474680500000000000000 + 8002400B53697A652E48656967687405000000000000008002401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E650000000754427574746F6E00095374796C654E616D65060A706C75736275 + 74746F6E05416C69676E070552696768740843616E466F637573080643757273 + 6F72070763724172726F770C4D617267696E732E4C6566740500000000000000 + 8000400B4D617267696E732E546F7005000000000000008000400D4D61726769 + 6E732E526967687405000000000000008000400E4D617267696E732E426F7474 + 6F6D05000000000000008000400A506F736974696F6E2E580500000000006C66 + B405400A506F736974696F6E2E5905000000000000008000400A53697A652E57 + 69647468050000000000E8FF9F03400B53697A652E4865696768740500000000 + 000000A003401453697A652E506C6174666F726D44656661756C74080B537479 + 6C654C6F6F6B7570060B627574746F6E7374796C65000554506174680005416C + 69676E070643656E74657209446174612E506174680A34000000040000000000 + 0000000000000000000001000000000000000000803F010000000000803F0000 + 003F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080A53697A652E5769647468050000000000A0FFFF + 01400B53697A652E48656967687405000000000000008002401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6500000000545046300D545377697463684F626A65637400095374796C654E61 + 6D65060B7377697463687374796C6505416C69676E070643656E746572044B69 + 6E64070C466164696E67547261636B730A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C7408085461624F7264657202171254 + 7261636B696E675468756D625363616C65050000000000000080FF3F07566973 + 69626C65080A46696C6C2E436F6C6F7207097846463230323032300C46696C6C + 4F6E2E436F6C6F7207097846463137353739430B46696C6C4F6E2E4B696E6407 + 05536F6C69640B5374726F6B652E4B696E6407044E6F6E650B5468756D622E43 + 6F6C6F7207097846463430343034300D5468756D624F6E2E436F6C6F72070978 + 46463241383245320C5468756D624F6E2E4B696E640705536F6C696410546875 + 6D625374726F6B652E4B696E6407044E6F6E650F5468756D625374726F6B652E + 4361700705526F756E64105468756D625374726F6B652E446173680706437573 + 746F6D105468756D625374726F6B652E4A6F696E0705526F756E64165468756D + 625374726F6B652E437573746F6D446173680A08000000000000000000000005 + 53686170650709526F756E645265637400005450463007544C61796F75740009 + 5374796C654E616D65060F746162636F6E74726F6C7374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000000008E06400B53 + 697A652E486569676874050000000000FFFFC905401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572021800 + 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E747307436F726E6572730B08546F7052 + 696768740A426F74746F6D4C6566740B426F74746F6D5269676874000A46696C + 6C2E436F6C6F720709784646333033303330064C6F636B656409074869745465 + 7374080C50616464696E672E4C65667405000000000000008000400B50616464 + 696E672E546F7005000000000000008000400D50616464696E672E5269676874 + 05000000000000008000400E50616464696E672E426F74746F6D050000000000 + 00008000400A53697A652E576964746805000000000000008E06400B53697A65 + 2E486569676874050000000000FFFFC905401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C00040000000545046300A5452656374616E676C6500095374796C654E + 616D65060B746162646F747374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650756697369626C65080758526164 + 6975730500000000000000C8034007595261646975730500000000000000C803 + 40000F54436F6C6F72416E696D6174696F6E00084475726174696F6E05000000 + 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463135313531350953746F7056616C7565 + 07097846463241383245320754726967676572060F497353656C65637465643D + 747275650E54726967676572496E76657273650610497353656C65637465643D + 66616C73650000005450463007544C61796F757400095374796C654E616D6506 + 0C7461626974656D7374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F726465720219000A5452656374616E676C650009 + 5374796C654E616D650603746F7005416C69676E0708436F6E74656E74730C43 + 6C69704368696C6472656E0907436F726E6572730B07546F704C65667408546F + 705269676874000A46696C6C2E436F6C6F720709784646323032303230064C6F + 636B6564090748697454657374080553696465730B03546F70044C6566740552 + 69676874000A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C00040000654476C79706800095374796C654E616D65060A676C797068 + 7374796C650C4D617267696E732E4C65667405000000000000008001400D4D61 + 7267696E732E526967687405000000000000008001C005416C69676E07044C65 + 66740A506F736974696F6E2E5805000000000000008001400A53697A652E5769 + 64746805000000000000008003400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C74080000055454 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 6E74064C6F636B6564090748697454657374080C4D617267696E732E4C656674 - 05000000000000008002400B4D617267696E732E546F70050000000000000080 - 00400D4D617267696E732E5269676874050000000000000080FF3F0A53697A65 - 2E57696474680500000000000000C605400B53697A652E486569676874050000 - 0000000000F803401453697A652E506C6174666F726D44656661756C74081654 - 65787453657474696E67732E466F6E74436F6C6F720709784646454545454545 - 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 - 0000005450463007544C61796F757400095374796C654E616D65060D65787061 - 6E6465727374796C6505416C69676E070643656E7465720A53697A652E576964 - 746805000000000000C08607400B53697A652E48656967687405000000000000 - 00CE05401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C6508085461624F726465720239000A5452656374616E676C6500095374796C - 654E616D65060B626772656374616E676C6505416C69676E0708436F6E74656E - 74730A46696C6C2E436F6C6F720709784646324432443244064C6F636B656409 - 0748697454657374080A53697A652E576964746805000000000000C08607400B - 53697A652E4865696768740500000000000000CE05401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 3135313507585261646975730500000000000000C00040075952616469757305 - 00000000000000C000400007544C61796F757400095374796C654E616D650607 - 4C61796F75743305416C69676E0703546F700A53697A652E5769647468050000 - 00000000C08607400B53697A652E4865696768740500000000000000C8034014 - 53697A652E506C6174666F726D44656661756C74080007544C61796F75740009 - 5374796C654E616D6506074C61796F75743405416C69676E0708436F6E74656E - 74730A53697A652E576964746805000000000000C08607400B53697A652E4865 - 696768740500000000000000C803401453697A652E506C6174666F726D446566 - 61756C7408000A5452656374616E676C6500095374796C654E616D65060A5265 - 6374616E676C653205416C69676E0708436F6E74656E747307436F726E657273 - 0B07546F704C65667408546F705269676874000A46696C6C2E436F6C6F720709 - 784646323532353235064C6F636B6564090748697454657374080A53697A652E - 576964746805000000000000C08607400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F7207097846463135313531350758526164697573050000 - 0000000000C0004007595261646975730500000000000000C0004000000A5452 - 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 - 416C69676E0708436F6E74656E747307436F726E6572730B07546F704C656674 - 08546F705269676874000A46696C6C2E436F6C6F720709784646313531353135 - 064C6F636B6564090748697454657374080A53697A652E576964746805000000 - 000000C08607400B53697A652E4865696768740500000000000000C803401453 + 0500000000000000C000400B4D617267696E732E546F700500000000000000C0 + 00400D4D617267696E732E52696768740500000000000000C000400E4D617267 + 696E732E426F74746F6D0500000000000000C000400A53697A652E5769647468 + 0500000000000000B004400B53697A652E486569676874050000000000000098 + 03401453697A652E506C6174666F726D44656661756C74081654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746515546578745365 + 7474696E67732E576F7264577261700800000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650612746162436F6C6F72416E696D6174696F6E + 310D416E696D6174696F6E547970650705496E4F7574084475726174696F6E05 + 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062149734D6F7573654F + 7665723D747275653B497353656C65637465643D66616C73650E547269676765 + 72496E7665727365062249734D6F7573654F7665723D66616C73653B49735365 + 6C65637465643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650612746162436F6C6F72416E696D6174696F6E32084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 0953746F7056616C756507097846463241383245320754726967676572060F49 + 7353656C65637465643D747275650E54726967676572496E7665727365061049 + 7353656C65637465643D66616C7365000000005450463007544C61796F757400 + 095374796C654E616D65060D7465787463656C6C7374796C6505416C69676E07 + 0643656E7465720756697369626C6508085461624F72646572021A0007544C61 + 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0708 + 436F6E74656E7473064C6F636B6564090C4D617267696E732E4C656674050000 + 00000000008001400B4D617267696E732E546F7005000000000000008001400D + 4D617267696E732E526967687405000000000000008001400E4D617267696E73 + 2E426F74746F6D05000000000000008001400A53697A652E5769647468050000 + 0000000000A804400B53697A652E4865696768740500000000000000A8044014 + 53697A652E506C6174666F726D44656661756C740800000C5442727573684F62 + 6A65637400095374796C654E616D65060A666F726567726F756E6400000C5442 + 727573684F626A65637400095374796C654E616D65060973656C656374696F6E + 0B42727573682E436F6C6F72070978393632413832453200000B54466F6E744F + 626A65637400095374796C654E616D650604666F6E7400000054504630075443 + 6972636C6500095374796C654E616D65060D7468756D626261727374796C6505 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646324138 + 3245320748697454657374080A53697A652E57696474680500000000000000A0 + 03400B53697A652E4865696768740500000000000000A003401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 463135313531350756697369626C6508000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F + 6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 41383245320953746F7056616C75650709784646313735373943075472696767 + 6572061F4973507265737365643D747275653B49734D6F7573654F7665723D74 + 7275650E54726967676572496E766572736506104973507265737365643D6661 + 6C73653B00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 6506147468756D62436F6C6F72416E696D6174696F6E32084475726174696F6E + 050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 + 616C756507097846463430394246460754726967676572062049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 + 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 + 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D6506157468756D625374726F6B65416E696D6174696F6E3108 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 + 313531350953746F7056616C7565070978464631373537394307547269676765 + 72061F4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 75650E54726967676572496E7665727365060F4973507265737365643D66616C + 7365000000545046300A5452656374616E676C6500095374796C654E616D6506 + 0A7468756D627374796C6505416C69676E070643656E7465720A46696C6C2E43 + 6F6C6F7207097846463444344434440748697454657374080A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000C804401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E + 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463444344434440953746F7056616C75650709784646313735373943 + 0754726967676572060E4973507265737365643D747275650E54726967676572 + 496E7665727365060F4973507265737365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D + 6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F07 + 496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463444344434440953746F7056616C75 + 650707636C61477261790754726967676572061049734D6F7573654F7665723D + 747275650E54726967676572496E7665727365061149734D6F7573654F766572 + 3D66616C73650000005450463007544C61796F757400095374796C654E616D65 + 060D747261636B6261727374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000C805400B53697A652E48656967687405 + 00000000000000C805401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F72646572021B0B4669786564486569676874 + 0211000A5452656374616E676C6500095374796C654E616D6506066874726163 + 6B05416C69676E070A5665727443656E7465720A46696C6C2E436F6C6F720709 + 7846463135313531350748697454657374080A506F736974696F6E2E59050000 + 0000000000BC04400A53697A652E57696474680500000000000000C805400B53 + 697A652E4865696768740500000000000000A001401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852 + 61646975730500000000000000A0004007595261646975730500000000000000 + A00040000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E64 + 07044E6F6E65064C6F636B6564090748697454657374080C4D617267696E732E + 4C6566740500000000000000C001400B4D617267696E732E546F700500000000 + 00000080FF3F0D4D617267696E732E52696768740500000000000000C001400E + 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 + 696474680500000000000000B005400B53697A652E4865696768740500000000 + 000000C000401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0FF + 3F07595261646975730500000000000000C0FF3F00000A5452656374616E676C + 6500095374796C654E616D650609686967686C6967687405416C69676E07044C + 6566740A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 74080C50616464696E672E4C6566740500000000000000A002400A53697A652E + 57696474680500000000000000F003400B53697A652E48656967687405000000 + 00000000A001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000A0 + 004007595261646975730500000000000000A0004000000B54476C6F77456666 + 6563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C + 6F720709784646324138324532074F706163697479050000000000000080FF3F + 07456E61626C6564080000000A5452656374616E676C6500095374796C654E61 + 6D65060676747261636B05416C69676E070A486F727A43656E7465720A46696C + 6C2E436F6C6F7207097846463135313531350748697454657374080A506F7369 + 74696F6E2E580500000000000000BC04400A53697A652E576964746805000000 + 00000000A001400B53697A652E4865696768740500000000000000C805401453 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6507585261646975730500000000000000C0004007595261646975 - 730500000000000000C00040000F54466C6F6174416E696D6174696F6E000953 - 74796C654E616D650614466C6F6174416E696D6174696F6E315374796C650844 - 75726174696F6E0500000000009A9999FD3F0D496E746572706F6C6174696F6E - 070843697263756C61720C50726F70657274794E616D6506075363616C652E58 - 0A537461727456616C7565050000000000000080FF3F0953746F7056616C7565 - 05000000000000000000000754726967676572060F4973457870616E6465643D - 747275650E54726967676572496E766572736506104973457870616E6465643D - 66616C73650000000007544C61796F757400095374796C654E616D6506074C61 - 796F75743305416C69676E0708436F6E74656E74730A53697A652E5769647468 - 05000000000000C08607400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C74080005545465787400 - 095374796C654E616D6506047465787405416C69676E07044C65667408417574 - 6F53697A65090A436C6970506172656E7409064C6F636B656409074869745465 - 7374080C4D617267696E732E4C6566740500000000000000A002400A506F7369 - 74696F6E2E580500000000000000A002400A53697A652E576964746805000000 - 00000018D103400B53697A652E4865696768740500000000000060FF02401453 - 697A652E506C6174666F726D44656661756C7408045465787406045465787416 - 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 - 0000000F54457870616E646572427574746F6E00095374796C654E616D650606 - 627574746F6E05416C69676E07055269676874064C6F636B6564090A506F7369 - 74696F6E2E580500000000000080F906400A53697A652E576964746805000000 - 00000000A003400B53697A652E4865696768740500000000000000C803401453 - 697A652E506C6174666F726D44656661756C740800000000005450463007544C - 61796F757400095374796C654E616D65060A70616E656C7374796C6505416C69 - 676E070643656E7465720A53697A652E57696474680500000000000000C00640 - 0B53697A652E4865696768740500000000000000A406401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508000A5452656374616E67 - 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 - 08436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A - 53697A652E57696474680500000000000000C006400B53697A652E4865696768 - 740500000000000000A406401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 00000000C0004007595261646975730500000000000000C00040000000545046 - 3007544C61796F757400095374796C654E616D65061970726F67726573736261 - 726D696E696572726F727374796C6505416C69676E070643656E7465720A5369 - 7A652E576964746805000000000033338505400B53697A652E48656967687405 - 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508000A5452656374616E676C6500095374796C654E616D65 - 060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F - 6C6F720709784646343034303430064C6F636B6564090748697454657374080A + 07044E6F6E6507585261646975730500000000000000A0004007595261646975 + 730500000000000000A00040000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E747309 + 46696C6C2E4B696E6407044E6F6E65064C6F636B656409074869745465737408 + 0C4D617267696E732E4C6566740500000000000000C001400B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 0000000000C001400E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A53697A652E576964746805000000000000000000000B53697A652E4865 + 696768740500000000000000C405401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265637461 + 6E676C6500095374796C654E616D650609686967686C6967687405416C69676E + 0703546F700A46696C6C2E436F6C6F7207097846463241383245320748697454 + 657374080A53697A652E57696474680500000000000000A001400B53697A652E + 4865696768740500000000000000F003401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975 + 730500000000000000A0004007595261646975730500000000000000A0004000 + 000B54476C6F774566666563740008536F66746E657373050000000000CDCCCC + FC3F09476C6F77436F6C6F720709784646324138324532074F70616369747905 + 0000000000000080FF3F07456E61626C65640800000006545468756D62000953 + 74796C654E616D650606687468756D62064C6F636B6564090A506F736974696F + 6E2E580500000000003033AB03400A506F736974696F6E2E59050000000000FF + FFA304400A53697A652E57696474680500000000000000F002400B53697A652E + 4865696768740500000000000000F002401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B7570060D7468756D62626172737479 + 6C65000006545468756D6200095374796C654E616D650606767468756D62064C + 6F636B6564090A506F736974696F6E2E58050000000000CBCCA804400A506F73 + 6974696F6E2E590500000000009899B103400A53697A652E5769647468050000 + 0000000000F002400B53697A652E4865696768740500000000000000F0024014 + 53697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75 + 70060D7468756D626261727374796C650000005450463007544C61796F757400 + 095374796C654E616D6506096D656D6F7374796C6505416C69676E070643656E + 7465720A53697A652E5769647468050000000000CCCC8806400B53697A652E48 + 65696768740500000000006666F405401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F72646572021C000B54476C6F + 774566666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F + 77436F6C6F720709784646343837394133074F70616369747905000000000000 + 0080FF3F0754726967676572060E4973466F63757365643D7472756507456E61 + 626C65640800000C5442727573684F626A65637400095374796C654E616D6506 + 0A666F726567726F756E6400000C5442727573684F626A65637400095374796C + 654E616D65060973656C656374696F6E0B42727573682E436F6C6F7207097837 + 4634343735394400000B54466F6E744F626A65637400095374796C654E616D65 + 0604666F6E7400000A5452656374616E676C6500095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 69647468050000000000CCCC8806400B53697A652E4865696768740500000000 + 006666F405401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135075852616469757305000000 + 00000000C0004007595261646975730500000000000000C000400007544C6179 + 6F757400095374796C654E616D650607636F6E74656E7405416C69676E070643 + 6C69656E740C4D617267696E732E4C65667405000000000000008000400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 + 000000008000400A53697A652E57696474680500000000009899E905400B5369 + 7A652E4865696768740500000000006666CC05401453697A652E506C6174666F + 726D44656661756C740800000A545363726F6C6C42617200095374796C654E61 + 6D65060A687363726F6C6C62617205416C69676E0706426F74746F6D06437572 + 736F72070763724172726F770B536D616C6C4368616E67650500000000000000 + 0000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F7369 + 74696F6E2E590500000000006666D405400A53697A652E576964746805000000 + 0000CCCC8806400B53697A652E48656967687405000000000000008003401453 + 697A652E506C6174666F726D44656661756C740800000A545363726F6C6C4261 + 7200095374796C654E616D65060A767363726F6C6C62617205416C69676E0705 + 526967687406437572736F72070763724172726F770B536D616C6C4368616E67 + 6505000000000000000000000B4F7269656E746174696F6E0708566572746963 + 616C0A506F736974696F6E2E580500000000009899F105400A53697A652E5769 + 64746805000000000000008003400B53697A652E486569676874050000000000 + 6666D405401453697A652E506C6174666F726D44656661756C7408000007544C + 61796F75740005416C69676E0706436C69656E740A53697A652E576964746805 + 00000000009899F105400B53697A652E4865696768740500000000006666D405 + 401453697A652E506C6174666F726D44656661756C7408000F54536D616C6C53 + 63726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C + 6C62617205416C69676E0705526967687406437572736F72070763724172726F + 770B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 + 74696F6E0708566572746963616C0C4D617267696E732E4C6566740500000000 + 0000008000400A53697A652E576964746805000000000000008002400B53697A + 652E48656967687405000000000000008002401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C650800000F54536D616C6C5363726F6C + 6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C626172 + 05416C69676E0706426F74746F6D06437572736F72070763724172726F770B53 + 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F + 6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000000000 + 008000400A53697A652E576964746805000000000000009606400B53697A652E + 48656967687405000000000000008002401453697A652E506C6174666F726D44 + 656661756C74080756697369626C65080000000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D6506146D656D6F5374726F6B65416E696D6174 + 696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 + 794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75650709 + 7846463135313531350953746F7056616C756507097846463430343034300754 + 726967676572062049734D6F7573654F7665723D747275653B4973466F637573 + 65643D66616C73650E54726967676572496E7665727365062149734D6F757365 + 4F7665723D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D6506146D656D6F537472 + 6F6B65416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB + 3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461 + 727456616C756507097846463430343034300953746F7056616C756507097846 + 463241383245320754726967676572060E4973466F63757365643D747275650E + 54726967676572496E7665727365060F4973466F63757365643D66616C736500 + 0000005450463007544C61796F757400095374796C654E616D65060D73697A65 + 677269707374796C6505416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000C803400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F72646572021D000A5452656374616E676C6500095374796C + 654E616D65060A52656374616E676C653105416C69676E070643656E7465720A + 46696C6C2E436F6C6F7207097846463630363036300A53697A652E5769647468 + 0500000000000000A000400B53697A652E4865696768740500000000000000A0 + 00401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653205416C69676E070643656E7465720A46696C + 6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C65667405 + 00000000000000A002400A53697A652E57696474680500000000000000A00040 + 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 + 6C653305416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463630363036300C4D617267696E732E4C6566740500000000000000A002400B + 4D617267696E732E546F700500000000000000A002400A53697A652E57696474 + 680500000000000000A000400B53697A652E4865696768740500000000000000 + A000401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E + 616D65060A52656374616E676C653405416C69676E070643656E7465720A4669 + 6C6C2E436F6C6F7207097846463630363036300B4D617267696E732E546F7005 + 00000000000000A002400A53697A652E57696474680500000000000000A00040 + 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 + 6C653505416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463630363036300B4D617267696E732E546F700500000000000000A002400D4D + 617267696E732E52696768740500000000000000A002400A53697A652E576964 + 74680500000000000000A000400B53697A652E48656967687405000000000000 + 00A000401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C65 + 4E616D65060A52656374616E676C653605416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C6566 + 740500000000000000A002400E4D617267696E732E426F74746F6D0500000000 + 000000A002400A53697A652E57696474680500000000000000A000400B53697A + 652E4865696768740500000000000000A000401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000005450 + 46300A5452656374616E676C6500095374796C654E616D65060E737461747573 + 6261727374796C6505416C69676E070643656E7465720C436C69704368696C64 + 72656E090A46696C6C2E436F6C6F720709784646323532353235055369646573 + 0B03546F70000A53697A652E57696474680500000000000000F004400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 350756697369626C65080007544C61796F757400095374796C654E616D650607 + 4C61796F75743105416C69676E070552696768740A506F736974696F6E2E5805 + 000000000000008C04400A53697A652E57696474680500000000000000C80340 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C740800095453697A654772697000095374796C654E + 616D65060973697A65677267697005416C69676E0706426F74746F6D0A506F73 + 6974696F6E2E590500000000000000C803400A53697A652E5769647468050000 + 0000000000C803400B53697A652E4865696768740500000000000000C8034014 + 53697A652E506C6174666F726D44656661756C740800000000545046300A5452 + 656374616E676C6500095374796C654E616D65060C746F6F6C6261727374796C + 6505416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464632 + 35323532350748697454657374080553696465730B06426F74746F6D000A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350756697369626C65 + 0800005450463007544C61796F757400095374796C654E616D65061570726F67 + 726573736261726572726F727374796C6505416C69676E070643656E7465720A 53697A652E576964746805000000000033338505400B53697A652E4865696768 740500000000009999E104401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 0000000080004007595261646975730500000000000000800040000A54526563 - 74616E676C6500095374796C654E616D65060A68696E64696361746F7205416C - 69676E07044C6566740A46696C6C2E436F6C6F72070978464645323241324106 - 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 - 000000C804400B53697A652E4865696768740500000000009999E10440145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65075852616469757305000000000000008000400759526164697573 - 05000000000000008000400000000A5452656374616E676C6500095374796C65 - 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 - 7374080A53697A652E576964746805000000000033338505400B53697A652E48 - 65696768740500000000009999E104401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 - 050000000000000080004007595261646975730500000000000000800040000A - 5452656374616E676C6500095374796C654E616D65060A76696E64696361746F - 7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464645 - 3232413241064C6F636B6564090748697454657374080A506F736974696F6E2E - 5905000000000099998D04400A53697A652E5769647468050000000000333385 + 74080756697369626C6508085461624F72646572021E000A5452656374616E67 + 6C6500095374796C654E616D65060668747261636B05416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B + 6564090748697454657374080A53697A652E5769647468050000000000333385 + 05400B53697A652E4865696768740500000000009999E104401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 4631353135313507585261646975730500000000000000C00040075952616469 + 75730500000000000000C00040000A5452656374616E676C6500095374796C65 + 4E616D65060A68696E64696361746F7205416C69676E07044C6566740A46696C + 6C2E436F6C6F720709784646453232413241064C6F636B656409074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 + 74696F6E2E59050000000000000080FF3F0A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000009999D904401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6507585261646975730500000000000000C0004007595261646975 + 730500000000000000C000400000000A5452656374616E676C6500095374796C + 654E616D65060676747261636B05416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080A53697A652E576964746805000000000033338505400B53697A652E + 4865696768740500000000009999E104401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C00040000A5452656374616E676C6500095374796C654E616D65060A7669 + 6E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F + 720709784646453232413241064C6F636B6564090748697454657374080C4D61 + 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E59 + 05000000000099998904400A53697A652E576964746805000000000033338105 + 400B53697A652E4865696768740500000000000000A803401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C00040000000005450463007544C61796F757400095374796C654E616D + 65060E6C696E6B6C6162656C7374796C6505416C69676E070643656E7465720A + 53697A652E5769647468050000000000CCCC8006400B53697A652E4865696768 + 740500000000009A998104401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508085461624F72646572021F00055454657874000953 + 74796C654E616D6506047465787405416C69676E0708436F6E74656E74730748 + 697454657374080A53697A652E5769647468050000000000CCCC8006400B5369 + 7A652E4865696768740500000000009A998104401453697A652E506C6174666F + 726D44656661756C740804546578740604546578741A5465787453657474696E + 67732E466F6E742E5374796C654578740A0D0000000404000000000000000400 + 0000165465787453657474696E67732E466F6E74436F6C6F72070D636C61446F + 64676572626C7565000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650614436F6C6F72416E696D6174696F6E315374796C65084475726174 + 696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065727479 + 4E616D6506165465787453657474696E67732E466F6E74436F6C6F720A537461 + 727456616C7565070D636C61446F64676572626C75650953746F7056616C7565 + 070E636C6144656570736B79626C75650754726967676572063049734D6F7573 + 654F7665723D747275653B4973507265737365643D66616C73653B4973466F63 + 757365643D66616C73650E54726967676572496E7665727365063149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C73653B497346 + 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 06165465787453657474696E67732E466F6E74436F6C6F720A53746172745661 + 6C7565070E636C6144656570736B79626C75650953746F7056616C7565070978 + 46463137353739430754726967676572062F4973507265737365643D74727565 + 3B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C73 + 65000000005450463007544C61796F757400095374796C654E616D650613736D + 616C6C7363726F6C6C6261727374796C6505416C69676E070643656E74657207 + 56697369626C6508085461624F726465720220000654547261636B0009537479 + 6C654E616D65060668747261636B05416C69676E0706436C69656E74064C6F63 + 6B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C74080B + 5374796C654C6F6F6B757006147363726F6C6C62617268747261636B7374796C + 6500000654547261636B00095374796C654E616D65060676747261636B05416C + 69676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E07 + 0A486F72697A6F6E74616C0A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080B5374796C654C6F6F6B757006147363726F + 6C6C62617276747261636B7374796C650000005450463007544C61796F757400 + 095374796C654E616D65060D636F6D626F626F787374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F726465720221000C + 5442727573684F626A65637400095374796C654E616D65060A666F726567726F + 756E6400000B54466F6E744F626A65637400095374796C654E616D650604666F + 6E7409466F6E742E53697A650500000000000000D00240000007544C61796F75 + 7400095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 + 436F6E74656E74730A53697A652E57696474680500000000000000C805400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653105416C69676E0706436C69656E740A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 + 2E57696474680500000000000000C805400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + C0004007595261646975730500000000000000C000400007544C61796F757400 + 095374796C654E616D650611427574746F6E5374796C654F626A65637405416C + 69676E070846697452696768740B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E + 2E580500000000005ED99705400A506F736974696F6E2E590500000000000000 + 80FF3F0A53697A652E5769647468050000000000889AB803400B53697A652E48 + 65696768740500000000000000B803401453697A652E506C6174666F726D4465 + 6661756C74080007544C61796F757400095374796C654E616D6506074C61796F + 75743105416C69676E070643656E7465720C4D617267696E732E4C6566740500 + 00000000000080FF3F0A53697A652E57696474680500000000000000A002400B + 53697A652E4865696768740500000000000000C001401453697A652E506C6174 + 666F726D44656661756C74080005545061746800095374796C654E616D650605 + 506174683105416C69676E0706436C69656E7409446174612E506174680A3400 + 000004000000000000000000C8420000C84201000000000096430000C8420100 + 00000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F + 720708636C6157686974650748697454657374080A53697A652E576964746805 + 00000000000000A002400B53697A652E4865696768740500000000000000C001 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000000000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 + 32300953746F7056616C75650709784646343034303430075472696767657206 + 3049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 653B4973466F63757365643D66616C73650E54726967676572496E7665727365 + 063149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 + 6C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 + 6D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463430343034300953746F7056616C7565070978464631373537394307 + 54726967676572062F4973507265737365643D747275653B49734D6F7573654F + 7665723D747275653B4973466F63757365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E33084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463241383245320953746F7056616C756507097846463137 + 353739430754726967676572062E4973507265737365643D747275653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D747275650E547269 + 67676572496E7665727365062F4973507265737365643D66616C73653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D7472756500000000 + 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 + 676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C65667405 + 000000000000008000400B4D617267696E732E546F7005000000000000008000 + 400D4D617267696E732E52696768740500000000000000D803400E4D61726769 + 6E732E426F74746F6D05000000000000008000400A53697A652E576964746805 + 000000000000008E05400B53697A652E4865696768740500000000000000A803 + 401453697A652E506C6174666F726D44656661756C7408000000545046300754 + 4C61796F757400095374796C654E616D65060D73706C69747465727374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00A904400B53697A652E4865696768740500000000000080C105401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 + 6465720222000A5452656374616E676C6500095374796C654E616D65060A5265 + 6374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F + 7207097846463330333033300748697454657374080553696465730B044C6566 + 74055269676874000A53697A652E57696474680500000000000000A904400B53 + 697A652E4865696768740500000000000080C105401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 353135000007544C61796F757400095374796C654E616D650604677269700541 + 6C69676E0706436C69656E740A53697A652E57696474680500000000000000A9 + 04400B53697A652E4865696768740500000000000080C105401453697A652E50 + 6C6174666F726D44656661756C7408000754436972636C6500095374796C654E + 616D650607436972636C653105416C69676E070643656E7465720A46696C6C2E + 436F6C6F7207097846463430343034300A53697A652E57696474680500000000 + 000000E001400B53697A652E4865696768740500000000000000E00140145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 070978464631353135313500000754436972636C6500095374796C654E616D65 + 0607436972636C653205416C69676E070643656E7465720A46696C6C2E436F6C + 6F7207097846463430343034300B4D617267696E732E546F7005000000000000 + 00A003400A53697A652E57696474680500000000000000E001400B53697A652E + 4865696768740500000000000000E001401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 000754436972636C6500095374796C654E616D650607436972636C653305416C + 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463430343034 + 300E4D617267696E732E426F74746F6D0500000000000000A003400A53697A65 + 2E57696474680500000000000000E001400B53697A652E486569676874050000 + 0000000000E001401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F72070978464631353135313500000000545046300754 + 4C61796F757400095374796C654E616D650610726164696F627574746F6E7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000F205400B53697A652E4865696768740500000000000000A803401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F7264657202230007544C61796F75740005416C69676E07044C6566740A53 + 697A652E57696474680500000000000000A803400B53697A652E486569676874 + 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 + 08000854456C6C6970736500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 + 323032303230064C6F636B6564090748697454657374080A53697A652E576964 + 74680500000000000000F002400B53697A652E48656967687405000000000000 + 00F002401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F720709784646313531353135000854456C6C6970736500095374 + 796C654E616D650609636865636B6D61726B05416C69676E0706436C69656E74 + 0A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564090748 + 69745465737408074F70616369747905000000000000000000000C4D61726769 + 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 + 0000000000008000400D4D617267696E732E5269676874050000000000000080 + 00400E4D617267696E732E426F74746F6D05000000000000008000400A53697A + 652E57696474680500000000000000B002400B53697A652E4865696768740500 + 000000000000B002401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 + 6F6E00095374796C654E616D65061A6F706163697479436865636B6D61726B41 + 6E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C5072 + 6F70657274794E616D6506074F7061636974790A537461727456616C75650500 + 0000000000000000000953746F7056616C7565050000000000000080FF3F0754 + 726967676572060E4973436865636B65643D747275650E54726967676572496E + 7665727365060F4973436865636B65643D66616C73650000000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D65061A726164696F627574746F + 6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD + CCCCFB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463230323032300953746F + 7056616C756507097846463430343034300754726967676572061049734D6F75 + 73654F7665723D747275650E54726967676572496E7665727365061149734D6F + 7573654F7665723D66616C736500000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464631 + 35313531350953746F7056616C75650709784646324138324532075472696767 + 6572060E4973436865636B65643D747275650E54726967676572496E76657273 + 65060F4973436865636B65643D66616C73650000000005545465787400095374 + 796C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B + 6564090748697454657374080A53697A652E57696474680500000000000000C8 05400B53697A652E4865696768740500000000000000A803401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 6507585261646975730500000000000000800040075952616469757305000000 - 00000000800040000000005450463007544C61796F757400095374796C654E61 - 6D65061470726F67726573736261726D696E697374796C6505416C69676E0706 - 43656E7465720A53697A652E576964746805000000000033338505400B53697A - 652E4865696768740500000000009999E104401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508085461624F72646572022F000A54 - 52656374616E676C6500095374796C654E616D65060668747261636B05416C69 - 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464634303430 - 3430064C6F636B6564090748697454657374080A53697A652E57696474680500 - 0000000033338505400B53697A652E4865696768740500000000009999E10440 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65075852616469757305000000000000008000400759526164 - 6975730500000000000000800040000A5452656374616E676C6500095374796C - 654E616D65060A68696E64696361746F7205416C69676E07044C6566740A4669 - 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 - 657374080A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000009999E104401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975 - 7305000000000000008000400759526164697573050000000000000080004000 - 00000A5452656374616E676C6500095374796C654E616D65060676747261636B - 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 - 343034303430064C6F636B6564090748697454657374080A53697A652E576964 - 746805000000000033338505400B53697A652E48656967687405000000000099 - 99E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 6C6174666F726D44656661756C74080454657874060454657874165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974650000005450 + 463007544C61796F757400095374796C654E616D650618756C63656E74657272 + 6164696F627574746F6E7374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000005655FB05400B53697A652E48656967687405 + 00000000000000A004401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F7264657202280007544C61796F7574000541 + 6C69676E0706426F74746F6D0A506F736974696F6E2E59050000000000000088 + 04400A53697A652E57696474680500000000005655FB05400B53697A652E4865 + 696768740500000000000000C001401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0708436F6E74656E747307436F726E657273 + 0B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72 + 0709784646323032303230064C6F636B6564090748697454657374080A53697A + 652E57696474680500000000005655FB05400B53697A652E4865696768740500 + 000000000000C001401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D6506216261636B67726F756E6455 + 6C427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 0000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 + 32300953746F7056616C75650709784646343034303430075472696767657206 + 1049734D6F7573654F7665723D747275650E54726967676572496E7665727365 + 061149734D6F7573654F7665723D66616C736500000A5452656374616E676C65 + 00095374796C654E616D650609636865636B6D61726B05416C69676E0708436F + 6E74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C65 + 6674000A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564 + 09074869745465737408074F70616369747905000000000000000000000C4D61 + 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E57696474680500000000005655F705400B53697A652E4865696768 + 7405000000000000008001401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D + 6174696F6E00095374796C654E616D65061A636865636B6D61726B4F70616369 + 7479416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D6506074F7061636974790A537461727456616C75 + 6505000000000000000000000953746F7056616C7565050000000000000080FF + 3F0754726967676572060E4973436865636B65643D747275650E547269676765 + 72496E7665727365060F4973436865636B65643D66616C736500000000000554 + 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 + 656E74064C6F636B6564090748697454657374080A53697A652E576964746805 + 00000000005655FB05400B53697A652E48656967687405000000000000008804 + 401453697A652E506C6174666F726D44656661756C7408045465787406045465 + 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 6974650000005450463007544C61796F757400095374796C654E616D65061675 + 6C6C656674726164696F627574746F6E7374796C6505416C69676E070643656E + 7465720A53697A652E57696474680500000000005655FB05400B53697A652E48 + 65696768740500000000000000A004401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F72646572022A0007544C6179 + 6F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E59050000 + 00000000008804400A53697A652E57696474680500000000005655FB05400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730743 + 6F726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C + 2E436F6C6F720709784646323032303230064C6F636B65640907486974546573 + 74080A53697A652E57696474680500000000005655FB05400B53697A652E4865 + 696768740500000000000000C001401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135075852 + 61646975730500000000000000C0004007595261646975730500000000000000 + C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F + 6E31084475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572061049734D6F7573654F7665723D747275650E5472 + 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 + 000A5452656374616E676C6500095374796C654E616D650609636865636B6D61 + 726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F704C + 6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B656409074869745465737408074F7061636974790500 + 0000000000000000000C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000005655F705 + 400B53697A652E48656967687405000000000000008001401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0758526164697573050000000000000080004007595261646975730500000000 + 000000800040000F54466C6F6174416E696D6174696F6E00095374796C654E61 + 6D65061A636865636B6D61726B4F706163697479416E696D6174696F6E310844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 074F7061636974790A537461727456616C756505000000000000000000000953 + 746F7056616C7565050000000000000080FF3F0754726967676572060E497343 + 6865636B65643D747275650E54726967676572496E7665727365060F49734368 + 65636B65643D66616C7365000000000005545465787400095374796C654E616D + 6506047465787405416C69676E0706436C69656E74064C6F636B656409074869 + 7454657374080A53697A652E57696474680500000000005655FB05400B53697A + 652E48656967687405000000000000008804401453697A652E506C6174666F72 + 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 + 0708636C6157686974650000005450463007544C61796F757400095374796C65 + 4E616D650617756C7269676874726164696F627574746F6E7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000005655FB05 + 400B53697A652E4865696768740500000000000000A004401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508085461624F72646572 + 022D0007544C61796F75740005416C69676E0706426F74746F6D0A506F736974 + 696F6E2E5905000000000000008804400A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F + 6E74656E747307436F726E6572730B08546F7052696768740B426F74746F6D52 + 69676874000A46696C6C2E436F6C6F720709784646323032303230064C6F636B + 6564090748697454657374080A53697A652E57696474680500000000005655FB + 05400B53697A652E4865696768740500000000000000C001401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 4631353135313507585261646975730500000000000000C00040075952616469 + 75730500000000000000C00040000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D6506216261636B67726F756E64556C427574746F6E436F6C + 6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F + 07496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C + 6F720A537461727456616C756507097846463230323032300953746F7056616C + 756507097846463430343034300754726967676572061049734D6F7573654F76 + 65723D747275650E54726967676572496E7665727365061149734D6F7573654F + 7665723D66616C736500000A5452656374616E676C6500095374796C654E616D + 650609636865636B6D61726B05416C69676E0708436F6E74656E747307436F72 + 6E6572730B08546F7052696768740B426F74746F6D5269676874000A46696C6C + 2E436F6C6F720709784646324138324532064C6F636B65640907486974546573 + 7408074F70616369747905000000000000000000000C4D617267696E732E4C65 + 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A53697A652E576964 + 74680500000000005655F705400B53697A652E48656967687405000000000000 + 008001401453697A652E506C6174666F726D44656661756C74080B5374726F6B 652E4B696E6407044E6F6E650758526164697573050000000000000080004007 - 595261646975730500000000000000800040000A5452656374616E676C650009 - 5374796C654E616D65060A76696E64696361746F7205416C69676E0706426F74 - 746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564 - 090748697454657374080A506F736974696F6E2E5905000000000099998D0440 - 0A53697A652E576964746805000000000033338505400B53697A652E48656967 - 68740500000000000000A803401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573050000 - 0000000000800040075952616469757305000000000000008000400000000054 - 50463007544C61796F757400095374796C654E616D65060E636F6D626F656469 - 747374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 00000000000000C805400B53697A652E4865696768740500000000000000C803 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F726465720233000C5442727573684F626A65637400095374796C65 - 4E616D65060A666F726567726F756E6400000B54466F6E744F626A6563740009 - 5374796C654E616D650604666F6E7409466F6E742E53697A6505000000000000 - 00D00240000007544C61796F757400095374796C654E616D65060A6261636B67 - 726F756E6405416C69676E0708436F6E74656E74730A53697A652E5769647468 - 0500000000000000C805400B53697A652E4865696768740500000000000000C8 - 03401453697A652E506C6174666F726D44656661756C7408000A545265637461 - 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 - 6E0706436C69656E740A46696C6C2E436F6C6F72070978464632303230323007 - 48697454657374080A53697A652E57696474680500000000000000C805400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646323032 - 30323007585261646975730500000000000000C0004007595261646975730500 + 595261646975730500000000000000800040000F54466C6F6174416E696D6174 + 696F6E00095374796C654E616D65061A636865636B6D61726B4F706163697479 + 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D6506074F7061636974790A537461727456616C756505 + 000000000000000000000953746F7056616C7565050000000000000080FF3F07 + 54726967676572060E4973436865636B65643D747275650E5472696767657249 + 6E7665727365060F4973436865636B65643D66616C7365000000000005545465 + 787400095374796C654E616D6506047465787405416C69676E0706436C69656E + 74064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 0000005655FB05400B53697A652E486569676874050000000000000088044014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E + 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C + 61796F757400095374796C654E616D650615616E69696E64696361746F72686F + 727A7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000040C006400B53697A652E486569676874050000000000000080 + 00401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F72646572023A000A5452656374616E676C6500095374796C654E + 616D65060A52656374616E676C653105416C69676E0706436C69656E740C436C + 69704368696C6472656E090A46696C6C2E436F6C6F7207097846463430343034 + 300A53697A652E57696474680500000000000040C006400B53697A652E486569 + 67687405000000000000008000401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 00000000000080FF3F0759526164697573050000000000000080FF3F0005544C + 696E6500095374796C654E616D6506054C696E6531084C696E65547970650706 + 426F74746F6D0A53697A652E57696474680500000000000000A00B400B53697A + 652E48656967687405000000000000008000401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463241383245 + 32105374726F6B652E546869636B6E65737305000000000000008002400A5374 + 726F6B652E4361700705526F756E640B5374726F6B652E446173680704446173 + 680B5374726F6B652E4A6F696E0705526F756E64000F54466C6F6174416E696D + 6174696F6E00095374796C654E616D650603616E6907456E61626C6564090844 + 75726174696F6E0500000000000000800340044C6F6F70090C50726F70657274 + 794E616D65060A506F736974696F6E2E580A537461727456616C756505000000 + 00000000C808C00953746F7056616C7565050000000000000000000007547269 + 67676572060E497356697369626C653D7472756500000000005450463007544C + 61796F757400095374796C654E616D65060E6C6F67627574746F6E7374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00C005400B53697A652E4865696768740500000000000000C005401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 + 6465720201000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0706436C69656E740C436C69704368696C64 + 72656E090A436C6970506172656E740907436F726E6572730B08546F70526967 + 68740B426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C005400B53697A652E4865696768740500000000000000C005401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6507585261646975730500000000000000C0004007595261646975730500 000000000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650614436F6C6F72416E696D6174696F6E315374796C650844757261 - 74696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274 - 794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75650709 - 7846463230323032300953746F7056616C756507097846463430343034300754 - 726967676572062049734D6F7573654F7665723D747275653B4973466F637573 - 65643D66616C73650E54726967676572496E7665727365062149734D6F757365 - 4F7665723D66616C73653B4973466F63757365643D66616C736500000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E - 696D6174696F6E325374796C65084475726174696F6E050000000000CDCCCCFB - 3F07496E7665727365090C50726F70657274794E616D65060C5374726F6B652E - 436F6C6F720A537461727456616C756507097846463430343034300953746F70 - 56616C756507097846463241383245320754726967676572061F49734D6F7573 + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206304973 + 4D6F7573654F7665723D747275653B4973507265737365643D66616C73653B49 + 73466F63757365643D66616C73650E54726967676572496E7665727365063149 + 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 + 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464631373537394307547269 + 67676572062F4973507265737365643D747275653B49734D6F7573654F766572 + 3D747275653B4973466F63757365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 + 6E696D6174696F6E33084475726174696F6E050000000000CDCCCCFB3F0C5072 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097846463241383245320953746F7056616C756507097846463137353739 + 430754726967676572062E4973507265737365643D747275653B49734D6F7573 654F7665723D747275653B4973466F63757365643D747275650E547269676765 - 72496E7665727365062049734D6F7573654F7665723D747275653B4973466F63 - 757365643D66616C7365000007544C61796F757400095374796C654E616D6506 - 056172726F7705416C69676E070846697452696768740B4D617267696E732E54 - 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 - 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F - 0A506F736974696F6E2E580500000000005ED99705400A506F736974696F6E2E - 59050000000000000080FF3F0A53697A652E5769647468050000000000889AB8 - 03400B53697A652E4865696768740500000000000000B803401453697A652E50 - 6C6174666F726D44656661756C7408000A5452656374616E676C650009537479 - 6C654E616D65060A52656374616E676C653105416C69676E0708436F6E74656E - 747307436F726E6572730B08546F7052696768740B426F74746F6D5269676874 - 000A46696C6C2E436F6C6F720709784646333033303330074869745465737408 - 0A53697A652E5769647468050000000000889AB803400B53697A652E48656967 - 68740500000000000000B803401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573050000 - 0000000000C0004007595261646975730500000000000000C00040000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E - 696D6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB - 3F07496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463330333033300953746F705661 - 6C756507097846463430343034300754726967676572062049734D6F7573654F - 7665723D747275653B4973466F63757365643D66616C73650E54726967676572 - 496E7665727365062149734D6F7573654F7665723D66616C73653B4973466F63 - 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65084475 - 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646343034303430 - 0953746F7056616C756507097846463137353739430754726967676572061F49 - 73466F63757365643D747275653B49734D6F7573654F7665723D747275650000 - 0007544C61796F757400095374796C654E616D6506074C61796F75743105416C - 69676E070643656E7465720C4D617267696E732E4C6566740500000000000000 - 80FF3F0A53697A652E57696474680500000000000000A002400B53697A652E48 - 65696768740500000000000000C001401453697A652E506C6174666F726D4465 - 6661756C74080005545061746800095374796C654E616D650605506174683105 - 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 - 000000000000C8420000C84201000000000096430000C8420100000000004843 - 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 - 57686974650748697454657374080A53697A652E576964746805000000000000 - 00A002400B53697A652E4865696768740500000000000000C001401453697A65 + 72496E7665727365062F4973507265737365643D66616C73653B49734D6F7573 + 654F7665723D747275653B4973466F63757365643D7472756500000554506174 + 6800095374796C654E616D650605506174683105416C69676E0706436C69656E + 7409446174612E506174680A5C02000032000000000000000000A841CDCCCC40 + 010000000000A8410000C041010000000000C03F0000C041010000000000C03F + 00000000010000009A99694100000000010000000000A841CDCCCC4003000000 + 0000A841CDCCCC400000000000009C410000F04001000000000058410000F040 + 01000000000058410000C03F01000000000040400000C03F0100000000004040 + 0000B4410100000000009C410000B4410100000000009C410000F04003000000 + 00009C410000F04000000000000040410000F04001000000000090400000F040 + 01000000000090400000C04001000000000040410000C0400100000000004041 + 0000F04003000000000040410000F04000000000000090400000104101000000 + 0000904100001041010000000000904100002841010000000000904000002841 + 0100000000009040000010410300000000009040000010410000000000009040 + 0000404101000000000090410000404101000000000090410000584101000000 + 0000904000005841010000000000904000004041030000000000904000004041 + 0000000000009040000070410100000000009041000070410100000000009041 + 0000844101000000000090400000844101000000000090400000704103000000 + 0000904000007041000000000000904000009041010000000000904100009041 + 010000000000904100009C41010000000000904000009C410100000000009040 + 0000904103000000000090400000904100000000000070410000C04001000000 + 333393410000C04001000000000070416666264001000000000070410000C040 + 03000000000070410000C0400A46696C6C2E436F6C6F720708636C6157686974 + 650748697454657374080C4D617267696E732E4C6566740500000000000000A0 + 02400B4D617267696E732E546F700500000000000000A002400D4D617267696E + 732E52696768740500000000000000A002400E4D617267696E732E426F74746F + 6D0500000000000000A002400A53697A652E5769647468050000000000000098 + 05400B53697A652E48656967687405000000000000009805401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6508577261704D6F64650703466974000000005450463007544C61796F757400 + 095374796C654E616D650613657870616E646572627574746F6E7374796C6505 + 416C69676E070643656E7465720B4D617267696E732E546F7005000000000000 + 0080FF3F0A53697A652E57696474680500000000000000B003400B53697A652E + 4865696768740500000000000000B003401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F7264657202340005545061 + 746800095374796C654E616D650605506174683105416C69676E070643656E74 + 657209446174612E506174680A3400000004000000000000000000C8420000C8 + 4201000000000096430000C842010000000000484300009643030000000000C8 + 420000C8420A46696C6C2E436F6C6F720708636C615768697465074869745465 + 7374080D526F746174696F6E416E676C650500000000000000B405400A53697A + 652E57696474680500000000000000A002400B53697A652E4865696768740500 + 000000000000C001401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 + 6F6E00095374796C654E616D650614466C6F6174416E696D6174696F6E315374 + 796C65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C + 6174696F6E070843697263756C61720C50726F70657274794E616D65060D526F + 746174696F6E416E676C650A537461727456616C75650500000000000000B405 + 400953746F7056616C756505000000000000000000000754726967676572060F + 4973457870616E6465643D747275650E54726967676572496E76657273650610 + 4973457870616E6465643D66616C7365000000005450463007544C61796F7574 + 00095374796C654E616D650615657870616E646572636865636B626F78737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 0000008406400B53697A652E4865696768740500000000000000840440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 + 4F7264657202360007544C61796F75740005416C69676E07044C6566740A5369 + 7A652E57696474680500000000000000C003400B53697A652E48656967687405 + 000000000000008404401453697A652E506C6174666F726D44656661756C7408 + 000554506174680005416C69676E0706436C69656E7409446174612E50617468 + 0AD80100002700000000000000FEC8BA4402E79244020000002592AD4402E792 + 44020000006D5BA544FEB09E44020000006D5BA544FEB09E440200000093A4A4 + 446A0C9F44020000004A80AC44FC79AA4402000000046EBA44FC79AA44020000 + 004A00C844FC79AA44020000000080CF44FEB09E44020000000080CF44FEB09E + 44020000000080CF44FEB09E44020000004C5BC84402E7924402000000FEC8BA + 4402E7924400000000FE88BA44FE30974402000000B876BF44FE309744020000 + 000277C344EEA09A44020000000277C34404DE9E44020000000277C344121BA3 + 4402000000B876BF44008CA64402000000FE88BA44008CA644020000004C9BB5 + 44008CA64402000000009CB144121BA34402000000009CB14404DE9E44020000 + 00009CB144EEA09A44020000004C9BB544FE30974402000000FE88BA44FE3097 + 44000000000080BA44045E9B4402000000146EB844045E9B440200000000C0B6 + 4454F79C440200000000C0B64400F09E440200000000C0B644ACE8A044020000 + 00146EB844FC81A244020000000080BA44FC81A24402000000EC91BC44FC81A2 + 44020000000040BE44ACE8A044020000000040BE4400F09E44020000000040BE + 4454F79C4402000000EC91BC44045E9B44020000000080BA44045E9B440A4669 + 6C6C2E436F6C6F7207097836303030303030300748697454657374080C4D6172 + 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 008000400E4D617267696E732E426F74746F6D05000000000000008000400A53 + 697A652E57696474680500000000000000A003400B53697A652E486569676874 + 0500000000000000E803401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 + 74000F54436F6C6F72416E696D6174696F6E00084475726174696F6E05000000 + 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097836303030303030300953746F7056616C7565 + 0708636C61426C61636B0754726967676572060E4973436865636B65643D7472 + 756500000F54436F6C6F72416E696D6174696F6E00084475726174696F6E0500 + 00000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C + 6F720A537461727456616C75650708636C61426C61636B0953746F7056616C75 + 6507097836303030303030300754726967676572060F4973436865636B65643D + 66616C73650000000005545465787400095374796C654E616D65060474657874 + 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080C + 4D617267696E732E4C65667405000000000000008002400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 0000000080FF3F0A53697A652E57696474680500000000000000C605400B5369 + 7A652E4865696768740500000000000000F803401453697A652E506C6174666F + 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F + 720709784646454545454545165465787453657474696E67732E486F727A416C + 69676E07074C656164696E670000005450463007544C61796F75740009537479 + 6C654E616D65060D657870616E6465727374796C6505416C69676E070643656E + 7465720A53697A652E576964746805000000000000C08607400B53697A652E48 + 65696768740500000000000000CE05401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F726465720237000A54526563 + 74616E676C6500095374796C654E616D65060B626772656374616E676C650541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463244 + 32443244064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000000C08607400B53697A652E4865696768740500000000000000CE + 05401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313507585261646975730500000000000000 + C0004007595261646975730500000000000000C000400007544C61796F757400 + 095374796C654E616D6506074C61796F75743305416C69676E0703546F700A53 + 697A652E576964746805000000000000C08607400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 080007544C61796F757400095374796C654E616D6506074C61796F7574340541 + 6C69676E0708436F6E74656E74730A53697A652E576964746805000000000000 + C08607400B53697A652E4865696768740500000000000000C803401453697A65 + 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 + 74796C654E616D65060A52656374616E676C653205416C69676E0708436F6E74 + 656E747307436F726E6572730B07546F704C65667408546F705269676874000A + 46696C6C2E436F6C6F720709784646323532353235064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000000C08607400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 3507585261646975730500000000000000C00040075952616469757305000000 + 00000000C0004000000A5452656374616E676C6500095374796C654E616D6506 + 0A52656374616E676C653105416C69676E0708436F6E74656E747307436F726E + 6572730B07546F704C65667408546F705269676874000A46696C6C2E436F6C6F + 720709784646313531353135064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000000C08607400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 + 0000C0004007595261646975730500000000000000C00040000F54466C6F6174 + 416E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D61 + 74696F6E315374796C65084475726174696F6E0500000000009A9999FD3F0D49 + 6E746572706F6C6174696F6E070843697263756C61720C50726F70657274794E + 616D6506075363616C652E580A537461727456616C7565050000000000000080 + FF3F0953746F7056616C75650500000000000000000000075472696767657206 + 0F4973457870616E6465643D747275650E54726967676572496E766572736506 + 104973457870616E6465643D66616C73650000000007544C61796F7574000953 + 74796C654E616D6506074C61796F75743305416C69676E0708436F6E74656E74 + 730A53697A652E576964746805000000000000C08607400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080005545465787400095374796C654E616D6506047465787405416C69 + 676E07044C656674084175746F53697A65090A436C6970506172656E7409064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 00000000A002400A506F736974696F6E2E580500000000000000A002400A5369 + 7A652E57696474680500000000000018D103400B53697A652E48656967687405 + 00000000000060FF02401453697A652E506C6174666F726D44656661756C7408 + 0454657874060454657874165465787453657474696E67732E466F6E74436F6C + 6F720708636C615768697465165465787453657474696E67732E486F727A416C + 69676E07074C656164696E670000000F54457870616E646572427574746F6E00 + 095374796C654E616D650606627574746F6E05416C69676E0705526967687406 + 4C6F636B6564090A506F736974696F6E2E580500000000000080F906400A5369 + 7A652E57696474680500000000000000A003400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 00000000005450463007544C61796F757400095374796C654E616D65060A7061 + 6E656C7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C006400B53697A652E4865696768740500000000000000 + A406401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720238000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0A46696C6C2E436F6C6F7207097846463230323032300A53697A652E57696474 + 680500000000000000C006400B53697A652E4865696768740500000000000000 + A406401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6507585261646975730500000000000000C000400759 + 5261646975730500000000000000C000400000005450463007544C61796F7574 + 00095374796C654E616D65061970726F67726573736261726D696E696572726F + 727374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 000000000033338505400B53697A652E4865696768740500000000009999E104 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F726465720239000A5452656374616E676C6500095374796C654E61 + 6D65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F720709784646343034303430064C6F636B6564090748697454657374 + 080A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 00000000000080004007595261646975730500000000000000800040000A5452 + 656374616E676C6500095374796C654E616D65060A68696E64696361746F7205 + 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846464532324132 + 41064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6507585261646975730500000000000000800040075952616469 + 757305000000000000008000400000000A5452656374616E676C650009537479 + 6C654E616D65060676747261636B05416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646343034303430064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469 + 7573050000000000000080004007595261646975730500000000000000800040 + 000A5452656374616E676C6500095374796C654E616D65060A76696E64696361 + 746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846 + 46453232413241064C6F636B6564090748697454657374080A506F736974696F + 6E2E5905000000000099998D04400A53697A652E576964746805000000000033 + 338505400B53697A652E4865696768740500000000000000A803401453697A65 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E650000000000000C5442727573684F626A65637400095374796C654E616D - 65060973656C656374696F6E0B42727573682E436F6C6F720709783936324138 - 324532000007544C61796F757400095374796C654E616D650607636F6E74656E - 7405416C69676E0706436C69656E740C4D617267696E732E4C65667405000000 - 000000008000400B4D617267696E732E546F7005000000000000008000400D4D - 617267696E732E52696768740500000000000000F003400E4D617267696E732E - 426F74746F6D05000000000000008000400A53697A652E576964746805000000 - 000000008805400B53697A652E4865696768740500000000000000A803401453 - 697A652E506C6174666F726D44656661756C74080000005450463007544C6179 - 6F757400095374796C654E616D6506106D656E756261726974656D7374796C65 - 05416C69676E070643656E7465720C4D617267696E732E4C6566740500000000 + 6F6E650758526164697573050000000000000080004007595261646975730500 + 000000000000800040000000005450463007544C61796F757400095374796C65 + 4E616D65061470726F67726573736261726D696E697374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000033338505400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572022F00 + 0A5452656374616E676C6500095374796C654E616D65060668747261636B0541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430 + 34303430064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000033338505400B53697A652E4865696768740500000000009999E1 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6507585261646975730500000000000000800040075952 + 61646975730500000000000000800040000A5452656374616E676C6500095374 + 796C654E616D65060A68696E64696361746F7205416C69676E07044C6566740A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000009999E104401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 + 6975730500000000000000800040075952616469757305000000000000008000 + 400000000A5452656374616E676C6500095374796C654E616D65060676747261 + 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646343034303430064C6F636B6564090748697454657374080A53697A652E57 + 6964746805000000000033338505400B53697A652E4865696768740500000000 + 009999E104401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65075852616469757305000000000000008000 + 4007595261646975730500000000000000800040000A5452656374616E676C65 + 00095374796C654E616D65060A76696E64696361746F7205416C69676E070642 + 6F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B + 6564090748697454657374080A506F736974696F6E2E5905000000000099998D + 04400A53697A652E576964746805000000000033338505400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 0000000000000080004007595261646975730500000000000000800040000000 + 005450463007544C61796F757400095374796C654E616D65060E636F6D626F65 + 6469747374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720233000C5442727573684F626A6563740009537479 + 6C654E616D65060A666F726567726F756E6400000B54466F6E744F626A656374 + 00095374796C654E616D650604666F6E7409466F6E742E53697A650500000000 + 000000D00240000007544C61796F757400095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E74730A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C + 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 + 303230323007585261646975730500000000000000C000400759526164697573 + 0500000000000000C00040000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65084475 + 726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065 + 7274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646343034303430 + 0754726967676572062049734D6F7573654F7665723D747275653B4973466F63 + 757365643D66616C73650E54726967676572496E7665727365062149734D6F75 + 73654F7665723D66616C73653B4973466F63757365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E325374796C65084475726174696F6E050000000000CDCC + CCFB3F07496E7665727365090C50726F70657274794E616D65060C5374726F6B + 652E436F6C6F720A537461727456616C75650709784646343034303430095374 + 6F7056616C756507097846463241383245320754726967676572061F49734D6F + 7573654F7665723D747275653B4973466F63757365643D747275650E54726967 + 676572496E7665727365062049734D6F7573654F7665723D747275653B497346 + 6F63757365643D66616C7365000007544C61796F757400095374796C654E616D + 6506056172726F7705416C69676E070846697452696768740B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A506F736974696F6E2E580500000000005ED99705400A506F736974696F + 6E2E59050000000000000080FF3F0A53697A652E576964746805000000000088 + 9AB803400B53697A652E4865696768740500000000000000B803401453697A65 + 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 + 74796C654E616D65060A52656374616E676C653105416C69676E0708436F6E74 + 656E747307436F726E6572730B08546F7052696768740B426F74746F6D526967 + 6874000A46696C6C2E436F6C6F72070978464633303330333007486974546573 + 74080A53697A652E5769647468050000000000889AB803400B53697A652E4865 + 696768740500000000000000B803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 00000000000000C0004007595261646975730500000000000000C00040000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E315374796C65084475726174696F6E050000000000CDCC + CCFB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463330333033300953746F70 + 56616C756507097846463430343034300754726967676572062049734D6F7573 + 654F7665723D747275653B4973466F63757365643D66616C73650E5472696767 + 6572496E7665727365062149734D6F7573654F7665723D66616C73653B497346 + 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464634303430 + 34300953746F7056616C75650709784646313735373943075472696767657206 + 1F4973466F63757365643D747275653B49734D6F7573654F7665723D74727565 + 00000007544C61796F757400095374796C654E616D6506074C61796F75743105 + 416C69676E070643656E7465720C4D617267696E732E4C656674050000000000 + 000080FF3F0A53697A652E57696474680500000000000000A002400B53697A65 + 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 44656661756C74080005545061746800095374796C654E616D65060550617468 + 3105416C69676E0706436C69656E7409446174612E506174680A340000000400 + 0000000000000000C8420000C84201000000000096430000C842010000000000 + 484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72070863 + 6C6157686974650748697454657374080A53697A652E57696474680500000000 + 000000A002400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E650000000000000C5442727573684F626A65637400095374796C654E + 616D65060973656C656374696F6E0B42727573682E436F6C6F72070978393632 + 4138324532000007544C61796F757400095374796C654E616D650607636F6E74 + 656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E52696768740500000000000000F003400E4D617267696E + 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 + 0000000000008805400B53697A652E4865696768740500000000000000A80340 + 1453697A652E506C6174666F726D44656661756C74080000005450463007544C + 61796F757400095374796C654E616D6506106D656E756261726974656D737479 + 6C6505416C69676E070643656E7465720C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 + 00000000009205400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F726465720225000A5452656374616E676C650005416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207486974 + 5465737408074F70616369747905000000000017B7D1F13F0A53697A652E5769 + 64746805000000000000009205400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008 + 4475726174696F6E05000000000018B7D1F23F0C50726F70657274794E616D65 + 06074F7061636974790A537461727456616C7565050000000000000000000009 + 53746F7056616C7565050000000000000080FF3F0754726967676572060F4973 + 53656C65637465643D747275650E54726967676572496E766572736506104973 + 53656C65637465643D66616C73650000000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 7408074F70616369747905000000000000000000000A53697A652E5769647468 + 05000000000000009205400B53697A652E4865696768740500000000000000D0 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572 + 6174696F6E05000000000018B7D1F23F07496E7665727365090C50726F706572 + 74794E616D6506074F7061636974790A537461727456616C7565050000000000 + 00000000000953746F7056616C7565050000000000000080FF3F075472696767 + 6572061049734D6F7573654F7665723D747275650E54726967676572496E7665 + 727365061149734D6F7573654F7665723D66616C736500000007544C61796F75 + 7400095374796C654E616D650605676C79706805416C69676E07044C6566740A + 53697A652E57696474680500000000000000C803400B53697A652E4865696768 + 740500000000000000D003401453697A652E506C6174666F726D44656661756C + 74080007544C61796F757400095374796C654E616D650609636865636B6D6172 + 6B05416C69676E0708436F6E74656E7473074F7061636974790500000000006F + 1283F53F0A53697A652E57696474680500000000000000C803400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C7408000554506174680005416C69676E070643656E746572094461 + 74612E506174680A58000000070000000000000056D9524391AE2C4301000000 + 9276664365021643010000009F3983432B7C3C43010000009E9AA64382D2B442 + 010000006F1CB04375A4D1420100000026DF8243263F67430300000056D95243 + 91AE2C430A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080A53697A652E57696474680500000000000000B002400B53697A652E4865 + 696768740500000000000000B002401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174 + 416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D6506074F7061636974790A537461727456616C756505 + 000000000000000000000953746F7056616C7565050000000000000080FF3F07 + 54726967676572060E4973436865636B65643D747275650E5472696767657249 + 6E7665727365060F4973436865636B65643D66616C73650000000654476C7970 + 6800095374796C654E616D65060A676C7970687374796C650C4D617267696E73 + 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 + 000000008000400D4D617267696E732E52696768740500000000000000C00040 + 0E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69676E + 070552696768740A506F736974696F6E2E580500000000000000C001400A506F + 736974696F6E2E5905000000000000008000400A53697A652E57696474680500 + 0000000000008003400B53697A652E4865696768740500000000000000B80340 + 1453697A652E506C6174666F726D44656661756C740800000654496D61676500 + 095374796C654E616D6506066269746D61700E4D756C74695265734269746D61 + 700E01000005416C69676E0708436F6E74656E74730C4D617267696E732E4C65 + 667405000000000000008000400B4D617267696E732E546F7005000000000000 + 008000400D4D617267696E732E526967687405000000000000008000400E4D61 + 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 + 74680500000000000000A803400B53697A652E48656967687405000000000000 + 00B003401453697A652E506C6174666F726D44656661756C7408000000055454 + 65787400095374796C654E616D6506047465787405416C69676E07044C656674 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 0000000000008002400D4D617267696E732E5269676874050000000000000080 + 02400A506F736974696F6E2E5805000000000000008404400A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 + 7453657474696E67732E486F727A416C69676E07074C656164696E6700000554 + 5465787400095374796C654E616D65060873686F727463757405416C69676E07 + 055269676874064C6F636B6564090748697454657374080C4D617267696E732E + 4C6566740500000000000000C002400D4D617267696E732E5269676874050000 + 0000000000C001400A506F736974696F6E2E580500000000000000C000C00A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 + 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 7465165465787453657474696E67732E486F727A416C69676E07074C65616469 + 6E67000007544C61796F757400095374796C654E616D6506077375626D61726B + 05416C69676E070552696768740A506F736974696F6E2E580500000000000000 + D404400A53697A652E57696474680500000000000000A003400B53697A652E48 + 65696768740500000000000000D003401453697A652E506C6174666F726D4465 + 6661756C7408000554506174680005416C69676E070643656E74657209446174 + 612E506174680A34000000040000000000000000000000000000000100000000 + 0000000000803F010000000000803F0000003F0300000000000000000000000A + 46696C6C2E436F6C6F720708636C615768697465064C6F636B65640907486974 + 54657374080A53697A652E57696474680500000000000000E001400B53697A65 + 2E48656967687405000000000000008002401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450 + 46300A5452656374616E676C6500095374796C654E616D65060C6D656E756261 + 727374796C6505416C69676E070643656E7465720C436C69704368696C647265 + 6E090946696C6C2E4B696E6407044E6F6E650748697454657374080A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650756697369626C650807585261646975 + 730500000000000000C0004007595261646975730500000000000000C0004000 + 0A5452656374616E676C650005416C69676E0706436C69656E740A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080C4D617267696E + 732E4C656674050000000000000080FFBF0B4D617267696E732E546F70050000 + 000000000080FFBF0D4D617267696E732E5269676874050000000000000080FF + BF0A53697A652E57696474680500000000000000D004400B53697A652E486569 + 6768740500000000000000CC04401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313507585261 + 646975730500000000000000C0004007595261646975730500000000000000C0 + 0040000007544C61796F757400095374796C654E616D650607636F6E74656E74 + 05416C69676E0706436C69656E740C4D617267696E732E4C6566740500000000 00000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 6F74746F6D050000000000000080FF3F0A53697A652E57696474680500000000 - 0000009205400B53697A652E4865696768740500000000000000D00340145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F726465720225000A5452656374616E676C650005416C69676E0708436F6E74 - 656E74730A46696C6C2E436F6C6F720709784646324138324532074869745465 - 737408074F70616369747905000000000017B7D1F13F0A53697A652E57696474 - 6805000000000000009205400B53697A652E4865696768740500000000000000 - D003401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00084475 - 726174696F6E05000000000018B7D1F23F0C50726F70657274794E616D650607 - 4F7061636974790A537461727456616C75650500000000000000000000095374 - 6F7056616C7565050000000000000080FF3F0754726967676572060F49735365 - 6C65637465643D747275650E54726967676572496E7665727365061049735365 - 6C65637465643D66616C73650000000A5452656374616E676C6500095374796C - 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 - 730A46696C6C2E436F6C6F720709784646324138324532074869745465737408 - 074F70616369747905000000000000000000000A53697A652E57696474680500 - 0000000000009205400B53697A652E4865696768740500000000000000D00340 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174 - 696F6E05000000000018B7D1F23F07496E7665727365090C50726F7065727479 - 4E616D6506074F7061636974790A537461727456616C75650500000000000000 - 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 - 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 - 65061149734D6F7573654F7665723D66616C736500000007544C61796F757400 - 095374796C654E616D650605676C79706805416C69676E07044C6566740A5369 - 7A652E57696474680500000000000000C803400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 0007544C61796F757400095374796C654E616D650609636865636B6D61726B05 - 416C69676E0708436F6E74656E7473074F7061636974790500000000006F1283 - F53F0A53697A652E57696474680500000000000000C803400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C7408000554506174680005416C69676E070643656E7465720944617461 - 2E506174680A58000000070000000000000056D9524391AE2C43010000009276 - 664365021643010000009F3983432B7C3C43010000009E9AA64382D2B4420100 - 00006F1CB04375A4D1420100000026DF8243263F67430300000056D9524391AE - 2C430A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0A53697A652E57696474680500000000000000B002400B53697A652E48656967 - 68740500000000000000B002401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E - 696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D6506074F7061636974790A537461727456616C7565050000 - 00000000000000000953746F7056616C7565050000000000000080FF3F075472 - 6967676572060E4973436865636B65643D747275650E54726967676572496E76 - 65727365060F4973436865636B65643D66616C73650000000654476C79706800 - 095374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C - 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E52696768740500000000000000C000400E4D - 617267696E732E426F74746F6D050000000000000080FF3F05416C69676E0705 - 52696768740A506F736974696F6E2E580500000000000000C001400A506F7369 - 74696F6E2E5905000000000000008000400A53697A652E576964746805000000 - 000000008003400B53697A652E4865696768740500000000000000B803401453 - 697A652E506C6174666F726D44656661756C740800000654496D616765000953 - 74796C654E616D6506066269746D61700E4D756C74695265734269746D61700E - 01000005416C69676E0708436F6E74656E74730C4D617267696E732E4C656674 - 05000000000000008000400B4D617267696E732E546F70050000000000000080 - 00400D4D617267696E732E526967687405000000000000008000400E4D617267 - 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 - 0500000000000000A803400B53697A652E4865696768740500000000000000B0 - 03401453697A652E506C6174666F726D44656661756C74080000000554546578 - 7400095374796C654E616D6506047465787405416C69676E07044C656674064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 000000008002400D4D617267696E732E52696768740500000000000000800240 - 0A506F736974696F6E2E5805000000000000008404400A53697A652E57696474 - 680500000000000000C804400B53697A652E4865696768740500000000000000 - D003401453697A652E506C6174666F726D44656661756C740816546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 - 657474696E67732E486F727A416C69676E07074C656164696E67000005545465 - 787400095374796C654E616D65060873686F727463757405416C69676E070552 - 69676874064C6F636B6564090748697454657374080C4D617267696E732E4C65 - 66740500000000000000C002400D4D617267696E732E52696768740500000000 - 000000C001400A506F736974696F6E2E580500000000000000C000C00A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C740816 - 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 - 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 - 000007544C61796F757400095374796C654E616D6506077375626D61726B0541 - 6C69676E070552696768740A506F736974696F6E2E580500000000000000D404 - 400A53697A652E57696474680500000000000000A003400B53697A652E486569 - 6768740500000000000000D003401453697A652E506C6174666F726D44656661 - 756C7408000554506174680005416C69676E070643656E74657209446174612E - 506174680A340000000400000000000000000000000000000001000000000000 - 000000803F010000000000803F0000003F0300000000000000000000000A4669 - 6C6C2E436F6C6F720708636C615768697465064C6F636B656409074869745465 - 7374080A53697A652E57696474680500000000000000E001400B53697A652E48 - 656967687405000000000000008002401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054504630 - 0A5452656374616E676C6500095374796C654E616D65060C6D656E7562617273 - 74796C6505416C69676E070643656E7465720C436C69704368696C6472656E09 - 0946696C6C2E4B696E6407044E6F6E650748697454657374080A53697A652E57 + 000000C004400B53697A652E4865696768740500000000000000C00440145369 + 7A652E506C6174666F726D44656661756C74080000005450463007544C61796F + 757400095374796C654E616D65060D6D656E756974656D7374796C6505416C69 + 676E070643656E7465720C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 720226000A5452656374616E676C650005416C69676E0708436F6E74656E7473 + 0A46696C6C2E436F6C6F72070978464632413832453207486974546573740807 + 4F70616369747905000000000017B7D1F13F0A53697A652E5769647468050000 + 00000000009205400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572617469 + 6F6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F706163 + 6974790A537461727456616C756505000000000000000000000953746F705661 + 6C7565050000000000000080FF3F0754726967676572060F497353656C656374 + 65643D747275650E54726967676572496E76657273650610497353656C656374 + 65643D66616C73650000000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646324138324532074869745465737408074F7061 + 6369747905000000000000000000000A53697A652E5769647468050000000000 + 00009205400B53697A652E4865696768740500000000000000D003401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E05 + 000000000018B7D1F23F07496E7665727365090C50726F70657274794E616D65 + 06074F7061636974790A537461727456616C7565050000000000000000000009 + 53746F7056616C7565050000000000000080FF3F075472696767657206104973 + 4D6F7573654F7665723D747275650E54726967676572496E7665727365061149 + 734D6F7573654F7665723D66616C736500000007544C61796F75740009537479 + 6C654E616D650605676C79706805416C69676E07044C6566740A53697A652E57 + 696474680500000000000000C803400B53697A652E4865696768740500000000 + 000000D003401453697A652E506C6174666F726D44656661756C74080007544C + 61796F757400095374796C654E616D650609636865636B6D61726B05416C6967 + 6E0708436F6E74656E7473074F7061636974790500000000006F1283F53F0A53 + 697A652E57696474680500000000000000C803400B53697A652E486569676874 + 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 + 08000554506174680005416C69676E070643656E74657209446174612E506174 + 680A58000000070000000000000056D9524391AE2C4301000000927666436502 + 1643010000009F3983432B7C3C43010000009E9AA64382D2B442010000006F1C + B04375A4D1420100000026DF8243263F67430300000056D9524391AE2C430A46 + 696C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A + 652E57696474680500000000000000B002400B53697A652E4865696768740500 + 000000000000B002401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D6174 + 696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 + 794E616D6506074F7061636974790A537461727456616C756505000000000000 + 000000000953746F7056616C7565050000000000000080FF3F07547269676765 + 72060E4973436865636B65643D747275650E54726967676572496E7665727365 + 060F4973436865636B65643D66616C73650000000654476C7970680009537479 + 6C654E616D65060A676C7970687374796C650C4D617267696E732E4C65667405 + 0000000000000080FF3F0B4D617267696E732E546F7005000000000000008000 + 400D4D617267696E732E52696768740500000000000000C000400E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F05416C69676E07044C656674 + 0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E + 5905000000000000008000400A53697A652E5769647468050000000000000080 + 03400B53697A652E4865696768740500000000000000B803401453697A652E50 + 6C6174666F726D44656661756C740800000654496D61676500095374796C654E + 616D6506066269746D61700E4D756C74695265734269746D61700E0100000541 + 6C69676E07044C6566740C4D617267696E732E4C656674050000000000000080 + 00400B4D617267696E732E546F7005000000000000008000400D4D617267696E + 732E526967687405000000000000008000400E4D617267696E732E426F74746F + 6D05000000000000008000400A506F736974696F6E2E58050000000000000080 + 00400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 + 6474680500000000000000A803400B53697A652E486569676874050000000000 + 0000B003401453697A652E506C6174666F726D44656661756C74080000000554 + 5465787400095374796C654E616D6506047465787405416C69676E07044C6566 + 74064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 + 000000000000008002400D4D617267696E732E52696768740500000000000000 + 8002400A506F736974696F6E2E5805000000000000008404400A53697A652E57 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E650756697369626C6508075852616469757305 - 00000000000000C0004007595261646975730500000000000000C00040000A54 - 52656374616E676C650005416C69676E0706436C69656E740A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080C4D617267696E732E - 4C656674050000000000000080FFBF0B4D617267696E732E546F700500000000 - 00000080FFBF0D4D617267696E732E5269676874050000000000000080FFBF0A - 53697A652E57696474680500000000000000D004400B53697A652E4865696768 - 740500000000000000CC04401453697A652E506C6174666F726D44656661756C - 74080C5374726F6B652E436F6C6F720709784646313531353135075852616469 - 75730500000000000000C0004007595261646975730500000000000000C00040 - 000007544C61796F757400095374796C654E616D650607636F6E74656E740541 - 6C69676E0706436C69656E740C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 - 00C004400B53697A652E4865696768740500000000000000C004401453697A65 - 2E506C6174666F726D44656661756C74080000005450463007544C61796F7574 - 00095374796C654E616D65060D6D656E756974656D7374796C6505416C69676E - 070643656E7465720C4D617267696E732E4C656674050000000000000080FF3F - 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E - 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F0A53697A652E57696474680500000000000000920540 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 26000A5452656374616E676C650005416C69676E0708436F6E74656E74730A46 - 696C6C2E436F6C6F720709784646324138324532074869745465737408074F70 - 616369747905000000000017B7D1F13F0A53697A652E57696474680500000000 - 0000009205400B53697A652E4865696768740500000000000000D00340145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E - 05000000000018B7D1F23F0C50726F70657274794E616D6506074F7061636974 - 790A537461727456616C756505000000000000000000000953746F7056616C75 - 65050000000000000080FF3F0754726967676572060F497353656C6563746564 - 3D747275650E54726967676572496E76657273650610497353656C6563746564 - 3D66616C73650000000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646324138324532074869745465737408074F70616369 - 747905000000000000000000000A53697A652E57696474680500000000000000 - 9205400B53697A652E4865696768740500000000000000D003401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E050000 - 00000018B7D1F23F07496E7665727365090C50726F70657274794E616D650607 - 4F7061636974790A537461727456616C75650500000000000000000000095374 - 6F7056616C7565050000000000000080FF3F0754726967676572061049734D6F - 7573654F7665723D747275650E54726967676572496E7665727365061149734D - 6F7573654F7665723D66616C736500000007544C61796F757400095374796C65 - 4E616D650605676C79706805416C69676E07044C6566740A53697A652E576964 - 74680500000000000000C803400B53697A652E48656967687405000000000000 - 00D003401453697A652E506C6174666F726D44656661756C74080007544C6179 - 6F757400095374796C654E616D650609636865636B6D61726B05416C69676E07 - 08436F6E74656E7473074F7061636974790500000000006F1283F53F0A53697A - 652E57696474680500000000000000C803400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C740800 - 0554506174680005416C69676E070643656E74657209446174612E506174680A - 58000000070000000000000056D9524391AE2C43010000009276664365021643 - 010000009F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB043 - 75A4D1420100000026DF8243263F67430300000056D9524391AE2C430A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080A53697A652E - 57696474680500000000000000B002400B53697A652E48656967687405000000 - 00000000B002401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D6174696F - 6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E - 616D6506074F7061636974790A537461727456616C7565050000000000000000 - 00000953746F7056616C7565050000000000000080FF3F075472696767657206 - 0E4973436865636B65643D747275650E54726967676572496E7665727365060F - 4973436865636B65643D66616C73650000000654476C79706800095374796C65 - 4E616D65060A676C7970687374796C650C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E52696768740500000000000000C000400E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F05416C69676E07044C6566740A50 - 6F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905 - 000000000000008000400A53697A652E57696474680500000000000000800340 - 0B53697A652E4865696768740500000000000000B803401453697A652E506C61 - 74666F726D44656661756C740800000654496D61676500095374796C654E616D - 6506066269746D61700E4D756C74695265734269746D61700E01000005416C69 - 676E07044C6566740C4D617267696E732E4C6566740500000000000000800040 - 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 - 000000000000008000400A506F736974696F6E2E580500000000000000B00340 - 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 - 680500000000000000A803400B53697A652E4865696768740500000000000000 - B003401453697A652E506C6174666F726D44656661756C740800000005545465 - 787400095374796C654E616D6506047465787405416C69676E07044C65667406 - 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 - 00000000008002400D4D617267696E732E526967687405000000000000008002 - 400A506F736974696F6E2E5805000000000000008404400A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00D003401453697A652E506C6174666F726D44656661756C7408165465787453 - 657474696E67732E466F6E74436F6C6F720708636C6157686974651654657874 - 53657474696E67732E486F727A416C69676E07074C656164696E670000055454 - 65787400095374796C654E616D65060873686F727463757405416C69676E0705 - 5269676874064C6F636B6564090748697454657374080C4D617267696E732E4C - 6566740500000000000000C002400D4D617267696E732E526967687405000000 - 00000000C001400A506F736974696F6E2E580500000000000000C000C00A5369 - 7A652E57696474680500000000000000C804400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 000000D003401453697A652E506C6174666F726D44656661756C740816546578 + 7453657474696E67732E466F6E74436F6C6F720708636C615768697465165465 + 787453657474696E67732E486F727A416C69676E07074C656164696E67000005 + 545465787400095374796C654E616D65060873686F727463757405416C69676E + 07055269676874064C6F636B6564090748697454657374080C4D617267696E73 + 2E4C6566740500000000000000C002400D4D617267696E732E52696768740500 + 000000000000C001400A506F736974696F6E2E580500000000000000C000C00A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000D003401453697A652E506C6174666F726D44656661756C + 7408165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 697465165465787453657474696E67732E486F727A416C69676E07074C656164 + 696E67000007544C61796F757400095374796C654E616D6506077375626D6172 + 6B05416C69676E070552696768740A506F736974696F6E2E5805000000000000 + 00D404400A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C7408000554506174680005416C69676E070643656E746572094461 + 74612E506174680A340000000400000000000000000000000000000001000000 + 000000000000803F010000000000803F0000003F030000000000000000000000 + 0A46696C6C2E436F6C6F720708636C615768697465064C6F636B656409074869 + 7454657374080A53697A652E57696474680500000000000000E001400B53697A + 652E48656967687405000000000000008002401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054 + 50463007544C61796F757400095374796C654E616D6506126D656E7573657061 + 7261746F727374796C6505416C69676E070643656E7465720C4D617267696E73 + 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 + 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F + 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F7264657202270005544C696E650005416C69676E07 + 03546F70084C696E65547970650703546F700C4D617267696E732E4C65667405 + 00000000000000C000400B4D617267696E732E546F7005000000000000008000 + 400D4D617267696E732E52696768740500000000000000C000400A506F736974 + 696F6E2E580500000000000000C000400A506F736974696F6E2E590500000000 + 0000008000400A53697A652E57696474680500000000000000B004400B53697A + 652E486569676874050000000000000080FF3F1453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000000545046300A5452656374616E676C6500095374796C654E616D65060D + 6D656E75766965777374796C6505416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463230323032300A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350756697369626C65080758526164697573050000 + 0000000000C0004007595261646975730500000000000000C00040000A545265 + 6374616E676C650005416C69676E0706436C69656E740A46696C6C2E436F6C6F + 7207097846463230323032300748697454657374080A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313507585261646975730500000000000000 + C0004007595261646975730500000000000000C00040000D54536861646F7745 + 6666656374000844697374616E63650500000000000000C00040094469726563 + 74696F6E0500000000000000B4054008536F66746E6573730500000000000000 + 80FE3F074F706163697479050000000000000080FE3F0B536861646F77436F6C + 6F720708636C61426C61636B00000007544C61796F757400095374796C654E61 + 6D650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E + 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 + 2E57696474680500000000000000C004400B53697A652E486569676874050000 + 0000000000C004401453697A652E506C6174666F726D44656661756C74080000 + 005450463007544C61796F757400095374796C654E616D65061B747265657669 + 6577657870616E646572627574746F6E7374796C6505416C69676E070643656E + 7465720B4D617267696E732E546F70050000000000000080FF3F0A53697A652E + 57696474680500000000000000B003400B53697A652E48656967687405000000 + 00000000B003401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F72646572023E0005545061746800095374796C654E + 616D650605506174683105416C69676E070643656E74657209446174612E5061 + 74680A3400000004000000000000000000C8420000C842010000000000964300 + 00C842010000000000484300009643030000000000C8420000C8420A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080D526F74617469 + 6F6E416E676C650500000000000000B405C00A53697A652E5769647468050000 + 0000000000A002400B53697A652E4865696768740500000000000000C0014014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E + 616D650614466C6F6174416E696D6174696F6E315374796C6508447572617469 + 6F6E05000000000000000000000D496E746572706F6C6174696F6E0708436972 + 63756C61720C50726F70657274794E616D65060D526F746174696F6E416E676C + 650A537461727456616C75650500000000000000B405C00953746F7056616C75 + 6505000000000000000000000754726967676572060F4973457870616E646564 + 3D747275650E54726967676572496E766572736506104973457870616E646564 + 3D66616C736500000000545046300A5452656374616E676C6500095374796C65 + 4E616D65061174726565766965776974656D7374796C6505416C69676E070643 + 656E7465720946696C6C2E4B696E6407044E6F6E650748697454657374080553 + 696465730B06426F74746F6D000A53697A652E57696474680500000000000000 + AE05400B53697A652E4865696768740500000000000000A004401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 46463135313531350B5374726F6B652E4A6F696E0705526F756E640756697369 + 626C6508000C545370656564427574746F6E00095374796C654E616D65060662 + 7574746F6E05416C69676E07044C6566740A53697A652E576964746805000000 + 00000000A003400B53697A652E4865696768740500000000000000A004401453 + 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 + 061B7472656576696577657870616E646572627574746F6E7374796C65000007 + 544C61796F75740005416C69676E0708436F6E74656E74730C4D617267696E73 + 2E4C6566740500000000000000A003400A53697A652E57696474680500000000 + 0000008605400B53697A652E4865696768740500000000000000A00440145369 + 7A652E506C6174666F726D44656661756C7408000954436865636B426F780009 + 5374796C654E616D650605636865636B05416C69676E07044C6566740843616E + 466F637573081244697361626C65466F637573456666656374090A53697A652E + 57696474680500000000000000A003400B53697A652E48656967687405000000 + 00000000A004401453697A652E506C6174666F726D44656661756C7408000006 + 54476C79706800095374796C654E616D65060A676C7970687374796C650C4D61 + 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 00008000400E4D617267696E732E426F74746F6D050000000000000080FF3F05 + 416C69676E07044C6566740A506F736974696F6E2E580500000000000000B003 + 400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E576964 + 746805000000000000008003400B53697A652E48656967687405000000000000 + 009804401453697A652E506C6174666F726D44656661756C7408000005545465 + 787400095374796C654E616D6506047465787405416C69676E0706436C69656E + 74064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 0000000000BC04400B53697A652E4865696768740500000000000000A0044014 + 53697A652E506C6174666F726D44656661756C74080454657874060454657874 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 65165465787453657474696E67732E486F727A416C69676E07074C656164696E - 67000007544C61796F757400095374796C654E616D6506077375626D61726B05 - 416C69676E070552696768740A506F736974696F6E2E580500000000000000D4 - 04400A53697A652E57696474680500000000000000A003400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C7408000554506174680005416C69676E070643656E7465720944617461 - 2E506174680A3400000004000000000000000000000000000000010000000000 - 00000000803F010000000000803F0000003F0300000000000000000000000A46 - 696C6C2E436F6C6F720708636C615768697465064C6F636B6564090748697454 - 657374080A53697A652E57696474680500000000000000E001400B53697A652E - 48656967687405000000000000008002401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046 - 3007544C61796F757400095374796C654E616D6506126D656E75736570617261 - 746F727374796C6505416C69676E070643656E7465720C4D617267696E732E4C + 65155465787453657474696E67732E576F726457726170081654657874536574 + 74696E67732E486F727A416C69676E07074C656164696E670000000A54526563 + 74616E676C650005416C69676E0708436F6E74656E74730946696C6C2E4B696E + 6407044E6F6E650748697454657374080E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F0553696465730B044C656674000A53697A652E576964 + 74680500000000000000AE05400B53697A652E48656967687405000000000000 + 009C04401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F720709784646324138324532105374726F6B652E546869636B6E + 65737305000000000000008000400000005450463007544C61796F7574000953 + 74796C654E616D65060D74726565766965777374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000000000E106400B53697A65 + 2E48656967687405000000000000808107401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F726465720240000C5442 + 727573684F626A65637400095374796C654E616D650618416C7465726E617469 + 6E67526F774261636B67726F756E640B42727573682E436F6C6F720709783046 + 46464646464600000A5452656374616E676C6500095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 + 080C50616464696E672E4C656674050000000000000080FF3F0D50616464696E + 672E5269676874050000000000000080FF3F0A53697A652E5769647468050000 + 0000000000E106400B53697A652E486569676874050000000000008081074014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F7207097846463135313531350007544C61796F757400095374796C654E616D + 650607636F6E74656E7405416C69676E0706436C69656E740C436C6970436869 + 6C6472656E090B4D617267696E732E546F70050000000000000080FF3F0A5369 + 7A652E57696474680500000000000000CD06400B53697A652E48656967687405 + 00000000000000F006401453697A652E506C6174666F726D44656661756C7408 + 000A5452656374616E676C6500095374796C654E616D65060973656C65637469 + 6F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 000000000000C0004007595261646975730500000000000000C0004000000A54 + 52656374616E676C6500095374796C654E616D650610666F637573656473656C + 656374696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974 + 54657374080A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B + 652E446173680703446F7407585261646975730500000000000000C000400759 + 5261646975730500000000000000C000400000000A545363726F6C6C42617200 + 095374796C654E616D65060A767363726F6C6C62617205416C69676E07055269 + 6768740B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E0708566572746963616C0C4D617267696E732E4C656674050000 + 00000000008000400A506F736974696F6E2E580500000000000000D006400A53 + 697A652E576964746805000000000000008003400B53697A652E486569676874 + 0500000000000000F106401453697A652E506C6174666F726D44656661756C74 + 0800000A545363726F6C6C42617200095374796C654E616D65060A687363726F + 6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505 + 000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74 + 616C0B4D617267696E732E546F7005000000000000008000400A506F73697469 + 6F6E2E58050000000000000080FF3F0A506F736974696F6E2E59050000000000 + 0000F306400A53697A652E57696474680500000000000000DF06400B53697A65 + 2E48656967687405000000000000008003401453697A652E506C6174666F726D + 44656661756C740800000F54536D616C6C5363726F6C6C42617200095374796C + 654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E07055269 + 6768740B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E0708566572746963616C0C4D617267696E732E4C656674050000 + 00000000008000400A506F736974696F6E2E580500000000000000C605400A50 + 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 + 000000000000008002400B53697A652E48656967687405000000000000008002 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 00000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F68 + 736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D61 + 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 + 0A486F72697A6F6E74616C0B4D617267696E732E546F70050000000000000080 + 00400A506F736974696F6E2E5805000000000000008000400A506F736974696F + 6E2E590500000000000000E205400A53697A652E576964746805000000000000 + 009606400B53697A652E48656967687405000000000000008002401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508000000005450 + 463007544C61796F757400095374796C654E616D65061670726F677265737362 + 617266696E6973687374796C6505416C69676E070643656E7465720A53697A65 + 2E576964746805000000000033338505400B53697A652E486569676874050000 + 0000009999E104401453697A652E506C6174666F726D44656661756C74080854 + 61624F72646572023F000A5452656374616E676C6500095374796C654E616D65 + 060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646323032303230064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000033338505400B53697A652E4865696768 + 740500000000009999E104401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135075852616469 + 75730500000000000000C0004007595261646975730500000000000000C00040 + 000A5452656374616E676C6500095374796C654E616D65060A68696E64696361 + 746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632 + 4345323434064C6F636B6564090748697454657374080C4D617267696E732E4C 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000C804401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F7264657202270005544C696E650005416C69676E070354 - 6F70084C696E65547970650703546F700C4D617267696E732E4C656674050000 - 0000000000C000400B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E52696768740500000000000000C000400A506F736974696F - 6E2E580500000000000000C000400A506F736974696F6E2E5905000000000000 - 008000400A53697A652E57696474680500000000000000B004400B53697A652E - 486569676874050000000000000080FF3F1453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 0000545046300A5452656374616E676C6500095374796C654E616D65060D6D65 - 6E75766965777374796C6505416C69676E070643656E7465720A46696C6C2E43 - 6F6C6F7207097846463230323032300A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C804401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 097846463135313531350756697369626C650807585261646975730500000000 - 000000C0004007595261646975730500000000000000C00040000A5452656374 - 616E676C650005416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80440 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F72070978464631353135313507585261646975730500000000000000C000 - 4007595261646975730500000000000000C00040000D54536861646F77456666 - 656374000844697374616E63650500000000000000C000400944697265637469 - 6F6E0500000000000000B4054008536F66746E657373050000000000000080FE - 3F074F706163697479050000000000000080FE3F0B536861646F77436F6C6F72 - 0708636C61426C61636B00000007544C61796F757400095374796C654E616D65 - 0607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E - 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 - 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E - 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 - 696474680500000000000000C004400B53697A652E4865696768740500000000 - 000000C004401453697A652E506C6174666F726D44656661756C7408000000} + 617267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F + 6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000000000 + 0080FF3F0A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000009999D904401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975 + 730500000000000000C0004007595261646975730500000000000000C0004000 + 00000A5452656374616E676C6500095374796C654E616D65060676747261636B + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 323032303230064C6F636B6564090748697454657374080A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000099 + 99E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350758526164697573050000000000 + 0000C0004007595261646975730500000000000000C00040000A545265637461 + 6E676C6500095374796C654E616D65060A76696E64696361746F7205416C6967 + 6E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632434532343406 + 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000 + 000000000080FF3F0A506F736974696F6E2E5905000000000099998904400A53 + 697A652E576964746805000000000033338105400B53697A652E486569676874 + 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500000000 + 000000C0004007595261646975730500000000000000C0004000000000545046 + 3007544C61796F757400095374796C654E616D65061A70726F67726573736261 + 726D696E6966696E6973687374796C6505416C69676E070643656E7465720A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 08085461624F72646572024A000A5452656374616E676C6500095374796C654E + 616D65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646343034303430064C6F636B65640907486974546573 + 74080A53697A652E576964746805000000000033338505400B53697A652E4865 + 696768740500000000009999E104401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 0000000000000080004007595261646975730500000000000000800040000A54 + 52656374616E676C6500095374796C654E616D65060A68696E64696361746F72 + 05416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632434532 + 3434064C6F636B6564090748697454657374080A53697A652E57696474680500 + 000000000000C804400B53697A652E4865696768740500000000009999E10440 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65075852616469757305000000000000008000400759526164 + 69757305000000000000008000400000000A5452656374616E676C6500095374 + 796C654E616D65060676747261636B05416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646343034303430064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000033338505400B53697A + 652E4865696768740500000000009999E104401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 + 6975730500000000000000800040075952616469757305000000000000008000 + 40000A5452656374616E676C6500095374796C654E616D65060A76696E646963 + 61746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978 + 4646324345323434064C6F636B6564090748697454657374080A506F73697469 + 6F6E2E5905000000000099998D04400A53697A652E5769647468050000000000 + 33338505400B53697A652E4865696768740500000000000000A803401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6507585261646975730500000000000000800040075952616469757305 + 0000000000000080004000000000} end> Left = 64 Top = 96 @@ -17853,499 +18263,40 @@ object MainForm: TMainForm PNG = { 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 3D8749444154785EED9D07B82C559546311025235144502483620E2862401447 - C43CA0605614C5808E39674505D3987514945141C608E68818C90828418248CE - 599DFFEFAA96FBEE3BF7DEEEBE5D75D25ADFB7BE3A4D78AFBABAABCFAE13F65E - 0600000000000000000000000000000000000000000000000000000000000000 + 041049444154785EEDC13101000000C2A0F54F6D076F20000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000A04A6ED51E01A05F36926B37CDA2B9449ED534010000E070F9 - AF0A3C4A024082DCBA3D0240BF6CD11E4B67DBF6080089C1140040FF2C2BAF95 - B71DBC2A9F75E4454D13005281110080FED954D6D2F91B46010012840000A07F - 6A19FE1F4200009020040000FD43000000D1210000E89F2DDB632D1000002408 - 010040FFD43602E0808705C70089410000D03FB50500ABC88D9B2600A4020100 - 40BF6C28DD21D606D3000089410000D02FB53DFD0F210000480C0200807ED9BC - 3DD60601004062100000F4CB56EDB13608000012830000A05F6A1D01D84C2EDF - 34012005080000FAA5B61C00439CFAB8D6F70E9024040000FDB1AADCA0695609 - D3000009410000D01FB53F0113000024040100407FD43AFF3F84000020210800 - 00FAA3F61180ADDB230024000100407FD49A0468C81DE56A4D130062430000D0 - 1FB507008669008044200000E88765E5A64DB36A08000012810000A01FDCF97B - 2F7CED10000024020100403F30FCDF4000009008040000FD4000D04000009008 - 040000FD401ADC06EF02D8A86902404C080000FA8111805B6014002001080000 - FA8100E01608000012800000A07B3694AB344D1004000009400000D03D3CFD2F - 0901004002100000744FED458066B3992427024064080000BA67ABF6080DCB4B - 0701001011020080EE610A6069980600880C010040F710002C0D010040640800 - 00BA6555B941D3841910000044860000A05BC800188600002032040000DDC20E - 80301B4B72230044840000A05B180108732BB94DD3048018100000740B01C0DC - 300D0010110200806E610A606E08000022420000D01DCBCA4D9B260420000088 - 0801004077B8F327E5EDDC6CDD1E012002040000DD4102A0F9B9BD5CAF690240 - DF100000740701C0C2300D001009020080EEA008D0C210000044820000A03BD8 - 01B03004000091200000E80EA600168600002012040079F13EF946C9CAF2F4D9 - 5092EA76613C4D729BA60989B3BB3C5CDE6EF00A007AE303F25FADBF90CEA50E - E9F27039FCBC707E992A499B15E5C7E4F0F3FAA9240800E889999DFFD02BE41E - 12D2E44572F66786619F28214D3C4573A29CFD99110400F440A8F39FE9C1D235 - E7212D3E2A439F172EED5B24A4858B35BD505E27439F99250800E890853AFFA1 - 67CA074A48871FCAD067854B7B9884747082A62364E8B39A2D410040078CDAF9 - 0FBD49FA498A058269709E0C7D4EB8B4A749488387CA7365E8739A4B82008029 - 326EE73FD35FC93B4B8887A764429F0D86BD597AA119C4C385ABDE29FF21439F - D1421204004C81C574FE43BD40702F0971B8AF0C7D2E38B7F79410073F30FC5A - 863E97712408005804D3E8FC67FA65B9BA847E71F015FA3C706E9F21A17FF694 - 7E60087D26934810003001D3EEFC879E251F24A13FDE25439F05CEED0112FAC3 - 49AABE20439FC5622508001883AE3AFFA19E637DBB6481603F7C43863E079CDB - A324F4C3BDE5E932F4394C4B82008011E8BAF39FE931725309DD728A0C5D7F9C - DBBF49E816A77E7FA5BC51863E83694B1000300F7D76FE43AF94CF94D00D5E4D - ED2D99A16B8FF3BBB6846E585F7E5F86AE7B971204000488D1F9CFF450B98684 - E9B2A50C5D6F5C58EF4187E9B3ABBC5086AE791F120400CC2076E73FF4AF7247 - 09D3C315D342D71A17763F09D3630579A0FCA70C5DEF3E25080010A974FE439D - F8C309403C740D8BE73532749D71613F2D613A7824EA5819BACEB1240880AA49 - ADF39FE96FE4661216C71765E8FAE2C27A912A2C9EE7C96B64E81AC7962000AA - 24E5CE7FE855F2D91226C78154E8DAE2C27A81AAABD0C164784DCFD764E8DAA6 - 24410054450E9DFF4CBF2ED794303EEEC442D71447731309E3F36079B60C5DD3 - 142508802AC8ADF31F7A8E6455F6786C2843D71247F7B11246C7C9BDDE2C9DEC - 2B743D539620008A26D7CE7FA81708BE472E2761611E2E43D71147F7751246E3 - 4EF21732741D739120008A24F7CE7FA6BF939B4B989FFD65E8FAE1E81E265907 - B0304F9297C9D035CC4D8200288A923AFFA15E55ECD5C5700B6BC927CA8FC9D3 - 64E8BAE1F83A2DF097E4DE720309B7E08ED2DB2543D72D670902A0084AECFC67 - 7AB874C757239E6F7D887CAFFCBDF41449E81AE1743D41FABEF2144BCD05ADB6 - 9725D799200880AC29BDF31F7A9EF48F710D786BD57FCA43E42532743DB03F2F - 951E1DF0C8CBCAB2063C25F23279BD0C5D93922408802CA9A5F31FEAF4A2EF93 - CBCBD270E1947DE58F25857DD2F53AF92DE9A982556589AC23BF2343EFBF5409 - 02202B6AEBFC67FA07E9B4A3B9B3AE7CA174A7CFD07E7E5E2BBF2A1F274B094A - 1F29BD1E22F47E4B972000B2A0E6CE7FA81708EE2373C343C8CF903F9239EEA3 - C6B09E26F042B91D648E78DBAD47D75228E213538200481A3AFF253D42A65ED3 - DDF3A9CE9AF639E9D4C7A1F781E5E845739E3FCF65E1AAEB7178DB6DE8BDD428 - 410024099D7F580F59EE2C53633DE924337F96A1F3C6B2F502BA2F4B67B74C35 - CF8047A3084A979620009282CE7F7E3D74E96B94C25CEC03A557F0DF2043E78A - F579B2744E8B95640AAC261D9C84CE151B09022009E8FC47F738B9B5EC1BFFB0 - 3F47FE5186CE0BD15E2CDF29EF2063717F79860C9D1F2E2941004485CE7F7CBD - 3AFB45B28F61D7DB4B174661BF3E8EE38DD2A34477937D711BE92929B6998E27 - 41004481CE7F717E537A4F73176C240F9457CBD0DF8D388A9EBAF242D6FBC82E - 71D5486F370D9D032E2C4100F40A9DFF74BC40EE22A7C516F20BD24F70A1BF0F - 71528F923BCA69B3BBF4D443E8EFC4D12508805EA0F39FAE7ECA3A48AE2027E5 - CED21D3F7BF7B16BDDD17821E9625951BA6854E8EFC0C92408804EA1F3EFCEE3 - E5B6721C3C74FADF9215FDD8B79EC2DA4E4E82BFE727CAD09F8B8B9320003A81 - CEBF7B9DCBFDC572A105824EE2F241E90585A13F07B10F9D22DA8588EE2247C1 - DF6BA797F6F73CF4E7E174240880A942E7DFAFDF95CEC53F1B977EF50FE84532 - F4FF21C6D02350EF97ABCBB9F08E142F280CFDFF387D0902602AD0F9C7F1EFF2 - 317288170B9E2443FF2D620A3A307DBEBCB59C89B30D9E2B43FF0F762741002C - 0A3AFFB87A81A0E7F83D2210FAF78829EA8A980F91CB4A2716A29A643C0902C6 - 20D59CD831F0BC9E5384BA121700C0B8F8A9DF0B55212E7B48A756860570362A - 68B84C7A5BD9C307AF0000C663D5F608F1F8967486451801460096C401D10F65 - 1709400000A03BBC8EC8E99C7D841198BD78A5763C77E7929C570E5E0100400E - 78FEDF05C0E8FCC780006069CE92FB364D0000C8002F1EF6F03F8C016B00C238 - 4BDD96729BC12B0000489553E513A42B2BC218B006606ED6940E0462D60A0700 - 80B971A7EF5A0DBF1DBC82B1600A606E2E957B4BCF2D0100407ABC45D2F94F08 - 5300F373A6F4D69EFB0F5E0100402AFC427AE11F0F6913C214C0C22C2F7F2759 - 0F00009006DEA9E52D7F5EB40D13C214C0C2B8F0C79EED110000E2E39D5A74FE - 8B842980D1F0DE5297A27DE4E0150000C4E250F9C6A6098B812980D1F1B5FA81 - 74A52F0000E89F73A487FE9DBA1D160901C078DC511E27D718BC020080BE70B5 - 50D76AF9F1E0152C1AD6008C87A3CF7D9A260000F4C80192CE7F8AB006607C4E - 929BCAED06AF0000A06B8E952EF3EB7A2D30259802988CD5A5BF90771ABC0200 - 80AEB84EDE4B9E3C780553832980C9B85C3A4B20D1280040B7BC4AD2F9770023 - 008BE3DDF2BF9A2640342E9117B7C7A1374A3F395D2FCD55F2E6A63960B89075 - 59B9B2F4C3C05A01FDEF0162F15DB9AB24DB5F0710002C8EE5E431F2EE835700 - D3C7F927FE229DF4C4A9A97D1C7AAE7467EFD5D15DE154D81BC88DE526AD6EDB - 3B4B0709005D7091F45AAB0B06AF60EA10002C9EADA45305AF38780530197EC2 - 7107EF6DA627B4BAEDCEBFCB0E7EB1B85AE6B6D23FD4D66D97D266E40016CB6E - F2FF9A26740101C07478B13CA869028CC435F237F2E7F2E8D62B64097864CC8B - B65C44CBA55A1F20D79500A3F249F9FCA6095D4100301D7C1DBF27771EBC0258 - 1ACFC57B0FB3BF27BF947EBA9F39275F3A9B4907048F90BE4FD69600214E93F7 - 900E92A1430800A6C7FAD2C3B6CC89C2903F4B77F85EC8F413E9F97C68161CDE - 53EE221F25EF23C94902E626E951236AFC4376EC2E3D978BF5EAFC10AF957795 - 301A0E9A9F2D8F94EE0042D715EBF07512205B3E27435F6C2CD713E51BE4E612 - 16C7EDA5E77E7F243D4512BADE58A6BF928C0441D6AC22BD723BF405C772F4F6 - BB03A557BD4337AC279D67E37419FA0CB01CAF94DE560A903D5EECC4D34B797A - 3BDE4FE59E926D9FFDE1B54A3BC943A41753863E1BCCDB67488062789B0C7DD1 - 313FFD74F241B98584B8AC29F7974E8414FAAC303FBF2A018AC28950BCCF3BF4 - 85C73C3C4F7A08DAC59F202D6E2B9F2A9D842BF4D9611E3A9BA5833A80E2F0DE - E7AB65E88B8FE97ABC74B12727B481F4F1F4C0B7A4A768429F27A6A93FAF8749 - 806279810C7DF9313DDDF17B2B27F931F2647BF94D19FA6C313D0F900045E3CE - 841FA5B43D457A3899F2D865E0C442CE2910FAAC310D9D09737909503CCE83EE - 8A56A11B01E3E9ED9A7B49F61E97C90ED2BB36429F3DC6D365AAB79100D5F01F - 32743360FFBA36BE338EAD20A17C3CADE34A8BA1EF02F6EF7E12A03A3E214337 - 04F6E33FE467A4EB36405D386F83833E077FA1EF06F6A3A76658630355723B79 - AA0CDD18D8AD2EB7EB456250370EFE9CAE9B1D03FD7BB124F886AAB9B7A4E049 - 7FBAC6FE3E92A70E9889B70E9262B85F3D1503503D6F94A11B04A7EB11F20E12 - 2084A705DE2D09C8BBF7D3120084579DBBF255E846C1C5EB1D174F9100A37077 - 4946C1EEF448CBCA12005A5CF98A0549D3F7EBD2F5E501C6C1A9853D32C768C0 - 74F5F5BCAF0480593C5B866E1A1C5F0753BE9E008BE17E9272DED3D3411500CC - C1613274E3E0E8BAE8D25D25C03458557E5E86BE6B38BA9EE624C916C03C78B8 - FA7C19BA81707EBD95EB1DD2951701A6CD93A5779184BE7B38BF2EA1ED694E00 - 58804749F6258FE765D2D91501BA647379920C7D07716E9F250160443E2C4337 - 122EADABF631E40F7DE115EC87CAD0771197D6D39A003006DE93CC93C6C27E59 - B2A508FAC689A4F697EC12985F4F67B20B076002EE296F90A11BAB769DC7FF55 - 1220260F9397CAD077B4763D8DB9B304800979B50CDD5C357BAD7C820448812D - E51932F45DADD90F49C808F2A3A787B7CDFC50EE38780517CADDE4AF07AF2084 - A78FEE243DF47AFBF638D478CA64B853C2096F6E96FEC1BEDCFF403887C225D2 - D7DA477B9EF4424B08B3AEFC3F799FC12B3851BACEC9F583579005040069B2B1 - 3C4E7A3F72CDB872E2AED289596AC71DB7173E6ED7BAC90CDD197581B7C0F949 - F72CE97AFA5EA3E205983E5E276B6725F925597B911B4F5B3A10F2770300A6C0 - D3E5EC21B69A7412913565AD6C26F7969F90BF97EE7043D729861E4138451E22 - 5F2CBD76A5D6842F7EDF1F95A1EB548B2F97003065BE2243375CE9FE48D6B6D2 - DFA33E2F90AE65E06246A1EB92B24EFCF27DF91AB9BDAC6D74F13D32745D4AF7 - 07929164800E58439E2B43375EA97E477A4EBB74FCE4E815E51F907E9A0E5D8B - 9CFD9BFC9C7C92F450790DBC5E86AE45A97AAD08E5B6013AC49D442D5902FDF4 - BB9C2C955BCB074B0F19E7F8943FA9574BE76FF05CF90AB2645E266BB95F9F28 - 01A0630E90A11BB024DD41943A8FEC857A6F97B58DE684F4C2C24FC99257CF3F - 4F961E04787407007A607979820CDD8825E827FFD23A7F6FBBF313D291D2498C - 42EFBB768F95FBCAD56469BC4486DE73097A57CE2A12007AC255EF423763EE7A - CEBFA4617F6FDD74CAD8BFCAD0FBC5A5F502C20F4AE7322889D7C9D0FBCDDD07 - 4800E8092FB471B296D0CD98B35EED5FCA02B13B4A4FD5503E76729D67DF5341 - F790A55062E0FE5409003D71B00CDD8839EBCC7E250C23AE2F0F92D470989E9E - 3F3F423AE151091C2843EF3357CF96B5ECEC0088CAFD64690B8A4E976BCB9C71 - CA5D3FF1BB4E41E83DE2E2F5DA0997E175EEFD9CF13E79670C0CBDC75C7D9304 - 800EF1B6B1DFCAD00D98ABCE37BFA9CC15AF577885749EFCD0FBC3E9EBA9016F - 9D74D0952BDEFEE851AFD0FBCBD16BE44612003AE2993274F3E5AA7F34EE2B73 - C5FBD83D7A117A6FD8BD0EBABCBADE751172C4A35E257D7F9C0A1A003AC04F0C - 25AD24F734C6E3648E781FFF7765E87D61FFBA18D10E32473CFAE551B0D0FBCA - 4DDFD3F7970030655C602374D3E5EAAB656E780AE6A5D299EC42EF09E3E9F501 - 1F913956CC74A759CAA2D19F48009822FE51BB48866EB81CF542AEDCD8461E23 - 43EF07D3F11CF968991BFBC8D0FBC9D147490098126F91A11B2D479DC130A72D - 435EB1ED79E694CAEFE2C27E5CE6B635EDB332F45E72D3191D3D5A06008B641D - E9CC68A11B2D372F977795B9B09E64AE3F5F4F9639251172D5CBDFCBD07BC9CD - 3D24002C92520AFF7881D063642EEC224B599C55B39E5B7745BE5CD8585E2C43 - EF25275D1FC0F52F006042BC4DC85BE54237586E3A056A0E78C8DF39DB6F96A1 - F78179EA94C22BCB1CF01A8612927D3D4702C084BC4B866EACDCFC8DCCE169C0 - 8B2D9D7236F41E307FBDFE249729A80FC9D07BC8498F02E49AA301202A6BC812 - 0AC9B868D1663275EE224F95A1F780E5E875283BCBD471DE8F124A7EEF2D0160 - 4C9C5B3B7443E5E6B365EA781F7649DB2C717E6F94397C2FBDF534F7DD270EAA - 6F230160443C5779A90CDD503979984C9D274AB6F8D5E93BA5D77CA4CC7E3274 - EE39C98E00803178B10CDD4839F977B9964C19FFB896565911C7F38B32E5796A - 07283F90A173CFC51365EA811640123881460905429E2253E6353274DE589F1E - A97255C754F1FA94DC77033D5202C002EC264337504E7E53A68CB72486CE1BEB - D5099F52CE1CB8BF0C9D772E1E290160017E2C4337502E3A6BE18632554A49AC - 84D3D7856C520D02BC90EE773274DEB9B8BD048039F00D12BA7172F2853255DE - 2643E78C38D44FAAA94E07DC5DDE2443E79D835F900030079F97A11B27178F96 - A916017176BFD03923CEF61B32D5C455EF96A173CE41A7655E5F02C02C5697D7 - CAD08D9383AEC77E2F9922256CA5C27E3D44A6B87FDDD92AFF2643E79C836F96 - 00308B7D65E886C9458F5EA4887723B0D50F27F1BD32459E2543E79B83E74AD2 - 0303CCE27819BA6172D0E97E531CDABBAF2CA59812C6711F991A9E66FBAD0C9D - 6F0E3E4E02408B3BAAD08D928BDE539F1A9B4ACAF9E2627555C8C7CAD47890CC - 7564EB3B12005A3E2343374A0E9E295DB82425569314F6C169E951A4ED646A1C - 2A43E79BBA5E2FB4B104A89E55A487D043374A0EEE2553C229470F97A173459C - 5467E7746099122E6D9CEBB640D76100A89EA7CBD00D9283A7C8D4564ABF5E86 - CE1571B17E4BA696D3FEB33274AEA9FB5799EA966180DE700AD2D00D92834F95 - 29E17CE39EB30D9D2BE2347499EE94D8447A7F7DE85C53F7A112A05AD691B90E - E179D7424A11FC7A92457FD8B50E30779429F171193AD7D4F5E80540B5E4BCF7 - 7F77990A1E96F5CAE2D079224EDBB3E51A32155C7BE33A193AD794BD42AE2801 - AAE457327463A4EE1F654A73A164FAC3BEFD8A4C898FC8D079A66EEA65C3013A - C17377B9EEE34D69E5FF3632C7A71FCCDFBD652A38EF85B7D785CE3365532F1D - 0ED0092F95A11B2275CF97A9544BF30E845FCBD0792276EDA5D26B4F52E1EB32 - 749E297BBD4C6D7B65B5B02DA33F766B8FB9F1217963D38CCE8BA5B32802C4C0 - EB000E6A9A49F0BEF69813CBCB47354D803A584BE6B85DCD098B5CB530053C85 - 72B50C9D27629FA614CCBB2477E81C53D6190D21011801E887C7C8144B8D2EC4 - E7E4E54D333A1F93B76B9A0051F9A87446CF1478777BCC098F00782400224300 - D00F3956C372A4EE1FBA14F013D72E4D13203A7790AF6D9AD1F9B674C9DD9C70 - F0F4B0A609312100E81EEF7BDDB96966C5CFA50BECC4C64F0A39CE7542D9BC4C - 7A5A2A369E5AF4485D6EA49457A45A0800BAC7653C576A9A59F1C9F6181B2FFC - 73111480947060FA81A6191D67D8F316E39C60440FAAE0BD72F62298D4BD44A6 - 90B1CBA9939D3D2C748E8829F8109902DF93A1F34BD9AD2444841180EE79447B - CC892F4927DB89CD2BE5AA4D132049522973FBA9F69813394E8D028CCCDA32C7 - EC7FDBCAD8AC2FAF95A1F3434CC947CBD83859576EC5B1BC801122C20840B73C - 5CA6564F7C214E942734CDA878953585432007DE2A63DFE74ED6E5CC8039E12A - 8B6C078C08014077F80721C7852EFFDB1E637247F9DCA609903CF7942924074A - E1DE1D07E7F548ADD47255E4F6749A2A77925B4A0F9D7B61CBD6ED31C7C4359B - CBD39A6634BCED6FFFA6099005AE5171FFA6190D3FD09D2753AA57300A7F9327 - C993671D2F93D0210400E3E127D36147EFA32BD3B9A34F252BD86239566EDF34 - A3E1D4C3E7C89507AF601C2E96FEF1740067CF94CEE478A5F47A0AEB691507A6 - 5E5CE9A22CDECBBE99F4564B7FA7D7953019DEF2FB8BA6190DD72AF0D6D91220 - 30E8180280301B4877ECC30EDE4FF4B6F42A569E777F57D38C869FFC49FC331A - EEF07F247F2C7F22FF24178BCBCC7A6B9B7DA8F4624C188D2364ECAC9F0E427E - D6348B85C0604AD41E00F86967D8C9CFECEC5DF5AB46FC14F8E7A6198565A5FF - FE8D06AF2084B7671E2E0F96474AD784EF0A0F297B8EF6E9F2F19232AEF3E31D - 3F9E428B790FF933F3089A1F626A83C00082783BDE4EF285F2E3D24F4B7E7A0A - 6D4DA9D514D2FE3E4186CE0D9759E62CF922196BBAC953077B49EF12099D1F36 - 7E50C6C6990143E756ABE7CBEFCB03E5F3E40EB2D687BC25286D04C06577870B - F0663ED93B0080F9F1DCE17E4D331A7EA22539C892383073C5373FF1DFE47F10 - 19FF663C56BE5ADECFFF0096C059345D2CE886C1AB383C49E6B6232006D58F18 - E41A00387A9BDDD1FB756EAB5F53C2253A9D4E34165E8CE6A153B6A6365C25DF - 243F2C5DF025459E2ADF2FDDE1C12DEC290F699A51F0425A8F70E658823C0566 - 0706C376718141EA0180E71C879DFB4C6B9CDFEA12CF2B7BF42466FADF77C854 - 4AACC6E62BF2E5D23F44A9E3DD1A6F90AE8EE7351CD02CCAF402CA98B89AA787 - BA617A782A61F66841D681412A0180E735676EAF1B1EBDED0EBAE7BB32663A53 - 3FF59F2D371CBCAA176FD7F31CE5A1835779712FE9C0E52E835775E379675F07 - 6FC38CC5EBE4DB9B26744CB68141DF0180F71F0F9FE887C3F7EEE83796100F3F - BD7DA86946A186AD4B0BF147F91479FAE0559E38B7C07FCBFF1CBCAA1BAF9178 - 4FD38CC2BDE56F9A264422F9C0A0AB00C02B86DDC10F3BFBE13CBD3BFA5CD71D - 948C9FDE7EDF34A3F051E91D1AB5E227FEBD65CC8563D3E425D2B5F26B9E8376 - 40778FA619055F7B278122A1567A143795609C40C48930BC90CB7B93676FC5C0 - 34BD5ADE56C6C23F5417C8D0B9D5A0775F94B8F0D17903BCA624F49E6BD11916 - 63F203193A2F4C53A771F676C5DEA663A7F9C3E315F8DE1EE4B92F5672E7C331 - 32E62A73679CAB35FDECEBA59F969D40A6340E93AE8679C5E0559D3CB93DC6E2 - 97ED11F2C08BDB7DCF6C3778D50374D410FB4762D7F6581BDEDBEF9D0F25E3EF - D623A56B10D4C863DA632C62D72580C42100805FB5C75838FF406D78A15C2D5B - 1E3DC2B4BB74BDFADAF0423C6FAF8D85AF7D97A9A221730800EAC6F34E4737CD - 287851E8164DB31ABE29F795BEF6B570947CA6ACE93D1BFFBE7A042416DE56EA - D4CD00410800EAC6FB9463CED1D6F6F4EFEBED7CFA353E953933DE014DB32A76 - 698FB1F06E048020040075735C7B8CC523DA630D7808DCFBFCBD35AB565E236B - 9B97F6A2AE989CD01E01968200A06E62FF383CB03DD6803BBFDF36CD6AF16E13 - 0741CE535F0BEB4B6F918E050100CC090140DDC4FC71F08FE23A4DB3789C64C9 - A548A14982E23A07351133D0250080392100A89BE3DB630C6A2954E23DFECE72 - C86AEC5BF89274C19C5A88190038C9D6454D1360490800EAE51AE9AC8DB17840 - 7B2C9D4F4972B22F897703EC234B497DBC10B1A7BA8E6D8F004B4000502F67C8 - 9819E862E649EF0BA7C27D73D384599C2A1D1CD580B7BABA105A2C6206FA9030 - 0400F572567B8C816B0FB83854E97C4E7A0816C2381B620DA300FE9D7551B458 - C4BCD721610800EA25E68F828BA4B86264C978C5FB7B9B26CC818B9F7CB66916 - CFDDDA630C080020080140BDC4FC51D8B63D96CC57E4D94D13E6C1A300251643 - 9A4D6F055E021000401002807AF11A8058D410007CA13DC2FCFC55BA046AE96C - D31E6310F35E87842100A817A7A58D854B46978C87B67FD43461043EDF1E4BE6 - CEED31064EBC7455D304B80502807A7127150B17012A19E7BDAF61587B5A1C21 - 63D6A4E8830DE5724D330A31EF77481402803AF13EEC4B9B66144A0F00BED61E - 6134BC5DD255124BC6BFB51B35CD285CD21E01FE0D01409DF8C720D613AA57FF - AFD7348BC425589DFA17C6E387EDB16436698F31201B202C0501409DC47CFA8F - F914D4073F97A4FD1D9F1A028098DFFD98F73C240A01409DC41C0EBC7D7B2C15 - 16FF4DC639F2B4A6592C31BFFB4C01C0521000D449CCE1C0B5DB63A9FCAE3DC2 - F8945E2E39E6779F2900580A02803A89F934B0667B2C95D29F62BBE494F6582A - 31BFFB8C00C0521000D4C9F5ED31066BB5C712F1563672FF4F8E0B04954CCC00 - 20E63D0F89420050273117A9953C02507A07D6357F6A8FA51233F8756D0A8025 - 2000A893ABDB630C6ED51E4B84A7FFC5517AB29A98BFB7D7B447807F4300007D - B36A7B2C9198815509388742C9ACD21E01928000A04EE8A8BAA1F474B65DE3A9 - A96B9B264C99D2832B980002803A89B90660A5F6582204568BA7E4A235314700 - 9CFE1B60090800A06F6ED31E4B840C808BA7E46BC8EF2D24055F48E89B929FF0 - 566B8F303925CF93539217928200A04EE8A8BA61E5F6089353720010B34434DF - 4D580A0200E89B92B723F123BB384A0F4C632E702C79EA0D268400A04E5C9237 - 1625272429BDD051D7945E27E2A6F6188315DA23C0BF2100A893E5DA630C4A1E - 01B86B7B84C9D8BC3D964ACC5D22CBB747807F43005027CBB6C7185CD81E4B64 - 3DB97AD38409D8A23D964ACCEF7ECC7B1E128500A04EA84AD61D9BB547189FD2 - 03804BDB630C4AAFC2091340005027318B92C4FC11EC83BBB547189FEDDB63A9 - C40C7E4BAEC209134200502731175B5DD41E4B65A7F608E3E127D4D203808BDB - 630C4A5F60091340005027319F064AAFF8460030190F91A5FF1EC5FCEE330200 - 4B4100502731E7032F932517CDF142C02D9B268CC1C3DA63C99CD11E63C01A00 - 580A02803AF18AE098ABD5CF6C8FA5F2D8F608A3E1DFA11AAED959ED31064C01 - C0521000D4CBFAED3106A507004F6F8F301A0F971B36CD62F1DA9798393062DE - EF90280400F5B2717B8C41CCA1D03ED85A96BEA06D9AECDD1E4BE62FED3106AE - AFC01A00580A02807A8919009CD21E4B66AFF608F3E3A9A8C735CDA239A93DC6 - 20E6BD0E094300502F317F148E6D8F25F32C4956C085D957AED4348BE684F618 - 030200084200502F317F144E96FF689AC5B2AA74E70673E3A1E99735CDE28919 - 00DCB93D022C010140BDDCA53DC6E03AF9E7A65934FBC9DB354D08E000A996ED - 693103804DDA23C0121000D44BECA7823FB6C7927179E097364D9885B7A5EDDF - 348BE71C193303262300108400A05ED69077689A51F8557B2C9DD74AE66097E6 - 7DB296A7FFD8DFF56DDA23C0121000D4CDB6ED3106BF6C8FA5E3056E07364D68 - 71DADF9A7649FCA23DC6C0EB2C084021080140DDC4AC5C779CBCBA69168FB3DC - D5B0D56D141C10FDB7BCD5E0551DC40C761DE4D774AD610C0800EA66BBF61803 - EF02F875D3AC824FCB8D9A66D57C5C6EDE34ABE04A797CD38C02E5A9614E0800 - EA26E61480F9617BAC0167623B44DE76F0AA4E9E2B6B4B90F4331973CB6BEC7B - 1C128600A06EB690CB37CD281CD51E6BE181F2DD4DB33AEE2B0F6A9A55F19DF6 - 188B98A37C9038040075E3AA80F76C9A51F056C0F39B6635BC42EED334AB6153 - F94DB9C2E0555D1CD91E63B09C8C797F43E21000809F4A63F12FF9FDA659151F - 967B36CDE27195BF1FCB1ACBD1FE49C62C7C750F5963D0052332CD00E0EFF207 - ED11F2E101ED3116DF6A8F35711BF959F998C1AB72719E094FF3945EEA772EBE - D71E631133B887F171B9E863646F85A3BADA1EE268DF734F5E80E224145E89BA - 95ACA1E8476E3843D93A4D330A4E95EBA0B1C694B9374B170DFAE2E05559B824 - F277E51D07AFEAC41D70CC244087C9DD9B2624C65FA5D343BB309AB7445BA747 - FFA7EC8D3EF7877AB4C1F9E76707064E53C954445CBC18F0D4A61985AFC8A734 - CDEAF034C82BE501835765B0A33C5C3ADB64AD9C2D9D83DF9F6F2C2E94354EBD - A4C48DF244E9ADA0C38EDE5E2A417854E0DEF2D9F243D2D3087E2AF58D83FDE8 - A7D098F82925745E35F93999FB08991F285CDDEF7A197A8F35E954C73171AE85 - D07961773AE0F294D77BE5D3A41F72BDD03A5952CE10B59EF44881470C7C217D - F434028B5AA68FF7A7C75C94E6CFD4D3002EA15B335E34F624E92786DC70E1A3 - CFCB5D07AFC00F35BF6B9A51F04E938F354D98329EBA3B4DFA49DE43F87EBAF7 - F1029915B9A588F4E2296F291A4E230CF534426EEF25253C1CE575003113967C - 4A3EA76956CDB5F2F5D23B05FC4393038F973EDF0D06AFE064E9351031F1E25A - 82B1C573B974473FECE47D7480EE51AEEC29A5D35C59FA869BBDBEA0966A63D3 - E07ED22B5063E127A6DF344D105E20F44219B390CC4278ED8893FB3C62F00A86 - 781AC4D399B17072AF4B648D0B6B27C543F8DEB2E9DC24C3C579EEECCF929029 - 7E2279A4F422ABFF917F9037C8D97337B8CC326F95B171A41D3AB75AF58A604F - CFC47E9A9C8D6B1AB8E3E75E5A5A3F193AED734C7696A173C3C6ABA4EB90B828 - 95A74ABC15DA0F915001CEC5EEB5045E75FE0EF97FD2919F7F6C435F965A4CA1 - 308F9F7843E756BB9E9AF196AED859DDFCC4EFFC0574FC73EB802D36EF97A173 - AB51EFC6F074C8DBA5D7D76C26D975D6C2BCF92D7801DACC6984A1B56C657200 - B4BEF44AD658AC2ECF9144E373F35BE9D1ACFF957D7C56FE4C9E289F2E7790FC - 78CECF4EF2274D331AA748076B35C176BB0920005818273219EE42180605BEB9 - 9C67BB349E27BD182F269E3BDDAF69C23CDC24BD65D6B9E6DDE1F887CF4F3CD3 - C081B03BB287C947C99805A372C2C1D97D9A6634B6945E8458320E7CDDB9CF5C - 81EF3C26BE27600C080026C37B3B1D04CC0C0CDCBE93CC1997E77D78D38C86E7 - 97FF226B2E9B3B0917CB5F4A3FFDF9C7709887DEF5E8432B96DDA9AF269DACC6 - 7BC6ADBFD3CE5EB7AE84F1F1B4A2476662F226F9E6A6993DDE05E3EFF2B0931F - 1EB3DB6E972A0400D3C5C3A50E041C10383070829B9C7E4C3DD7ECFCEDB1EB39 - 1C2A9FDC34610AF887D40B9F1C0C78AA6B154980355DCE949E5F8EBD75D34FFF - 1E05C88DA2B7DB419D7891E1EC4529A9EB8578B17115B3DA1765625EBE48C6C6 - 0F1EA1734BD9D7C88D254480053DDDE2B490B991C293B7B76BBA7E3C400E9C2B - 3FD334A392DBA899471C9DAD90BDF650245E2878B50C45BEA93A9C06888D1339 - 310A8039F87C9902A7CBD0F9A5AAD7AC40441801E8166F4DF969D3CC067F27F6 - 6E9A51F17CE0579B2640B278EEDFB91162F320E934E939F1FDF608912000E81E - 6FD5CA0DE7E44FE1BBE1D5CCB9E4C3873A798B4C61FBD973DB634E100040F178 - 574068F82B75636F071CE239C2D0F921C6D6D5FE520894BDFBC845A442E798AA - 5EF5EFE26E10114600BAC75B599C8E32379C142805DE202F6B9A00C9E04ECC45 - 7FBC4E25367BC8159B663638E748CCEAA3200800FAE188F69813BBC9B59B6654 - 5CD5AC94C426500E4EF8F3F3A6199D5482F571C8F1371160221E2A670F81E5E0 - AB640A38698D139C84CE11B16FBDB3C7192B53C065BC43E798B25E1C5D4B8D15 - 8041EA603FC9866E8694F5FEE6546A1E3845AD870C43E789D8A7AF90A9E0AC99 - A1734C5916FF25025300FDE055C2DF6E9A59E17C004F6D9AD1F19E61D7EF0688 - C9EFA50B56A580B7FD3DBE6966C537DA2340353C4186A2E1D47556BE54700E7B - 970B0E9D2762D73A90BFBB4C858364E83C53D68B2653483406D02BB793B96505 - 1CFA48990ABBCAD0392276EDDB652AAC255DE029749E297BB48444600AA03FAE - 91B9AE7CF576A754F054CAC79B26406F78E8FFAD4D3309F6912B37CDAC38B83D - 025447AE4FAF1EB6BBB74C8595A4EBDE87CE1571DA7AE46E73990AEEF82F94A1 - 734D59AFFE4F616B314014BC1BE02219BA3952F7BB3225B69737C8D0B9224ED3 - D4F6D9BF5686CE3375A9F009D593736A5B6FC54B8997CAD079224E4B27FC4989 - D5E4A53274AEA9FB140950353BC8D0CD91833F92A991E33E68CCC393A4779EA4 - 84B36286CE3575AF90B9A52B06983AB792A7C9D04D92833BC994F0EE8A1364E8 - 5C1127D5C56A529AF7376B4A77A4A1F34DDD4F4B480C7601F48F6F86CF34CD2C - F156280731A9E0DD154E86E21F468069E07BF459F2D4C1AB74F82FB96AD3CC8E - 4FB64780EA5957E6BC80ED3F656AB8DE028B02711ABE5AA6C626F27A193ADFD4 - 4D29991840127C4D866E961C7479636FC54B0DEF8D0E9D2FE2A8A63A547D980C - 9D6F0EBE4002C00C7691A19B2517DF2453E45D3274BE880BE91AF5A914BF9A89 - D7DD84CE37079DAD30C78445009DE2F51767CAD04D93839E7B4FA524EA4CBC3E - E14B3274CE887379ACF416BBD4B88D3C4E86CE390729E0053007FBCBD04D938B - A9A6F5F48F66CE43A6D8AFCE2A996A86BADCA7B59CB00B0002AC2E732CE831D3 - 9D658A7828D7D90B43E78C38F42F72439922EBC95C93FED8A32400CC830BDB84 - 6E9E5C3C437A2F7E8A78A1E28F65E8BC115D5AFA2E32559C853074DEB9985215 - 518024D94ABAD84EE806CAC50FC854711070A40C9D37D6AB03576FAD4B95DD64 - E8BC73D1591453CA1702902CDF93A19B28176F9629550B9CCDF2F21B3274EE58 - 9F9EF3BF834C1527FB395786CE3D179F2B0160043C5416BA8972D22B955DED30 - 557C6E87C8D0B9633D3A29CD3A3265722E1866CF972B48001891DFC9D0CD9493 - EF9029E3AD9707C8D0B963F97A515A8A5BFD66E245B5B94F093A6531008CC1EE - 327433E5A4A7027694A9F322E9730DBD072C53D7DF487984CA782BA29F9E43E7 - 9F8B174B12FF008C8917CC1C2F4337554E9E25BDBD31751E2373DF82890BEBA7 - E9D7C91C384286DE434EE672AD0192C345764237556E7AAE3D07B695A7CBD07B - C0FC7585488FACE54009752C2E93A94FB100248B33D8B90469E8E6CACDA7CB1C - F068C53765E83D60BE9E2C53ABE73F175B48A7D60EBD8F9C7CB3048045B0B70C - DD5CB979B5DC5AE680A75F5CDCE81F32F45E302F9D402797796827D13A5186DE - 474E5E2ED79000B0083C0AE0241AA19B2C373D9A91D390A01730BAD471E8BD60 - FA3AE8CC6DFFF9A132F45E7293B97F802951C28E80A14EC0935346304F0994F2 - A35C93DE469BCB90FF9097C9D07BC94DEF5C70C64D009802EE307F2D43375B8E - BE5EE6C65E32E7422CB578937CA74C7D8BDF6C1E2C7DEEA1F7949B5EC0080053 - 642719BAD972D47BEE732C0CE26A6CB9176429D9DFCABBCBDC70F5C10B64E83D - E5A677D1E4167C01644149E56CBD48C8DBEE72C4855972CFCD5E925E31FF0A79 - 5B991B5E135342BE8FA14F9100D001EE304BCA58E7F2ABA9D65E5F08AF2A77AA - E31B64E8BD61F73AA98F734C6C2473C40B7C732FFC35D3A32515FF003A24F7C2 - 20B3F5D38FB73EE5CAA6F230197A6FD89D2EE2B383CC9992EE650763F79300D0 - 216BC9D216A339E5A99F8672E621F29732F4FE707ABA6EBF7363B89053CEBC5A - 86DE5FAEFE8F04801E78890CDD8439FB2959C2F0E1AEB2844A8EA9E9E9A2E7CB - E564EE382B66EE15FE66EA1A1A779000D0035EEC5442B6B0D97E4896800319E7 - 6E384686DE278EEE5FE4BE727959028F97A5559ECC715B2F40D6BC4D866EC6DC - F5FB2A8907494F719056783C7F239F24739F1A9AC92EB2C445A39B4900E88952 - 8A85CCA5E7474BC359E93E282F91A1F78CCB2C73BDF4AA7EAFA7280DA7952EF5 - 9EFDA92C2950034816CF81FE51866EC492F43A8712F150F61EF2C7B2A479E0C5 - E85A174E83BBA62C91FB4BE7BD08BDF7527C8304808E799F0CDD80A5E9CEF155 - B26436911EEDA821A09BED59D2DFE57BC992718ADF2B64E81A94A4D7353C4002 - 40473C4CD6F6D4F81659039E477505352F1C2C75BDC029F200E927E21A12C678 - CEBFE4A9BAD93AA873F12C009832DEFF7F9E0CDD78A5FB7E595386B1B5E59EF2 - 4BF26F32744D72F04AE9EA8F2F901BCB9AF02E901AB344BA7226004C99DAB3CD - 7D5CE69EFC6552EE229DFCE693F26499EA0881F7EA7F59BE58BA284FAD0BC39E - 264BDBEA378ECF929021E4714E93E7C94F34CDAA395CFAC9F8BAC1AB7A71EAE4 - ADE5DDE476721BE920C1C958FA08922E94674AE7A238A1F538E91D0EB5E3351D - 2E475CF36FA9A73DEE294F1DBC826C2000480F6F1FFBBDCC395FFE34F1FEF0FF - 90EE846049BC43C48571BCB8F08ED25309B76FF514920B18AD2A8DBF4FC3AC7A - 5E57E2856AE65A79B5BC58BA431FEAA77B77FA9EE7F50F3C2C8993737D543A58 - 876661AB6B03DC3878050063E31F68D2CA2EADF3C13B1702400AAC224B2AD53D - 2D3F20016042DE2D4337163605914A4C180379E172D6C7CAD077B4763DB2E49D - 100030263B49D2C7CEAF87174B4D1804E9E3EC7E17C8D077131B7D7DD6930030 - 22CE88E639D7D00D854B7BB05C4902F4C5CBE54D32F47DC425FD9E647D19C088 - 7C55866E249C5BAF42DF5402748917527E4586BE8338B7AF9000B000CF96A11B - 0817F632F95809D0055BCA12CB70F7A19322DD4302C01CDC555E254337108EA6 - 171E7D4C322500D3C4D90C6B4AEBDB85CE0BE011140098C5B2D27BDC43370E8E - AF33E66D2F01168373291C2143DF311CDFCF4A009885B387856E189C5CD797DF - 5FD69A421816C7CEF27C19FA6EE1E43E5502408BB713D59C3BBC6B7F225D6D0F - 60149C2DD1D348B555DEECCBCB656DC5A10082AC21CF96A11B05A7A753DCBE46 - 3A652BC05CEC26CF95A1EF104ECF5F49EE45A81EB614F5ABB3B6DD4B02CCC4C9 - 6AD87EDBAF6F9300D5F20C19BA31B05B9DC0C579CA579750377E0A7DA1746AE9 - D07705BBD3D39EA4F3862A71F9D62B65E8C6C07EBC48BA7A1B8B04EBC49DCF1F - 64E8BB81FDE88CA7CE7C0A500D7EEAF8B50CDD10D8BFEE047812A907678C3C4C - 86BE0BD8BF874B806A78BB0CDD081857770A9B4B28133F69BE4B3A2B5DE8F3C7 - 783AD11240F13C48B2E52F5DFDD97C41DE594219AC26DF2CAF90A1CF1CE3EB2C - 8B5B4B8062F1A2B3B364E806C0B474A9E14FCA8D24E489D3CEBE565E22439F31 - A6E5F1720509502487C8D0171FD3D5C3C59F904C0DE48387FADDF15F28439F29 - A6EB472440713C5D86BEF09887FF90CE09EF291C48134FDB1C24AF96A1CF10D3 - D7D917FF430214837F98987F2CC763E4932499CCD2E0BEF27F256B6BCAF062B9 - 8104C89EDB48A7BD0C7DD1316FCF93EF90CEE900FDE2857DFB4A67760C7D3698 - B73F94E4E780EC798B0C7DC1B11C3D3DF07DF964B9BC84EEF0148C7769B8B643 - E8B3C0727CB5841EB9557B84E9F000F933E95100A803A794FDBA3C54BA0AA183 - 03581CDBCAA748075877F53F802A70CA6E077C9E72831E2000981E2E297A9CA4 - EC65BDFC5D0E83815F482F7082D1D84A7A9D853B7DB7A14ECE90DB4BA74D878E - 2100981E5F927B364D804130F05DF93DE9E9028F14C02D78FFF783E52EF25172 - 0B09600E964F6B9AD0250400D3610FE92F2D40084F0BFC463A203852BA168157 - B0D786732B3C42BAC3772D8695244088BDE4179B26740501C0E2F190BF57267B - 9532C028380DEA6FA5D78B1C2DBD6BA4B421CF65E5BDA4D7C53C50EE20D79600 - A37095BC87FCF3E015740201C0E2F0623F2FFCF28F1BC0A47884E024E940F204 - E9B5243E5E2073C0EB5FB6915EBC7737B99DF48FF78A1260521C24FBB7D569BA - A103080016C71BA5B7FD0174C145D2F9D24F97AE2961CF6CF5BFEB9355A447BB - AC135D6D229D0FC1055DDC06E882F748B607760401C0E4DC4FFE5C921D0E62E0 - 698473A40BDFCCD4F9F09D85F272E9BDD57E7AF27F6B3CACEAB5076B0C5E3539 - 0C86F3F07E8AB76BB57AB8DEC7DBCBF5DB3640DFF83BBCB3FCC1E0154C150280 - C9F0D390876B29210B00D02D7F939E5AEA7BD4AB7848BD3819AE6045E70F00D0 - 3D1E81FAACE48175CA90B16E7C9CA1EC6D4D1300007A6033E9292E6FA7852941 - 44351E77921EFA5F7DF00A0000FAE206E94A90DE250353802980D1F168898B92 - D0F90300F48F17AD7E5992406A4A3005303AAF95CF6A9A00001001EF4EF1CE94 - 6F0D5EC1A2600A6034EE235DDCC5D9CD0000202E4F942EBC058B800060615696 - 7F949B0E5E0100406C2E9377977F1DBC8289600DC0C27C58D2F90300A4839359 - B95810D3D88B808B373FAE4FFE8EA609000009E15D59AEA3F1D3C12B181BA600 - E6E68ED2DB4D8669530100202D1C00EC287F39780563C11440188F8CFC8FA4F3 - 07004817FF561F2CD99E3D010400615E291FD234010020613C15F089A609E3C0 - 1A80A5B9B764710900403EB82CF579F20F83573012AC015892DB497F819C771A - 0000F2C165AFEF25FF3478050BC214C0921C28E9FC0100F2C30F7087C8E506AF - 604118E6BE85C7CB77374D0000C810970E5E451E397805F3C208C02DECD51E01 - 00205F9CBFC5A301B0000400B7B0A7FC59D384485C2DF90C2037AE93AF979BCB - 1FFA1F4034CE970F955E0F0030168E1A9D55EA5FD8BB47CB61CAE55DE44932F4 - DF21A6A4E79C379243FC50B5BFBC5E86FE7BEC4EEF02600D172C0A82807EBD49 - BE49DE56CEC40B795E215DF423F4FF21C6D4BB85E6CB15723779A20CFDBF387D - E9FC616A1004F4E3E9F27E723E5CFBFB23F20619FA3310FBD4D5E79E2547993E - 5D411E24FF29437F164E473A7F983A0401DDFA49E952CBA3B289FCBCF48841E8 - CF43ECD24BA53384AE28C76567E9B9E9D09F8B8B93CE1F3A832060FA5E287793 - 93E28556874A170109FDF988D3F45AE9EDC18BCD35EF91ACC365E8EFC0C9A4F3 - 87CE2108989EDF96EBCA69B09DFCBA2410C02EF42AF20FCA0DE434798EBC4A86 - FE4E1C5D3A7FE80D8280C5E91FD317CA2E524F7B44E033923502380DDD39BF4F - AE23BBC2BB5D8E91A1BF1F1796CE1F7A872060327F27B7905D7307F97E79A50C - 9D07E27C5E2EDF21D7927DE05D2F6F91AC69194F3A7F880641C0E8DE2CFD83BA - ACEC13CFD57A1FF65F64E8BC1067EAEFC94BA5D3C7C6E00192EFEA68D2F94374 - 080216F60CF94019136FD3DA557E4FB24E0067FB4BE994B129D44371F0F15919 - 3A4F6CA4F387642008985B6FD55B55A6C45DA517745D2243E78C75E815FD5F90 - 0BE59E88C51325DFD1A5A5F387E420085852FF70F9072C6596977EEAF36E044F - 5184DE0796A7D34AEF27D790A9E35D07DF97A1F751A374FE902C04018D47C969 - 6F97EA1A9FEFCBE4F132F49E306FBD9ADF4FFB3BC8DCF06E99974B17190ABDB7 - 5AA4F387E4A93908F00F949FACBAD8DED727DBCAB7CA5365E87D621E7A45BD47 - 775CD9D3F765EEF87B596B804AE70FD950631070ACDC5A96C6DDA5772FFC5986 - DE37A6A5F3ECBB92E48B65977BF763E17A021F9035D513A0F387ECA82508F08A - FAF74ACFA797CE56F2BFE4CF256B06D2F146E969A77D646E534F93F270E98E31 - 743D4A92CE1FB2A5F420E06CB993AC112788799AFC8ABC5886AE0F76A7CB427F - 557A787FB179F973C5DFC1AFC9D0F529413A7FC89E5283808365AD3FBCB3718E - 817BC857C923A5531D87AE194EAEE7F3BD57FF8DF2FE3285FDFAA9F04C595AC6 - CB73259D3F14414941809FBCF69030379E0E79A40C5D3F1CDFD7CAD524CCCD5D - E4AF64E8FAE5269D3F14470941C08FE4461246A38639DA3EDC58C2C2B89E8047 - 4872AE2740E70FC5926B1070BD7CA5F450378C0E095C16AF479C603C9CD9F074 - 19BA9E294BE70FC5935B1070A2BC9B84F1395086AE298EEE4F248CCFCAF2D332 - 744D5394CE1FAA218720C0FB8C3F24BDEF1826E37932746D71741D44C1E4EC2E - 2F92A16B9B8A74FE501D2907019EBB7E8484C5E1B4B3A1EB8BA3FB6C098B637D - E9DD29A1EB1B5B3A7FA896148300EFAD5E53C2E271B199D035C6D1BDA784C5E3 - F4DC2F9129D513A0F387EA492508B842EE2D61BAB0136072BD9A7D4509D3C3E9 - BA8F93A1EBDDA774FE002DB183805F48B65A75033B0126D7657B61FA384FC5FB - A4D37887AE7BD7D2F903CC224610E01CEA4EB24256B5EE6027C0E43ADB2474C7 - C3E4393274EDBB92CE1F600EFA0C024E91CCAF760F3B0126D7A995A15BBCDEE7 - 5019BAFED396CE1F6001BA0E02BCBDEFA3722509DDC34E80C9DD45423F78FD8F - D701853E876948E70F30225D050117C8474BE80F76024CEE7A12FA6313E9F540 - A1CF6231D2F9038CC9B483806FC8B525F40F3B01C6F7EF12FAC7EB815E2FA755 - 4F80CE1F6042A611045C259F2B211EEC0418DFA324C4E3DEF25419FA6C4695CE - 1F60912C2608385A6E2A212EEC0418DFF74A888B7F7B3E29439FCF42D2F9034C - 897183000FDFBD59BA3C28C4879D00E3FB340969F05879A10C7D4E21E9FC01A6 - CCA84180CB80BA1C28A4033B01C6775B09E9E00599DF91A1CF6AA674FE001DB1 - 5010E0E13A970185B46027C0785E2F19BD4A0FD7137891BC56863E373A7F808E - 0905011E9EDB4D42BAB0136074FF20215DB692FE8C667E6674FE003D313308F8 - B65C5742DAB01360743F27216D9693EF91AE2740E70FD0330E02F6901E9683F4 - 6127C0E8EE27210F769274FE0000F3C04E80D175A702003D73EBF60800D3E5E4 - F6080BE37AF500D033040000DD406DFBD17079DA4B9B2600F409010040375C26 - CF6F9A300F3CFD0344820000A03B9806581802008048100000740701C0C21000 - 0044820000A03B5807B03004000091200000E80E4600E6E71AF9E7A609007D43 - 0000D01D8C00CCCF09F29F4D1300FA860000A03BD809303FC7B7470088000100 - 40B7300D3037C7B647008800010040B71000CC0D0B000122420000D02DAC0308 - E3B97FAF01008048100000740B230061CE9057354D008801010040B730021086 - E17F80C8100000740B3B01C2B003002032040000DDC334C0D2B0030020320400 - 00DD4300B0348C000044860000A07B5807B02497CBB39A2600C4820000A07B18 - 0158121600022400010040F73002B02404000009400000D03DEC045812E6FF01 - 12800000A01F9806B80576000024000100403F300DD070B32418024800020080 - 7EA0D36B384D5ED734012026040000FD4000D0C0F03F4022100000F40353000D - EC000048040200807E602740033B000012810000A03F9806600A002019080000 - FAA3F669800BE5054D130062430000D01FB58F0030FF0F9010040000FD410000 - 00C9400000D01FB54F0110000024040100407FD4BE138000002021080000FAA5 - D669801BE4294D130052800000A05F6A9D0670E0E33A00009008040000FD52EB - 0800C3FF0089410000D02F0400009004040000FD52EB140001004062DCAA3D02 - 407F9C2737689AD5B096BCB46902400A300200D03FB54D039C23E9FC01128300 - 00A07F6A9B0660F81F2041080000FAA7B6110002008004210000E81F02000088 - 0E010040FF30050000D1611700401C6AD909708D5C55FE73F00A009281110080 - 38D4320D7082A4F3074810460000E2F028B95DD32C1A073ADF6C9A0000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000DCB2CF3FF06FB5A956F238E1F0000000049454E44AE426082} + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000B8D50002F000019CDED795000000004945 + 4E44AE426082} FileName = 'E:\AErender CC 2018\icons8-settings-512.png' end> Align = Client @@ -18449,304 +18400,40 @@ object MainForm: TMainForm PNG = { 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 251A49444154785EEDDD09F86E555D2F700C5054440514079CD13015E7141145 - 51C129A7D44AADAE6975337BEE2D6FE3CDA6A7ECA64D5A6966A537B3D4343415 - 714264709ED112F42A084E80CC20F3FDFEF67E8F1CE07FCEF90FEFFBFEF7DAFB - F3799EEFB3D7FA53729EC3FFDDEBF7AEBDD6DA3B010000000000000000000000 + 041049444154785EEDC13101000000C2A0F54F6D076F20000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000003030D79B5D8171D835D97DAB6BB97172FDBEB9D3CD92FADC6F - FDCF2F482E4BAE4ACEA91FC4A5C9857DF3FBFF7CCB15180105000CDB0D923B24 - B74DF6DE2A7B5D2B5B7EBE47B248E72567CE72D62CD76E574E4F4E492E498001 - 5200C0E6AA6FE2B74BEEB855EEB4556E9DB4FA39AD19856F245F9DE56BD7CAD7 - 13330AB0491400B01CBB24774BEE95DC7B76BD675283FFCEC9145D9E54117062 - F2F9E4B3B3EBC949FD3360811400307FFB2407CC52037DE51E494DE7B363DF4B - BE987C2EA982A0AE95EF24C09C28006063EA9B7D7DA37F487260F2D0A4BED533 - 7FA726C7271F4E8E4DAA38B82201D64101006B7393E4A0A406FB1AF41F34FB19 - CB777EF2D1E484A40A826AD7CF80555000C0F6DD283924393C795852CFEDA7FA - CC7EE86A36A0D6137C287977F2C1E4A20458810200AE6BFFE4B1C996417FB784 - F6D45A822A06DE99BC2BF97202CC2800A0FF96FFA864CBA05F5BF1189F2A006A - 66E0C8C4EC0093A70060AAF64C9E923C3D7978E25BFEB4D4EC4015016F4E8E48 - BE9BC0A4280098923A06F7C9C9339343933A8407EA30A2F7266F4CDE969C9BC0 - E8290018BB3A1AF749C933924727F6E2B33D7574F17B922A06DE9ED85500D090 - 1AE46B6AFFDF938B933A925664ADA935026F4DEA7769CBCB940018A05ABDFFA7 - 499D18B7D20D5D64BDF976F2D2A47EC70018801B26CF496ABBD74A376E9179E6 - CAE498E4D949FDEE01B06475CEFE2B92B393956ED4228B4EED1C787952EF7A00 - 6081EA396C7DF3FA48B2D20D5964B352EF27A8DF4D3B4B00E6A8B6EFFD5A727A - B2D2CD576428A91716BD28A9DF5900D6E90EC99F27E7252BDD6C45869AFA9DAD - DFDDFA1D0660951E98FC4B5207B4AC7473156925F53B5CBFCBF74F0058411D4A - F584C46A7E196B3E903C2E0160E6B0E463C94A374D91B1A516B1D6A9940093F5 - 88E4B864A59BA4C8D8736C522FA202988C83929A0E5DE9A62832B5D48B881E92 - 008C562DEEABF7B1AF741314997ADE993C2001188DBB27F566B5956E7A227275 - EAA8E1B724FB2500CDAAC3505E96D42B5657BAD989C8CAA9CF4C7D761C280434 - 6597E417923392956E6E22B2BAD467E867931F480006ED90E4C464A59B9988AC - 2F9F4AEAB3053038F5CCF2ADC94A372F11994FEA33769704366CE7D915D6EB46 - C91F26FF37B967FD0058985A50FBFC64B7A40E14BA3C8175A9E35761BDEA34B3 - 572577EE7AC0327D39A962E0835D0FD6C8C212D663CFE41F93A312833F6C8E7A - EC56076ABD26B15B80353303C05A3D33F9CB649FAE070CC1B7925F4CEA0C0158 - 150500ABB56FF2D7C98F743D60888E485E907CA3EBC1765804C88ED463A29F4F - FE3D39A07E000CD6FEC9F392B393DA3A08DB640680EDB95DF2BAA4DEDA07B4E5 - FDC94F27A7753DB8168B00D99667249F4D0CFED0A64393FA0C3FB5EBC1B52800 - B8B63D92D7266F4C6E5E3F009A553B766A6160ED14D8BD7E005B7804C0D61E9C - BC3E71D2188C4F9D1BF0ACE4635D8FC9B30890522FEFF9DF497DF3DFBB7E008C - 4ECD06FCB7E48AE484A48E1666C2CC005007F9FC53F290AE074CC1B1C9739253 - BA1E93A40098B6DAD35F67F8DFB4EB0153724EF2ECE49D5D8FC9F108609A6AF1 - E7EF277F93D44B4580E9A9CFFE8F25F545B066043C1298183300D3B357520BFD - 0EEF7A00FD2C40CD06D4AC0013A1009896FB24F53EF13B753D80AB7D25795A52 - 67073001CE01988E9F4C6AE5AFC11F58496DFFAD7BC44F743D46CF1A80F1DB35 - 7979F247B336C0B6D43DA266016ACB601D257C65C2487904306EB748EAED60B6 - F8016B550B03EB18E133BB1EA3A30018AFBB25EF4A9CEA07ACD7C9C9E3675746 - C61A80717A58F2E1C4E00F6CC45D935A177050D763541400E3530B78DE93D433 - 3C808DAAE3C1DF97D41B4219118B00C7E5B792BF4AEA6C7F8079A97BCA8F2697 - 24C7D50F689F02601C6AE5EEDF25BF9258D7012C42DD5B1E95DC363932B143A0 - 71068BF6D539FEFF96D4071360198E4A9E9E9CDFF5689202A06DB74CEA835827 - FC012CD3A792C312DB041BA50068D76D923AA863FFAE07B07C5F4C6AF6F19B5D - 8FA62800DA74C7E40389637D81CDF6E5A48A8053BA1ECDB00DB03D3F987C2831 - F80343B05F52F7A43A7C8C86980168CBBD92F726FB743D80E1F856F2E8E4C4AE - C7E0990168C703920F26067F60886E95D43DEAFE5D8FC15300B4E1A1492DF873 - BA1F30647B2575AFAA7B1603E711C0F0D507A9B6FADDA8EB010CDF85496D113C - BEEB31480A80617B6052CFFCEBB01F80969C9BD4EE804F743D064701305CB5E0 - EFE8A4A6D4005A74467268F2F9AEC7A0280086A9B6D31C9BD4497F002DABDD01 - 0727755E0003A200189EDADF5F7B6AF7ED7A00ED3B2D392839B5EB310876010C - 4B0DFAF5CCDFE00F8C49DDD36A77401D61CE40280086E316C97B92BB743D8071 - A91303EB1E57F73A064001300CB5CABFBEF9DFBDEB018CD33D92772776360D80 - 0260F35D3F796B72EFAE07306EF74BDE94ECDCF5D834FE036CBE57274FED9B00 - 93508F3AEB51C03BBB1E9B4201B0B97E3DF95F7D136052EAA0B34B92E3BA1E4B - A700D83CCF4AFE3AB1151398AA3A24A8CE077050D02630F86C8E47264726F5FC - 1F60CA2E4E1E917CB4EBB1340A80E5ABAD302724B6C200F4EAC8E087244E0B5C - 2205C072D5A05F837F1501005CAD06FF2A02AA1860096C035C9E9AEE3F2231F8 - 035C57DD1BDF92ECDAF558388B0097E72F93A7F54D00567087E426C9515D8F85 - 52002CC74F267FD43701D88E0727272776062C9835008B77DFA4F6B9DEA8EB01 - B023172507269FEB7A2C840260B1F64C3E91D42B7E0158BD5A14F880E4DCAEC7 - DC5904B838F578E59F13833FC0DAD5A2C03724BEA82E8835008BF3FBC973FB26 - 00EB70D7E4AAE498AEC75CA9AC16E34792DAF2E7EF176063AE4C9E90D4E9A9CC - 91016AFE6ACAFFD389F75D03CCC7D9492DA83EA5EB3117D600CCD796E7FE067F - 80F9B979F2BAC463EB39F297395FBF9D3CA76F023047774CEAF5C1C7763D36CC - 2380F9A93DAB1F4A76E97A00CCDB65C941C9C7BB1E1BA200988F3ABAF233C99D - BB1E008B52A704DE2FB9A0EBB16E1E01CCC7DF26F53E6B00166BAF649FE4ED5D - 8F753303B071CF48DED8370158927AB9DA5BFB26EBA100D898DB259F4D6A852A - 00CBF3DDE480E4F4AEC79AD906B87E553CD5B614833FC0F2D5BB56EA1EEC8BEC - 3A5903B07EFF3DF9C5BE09C026A885D7DF483ED9F5581395D3FAEC9B7C21D9A3 - EB01B059EA6D813F945421C01A7804B03E7F9D18FC01365F9DBCFA8ABEC95A28 - 00D6AE56FDD7CB7E001886A7CEC21A7804B036B5E8E48B49ED41056038EA11C0 - 3D9273BA1E3B6411E0DAD4D4FF43FB2600035227B2D62141FFD1F5D8213300AB - F7E8E4A8C4DF19C0305D953C32F960D763BB0C66AB73E3E47389B3FE0186EDA4 - E4DEC9F7BA1EDBE411C0EAFC41F2C4BE09C080D563809A0938BAEBB14D660076 - 6CBFE4C4E4065D0F80A1AB6FFF774FBED6F558916D803BF6D2C4E00FD08EDD92 - 3FE99B6C8B1980ED3B34795FDF04A0310F4F3ED437B93605C0B6D5FA88CF24F7 - EC7A305C5724C726C727DF4CBE932CC22D935B2707270725D61031749F4E1E90 - 5CD9F56095EA653FB5904464A8B928F9C364EF64D96E91BC24A93FC34A7F3691 - A1E479092B3003B0B29B25B595A46E723044F5CDE6C9C9A95D6FF3DC29796B72 - 9FAE07C3F3EDE46EC9795D8FEFB3087065BF9318FC19AA0F24350DBFD9837FF9 - 6A52A763D69F0986A88E6EFFEDBEC9D6CC005CD7FE491DFAB36BD78361F952F2 - A0A45E813A24F546B64F24B56D1686E692E45EC9C95D8F8E1980EBFAE3C4E0CF - 10D5F3CC9F4E8636F897FA33FD54DF84C1A9ADDC756F672B0A806BFAE1C4AB7E - 19AA23928FF4CD413A21A93F230CD15392FBF54D8A02E09A7E2FF15884A1FAFB - D975C85AF833324D756FAF7B3C3306BBABD5BEE6E3FA260CCE85496DF71BFA0B - 4E6E989C91D40BB460880E4C863C93B6346600AE562FFC81A1FA72D2C2DBCD2E - 4EBED2376190CC02CC28007A8F980586EA5BB36B0BEA344218AAC7240FEB9BD3 - A600E8F9F6CFD09D35BBB6A0A53F2BD3F4FBB3EBA4290076DAE9F0A49EFF0330 - 0DF592A047F5CDE99A7A01605528C0344D7E1660EA05C0E393DAFB0FC0B4D46E - 80C3FAE6344DBD00F895D91580E9F9F5D97592A65C003C3039A46F0230413506 - DCB76F4ECF940B8017CDAE004CD764C782A91600B74F9EDA370198B067243526 - 4CCE540B805F4E76E99B004C588D052FEC9BD332C502E066C9CFF44D00D8E9E7 - 921A1B26658A05C0F392DDFB2600EC7493A4C68649995A0170FDE47FF64D00F8 - BE7A0C5063C4644CAD00F8B1E4367D1300BEAF1602D6183119532B007E617605 - 806B9BD41831A502E080E4417D1300AEA3C6887BF5CDF19B5201F0FCD91500B6 - 65328B01A75200DC307976DF04806DAAB1A2C68CD19B4A01F0A3C9E4F67802B0 - 667B26933829762A0580E97F00566B1263C6140A80FD9383FB2600ECD0C392BB - F5CDF19A420130B9D39D00D890EB25A31F3BC65E00D4A94E3FD537A1692D2D4A - 9AC4022A46AFC68E519F0C38F602E0C9C9DE7D139A76DBD9B5052DFD59615B6E - 993CA16F8ED3D80B801F9F5DA175754C694D4B0E5DFD19EFD437A1793F31BB8E - 520B3794F5DA23F976B25BD783F6DD3FF954DF1CACFB259FEC9BD0BC8B937D92 - F3BBDEC88C7906E04712833F63F2F4D975C89E39BBC218D47A9627F6CDF11973 - 01E046C4D8FC6252DF4686EAD6C90BFA268CC63366D7D1196B0150A7FE3DA66F - C268EC9EFC65DF1C9C7A9CF817C98DBB1E8CC7E1493D521E9DB11600B5FA7FD4 - DB3798AC9AD9FAF5BE3928F5671AED372526ED06498D29A3B3F3EC3A367F94DC - B56FC2E81C9AD4FA96A393ABEA079BA8BE44BC24797132E645C54C5B7DA17C43 - DF1C8F317E60F74ABE99ECDAF560BC8E495E947CA2EB2DDF03939725756C2A8C - D9A5C9AD92B3BBDE488CF111404DD518FC998287271F4BDE97D402C1FB248B5C - 2458FFDBF5EFF8A5A4FE9D1F4D0CFE4C41CD003CA56F8EC7186700DE9D1CD637 - 01602E6A6C796CDF1C87B11500B54AFACCA4166D00C0BC7C2FD933A9C3814661 - 6C8F006A4AD4E00FC0BCD5C2DB47F6CD71185B01F0F8D91500E66D548F97C7F6 - 08E02BC99DFB2600CC558D31FBF5CDF68D690660FFC4E00FC0A2DC6596511853 - 0160E53F008BF6B8D9B579632A0046F31F0580C11ACD97CDB1AC01A857367E37 - F1FA5F0016A9B601D676C0DA16D8B4B1CC00D4D60C833F008B565F38477102E6 - 580A807A5D23002CC3284E041C4B0170F0EC0A008B368A31670C6B006E9A9C95 - 8CF5D5C6000CCBE5C9CD930BBA5EA3C63003F0A0C4E00FC0B2EC92D4D8D3B431 - 140007CDAE00B02CCD8F3D0A000058BBE6C79ED6D700D4D4FF3949BD06180096 - E5BCA4CE03B8A2EB35A8F51980FB24067F00966D8FE45E7DB34DAD170007CEAE - 00B06C4D3F0668BD00F0FC1F80CDA200D8440A0000364BD36350CB8B006F957C - B36F02C0A6B8657246DF6C4BCB33004D2FBE0060140E985D9BA3000080F5BBF7 - ECDA1C050000AC5FB36351CB0540B3D32E008C46B30540AB8B00EB450CF516A6 - 1B743D00D81C172737499A3B11B0D51980BB25067F0036DB0D93FDFA665B5A2D - 003CFF0760289A5C08A80000808D69724D5AAB05800580000C45935F4A150000 - B031F79C5D9BD2E22E805D935A75B973D70380CD7579528B01EBDA8C1667006E - 9718FC01188ADA9ABE6FDF6C478B05C01D675700188AE6C6A6160B803BCDAE00 - 30140A8025300300C0D034F7E5540100001B670660091400000C8D0260091400 - 000C4D738F005A3B07A05E007451D262E102C0785D99D459009776BD06B43690 - D6B77F833F00435363D3EDFB661B5A9B017864F2FEBE09ACC325C949C9B7930B - EB0771E3649FC46BB661636A8C3ABA6F0E5F6B05C0D39337F54D60156AC07FF7 - 2C75633A39A9A9CA95D437982A021E911C9E3C36A9A3B781D5F9D1E42D7D73F8 - 5A9B4EDF7B7605B6EFF4E45792DB244F4E5E957C29D9D6E05FEA9FFD57F2CAE4 - 49C9AD921725DF48801DDB6B766D820200C6E582E497933B277F967C3759AFFA - FFFDD3A4FEB77E35A9FF6D60DB6E31BB36A1B50260CFD915B8AE9AE2DF3FF9F3 - 649E2B91EB31C24B931F4A9A79BE099BC00CC00235F5970B4BF407C9A3929AFA - 5F94AF278F4E5ED2F5806B6BEA4B6A6B05C02D6757A07745F273C98B93ED3DDF - 9F97FAF7FD66F282591BB89A47000BE411005CD30B9357F7CDA5FA9BA4FEDDC0 - D53C02582005005CEDF7925AB1BF59EADFFD277D1388A60A80D6CE013837D9A3 - 6FC2A4D5815887259B3D0DBF73F2BEE490AE07D37676D2CC17D5960A80EB27B5 - 1A19A6EEFCE4EEC92217FCAD451D7FFA8564F7AE07D35687675DDE3787ADA547 - 00F5920560A79D7E3719CAE05F4E4D6A1702D01FADDD849666006E9B9CD63761 - B26AE0AF837986F6C6B12AD0BF92DCBAEBC174D5099AF5AE8DC16B6906A09E35 - C2D4D5E97E437CDDE8C5491D400453D7CC0BB55A2A006A0D004C590DFCAFEB9B - 83F4DAE4B2BE0993D5CC97556B00A01D472667F5CD413A23A9B70EC29435B318 - B6A502A0B52D8B306F55000CDD51B32B30702D1500F6FF3375C7CCAE43F681D9 - 15A6AA99B1AAA50200A6EC7BC9497D73D0EACF38C4458AB02CCDCC56B7540034 - B3B71216E0E464192FFBD9A83A99B085420516A599F56A2D1500BBCCAE3045B5 - C0AE1567CEAE3045CDEC586BA900A8E31561AA2E985D5B504715C35435335659 - 03006D50000073D55201E080110086AE99B1AAA502A089B72B013069CDEC8269 - A900B870760580A1AAF76234C11A0000989FAB66D7C16BA900386F760580A16A - 66AC6AA90068A6AA0280A16BA90068E6B90A0093D5CC96DD960A00E78B033074 - 751C76135A2A009AF94B0560B22E995D07AFA502A0A593D00098A67A7367135A - 2A002E9A5D0160A89A39B3A6A502A08E57B4151080A1FA6ED2CCA9B52D1500A5 - A557A202302D550034A3B502A0A9BF5C0026E5ACD9B509AD15004DFDE5023029 - 67CEAE4DF0080000E64301B040660000182A6B0016C81A000086CA1A8005F208 - 0080A1FACEECDA048F0000603E3C02582005000043A50058A053675700189AA6 - C6A8160B802BFB26000C46BDB15601B0409726DFE89B003018A727F5CE9A66B4 - 560094AFCDAE003014CD8D4D0A0000D83805C012280000181A05C01228000018 - 9AAFCEAECD68B10068EE2F1980D13303B004660000181A05C012D43ECBCBFB26 - 006CBA1A934EEB9BED68B100A8BF682702023014A724CD7D316DB1002827CEAE - 00B0D9BE30BB36A5D502E0F3B32B006CB6CFCEAE4D510000C0C67C6E766D8A02 - 000036A6C931A9D502E0A4E4E2BE09009BA6C6A22FF7CDB6B45A00D46ACB2FF6 - 4D00D8343516D5AB809BD36A01503C060060B3353B1629000060FD9ADC015014 - 0000B07E4DEE00282D1700CD565D008C8647009BE03B89238101D82C7504F019 - 7DB33D2D1700E584D9150096EDF8D9B549AD1700C7CDAE00B06C0A804D640600 - 80CDA200D844B5FAF282BE09004B736ED2F49B695B2F00EAF4A50FF74D00589A - 8F244D9E00B845EB0540F1180080656B7EEC194301D0F43318009AD4FC22F431 - 1400CD4FC300D0947A21DD47FB66BBC650009C9F3816188065F94C7261DF6CD7 - 180A8072CCEC0A008B368A31672C05C07B66570058B4518C396329008E4E2EEE - 9B00B0301725660006A4067F8F010058B4FAC27949DF6CDB580A8072E4EC0A00 - 8B329AB1664C05C0BB6757005894D18C35632A004E4ABED2370160EE4E4E4633 - CE8CA9002847CDAE00306FA37AD43CB602E05DB32B00CCDBA8BE648EAD0018CD - EA4C0006A5769BD518331A632B006A7FE607FB2600CCCDE8CE9B195B0150DE34 - BB02C0BCBC79761D8D311600FF9E5CD6370160C32E4D8EE89BE331C602E0ECE4 - BD7D130036ACCEFE3FA76F8EC7180B80E2310000F3F2C6D97554C65A00D4548D - DD00006CD4F792B7F7CD71196B01706EE215C1006C541DFE735EDF1C97B11600 - 65945336002CD5E856FF6F31E602A0A66C6AEA0600D6A3CE96F98FBE393E632E - 00CE4F1C0D0CC07AD5187241DF1C9F311700E55F67570058AB37CCAEA334F602 - E06DC9197D130056EDDBC93BFAE6388DBD00A8D39B5ED7370160D55E9B8CFA54 - D9B11700E535C9557D130076A8C68C7FE89BE3358502E04BC9717D130076A8DE - 2A7B52DF1CAF291400E56F675700D8919A391EBDA914006F4DEA254100B03DDF - 4D6ACC18BDA914001727AFEF9B00B04D35564CE210B9A91400E5EF665700D896 - C98C15532A003E9F7CB46F02C0757C3839B16F8EDF940A80F237B32B005CDB2B - 67D749985A015047037FBD6F02C0F79D9AFC4BDF9C86A915007532E0CBFB2634 - E506B36B0B769B5DA125AF482EEF9BD330B502A0D4FECED1BEDD89D1DA7D766D - C14D665768C539C9E4168A4FB100A8FFD00E06A235379B5D5B70D3D9155A515F - 0CCFED9BD371BDD9756A6E9F7C25D9A5EBC1F0D5E1247BF5CDC1AB43B75A2A58 - 98B69AF6BF4B526B0026658A3300A5FE434FE2A4274663CFE4967D73D0F6490C - FEB4A4DEF93FB9C1BF4CB500287F3CBB422B0E9E5D87ECE1B32BB4E22F66D7C9 - 997201F0E9A4DEF804AD3874761DB247CDAED082F72535164CD254D7006CF1F8 - E41D7D1306EF3BC9BEC9655D6F78AE9F9C9EECDDF560F81E93BCB76F4ECF9467 - 00CA3B938FF44D18BC5A035045EB50D59FCDE04F2B8E4F263BF897A91700E577 - 665768C18B66D721FAB5D9155AF0DBB3EB64290076DAE93DC9B17D1306EFA064 - 88CFD90F4F1ED43761F06AFDD7D17D73BAA6BE06608B5AB96C4120ADF8AFE480 - 64286B01EA98E27ADBE65DBB1E0CDF43937A04306966007AC724EFEF9B3078FB - 272FEE9B83508FD10CFEB4E2A864F2837F310370B5039313FA260CDE15C9E392 - 7A84B5996AEAFF5D897B092DB82A7970F2B1AE37716600AEF6E1E4C8BE0983B7 - 73F2A6E45E5D6F73D4BFBB5EB16DF0A715B5EDDBE03FE3837B4DF74F3E9EF87B - A115A7258F4E6A5DC032D56388DA4255E712400BEADBFFFD92CF743DCC005CCB - 2793B7F54D68420DC0C725CB5C815F8FCBEADF69F0A725FF9618FCB7E29BEE75 - D562A62F24BB763D68C325499D11F0575D6F31EA7EF13F92FF93F87CD092FA7C - FC50F2FFBA1E9D7A8EC835D56B57EB7DE60FE97AD0867AB5752D0AACED4DF58C - F3AC649EEE9EBC31F9F9C47D83D6BC2CA91900B66206606555009C9CDCA2EB41 - 5B2E4D5E9BD41B2FBF5A3FD8807A4FFA6F24CF49EAAC7F68CDB7921F4CCEEB7A - 7C9F0260DB9E9FBCBA6F42936AAB609D6FF1FAA4F63ED7CB8456A3DEE97F5852 - 83FE2312DFF869D973937FEC9B6C4D01B06D75D3FB44729FAE076DAB15D027CE - F2A5A4BE155D9094DD935B27774B6A6BDF3D12F706C6A0EEE1B540F6CAAEC735 - F8906F5F7DFBF940DF04A02155F43E2CA91D2BACC036C0EDAB9745BCA56F02D0 - 905AB46AF0DF0E33003B76A7E48BC96E5D0F80A1BB28A99D2BA7763D566471CF - 8E9D93DC3839B8EB0130747F98BCBD6FB22D660056E786C9E792FDBA1E004355 - C762D7E2ED3AFC87EDB00660752E4E7E36A94525000C53DDA36B0BB7C17F153C - 0258BDAF2575F679BD4C0280E17955F2CABEC98E7804B036374FEA3D01B5671A - 80E1383DA9F3FE9DF8B74A1E01ACCDD9C90BFB260003F282C4E0BF060A80B5AB - 73018EE89B000CC09B13AF725F238F00D6E736499D0D502F0D0260F3D4CC6C1D - 5FFDCDAEC7AA5904B83EE727F5DAE027763D0036CB2F251FEA9BAC851980F5AB - BFBBF72687763D0096ED3DC9E1892DDAEBA000D898DB267540D09E5D0F806539 - 2BA9B7579AFA5F278B0037A6B69DD40141002CD7CF2406FF0DB00660E3FE33B9 - 5DE2802080E57875F2B2BEC97A7904301FBB279F4EBC2B0060B1EAACFF072417 - 763DD6CD2380F9B82079567259D70360112E4D9E9D18FCE7C02380F9A9F50057 - 268FEC7A00CCDB6F2575E80F73E011C07C554175747270D703605EEADEFAA8A4 - BE6831070A80F9BB43F299E4665D0F808DAA2D7FF74DBEDEF5980B6B00E6EF94 - A4D60338980260E3AE48EA9E6AF09F336B0016E3E4D9F590D91580F5F99DE41F - FB26F3E411C0E2D4DFED3B92C7753D00D6AADEBCFAD4C48CEA02280016ABD601 - 7C22B94BD70360B54E4A7E3839B7EB3177D6002CD639C9D3928BBA1E00AB51FB - FCEB9BBFC17F8114008BF7D9E4F97D138055786EF285BEC9A25804B81C9F4F6E - 9E3CB8EB01B02D7F9EFC59DF6491AC01589EEB27EF4F1EDAF500B8B60F248F49 - 6AEB1F0BA60058AE5B2427245E1A04704D5F4E1E947CB7EBB170D6002CD719C9 - 636757007A5BEE8D06FF2552002C5F55B94F4C2EE97A00D356BBA4EA9E58F746 - 96C822C0CD516F0EFC6AF294C4631860AAEA809F6726B53E8A2553006C9EDA19 - 50B300F5762B8029FACDE4357D936553006CAEE3927D9207763D80E97865F21B - 7D93CD60FA79F355117664F2E8AE07307E6F4FEAA43FDBFD36910260186E9AD4 - FED7FB753D80F1FA78526F4A7544FA26B30B6018EABCEBC313475F0263566B9F - EA0DA906FF013003302CB7498E491C14048C4D6DF3AB9350BFDDF5D8740A80E1 - B97D727CB26FD70368DFA9C941C9695D8F41F0086078EA83F288E45B5D0FA06D - DF480E4D0CFE03A30018A69A2AAB17629CD9F500DA5447FC1E9638E56F801400 - C3558B65EA6CEC5A2008D09ABA77D53DECC4AEC7E0280086ED13C9E3930BBB1E - 401BEA9E55ABFD3FD9F5182405C0F0D582C0DA226826006841DDAB6ADABF5E7D - CE80D905D08EFB2747257B753D80E1A9754B35F87FAAEB31680A80B6DC33796F - 72ABAE07301CDF4CEA4873079A354201D09EBB26EF4BEABC0080213825A9379B - 5AEDDF106B00DA7372F2B0C4070D18829312F7A4062900DA54D5767DE0BED8F5 - 0036476D577E78520798D1180540BBEA795B7DF02CB60136436D53766A69C314 - 006DAB15B7F55ACDDA1D00B02CEF4A6AF03FABEBD1A49D6757DA7569F2AF49ED - 0CA8AD82008BF4CAE427934BBA1ECD52008CC395C93B92EF25F5D20DBB3B8079 - ABFBCCAF26BF955C553FA06D068AF17946F2BA64B7AE07B0711727CF49DED2F5 - 180505C038D57BB78F48F6EE7A00EBF79DE449C947BA1EA3A10018AFFD925AA8 - 53070701ACC797927A21D957BA1EA36217C078D5A11C07261FEA7A006BF3C1E4 - 2189C17FA42C021CB77A6EF7CFC91EC983EB0700ABF06749ADF4F72AF211F308 - 603A7E3C794D72A3AE07705D1724CF4BDED8F5183505C0B41C90D42ADE5A1F00 - B0B53AD3FFA989B7F94D843500D3F2B9E481499D1900B0C5DB93BA3718FC27C4 - 1A80E9A9C3826A7AAF0EF2A8170A990582E9BA227971F282C4C97E13E3E63F6D - 8F4B5E9FDCBCEB015352E7F83F2BF12E9189F20860DAEA9C80FB24B60AC2B41C - 9DDC3731F84F9847009C9BFC5352D37FF548C0EF048CD765C96F263F9FD4679F - 09F30880ADD522A03A37C0E981303E75AA5F4DF97FB2EB31791E01B0B58F27F7 - 4BFEBEEB0163F1EAA43EDB067FBECF0C00DB52FB81EBA6B157D7035A7466F2FC - A45E0E06D7A000607BF64D5E9B1CDAF58096BC37F9A9E49B5D0FAEC52300B6E7 - B4E4D1C9CF25E7D40F80C13B3BA9E37C0F4B0CFE6C93190056EB36C95F254FE9 - 7AC010FD5BF2C2E45B5D0FB64301C05AD5DA805724551000C3707A52A7F9BDAD - EBC12AD8F3CD5AFD67F20F492D0EAC55C58A48D83C5726AF4AAA30FF6CFD0056 - CBCD9B8D7878523B05EED6F58065FAAFA456F81FD7F5608DCC00B011A7247566 - 407D0BF9E164D70458AC8B93972475A8CF57EB07009BE9F6C99B927ACBA088CC - 3F5568BF21A9CF1AC0E01C927C2A59E9062622EB4B7DA60E4C0006ADCE97786E - 527B9057BA9989C8EAF28DA43E4BCE6C61EEAC016011EAC6F5E9A4D607D4BA80 - 07247ED760F52E4D5E9A3C23F968529F2980E6EC97D40125F50C73EB6F372272 - CDD467E4CD497D660046A3CE0DF88F64A51B9FC8D4F3F6E43E09C0683D38794F - B2D24D50646A7977F2C00460320E4E3E98AC745314197B3E901C94004CD6A392 - E393956E9222634B9DDCF788048099C726F5AD68A59BA648EBA9F7F33F260160 - 1BEE9FFC73525BA156BA918AB492FA1DFEA7C4E23E8035B85D527BA1CF4D56BA - B98A0C35F53B5BBFBBF53B0CC03AED91BC28393559E9662B3294D4EF68FDAED6 - EF2C007352A70A3E3BF970B2D2CD5764B3724252BF9BDE8809B060F74A5E9E9C - 95AC7443165974EA77EF2F92FA5D0460C96E98D47BD18F491C352C8B4EFD8E1D - 9DD4EFDC0D120006E007933F49BE9DAC74F316596FEA77EA8F93BB26000C543D - 877D5AF296E4A264A51BBAC88E52BF3BF5629E27279EED333AD79B5D61AC6E92 - 3C217966727862DA96EDF95E7264F2A6E41DC905098C92028029B969F2A4E4E9 - 499DC876FD042E49EA94BE1AF4DF969C97C0E8290098AA9B274F49AA183824D9 - 2D613AEA9B7E2DE6AB41FF88E49C04264501003BED74A3A48A807A17413D26D8 - 2F617CBE9CD4AB776B8ABFDE4259CFF861B21400705D55005421500541150655 - 20D09E1AE06BA0AF01BF06FE2A00801905006C5F3D1A78585205415DEF9DEC92 - 303C97279F4DEA4C88A3920F2535D50FAC4001006B73E3E4C0E4215BA5761AB0 - 7CB558AF8EE0ADA3A18F4D3E965C9800ABA000808DD939B967F2D0E4A0596E9F - 307FF5A29DE392E3673931B92201D6410100F377CBA4CE873F60ABEB3D123B0D - 56E7E2E40BC9E767F9DC2C6724C09C280060396AA6A08E91DD52146C49CD164C - 754DC165497DABAF6FF25B0FF4B558CF377B583005006CAE1AFCF74DEEB855EE - B4556E93FC40D2A27A71CE69C9D766F9EA56ED4AFDB35AB8076C0205000C5B9D - 5658B304B74DF64E6E91ECB58DD43FBB59B24867276726F52ADC6BA77E5ED3F4 - D53E3DA96FF79726C0002900605C6A46A17625D4677B4B31506B0FEAB5C9A58E - 43AE19852DFF77E5FCA4BE89D7B4FB966370EB39FC962D74754A5EBD1CA7FE99 - A979000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000008005D869A7FF0F9C4BF973 - 592608CB0000000049454E44AE426082} + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000B8D50002F000019CDED795000000004945 + 4E44AE426082} FileName = 'E:\AErender CC 2018\icons8-info-512.png' end> Align = Client @@ -18963,6 +18650,7 @@ object MainForm: TMainForm Size.Width = 1220.000000000000000000 Size.Height = 514.000000000000000000 Size.PlatformDefault = False + TabOrder = 0 object TasksIsEmptyLabel: TLabel Align = Center AutoSize = True @@ -19037,15 +18725,19 @@ object MainForm: TMainForm end item SizeStyle = Absolute - Value = 100.000000000000000000 + Value = 192.000000000000000000 end item SizeStyle = Absolute - Value = 100.000000000000000000 + Value = 96.000000000000000000 end item SizeStyle = Absolute - Value = 100.000000000000000000 + Value = 96.000000000000000000 + end + item + SizeStyle = Absolute + Value = 64.000000000000000000 end> ControlCollection = < item @@ -19054,19 +18746,24 @@ object MainForm: TMainForm Row = 0 end item - Column = 1 + Column = 2 Control = Label2 Row = 0 end item - Column = 2 + Column = 3 Control = Label3 Row = 0 end item - Column = 3 + Column = 4 Control = Label4 Row = 0 + end + item + Column = 1 + Control = Label6 + Row = 0 end> RowCollection = < item @@ -19076,52 +18773,58 @@ object MainForm: TMainForm SizeStyle = Auto end> object Label1: TLabel - Align = Left + Align = Contents StyledSettings = [Family, Size, FontColor] Margins.Left = 20.000000000000000000 - Position.X = 20.000000000000000000 - Size.Width = 120.000000000000000000 + Size.Width = 752.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'Composition' end object Label2: TLabel - Align = Left + Align = Client StyledSettings = [Family, Size, FontColor] - Position.X = 920.000000000000000000 - Size.Width = 71.000000000000000000 + Size.Width = 96.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'Start Frame' end object Label3: TLabel - Align = Left + Align = Client StyledSettings = [Family, Size, FontColor] - Position.X = 1020.000000000000000000 - Size.Width = 71.000000000000000000 + Size.Width = 96.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'End Frame' end object Label4: TLabel - Align = Left + Align = Client StyledSettings = [Family, Size, FontColor] - Position.X = 1120.000000000000000000 - Size.Width = 71.000000000000000000 + Size.Width = 64.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'Split' end + object Label6: TLabel + Align = Client + StyledSettings = [Family, Size, FontColor] + Size.Width = 192.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.StyleExt = {00070000000000000004000000} + Text = 'Progress' + TabOrder = 0 + end end end object TasksPopupMenu: TPopupMenu OnPopup = TasksPopupMenuPopup - Left = 456 - Top = 144 + Left = 224 + Top = 288 object TaskItemDisplay: TMenuItem Enabled = False Text = '[item]' @@ -19140,17 +18843,49 @@ object MainForm: TMainForm Text = 'Delete Task' end end + object ToolbarPopupMenu: TPopupMenu + Left = 224 + Top = 336 + object ToolbarIconsOnly: TMenuItem + AutoCheck = True + GroupIndex = 10 + RadioItem = True + Text = 'Icons Only' + end + object ToolbarIconsAndText: TMenuItem + AutoCheck = True + GroupIndex = 10 + RadioItem = True + IsChecked = True + Text = 'Icons and Text' + end + object ToolbarTextOnly: TMenuItem + AutoCheck = True + GroupIndex = 10 + RadioItem = True + Text = 'Text Only' + end + end + object XMLOpenDialog: TOpenDialog + Filter = + 'All compatible files|*.aer;*.xml|Launcher configuration|*.aer|XM' + + 'L Launcher configuration|*.xml|All Files|*.*' + Title = 'Launcher configuration' + Left = 224 + Top = 192 + end object TaskEditorPopup: TPopup ClipChildren = True - Placement = BottomCenter - PlacementTarget = TasksToolbar - Position.X = 550.000000000000000000 - Position.Y = 88.000000000000000000 + DragWithParent = True + Placement = Center + PlacementTarget = TasksTreeView + Position.X = 290.000000000000000000 + Position.Y = 116.000000000000000000 Size.Width = 640.000000000000000000 Size.Height = 384.000000000000000000 Size.PlatformDefault = False StyleLookup = 'popupbackgroundstyle' - VerticalOffset = -1.000000000000000000 + TabOrder = 55 OnPopup = TaskEditorPopupPopup object TaskEditorTabControl: TTabControl Align = Contents @@ -19187,6 +18922,7 @@ object MainForm: TMainForm Size.Width = 640.000000000000000000 Size.Height = 322.000000000000000000 Size.PlatformDefault = False + TabOrder = 0 object inputFileLayout: TLayout Align = Top Margins.Left = 8.000000000000000000 @@ -19297,11 +19033,12 @@ object MainForm: TMainForm Position.X = 8.000000000000000000 Position.Y = 96.000000000000000000 Size.Width = 624.000000000000000000 - Size.Height = 152.000000000000000000 + Size.Height = 160.000000000000000000 Size.PlatformDefault = False Text = 'Properties' object memUsageLayout: TLayout Align = Bottom + Margins.Bottom = 8.000000000000000000 Position.Y = 124.000000000000000000 Size.Width = 624.000000000000000000 Size.Height = 28.000000000000000000 @@ -19319,8 +19056,9 @@ object MainForm: TMainForm object memUsageTrackBar: TTrackBar Align = Client CanParentFocus = True + Min = 1.000000000000000000 Orientation = Horizontal - Margins.Top = 5.000000000000000000 + Margins.Top = 4.000000000000000000 Size.Width = 339.000000000000000000 Size.Height = 17.000000000000000000 Size.PlatformDefault = False @@ -19380,8 +19118,9 @@ object MainForm: TMainForm object cacheUsageTrackBar: TTrackBar Align = Client CanParentFocus = True + Min = 1.000000000000000000 Orientation = Horizontal - Margins.Top = 5.000000000000000000 + Margins.Top = 4.000000000000000000 Size.Width = 339.000000000000000000 Size.Height = 17.000000000000000000 Size.PlatformDefault = False @@ -20009,6 +19748,7 @@ object MainForm: TMainForm end end object TaskEditorStepOneToolbar: TToolBar + Cursor = crSizeAll Margins.Left = 1.000000000000000000 Margins.Top = 1.000000000000000000 Margins.Right = 1.000000000000000000 @@ -20018,6 +19758,8 @@ object MainForm: TMainForm Size.Width = 638.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False + TabOrder = 1 + OnMouseDown = TaskEditorToolbarMouseDown object TaskEditorStepOneLabel: TLabel Align = Left AutoSize = True @@ -20067,6 +19809,7 @@ object MainForm: TMainForm Size.Width = 638.000000000000000000 Size.Height = 28.000000000000000000 Size.PlatformDefault = False + TabOrder = 2 object TaskEditorCompButton: TButton Align = Right Margins.Left = 4.000000000000000000 @@ -20121,6 +19864,7 @@ object MainForm: TMainForm Size.Width = 638.000000000000000000 Size.Height = 28.000000000000000000 Size.PlatformDefault = False + TabOrder = 0 object TaskEditorSaveButton: TButton Align = Right ModalResult = 1 @@ -20182,6 +19926,7 @@ object MainForm: TMainForm end end object TaskEditorStepTwoToolbar: TToolBar + Cursor = crSizeAll Margins.Left = 1.000000000000000000 Margins.Top = 1.000000000000000000 Margins.Right = 1.000000000000000000 @@ -20191,6 +19936,8 @@ object MainForm: TMainForm Size.Width = 638.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False + TabOrder = 1 + OnMouseDown = TaskEditorToolbarMouseDown object NewTaskStepTwoLabel: TLabel Align = Left StyledSettings = [Family, FontColor] @@ -20244,6 +19991,7 @@ object MainForm: TMainForm Size.Width = 632.000000000000000000 Size.Height = 314.000000000000000000 Size.PlatformDefault = False + TabOrder = 2 RowCount = 1 Options = [Editing, AlwaysShowEditor, ColumnResize, ColLines, RowLines, RowSelect, Tabs, Header, AutoDisplacement] OnEditingDone = TaskEditorCompGridEditingDone @@ -20270,7 +20018,7 @@ object MainForm: TMainForm end end end - object PopupAniOpen: TFloatAnimation + object PopupAniOpenHeight: TFloatAnimation AnimationType = InOut Duration = 0.500000000000000000 Interpolation = Circular @@ -20279,7 +20027,7 @@ object MainForm: TMainForm StartValue = 1.000000000000000000 StopValue = 384.000000000000000000 end - object PopupAniClose: TFloatAnimation + object PopupAniCloseHeight: TFloatAnimation AnimationType = InOut Duration = 0.500000000000000000 Interpolation = Circular @@ -20288,43 +20036,95 @@ object MainForm: TMainForm StartValue = 384.000000000000000000 StopValue = 1.000000000000000000 end - end - object ToolbarPopupMenu: TPopupMenu - Left = 456 - Top = 192 - object ToolbarIconsOnly: TMenuItem - AutoCheck = True - GroupIndex = 10 - RadioItem = True - Text = 'Icons Only' + object PopupAniCloseWidth: TFloatAnimation + AnimationType = InOut + Duration = 0.500000000000000000 + Interpolation = Circular + OnFinish = PopupAniCloseFinish + PropertyName = 'Width' + StartValue = 640.000000000000000000 + StopValue = 1.000000000000000000 end - object ToolbarIconsAndText: TMenuItem - AutoCheck = True - GroupIndex = 10 - RadioItem = True - IsChecked = True - Text = 'Icons and Text' + object PopupAniOpenWidth: TFloatAnimation + AnimationType = InOut + Duration = 0.500000000000000000 + Interpolation = Circular + OnFinish = PopupAniOpenFinish + PropertyName = 'Width' + StartValue = 1.000000000000000000 + StopValue = 640.000000000000000000 end - object ToolbarTextOnly: TMenuItem - AutoCheck = True - GroupIndex = 10 - RadioItem = True - Text = 'Text Only' + end + object ProjectAwait: TLayout + Align = Contents + Enabled = False + HitTest = True + Size.Width = 1220.000000000000000000 + Size.Height = 617.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 68 + object ProjectAwaitMessage: TPanel + Align = Center + HitTest = False + Size.Width = 320.000000000000000000 + Size.Height = 64.000000000000000000 + Size.PlatformDefault = False + TabOrder = 0 + object ProjectAwaitIndicator: TAniIndicator + Align = MostLeft + Enabled = True + Margins.Left = 16.000000000000000000 + Margins.Top = 16.000000000000000000 + Margins.Right = 16.000000000000000000 + Margins.Bottom = 16.000000000000000000 + Position.X = 16.000000000000000000 + Position.Y = 16.000000000000000000 + Size.Width = 32.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + end + object ShadowEffect1: TShadowEffect + Distance = 3.000000000000000000 + Direction = 90.000000000000000000 + Softness = 1.000000000000000000 + Opacity = 0.500000000000000000 + ShadowColor = claBlack + end + object ProjectAwaitLabel: TLabel + Align = Client + Size.Width = 256.000000000000000000 + Size.Height = 31.000000000000000000 + Size.PlatformDefault = False + TextSettings.VertAlign = Trailing + Text = 'Trying to read After Effects project...' + TabOrder = 71 + end + object ProjectAwaitStatusLabel: TLabel + Align = Bottom + Margins.Bottom = 16.000000000000000000 + Position.X = 64.000000000000000000 + Position.Y = 31.000000000000000000 + Size.Width = 256.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + Text = 'Elapsed %d seconds of %d' + TabOrder = 73 + end end end - object XMLOpenDialog: TOpenDialog - Filter = - 'All compatible files|*.aer;*.xml|Launcher configuration|*.aer|XM' + - 'L Launcher configuration|*.xml|All Files|*.*' - Title = 'Launcher configuration' - Left = 224 - Top = 192 + object ProjectReaderAwait: TTimer + Enabled = False + Interval = 5 + OnTimer = ProjectReaderAwaitTimer + Left = 64 + Top = 384 end object BindingsList1: TBindingsList Methods = <> OutputConverters = <> - Left = 344 - Top = 192 + Left = 64 + Top = 336 object LinkControlToPropertyEnabled: TLinkControlToProperty Category = 'Quick Bindings' Control = customCheckbox @@ -20462,7 +20262,7 @@ object MainForm: TMainForm UserAgent = 'Embarcadero URI Client/1.0' OnRequestCompleted = UpdateNetHTTPClientRequestCompleted OnRequestError = UpdateNetHTTPClientRequestError - Left = 344 - Top = 144 + Left = 64 + Top = 288 end end diff --git a/src/MainUnit.pas b/src/MainUnit.pas index c18ac5f..57b08c6 100644 --- a/src/MainUnit.pas +++ b/src/MainUnit.pas @@ -118,91 +118,26 @@ interface {$ENDIF MACOS}{$ENDREGION} type - // This won't be required in the next RAD Studio version - TComboEdit = class(TCustomComboEdit) - procedure OnValidateEvent(Sender: TObject; var Text: string); - procedure OnValidatingEvent(Sender: TObject; var Text: string); - published - property CanFocus default True; - property CanParentFocus; - property Cursor default crIBeam; - property DisableFocusEffect; - property DropDownCount default TComboEditModel.DefaultDropDownCount; - property DropDownKind default TComboEditModel.DefaultDropDownKind; - property KeyboardType; - property ReadOnly; - property ItemHeight; - property ItemWidth; - property Items; - property ItemIndex; - property ListBoxResource; - property Text; - property TextSettings; - property Position; - property Width; - property Height; - property HelpContext; - property HelpKeyword; - property HelpType; - property Hint; - property StyledSettings; - property StyleLookup; - property ClipChildren default False; - property ClipParent default False; - property DragMode default TDragMode.dmManual; - property EnableDragHighlight default True; - property Enabled default True; - property Locked default False; - property HitTest default True; - property Padding; - property Opacity; - property Margins; - property PopupMenu; - property RotationAngle; - property RotationCenter; - property Scale; - property Size; - property TouchTargetExpansion; - property Visible default True; - property Caret; - property KillFocusByReturn; - property ParentShowHint; - property ShowHint; - { events } - property OnChange; - property OnChangeTracking; - property OnTyping; - property OnApplyStyleLookup; - property OnClosePopup; - property OnPopup; - { Drag and Drop events } - property OnDragEnter; - property OnDragLeave; - property OnDragOver; - property OnDragDrop; - property OnDragEnd; - { Keyboard events } - property OnKeyDown; - property OnKeyUp; - { Mouse events } - property OnCanFocus; - property OnClick; - property OnDblClick; - property OnEnter; - property OnExit; - property OnMouseDown; - property OnMouseMove; - property OnMouseUp; - property OnMouseWheel; - property OnMouseEnter; - property OnMouseLeave; - property OnPainting; - property OnPaint; - property OnResize; - property OnResized; - property OnPresentationNameChoosing; - property OnValidate; - property OnValidating; + {TSettings = record + Language: Integer; + Style: Integer; + AErenderPath: String; + OnRenderStart: Integer; + DefaultProjectPath: String; + DefaultOutputPath: String; + AErenderHandle: Boolean; + DeleteTemporary: Boolean; + //RenderTasks: TList; + end; } + MainFormSizeConstraints = record + const + MIN_WIDTH = 600; + + MIN_HEIGHT_NO_UPD = {$IFDEF MSWINDOWS}470{$ELSE MACOS}430{$ENDIF}; + EXP_HEIGHT_NO_UPD = {$IFDEF MSWINDOWS}630{$ELSE MACOS}600{$ENDIF}; + + MIN_HEIGHT_UPD = {$IFDEF MSWINDOWS}500{$ELSE MACOS}470{$ENDIF}; + EXP_HEIGHT_UPD = {$IFDEF MSWINDOWS}665{$ELSE MACOS}635{$ENDIF}; end; TMainForm = class(TForm) _projectPathLabel: TLabel; @@ -338,8 +273,8 @@ TMainForm = class(TForm) EditTaskPopupItem: TMenuItem; DeleteTaskPopupItem: TMenuItem; TaskEditorPopup: TPopup; - PopupAniOpen: TFloatAnimation; - PopupAniClose: TFloatAnimation; + PopupAniOpenHeight: TFloatAnimation; + PopupAniCloseHeight: TFloatAnimation; TaskEditorCompButton: TButton; ToolbarPopupMenu: TPopupMenu; ToolbarIconsOnly: TMenuItem; @@ -385,6 +320,16 @@ TMainForm = class(TForm) TaskEditorCreateTaskButton: TButton; TasksPopupSeparator1: TMenuItem; TaskItemDisplay: TMenuItem; + PopupAniCloseWidth: TFloatAnimation; + PopupAniOpenWidth: TFloatAnimation; + ProjectReaderAwait: TTimer; + ProjectAwaitMessage: TPanel; + ProjectAwaitIndicator: TAniIndicator; + ShadowEffect1: TShadowEffect; + ProjectAwaitLabel: TLabel; + ProjectAwait: TLayout; + ProjectAwaitStatusLabel: TLabel; + Label6: TLabel; procedure FormResize(Sender: TObject); procedure compSwitchSwitch(Sender: TObject); procedure FormCreate(Sender: TObject); @@ -424,12 +369,17 @@ TMainForm = class(TForm) procedure threadsCountChange(Sender: TObject); procedure UpdateNetHTTPClientRequestError(const Sender: TObject; const AError: string); procedure UpdateNetHTTPClientRequestCompleted(const Sender: TObject; const AResponse: IHTTPResponse); - procedure ReadAERQ(Path: String); + + function ReadAERQ(Path: String): TObjectList; + function ReadAER(Path: String): TRenderTask; + procedure SetLanguage(LanguageCode: Integer); procedure UpdateOutputModules; procedure UpdateRenderSettings; + procedure threadsCountTyping(Sender: TObject); procedure threadsCountExit(Sender: TObject); + procedure AddToRecents(Item: String); procedure RecentProjectSelected(Sender: TObject); @@ -442,9 +392,16 @@ TMainForm = class(TForm) procedure TasksTreeViewKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); procedure TasksTreeViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); procedure TasksPopupMenuPopup(Sender: TObject); + + procedure CheckAndPopup(const APath: String; const TryParse: Boolean); + + //procedure TaskAddProcess; + procedure ExtractParserToAppDir; + + procedure BeginTryParseAEP(const APath: String); + procedure AddTaskButtonClick(Sender: TObject); procedure RemoveTaskButtonClick(Sender: TObject); - procedure FloatAnimation1Finish(Sender: TObject); procedure PopupAniOpenFinish(Sender: TObject); procedure TaskEditorCancelButtonClick(Sender: TObject); procedure PopupAniCloseFinish(Sender: TObject); @@ -464,13 +421,23 @@ TMainForm = class(TForm) procedure TasksTreeViewItemDblClick(Sender: TObject); procedure TaskEditorSaveButtonClick(Sender: TObject); + procedure ProjectReaderAwaitTimer(Sender: TObject); + procedure TaskEditorToolbarMouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Single); private { Private declarations } FCurrentItem: String; + //Settings: TSettings; + TMathParser: TExpressionParser; + //{$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} {$IFDEF MSWINDOWS}procedure WMNCPaint(var AMessage: TMessage); message WM_NCPAINT;{$ENDIF} public { Public declarations } + ImportableProjectPath: String; + ProjectJson: String; + ProjectJsonPath: String; + procedure DragEnter(const Data: TDragObject; const Point: TPointF); override; procedure DragOver(const Data: TDragObject; const Point: TPointF; var Operation: TDragOperation); override; procedure DragDrop(const Data: TDragObject; const Point: TPointF); override; @@ -502,6 +469,8 @@ RenderSetting = record AERL_REPO_RELEASES = 'https://api.github.com/repos/lilystilson/aerender-launcher/releases'; PLATFORMPATHSEPARATOR = {$IFDEF MSWINDOWS}'\'{$ENDIF MSWINDOWS} {$IFDEF MACOS}'/'{$ENDIF MACOS}; + AWAIT_TIMEOUT = 10000; + MAX_SIMULTANEOUS_THREADS = 8; var @@ -512,6 +481,7 @@ RenderSetting = record gitRelease: TJsonValue; (* GitHub API's returning JSON file *) UpdateAvailable: Boolean = False; (* Represents app updates availability *) FFMPEG: Boolean = False; (* Represents FFMPEG availability *) + AEParser: String = ''; RenderWindowSender: TButton; (* Who opened Rendering window? *) LANG, STYLE, ONRENDERSTART: Integer; (* Language, Theme and OnRenderStart values *) LogFiles: TArray; (* All the aerender log files here *) @@ -519,16 +489,26 @@ RenderSetting = record RenderSettings: TArray; OMCount: Cardinal; //TempOutputModule: OutputModule; (* Temporary Output Module used from import *) - TMathParser: TExpressionParser; (* Mathematical parser for frames calculation *) + //TMathParser: TExpressionParser; (* Mathematical parser for frames calculation *) + FHandleDragDirectly: Boolean = False; (* For implementation of DragDrop functional *) + PARAMSTART: Boolean = False; + isRendering: Boolean = False; + + TryParseAEP: Boolean = True; + Language: TArray; + Recents: array [0..9] of String; RecentsMenuItems: TArray; + TempThreadsStr: String = ''; ImportedPath: String = ''; + AwaitElapsedTime: Cardinal = 0; + implementation uses @@ -545,20 +525,20 @@ implementation {$R *.fmx} -{$REGION ' Custom TComboEdit '} -procedure TComboEdit.OnValidateEvent(Sender: TObject; var Text: string); -begin - TempThreadsStr := Text; -end; - -procedure TComboEdit.OnValidatingEvent(Sender: TObject; var Text: string); -begin - if (TempThreadsStr <> '') then begin - Text := TempThreadsStr; - TempThreadsStr := ''; - end; -end; -{$ENDREGION} +//{$REGION ' Custom TComboEdit '} +//procedure TComboEdit.OnValidateEvent(Sender: TObject; var Text: string); +//begin +// TempThreadsStr := Text; +//end; +// +//procedure TComboEdit.OnValidatingEvent(Sender: TObject; var Text: string); +//begin +// if (TempThreadsStr <> '') then begin +// Text := TempThreadsStr; +// TempThreadsStr := ''; +// end; +//end; +//{$ENDREGION} {$REGION ' Routines '} @@ -571,7 +551,9 @@ procedure TMainForm.WMNCPaint(var AMessage: TMessage); begin var hWnd: HWND := FormToHWND(Self); - SetClassLong(hWnd, GCL_STYLE, GetClassLong(hWnd, GCL_STYLE) or CS_DROPSHADOW); + //SetClassLong(hWnd, GCL_STYLE, GetClassLong(hWnd, GCL_STYLE) or CS_DROPSHADOW); + + SystemParametersInfo(SPI_SETDROPSHADOW, 0, PVOID(True), 0); {var v: Integer := 2; @@ -1115,7 +1097,7 @@ procedure TMainForm.ReInflateRecents; procedure TMainForm.RenderTasksOnNotify(Sender: TObject; const Item: TRenderTask; Action: TCollectionNotification); begin - + TasksIsEmpty.Visible := RenderTasks.Count = 0; /// Because method [Clear()] calls [BeginUpdate()] and [EndUpdate()] /// we call it first here TasksTreeView.Clear; @@ -1136,12 +1118,13 @@ procedure TMainForm.RenderTasksOnNotify(Sender: TObject; const Item: TRenderTask CompItem.Parent := ProjectItem; CompItem.OnDblClick := TasksTreeViewItemDblClick; - var СompLabel: TCompLabel := TCompLabel.Create(nil); - СompLabel.Parent := CompItem; - СompLabel.Align := TAlignLayout.Client; - СompLabel.InFrame := IntToStr(Comp.Frames.StartFrame); - СompLabel.OutFrame := IntToStr(Comp.Frames.EndFrame); - СompLabel.Split := IntToStr(Comp.Split); + var CompLabel: TCompLabel := TCompLabel.Create(nil); + CompLabel.Parent := CompItem; + CompLabel.Align := TAlignLayout.Client; + CompLabel.InFrame := Comp.Frames.StartFrame; + CompLabel.OutFrame := Comp.Frames.EndFrame; + CompLabel.Split := IntToStr(Comp.Split); + CompLabel.Value := Comp.Frames.StartFrame; end; end; TasksTreeView.EndUpdate; @@ -1185,18 +1168,126 @@ procedure TMainForm.RemoveTaskButtonClick(Sender: TObject); RenderTasks.Clear; end; +procedure TMainForm.ExtractParserToAppDir; +begin + var ExtractPath: String := APPFOLDER + {$IFDEF MSWINDOWS}'aeparser_win.exe'{$ELSE MACOS}'aeparser_mac'{$ENDIF}; + + var ResStream: TResourceStream := TResourceStream.Create(HInstance, {$IFDEF MSWINDOWS}'AEPARSER_WIN'{$ELSE MACOS}'AEPARSER_MAC'{$ENDIF}, RT_RCDATA); + + try + ResStream.Position := 0; + ResStream.SaveToFile(ExtractPath); + finally + ResStream.Free; + end; + + {$IFDEF MACOS} + _system(PAnsiChar('chmod +x "' + AnsiString(ExtractPath) + '"')); + {$ENDIF} +end; + +procedure TMainForm.BeginTryParseAEP(const APath: String); +begin + //AwaitIndicator.Enabled := True; + + var ConverterPath: String := APPFOLDER + {$IFDEF MSWINDOWS}'aeparser_win.exe'{$ELSE MACOS}'aeparser_mac'{$ENDIF}; + +// {$IFDEF MSWINDOWS} +// var ConverterPath: String := 'Z:\YandexDisk\Development\Delphi\AErender Launcher\src\lib\plugins\AEP Parser\aeparser.exe'; +// {$ELSE MACOS} +// var ConverterPath: String := '////'; +// {$ENDIF} + //var Project: String := Data.Files[0]; + + ProjectJsonPath := Format('%s%s', [APPFOLDER, ExtractFileName(APath).Replace('aep', 'json')]);; + + //var FileDate := FileDateToDateTime(FileAge(ProjectJsonPath)); + //var ThisTime := Now; + + if FileExists(ProjectJsonPath) then + if (FileDateToDateTime(FileAge(ProjectJsonPath)) + EncodeTime(0, 0, 1, 0) >= Now) then + ProjectReaderAwait.Enabled := True + else begin + ProjectAwait.Visible := True; + ProjectAwait.Enabled := True; + + var Executable: TextFile; + AssignFile(Executable, APPFOLDER + {$IFDEF MSWINDOWS}'project.bat'{$ELSE MACOS}'project.command'{$ENDIF}); + Rewrite(Executable); + {$IFDEF MSWINDOWS} + Writeln(Executable, 'chcp 65001'); + {$ENDIF} + Writeln(Executable, Format('("%s" "%s") > "%s%s"', [ConverterPath, APath, APPFOLDER, ExtractFileName(APath).Replace('aep', 'json')])); + CloseFile(Executable); + + {$IFDEF MSWINDOWS} + ShellExecute(0, 'OPEN', PWideChar(APPFOLDER + 'project.bat'), '', '', SW_HIDE); + {$ELSE MACOS} + _system(PAnsiChar('chmod +x "' + AnsiString(APPFOLDER + 'project.command"'))); + _system(PAnsiChar('command "' + AnsiString(APPFOLDER + 'project.command" & disown'))); + {$ENDIF} + + //Status.Text := 'Executing...'; + + ProjectReaderAwait.Enabled := True; + end; +end; + +procedure TMainForm.CheckAndPopup(const APath: String; const TryParse: Boolean); +begin + if APath <> '' then begin + TaskEditorTabControl.TabIndex := 0; + if (TasksTreeView.ItemByText(ExtractFileName(APath)) <> nil) or (GetTaskByProject(ExtractFileName(APath)) <> nil) then + TasksTreeViewItemDblClick(TasksTreeView.ItemByText(ExtractFileName(APath))) + else begin + TaskEditorSaveButton.Visible := False; + TaskEditorCreateTaskButton.Visible := True; + projectPath.Text := APath; + + if TryParse then begin + BeginTryParseAEP(APath); + end else + TaskEditorPopup.PopupModal; + AddToRecents(APath); + end; + end; +end; + procedure TMainForm.AddTaskButtonClick(Sender: TObject); begin var TempStr: String := ''; +// var PathCheckThread: TThread := TThread.CreateAnonymousThread(procedure begin +// repeat +// if TempStr <> '' then begin +// TaskEditorTabControl.TabIndex := 0; +// if (TasksTreeView.ItemByText(ExtractFileName(TempStr)) <> nil) or (GetTaskByProject(ExtractFileName(TempStr)) <> nil) then +// TasksTreeViewItemDblClick(TasksTreeView.ItemByText(ExtractFileName(TempStr))) +// else begin +// TaskEditorSaveButton.Visible := False; +// TaskEditorCreateTaskButton.Visible := True; +// +// if TryParseAEP then begin +// ImportForm.ShowModal +// end else +// TaskEditorPopup.PopupModal; +// AddToRecents(TempStr); +// end; +// end; +// until TempStr <> ''; +// end); +// {$IFDEF MACOS} var NSWin: NSWindow := WindowHandleToPlatform(Screen.ActiveForm.Handle).Wnd; + + var FOpenFile: NSSavePanel := TNSOpenPanel.Wrap(TNSOpenPanel.OCClass.openPanel); FOpenFile.setDirectory(StrToNSStr(DEFPRGPATH)); FOpenFile.setAllowedFileTypes(ArrayToNSArray(['aep'])); FOpenFile.setPrompt(StrToNSStr('Open After Effects project')); + objc_msgSendP2( // We are calling here method straight from MacApi (FOpenFile as ILocalObject).GetObjectID, // Provide object with callable method sel_getUid(PAnsiChar('beginSheetModalForWindow:completionHandler:')), // Provide method UID @@ -1206,28 +1297,37 @@ procedure TMainForm.AddTaskButtonClick(Sender: TObject); // Handle else begin TempStr := NSStrToStr(FOpenFile.URL.relativePath); - //AddToRecents(TempStr); + CheckAndPopup(TempStr, TryParseAEP); + //Sleep(200); end; end) ); + {$ELSE MSWINDOWS} with AEPOpenDialog do if Execute then begin - TempStr := AEPOpenDialog.FileName; + {TempStr := AEPOpenDialog.FileName; + + if TempStr <> '' then begin + TaskEditorTabControl.TabIndex := 0; + if (TasksTreeView.ItemByText(ExtractFileName(TempStr)) <> nil) or (GetTaskByProject(ExtractFileName(TempStr)) <> nil) then + TasksTreeViewItemDblClick(TasksTreeView.ItemByText(ExtractFileName(TempStr))) + else begin + TaskEditorSaveButton.Visible := False; + TaskEditorCreateTaskButton.Visible := True; + projectPath.Text := TempStr; + + if TryParseAEP then begin + //ImportForm.ShowModal + end else + TaskEditorPopup.PopupModal; + AddToRecents(TempStr); + end; + end; } + CheckAndPopup(AEPOpenDialog.FileName, TryParseAEP); end; {$ENDIF} - - if TempStr <> '' then begin - TaskEditorTabControl.TabIndex := 0; - if (TasksTreeView.ItemByText(ExtractFileName(TempStr)) <> nil) or (GetTaskByProject(ExtractFileName(TempStr)) <> nil) then - TasksTreeViewItemDblClick(TasksTreeView.ItemByText(ExtractFileName(TempStr))) - else begin - TaskEditorSaveButton.Visible := False; - TaskEditorCreateTaskButton.Visible := True; - TaskEditorPopup.PopupModal; - AddToRecents(TempStr); - end; - end; +// PathCheckThread.Start; end; procedure TMainForm.renderSettingsBoxChange(Sender: TObject); @@ -1322,7 +1422,8 @@ procedure TMainForm.TaskEditorSaveButtonClick(Sender: TObject); RenderTasksOnNotify(Sender, RenderTasks.Items[TaskIndex], cnAdded); - PopupAniClose.Enabled := True; + PopupAniCloseHeight.Enabled := True; + PopupAniCloseWidth.Enabled := True; TaskEditorCompCount.Value := 1; TaskEditorCompGrid.Cells[0, 0] := '1'; @@ -1333,11 +1434,17 @@ procedure TMainForm.TaskEditorSaveButtonClick(Sender: TObject); //UpdateTasksList; - TasksIsEmpty.Visible := RenderTasks.Count = 0; + end; end; +procedure TMainForm.TaskEditorToolbarMouseDown(Sender: TObject; + Button: TMouseButton; Shift: TShiftState; X, Y: Single); +begin + //TPopupForm(TaskEditorPopup).StartWindowDrag; +end; + procedure TMainForm.TaskEditorTabControlChange(Sender: TObject); begin @@ -1458,57 +1565,127 @@ procedure TMainForm.UpdateRenderSettings; renderSettingsBox.ItemIndex := Index; end; -procedure TMainForm.ReadAERQ(Path: String); +function TMainForm.ReadAERQ(Path: String): TObjectList; begin + Result := TObjectList.Create; + var AERQXMLDocument: IXMLDocument := TXMLDocument.Create(nil); AERQXMLDocument.LoadFromFile(Path); AERQXMLDocument.Encoding := 'utf-8'; AERQXMLDocument.Active := True; var RootNode: IXMLNode := AERQXMLDocument.DocumentElement; - projectPath.Text := RootNode.Attributes['project']; - outputPath.Text := RootNode.ChildNodes['queueItem'].Attributes['outputFolder']; - tempSavePath := RootNode.ChildNodes['queueItem'].Attributes['outputFolder'] + PLATFORMPATHSEPARATOR; - /// Add new Output Module to library if it don't exist - if StrToBool(RootNode.ChildNodes['queueItem'].ChildNodes['outputModule'].Attributes['use']) then begin - var TempOutputModule: OutputModule; - TempOutputModule.Module := RootNode.ChildNodes['queueItem'].ChildNodes['outputModule'].ChildNodes['module'].Text; - TempOutputModule.Mask := RootNode.ChildNodes['queueItem'].ChildNodes['outputModule'].ChildNodes['mask'].Text; - - if GetOMIndex(TempOutputModule) <> -1 then - outputModuleBox.ItemIndex := GetOMIndex(TempOutputModule) - else begin - SetLength(OutputModules, Length(OutputModules) + 1); - OutputModules[High(OutputModules)].Module := RootNode.ChildNodes['queueItem'].ChildNodes['outputModule'].ChildNodes['module'].Text; - OutputModules[High(OutputModules)].Mask := RootNode.ChildNodes['queueItem'].ChildNodes['outputModule'].ChildNodes['mask'].Text; - OutputModules[High(OutputModules)].Imported := True; + //projectPath.Text := RootNode.Attributes['project']; + + for var i := 0 to RootNode.ChildNodes.Count - 1 do begin + outputPath.Text := RootNode.ChildNodes[i].Attributes['outputFolder']; + tempSavePath := RootNode.ChildNodes[i].Attributes['outputFolder'] + PLATFORMPATHSEPARATOR; + + /// Add new Output Module to library if it don't exist + if StrToBool(RootNode.ChildNodes[i].ChildNodes['outputModule'].Attributes['use']) then begin + var TempOutputModule: OutputModule; + TempOutputModule.Module := RootNode.ChildNodes[i].ChildNodes['outputModule'].ChildNodes['module'].Text; + TempOutputModule.Mask := RootNode.ChildNodes[i].ChildNodes['outputModule'].ChildNodes['mask'].Text; + + if GetOMIndex(TempOutputModule) <> -1 then + outputModuleBox.ItemIndex := GetOMIndex(TempOutputModule) + else begin + SetLength(OutputModules, Length(OutputModules) + 1); + OutputModules[High(OutputModules)].Module := RootNode.ChildNodes[i].ChildNodes['outputModule'].ChildNodes['module'].Text; + OutputModules[High(OutputModules)].Mask := RootNode.ChildNodes[i].ChildNodes['outputModule'].ChildNodes['mask'].Text; + OutputModules[High(OutputModules)].Imported := True; - outputModuleBox.Items.Insert(outputModuleBox.Items.Count - 1, OutputModules[High(OutputModules)].Module + ' ' + Language[LANG].OutputModuleConfiguratorForm.Imported); - outputModuleBox.ItemIndex := outputModuleBox.Items.Count - 2; + outputModuleBox.Items.Insert(outputModuleBox.Items.Count - 1, OutputModules[High(OutputModules)].Module + ' ' + Language[LANG].OutputModuleConfiguratorForm.Imported); + outputModuleBox.ItemIndex := outputModuleBox.Items.Count - 2; + end; end; - end; - outputModuleBoxChange(Self); + outputModuleBoxChange(Self); - if RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text.IsEmpty <> True then begin - var TempRenderSetting: RenderSetting; - TempRenderSetting.Setting := RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text; + if RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text.IsEmpty <> True then begin + var TempRenderSetting: RenderSetting; + TempRenderSetting.Setting := RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text; - if GetRSIndex(TempRenderSetting) <> -1 then - renderSettingsBox.ItemIndex := GetRSIndex(TempRenderSetting) - else begin - SetLength(RenderSettings, Length(RenderSettings) + 1); - RenderSettings[High(RenderSettings)].Setting := RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text; - RenderSettings[High(RenderSettings)].Imported := True; + if GetRSIndex(TempRenderSetting) <> -1 then + renderSettingsBox.ItemIndex := GetRSIndex(TempRenderSetting) + else begin + SetLength(RenderSettings, Length(RenderSettings) + 1); + RenderSettings[High(RenderSettings)].Setting := RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text; + RenderSettings[High(RenderSettings)].Imported := True; - renderSettingsBox.Items.Insert(renderSettingsBox.Items.Count - 1, RenderSettings[High(RenderSettings)].Setting + ' ' + Language[LANG].OutputModuleConfiguratorForm.Imported); - renderSettingsBox.ItemIndex := renderSettingsBox.Items.Count - 2; + renderSettingsBox.Items.Insert(renderSettingsBox.Items.Count - 1, RenderSettings[High(RenderSettings)].Setting + ' ' + Language[LANG].OutputModuleConfiguratorForm.Imported); + renderSettingsBox.ItemIndex := renderSettingsBox.Items.Count - 2; + end; end; + renderSettingsBoxChange(Self); + + var Compositions: TList := TList.Create; + Compositions.Add(TComposition.Create( + RootNode.ChildNodes[i].ChildNodes['composition'].ChildNodes['name'].Text, + TFrameSpan.Create(StrToInt(RootNode.ChildNodes[i].ChildNodes['composition'].ChildNodes['rangeStart'].Text), + StrToInt(RootNode.ChildNodes[i].ChildNodes['composition'].ChildNodes['rangeEnd'].Text)), + 1 + )); + + //compName.Text := RootNode.ChildNodes['queueItem'].ChildNodes['composition'].ChildNodes['name'].Text; + //inFrame.Text := RootNode.ChildNodes['queueItem'].ChildNodes['composition'].ChildNodes['rangeStart'].Text; + //outFrame.Text := RootNode.ChildNodes['queueItem'].ChildNodes['composition'].ChildNodes['rangeEnd'].Text; + + Result.Add(TRenderTask.Create( + RootNode.Attributes['project'], + outputPath.Text, + outputModuleBox.Items[outputModuleBox.ItemIndex], + renderSettingsBox.Items[renderSettingsBox.ItemIndex], + missingFilesCheckbox.IsChecked, + soundCheckbox.IsChecked, + threadedRender.IsChecked, + IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''), // yeet + cacheUsageTrackBar.Value, + memUsageTrackBar.Value, + TList.Create(Compositions) + )); + end; +end; + +function TMainForm.ReadAER(Path: String): TRenderTask; +begin + var AERXMLDocument: IXMLDocument := TXMLDocument.Create(nil); + AERXMLDocument.LoadFromFile(Path); + AERXMLDocument.Encoding := 'utf-8'; + + AERXMLDocument.Active := True; + + var RootNode: IXMLNode := AERXMLDocument.DocumentElement; + + if DEFOUTPATH <> '' then begin + outputPath.Text := DEFOUTPATH; + tempSavePath := DEFOUTPATH + PLATFORMPATHSEPARATOR; end; - renderSettingsBoxChange(Self); + outputModuleBoxChange(Self); + + var Compositions: TList := TList.Create; - compName.Text := RootNode.ChildNodes['queueItem'].ChildNodes['composition'].ChildNodes['name'].Text; - inFrame.Text := RootNode.ChildNodes['queueItem'].ChildNodes['composition'].ChildNodes['rangeStart'].Text; - outFrame.Text := RootNode.ChildNodes['queueItem'].ChildNodes['composition'].ChildNodes['rangeEnd'].Text; + for var i := 0 to StrToInt(RootNode.ChildNodes['compositions'].Attributes['count']) - 1 do begin + Compositions.Add(TComposition.Create( + RootNode.ChildNodes['compositions'].ChildNodes[i].ChildNodes['name'].Text, + TFrameSpan.Create(StrToInt(RootNode.ChildNodes['compositions'].ChildNodes[i].ChildNodes['rangeStart'].Text), + StrToInt(RootNode.ChildNodes['compositions'].ChildNodes[i].ChildNodes['rangeEnd'].Text)), + 1 + )); + end; + + Result := TRenderTask.Create( + RootNode.Attributes['project'], + outputPath.Text, + outputModuleBox.Items[outputModuleBox.ItemIndex], + renderSettingsBox.Items[renderSettingsBox.ItemIndex], + missingFilesCheckbox.IsChecked, + soundCheckbox.IsChecked, + threadedRender.IsChecked, + IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''), // yeet + cacheUsageTrackBar.Value, + memUsageTrackBar.Value, + TList.Create(Compositions) + ); end; procedure TMainForm.aboutItemClick(Sender: TObject); @@ -1603,11 +1780,6 @@ procedure TMainForm.ffmpegConfigButtonClick(Sender: TObject); FFMPEGForm.ShowModal; end; -procedure TMainForm.FloatAnimation1Finish(Sender: TObject); -begin - PopupAniOpen.Enabled := False; -end; - procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); begin if SettingsForm.HandleCheckBox.IsChecked then begin @@ -1641,19 +1813,22 @@ procedure TMainForm.FormCreate(Sender: TObject); begin {$IFDEF MSWINDOWS}DwmCompositionEnabled();{$ENDIF} FormatSettings := TFormatSettings.Invariant; - MainForm.Width := 600; + MainForm.Width := 768; MainForm.Height := {$IFDEF MSWINDOWS}450{$ELSE MACOS}430{$ENDIF}; MainForm.Caption := 'AErender Launcher (' + APPVERSION + ')'; APPFOLDER := {$IFDEF MSWINDOWS}'C:\ProgramData\AErender\' {$ELSE MACOS}GetEnvironmentVariable('HOME') + '/Documents/AErender/'{$ENDIF}; {$IFDEF MSWINDOWS} - FreeAndNil(launcherItem); + //FreeAndNil(launcherItem); + launcherItem.Visible := False; exitItem.ShortCut := TextToShortCut('Alt+F4'); exportConfigItem.ShortCut := TextToShortCut('Ctrl+E'); importConfigItem.ShortCut := TextToShortCut('Ctrl+I'); {$ELSE MACOS} - FreeAndNil(editItem); - FreeAndNil(exitItem); + editItem.Visible := False; + exitItem.Visible := False; +// FreeAndNil(editItem); +// FreeAndNil(exitItem); {$ENDIF} if DirectoryExists(APPFOLDER) then @@ -1663,41 +1838,43 @@ procedure TMainForm.FormCreate(Sender: TObject); CreateDir(APPFOLDER); AssignFile(CFG, APPFOLDER + 'AErenderConfiguration.xml'); end; - if FileExists(APPFOLDER + 'AErenderConfiguration.xml') then - begin - try - LoadConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); - except - on Exception do begin - try - LoadLegacyConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); - except - on Exception do begin - if (TDialogServiceSync.MessageDialog( - ('Configuration file is corrupted! Press OK to renew configuration file. Application will be restarted.' + #13#10 + - {$IFDEF MSWINDOWS}'C:\ProgramData\AErender\AErenderConfiguration.xml' - {$ELSE MACOS}'~/Documents/AErender/AErenderConfiguration.xml'{$ENDIF}), - TMsgDlgType.mtError, mbOKCancel, TMsgDlgBtn.mbOK, 0) = 1) then - begin - System.SysUtils.DeleteFile(APPFOLDER + 'AErenderConfiguration.xml'); - {$IFDEF MSWINDOWS}ShellExecute(0, 'OPEN', PChar(ParamStr(0)), '', '', SW_SHOWNORMAL); - {$ELSE MACOS}_system(PAnsiChar('open -a "' + AnsiString(ParamStr(0)) + '" & disown'));{$ENDIF} - end; - Halt; + + if FileExists(APPFOLDER + 'AErenderConfiguration.xml') then begin + try + LoadConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + except + on Exception do begin + try + LoadLegacyConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + except + on Exception do begin + if (TDialogServiceSync.MessageDialog( + ('Configuration file is corrupted! Press OK to renew configuration file. Application will be restarted.' + #13#10 + + {$IFDEF MSWINDOWS}'C:\ProgramData\AErender\AErenderConfiguration.xml' + {$ELSE MACOS}'~/Documents/AErender/AErenderConfiguration.xml'{$ENDIF}), + TMsgDlgType.mtError, mbOKCancel, TMsgDlgBtn.mbOK, 0) = 1) then + begin + System.SysUtils.DeleteFile(APPFOLDER + 'AErenderConfiguration.xml'); + {$IFDEF MSWINDOWS}ShellExecute(0, 'OPEN', PChar(ParamStr(0)), '', '', SW_SHOWNORMAL); + {$ELSE MACOS}_system(PAnsiChar('open -a "' + AnsiString(ParamStr(0)) + '" & disown'));{$ENDIF} end; + Halt; end; end; end; - end - else - begin - InitConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); - AERH := 'True'; - DelTempFiles := 'True'; end; + end else begin + InitConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + AERH := 'True'; + DelTempFiles := 'True'; + end; AEPOpenDialog.InitialDir := DEFPRGPATH; SaveDialog1.InitialDir := DEFOUTPATH; + if not FileExists(APPFOLDER + {$IFDEF MSWINDOWS}'aeparser_win.exe'{$ELSE MACOS}'aeparser_mac'{$ENDIF}) then begin + ExtractParserToAppDir; + end; + InflateRecents; var AnimSetupThread: TThread := TThread.CreateAnonymousThread(procedure begin @@ -1712,11 +1889,12 @@ procedure TMainForm.FormCreate(Sender: TObject); TaskEditorCompGrid.Model.ScrollDirections := (TScrollDirections.Vertical); end); - threadsCount.OnValidate := threadsCount.OnValidateEvent; - threadsCount.OnValidating := threadsCount.OnValidatingEvent; +// threadsCount.OnValidate := threadsCount.OnValidateEvent; +// threadsCount.OnValidating := threadsCount.OnValidatingEvent; RenderTasks.OnNotify := MainForm.RenderTasksOnNotify; + AnimSetupThread.Start; //ShowMessage(AErenderPath); end; @@ -1770,6 +1948,9 @@ procedure TMainForm.FormShow(Sender: TObject); end; end); + var aeparserCheckThread: TThread := TThread.CreateAnonymousThread(procedure begin + // + end); //// Check for available languages // It's better to do it in a Show thread, since OnCreate event of main form @@ -1816,20 +1997,23 @@ procedure TMainForm.FormShow(Sender: TObject); SplashScreenForm.Close; SplashScreenForm.Free; - FFMPEGCheckThread.Start; FormVisualUpdateThread.Start; + FFMPEGCheckThread.Start; + aeparserCheckThread.Start; + if (ParamCount > 0) and (ParamStr(1) = '-aer') then begin ImportUnit.PARAMSTART := True; ImportUnit.XMLPath := ParamStr(2); + ImportForm.FormSender := FS_XML; ImportForm.ShowModal; end else if (ParamStr(1) = '-aerq') then begin MainUnit.PARAMSTART := True; - ReadAERQ(ParamStr(2)); + RenderTasks.AddRange(ReadAERQ(ParamStr(2))); end; //ShowMessage(RenderTasks.Count.ToString); - TasksIsEmpty.Visible := RenderTasks.Count = 0; + //TasksIsEmpty.Visible := RenderTasks.Count = 0; // Check updates in separate thread to fasten startup MainForm.UpdateNetHTTPClient.Get(AERL_REPO_RELEASES); @@ -1905,7 +2089,7 @@ exec = record begin //Error Codes if not (SettingsForm.HandleCheckBox.IsChecked and isRendering) then begin - emptyComps := 0; + {emptyComps := 0; if AErenderPath.IsEmpty then ERR := ERR + #13#10 + '[Error 1]: ' + Language[LANG].Errors.aerenderIsEmpty; if projectPath.Text.IsEmpty then @@ -1931,7 +2115,7 @@ exec = record TDialogServiceSync.MessageDialog((Language[LANG].Errors.errorsOccured + ERR), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); ERR := ''; end - else + else } begin {var Compositions: TList; if compSwitch.IsChecked then @@ -1977,7 +2161,12 @@ exec = record //RenderTasks.Add(Task); {$IFDEF DEBUG_MODE} ShowMessage(RenderTasks.Items[0].ToString); - ShowMessage(IntToStr(RenderTasks.Items[0].Count)); + //ShowMessage(IntToStr(RenderTasks.Items[0].Count)); + for var Task: TRenderTask in RenderTasks do begin + Task.Render(); + ShowMessage(Format('RenderQueue.Count = %d; Task.Count = %d', [RenderQueue.Count, Task.Count])); + end; + {$ENDIF} //RenderTasks.Remove(Task); // if threadsSwitch.IsChecked then @@ -2178,7 +2367,7 @@ exec = record // {$ENDIF MACOS} // end; // Wait untill aerender launches - Sleep (200); + //Sleep (200); if SettingsForm.HandleCheckBox.IsChecked then begin if RenderingUnit.VISIBLE then @@ -2288,12 +2477,14 @@ procedure TMainForm.outputModuleBoxChange(Sender: TObject); procedure TMainForm.TaskEditorPopupPopup(Sender: TObject); begin - PopupAniOpen.Enabled := True; + PopupAniOpenHeight.Enabled := True; + PopupAniOpenWidth.Enabled := True; end; procedure TMainForm.PopupAniCloseFinish(Sender: TObject); begin - PopupAniClose.Enabled := False; + PopupAniCloseHeight.Enabled := False; + PopupAniCloseWidth.Enabled := False; TaskEditorPopup.IsOpen := False; TaskEditorPopup.Height := 384; TaskEditorTabControl.TabIndex := 0; @@ -2301,12 +2492,75 @@ procedure TMainForm.PopupAniCloseFinish(Sender: TObject); procedure TMainForm.PopupAniOpenFinish(Sender: TObject); begin - PopupAniOpen.Enabled := False; + PopupAniOpenHeight.Enabled := False; + PopupAniOpenWidth.Enabled := False; +end; + +procedure TMainForm.ProjectReaderAwaitTimer(Sender: TObject); +begin + AwaitElapsedTime := AwaitElapsedTime + 5; + ProjectAwaitStatusLabel.Text := Format('Elapsed %d seconds of %d', [Trunc(AwaitElapsedTime / 1000), Trunc(AWAIT_TIMEOUT / 1000)]); + {$IFDEF MSWINDOWS} + ProjectAwaitStatusLabel.Repaint; + {$ENDIF} + + if AwaitElapsedTime >= AWAIT_TIMEOUT then begin + //Status.Text := 'Timeout'; + ProjectAwait.Enabled := False; + ProjectAwait.Visible := False; + + ProjectReaderAwait.Enabled := False; + + TDialogServiceSync.MessageDialog('Reading timeout. Please, specify all project data manually.', TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); + + end; + + if FileExists(ProjectJsonPath) then begin + var ProjectJsonFile: TStream := TFileStream.Create(ProjectJsonPath, fmOpenRead or fmShareDenyNone); + var ProjectString: TStringList := TStringList.Create; + ProjectString.DefaultEncoding := TEncoding.UTF8; + ProjectString.LoadFromStream(ProjectJsonFile); + ProjectJsonFile.Free; + + if ProjectString.Text <> '' then begin + //Status.Text := 'File is not empty'; + ProjectAwait.Enabled := False; + ProjectAwait.Visible := False; + //JsonContents.Text := ProjectString.Text; + + ProjectJson := ProjectString.Text; + + //Status.Text := 'Waiting...'; + AwaitElapsedTime := 0; + + ProjectReaderAwait.Enabled := False; + + ImportForm.FormSender := FS_JSON; + ImportForm.ShowModal; + +// RenderTasks.Add(TRenderTask.CreateFromJSON( +// projectPath.Text, +// outputPath.Text, +// outputModuleBox.Items[outputModuleBox.ItemIndex], +// renderSettingsBox.Items[renderSettingsBox.ItemIndex], +// missingFilesCheckbox.IsChecked, +// soundCheckbox.IsChecked, +// threadedRender.IsChecked, +// IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''), // yeet +// cacheUsageTrackBar.Value, +// memUsageTrackBar.Value, +// ProjectJson +// )); + + end;// else + //Status.Text := 'File is empty, repeating...'; + end; end; procedure TMainForm.TaskEditorCancelButtonClick(Sender: TObject); begin - PopupAniClose.Enabled := True; + PopupAniCloseHeight.Enabled := True; + PopupAniCloseWidth.Enabled := True; end; procedure TMainForm._projectPathDragDrop(Sender: TObject; @@ -2476,7 +2730,7 @@ procedure TMainForm.TasksTreeViewItemDblClick(Sender: TObject); TaskEditorSaveButton.Visible := True; TaskEditorCreateTaskButton.Visible := False; - TaskEditorPopup.PopupModal; + TaskEditorPopup.IsOpen := True;//PopupModal; end; procedure TMainForm.TasksTreeViewDragChange(SourceItem, DestItem: TTreeViewItem; var Allow: Boolean); @@ -2516,8 +2770,7 @@ procedure TMainForm.TasksTreeViewDragDrop(Sender: TObject; const Data: TDragObje begin if Data.Source = nil then begin // Ensure that we're recieving drag from outside if LowerCase(ExtractFileExt(Data.Files[0])) = LowerCase('.aep') then begin - projectPath.Text := Data.Files[0]; - AddTaskButtonClick(Sender); + BeginTryParseAEP(Data.Files[0]); end; if LowerCase(ExtractFileExt(Data.Files[0])) = LowerCase('.aerq') then @@ -2845,7 +3098,8 @@ procedure TMainForm.TaskEditorCreateTaskButtonClick(Sender: TObject); Compositions.Free; - PopupAniClose.Enabled := True; + PopupAniCloseHeight.Enabled := True; + PopupAniCloseWidth.Enabled := True; TaskEditorCompCount.Value := 1; TaskEditorCompGrid.Cells[0, 0] := '1'; @@ -2856,7 +3110,7 @@ procedure TMainForm.TaskEditorCreateTaskButtonClick(Sender: TObject); //UpdateTasksList; - TasksIsEmpty.Visible := RenderTasks.Count = 0; + //TasksIsEmpty.Visible := RenderTasks.Count = 0; end; end; diff --git a/src/RenderingUnit.fmx b/src/RenderingUnit.fmx index 1fb2ed1..800a920 100644 --- a/src/RenderingUnit.fmx +++ b/src/RenderingUnit.fmx @@ -44,7 +44,7 @@ object RenderingForm: TRenderingForm Margins.Right = 10.000000000000000000 Position.X = 5.000000000000000000 Position.Y = 86.000000000000000000 - Size.Width = 97.000000000000000000 + Size.Width = 98.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False TextSettings.WordWrap = False @@ -198,7 +198,7 @@ object RenderingForm: TRenderingForm StyledSettings = [Family, FontColor] Margins.Left = 20.000000000000000000 Position.X = 20.000000000000000000 - Size.Width = 147.000000000000000000 + Size.Width = 148.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 16.000000000000000000 @@ -230,7 +230,7 @@ object RenderingForm: TRenderingForm Softness = 0.500000000000000000 Enabled = False end - object VertScrollBox1: TVertScrollBox + object ProgressScrollBox: TVertScrollBox Align = Client Size.Width = 512.000000000000000000 Size.Height = 288.000000000000000000 @@ -247,6 +247,7 @@ object RenderingForm: TRenderingForm TextSettings.Font.StyleExt = {00070000000000000004000000} TextSettings.HorzAlign = Center Text = 'Queue is empty' + TabOrder = 0 end end end diff --git a/src/RenderingUnit.pas b/src/RenderingUnit.pas index e24a4e2..6f15d1d 100644 --- a/src/RenderingUnit.pas +++ b/src/RenderingUnit.pas @@ -52,6 +52,7 @@ interface FMX.BehaviorManager, AErenderLauncher.AerenderParser, + AErenderLauncher.Rendering, {$IFDEF MSWINDOWS} System.Notification, FMX.TaskBar, FMX.Platform.Win, Winapi.Windows, Winapi.TlHelp32; @@ -78,7 +79,7 @@ TRenderingForm = class(TForm) totalProgressPercentage: TLabel; renderingTimer: TTimer; emptyLabel: TLabel; - VertScrollBox1: TVertScrollBox; + ProgressScrollBox: TVertScrollBox; AErenderLayout: TLayout; BlurEffect1: TBlurEffect; FFMPEGConcatLayout: TLayout; @@ -99,6 +100,9 @@ TRenderingForm = class(TForm) procedure StopwatchTimerTimer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure SetLanguage(LanguageCode: Integer); + + procedure RenderQueueNotify(Sender: TObject; const Item: TRenderObject; Action: TCollectionNotification); + private { Private declarations } public @@ -156,7 +160,7 @@ procedure TRenderingForm.CreateHandle; end; {$ENDIF MSWINDOWS} -function IntToCardinal (I: Integer): Cardinal; +function IntToCardinal(I: Integer): Cardinal; begin if I < 0 then Result := 0 @@ -164,6 +168,23 @@ function IntToCardinal (I: Integer): Cardinal; Result := I; end; +procedure TRenderingForm.RenderQueueNotify(Sender: TObject; const Item: TRenderObject; Action: TCollectionNotification); +begin + // Stop the timer temporarely + renderingTimer.Enabled := False; + + // + ProgressScrollBox.DeleteChildren; + emptyLabel.Visible := RenderQueue.Count = 0; + + ProgressScrollBox.BeginUpdate; + + for var RenderObject: TRenderObject in RenderQueue do begin + // + end; + +end; + procedure TRenderingForm.SetLanguage(LanguageCode: Integer); begin RenderingForm.Caption := Language[LanguageCode].RenderingForm.RenderingProgress; @@ -240,7 +261,9 @@ procedure TRenderingForm.FormCreate(Sender: TObject); TotalProgressBar.Value := 0; // RU: Активация плавного скроллинга списка потоков - VertScrollBox1.AniCalculations.Animation := True; + ProgressScrollBox.AniCalculations.Animation := True; + + RenderQueue.OnNotify := RenderQueueNotify; end; procedure TRenderingForm.FormShow(Sender: TObject); @@ -271,7 +294,7 @@ procedure TRenderingForm.FormShow(Sender: TObject); for var i := 0 to High(RenderGroups) do begin // RU: Создание фоновой TPanel RenderGroups[i].RenderPanel := TPanel.Create(Self); - RenderGroups[i].RenderPanel.Parent := VertScrollBox1; + RenderGroups[i].RenderPanel.Parent := ProgressScrollBox; RenderGroups[i].RenderPanel.Margins := TBounds.Create(TRectF.Create(8, 8, 8, 0)); RenderGroups[i].RenderPanel.Align := TAlignLayout.Top; RenderGroups[i].RenderPanel.Height := 48; diff --git a/src/SettingsUnit.fmx b/src/SettingsUnit.fmx index 0ee3083..1a1cd9d 100644 --- a/src/SettingsUnit.fmx +++ b/src/SettingsUnit.fmx @@ -114,7 +114,7 @@ object SettingsForm: TSettingsForm IsChecked = True Margins.Left = 8.000000000000000000 Margins.Right = 8.000000000000000000 - Size.Width = 414.000000000000000000 + Size.Width = 412.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -126,8 +126,8 @@ object SettingsForm: TSettingsForm AutoSize = True Enabled = False Margins.Right = 16.000000000000000000 - Position.X = 430.000000000000000000 - Size.Width = 112.000000000000000000 + Position.X = 428.000000000000000000 + Size.Width = 114.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.WordWrap = False @@ -390,6 +390,7 @@ object SettingsForm: TSettingsForm TextSettings.HorzAlign = Center Text = 'Changes will take effect after restarting the program' Visible = False + TabOrder = 3 end end object StatusBar1: TStatusBar @@ -427,6 +428,7 @@ object SettingsForm: TSettingsForm Size.Width = 558.000000000000000000 Size.Height = 64.000000000000000000 Size.PlatformDefault = False + TabOrder = 0 object aerenderPathLabel: TLabel Align = Top StyledSettings = [Family, Size, FontColor] @@ -551,6 +553,7 @@ object SettingsForm: TSettingsForm Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False + TabOrder = 1 object defProjPathLabel: TLabel Align = Left Margins.Left = 8.000000000000000000 @@ -590,6 +593,7 @@ object SettingsForm: TSettingsForm Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False + TabOrder = 2 object defOutPathLabel: TLabel Align = Left Margins.Left = 8.000000000000000000 @@ -629,6 +633,7 @@ object SettingsForm: TSettingsForm Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False + TabOrder = 3 ColumnCollection = < item Value = 64.999999999999960000 diff --git a/src/lib/AErenderLauncher.IO.pas b/src/lib/AErenderLauncher.IO.pas index f518d57..dd46843 100644 --- a/src/lib/AErenderLauncher.IO.pas +++ b/src/lib/AErenderLauncher.IO.pas @@ -13,6 +13,8 @@ interface function Open(Path: String; Args: TArray): Integer; function Execute(Path: String): Integer; function BackgroundExecute(Path: String): Integer; + + procedure CreateCmd(const ACommand, AFile: String); //function ExecuteAndWait(Path: String; Timeout: Cardinal): WideString; implementation @@ -30,7 +32,7 @@ function Open(Path: String; Args: TArray): Integer; for var i := 0 to High(Args) do TempArgs := TempArgs + Format('"%s" ', [Args[i]]); - Result := _system(PAnsiChar(Format('open -a "%s" --args %s & disown', [AnsiString(Path), AnsiString(TempArgs)])); + Result := _system(PAnsiChar(Format('open -a "%s" --args %s & disown', [AnsiString(Path), AnsiString(TempArgs)]))); {$ENDIF} end; @@ -54,39 +56,38 @@ function BackgroundExecute(Path: String): Integer; {$ENDIF} end; -{function ExecuteAndWait(Path: String; Timeout: Cardinal): WideString; +function OpenAndWait(Path: String; Args: TArray; Timeout: Cardinal): WideString; begin - var Res: WideString; - var Elapsed: Cardinal; - - var CheckOutputThread: TThread := TThread.CreateAnonymousThread(procedure begin - var F: TextFile; - AssignFile(F, Path); - - Read(F, Res); - repeat - Sleep(1000); - Elapsed := Elapsed + 1000; - until (FileExists(Path) and (Res <> '')) or (Elapsed = Timeout); - - if Elapsed >= Timeout then begin - Res := WideString('timeout'); - end - end); + // +end; - CheckOutputThread.Start; +procedure CreateCmd(const ACommand, AFile: String); +var + F: TextFile; +begin + AssignFile(F, AFile); + Rewrite(F); + Writeln(F, ACommand); + CloseFile(F); +end; - Result := Res; +procedure CreateCmdAndExecute(const ACommand, AFile: String; const Background: Boolean = True); +begin + CreateCmd(ACommand, AFile); -end; } + if Background then + Execute(AFile) + else + BackgroundExecute(AFile); +end; -function OpenAndWait(Path: String; Args: TArray; Timeout: Cardinal): WideString; +procedure CreateCmdAndOpen(const ACommand, AFile: String; const Args: TArray); begin - // We need to create the following - // ("Path\To\App" "Project\Path") > "JSON\Result\Path" - //var Res: String := Format('('); - + CreateCmd(ACommand, AFile); + Open(AFile, Args); end; +//initialization + end. diff --git a/src/lib/AErenderLauncher.Rendering.pas b/src/lib/AErenderLauncher.Rendering.pas index 98a0a3b..6ef33ec 100644 --- a/src/lib/AErenderLauncher.Rendering.pas +++ b/src/lib/AErenderLauncher.Rendering.pas @@ -5,8 +5,8 @@ interface uses - System.SysUtils, System.Classes, System.Generics.Collections, - AErenderLauncher.Math; + System.SysUtils, System.Classes, System.Generics.Collections, System.JSON, + AErenderLauncher.Math, AErenderLauncher.IO, AErenderLauncher.AerenderParser; //const // RM_NORMAL = 0; RM_TILED = 1; RM_ALL_AT_ONCE = 2; @@ -39,9 +39,17 @@ TComposition = record Frames: TFrameSpan; Split: Cardinal; Executable: TExecutable; + IsRendering: Boolean; constructor Create(const CompName: String; const Frames: TFrameSpan; const Split: Integer = 1); end; + TRenderObject = record + LogFile: String; + Duration: TTimecode; + Framerate: TFrameRate; + constructor Create(const ALogFile: String; const ADuration: TTimecode; const AFramerate: TFrameRate); + end; + TRenderThread = class(TThread) private IsRendering: Boolean; @@ -79,7 +87,7 @@ TRenderTask = class(TObject) FRenderFinishEvent: TRenderFinishEvent; //procedure TaskTerminate(Sender: TObject); - function ToExec: TList; + function ToExec: TList; published // Make some properties for tasks to use // Standard property Project: String read FProject write FProject; @@ -111,7 +119,13 @@ TRenderTask = class(TObject) const CacheLimit, MemoryLimit: Single; const Compositions: TList); - procedure Render(Mode: Integer = 0); + constructor CreateFromJSON (const Project, Output, OutputModule, RenderSettings: String; + const MissingFiles, Sound, Multiprocessing: Boolean; + const CustomProperties: String; + const CacheLimit, MemoryLimit: Single; + const ProjectJSON: String); + + procedure Render(Mode: TRenderMode = RM_NORMAL); function ToString: String; override; function Count: Integer; end; @@ -143,24 +157,27 @@ TAErender = class(TObject) var AErenderPath, Errors: String; RenderTasks: TObjectList; + RenderQueue: TList; implementation +uses + MainUnit; (*******************) (* TRenderThread *) (*******************) procedure TRenderThread.Execute; begin - var i: Integer := 0; - while IsRendering do begin - inc (i); - Writeln(i); - if i >= 5 then begin - IsRendering := False; - end; - end; - Self.DoTerminate; +// var i: Integer := 0; +// while IsRendering do begin +// inc (i); +// Writeln(i); +// if i >= 5 then begin +// IsRendering := False; +// end; +// end; +// Self.DoTerminate; end; (****************) @@ -217,6 +234,14 @@ constructor TComposition.Create(const CompName: String; const Frames: TFrameSpan Self.Split := Split; end; +constructor TRenderObject.Create(const ALogFile: String; const ADuration: TTimecode; const AFramerate: TFrameRate); +begin + Self.LogFile := ALogFile; + Self.Duration := ADuration; + Self.Framerate := AFramerate; +end; + + (*****************) (* TRenderTask *) (*****************) @@ -247,29 +272,53 @@ function TRenderTask.Count: Integer; Result := Res; end; -function TRenderTask.ToExec: TList; +function TRenderTask.ToExec: TList; begin // Start with empty string - var TempStr: WideString := ''; - var List: TList := TList.Create(); - - // Append all the nesesary information in the beginning - TempStr := {$IFDEF MSWINDOWS}'chcp 65001' + #13#10 + {$ENDIF} - Format('("%s" -project "%s" -output "%s" %s %s %s -OMtemplate "%s" -RStemplate "%s" -mem_usage "%d" "%d" %s', [ - AErenderPath, - Project, - Output, - IfThenElse(Sound, '-sound ON', ''), - IfThenElse(Multiprocessing, '-mp', ''), - IfThenElse(MissingFiles, '-continueOnMissingFootage', ''), - OutputModule, - RenderSettings, - Trunc(MemoryLimit), - Trunc(CacheLimit), - IfThenElse(CustomProperties.IsEmpty, CustomProperties, '') - ]); - - List.Add(TempStr); + var TempStr: String := ''; + var List: TList := TList.Create(); + + for var Composition: TComposition in Compositions do begin + for var i := 0 to Composition.Split - 1 do begin + + var SplitFrameSpans: TArray := Composition.Frames.Split(Composition.Split); + SetLength(SplitFrameSpans, Length(SplitFrameSpans)); // Calculate split once, so we don't have to calculate it everytime + + // should match \[(.*?)\]\_\[(.*?)\]\_\[(.*?)\]\_\[(.*?)\]\.bat + var FilePath: String := APPFOLDER + Format('[%s]_[%s]_[%d]_[%d].ext', [ExtractFileName(Project).Replace('.aep', ''), Composition.CompName, SplitFrameSpans[i].StartFrame, SplitFrameSpans[i].EndFrame]); + + // Append all the nesesary information in the beginning + TempStr := Format('"%s" -project "%s" -output "%s" %s %s %s -OMtemplate "%s" -RStemplate "%s" -mem_usage "%d" "%d" %s -comp "%s" -s "%d" -e "%d"', [ + AErenderPath, + Project, + Output, + IfThenElse(Sound, '-sound ON', ''), // yeet + IfThenElse(Multiprocessing, '-mp', ''), // double yeet + IfThenElse(MissingFiles, '-continueOnMissingFootage', ''), // tripple yeet + OutputModule, + RenderSettings, + Trunc(MemoryLimit), + Trunc(CacheLimit), + IfThenElse(CustomProperties.IsEmpty, CustomProperties, ''), // quadruple yeet + Composition.CompName, + SplitFrameSpans[i].StartFrame, + SplitFrameSpans[i].EndFrame + ]); + + if SplitFrameSpans[i].StartFrame = 0 then + if SplitFrameSpans[i].EndFrame = 0 then + TempStr := TempStr.Replace('-s "0" -e "0"', ''); + + CreateCmd( + {$IFDEF MSWINDOWS}'chcp 65001' + #13#10 + {$ENDIF}Format('(%s) > "%s"', [TempStr, FilePath.Replace('.ext', '.log')]), + FilePath.Replace('.ext', {$IFDEF MSWINDOWS}'.bat'{$ELSE MACOS}'.command'{$ENDIF}) + ); + List.Add(FilePath); + end; + end; + + Result := List; + {for var Comp in Compositions do begin if Comp.Split = 0 then // yeet @@ -279,9 +328,25 @@ function TRenderTask.ToExec: TList; end; } end; -procedure TRenderTask.Render(Mode: Integer = 0); +procedure TRenderTask.Render(Mode: TRenderMode = RM_NORMAL); +var + Executables: TList; begin - ToExec; + case Mode of + RM_NORMAL: begin + Executables := ToExec; + for var Exec: String in Executables do begin + RenderQueue.Add(TRenderObject.Create(Exec, TTimecode.Create(0, 0, 0, 0), 0.00)); + end; + end; + RM_TILED: begin + + end; + RM_ALL_AT_ONCE: begin + + end; + end; + {if Assigned(FRenderStartEvent) then FRenderStartEvent(Self); FRenderThread := TRenderThread.Create(True); @@ -315,6 +380,40 @@ constructor TRenderTask.Create(const Project, Output, OutputModule, RenderSettin Self.Compositions := Compositions; end; +constructor TRenderTask.CreateFromJSON(const Project, Output, OutputModule, RenderSettings: String; + const MissingFiles, Sound, Multiprocessing: Boolean; + const CustomProperties: String; + const CacheLimit, MemoryLimit: Single; + const ProjectJSON: String); +begin + var ParsedProjectJSON: TJSONValue := TJSONObject.ParseJSONValue(ProjectJSON); + + var Compositions: TList := TList.Create; + + for var i := 0 to (ParsedProjectJSON as TJSONArray).Count - 1 do + + Compositions.Add(TComposition.Create( + ParsedProjectJSON.A[i].P['Name'].Value, + TFrameSpan.Create(ParsedProjectJSON.A[i].P['Frames'].A[0].Value, ParsedProjectJSON.A[i].P['Frames'].A[1].Value), + 1 + )); + + Self.Project := Project; + Self.Output := Output; + + Self.OutputModule := OutputModule; + Self.RenderSettings := RenderSettings; + + Self.MissingFiles := MissingFiles; + Self.Sound := Sound; + Self.Multiprocessing := Multiprocessing; + Self.CustomProperties := CustomProperties; + Self.CacheLimit := CacheLimit; + Self.MemoryLimit := MemoryLimit; + + Self.Compositions := Compositions; +end; + (***************) (* TAErender *) // but do I really need it, though? @@ -420,6 +519,7 @@ function GetCompIndexInTask(const ATask: TRenderTask; const ACompName: String): (********************) initialization RenderTasks := TObjectList.Create; + RenderQueue := TList.Create; Errors := ''; @@ -428,5 +528,7 @@ initialization (******************) finalization if Assigned(RenderTasks) then FreeAndNil(RenderTasks); + if Assigned(RenderQueue) then FreeAndNil(RenderQueue); + end. diff --git a/src/lib/Components/TCompLabel/Package/CompLabel.dpk b/src/lib/Components/TCompLabel/Package/CompLabel.dpk index ce65d06..4999faa 100644 --- a/src/lib/Components/TCompLabel/Package/CompLabel.dpk +++ b/src/lib/Components/TCompLabel/Package/CompLabel.dpk @@ -29,7 +29,12 @@ requires rtl, - fmx; + fmx, + designide, + vcl, + vclactnband, + vclx, + xmlrtl; contains FMX.CompLabel in 'FMX.CompLabel.pas'; diff --git a/src/lib/Components/TCompLabel/Package/CompLabel.dproj b/src/lib/Components/TCompLabel/Package/CompLabel.dproj index 8111513..b90db7d 100644 --- a/src/lib/Components/TCompLabel/Package/CompLabel.dproj +++ b/src/lib/Components/TCompLabel/Package/CompLabel.dproj @@ -2,11 +2,11 @@ {A4E9E299-9B51-4D63-955F-C0270900B84E} CompLabel.dpk - 19.0 + 19.2 FMX True Debug - OSX64 + Win32 4099 Package @@ -77,27 +77,32 @@ System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) All CompLabel + C:\YandexDisk\Development\Delphi\AErender Launcher\src\lib\Components\TCompLabel\Package;$(DCC_UnitSearchPath) + bpl None android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar - rtl;fmx;$(DCC_UsePackage) + rtl;fmx;xmlrtl;$(DCC_UsePackage) + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png None android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar - rtl;fmx;$(DCC_UsePackage) + rtl;fmx;xmlrtl;$(DCC_UsePackage) + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png None - rtl;fmx;$(DCC_UsePackage) + rtl;fmx;xmlrtl;$(DCC_UsePackage) + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png None - rtl;fmx;$(DCC_UsePackage) + rtl;fmx;xmlrtl;$(DCC_UsePackage) - rtl;fmx;$(DCC_UsePackage) + rtl;fmx;xmlrtl;$(DCC_UsePackage) CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers Debug @@ -107,10 +112,10 @@ true CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 1033 - rtl;fmx;$(DCC_UsePackage) + rtl;fmx;vcl;xmlrtl;vclactnband;vclx;$(DCC_UsePackage) - rtl;fmx;$(DCC_UsePackage) + rtl;fmx;vcl;xmlrtl;vclactnband;vclx;$(DCC_UsePackage) Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) Debug true @@ -140,6 +145,11 @@ + + + + +
    CompLabelRes.res
    @@ -190,6 +200,12 @@ true
    + + + CompLabel.bpl + true + + CompLabel.bpl @@ -332,6 +348,16 @@ 1 + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + res\drawable-ldpi @@ -562,6 +588,32 @@ 0 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset @@ -582,6 +634,56 @@ 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset @@ -622,6 +724,66 @@ 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + 1 diff --git a/src/lib/Components/TCompLabel/Package/CompLabel.res b/src/lib/Components/TCompLabel/Package/CompLabel.res index 36f26e234a8ac66a47e95cec6d496cf2f1442471..c224198fbd264ccda596ec3d3d3ca0e22f591901 100644 GIT binary patch literal 640 zcmZ{i%}&Bl5QR^%3t`3Dl?&ITCf%5j7$Ry&Pzg3{6$_ds{UH?}&$n^!8;IYXS}83Z#LB?++D3Y-v#4YE>PS51+_xLneO$#d8sMUNO!vBeZ+Z1?AE*g z`6W4irBOf6Eh{;}I`ea-M=m_{)+&`K*9&TiQY}%=^{fJ5-!Oqf1v+DgcyNyT>cFk> zLpZOBO=pE(0ynqMTo7eiX{@=PK&9LUI&5%f+?KGnoKy9{)LWY92>b+8fyWZ142MJ0 zk4?XaMuz^JY|ObZ%>s?Tz8{+RN^hYz7;7r&RG0sH4$bo}XW#k0Z|BgXYtB_&scmJY y6YEN3f0R>!6lAk@ZU4h(JgBvsoemWkYoN$_KGhA;fO)v4BN1J!R&#a^y3#kyAyvl! delta 5 McmZo*RhXav00cP!RsaA1 diff --git a/src/lib/Components/TCompLabel/Package/CompLabelDesign.style b/src/lib/Components/TCompLabel/Package/CompLabelDesign.style index d7d78d5..cfc5d98 100644 --- a/src/lib/Components/TCompLabel/Package/CompLabelDesign.style +++ b/src/lib/Components/TCompLabel/Package/CompLabelDesign.style @@ -4,7 +4,7 @@ object TRectangle ClipChildren = True Fill.Kind = None HitTest = False - Size.Width = 500.000000000000000000 + Size.Width = 971.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None @@ -13,7 +13,7 @@ object TRectangle Align = Client HitTest = False Margins.Left = 20.000000000000000000 - Size.Width = 180.000000000000000000 + Size.Width = 439.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False Text = 'Text' @@ -26,8 +26,8 @@ object TRectangle StyleName = 'inframe' Align = Right HitTest = False - Position.X = 200.000000000000000000 - Size.Width = 100.000000000000000000 + Position.X = 651.000000000000000000 + Size.Width = 96.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False Text = 'Text' @@ -38,8 +38,8 @@ object TRectangle StyleName = 'outframe' Align = Right HitTest = False - Position.X = 300.000000000000000000 - Size.Width = 100.000000000000000000 + Position.X = 763.000000000000000000 + Size.Width = 96.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False Text = 'Text' @@ -50,12 +50,48 @@ object TRectangle StyleName = 'split' Align = Right HitTest = False - Position.X = 400.000000000000000000 - Size.Width = 100.000000000000000000 + Position.X = 875.000000000000000000 + Size.Width = 64.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False Text = 'Text' TextSettings.FontColor = claWhite TextSettings.HorzAlign = Leading end -end + object TLayout + StyleName = 'Layout1' + Align = Right + Position.X = 459.000000000000000000 + Size.Width = 192.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + TabOrder = 0 + object TProgressBar + StyleName = 'progressbar' + Align = Contents + HitTest = False + Orientation = Horizontal + Margins.Top = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Size.Width = 184.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + end + object TText + StyleName = 'progress' + Align = Contents + Enabled = False + HitTest = False + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Size.Width = 176.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + TextSettings.HorzAlign = Leading + Visible = False + end + end +end \ No newline at end of file diff --git a/src/lib/Components/TCompLabel/Package/FMX.CompLabel.pas b/src/lib/Components/TCompLabel/Package/FMX.CompLabel.pas index b2f4548..fca198f 100644 --- a/src/lib/Components/TCompLabel/Package/FMX.CompLabel.pas +++ b/src/lib/Components/TCompLabel/Package/FMX.CompLabel.pas @@ -3,21 +3,29 @@ interface uses - System.Types, System.SysUtils, System.Classes, System.UITypes, FMX.Types, FMX.Controls, FMX.Styles, FMX.StdCtrls, FMX.Objects; + System.Types, System.SysUtils, System.Classes, System.UITypes, + FMX.Types, FMX.Controls, FMX.Styles, FMX.StdCtrls, FMX.Objects; type TCompLabel = class(TStyledControl) private - FComposition, FInFrame, FOutFrame, FSplit: String; + FComposition, FProgress, FSplit: String; + FValue, FInFrame, FOutFrame: Single; function GetCompName: String; procedure SetCompName(Value: String); - function GetInFrame: String; - procedure SetInFrame(Value: String); + function GetProgress: String; + procedure SetProgress(Value: String); - function GetOutFrame: String; - procedure SetOutFrame(Value: String); + function GetValue: Single; + procedure SetValue(Value: Single); + + function GetInFrame: Single; + procedure SetInFrame(Value: Single); + + function GetOutFrame: Single; + procedure SetOutFrame(Value: Single); function GetSplit: String; procedure SetSplit(Value: String); @@ -34,8 +42,10 @@ TCompLabel = class(TStyledControl) property Size; property Composition: String read GetCompName write SetCompName; - property InFrame: String read GetInFrame write SetInFrame; - property OutFrame: String read GetOutFrame write SetOutFrame; + property Progress: String read GetProgress write SetProgress; + property Value: Single read GetValue write SetValue; + property InFrame: Single read GetInFrame write SetInFrame; + property OutFrame: Single read GetOutFrame write SetOutFrame; property Split: String read GetSplit write SetSplit; end; @@ -62,10 +72,8 @@ function TCompLabel.GetStyleObject: TFmxObject; {$REGION ' Composition '} function TCompLabel.GetCompName: String; -var - Base: TFmxObject; begin - Base := FindStyleResource('comp'); + var Base: TFmxObject := FindStyleResource('comp'); if Base <> nil then FComposition := TText(Base).Text; @@ -73,63 +81,105 @@ function TCompLabel.GetCompName: String; end; procedure TCompLabel.SetCompName(Value: String); -var - Base: TFmxObject; begin FComposition := Value; - Base := FindStyleResource('comp'); + var Base: TFmxObject := FindStyleResource('comp'); + if Base <> nil then + TText(Base).Text := Value; +end; + +{$ENDREGION} + +{$REGION ' Progress '} + +function TCompLabel.GetProgress: String; +begin + var Base: TFmxObject := FindStyleResource('progress'); + if Base <> nil then + FProgress := TText(Base).Text; + + Result := FProgress; +end; + +procedure TCompLabel.SetProgress(Value: String); +begin + FProgress := Value; + var Base: TFmxObject := FindStyleResource('progress'); if Base <> nil then TText(Base).Text := Value; end; {$ENDREGION} +{$REGION ' Value '} + +function TCompLabel.GetValue: Single; +begin + var Base: TFmxObject := FindStyleResource('progressbar'); + if Base <> nil then + FValue := TProgressBar(Base).Value; + + Result := FValue; +end; + +procedure TCompLabel.SetValue(Value: Single); +begin + FValue := Value; + var Base: TFmxObject := FindStyleResource('progressbar'); + if Base <> nil then begin + TProgressBar(Base).Value := Value; + TProgressBar(Base).Visible := Value >= FInFrame; + end; +end; + +{$ENDREGION} + {$REGION ' InFrame '} -function TCompLabel.GetInFrame: String; -var - Base: TFmxObject; +function TCompLabel.GetInFrame: Single; begin - Base := FindStyleResource('inframe'); + var Base: TFmxObject := FindStyleResource('inframe'); if Base <> nil then - FInFrame := TText(Base).Text; + FInFrame := StrToFloat(TText(Base).Text); Result := FInFrame; end; -procedure TCompLabel.SetInFrame(Value: String); -var - Base: TFmxObject; +procedure TCompLabel.SetInFrame(Value: Single); begin FInFrame := Value; - Base := FindStyleResource('inframe'); + var Base: TFmxObject := FindStyleResource('inframe'); if Base <> nil then - TText(Base).Text := Value; + TText(Base).Text := IntToStr(Trunc(Value)); + + var ProgressBarBase: TFmxObject := FindStyleResource('progressbar'); + if ProgressBarBase <> nil then + TProgressBar(ProgressBarBase).Min := FInFrame; end; {$ENDREGION} {$REGION ' OutFrame '} -function TCompLabel.GetOutFrame: String; -var - Base: TFmxObject; +function TCompLabel.GetOutFrame: Single; begin - Base := FindStyleResource('outframe'); + var Base: TFmxObject := FindStyleResource('outframe'); if Base <> nil then - FOutFrame := TText(Base).Text; + FOutFrame := StrToFloat(TText(Base).Text); Result := FOutFrame; end; -procedure TCompLabel.SetOutFrame(Value: String); -var - Base: TFmxObject; +procedure TCompLabel.SetOutFrame(Value: Single); begin FOutFrame := Value; - Base := FindStyleResource('outframe'); + var Base: TFmxObject := FindStyleResource('outframe'); if Base <> nil then - TText(Base).Text := Value; + TText(Base).Text := IntToStr(Trunc(Value)); + + var ProgressBarBase: TFmxObject := FindStyleResource('progressbar'); + if ProgressBarBase <> nil then + TProgressBar(ProgressBarBase).Max := FOutFrame; end; {$ENDREGION} @@ -137,10 +187,8 @@ procedure TCompLabel.SetOutFrame(Value: String); {$REGION ' Split '} function TCompLabel.GetSplit: String; -var - Base: TFmxObject; begin - Base := FindStyleResource('split'); + var Base: TFmxObject := FindStyleResource('split'); if Base <> nil then FSplit := TText(Base).Text; @@ -148,11 +196,9 @@ function TCompLabel.GetSplit: String; end; procedure TCompLabel.SetSplit(Value: String); -var - Base: TFmxObject; begin FSplit := Value; - Base := FindStyleResource('split'); + var Base: TFmxObject := FindStyleResource('split'); if Base <> nil then TText(Base).Text := Value; end; @@ -163,6 +209,8 @@ procedure TCompLabel.ApplyStyle; begin inherited; SetCompName(FComposition); + SetProgress(FProgress); + SetValue(FValue); SetInFrame(FInFrame); SetOutFrame(FOutFrame); SetSplit(FSplit); @@ -175,8 +223,10 @@ constructor TCompLabel.Create(AOwner: TComponent); Width := 400; Composition := ''; - InFrame := ''; - OutFrame := ''; + Progress := ''; + Value := -1; + InFrame := 0; + OutFrame := 100; Split := ''; HitTest := False; end; diff --git a/src/lib/Components/TCompLabel/Package/FMX.CompLabel.res b/src/lib/Components/TCompLabel/Package/FMX.CompLabel.res index f0cb9af7e7e6b436a8f7a9c365a4ab0eb9a9bb53..482f46a64e5f04d3f83e8dc651264480458d0f3d 100644 GIT binary patch literal 2904 zcmd^BO^@0z5cQ##BK1G`#w~(fKBe}sq#&fS3tFPm9t|b3}A&herpsz3v zk82v}?Hl(;F2B*0!NDWEiHJCTSHpO2o;ZCVF~uKneI?^9Criq;mDcV29cPh%IiCtc zm6iCMZT$`7p`vyoP`hNK5#!wZ#6$?P2PqQSn3;fT1CkNpIz5l=skdOE*?_d)ZF-Ft zzr-x7Hl{4v*wr_!DzzCWW-V3xk*>*(=T9?Aey2sV91sEhVeDaNP)K|~@t!mAKh-_s z6vp>NMNDXKLf47GjS_?5s8ax1xBY6x%MfHcR)B!9brfK%+cERZe$J^eOhnonNnw1+ zr2?fDCyNa;NwCtDN3}q)IEDqFO6? z`2P*8ddr!+bB^)9Mb%!neI2HqvLu;N`mahQ*HLvso`9C=rOp+qbfQ_F0&=&#)xMBr z9W9&vn`*585QbzqRUx(6wvjsLGTuzdNKvf^Bq_BoO4Bx*UlNu1eo~_#i9?an>5dqm zty36Jl`Un&rb0L$;=uN>kZ`xmRkA?Z1l}vf<5$f~=zOK_KpG?C3(C0?+3c0`y2$J* zYm-eYt7KMv&eb0{=(JCAVYnEBp&(06ZA)}g2}?ucpwF6!DsPd;*$XPIx0bV}=@@N6d delta 105 zcmca1*26bJfoTKVM5Qy#rUnKRKmKDjv@n?5$eudckJWART&7dZMg|6x53;B+8v<#F ac=O~c78hn?4Dln(CKzH#tf_e^yj%bk=^#e{ diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.fmx b/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.fmx index 2fe7b4d..1396e11 100644 --- a/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.fmx +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelDesign.fmx @@ -12,16 +12,16 @@ object Form2: TForm2 Styles = < item ResourcesBin = { - 464D585F5354594C4520322E3501060E636F6D706C6162656C7374796C650349 - 0400545046300A5452656374616E676C6500095374796C654E616D65060E636F + 464D585F5354594C4520322E3501060E636F6D706C6162656C7374796C6503C5 + 0600545046300A5452656374616E676C6500095374796C654E616D65060E636F 6D706C6162656C7374796C6505416C69676E070643656E7465720C436C697043 68696C6472656E090946696C6C2E4B696E6407044E6F6E650748697454657374 - 080A53697A652E57696474680500000000000000FA07400B53697A652E486569 + 080A53697A652E576964746805000000000000C0F208400B53697A652E486569 6768740500000000000000C003401453697A652E506C6174666F726D44656661 756C74080B5374726F6B652E4B696E6407044E6F6E6500055454657874000953 74796C654E616D650604636F6D7005416C69676E0706436C69656E7407486974 54657374080C4D617267696E732E4C6566740500000000000000A003400A5369 - 7A652E57696474680500000000000000B406400B53697A652E48656967687405 + 7A652E57696474680500000000000080DB07400B53697A652E48656967687405 00000000000000C003401453697A652E506C6174666F726D44656661756C7408 0454657874060454657874165465787453657474696E67732E466F6E74436F6C 6F720708636C615768697465155465787453657474696E67732E5472696D6D69 @@ -29,25 +29,45 @@ object Form2: TForm2 72617008165465787453657474696E67732E486F727A416C69676E07074C6561 64696E67000005545465787400095374796C654E616D650607696E6672616D65 05416C69676E070552696768740748697454657374080A506F736974696F6E2E - 580500000000000000C806400A53697A652E57696474680500000000000000C8 + 5805000000000000C0A208400A53697A652E57696474680500000000000000E0 05400B53697A652E4865696768740500000000000000C003401453697A652E50 6C6174666F726D44656661756C74080454657874060454657874165465787453 657474696E67732E466F6E74436F6C6F720708636C6157686974651654657874 53657474696E67732E486F727A416C69676E07074C656164696E670000055454 65787400095374796C654E616D6506086F75746672616D6505416C69676E0705 52696768740748697454657374080A506F736974696F6E2E5805000000000000 - 009607400A53697A652E57696474680500000000000000C805400B53697A652E + C0BE08400A53697A652E57696474680500000000000000E005400B53697A652E 4865696768740500000000000000C003401453697A652E506C6174666F726D44 656661756C74080454657874060454657874165465787453657474696E67732E 466F6E74436F6C6F720708636C615768697465165465787453657474696E6773 2E486F727A416C69676E07074C656164696E6700000554546578740009537479 6C654E616D65060573706C697405416C69676E07055269676874074869745465 - 7374080A506F736974696F6E2E580500000000000000C807400A53697A652E57 - 696474680500000000000000C805400B53697A652E4865696768740500000000 + 7374080A506F736974696F6E2E5805000000000000C0DA08400A53697A652E57 + 696474680500000000000000C005400B53697A652E4865696768740500000000 000000C003401453697A652E506C6174666F726D44656661756C740804546578 74060454657874165465787453657474696E67732E466F6E74436F6C6F720708 636C615768697465165465787453657474696E67732E486F727A416C69676E07 - 074C656164696E67000000} + 074C656164696E67000007544C61796F757400095374796C654E616D6506074C + 61796F75743105416C69676E070552696768740A506F736974696F6E2E580500 + 000000000080E507400A53697A652E57696474680500000000000000C006400B + 53697A652E4865696768740500000000000000C003401453697A652E506C6174 + 666F726D44656661756C7408085461624F726465720200000C5450726F677265 + 737342617200095374796C654E616D65060B70726F677265737362617205416C + 69676E0708436F6E74656E74730748697454657374080B4F7269656E74617469 + 6F6E070A486F72697A6F6E74616C0B4D617267696E732E546F70050000000000 + 00008002400D4D617267696E732E526967687405000000000000008002400E4D + 617267696E732E426F74746F6D05000000000000008002400A53697A652E5769 + 6474680500000000000000B806400B53697A652E486569676874050000000000 + 00008002401453697A652E506C6174666F726D44656661756C74080000055454 + 65787400095374796C654E616D65060870726F677265737305416C69676E0708 + 436F6E74656E747307456E61626C6564080748697454657374080C4D61726769 + 6E732E4C65667405000000000000008002400D4D617267696E732E5269676874 + 05000000000000008002400A53697A652E57696474680500000000000000B006 + 400B53697A652E4865696768740500000000000000C003401453697A652E506C + 6174666F726D44656661756C7408045465787406045465787416546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 + 657474696E67732E486F727A416C69676E07074C656164696E67075669736962 + 6C650800000000} end> Left = 24 Top = 24 diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dproj b/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dproj index 5f39482..349764e 100644 --- a/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dproj +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelTest.dproj @@ -1,7 +1,7 @@  {A4B195DE-B5AE-4ADF-8E60-D326D61BD406} - 19.0 + 19.2 FMX True Debug @@ -70,6 +70,12 @@ Base true + + true + Cfg_2 + true + true + true Cfg_2 @@ -123,6 +129,7 @@ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) @@ -144,42 +151,35 @@ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;TMSFMXPackPkgDXE13;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) - CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers + CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers iPhoneAndiPad true Debug $(MSBuildProjectName) - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPad\FM_NotificationIcon_40x40.png DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) @@ -235,6 +235,13 @@ 0 0 + + $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPad\FM_NotificationIcon_40x40.png + true PerMonitorV2 @@ -448,6 +455,16 @@ 1 + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + res\drawable-ldpi @@ -699,6 +716,32 @@ 0 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset @@ -719,6 +762,56 @@ 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset @@ -759,6 +852,66 @@ 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + 1 @@ -811,6 +964,10 @@ ..\$(PROJECTNAME).launchscreen 64 + + ..\$(PROJECTNAME).launchscreen + 64 + diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx index 027d352..57b324d 100644 --- a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx @@ -3,9 +3,10 @@ object Form1: TForm1 Top = 0 Caption = 'Form1' ClientHeight = 480 - ClientWidth = 783 + ClientWidth = 1110 Fill.Color = xFF1C1C1C Fill.Kind = Solid + StyleBook = StyleBook1 FormFactor.Width = 320 FormFactor.Height = 480 FormFactor.Devices = [Desktop] @@ -19,23 +20,3396 @@ object Form1: TForm1 Text = 'Button1' end object CompLabel1: TCompLabel - Position.Y = 24.000000000000000000 - Size.Width = 593.000000000000000000 - Size.Height = 41.000000000000000000 + Position.X = 32.000000000000000000 + Position.Y = 152.000000000000000000 + Size.Width = 1025.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Composition = 'Composition' - InFrame = '0' - OutFrame = '0' + Value = 50.000000000000000000 + OutFrame = 150.000000000000000000 Split = '0' end object Label1: TLabel Align = Bottom StyledSettings = [Family, Size, Style] Position.Y = 463.000000000000000000 - Size.Width = 783.000000000000000000 + Size.Width = 1110.000000000000000000 Size.Height = 17.000000000000000000 Size.PlatformDefault = False TextSettings.FontColor = claWhite Text = 'Label1' end + object StyleBook1: TStyleBook + Styles = < + item + ResourcesBin = { + 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 + AF00060B627574746F6E7374796C6503BA040609656469747374796C6503A305 + 060A6C6162656C7374796C65031501060D67726F7570626F787374796C650383 + 02060D747261636B6261727374796C65038107060D636865636B626F78737479 + 6C6503880506147363726F6C6C62617268747261636B7374796C65033B010614 + 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 + 6172626F74746F6D627574746F6E03220406137363726F6C6C6261726C656674 + 627574746F6E03390406147363726F6C6C6261727269676874627574746F6E03 + 3A0406127363726F6C6C626172746F70627574746F6E033804060E7363726F6C + 6C6261727374796C65035804060A7468756D627374796C65033B02060B737769 + 7463687374796C6503D101060D636F6D626F626F787374796C6503F607060E63 + 6F6D626F656469747374796C65038209060F746162636F6E74726F6C7374796C + 65039C01060B746162646F747374796C65035901060C7461626974656D737479 + 6C6503E404060D7468756D626261727374796C65034F03060C6C697374626F78 + 7374796C6503A207060D6C697374626F78666F6F74657203800106106C697374 + 626F786974656D7374796C65031B0306126C697374626F78706C61696E686561 + 646572033B020609677269647374796C65039808060F6865616465726974656D + 7374796C6503C303061970726F67726573736261726D696E696572726F727374 + 796C65035603061170726F677265737363656C6C7374796C65039A0206106D65 + 6E756261726974656D7374796C6503250B060C6D656E756261727374796C6503 + 6C02060D6D656E756974656D7374796C6503520B06126D656E75736570617261 + 746F727374796C65037801060D6D656E75766965777374796C65039102060E69 + 6D61676563656C6C7374796C65033201060E706F70757063656C6C7374796C65 + 03C603060D7465787463656C6C7374796C65039B0106096D656D6F7374796C65 + 03DC07060E6C696E6B6C6162656C7374796C65034503060E7374617475736261 + 727374796C6503E401060C7370696E626F787374796C65031E08060D73697A65 + 677269707374796C6503F004060C746F6F6C6261727374796C6503CA00061570 + 726F67726573736261726572726F727374796C65036404060F64726F70746172 + 6765747374796C65036804061464726F707461726765746669656C647374796C + 6503890E060C706F706F7665727374796C65032A02060D706F707570626F7873 + 74796C6503320606147374617475736261726E6F677269707374796C6503D400 + 0613736D616C6C7363726F6C6C6261727374796C6503A301060D73706C697474 + 65727374796C650360040610636C6F7365627574746F6E7374796C6503660406 + 0E6D6178627574746F6E7374796C6503F603060E726573627574746F6E737479 + 6C65030F04060E6D696E627574746F6E7374796C65030E04060F746F6F6C7769 + 6E646F777374796C6503B20D061177696E646F77626F726465727374796C6503 + 4A100610726164696F627574746F6E7374796C6503AE050618756C63656E7465 + 72726164696F627574746F6E7374796C650352050617756C7269676874726164 + 696F627574746F6E7374796C650355050616756C6C656674726164696F627574 + 746F6E7374796C65035005061070726F67726573736261727374796C65035F04 + 060D657870616E6465727374796C650366060613657870616E64657262757474 + 6F6E7374796C650376020615657870616E646572636865636B626F787374796C + 6503D005060E6C6162656C66696C6C7374796C6503B8010613636F6D626F6564 + 69746572726F727374796C65038709061E70726F6772657373626172696E6465 + 7465726D696E61626C657374796C650379040611616E69696E64696361746F72 + 7374796C6503BA010615616E69696E64696361746F72686F727A7374796C6503 + 8A02060A70616E656C7374796C65031E01060E6C6F67627574746F6E7374796C + 65038A07061470726F67726573736261726D696E697374796C65035103061B74 + 72656576696577657870616E646572627574746F6E7374796C65037E02061174 + 726565766965776974656D7374796C65031305060D7472656576696577737479 + 6C650336070619616374696F6E746F6F6C627574746F6E6D756C746976696577 + 033407060E616464627574746F6E7374796C65032C070617696E666F746F6F6C + 627574746F6E6D756C74697669657703A90D061B6F7267616E697A65746F6F6C + 627574746F6E6D756C74697669657703EE06061B73657474696E6773746F6F6C + 627574746F6E6D756C746976696577037D13061172656D6F7665627574746F6E + 7374796C6503CF060614706F7075706261636B67726F756E647374796C6503BA + 0000545046300A5452656374616E676C6500095374796C654E616D65060F6261 + 636B67726F756E647374796C6505416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463244324432440A53697A652E576964746805000000 + 000000009407400B53697A652E4865696768740500000000000080D206401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650756697369626C650800005450463007544C61796F7574000953 + 74796C654E616D65060B627574746F6E7374796C6505416C69676E070643656E + 7465720A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E74 + 0C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 696474680500000000000000C805400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E + 31084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 + 323032300953746F7056616C7565070978464634303430343007547269676765 + 72063049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C73653B4973466F63757365643D66616C73650E54726967676572496E766572 + 7365063149734D6F7573654F7665723D66616C73653B4973507265737365643D + 66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 + 6E696D6174696F6E32084475726174696F6E05000000000000000000000C5072 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097846463430343034300953746F7056616C756507097846463137353739 + 430754726967676572062F4973507265737365643D747275653B49734D6F7573 + 654F7665723D747275653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E33084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463241383245320953746F7056616C75650709784646 + 3137353739430754726967676572062E4973507265737365643D747275653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 + 726967676572496E7665727365062F4973507265737365643D66616C73653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650000 + 0005545465787400095374796C654E616D6506047465787405416C69676E0706 + 436C69656E7413456E61626C6544726167486967686C69676874080748697454 + 657374080A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C7408165465787453657474696E67732E466F6E74436F6C6F720708 + 636C6157686974650000005450463007544C61796F757400095374796C654E61 + 6D650609656469747374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000C805400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508000C5442727573684F626A65637400095374796C654E616D65 + 060A666F726567726F756E6400000C5442727573684F626A6563740009537479 + 6C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72070978 + 393632413832453200000B54466F6E744F626A65637400095374796C654E616D + 650604666F6E7409466F6E742E53697A650500000000000000D0024000000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080A53697A652E5769647468050000000000 + 0000C805400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650614656469745374726F6B65416E696D6174696F6E3108447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060C53 + 74726F6B652E436F6C6F720A537461727456616C756507097846463135313531 + 350953746F7056616C756507097846463241383245320754726967676572060E + 4973466F63757365643D747275650E54726967676572496E7665727365060F49 + 73466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650614656469745374726F6B65416E696D6174696F6E + 32084475726174696F6E050000000000000000000007496E7665727365090C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463135313531350953746F7056616C756507097846463443 + 344334430754726967676572062149734D6F7573654F7665723D747275653B49 + 73466F63757365643D66616C73653B0E54726967676572496E76657273650622 + 49734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C73 + 653B00000007544C61796F757400095374796C654E616D650607627574746F6E + 7305416C69676E07055269676874064C6F636B6564090B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 + 0A506F736974696F6E2E580500000000000000C004400A506F736974696F6E2E + 5905000000000000008000400A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000A803401453697A652E50 + 6C6174666F726D44656661756C7408000007544C61796F757400095374796C65 + 4E616D650607636F6E74656E7405416C69676E0706436C69656E74064C6F636B + 6564090C4D617267696E732E4C65667405000000000000008001400B4D617267 + 696E732E546F7005000000000000008000400D4D617267696E732E5269676874 + 05000000000000008000400E4D617267696E732E426F74746F6D050000000000 + 00008000400A53697A652E57696474680500000000000000A804400B53697A65 + 2E4865696768740500000000000000A803401453697A652E506C6174666F726D + 44656661756C7408000006544C6162656C00095374796C654E616D6506067072 + 6F6D7074064C6F636B656409074F706163697479050000000000000080FE3F16 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 04546578740604546578740000005450463007544C61796F757400095374796C + 654E616D65060A6C6162656C7374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000000C805400B53697A652E4865696768 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 74080756697369626C65080005545465787400095374796C654E616D65060474 + 65787405416C69676E0708436F6E74656E74730748697454657374080A53697A + 652E57696474680500000000000000C805400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 0000005450463007544C61796F757400095374796C654E616D65060D67726F75 + 70626F787374796C6505416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000F004400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E64 + 07044E6F6E650748697454657374080C4D617267696E732E4C65667405000000 + 00000000C000400B4D617267696E732E546F7005000000000000009002400D4D + 617267696E732E52696768740500000000000000C000400E4D617267696E732E + 426F74746F6D0500000000000000C000400A53697A652E576964746805000000 + 00000000D804400B53697A652E48656967687405000000000000009804401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350005545465787400095374796C654E616D650604 + 74657874084175746F53697A65090A436C6970506172656E7409074869745465 + 7374080C4D617267696E732E4C6566740500000000000000A002400A506F7369 + 74696F6E2E5805000000000060559502400A506F736974696F6E2E5905000000 + 00004055D501C00A53697A652E576964746805000000000000B8C703400B5369 + 7A652E4865696768740500000000000060FF02401453697A652E506C6174666F + 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F + 720708636C615768697465155465787453657474696E67732E576F7264577261 + 7008000000005450463007544C61796F757400095374796C654E616D65060D74 + 7261636B6261727374796C6505416C69676E070643656E7465720A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C805401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C65080B46697865644865696768740211000A5452656374616E676C65 + 00095374796C654E616D65060668747261636B05416C69676E070A5665727443 + 656E7465720A46696C6C2E436F6C6F7207097846463135313531350748697454 + 657374080A506F736974696F6E2E590500000000000000BC04400A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000A001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730946696C6C2E4B696E6407044E6F6E65064C6F636B656409074869745465 + 7374080C4D617267696E732E4C6566740500000000000000C001400B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 0500000000000000C001400E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A53697A652E57696474680500000000000000B005400B53697A65 + 2E4865696768740500000000000000C000401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265 + 6374616E676C6500095374796C654E616D650609686967686C6967687405416C + 69676E07044C6566740A46696C6C2E436F6C6F72070978464632413832453207 + 48697454657374080C50616464696E672E4C6566740500000000000000A00240 + 0A53697A652E57696474680500000000000000F003400B53697A652E48656967 + 68740500000000000000A001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666 + 6563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C + 6F720709784646324138324532074F706163697479050000000000000080FF3F + 07456E61626C6564080000000A5452656374616E676C6500095374796C654E61 + 6D65060676747261636B05416C69676E070A486F727A43656E7465720A46696C + 6C2E436F6C6F7207097846463135313531350748697454657374080A506F7369 + 74696F6E2E580500000000000000BC04400A53697A652E576964746805000000 + 00000000A001400B53697A652E4865696768740500000000000000C805401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000A5452656374616E676C6500095374796C654E616D65060A62 + 61636B67726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B + 696E6407044E6F6E65064C6F636B6564090748697454657374080C4D61726769 + 6E732E4C6566740500000000000000C001400B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E52696768740500000000000000C0 + 01400E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A + 652E576964746805000000000000000000000B53697A652E4865696768740500 + 000000000000C405401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009 + 5374796C654E616D650609686967686C6967687405416C69676E0703546F700A + 46696C6C2E436F6C6F7207097846463241383245320748697454657374080A53 + 697A652E57696474680500000000000000A001400B53697A652E486569676874 + 0500000000000000F003401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F774566666563 + 740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F72 + 0709784646324138324532074F706163697479050000000000000080FF3F0745 + 6E61626C65640800000006545468756D6200095374796C654E616D6506066874 + 68756D62064C6F636B6564090A506F736974696F6E2E580500000000003033AB + 03400A506F736974696F6E2E59050000000000FFFFA304400A53697A652E5769 + 6474680500000000000000F002400B53697A652E486569676874050000000000 + 0000F002401453697A652E506C6174666F726D44656661756C74080B5374796C + 654C6F6F6B7570060D7468756D626261727374796C65000006545468756D6200 + 095374796C654E616D650606767468756D62064C6F636B6564090A506F736974 + 696F6E2E58050000000000CBCCA804400A506F736974696F6E2E590500000000 + 009899B103400A53697A652E57696474680500000000000000F002400B53697A + 652E4865696768740500000000000000F002401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B7570060D7468756D6262617273 + 74796C650000005450463007544C61796F757400095374796C654E616D65060D + 636865636B626F787374796C6505416C69676E070643656E7465720A53697A65 + 2E5769647468050000000000ACAA8006400B53697A652E486569676874050000 + 00000058559904401453697A652E506C6174666F726D44656661756C74080756 + 697369626C65080007544C61796F75740005416C69676E07044C6566740A5369 + 7A652E576964746805000000000000009003400B53697A652E48656967687405 + 000000000058559904401453697A652E506C6174666F726D44656661756C7408 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463230323032300748697454657374080A53697A652E57696474680500000000 + 000000F002400B53697A652E4865696768740500000000000000F00240145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653105416C69676E0706436C69656E740A46696C + 6C2E436F6C6F720709784646324138324532074869745465737408074F706163 + 69747905000000000000000000000C4D617267696E732E4C6566740500000000 + 0000008000400B4D617267696E732E546F7005000000000000008000400D4D61 + 7267696E732E526967687405000000000000008000400E4D617267696E732E42 + 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 + 000000B002400B53697A652E4865696768740500000000000000B00240145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D + 65061B6368656368626F7856697362696C697479416E696D6174696F6E310844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 074F7061636974790A537461727456616C756505000000000000000000000953 + 746F7056616C75650500000000000000C805400754726967676572060E497343 + 6865636B65643D747275650E54726967676572496E7665727365060F49734368 + 65636B65643D66616C73650000000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650618636865636B626F785374726F6B65416E696D617469 + 6F6E31084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565070978 + 46463135313531350953746F7056616C75650709784646324138324532075472 + 6967676572060E4973436865636B65643D747275650E54726967676572496E76 + 65727365060F4973436865636B65643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650617636865636B626F78436F6C6F + 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572061049734D6F7573654F7665723D747275650E5472 + 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 0706436C69656E740A53697A652E57696474680500000000005855DD05400B53 + 697A652E48656967687405000000000058559904401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C615768697465000000545046300A5452656374616E676C650009 + 5374796C654E616D6506147363726F6C6C62617268747261636B7374796C6505 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646313531 + 3531350748697454657374080A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650756697369626C65080006545468756D6200095374796C654E616D65060574 + 68756D62064C6F636B6564090A53697A652E5769647468050000000000000080 + 03400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060A746875 + 6D627374796C65000000545046300A5452656374616E676C6500095374796C65 + 4E616D6506147363726F6C6C62617276747261636B7374796C6505416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463135313531350748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507566973 + 69626C65080006545468756D6200095374796C654E616D6506057468756D6206 + 4C6F636B6564090A53697A652E57696474680500000000000000C804400B5369 + 7A652E48656967687405000000000000008003401453697A652E506C6174666F + 726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D62737479 + 6C650000005450463007544C61796F757400095374796C654E616D6506157363 + 726F6C6C626172626F74746F6D627574746F6E05416C69676E070643656E7465 + 720756697369626C6508000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C6970 + 4368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206204973 + 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 + 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 + 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E32084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464631373537394307547269 + 67676572061F4973507265737365643D747275653B49734D6F7573654F766572 + 3D747275650E54726967676572496E766572736506204973507265737365643D + 66616C73653B49734D6F7573654F7665723D7472756500000007544C61796F75 + 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E + 7465720A53697A652E57696474680500000000000000A002400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080005545061746800095374796C654E616D650605506174683105 + 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 + 000000000000C8420000C84201000000000096430000C8420100000000004843 + 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000000005450463007544C61796F757400095374796C654E616D650613 + 7363726F6C6C6261726C656674627574746F6E05416C69676E070643656E7465 + 720756697369626C6508000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C6970 + 4368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206204973 + 4D6F7573654F7665723D747275653B4973507265737365643D66616C73650E54 + 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 + 3B4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E32084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464631373537394307547269 + 67676572061F4973507265737365643D747275653B49734D6F7573654F766572 + 3D747275650E54726967676572496E766572736506204973507265737365643D + 66616C73653B49734D6F7573654F7665723D7472756500000007544C61796F75 + 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E + 7465720A53697A652E57696474680500000000000000A002400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080005545061746800095374796C654E616D650605506174683105 + 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 + 000000000000C8420000C84201000000000096430000C8420100000000004843 + 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080D526F746174696F6E416E676C6505000000 + 00000000B405400A53697A652E57696474680500000000000000A002400B5369 + 7A652E4865696768740500000000000000C001401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000 + 5450463007544C61796F757400095374796C654E616D6506147363726F6C6C62 + 61727269676874627574746F6E05416C69676E070643656E7465720756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846463137353739430754726967676572061F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E + 54726967676572496E766572736506204973507265737365643D66616C73653B + 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0005545061746800095374796C654E616D650605506174683105416C69676E07 + 06436C69656E7409446174612E506174680A3400000004000000000000000000 + C8420000C84201000000000096430000C8420100000000004843000096430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080D526F746174696F6E416E676C650500000000000000B405 + C00A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 + 4C61796F757400095374796C654E616D6506127363726F6C6C626172746F7062 + 7574746F6E05416C69676E070643656E7465720756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A436C6970 + 506172656E74090A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463230323032300953746F7056616C75650709784646 + 3430343034300754726967676572062049734D6F7573654F7665723D74727565 + 3B4973507265737365643D66616C73650E54726967676572496E766572736506 + 2149734D6F7573654F7665723D66616C73653B4973507265737365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463430343034300953746F705661 + 6C756507097846463137353739430754726967676572061F4973507265737365 + 643D747275653B49734D6F7573654F7665723D747275650E5472696767657249 + 6E766572736506204973507265737365643D66616C73653B49734D6F7573654F + 7665723D7472756500000007544C61796F757400095374796C654E616D650607 + 4C61796F75743105416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080005545061746800 + 095374796C654E616D650605506174683105416C69676E0706436C69656E7409 + 446174612E506174680A3400000004000000000000000000C8420000C8420100 + 0000000096430000C842010000000000484300009643030000000000C8420000 + C8420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0D526F746174696F6E416E676C650500000000000000B406400A53697A652E57 + 696474680500000000000000A002400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 + 5374796C654E616D65060E7363726F6C6C6261727374796C6505416C69676E07 + 0643656E7465720756697369626C6508000754427574746F6E00095374796C65 + 4E616D65060A6C656674627574746F6E05416C69676E07044C656674064C6F63 + 6B6564090A506F736974696F6E2E5905000000000000008003400A53697A652E + 576964746805000000000000008003400B53697A652E48656967687405000000 + 000000009003401453697A652E506C6174666F726D44656661756C74080B5374 + 796C654C6F6F6B757006137363726F6C6C6261726C656674627574746F6E0000 + 0754427574746F6E00095374796C654E616D65060B7269676874627574746F6E + 05416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E58 + 05000000000000008804400A506F736974696F6E2E5905000000000000008003 + 400A53697A652E576964746805000000000000008003400B53697A652E486569 + 67687405000000000000009003401453697A652E506C6174666F726D44656661 + 756C74080B5374796C654C6F6F6B757006147363726F6C6C6261727269676874 + 627574746F6E00000754427574746F6E00095374796C654E616D65060C626F74 + 746F6D627574746F6E05416C69676E0706426F74746F6D064C6F636B6564090A + 506F736974696F6E2E5905000000000000008804400A53697A652E5769647468 + 0500000000000000C804400B53697A652E486569676874050000000000000080 + 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B757006157363726F6C6C626172626F74746F6D627574746F6E0000065454 + 7261636B00095374796C654E616D65060668747261636B05416C69676E070643 + 6C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A + 6F6E74616C0A53697A652E576964746805000000000000009003400B53697A65 + 2E48656967687405000000000000009003401453697A652E506C6174666F726D + 44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C62617268 + 747261636B7374796C6500000654547261636B00095374796C654E616D650606 + 76747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269 + 656E746174696F6E070A486F72697A6F6E74616C0A53697A652E576964746805 + 000000000000009003400B53697A652E48656967687405000000000000009003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B757006147363726F6C6C62617276747261636B7374796C6500000754427574 + 746F6E00095374796C654E616D650609746F70627574746F6E05416C69676E07 + 03546F700A53697A652E57696474680500000000000000C804400B53697A652E + 48656967687405000000000000008003401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B757006127363726F6C6C626172746F + 70627574746F6E000000545046300A5452656374616E676C6500095374796C65 + 4E616D65060A7468756D627374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463444344434440748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D6506147468756D62436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463444344434440953746F7056616C7565070978464631 + 37353739430754726967676572060E4973507265737365643D747275650E5472 + 6967676572496E7665727365060F4973507265737365643D66616C736500000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F + 72416E696D6174696F6E315374796C65084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463444344434440953746F7056616C7565070763 + 6C61477261790754726967676572061049734D6F7573654F7665723D74727565 + 0E54726967676572496E7665727365061149734D6F7573654F7665723D66616C + 7365000000545046300D545377697463684F626A65637400095374796C654E61 + 6D65060B7377697463687374796C6505416C69676E070643656E746572044B69 + 6E64070C466164696E67547261636B730A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C740812547261636B696E675468756D + 625363616C65050000000000000080FF3F0756697369626C65080A46696C6C2E + 436F6C6F7207097846463230323032300C46696C6C4F6E2E436F6C6F72070978 + 46463137353739430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F + 6B652E4B696E6407044E6F6E650B5468756D622E436F6C6F7207097846463430 + 343034300D5468756D624F6E2E436F6C6F7207097846463241383245320C5468 + 756D624F6E2E4B696E640705536F6C6964105468756D625374726F6B652E4B69 + 6E6407044E6F6E650F5468756D625374726F6B652E4361700705526F756E6410 + 5468756D625374726F6B652E446173680706437573746F6D105468756D625374 + 726F6B652E4A6F696E0705526F756E64165468756D625374726F6B652E437573 + 746F6D446173680A08000000000000000000000000005450463007544C61796F + 757400095374796C654E616D65060D636F6D626F626F787374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508000C5442727573684F62 + 6A65637400095374796C654E616D65060A666F726567726F756E6400000B5446 + 6F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E742E + 53697A650500000000000000D00240000007544C61796F757400095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C7408000A5452656374616E676C6500095374796C654E616D65060A52656374 + 616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E650007544C61796F757400095374796C654E616D6506114275 + 74746F6E5374796C654F626A65637405416C69676E070846697452696768740B + 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 + 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 + 00000000000080FF3F0A506F736974696F6E2E580500000000005ED99705400A + 506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769647468 + 050000000000889AB803400B53697A652E4865696768740500000000000000B8 + 03401453697A652E506C6174666F726D44656661756C74080007544C61796F75 + 7400095374796C654E616D6506074C61796F75743105416C69676E070643656E + 7465720C4D617267696E732E4C656674050000000000000080FF3F0A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000C001401453697A652E506C6174666F726D44656661756C74080005 + 545061746800095374796C654E616D650605506174683105416C69676E070643 + 6C69656E7409446174612E506174680A3400000004000000000000000000C842 + 0000C84201000000000096430000C84201000000000048430000964303000000 + 0000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465074869 + 7454657374080A53697A652E57696474680500000000000000A002400B53697A + 652E4865696768740500000000000000C001401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 + 6F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463430343034300754726967676572063049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C73653B4973466F63757365643D6661 + 6C73650E54726967676572496E7665727365063149734D6F7573654F7665723D + 66616C73653B4973507265737365643D66616C73653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3208447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463430343034300953746F + 7056616C756507097846463137353739430754726967676572062F4973507265 + 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E330844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 + 320953746F7056616C756507097846463137353739430754726967676572062E + 4973507265737365643D747275653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D747275650E54726967676572496E7665727365062F49 + 73507265737365643D66616C73653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D747275650000000007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E74064C6F63 + 6B6564090C4D617267696E732E4C65667405000000000000008000400B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 740500000000000000D803400E4D617267696E732E426F74746F6D0500000000 + 0000008000400A53697A652E576964746805000000000000008E05400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C74080000005450463007544C61796F757400095374796C654E + 616D65060E636F6D626F656469747374796C6505416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000C805400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508000C5442727573684F626A6563740009537479 + 6C654E616D65060A666F726567726F756E6400000B54466F6E744F626A656374 + 00095374796C654E616D650604666F6E7409466F6E742E53697A650500000000 + 000000D00240000007544C61796F757400095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E74730A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C + 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 + 3032303230000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E + 050000000000000000000007496E7665727365090C50726F70657274794E616D + 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646343034303430075472696767 + 6572062049734D6F7573654F7665723D747275653B4973466F63757365643D66 + 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 + 696F6E325374796C65084475726174696F6E050000000000000000000007496E + 7665727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F + 720A537461727456616C756507097846463430343034300953746F7056616C75 + 6507097846463241383245320754726967676572061F49734D6F7573654F7665 + 723D747275653B4973466F63757365643D747275650E54726967676572496E76 + 65727365062049734D6F7573654F7665723D747275653B4973466F6375736564 + 3D66616C7365000007544C61796F757400095374796C654E616D650605617272 + 6F7705416C69676E070846697452696768740B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F73 + 6974696F6E2E580500000000005ED99705400A506F736974696F6E2E59050000 + 000000000080FF3F0A53697A652E5769647468050000000000889AB803400B53 + 697A652E4865696768740500000000000000B803401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653105416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F7207097846463330333033300748697454657374080A5369 + 7A652E5769647468050000000000889AB803400B53697A652E48656967687405 + 00000000000000B803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 + 74796C65084475726174696F6E050000000000000000000007496E7665727365 + 090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463330333033300953746F7056616C7565070978464634 + 30343034300754726967676572062049734D6F7573654F7665723D747275653B + 4973466F63757365643D66616C73650E54726967676572496E76657273650621 + 49734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 + 436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463430343034300953746F7056616C75 + 6507097846463137353739430754726967676572061F4973466F63757365643D + 747275653B49734D6F7573654F7665723D7472756500000007544C61796F7574 + 00095374796C654E616D6506074C61796F75743105416C69676E070643656E74 + 65720C4D617267696E732E4C656674050000000000000080FF3F0A53697A652E + 57696474680500000000000000A002400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C7408000554 + 5061746800095374796C654E616D650605506174683105416C69676E0706436C + 69656E7409446174612E506174680A3400000004000000000000000000C84200 + 00C84201000000000096430000C8420100000000004843000096430300000000 + 00C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080A53697A652E57696474680500000000000000A002400B53697A65 + 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000000000 + 0C5442727573684F626A65637400095374796C654E616D65060973656C656374 + 696F6E0B42727573682E436F6C6F720709783936324138324532000007544C61 + 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0706 + 436C69656E740C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 6768740500000000000000F003400E4D617267696E732E426F74746F6D050000 + 00000000008000400A53697A652E576964746805000000000000008805400B53 + 697A652E4865696768740500000000000000A803401453697A652E506C617466 + 6F726D44656661756C74080000005450463007544C61796F757400095374796C + 654E616D65060F746162636F6E74726F6C7374796C6505416C69676E07064365 + 6E7465720A53697A652E576964746805000000000000008E06400B53697A652E + 486569676874050000000000FFFFC905401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646333033303330064C6F636B6564 + 090748697454657374080C50616464696E672E4C656674050000000000000080 + 00400B50616464696E672E546F7005000000000000008000400D50616464696E + 672E526967687405000000000000008000400E50616464696E672E426F74746F + 6D05000000000000008000400A53697A652E576964746805000000000000008E + 06400B53697A652E486569676874050000000000FFFFC905401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000000545046300A5452656374616E676C6500095374796C65 + 4E616D65060B746162646F747374796C6505416C69676E070643656E7465720A + 46696C6C2E436F6C6F7207097846463135313531350748697454657374080A53 + 697A652E576964746805000000000000008005400B53697A652E486569676874 + 05000000000000008001401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000F5443 + 6F6C6F72416E696D6174696F6E00084475726174696F6E05000000000018B7D1 + F23F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463135313531350953746F7056616C75650709784646 + 3241383245320754726967676572060F497353656C65637465643D747275650E + 54726967676572496E76657273650610497353656C65637465643D66616C7365 + 0000005450463007544C61796F757400095374796C654E616D65060C74616269 + 74656D7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508000A5452656374616E676C6500095374796C654E616D650603746F700541 + 6C69676E0708436F6E74656E74730C436C69704368696C6472656E0907436F72 + 6E6572730B07546F704C65667408546F705269676874000A46696C6C2E436F6C + 6F720709784646323032303230064C6F636B6564090748697454657374080553 + 696465730B03546F70044C656674055269676874000A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F720709784646313531353135000654476C79706800095374796C654E + 616D65060A676C7970687374796C650C4D617267696E732E4C65667405000000 + 000000008001400D4D617267696E732E526967687405000000000000008001C0 + 05416C69676E07044C6566740A53697A652E5769647468050000000000000080 + 03400B53697A652E48656967687405000000000000008003401453697A652E50 + 6C6174666F726D44656661756C7408000005545465787400095374796C654E61 + 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 + 697454657374080C4D617267696E732E4C6566740500000000000000C000400B + 4D617267696E732E546F700500000000000000C000400D4D617267696E732E52 + 696768740500000000000000C000400E4D617267696E732E426F74746F6D0500 + 000000000000C000400A53697A652E57696474680500000000000000B004400B + 53697A652E48656967687405000000000000009803401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C615768697465155465787453657474696E67732E576F726457 + 7261700800000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650612746162436F6C6F72416E696D6174696F6E310D416E696D6174696F6E54 + 7970650705496E4F7574084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572062149734D6F7573654F7665723D747275653B497353 + 656C65637465643D66616C73650E54726967676572496E766572736506224973 + 4D6F7573654F7665723D66616C73653B497353656C65637465643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061274 + 6162436F6C6F72416E696D6174696F6E32084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463241383245320754726967676572060F497353656C65637465643D7472 + 75650E54726967676572496E76657273650610497353656C65637465643D6661 + 6C736500000000545046300A5452656374616E676C6500095374796C654E616D + 65060D7468756D626261727374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463241383245320748697454657374080A5369 + 7A652E57696474680500000000000000A003400B53697A652E48656967687405 + 00000000000000A003401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350756697369626C65 + 08000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061474 + 68756D62436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463241383245320953746F7056616C7565 + 07097846463137353739430754726967676572061F4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275650E54726967676572496E7665 + 72736506104973507265737365643D66616C73653B00000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E + 696D6174696F6E32084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463241383245320953746F7056616C75650709784646343039424646 + 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D6506157468756D62 + 5374726F6B65416E696D6174696F6E31084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A + 537461727456616C756507097846463135313531350953746F7056616C756507 + 097846463137353739430754726967676572061F4973507265737365643D7472 + 75653B49734D6F7573654F7665723D747275650E54726967676572496E766572 + 7365060F4973507265737365643D66616C73650000005450463007544C61796F + 757400095374796C654E616D65060C6C697374626F787374796C6505416C6967 + 6E070643656E7465720A53697A652E5769647468050000000000FFFFE905400B + 53697A652E48656967687405000000000000008306401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508000C5442727573684F626A + 65637400095374796C654E616D650618416C7465726E6174696E67526F774261 + 636B67726F756E640B42727573682E436F6C6F72070978464632433243324300 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 784646323032303230064C6F636B6564090748697454657374080C5061646469 + 6E672E4C65667405000000000000008000400B50616464696E672E546F700500 + 0000000000008000400D50616464696E672E5269676874050000000000000080 + 00400E50616464696E672E426F74746F6D05000000000000008000400A53697A + 652E5769647468050000000000FFFFE905400B53697A652E4865696768740500 + 0000000000008306401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F7207097846463135313531350007544C61796F7574 + 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 + 6E740C436C69704368696C6472656E090A53697A652E57696474680500000000 + 00FFFFC105400B53697A652E4865696768740500000000000000DE0540145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72 + 07097846463241383245320748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 650610666F637573656473656C656374696F6E0A46696C6C2E436F6C6F720709 + 7846463241383245320748697454657374080A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000C8044014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E650B5374726F6B652E446173680703446F740000000A54536372 + 6F6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C + 69676E070552696768740B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E + 2E58050000000000FFFFC505400A506F736974696F6E2E590500000000000000 + 8000400A53697A652E576964746805000000000000008003400B53697A652E48 + 65696768740500000000000000DE05401453697A652E506C6174666F726D4465 + 6661756C740800000A545363726F6C6C42617200095374796C654E616D65060A + 687363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368 + 616E676505000000000000000000000B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0A506F736974696F6E2E5805000000000000008000400A506F + 736974696F6E2E590500000000000000E205400A53697A652E57696474680500 + 00000000FFFFE105400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000F54536D616C6C53 + 63726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C + 6C62617205416C69676E070552696768740B536D616C6C4368616E6765050000 + 00000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D + 617267696E732E4C65667405000000000000008000400A506F736974696F6E2E + 580500000000000000C605400A506F736974696F6E2E59050000000000000080 + 00400A53697A652E576964746805000000000000008002400B53697A652E4865 + 6967687405000000000000008002401453697A652E506C6174666F726D446566 + 61756C74080756697369626C650800000F54536D616C6C5363726F6C6C426172 + 00095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69 + 676E0706426F74746F6D0B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E + 732E546F7005000000000000008000400A506F736974696F6E2E580500000000 + 0000008000400A506F736974696F6E2E590500000000000000E205400A53697A + 652E576964746805000000000000009606400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C740807 + 56697369626C65080000000B54476C6F774566666563740008536F66746E6573 + 73050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846464636394532 + 44074F7061636974790500000000006666E6FE3F0754726967676572060E4973 + 466F63757365643D7472756507456E61626C6564080000005450463007544C61 + 796F757400095374796C654E616D65060D6C697374626F78666F6F7465720541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C65080005545465787400 + 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 00000000A001400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E52696768740500000000000000A001400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 00000000FC04400B53697A652E4865696768740500000000000000B003401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F720708636C6157686974650000005450463007544C61 + 796F757400095374796C654E616D6506106C697374626F786974656D7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000D605400B53697A652E4865696768740500000000000000C003401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508000654476C + 79706800095374796C654E616D65060A676C7970687374796C650C4D61726769 + 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + 00400E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69 + 676E07044C6566740A53697A652E576964746805000000000000008003400B53 + 697A652E48656967687405000000000000008003401453697A652E506C617466 + 6F726D44656661756C7408000005545465787400095374796C654E616D650604 + 7465787405416C69676E0706436C69656E740748697454657374080C4D617267 + 696E732E4C6566740500000000000000C000400B4D617267696E732E546F7005 + 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 + C000400E4D617267696E732E426F74746F6D050000000000000080FF3F0A5369 + 7A652E57696474680500000000000000CA05400B53697A652E48656967687405 + 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 + 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 + 65155465787453657474696E67732E576F726457726170081654657874536574 + 74696E67732E486F727A416C69676E07074C656164696E670000095443686563 + 6B426F7800095374796C654E616D650605636865636B05416C69676E07084D6F + 73744C6566740843616E466F637573081244697361626C65466F637573456666 + 656374090A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000C003401453697A652E506C6174666F726D44 + 656661756C74080756697369626C65080000005450463007544C61796F757400 + 095374796C654E616D6506126C697374626F78706C61696E6865616465720541 + 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463244324432 + 44064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000000009205400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 + 54657374080C4D617267696E732E4C6566740500000000000000A001400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 68740500000000000000A001400E4D617267696E732E426F74746F6D05000000 + 000000008000400A53697A652E57696474680500000000000000FC04400B5369 + 7A652E4865696768740500000000000000B003401453697A652E506C6174666F + 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F + 720708636C6157686974650000005450463007544C61796F757400095374796C + 654E616D650609677269647374796C6505416C69676E070643656E7465720A53 + 697A652E5769647468050000000000FFFFE905400B53697A652E486569676874 + 05000000000000008306401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508000C5442727573684F626A65637400095374796C654E + 616D650618416C7465726E6174696E67526F774261636B67726F756E640B4272 + 7573682E436F6C6F72070978333237383738373800000C5442727573684F626A + 65637400095374796C654E616D6506086C696E6566696C6C0B42727573682E43 + 6F6C6F72070978464631353135313500000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 + 090748697454657374080C50616464696E672E4C656674050000000000000080 + 00400B50616464696E672E546F7005000000000000008000400D50616464696E + 672E526967687405000000000000008000400E50616464696E672E426F74746F + 6D05000000000000008000400A53697A652E5769647468050000000000FFFFE9 + 05400B53697A652E48656967687405000000000000008306401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 4631353135313500075448656164657200095374796C654E616D650606686561 + 6465720553696465730B03546F70044C65667406426F74746F6D055269676874 + 0005416C69676E0703546F700748697454657374080A506F736974696F6E2E58 + 05000000000000008000400A506F736974696F6E2E5905000000000000008000 + 400A53697A652E5769647468050000000000FFFFE105400B53697A652E486569 + 6768740500000000000000A803401453697A652E506C6174666F726D44656661 + 756C7408000007544C61796F757400095374796C654E616D650607636F6E7465 + 6E7405416C69676E0706436C69656E740C436C69704368696C6472656E090A53 + 697A652E5769647468050000000000FFFFC105400B53697A652E486569676874 + 0500000000000000B405401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060973656C656374 + 696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 7408074F706163697479050000000000000080FD3F0A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E61 + 6D650605666F6375730A46696C6C2E436F6C6F72070978414632413832453207 + 48697454657374080C4D617267696E732E4C656674050000000000000080FF3F + 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E + 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F0A53697A652E57696474680500000000000000C80440 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 + 595261646975730500000000000000C000400000000A545363726F6C6C426172 + 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 + 696768740B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E0708566572746963616C0A506F736974696F6E2E5805000000 + 0000FFFFC505400A506F736974696F6E2E590500000000000000B803400A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 00000000000000B405401453697A652E506C6174666F726D44656661756C7408 + 00000A545363726F6C6C42617200095374796C654E616D65060A687363726F6C + 6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500 + 0000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E7461 + 6C0A506F736974696F6E2E5805000000000000008000400A506F736974696F6E + 2E590500000000000000E205400A53697A652E5769647468050000000000FFFF + E105400B53697A652E48656967687405000000000000008003401453697A652E + 506C6174666F726D44656661756C740800000F54536D616C6C5363726F6C6C42 + 617200095374796C654E616D65060F76736D616C6C7363726F6C6C6261720541 + 6C69676E070552696768740B536D616C6C4368616E6765050000000000000000 + 00000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E73 + 2E4C65667405000000000000008000400A506F736974696F6E2E580500000000 + 000000C605400A506F736974696F6E2E5905000000000000008000400A53697A + 652E576964746805000000000000008002400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C740807 + 56697369626C650800000F54536D616C6C5363726F6C6C42617200095374796C + 654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F + 74746F6D0B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005 + 000000000000008000400A506F736974696F6E2E580500000000000000800040 + 0A506F736974696F6E2E590500000000000000E205400A53697A652E57696474 + 6805000000000000009606400B53697A652E4865696768740500000000000000 + 8002401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508000000005450463007544C61796F757400095374796C654E616D65060F68 + 65616465726974656D7374796C6505416C69676E070643656E7465720A53697A + 652E576964746805000000000000009205400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646344334433443064C6F636B65640907486974546573 + 74080A53697A652E576964746805000000000000009205400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D6506156865616465 + 72436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463443344334430953746F7056616C7565070978 + 46463241383245320754726967676572060E4973507265737365643D74727565 + 0E54726967676572496E7665727365060F4973507265737365643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061668 + 65616465725374726F6B65416E696D6174696F6E31084475726174696F6E0500 + 0000000000000000000C50726F70657274794E616D65060C5374726F6B652E43 + 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 + 616C756507097846463241383245320754726967676572060E49735072657373 + 65643D747275650E54726967676572496E7665727365060F4973507265737365 + 643D66616C736500000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 + 0C4D617267696E732E4C6566740500000000000000A001400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 0000000000A001400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E57696474680500000000000000FC04400B53697A652E4865 + 696768740500000000000000B003401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 6157686974650000005450463007544C61796F757400095374796C654E616D65 + 061970726F67726573736261726D696E696572726F727374796C6505416C6967 + 6E070643656E7465720A53697A652E576964746805000000000033338505400B + 53697A652E4865696768740500000000009999E104401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508000A5452656374616E676C + 6500095374796C654E616D65060668747261636B05416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B65 + 64090748697454657374080A53697A652E576964746805000000000033338505 + 400B53697A652E4865696768740500000000009999E104401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000A5452656374616E676C6500095374796C654E616D65060A68696E64696361 + 746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978464645 + 3232413241064C6F636B6564090748697454657374080A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E650000000A5452656374616E676C6500095374796C65 + 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000A545265637461 + 6E676C6500095374796C654E616D65060A76696E64696361746F7205416C6967 + 6E0706426F74746F6D0A46696C6C2E436F6C6F72070978464645323241324106 + 4C6F636B6564090748697454657374080A506F736974696F6E2E590500000000 + 0099998D04400A53697A652E576964746805000000000033338505400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054 + 50463007544C61796F757400095374796C654E616D65061170726F6772657373 + 63656C6C7374796C6505416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000F805400B53697A652E48656967687405000000000000 + 00FC05401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C65080007544C61796F757400095374796C654E616D65060668747261636B05 + 416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E732E + 4C65667405000000000000008000400B4D617267696E732E546F700500000000 + 0000008000400D4D617267696E732E526967687405000000000000008000400E + 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 + 696474680500000000000000F005400B53697A652E4865696768740500000000 + 000000F405401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A68696E64696361746F7205 + 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846463241383245 + 32064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 + 0000000000000080FF3F0B4D617267696E732E546F70050000000000000080FF + 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805 + 0000000000000080FF3F0A506F736974696F6E2E59050000000000000080FF3F + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000F005401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C + 61796F757400095374796C654E616D6506106D656E756261726974656D737479 + 6C6505416C69676E070643656E7465720C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 + 00000000009205400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C74080756697369626C6508000A + 5452656374616E676C650005416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646324138324532074869745465737408074F70616369 + 747905000000000017B7D1F13F0A53697A652E57696474680500000000000000 + 9205400B53697A652E4865696768740500000000000000D003401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E050000 + 00000018B7D1F23F0C50726F70657274794E616D6506074F7061636974790A53 + 7461727456616C756505000000000000000000000953746F7056616C75650500 + 00000000000080FF3F0754726967676572060F497353656C65637465643D7472 + 75650E54726967676572496E76657273650610497353656C65637465643D6661 + 6C73650000000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646324138324532074869745465737408074F70616369747905 + 000000000017B7D1F13F0A53697A652E57696474680500000000000000920540 + 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54466C6F6174416E696D6174696F6E00084475726174696F6E050000000000 + 18B7D1F23F0C50726F70657274794E616D6506074F7061636974790A53746172 + 7456616C756505000000000000000000000953746F7056616C75650500000000 + 00000080FF3F0754726967676572061049734D6F7573654F7665723D74727565 + 0E54726967676572496E7665727365061149734D6F7573654F7665723D66616C + 736500000007544C61796F757400095374796C654E616D650605676C79706805 + 416C69676E07044C6566740A53697A652E57696474680500000000000000C803 + 400B53697A652E4865696768740500000000000000D003401453697A652E506C + 6174666F726D44656661756C74080007544C61796F757400095374796C654E61 + 6D650609636865636B6D61726B05416C69676E0708436F6E74656E7473074F70 + 61636974790500000000006F1283F53F0A53697A652E57696474680500000000 + 000000C803400B53697A652E4865696768740500000000000000D00340145369 + 7A652E506C6174666F726D44656661756C7408000554506174680005416C6967 + 6E070643656E74657209446174612E506174680A580000000700000000000000 + 56D9524391AE2C43010000009276664365021643010000009F3983432B7C3C43 + 010000009E9AA64382D2B442010000006F1CB04375A4D1420100000026DF8243 + 263F67430300000056D9524391AE2C430A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080A53697A652E576964746805000000000000 + 00B002400B53697A652E4865696768740500000000000000B002401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000F54466C6F6174416E696D6174696F6E00084475726174696F6E05 + 0000000000CDCCCCFB3F0C50726F70657274794E616D6506074F706163697479 + 0A537461727456616C756505000000000000000000000953746F7056616C7565 + 050000000000000080FF3F0754726967676572060E4973436865636B65643D74 + 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 + 6C73650000000654476C79706800095374796C654E616D65060A676C79706873 + 74796C650C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 740500000000000000C000400E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F05416C69676E070552696768740A53697A652E57696474680500 + 0000000000008003400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000654496D61676500 + 095374796C654E616D6506066269746D61700E4D756C74695265734269746D61 + 700E01000005416C69676E0708436F6E74656E74730C4D617267696E732E4C65 + 667405000000000000008000400B4D617267696E732E546F7005000000000000 + 008000400D4D617267696E732E526967687405000000000000008000400E4D61 + 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 + 74680500000000000000A803400B53697A652E48656967687405000000000000 + 00B003401453697A652E506C6174666F726D44656661756C7408000000055454 + 65787400095374796C654E616D6506047465787405416C69676E07044C656674 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 0000000000008002400D4D617267696E732E5269676874050000000000000080 + 02400A506F736974696F6E2E5805000000000000008404400A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 + 7453657474696E67732E486F727A416C69676E07074C656164696E6700000554 + 5465787400095374796C654E616D65060873686F727463757405416C69676E07 + 055269676874064C6F636B6564090748697454657374080C4D617267696E732E + 4C6566740500000000000000C002400D4D617267696E732E5269676874050000 + 0000000000C001400A506F736974696F6E2E580500000000000000C000C00A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 + 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 7465165465787453657474696E67732E486F727A416C69676E07074C65616469 + 6E67000007544C61796F757400095374796C654E616D6506077375626D61726B + 05416C69676E070552696768740A506F736974696F6E2E580500000000000000 + D404400A53697A652E57696474680500000000000000A003400B53697A652E48 + 65696768740500000000000000D003401453697A652E506C6174666F726D4465 + 6661756C7408000554506174680005416C69676E070643656E74657209446174 + 612E506174680A34000000040000000000000000000000000000000100000000 + 0000000000803F010000000000803F0000003F0300000000000000000000000A + 46696C6C2E436F6C6F720708636C615768697465064C6F636B65640907486974 + 54657374080A53697A652E57696474680500000000000000E001400B53697A65 + 2E48656967687405000000000000008002401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450 + 46300A5452656374616E676C6500095374796C654E616D65060C6D656E756261 + 727374796C6505416C69676E070643656E7465720C436C69704368696C647265 + 6E090946696C6C2E4B696E6407044E6F6E650748697454657374080A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650756697369626C6508000A5452656374 + 616E676C650005416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080C4D617267696E732E4C656674 + 050000000000000080FFBF0B4D617267696E732E546F70050000000000000080 + FFBF0D4D617267696E732E5269676874050000000000000080FFBF0A53697A65 + 2E57696474680500000000000000D004400B53697A652E486569676874050000 + 0000000000CC04401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F720709784646313531353135000007544C61796F7574 + 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 + 6E740C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A53697A652E57696474680500000000000000C004400B53697A652E + 4865696768740500000000000000C004401453697A652E506C6174666F726D44 + 656661756C74080000005450463007544C61796F757400095374796C654E616D + 65060D6D656E756974656D7374796C6505416C69676E070643656E7465720C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 + 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F + 0A53697A652E57696474680500000000008EE3F605400B53697A652E48656967 + 68740500000000008EE3F003401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508000A5452656374616E676C650005416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207 + 4869745465737408074F70616369747905000000000017B7D1F13F0A53697A65 + 2E57696474680500000000008EE3F605400B53697A652E486569676874050000 + 0000008EE3F003401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00084475726174696F6E05000000000018B7D1F23F0C50726F70657274794E + 616D6506074F7061636974790A537461727456616C7565050000000000000000 + 00000953746F7056616C7565050000000000000080FF3F075472696767657206 + 0F497353656C65637465643D747275650E54726967676572496E766572736506 + 10497353656C65637465643D66616C73650000000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207486974 + 5465737408074F70616369747905000000000000000000000A53697A652E5769 + 6474680500000000008EE3F605400B53697A652E486569676874050000000000 + 8EE3F003401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008 + 4475726174696F6E05000000000018B7D1F23F07496E7665727365090C50726F + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572061049734D6F7573654F7665723D747275650E5472696767657249 + 6E7665727365061149734D6F7573654F7665723D66616C736500000007544C61 + 796F757400095374796C654E616D650605676C79706805416C69676E07044C65 + 66740A53697A652E57696474680500000000000000C803400B53697A652E4865 + 696768740500000000008EE3F003401453697A652E506C6174666F726D446566 + 61756C74080007544C61796F757400095374796C654E616D650609636865636B + 6D61726B05416C69676E0708436F6E74656E7473074F70616369747905000000 + 00006F1283F53F0A53697A652E57696474680500000000000000C803400B5369 + 7A652E4865696768740500000000008EE3F003401453697A652E506C6174666F + 726D44656661756C7408000554506174680005416C69676E070643656E746572 + 09446174612E506174680A58000000070000000000000056D9524391AE2C4301 + 0000009276664365021643010000009F3983432B7C3C43010000009E9AA64382 + D2B442010000006F1CB04375A4D1420100000026DF8243263F67430300000056 + D9524391AE2C430A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080A53697A652E57696474680500000000000000B002400B53697A65 + 2E4865696768740500000000000000B002401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C + 6F6174416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB + 3F0C50726F70657274794E616D6506074F7061636974790A537461727456616C + 756505000000000000000000000953746F7056616C7565050000000000000080 + FF3F0754726967676572060E4973436865636B65643D747275650E5472696767 + 6572496E7665727365060F4973436865636B65643D66616C7365000000065447 + 6C79706800095374796C654E616D65060A676C7970687374796C650C4D617267 + 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + C000400E4D617267696E732E426F74746F6D050000000000000080FF3F05416C + 69676E07044C6566740A53697A652E576964746805000000000000008003400B + 53697A652E48656967687405000000000000008003401453697A652E506C6174 + 666F726D44656661756C740800000654496D61676500095374796C654E616D65 + 06066269746D61700E4D756C74695265734269746D61700E01000005416C6967 + 6E07044C6566740C4D617267696E732E4C65667405000000000000008000400B + 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 + 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 + 0000000000008000400A506F736974696F6E2E5805000000000000008000400A + 506F736974696F6E2E5905000000000000008000400A53697A652E5769647468 + 0500000000000000A803400B53697A652E4865696768740500000000008EE3D0 + 03401453697A652E506C6174666F726D44656661756C74080000000554546578 + 7400095374796C654E616D6506047465787405416C69676E07044C656674064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 000000008002400D4D617267696E732E52696768740500000000000000800240 + 0A506F736974696F6E2E5805000000000000008404400A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000008EE3 + F003401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 + 657474696E67732E486F727A416C69676E07074C656164696E67000005545465 + 787400095374796C654E616D65060873686F727463757405416C69676E070552 + 69676874064C6F636B6564090748697454657374080C4D617267696E732E4C65 + 66740500000000000000C002400D4D617267696E732E52696768740500000000 + 000000C001400A506F736974696F6E2E580500000000001CC7BD04400A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000008EE3F003401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 + 000007544C61796F757400095374796C654E616D6506077375626D61726B0541 + 6C69676E070552696768740A506F736974696F6E2E580500000000008EE3CE05 + 400A53697A652E57696474680500000000000000A003400B53697A652E486569 + 6768740500000000008EE3F003401453697A652E506C6174666F726D44656661 + 756C7408000554506174680005416C69676E070643656E74657209446174612E + 506174680A340000000400000000000000000000000000000001000000000000 + 000000803F010000000000803F0000003F0300000000000000000000000A4669 + 6C6C2E436F6C6F720708636C615768697465064C6F636B656409074869745465 + 7374080A53697A652E57696474680500000000000000C001400B53697A652E48 + 65696768740500000000000000A002401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054504630 + 07544C61796F757400095374796C654E616D6506126D656E7573657061726174 + 6F727374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 080005544C696E650005416C69676E0703546F70084C696E6554797065070354 + 6F700C4D617267696E732E4C656674050000000000000080FFBF0B4D61726769 + 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 + 0000000000000080FFBF0A506F736974696F6E2E58050000000000000080FFBF + 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 + 680500000000000000D004400B53697A652E4865696768740500000000000000 + 80FF3F1453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135000000545046300A5452656374616E + 676C6500095374796C654E616D65060D6D656E75766965777374796C6505416C + 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463230323032 + 300A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313507566973 + 69626C6508000A5452656374616E676C650005416C69676E0706436C69656E74 + 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000D54536861 + 646F77456666656374000844697374616E636505000000000000008001400944 + 6972656374696F6E0500000000000000B4044008536F66746E65737305000000 + 0000000080FE3F074F706163697479050000000000000080FE3F0B536861646F + 77436F6C6F720708636C61426C61636B00000007544C61796F75740009537479 + 6C654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D61 + 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E57696474680500000000000000C004400B53697A652E4865696768 + 740500000000000000C004401453697A652E506C6174666F726D44656661756C + 74080000005450463007544C61796F757400095374796C654E616D65060E696D + 61676563656C6C7374796C6505416C69676E070643656E746572075669736962 + 6C6508000654496D61676500095374796C654E616D650605696D6167650E4D75 + 6C74695265734269746D61700E01000005416C69676E0706436C69656E74064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 + 00000000C004400B53697A652E4865696768740500000000000000C004401453 + 697A652E506C6174666F726D44656661756C74080000005450463007544C6179 + 6F757400095374796C654E616D65060E706F70757063656C6C7374796C650541 + 6C69676E070643656E7465720A53697A652E57696474680500000000000000BB + 06400B53697A652E4865696768740500000000000000AE04401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C65080007544C61796F75 + 740005416C69676E070552696768740A506F736974696F6E2E58050000000000 + 0000AC06400A53697A652E57696474680500000000000000F002400B53697A65 + 2E4865696768740500000000000000AE04401453697A652E506C6174666F726D + 44656661756C7408000554506174680005416C69676E070643656E7465720944 + 6174612E506174680A400000000500000000000000000000000000803F010000 + 000000803F0000803F010000000000003F000000000100000000000000000080 + 3F0300000000000000000000000A46696C6C2E436F6C6F720708636C61576869 + 74650748697454657374080B4D617267696E732E546F700500000000000000E0 + 01C00A53697A652E576964746805000000000000008002400B53697A652E4865 + 6967687405000000000000008001401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000005545061746800 + 05416C69676E070643656E74657209446174612E506174680A34000000040000 + 00000000000000000000000000010000000000803F0000000001000000000000 + 3F0000803F0300000000000000000000000A46696C6C2E436F6C6F720708636C + 6157686974650748697454657374080B4D617267696E732E546F700500000000 + 000000C001400A53697A652E576964746805000000000000008002400B53697A + 652E48656967687405000000000000008001401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000554 + 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 + 656E74064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 740500000000000000A001400B4D617267696E732E546F700500000000000000 + 8000400D4D617267696E732E52696768740500000000000000A001400E4D6172 + 67696E732E426F74746F6D05000000000000008000400A53697A652E57696474 + 680500000000000000A206400B53697A652E4865696768740500000000000000 + 9E04401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 + 3007544C61796F757400095374796C654E616D65060D7465787463656C6C7374 + 796C6505416C69676E070643656E7465720756697369626C65080007544C6179 + 6F757400095374796C654E616D650607636F6E74656E7405416C69676E070843 + 6F6E74656E7473064C6F636B6564090C4D617267696E732E4C65667405000000 + 000000008001400B4D617267696E732E546F7005000000000000008001400D4D + 617267696E732E526967687405000000000000008001400E4D617267696E732E + 426F74746F6D05000000000000008001400A53697A652E576964746805000000 + 00000000A804400B53697A652E4865696768740500000000000000A804401453 + 697A652E506C6174666F726D44656661756C740800000C5442727573684F626A + 65637400095374796C654E616D65060A666F726567726F756E6400000C544272 + 7573684F626A65637400095374796C654E616D65060973656C656374696F6E0B + 42727573682E436F6C6F72070978393632413832453200000B54466F6E744F62 + 6A65637400095374796C654E616D650604666F6E740000005450463007544C61 + 796F757400095374796C654E616D6506096D656D6F7374796C6505416C69676E + 070643656E7465720A53697A652E5769647468050000000000CCCC8806400B53 + 697A652E4865696768740500000000006666F405401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508000C5442727573684F626A65 + 637400095374796C654E616D65060A666F726567726F756E6400000C54427275 + 73684F626A65637400095374796C654E616D65060973656C656374696F6E0B42 + 727573682E436F6C6F72070978374634343735394400000B54466F6E744F626A + 65637400095374796C654E616D650604666F6E7400000A5452656374616E676C + 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300748 + 697454657374080A53697A652E5769647468050000000000CCCC8806400B5369 + 7A652E4865696768740500000000006666F405401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350007544C61796F757400095374796C654E616D650607636F6E74656E7405 + 416C69676E0706436C69656E740C4D617267696E732E4C656674050000000000 + 00008000400B4D617267696E732E546F7005000000000000008000400D4D6172 + 67696E732E526967687405000000000000008000400E4D617267696E732E426F + 74746F6D05000000000000008000400A53697A652E5769647468050000000000 + 9899E905400B53697A652E4865696768740500000000006666CC05401453697A + 652E506C6174666F726D44656661756C740800000A545363726F6C6C42617200 + 095374796C654E616D65060A687363726F6C6C62617205416C69676E0706426F + 74746F6D06437572736F72070763724172726F770B536D616C6C4368616E6765 + 05000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E + 74616C0A506F736974696F6E2E590500000000006666D405400A53697A652E57 + 69647468050000000000CCCC8806400B53697A652E4865696768740500000000 + 0000008003401453697A652E506C6174666F726D44656661756C740800000A54 + 5363726F6C6C42617200095374796C654E616D65060A767363726F6C6C626172 + 05416C69676E0705526967687406437572736F72070763724172726F770B536D + 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E + 0708566572746963616C0A506F736974696F6E2E580500000000009899F10540 + 0A53697A652E576964746805000000000000008003400B53697A652E48656967 + 68740500000000006666D405401453697A652E506C6174666F726D4465666175 + 6C7408000007544C61796F75740005416C69676E0706436C69656E740A53697A + 652E57696474680500000000009899F105400B53697A652E4865696768740500 + 000000006666D405401453697A652E506C6174666F726D44656661756C740800 + 0F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F76736D + 616C6C7363726F6C6C62617205416C69676E0705526967687406437572736F72 + 070763724172726F770B536D616C6C4368616E67650500000000000000000000 + 0B4F7269656E746174696F6E0708566572746963616C0C4D617267696E732E4C + 65667405000000000000008000400A53697A652E576964746805000000000000 + 008002400B53697A652E48656967687405000000000000008002401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C650800000F54536D + 616C6C5363726F6C6C42617200095374796C654E616D65060F68736D616C6C73 + 63726F6C6C62617205416C69676E0706426F74746F6D06437572736F72070763 + 724172726F770B536D616C6C4368616E676505000000000000000000000B4F72 + 69656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F + 7005000000000000008000400A53697A652E5769647468050000000000000096 + 06400B53697A652E48656967687405000000000000008002401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C65080000000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D6506146D656D6F5374726F + 6B65416E696D6174696F6E31084475726174696F6E0500000000000000000000 + 07496E7665727365090C50726F70657274794E616D65060C5374726F6B652E43 + 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 + 616C756507097846463430343034300754726967676572062049734D6F757365 + 4F7665723D747275653B4973466F63757365643D66616C73650E547269676765 + 72496E7665727365062149734D6F7573654F7665723D66616C73653B4973466F + 63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D6506146D656D6F5374726F6B65416E696D6174696F6E320844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0C5374726F6B652E436F6C6F720A537461727456616C75650709784646343034 + 3034300953746F7056616C756507097846463241383245320754726967676572 + 060E4973466F63757365643D747275650E54726967676572496E766572736506 + 0F4973466F63757365643D66616C7365000000005450463007544C61796F7574 + 00095374796C654E616D65060E6C696E6B6C6162656C7374796C6505416C6967 + 6E070643656E7465720A53697A652E5769647468050000000000CCCC8006400B + 53697A652E4865696768740500000000009A998104401453697A652E506C6174 + 666F726D44656661756C74080756697369626C65080005545465787400095374 + 796C654E616D6506047465787405416C69676E0708436F6E74656E7473074869 + 7454657374080A53697A652E5769647468050000000000CCCC8006400B53697A + 652E4865696768740500000000009A998104401453697A652E506C6174666F72 + 6D44656661756C74081A5465787453657474696E67732E466F6E742E5374796C + 654578740A0D0000000404000000000000000400000016546578745365747469 + 6E67732E466F6E74436F6C6F72070D636C61446F64676572626C7565000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 + 6E696D6174696F6E315374796C65084475726174696F6E050000000000000000 + 000007496E7665727365090C50726F70657274794E616D650616546578745365 + 7474696E67732E466F6E74436F6C6F720A537461727456616C7565070D636C61 + 446F64676572626C75650953746F7056616C7565070E636C6144656570736B79 + 626C75650754726967676572063049734D6F7573654F7665723D747275653B49 + 73507265737365643D66616C73653B4973466F63757365643D66616C73650E54 + 726967676572496E7665727365063149734D6F7573654F7665723D66616C7365 + 3B4973507265737365643D66616C73653B4973466F63757365643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 + 6F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D6506165465787453657474696E + 67732E466F6E74436F6C6F720A537461727456616C7565070E636C6144656570 + 736B79626C75650953746F7056616C7565070978464631373537394307547269 + 67676572062F4973507265737365643D747275653B49734D6F7573654F766572 + 3D747275653B4973466F63757365643D66616C736500000000545046300A5452 + 656374616E676C6500095374796C654E616D65060E7374617475736261727374 + 796C6505416C69676E070643656E7465720C436C69704368696C6472656E090A + 46696C6C2E436F6C6F7207097846463235323532350748697454657374080553 + 696465730B03546F70000A53697A652E57696474680500000000000000F00440 + 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 35313531350756697369626C65080007544C61796F757400095374796C654E61 + 6D6506074C61796F75743105416C69676E070552696768740A506F736974696F + 6E2E5805000000000000008C04400A53697A652E576964746805000000000000 + 00C803400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C740800095453697A654772697000095374 + 796C654E616D65060973697A65677267697005416C69676E0706426F74746F6D + 0A506F736974696F6E2E590500000000000000C803400A53697A652E57696474 + 680500000000000000C803400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C740800000000545046 + 3007544C61796F757400095374796C654E616D65060C7370696E626F78737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 006666E005400B53697A652E4865696768740500000000000000A80340145369 + 7A652E506C6174666F726D44656661756C74080756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 + 30323032300A53697A652E57696474680500000000006666E005400B53697A65 + 2E4865696768740500000000000000A803401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F + 6C6F72416E696D6174696F6E315374796C65084475726174696F6E0500000000 + 00000000000007496E7665727365090C50726F70657274794E616D65060C5374 + 726F6B652E436F6C6F720A537461727456616C75650709784646313531353135 + 0953746F7056616C756507097846463430343034300754726967676572061049 + 734D6F7573654F7665723D747275650E54726967676572496E76657273650611 + 49734D6F7573654F7665723D66616C73650000000C5442727573684F626A6563 + 7400095374796C654E616D65060A666F726567726F756E640B42727573682E43 + 6F6C6F72070978464645414541454100000C5442727573684F626A6563740009 + 5374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F72 + 0709783936324138324532000007544C61796F757400095374796C654E616D65 + 0607636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 + 400A53697A652E576964746805000000000070668405400B53697A652E486569 + 67687405000000000000008803401453697A652E506C6174666F726D44656661 + 756C740800000754427574746F6E00095374796C654E616D65060B6D696E7573 + 627574746F6E05416C69676E07074669744C6566740843616E466F6375730806 + 437572736F72070763724172726F770C4D617267696E732E4C65667405000000 + 000000008000400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E526967687405000000000000008000400E4D617267696E732E + 426F74746F6D05000000000000008000400A506F736974696F6E2E5805000000 + 000000008000400A506F736974696F6E2E5905000000000000008000400A5369 + 7A652E5769647468050000000000E8FF8703400B53697A652E48656967687405 + 000000000000008803401453697A652E506C6174666F726D44656661756C7408 + 0B5374796C654C6F6F6B7570060B627574746F6E7374796C6500055450617468 + 0005416C69676E0706436C69656E7409446174612E506174680A400000000500 + 0000000000000000803F00000000010000000000803F0000803F010000000000 + 00000000003F010000000000803F00000000030000000000803F000000000A46 + 696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D6172 + 67696E732E4C6566740500000000000000C001400B4D617267696E732E546F70 + 0500000000000000C001400D4D617267696E732E526967687405000000000000 + 00C001400E4D617267696E732E426F74746F6D0500000000000000C001400A53 + 697A652E5769647468050000000000A0FF9F01400B53697A652E486569676874 + 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650000000754427574746F6E0009 + 5374796C654E616D65060A706C7573627574746F6E05416C69676E0708466974 + 52696768740843616E466F6375730806437572736F72070763724172726F770C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 + 400A506F736974696F6E2E580500000000006A66BA05400A506F736974696F6E + 2E5905000000000000008000400A53697A652E5769647468050000000000F0FF + 8703400B53697A652E48656967687405000000000000008803401453697A652E + 506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060B6275 + 74746F6E7374796C65000554506174680005416C69676E0706436C69656E7409 + 446174612E506174680A34000000040000000000000000000000000000000100 + 0000000000000000803F010000000000803F0000003F03000000000000000000 + 00000A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0C4D617267696E732E4C6566740500000000000000C001400B4D617267696E73 + 2E546F700500000000000000C001400D4D617267696E732E5269676874050000 + 0000000000C001400E4D617267696E732E426F74746F6D0500000000000000C0 + 01400A53697A652E5769647468050000000000C0FF9F01400B53697A652E4865 + 696768740500000000000000A001401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007 + 544C61796F757400095374796C654E616D65060D73697A65677269707374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C803400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508000A545265 + 6374616E676C6500095374796C654E616D65060A52656374616E676C65310541 + 6C69676E070643656E7465720A46696C6C2E436F6C6F72070978464636303630 + 36300A53697A652E57696474680500000000000000A000400B53697A652E4865 + 696768740500000000000000A000401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653205416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F7207097846463630363036300C + 4D617267696E732E4C6566740500000000000000A002400A53697A652E576964 + 74680500000000000000A000400B53697A652E48656967687405000000000000 + 00A000401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C65 + 4E616D65060A52656374616E676C653305416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C6566 + 740500000000000000A002400B4D617267696E732E546F700500000000000000 + A002400A53697A652E57696474680500000000000000A000400B53697A652E48 + 65696768740500000000000000A000401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374 + 616E676C6500095374796C654E616D65060A52656374616E676C653405416C69 + 676E070643656E7465720A46696C6C2E436F6C6F720709784646363036303630 + 0B4D617267696E732E546F700500000000000000A002400A53697A652E576964 + 74680500000000000000A000400B53697A652E48656967687405000000000000 + 00A000401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C65 + 4E616D65060A52656374616E676C653505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463630363036300B4D617267696E732E546F70 + 0500000000000000A002400D4D617267696E732E526967687405000000000000 + 00A002400A53697A652E57696474680500000000000000A000400B53697A652E + 4865696768740500000000000000A000401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653605416C + 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463630363036 + 300C4D617267696E732E4C6566740500000000000000A002400E4D617267696E + 732E426F74746F6D0500000000000000A002400A53697A652E57696474680500 + 000000000000A000400B53697A652E4865696768740500000000000000A00040 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000000545046300A5452656374616E676C6500095374796C + 654E616D65060C746F6F6C6261727374796C6505416C69676E070643656E7465 + 720A46696C6C2E436F6C6F720709784646323532353235074869745465737408 + 0553696465730B06426F74746F6D000A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 097846463135313531350756697369626C650800005450463007544C61796F75 + 7400095374796C654E616D65061570726F67726573736261726572726F727374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 000033338505400B53697A652E4865696768740500000000009999E104401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000A54 + 52656374616E676C6500095374796C654E616D65060668747261636B05416C69 + 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230 + 3230064C6F636B6564090748697454657374080A53697A652E57696474680500 + 0000000033338505400B53697A652E4865696768740500000000009999E10440 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F720709784646313531353135000A5452656374616E676C6500095374796C + 654E616D65060A68696E64696361746F7205416C69676E07044C6566740A4669 + 6C6C2E436F6C6F720709784646453232413241064C6F636B6564090748697454 + 657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 + 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 + 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73 + 6974696F6E2E59050000000000000080FF3F0A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000009999D9044014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E650000000A5452656374616E676C6500095374796C654E616D65 + 060676747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646323032303230064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000033338505400B53697A652E4865696768 + 740500000000009999E104401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000A54526563 + 74616E676C6500095374796C654E616D65060A76696E64696361746F7205416C + 69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846464532324132 + 41064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 + 0000000000000080FF3F0B4D617267696E732E546F70050000000000000080FF + 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805 + 0000000000000080FF3F0A506F736974696F6E2E590500000000009999890440 + 0A53697A652E576964746805000000000033338105400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C + 61796F757400095374796C654E616D65060F64726F707461726765747374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + ACAAD905400B53697A652E4865696768740500000000000000CF05401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508000A545265 + 6374616E676C650005416C69676E0708436F6E74656E74730946696C6C2E4B69 + 6E6407044E6F6E650748697454657374080A53697A652E576964746805000000 + 0000ACAAD905400B53697A652E4865696768740500000000000000CF05401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 720708636C615768697465105374726F6B652E546869636B6E65737305000000 + 000000008001400B5374726F6B652E4461736807044461736807585261646975 + 730500000000000000C0024007595261646975730500000000000000C0024000 + 05545465787400095374796C654E616D6506047465787405416C69676E070642 + 6F74746F6D0748697454657374080C4D617267696E732E4C6566740500000000 + 000000A002400D4D617267696E732E52696768740500000000000000A002400A + 506F736974696F6E2E580500000000000000A002400A506F736974696F6E2E59 + 0500000000000000D604400A53697A652E5769647468050000000000ACAAB105 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000001254466C6F61744B6579416E696D + 6174696F6E00084475726174696F6E050000000000999999FE3F044B6579730E + 010001034B6579050000000000000080FE3F0556616C75650500000000000000 + A003C00001034B6579050000000000000080FF3F0000044C6F6F70090C50726F + 70657274794E616D65060B50616464696E672E546F7010537461727446726F6D + 43757272656E74080754726967676572060F4973447261674F7665723D747275 + 6500000554506174680005416C69676E070643656E74657209446174612E5061 + 74680AC4000000100000000000000008EC8343F087A4430100000008EC834308 + 3CFB430200000035BE7143504DF9430200000012835C43A8E6F54302000000F0 + 674943F803F1430100000008EC8343FC0116440100000008EC8343FC51164401 + 00000000408443FC5116440100000010689A43FC412B4401000000081CD043F8 + 03F14302000000915DC64321E0F54302000000919DBB439643F9430200000008 + 7CB043F833FB4301000000087CB043F087A4430100000008EC8343F087A44303 + 00000000000000000000000A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000100C804401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 005450463007544C61796F757400095374796C654E616D65061464726F707461 + 726765746669656C647374796C6505416C69676E070643656E7465720A53697A + 652E576964746805000000000000A08A07400B53697A652E4865696768740500 + 000000000000B204401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 + 0A52656374616E676C653105416C69676E0706436C69656E740946696C6C2E4B + 696E6407044E6F6E650748697454657374080A53697A652E5769647468050000 + 00000000A08A07400B53697A652E4865696768740500000000000000B2044014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F7207097846463241383245320005545465787400095374796C654E616D6506 + 047465787405416C69676E0706436C69656E740748697454657374080A53697A + 652E576964746805000000000000809A05400B53697A652E4865696768740500 + 000000000000B204401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 000007544C61796F757400095374796C654E616D6506074C61796F7574310541 + 6C69676E07044C6566740A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000B204401453697A652E506C61 + 74666F726D44656661756C74080005545061746800095374796C654E616D6506 + 05506174683105416C69676E070643656E74657209446174612E506174680A24 + 010000180000000000000073B8AC43C14A7843010000006D2717435849DD4302 + 00000086CB0A431078E343020000009683ED421078E34302000000DACED44258 + 49DD43020000009A19BC42081CD743020000009A19BC424C17CD4302000000DA + CED4421DEAC64301000000B4288B4385EB61430100000068D1D4426811584202 + 000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D0 + 4D144102000000A886ED429CC245C002000000CCCC0A439CC245C002000000B4 + 281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB514302 + 0000009F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1439C + 046A4302000000FACEAF43711D72430200000073B8AC43C14A78430300000073 + B8AC43C14A78430A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080A53697A652E57696474680500000000000000F002400B53697A65 + 2E4865696768740500000000000000F002401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D + 6F64650703466974000005545061746800095374796C654E616D650605506174 + 683205416C69676E070643656E74657209446174612E506174680A2401000018 + 0000000000000073B8AC43C14A7843010000006D2717435849DD430200000086 + CB0A431078E343020000009683ED421078E34302000000DACED4425849DD4302 + 0000009A19BC42081CD743020000009A19BC424C17CD4302000000DACED4421D + EAC64301000000B4288B4385EB61430100000068D1D442681158420200000028 + 1CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D144102 + 000000A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743D0 + 4D14410100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F + 5AB143F1D25943020000009F5AB14343EB614302000000A05AB1439C046A4302 + 000000FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43C1 + 4A78430A46696C6C2E436F6C6F720708636C6157686974650748697454657374 + 080C4D617267696E732E4C6566740500000000000000A004400A53697A652E57 + 696474680500000000000000F002400B53697A652E4865696768740500000000 + 000000F002401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400000554 + 5061746800095374796C654E616D650605506174683305416C69676E07064365 + 6E74657209446174612E506174680A24010000180000000000000073B8AC43C1 + 4A7843010000006D2717435849DD430200000086CB0A431078E3430200000096 + 83ED421078E34302000000DACED4425849DD43020000009A19BC42081CD74302 + 0000009A19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385 + EB61430100000068D1D4426811584202000000281CBC42CAA126420200000028 + 1CBC42E6FBAC410200000068D1D442D04D144102000000A886ED429CC245C002 + 000000CCCC0A439CC245C002000000B4281743D04D14410100000016B9AC4391 + 8D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F + 5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43711D724302 + 00000073B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080D4D617267696E732E5269 + 6768740500000000000000A004400A53697A652E576964746805000000000000 + 00F002400B53697A652E4865696768740500000000000000F002401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6508577261704D6F6465070346697400000007544C61796F757400095374 + 796C654E616D6506074C61796F75743205416C69676E070552696768740A506F + 736974696F6E2E580500000000000040B106400A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000B20440 + 1453697A652E506C6174666F726D44656661756C740800055450617468000953 + 74796C654E616D650605506174683105416C69676E070643656E746572094461 + 74612E506174680A24010000180000000000000073B8AC43C14A784301000000 + 6D2717435849DD430200000086CB0A431078E343020000009683ED421078E343 + 02000000DACED4425849DD43020000009A19BC42081CD743020000009A19BC42 + 4C17CD4302000000DACED4421DEAC64301000000B4288B4385EB614301000000 + 68D1D4426811584202000000281CBC42CAA1264202000000281CBC42E6FBAC41 + 0200000068D1D442D04D144102000000A886ED429CC245C002000000CCCC0A43 + 9CC245C002000000B4281743D04D14410100000016B9AC43918D4B4302000000 + BECFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB6143 + 02000000A05AB1439C046A4302000000FACEAF43711D72430200000073B8AC43 + C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080D526F746174696F6E416E676C6505000000 + 00000000B406400A53697A652E57696474680500000000000000F002400B5369 + 7A652E4865696768740500000000000000F002401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261 + 704D6F64650703466974000005545061746800095374796C654E616D65060550 + 6174683205416C69676E070643656E74657209446174612E506174680A240100 + 00180000000000000073B8AC43C14A7843010000006D2717435849DD43020000 + 0086CB0A431078E343020000009683ED421078E34302000000DACED4425849DD + 43020000009A19BC42081CD743020000009A19BC424C17CD4302000000DACED4 + 421DEAC64301000000B4288B4385EB61430100000068D1D44268115842020000 + 00281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D14 + 4102000000A886ED429CC245C002000000CCCC0A439CC245C002000000B42817 + 43D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000 + 009F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1439C046A + 4302000000FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC + 43C14A78430A46696C6C2E436F6C6F720708636C615768697465074869745465 + 7374080C4D617267696E732E4C6566740500000000000000A004400D526F7461 + 74696F6E416E676C650500000000000000B406400A53697A652E576964746805 + 00000000000000F002400B53697A652E4865696768740500000000000000F002 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6508577261704D6F64650703466974000005545061746800 + 095374796C654E616D650605506174683305416C69676E070643656E74657209 + 446174612E506174680A24010000180000000000000073B8AC43C14A78430100 + 00006D2717435849DD430200000086CB0A431078E343020000009683ED421078 + E34302000000DACED4425849DD43020000009A19BC42081CD743020000009A19 + BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385EB61430100 + 000068D1D4426811584202000000281CBC42CAA1264202000000281CBC42E6FB + AC410200000068D1D442D04D144102000000A886ED429CC245C002000000CCCC + 0A439CC245C002000000B4281743D04D14410100000016B9AC43918D4B430200 + 0000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343EB + 614302000000A05AB1439C046A4302000000FACEAF43711D72430200000073B8 + AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F72070863 + 6C6157686974650748697454657374080D4D617267696E732E52696768740500 + 000000000000A004400D526F746174696F6E416E676C650500000000000000B4 + 06400A53697A652E57696474680500000000000000F002400B53697A652E4865 + 696768740500000000000000F002401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465 + 070346697400000000005450463007544C61796F757400095374796C654E616D + 65060C706F706F7665727374796C6505416C69676E070643656E746572075669 + 7369626C6508000A5452656374616E676C6500095374796C654E616D65060262 + 6705416C69676E0706436C69656E740A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 7846463135313531350007544C61796F757400095374796C654E616D65060763 + 6F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 680500000000000000C004400B53697A652E4865696768740500000000000000 + C004401453697A652E506C6174666F726D44656661756C740800000D54536861 + 646F77456666656374000844697374616E63650500000000000000C000400944 + 6972656374696F6E0500000000000000B4054008536F66746E65737305000000 + 0000000080FE3F074F706163697479050000000000000080FE3F0B536861646F + 77436F6C6F720708636C61426C61636B000000005450463007544C61796F7574 + 00095374796C654E616D65060D706F707570626F787374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000080C406400B53 + 697A652E4865696768740500000000000000D404401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080A53697A652E57696474680500000000000080C406400B53697A + 652E4865696768740500000000000000D404401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E315374796C65084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463230323032300953746F7056616C7565070978464634 + 30343034300754726967676572062049734D6F7573654F7665723D747275653B + 4973507265737365643D66616C73650E54726967676572496E76657273650621 + 49734D6F7573654F7665723D66616C73653B4973507265737365643D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 + 436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463430343034300953746F7056616C75 + 6507097846463241383245320754726967676572062049734D6F7573654F7665 + 723D747275653B4973507265737365643D747275653B0E54726967676572496E + 7665727365062049734D6F7573654F7665723D747275653B4973507265737365 + 643D66616C736500000007544C61796F75740005416C69676E07055269676874 + 0A506F736974696F6E2E580500000000000080B506400A53697A652E57696474 + 680500000000000000F002400B53697A652E4865696768740500000000000000 + D404401453697A652E506C6174666F726D44656661756C740800055450617468 + 0005416C69676E070643656E74657209446174612E506174680A400000000500 + 000000000000000000000000803F010000000000803F0000803F010000000000 + 003F0000000001000000000000000000803F0300000000000000000000000A46 + 696C6C2E436F6C6F720708636C6157686974650748697454657374080B4D6172 + 67696E732E546F700500000000000000E001C00A53697A652E57696474680500 + 0000000000008002400B53697A652E4865696768740500000000000000800140 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6500000554506174680005416C69676E070643656E74657209 + 446174612E506174680A34000000040000000000000000000000000000000100 + 00000000803F00000000010000000000003F0000803F03000000000000000000 + 00000A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0B4D617267696E732E546F700500000000000000C001400A53697A652E576964 + 746805000000000000008002400B53697A652E48656967687405000000000000 + 008001401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6500000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E740748697454657374080C4D61 + 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E57696474680500000000000080B306400B53697A652E4865696768 + 740500000000000000CC04401453697A652E506C6174666F726D44656661756C + 7408165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 697465000000545046300A5452656374616E676C6500095374796C654E616D65 + 06147374617475736261726E6F677269707374796C6505416C69676E07064365 + 6E7465720C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978 + 46463235323532350553696465730B03546F70000A53697A652E576964746805 + 00000000000000F004400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F7207097846463135313531350756697369626C65080000545046300754 + 4C61796F757400095374796C654E616D650613736D616C6C7363726F6C6C6261 + 727374796C6505416C69676E070643656E7465720756697369626C6508000654 + 547261636B00095374796C654E616D65060668747261636B05416C69676E0706 + 436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F7269 + 7A6F6E74616C0A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172 + 68747261636B7374796C6500000654547261636B00095374796C654E616D6506 + 0676747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F72 + 69656E746174696F6E070A486F72697A6F6E74616C0A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B757006147363726F6C6C62617276747261636B7374796C65000000545046 + 3007544C61796F757400095374796C654E616D65060D73706C69747465727374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000A904400B53697A652E4865696768740500000000000080C105401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 + 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463330 + 333033300748697454657374080553696465730B044C65667405526967687400 + 0A53697A652E57696474680500000000000000A904400B53697A652E48656967 + 68740500000000000080C105401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F720709784646313531353135000007544C + 61796F757400095374796C654E616D6506064C61796F757405416C69676E0706 + 436C69656E740A53697A652E57696474680500000000000000A904400B53697A + 652E4865696768740500000000000080C105401453697A652E506C6174666F72 + 6D44656661756C74080007544C61796F757400095374796C654E616D65060467 + 72697005416C69676E070A5665727443656E746572064C6F636B6564090A506F + 736974696F6E2E5905000000000000008004400A53697A652E57696474680500 + 000000000000A904400B53697A652E4865696768740500000000000000800440 + 1453697A652E506C6174666F726D44656661756C7408000754436972636C6500 + 095374796C654E616D650607436972636C653305416C69676E070643656E7465 + 720A46696C6C2E436F6C6F720709784646343034303430074869745465737408 + 0E4D617267696E732E426F74746F6D0500000000000000A003400A53697A652E + 57696474680500000000000000E001400B53697A652E48656967687405000000 + 00000000E001401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F72070978464631353135313500000754436972636C6500 + 095374796C654E616D650607436972636C653205416C69676E070643656E7465 + 720A46696C6C2E436F6C6F720709784646343034303430074869745465737408 + 0B4D617267696E732E546F700500000000000000A003400A53697A652E576964 + 74680500000000000000E001400B53697A652E48656967687405000000000000 + 00E001401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F72070978464631353135313500000754436972636C6500095374 + 796C654E616D650607436972636C653105416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463430343034300748697454657374080A5369 + 7A652E57696474680500000000000000E001400B53697A652E48656967687405 + 00000000000000E001401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350000000000545046 + 3007544C61796F757400095374796C654E616D650610636C6F7365627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 000A5452656374616E676C6500095374796C654E616D65060B636C6F73656275 + 74746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463230323032300953746F70 + 56616C756507097846464646363135370754726967676572062049734D6F7573 + 654F7665723D747275653B4973507265737365643D66616C73650E5472696767 + 6572496E7665727365062149734D6F7573654F7665723D66616C73653B497350 + 7265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464646463631 + 35370953746F7056616C75650709784646453234463435075472696767657206 + 1F49734D6F7573654F7665723D747275653B4973507265737365643D74727565 + 0E54726967676572496E7665727365062049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C736500000005545061746800095374796C + 654E616D650605506174683105416C69676E070643656E74657209446174612E + 506174680AC400000010000000000000000000A0C00000704101000000000070 + 410000A0C001000000000048420000F041010000000000AA420000A0C0010000 + 000000D242000070410100000000008C4200004842010000000000D2420000B4 + 42010000000000AA420000DC42020000003BDF34429E6F8C4202000000FE547D + 427FAAB04202000000000048420000964201000000000070410000DC42010000 + 000000A0C00000B442010000000000F04100005C42010000000000A0C0000070 + 41030000000000A0C0000070410A46696C6C2E436F6C6F720708636C61576869 + 74650748697454657374080A53697A652E57696474680500000000000000A002 + 400B53697A652E4865696768740500000000000000A002401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0000005450463007544C61796F757400095374796C654E616D65060E6D617862 + 7574746F6E7374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D6506096D6178 + 627574746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000C804400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650614436F6C6F72416E696D6174696F6E315374796C65084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646323032303230095374 + 6F7056616C756507097846463241383245320754726967676572062049734D6F + 7573654F7665723D747275653B4973507265737365643D66616C73650E547269 + 67676572496E7665727365062149734D6F7573654F7665723D66616C73653B49 + 73507265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C + 65084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463241 + 383245320953746F7056616C7565070978464631373537394307547269676765 + 72061F49734D6F7573654F7665723D747275653B4973507265737365643D7472 + 75650E54726967676572496E7665727365062049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C736500000005545061746800095374 + 796C654E616D650605506174683105416C69676E070643656E74657209446174 + 612E506174680A5800000007000000000000000000C8420000C8420100000000 + 002F440000C8420100000000002F4400002F4401000000008009440080094401 + 0000000080094400007A430100000000007A4300007A43030000000000C84200 + 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 + 080A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000A002401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C + 61796F757400095374796C654E616D65060E726573627574746F6E7374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C803401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508000A54526563 + 74616E676C6500095374796C654E616D650609726573627574746F6E05416C69 + 676E0706436C69656E740A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F + 72416E696D6174696F6E315374796C65084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463230323032300953746F7056616C7565070978 + 46463241383245320754726967676572062049734D6F7573654F7665723D7472 + 75653B4973507265737365643D66616C73650E54726967676572496E76657273 + 65062149734D6F7573654F7665723D66616C73653B4973507265737365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 + 616C756507097846463137353739430754726967676572061F49734D6F757365 + 4F7665723D747275653B4973507265737365643D747275650E54726967676572 + 496E7665727365062049734D6F7573654F7665723D747275653B497350726573 + 7365643D66616C736500000005545061746800095374796C654E616D65060550 + 6174683105416C69676E070643656E74657209446174612E506174680A580000 + 0007000000000000000000C8420000C8420100000000002F440000C842010000 + 0000002F4400002F44010000000080094400800944010000000080094400007A + 430100000000007A4300007A43030000000000C8420000C8420A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080D526F746174696F6E + 416E676C650500000000000000B406400A53697A652E57696474680500000000 + 000000A002400B53697A652E4865696768740500000000000000A00240145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E650000005450463007544C61796F757400095374796C654E616D6506 + 0E6D696E627574746F6E7374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508000A5452656374616E676C6500095374796C654E616D65 + 06096D696E627574746F6E05416C69676E0706436C69656E740A46696C6C2E43 + 6F6C6F7207097846463230323032300748697454657374080A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C6508 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 + 32300953746F7056616C75650709784646324138324532075472696767657206 + 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 650E54726967676572496E7665727365062149734D6F7573654F7665723D6661 + 6C73653B4973507265737365643D66616C736500000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E + 325374796C65084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463241383245320953746F7056616C756507097846463137353739430754 + 726967676572061F49734D6F7573654F7665723D747275653B49735072657373 + 65643D747275650E54726967676572496E7665727365062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650000000554506174 + 6800095374796C654E616D650605506174683105416C69676E070643656E7465 + 7209446174612E506174680A40000000050000000000000000002F4400800944 + 0100000000002F4400002F44010000000000C84200002F44010000000000C842 + 008009440300000000002F44008009440A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080B4D617267696E732E546F70050000000000 + 0000A002400D526F746174696F6E416E676C650500000000000000B406400A53 + 697A652E57696474680500000000000000A002400B53697A652E486569676874 + 0500000000000000C000401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F + 757400095374796C654E616D65060F746F6F6C77696E646F777374796C650541 + 6C69676E070643656E7465720A53697A652E576964746805000000000056D5AF + 07400B53697A652E4865696768740500000000000000B306401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C6500095374796C654E616D6506046D61736B05416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463130313031300A53697A65 + 2E576964746805000000000056D5AF07400B53697A652E486569676874050000 + 0000000000B306401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650756697369626C6508000007544C6179 + 6F757400095374796C654E616D6506046C65667405416C69676E07084D6F7374 + 4C656674064C6F636B6564090A506F736974696F6E2E590500000000000000C8 + 03400A53697A652E57696474680500000000000000A001400B53697A652E4865 + 6967687405000000000000009A06401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C650005416C69676E07084D6F73744C65 + 66740A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080553696465730B044C656674055269676874000A53697A652E576964746805 + 00000000000000A001400B53697A652E48656967687405000000000000009506 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F72070978464631353135313500000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653105416C69676E070A4D6F737442 + 6F74746F6D13456E61626C6544726167486967686C69676874080A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A506F73697469 + 6F6E2E5905000000000000009506400553696465730B044C65667406426F7474 + 6F6D000A53697A652E57696474680500000000000000A001400B53697A652E48 + 65696768740500000000000000A001401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350007 + 544C61796F757400095374796C654E616D6506074C61796F75743305416C6967 + 6E07094D6F737452696768740A506F736974696F6E2E58050000000000000080 + 01400A53697A652E5769647468050000000000000080FF3F0B53697A652E4865 + 696768740500000000000000A001401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C6500095374796C654E616D65060A5265 + 6374616E676C653105416C69676E0703546F700A46696C6C2E436F6C6F720709 + 7846463135313531350748697454657374080A53697A652E5769647468050000 + 000000000080FF3F0B53697A652E486569676874050000000000000080FF3F14 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000000000007544C61796F757400095374796C654E616D6506 + 05726967687405416C69676E07094D6F73745269676874064C6F636B6564090A + 506F736974696F6E2E580500000000005655AD07400A506F736974696F6E2E59 + 0500000000000000C803400A53697A652E57696474680500000000000000A001 + 400B53697A652E48656967687405000000000000009A06401453697A652E506C + 6174666F726D44656661756C7408000A5452656374616E676C650005416C6967 + 6E07094D6F737452696768740A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080553696465730B044C656674055269676874000A53 + 697A652E57696474680500000000000000A001400B53697A652E486569676874 + 05000000000000009506401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F72070978464631353135313500000A54526563 + 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C + 69676E070A4D6F7374426F74746F6D13456E61626C6544726167486967686C69 + 676874080A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A506F736974696F6E2E5905000000000000009506400553696465730B + 06426F74746F6D055269676874000A53697A652E576964746805000000000000 + 00A001400B53697A652E4865696768740500000000000000A001401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 7846463135313531350007544C61796F757400095374796C654E616D6506074C + 61796F75743305416C69676E07084D6F73744C6566740A53697A652E57696474 + 68050000000000000080FF3F0B53697A652E4865696768740500000000000000 + A001401453697A652E506C6174666F726D44656661756C7408000A5452656374 + 616E676C6500095374796C654E616D65060A52656374616E676C653105416C69 + 676E0703546F700A46696C6C2E436F6C6F720709784646313531353135074869 + 7454657374080A53697A652E5769647468050000000000000080FF3F0B53697A + 652E486569676874050000000000000080FF3F1453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000000 + 0A5452656374616E676C650005416C69676E07074D6F7374546F700A46696C6C + 2E436F6C6F720709784646323032303230064C6F636B65640907486974546573 + 74080A53697A652E576964746805000000000056D5AF07400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000754 + 4C61796F757400095374796C654E616D65060763617074696F6E05416C69676E + 0708436F6E74656E7473064C6F636B6564090748697454657374090A53697A65 + 2E576964746805000000000056D5AF07400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080000 + 07544C61796F75740005416C69676E0706436C69656E74064C6F636B6564090C + 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF + 3F0A53697A652E576964746805000000000056D5AE07400B53697A652E486569 + 6768740500000000000000B803401453697A652E506C6174666F726D44656661 + 756C74080007544C61796F75740005416C69676E07044C656674064C6F636B65 + 64090A53697A652E576964746805000000000000009002400B53697A652E4865 + 696768740500000000000000B803401453697A652E506C6174666F726D446566 + 61756C7408000007544C61796F757400095374796C654E616D65060773797362 + 746E7305416C69676E0706436C69656E74064C6F636B6564090A53697A652E57 + 696474680500000000005655AA07400B53697A652E4865696768740500000000 + 000000B803401453697A652E506C6174666F726D44656661756C7408000C5453 + 70656564427574746F6E00095374796C654E616D650605636C6F736505416C69 + 676E07055269676874064C6F636B6564090A506F736974696F6E2E5805000000 + 000056D59D07400A53697A652E57696474680500000000000000C803400B5369 + 7A652E4865696768740500000000000000B803401453697A652E506C6174666F + 726D44656661756C74080B5374796C654C6F6F6B75700610636C6F7365627574 + 746F6E7374796C65000005545465787400095374796C654E616D650605746974 + 6C6505416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080A53697A652E576964746805000000000056D59D07400B53697A652E486569 + 6768740500000000000000B803401453697A652E506C6174666F726D44656661 + 756C7408045465787406055469746C65165465787453657474696E67732E466F + 6E74436F6C6F720708636C615768697465000000000007544C61796F75740009 + 5374796C654E616D650606636C69656E7405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374090A53697A652E57696474680500000000 + 0056D5AA07400B53697A652E4865696768740500000000000000950640145369 + 7A652E506C6174666F726D44656661756C7408000007544C61796F7574000953 + 74796C654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C + 6F636B6564090A506F736974696F6E2E580500000000000000A001400A506F73 + 6974696F6E2E590500000000000000AE06400A53697A652E5769647468050000 + 00000056D5AA07400B53697A652E4865696768740500000000000000A0014014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 6500095374796C654E616D6506047265637405416C69676E0706426F74746F6D + 0A46696C6C2E436F6C6F7207097846463230323032300553696465730B03546F + 7006426F74746F6D000A53697A652E576964746805000000000056D5AA07400B + 53697A652E4865696768740500000000000000A001401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 31353135000000005450463007544C61796F757400095374796C654E616D6506 + 1177696E646F77626F726465727374796C6505416C69676E070643656E746572 + 0A53697A652E576964746805000000000056D5AF07400B53697A652E48656967 + 68740500000000000000B306401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508000A5452656374616E676C6500095374796C654E + 616D6506046D61736B05416C69676E0708436F6E74656E74730A46696C6C2E43 + 6F6C6F7207097846463130313031300A53697A652E5769647468050000000000 + 56D5AF07400B53697A652E4865696768740500000000000000B306401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E650756697369626C6508000007544C61796F757400095374796C654E61 + 6D6506046C65667405416C69676E07084D6F73744C656674064C6F636B656409 + 0A506F736974696F6E2E590500000000000000F003400A53697A652E57696474 + 680500000000000000A001400B53697A652E4865696768740500000000000000 + 9506401453697A652E506C6174666F726D44656661756C7408000A5452656374 + 616E676C650005416C69676E07084D6F73744C6566740A46696C6C2E436F6C6F + 7207097846463230323032300748697454657374080553696465730B044C6566 + 74055269676874000A53697A652E57696474680500000000000000A001400B53 + 697A652E48656967687405000000000000009006401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 35313500000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653105416C69676E070A4D6F7374426F74746F6D13456E61626C65 + 44726167486967686C69676874080A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080A506F736974696F6E2E590500000000000000 + 9006400553696465730B044C65667406426F74746F6D000A53697A652E576964 + 74680500000000000000A001400B53697A652E48656967687405000000000000 + 00A001401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350007544C61796F75740009537479 + 6C654E616D6506074C61796F75743305416C69676E07094D6F73745269676874 + 0A506F736974696F6E2E5805000000000000008001400A53697A652E57696474 + 68050000000000000080FF3F0B53697A652E4865696768740500000000000000 + A001401453697A652E506C6174666F726D44656661756C7408000A5452656374 + 616E676C6500095374796C654E616D65060A52656374616E676C653105416C69 + 676E0703546F700A46696C6C2E436F6C6F720709784646313531353135074869 + 7454657374080A53697A652E5769647468050000000000000080FF3F0B53697A + 652E486569676874050000000000000080FF3F1453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000000 + 07544C61796F757400095374796C654E616D650605726967687405416C69676E + 07094D6F73745269676874064C6F636B6564090A506F736974696F6E2E580500 + 000000005655AD07400A506F736974696F6E2E590500000000000000F003400A + 53697A652E57696474680500000000000000A001400B53697A652E4865696768 + 7405000000000000009506401453697A652E506C6174666F726D44656661756C + 7408000A5452656374616E676C650005416C69676E07094D6F73745269676874 + 0A46696C6C2E436F6C6F72070978464632303230323007486974546573740805 + 53696465730B044C656674055269676874000A53697A652E5769647468050000 + 0000000000A001400B53697A652E486569676874050000000000000090064014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F72070978464631353135313500000A5452656374616E676C6500095374796C + 654E616D65060A52656374616E676C653105416C69676E070A4D6F7374426F74 + 746F6D13456E61626C6544726167486967686C69676874080A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080A506F736974696F6E + 2E5905000000000000009006400553696465730B06426F74746F6D0552696768 + 74000A53697A652E57696474680500000000000000A001400B53697A652E4865 + 696768740500000000000000A001401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000754 + 4C61796F757400095374796C654E616D6506074C61796F75743305416C69676E + 07084D6F73744C6566740A53697A652E5769647468050000000000000080FF3F + 0B53697A652E4865696768740500000000000000A001401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060A52656374616E676C653105416C69676E0703546F700A46696C6C + 2E436F6C6F7207097846463135313531350748697454657374080A53697A652E + 5769647468050000000000000080FF3F0B53697A652E48656967687405000000 + 0000000080FF3F1453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000000000A5452656374616E676C6500 + 05416C69676E07074D6F7374546F700A46696C6C2E436F6C6F72070978464632 + 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000056D5AF07400B53697A652E4865696768740500000000000000 + F003401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F7207097846463135313531350007544C61796F757400095374796C + 654E616D65060763617074696F6E05416C69676E0708436F6E74656E7473064C + 6F636B6564090748697454657374090A53697A652E5769647468050000000000 + 56D5AF07400B53697A652E4865696768740500000000000000F003401453697A + 652E506C6174666F726D44656661756C7408000007544C61796F75740005416C + 69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C656674 + 050000000000000080FF3F0B4D617267696E732E546F70050000000000000080 + FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267 + 696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769647468 + 05000000000056D5AE07400B53697A652E4865696768740500000000000000E0 + 03401453697A652E506C6174666F726D44656661756C74080007544C61796F75 + 740005416C69676E07044C656674064C6F636B6564090A53697A652E57696474 + 6805000000000000009002400B53697A652E4865696768740500000000000000 + E003401453697A652E506C6174666F726D44656661756C7408000007544C6179 + 6F757400095374796C654E616D65060469636F6E064C6F636B6564090A506F73 + 6974696F6E2E5805000000000000009002400A506F736974696F6E2E59050000 + 0000000000E001400A53697A652E57696474680500000000000000C803400B53 + 697A652E4865696768740500000000000000A803401453697A652E506C617466 + 6F726D44656661756C7408000007544C61796F757400095374796C654E616D65 + 060773797362746E7305416C69676E0706436C69656E74064C6F636B6564090A + 53697A652E57696474680500000000005655AA07400B53697A652E4865696768 + 740500000000000000E003401453697A652E506C6174666F726D44656661756C + 7408000C545370656564427574746F6E00095374796C654E616D650605636C6F + 736505416C69676E07055269676874064C6F636B6564090A506F736974696F6E + 2E5805000000000056559107400A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000E003401453697A652E + 506C6174666F726D44656661756C74080B5374796C654C6F6F6B75700610636C + 6F7365627574746F6E7374796C6500000C545370656564427574746F6E000953 + 74796C654E616D6506036D617805416C69676E07055269676874064C6F636B65 + 64090A506F736974696F6E2E5805000000000056558207400A53697A652E5769 + 6474680500000000000000F003400B53697A652E486569676874050000000000 + 0000E003401453697A652E506C6174666F726D44656661756C74080B5374796C + 654C6F6F6B7570060E6D6178627574746F6E7374796C6500000C545370656564 + 427574746F6E00095374796C654E616D65060372657305416C69676E07055269 + 676874064C6F636B6564090A506F736974696F6E2E58050000000000ACAAE606 + 400A53697A652E57696474680500000000000000F003400B53697A652E486569 + 6768740500000000000000E003401453697A652E506C6174666F726D44656661 + 756C74080B5374796C654C6F6F6B7570060E726573627574746F6E7374796C65 + 00000C545370656564427574746F6E00095374796C654E616D6506036D696E05 + 416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E5805 + 0000000000ACAAC806400A53697A652E57696474680500000000000000F00340 + 0B53697A652E4865696768740500000000000000E003401453697A652E506C61 + 74666F726D44656661756C74080B5374796C654C6F6F6B7570060E6D696E6275 + 74746F6E7374796C65000005545465787400095374796C654E616D6506057469 + 746C6505416C69676E0706436C69656E74064C6F636B65640907486974546573 + 74080A53697A652E5769647468050000000000ACAAC806400B53697A652E4865 + 696768740500000000000000E003401453697A652E506C6174666F726D446566 + 61756C7408045465787406055469746C65165465787453657474696E67732E46 + 6F6E74436F6C6F720708636C615768697465000000000007544C61796F757400 + 095374796C654E616D650606636C69656E7405416C69676E0706436C69656E74 + 064C6F636B6564090748697454657374090A53697A652E576964746805000000 + 000056D5AA07400B53697A652E48656967687405000000000000009006401453 + 697A652E506C6174666F726D44656661756C7408000007544C61796F75740009 + 5374796C654E616D650606626F74746F6D05416C69676E0706426F74746F6D06 + 4C6F636B6564090A506F736974696F6E2E580500000000000000A001400A506F + 736974696F6E2E590500000000000000AE06400A53697A652E57696474680500 + 0000000056D5AA07400B53697A652E4865696768740500000000000000A00140 + 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 + 6C6500095374796C654E616D6506047265637405416C69676E0706426F74746F + 6D0A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0553696465730B03546F7006426F74746F6D000A53697A652E57696474680500 + 0000000056D5AA07400B53697A652E4865696768740500000000000000A00140 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F720709784646313531353135000000005450463007544C61796F75740009 + 5374796C654E616D650610726164696F627574746F6E7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000F205400B + 53697A652E4865696768740500000000000000A803401453697A652E506C6174 + 666F726D44656661756C74080756697369626C65080007544C61796F75740005 + 416C69676E07044C6566740A53697A652E57696474680500000000000000A803 + 400B53697A652E4865696768740500000000000000A803401453697A652E506C + 6174666F726D44656661756C7408000854456C6C6970736500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E070643656E7465720A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080A53697A652E57696474680500000000000000F002400B53697A652E + 4865696768740500000000000000F002401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 0854456C6C6970736500095374796C654E616D650609636865636B6D61726B05 + 416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646324138 + 324532064C6F636B656409074869745465737408074F70616369747905000000 + 000000000000000C4D617267696E732E4C65667405000000000000008000400B + 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 + 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 + 0000000000008000400A53697A652E57696474680500000000000000B002400B + 53697A652E4865696768740500000000000000B002401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F + 54466C6F6174416E696D6174696F6E00095374796C654E616D65061A6F706163 + 697479436865636B6D61726B416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D6506074F706163697479 + 0A537461727456616C756505000000000000000000000953746F7056616C7565 + 050000000000000080FF3F0754726967676572060E4973436865636B65643D74 + 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 + 6C73650000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 65061A726164696F627574746F6E436F6C6F72416E696D6174696F6E31084475 + 726174696F6E050000000000000000000007496E7665727365090C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572061049734D6F7573654F7665723D747275650E54726967676572 + 496E7665727365061149734D6F7573654F7665723D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E315374796C65084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461 + 727456616C756507097846463135313531350953746F7056616C756507097846 + 463241383245320754726967676572060E4973436865636B65643D747275650E + 54726967676572496E7665727365060F4973436865636B65643D66616C736500 + 00000005545465787400095374796C654E616D6506047465787405416C69676E + 0706436C69656E74064C6F636B6564090748697454657374080A53697A652E57 + 696474680500000000000000C805400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C740816546578 + 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 + 5450463007544C61796F757400095374796C654E616D650618756C63656E7465 + 72726164696F627574746F6E7374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000005655FB05400B53697A652E4865696768 + 740500000000000000A004401453697A652E506C6174666F726D44656661756C + 74080756697369626C65080007544C61796F75740005416C69676E0706426F74 + 746F6D0A506F736974696F6E2E5905000000000000008804400A53697A652E57 + 696474680500000000005655FB05400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0708436F6E74656E747307436F726E6572730B07546F704C656674 + 0A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978464632303230 + 3230064C6F636B6564090748697454657374080A53697A652E57696474680500 + 000000005655FB05400B53697A652E4865696768740500000000000000C00140 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F720709784646313531353135000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D6506216261636B67726F756E64556C427574746F6E436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 0007496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572061049734D6F7573654F + 7665723D747275650E54726967676572496E7665727365061149734D6F757365 + 4F7665723D66616C736500000A5452656374616E676C6500095374796C654E61 + 6D650609636865636B6D61726B05416C69676E0708436F6E74656E747307436F + 726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E + 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 + 08074F70616369747905000000000000000000000C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 680500000000005655F705400B53697A652E4865696768740500000000000000 + 8001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374 + 796C654E616D65061A636865636B6D61726B4F706163697479416E696D617469 + 6F6E31084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D6506074F7061636974790A537461727456616C75650500000000000000 + 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 + 060E4973436865636B65643D747275650E54726967676572496E766572736506 + 0F4973436865636B65643D66616C736500000000000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 + 64090748697454657374080A53697A652E57696474680500000000005655FB05 + 400B53697A652E48656967687405000000000000008804401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D650617756C7269676874726164696F627574746F6E737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000A00440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C65080007544C + 61796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E5905 + 000000000000008804400A53697A652E57696474680500000000005655FB0540 + 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 07436F726E6572730B08546F7052696768740B426F74746F6D5269676874000A + 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 + 7454657374080A53697A652E57696474680500000000005655FB05400B53697A + 652E4865696768740500000000000000C001401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65062162 + 61636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E31 + 084475726174696F6E050000000000000000000007496E7665727365090C5072 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097846463230323032300953746F7056616C756507097846463430343034 + 300754726967676572061049734D6F7573654F7665723D747275650E54726967 + 676572496E7665727365061149734D6F7573654F7665723D66616C736500000A + 5452656374616E676C6500095374796C654E616D650609636865636B6D61726B + 05416C69676E0708436F6E74656E747307436F726E6572730B08546F70526967 + 68740B426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B656409074869745465737408074F7061636974790500 + 0000000000000000000C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000005655F705 + 400B53697A652E48656967687405000000000000008001401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A6368 + 65636B6D61726B4F706163697479416E696D6174696F6E31084475726174696F + 6E05000000000000000000000C50726F70657274794E616D6506074F70616369 + 74790A537461727456616C756505000000000000000000000953746F7056616C + 7565050000000000000080FF3F0754726967676572060E4973436865636B6564 + 3D747275650E54726967676572496E7665727365060F4973436865636B65643D + 66616C7365000000000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 + 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 + 687405000000000000008804401453697A652E506C6174666F726D4465666175 + 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 + 686974650000005450463007544C61796F757400095374796C654E616D650616 + 756C6C656674726164696F627574746F6E7374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000005655FB05400B53697A652E + 4865696768740500000000000000A004401453697A652E506C6174666F726D44 + 656661756C74080756697369626C65080007544C61796F75740005416C69676E + 0706426F74746F6D0A506F736974696F6E2E5905000000000000008804400A53 + 697A652E57696474680500000000005655FB05400B53697A652E486569676874 + 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0708436F6E74656E747307436F726E6572730B07546F + 704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846 + 46323032303230064C6F636B6564090748697454657374080A53697A652E5769 + 6474680500000000005655FB05400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F720709784646313531353135000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D6506216261636B67726F756E64556C427574 + 746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 + 00000000000007496E7665727365090C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 + 746F7056616C756507097846463430343034300754726967676572061049734D + 6F7573654F7665723D747275650E54726967676572496E766572736506114973 + 4D6F7573654F7665723D66616C736500000A5452656374616E676C6500095374 + 796C654E616D650609636865636B6D61726B05416C69676E0708436F6E74656E + 747307436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 745465737408074F70616369747905000000000000000000000C4D617267696E + 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 + 2E57696474680500000000005655F705400B53697A652E486569676874050000 + 00000000008001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D65061A636865636B6D61726B4F706163697479416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572060E4973436865636B65643D747275650E54726967676572496E76 + 65727365060F4973436865636B65643D66616C73650000000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000880440145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D65061070726F67726573736261727374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000033 + 338505400B53697A652E4865696768740500000000009999E104401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508000A54526563 + 74616E676C6500095374796C654E616D65060668747261636B05416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230323006 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000A5452656374616E676C6500095374796C654E61 + 6D65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E + 436F6C6F720709784646324138324532064C6F636B6564090748697454657374 + 080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F73697469 + 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000009999D904401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E650000000A5452656374616E676C6500095374796C654E616D65060676 + 747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646323032303230064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000033338505400B53697A652E4865696768740500 + 000000009999E104401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135000A5452656374616E + 676C6500095374796C654E616D65060A76696E64696361746F7205416C69676E + 0706426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000 + 0000000080FF3F0A506F736974696F6E2E5905000000000099998904400A5369 + 7A652E576964746805000000000033338105400B53697A652E48656967687405 + 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F + 757400095374796C654E616D65060D657870616E6465727374796C6505416C69 + 676E070643656E7465720A53697A652E576964746805000000000000C0840740 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508000A5452656374616E67 + 6C6500095374796C654E616D65060B626772656374616E676C6505416C69676E + 0708436F6E74656E74730C436C69704368696C6472656E090A46696C6C2E436F + 6C6F720709784646324432443244064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000000C08407400B53697A652E4865696768 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F7207097846463135313531350007544C6179 + 6F757400095374796C654E616D6506074C61796F75743305416C69676E070354 + 6F700A53697A652E576964746805000000000000C08407400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080007544C61796F757400095374796C654E616D6506074C61796F75 + 743405416C69676E0708436F6E74656E74730A53697A652E5769647468050000 + 00000000C08407400B53697A652E4865696768740500000000000000C8034014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 6500095374796C654E616D65060A52656374616E676C653205416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F720709784646323532353235064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 00C08407400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 0978464631353135313500000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653105416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646313531353135064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000000C08407400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F + 6174416E696D6174696F6E00095374796C654E616D650614466C6F6174416E69 + 6D6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F + 0D496E746572706F6C6174696F6E070843697263756C61720C50726F70657274 + 794E616D6506075363616C652E580A537461727456616C756505000000000000 + 0080FF3F0953746F7056616C7565050000000000000000000007547269676765 + 72060F4973457870616E6465643D747275650E54726967676572496E76657273 + 6506104973457870616E6465643D66616C73650000000007544C61796F757400 + 095374796C654E616D6506074C61796F75743305416C69676E0708436F6E7465 + 6E74730A53697A652E576964746805000000000000C08407400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080005545465787400095374796C654E616D650604746578740541 + 6C69676E07044C656674084175746F53697A65090A436C6970506172656E7409 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 000000000000A002400A506F736974696F6E2E580500000000000000A002400A + 53697A652E576964746805000000000000B8C703400B53697A652E4865696768 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 7408165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 697465165465787453657474696E67732E486F727A416C69676E07074C656164 + 696E670000000F54457870616E646572427574746F6E00095374796C654E616D + 650606627574746F6E05416C69676E07055269676874064C6F636B6564090A50 + 6F736974696F6E2E580500000000000080F506400A53697A652E576964746805 + 00000000000000A003400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C7408000000000054504630 + 07544C61796F757400095374796C654E616D650613657870616E646572627574 + 746F6E7374796C6505416C69676E070643656E7465720B4D617267696E732E54 + 6F70050000000000000080FF3F0A53697A652E57696474680500000000000000 + B003400B53697A652E4865696768740500000000000000B003401453697A652E + 506C6174666F726D44656661756C74080756697369626C650800055450617468 + 00095374796C654E616D650605506174683105416C69676E070643656E746572 + 09446174612E506174680A3400000004000000000000000000C8420000C84201 + 000000000096430000C842010000000000484300009643030000000000C84200 + 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 + 080D526F746174696F6E416E676C650500000000000000B405400A53697A652E + 57696474680500000000000000A002400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E + 00095374796C654E616D650614466C6F6174416E696D6174696F6E315374796C + 65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174 + 696F6E070843697263756C61720C50726F70657274794E616D65060D526F7461 + 74696F6E416E676C650A537461727456616C75650500000000000000B4054009 + 53746F7056616C756505000000000000000000000754726967676572060F4973 + 457870616E6465643D747275650E54726967676572496E766572736506104973 + 457870616E6465643D66616C7365000000005450463007544C61796F75740009 + 5374796C654E616D650615657870616E646572636865636B626F787374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 008406400B53697A652E48656967687405000000000000008404401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C65080007544C6179 + 6F75740005416C69676E07044C6566740A53697A652E57696474680500000000 + 000000C003400B53697A652E4865696768740500000000000000840440145369 + 7A652E506C6174666F726D44656661756C7408000554506174680005416C6967 + 6E0706436C69656E7409446174612E506174680AD80100002700000000000000 + FEC8BA4402E79244020000002592AD4402E79244020000006D5BA544FEB09E44 + 020000006D5BA544FEB09E440200000093A4A4446A0C9F44020000004A80AC44 + FC79AA4402000000046EBA44FC79AA44020000004A00C844FC79AA4402000000 + 0080CF44FEB09E44020000000080CF44FEB09E44020000000080CF44FEB09E44 + 020000004C5BC84402E7924402000000FEC8BA4402E7924400000000FE88BA44 + FE30974402000000B876BF44FE309744020000000277C344EEA09A4402000000 + 0277C34404DE9E44020000000277C344121BA34402000000B876BF44008CA644 + 02000000FE88BA44008CA644020000004C9BB544008CA64402000000009CB144 + 121BA34402000000009CB14404DE9E4402000000009CB144EEA09A4402000000 + 4C9BB544FE30974402000000FE88BA44FE309744000000000080BA44045E9B44 + 02000000146EB844045E9B440200000000C0B64454F79C440200000000C0B644 + 00F09E440200000000C0B644ACE8A04402000000146EB844FC81A24402000000 + 0080BA44FC81A24402000000EC91BC44FC81A244020000000040BE44ACE8A044 + 020000000040BE4400F09E44020000000040BE4454F79C4402000000EC91BC44 + 045E9B44020000000080BA44045E9B440A46696C6C2E436F6C6F720709783630 + 3030303030300748697454657374080C4D617267696E732E4C65667405000000 + 000000008000400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E526967687405000000000000008000400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 00000000A003400B53697A652E4865696768740500000000000000E803401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6508577261704D6F64650703466974000F54436F6C6F72416E696D + 6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7836303030303030300953746F7056616C75650708636C61426C61636B075472 + 6967676572060E4973436865636B65643D7472756500000F54436F6C6F72416E + 696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 0708636C61426C61636B0953746F7056616C7565070978363030303030303007 + 54726967676572060F4973436865636B65643D66616C73650000000005545465 + 787400095374796C654E616D6506047465787405416C69676E0706436C69656E + 74064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 + 000000000000008002400B4D617267696E732E546F7005000000000000008000 + 400D4D617267696E732E5269676874050000000000000080FF3F0A53697A652E + 57696474680500000000000000C605400B53697A652E48656967687405000000 + 00000000F803401453697A652E506C6174666F726D44656661756C7408165465 + 787453657474696E67732E466F6E74436F6C6F72070978464645454545454516 + 5465787453657474696E67732E486F727A416C69676E07074C656164696E6700 + 00005450463007544C61796F757400095374796C654E616D65060E6C6162656C + 66696C6C7374796C6505416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508000A5452656374616E676C6500095374796C654E616D65060A52656374 + 616E676C653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 7207097846463135313531350A53697A652E57696474680500000000000000C8 + 05400B53697A652E4865696768740500000000000000C803401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 65000005545465787400095374796C654E616D6506047465787405416C69676E + 0708436F6E74656E74730748697454657374080A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C740816546578745365747469 + 6E67732E466F6E74436F6C6F720708636C615768697465000000545046300754 + 4C61796F757400095374796C654E616D650613636F6D626F656469746572726F + 727374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 000C5442727573684F626A65637400095374796C654E616D65060A666F726567 + 726F756E6400000B54466F6E744F626A65637400095374796C654E616D650604 + 666F6E7409466F6E742E53697A650500000000000000D00240000007544C6179 + 6F757400095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E74730A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060A52656374616E676C653105416C69676E0706436C69656E740A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 + 7A652E57696474680500000000000000C805400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F720709784646323032303230000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000749 + 6E7665727365090C50726F70657274794E616D65060C5374726F6B652E436F6C + 6F720A537461727456616C756507097846463230323032300953746F7056616C + 756507097846463430343034300754726967676572062049734D6F7573654F76 + 65723D747275653B4973466F63757365643D66616C73650E5472696767657249 + 6E7665727365062149734D6F7573654F7665723D66616C73653B4973466F6375 + 7365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508447572 + 6174696F6E050000000000000000000007496E7665727365090C50726F706572 + 74794E616D65060C5374726F6B652E436F6C6F720A537461727456616C756507 + 097846463430343034300953746F7056616C7565070978464645323241324107 + 54726967676572061F49734D6F7573654F7665723D747275653B4973466F6375 + 7365643D747275650E54726967676572496E7665727365062049734D6F757365 + 4F7665723D747275653B4973466F63757365643D66616C7365000007544C6179 + 6F757400095374796C654E616D6506056172726F7705416C69676E0708466974 + 52696768740B4D617267696E732E546F70050000000000000080FF3F0D4D6172 + 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F + 74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000000000 + 5ED99705400A506F736974696F6E2E59050000000000000080FF3F0A53697A65 + 2E5769647468050000000000889AB803400B53697A652E486569676874050000 + 0000000000B803401453697A652E506C6174666F726D44656661756C7408000A + 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 + 3105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 + 463330333033300748697454657374080A53697A652E57696474680500000000 + 00889AB803400B53697A652E4865696768740500000000000000B80340145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E + 050000000000000000000007496E7665727365090C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646333033 + 3033300953746F7056616C756507097846463430343034300754726967676572 + 062049734D6F7573654F7665723D747275653B4973466F63757365643D66616C + 73650E54726967676572496E7665727365062149734D6F7573654F7665723D66 + 616C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F + 6E325374796C65084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463430343034300953746F7056616C7565070978464639433137313707 + 54726967676572061F4973466F63757365643D747275653B49734D6F7573654F + 7665723D7472756500000007544C61796F757400095374796C654E616D650607 + 4C61796F75743105416C69676E070643656E7465720C4D617267696E732E4C65 + 6674050000000000000080FF3F0A53697A652E57696474680500000000000000 + A002400B53697A652E4865696768740500000000000000C001401453697A652E + 506C6174666F726D44656661756C74080005545061746800095374796C654E61 + 6D650605506174683105416C69676E0706436C69656E7409446174612E506174 + 680A3400000004000000000000000000C8420000C84201000000000096430000 + C842010000000000484300009643030000000000C8420000C8420A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080A53697A652E5769 + 6474680500000000000000A002400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650000000000000C5442727573684F626A656374 + 00095374796C654E616D65060973656C656374696F6E0B42727573682E436F6C + 6F720709783936324138324532000007544C61796F757400095374796C654E61 + 6D650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E + 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 + 00000000008000400D4D617267696E732E52696768740500000000000000F003 + 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 + 2E576964746805000000000000008805400B53697A652E486569676874050000 + 0000000000A803401453697A652E506C6174666F726D44656661756C74080000 + 005450463007544C61796F757400095374796C654E616D65061E70726F677265 + 7373626172696E64657465726D696E61626C657374796C6505416C69676E0706 + 43656E7465720A53697A652E5769647468050000000000ABAAB006400B53697A + 652E4865696768740500000000000000C003401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508000A5452656374616E676C650009 + 5374796C654E616D65060676747261636B05416C69676E0708436F6E74656E74 + 7307456E61626C6564080A46696C6C2E436F6C6F720709784646323032303230 + 064C6F636B6564090748697454657374080A53697A652E576964746805000000 + 00000000E006400B53697A652E48656967687405000000000000009404401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350756697369626C6508000A5452656374616E676C + 6500095374796C654E616D65060A76696E64696361746F7205416C69676E0706 + 426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F63 + 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 + 000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D6172 + 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F + 74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000000000 + 000080FF3F0A506F736974696F6E2E590500000000000000F002400A53697A65 + 2E57696474680500000000000000DE06400B53697A652E486569676874050000 + 0000000000A803401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6500000007544C61796F75740009537479 + 6C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A53 + 697A652E5769647468050000000000ABAAB006400B53697A652E486569676874 + 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0708436F6E74656E74730C436C69704368696C647265 + 6E090A46696C6C2E436F6C6F720709784646324138324532064C6F636B656409 + 0748697454657374080A53697A652E5769647468050000000000ABAAB006400B + 53697A652E4865696768740500000000000000C003401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 31353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614436F6C6F72416E696D6174696F6E315374796C6507456E61626C65640908 + 4475726174696F6E0500000000000000800140044C6F6F70090C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463230323032300953746F7056616C75650709784646324138324532075472 + 6967676572060E497356697369626C653D747275650000000000545046300754 + 4C61796F757400095374796C654E616D650611616E69696E64696361746F7273 + 74796C6505416C69676E070643656E7465720756697369626C65080004544172 + 6300095374796C654E616D65060341726305416C69676E0708436F6E74656E74 + 730748697454657374080D526F746174696F6E416E676C650500000000000000 + B407400A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F720708636C615768697465105374 + 726F6B652E546869636B6E657373050000000000000080004008456E64416E67 + 6C650500000000000000B405C0000F54466C6F6174416E696D6174696F6E0009 + 5374796C654E616D650603616E6907456E61626C656409084475726174696F6E + 050000000000000080FF3F044C6F6F70090C50726F70657274794E616D65060D + 526F746174696F6E416E676C650A537461727456616C75650500000000000000 + 0000000953746F7056616C75650500000000000000B407400754726967676572 + 060E497356697369626C653D74727565000000005450463007544C61796F7574 + 00095374796C654E616D650615616E69696E64696361746F72686F727A737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 000040C006400B53697A652E4865696768740500000000000000800040145369 + 7A652E506C6174666F726D44656661756C74080756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A46696C6C + 2E436F6C6F7207097846463430343034300A53697A652E576964746805000000 + 00000040C006400B53697A652E48656967687405000000000000008000401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650005544C696E6500095374796C654E616D6506054C696E653108 + 4C696E65547970650706426F74746F6D0A53697A652E57696474680500000000 + 000000A00B400B53697A652E4865696768740500000000000000800040145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646324138324532105374726F6B652E546869636B6E65737305000000 + 000000008002400B5374726F6B652E44617368070444617368000F54466C6F61 + 74416E696D6174696F6E00095374796C654E616D650603616E6907456E61626C + 656409084475726174696F6E0500000000000000800340044C6F6F70090C5072 + 6F70657274794E616D65060A506F736974696F6E2E580A537461727456616C75 + 650500000000000000C808C00953746F7056616C756505000000000000000000 + 000754726967676572060E497356697369626C653D7472756500000000005450 + 463007544C61796F757400095374796C654E616D65060A70616E656C7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C006400B53697A652E4865696768740500000000000000A406401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508000A545265 + 6374616E676C6500095374796C654E616D65060A6261636B67726F756E640541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230 + 323032300A53697A652E57696474680500000000000000C006400B53697A652E + 4865696768740500000000000000A406401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054504630 + 07544C61796F757400095374796C654E616D65060E6C6F67627574746F6E7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000C005400B53697A652E4865696768740500000000000000C005401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0706436C69656E740C436C69704368696C6472656E090A436C69 + 70506172656E74090A46696C6C2E436F6C6F7207097846463230323032300748 + 697454657374080A53697A652E57696474680500000000000000C005400B5369 + 7A652E4865696768740500000000000000C005401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E + 436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 463430343034300754726967676572063049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C73653B4973466F63757365643D66616C73 + 650E54726967676572496E7665727365063149734D6F7573654F7665723D6661 + 6C73653B4973507265737365643D66616C73653B4973466F63757365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463430343034300953746F7056 + 616C756507097846463137353739430754726967676572062F49735072657373 + 65643D747275653B49734D6F7573654F7665723D747275653B4973466F637573 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3308447572 + 6174696F6E05000000000000000000000C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632413832453209 + 53746F7056616C756507097846463137353739430754726967676572062E4973 + 507265737365643D747275653B49734D6F7573654F7665723D747275653B4973 + 466F63757365643D747275650E54726967676572496E7665727365062F497350 + 7265737365643D66616C73653B49734D6F7573654F7665723D747275653B4973 + 466F63757365643D74727565000005545061746800095374796C654E616D6506 + 05506174683105416C69676E0706436C69656E7409446174612E506174680A5C + 02000032000000000000000000A841CDCCCC40010000000000A8410000C04101 + 0000000000C03F0000C041010000000000C03F00000000010000009A99694100 + 000000010000000000A841CDCCCC40030000000000A841CDCCCC400000000000 + 009C410000F04001000000000058410000F04001000000000058410000C03F01 + 000000000040400000C03F01000000000040400000B4410100000000009C4100 + 00B4410100000000009C410000F0400300000000009C410000F0400000000000 + 0040410000F04001000000000090400000F04001000000000090400000C04001 + 000000000040410000C04001000000000040410000F040030000000000404100 + 00F0400000000000009040000010410100000000009041000010410100000000 + 0090410000284101000000000090400000284101000000000090400000104103 + 0000000000904000001041000000000000904000004041010000000000904100 + 0040410100000000009041000058410100000000009040000058410100000000 + 0090400000404103000000000090400000404100000000000090400000704101 + 0000000000904100007041010000000000904100008441010000000000904000 + 0084410100000000009040000070410300000000009040000070410000000000 + 00904000009041010000000000904100009041010000000000904100009C4101 + 0000000000904000009C41010000000000904000009041030000000000904000 + 00904100000000000070410000C04001000000333393410000C0400100000000 + 0070416666264001000000000070410000C04003000000000070410000C0400A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D61 + 7267696E732E4C6566740500000000000000A002400B4D617267696E732E546F + 700500000000000000A002400D4D617267696E732E5269676874050000000000 + 0000A002400E4D617267696E732E426F74746F6D0500000000000000A002400A + 53697A652E576964746805000000000000009805400B53697A652E4865696768 + 7405000000000000009805401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346 + 6974000000005450463007544C61796F757400095374796C654E616D65061470 + 726F67726573736261726D696E697374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508000A5452656374616E676C6500095374796C65 + 4E616D65060668747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000A545265637461 + 6E676C6500095374796C654E616D65060A68696E64696361746F7205416C6967 + 6E07044C6566740A46696C6C2E436F6C6F720709784646324138324532064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000009999E104401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650000000A5452656374616E676C6500095374796C654E616D6506067674 + 7261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 09784646343034303430064C6F636B6564090748697454657374080A53697A65 + 2E576964746805000000000033338505400B53697A652E486569676874050000 + 0000009999E104401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000A5452656374616E676C6500095374 + 796C654E616D65060A76696E64696361746F7205416C69676E0706426F74746F + 6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B65640907 + 48697454657374080A506F736974696F6E2E5905000000000099998D04400A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C6179 + 6F757400095374796C654E616D65061B7472656576696577657870616E646572 + 627574746F6E7374796C6505416C69676E070643656E7465720B4D617267696E + 732E546F70050000000000000080FF3F0A53697A652E57696474680500000000 + 000000B003400B53697A652E4865696768740500000000000000B00340145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650800055450 + 61746800095374796C654E616D650605506174683105416C69676E070643656E + 74657209446174612E506174680A3400000004000000000000000000C8420000 + C84201000000000096430000C842010000000000484300009643030000000000 + C8420000C8420A46696C6C2E436F6C6F720708636C6157686974650748697454 + 657374080D526F746174696F6E416E676C650500000000000000B405C00A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174 + 696F6E00095374796C654E616D650614466C6F6174416E696D6174696F6E3153 + 74796C65084475726174696F6E05000000000000000000000D496E746572706F + 6C6174696F6E070843697263756C61720C50726F70657274794E616D65060D52 + 6F746174696F6E416E676C650A537461727456616C75650500000000000000B4 + 05C00953746F7056616C75650500000000000000000000075472696767657206 + 0F4973457870616E6465643D747275650E54726967676572496E766572736506 + 104973457870616E6465643D66616C736500000000545046300A545265637461 + 6E676C6500095374796C654E616D65061174726565766965776974656D737479 + 6C6505416C69676E070643656E7465720946696C6C2E4B696E6407044E6F6E65 + 0748697454657374080553696465730B06426F74746F6D000A53697A652E5769 + 6474680500000000000000AE05400B53697A652E486569676874050000000000 + 0000A004401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F7207097846463135313531350756697369626C6508000C5453 + 70656564427574746F6E00095374796C654E616D650606627574746F6E05416C + 69676E07044C6566740A53697A652E57696474680500000000000000A003400B + 53697A652E4865696768740500000000000000A004401453697A652E506C6174 + 666F726D44656661756C74080B5374796C654C6F6F6B7570061B747265657669 + 6577657870616E646572627574746F6E7374796C65000007544C61796F757400 + 05416C69676E0708436F6E74656E74730C4D617267696E732E4C656674050000 + 0000000000A003400A53697A652E576964746805000000000000008605400B53 + 697A652E4865696768740500000000000000A004401453697A652E506C617466 + 6F726D44656661756C7408000954436865636B426F7800095374796C654E616D + 650605636865636B05416C69676E07044C6566740843616E466F637573081244 + 697361626C65466F637573456666656374090A53697A652E5769647468050000 + 0000000000A003400B53697A652E4865696768740500000000000000A0044014 + 53697A652E506C6174666F726D44656661756C740800000654476C7970680009 + 5374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C65 + 667405000000000000008000400B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E526967687405000000000000008000400E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F05416C69676E07044C + 6566740A506F736974696F6E2E580500000000000000B003400A506F73697469 + 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 + 00008003400B53697A652E48656967687405000000000000009804401453697A + 652E506C6174666F726D44656661756C7408000005545465787400095374796C + 654E616D6506047465787405416C69676E0706436C69656E74064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000000000BC0440 + 0B53697A652E4865696768740500000000000000A004401453697A652E506C61 + 74666F726D44656661756C740804546578740604546578741654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746515546578745365 + 7474696E67732E576F72645772617008165465787453657474696E67732E486F + 727A416C69676E07074C656164696E670000000A5452656374616E676C650005 + 416C69676E07074669744C6566740946696C6C2E4B696E6407044E6F6E650748 + 697454657374080E4D617267696E732E426F74746F6D050000000000000080FF + 3F0553696465730B044C656674000A53697A652E576964746805000000000098 + 6F8905400B53697A652E48656967687405000000000000009C04401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 784646324138324532105374726F6B652E546869636B6E657373050000000000 + 00008000400000005450463007544C61796F757400095374796C654E616D6506 + 0D74726565766965777374796C6505416C69676E070643656E7465720A53697A + 652E57696474680500000000000000E106400B53697A652E4865696768740500 + 0000000000808107401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000C5442727573684F626A65637400095374796C654E616D + 650618416C7465726E6174696E67526F774261636B67726F756E640B42727573 + 682E436F6C6F72070978304646464646464600000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080C50616464696E672E4C656674050000000000 + 000080FF3F0D50616464696E672E5269676874050000000000000080FF3F0A53 + 697A652E57696474680500000000000000E106400B53697A652E486569676874 + 05000000000000808107401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F + 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C + 69656E740C436C69704368696C6472656E090B4D617267696E732E546F700500 + 00000000000080FF3F0A53697A652E57696474680500000000000000CD06400B + 53697A652E4865696768740500000000000000F006401453697A652E506C6174 + 666F726D44656661756C7408000A5452656374616E676C6500095374796C654E + 616D65060973656C656374696F6E0A46696C6C2E436F6C6F7207097846463241 + 383245320748697454657374080A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E6500000A5452656374616E676C6500095374796C654E616D650610666F6375 + 73656473656C656374696F6E0A46696C6C2E436F6C6F72070978464632413832 + 45320748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0B5374726F6B652E446173680703446F740000000A545363726F6C6C42617200 + 095374796C654E616D65060A767363726F6C6C62617205416C69676E07055269 + 6768740B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E0708566572746963616C0C4D617267696E732E4C656674050000 + 00000000008000400A506F736974696F6E2E580500000000000000D006400A53 + 697A652E576964746805000000000000008003400B53697A652E486569676874 + 0500000000000000F106401453697A652E506C6174666F726D44656661756C74 + 0800000A545363726F6C6C42617200095374796C654E616D65060A687363726F + 6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505 + 000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74 + 616C0B4D617267696E732E546F7005000000000000008000400A506F73697469 + 6F6E2E58050000000000000080FF3F0A506F736974696F6E2E59050000000000 + 0000F306400A53697A652E57696474680500000000000000DF06400B53697A65 + 2E48656967687405000000000000008003401453697A652E506C6174666F726D + 44656661756C740800000F54536D616C6C5363726F6C6C42617200095374796C + 654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E07055269 + 6768740B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E0708566572746963616C0C4D617267696E732E4C656674050000 + 00000000008000400A506F736974696F6E2E580500000000000000C605400A50 + 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 + 000000000000008002400B53697A652E48656967687405000000000000008002 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 00000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F68 + 736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D61 + 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 + 0A486F72697A6F6E74616C0B4D617267696E732E546F70050000000000000080 + 00400A506F736974696F6E2E5805000000000000008000400A506F736974696F + 6E2E590500000000000000E205400A53697A652E576964746805000000000000 + 009606400B53697A652E48656967687405000000000000008002401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508000000005450 + 463007544C61796F757400095374796C654E616D650619616374696F6E746F6F + 6C627574746F6E6D756C74697669657705416C69676E070643656E7465720A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080756697369626C65080B46697865644865696768740232000654476C797068 + 00095374796C654E616D65060A676C7970687374796C650C4D617267696E732E + 4C65667405000000000000009002400B4D617267696E732E546F700500000000 + 0000009002400E4D617267696E732E426F74746F6D0500000000000000900240 + 05416C69676E07044C6566740A506F736974696F6E2E58050000000000000090 + 02400A506F736974696F6E2E5905000000000000009002400A53697A652E5769 + 64746805000000000000008004400B53697A652E486569676874050000000000 + 00008004401453697A652E506C6174666F726D44656661756C740800000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A436C6970 + 506172656E74090A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080C4D617267696E732E4C6566740500000000000000C804C00A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E31084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E33084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463241383245320953746F7056616C75650709784646 + 3137353739430754726967676572062E4973507265737365643D747275653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 + 726967676572496E7665727365062F4973507265737365643D66616C73653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650000 + 0005545465787400095374796C654E616D6506047465787405416C69676E0706 + 436C69656E740748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C7408165465787453657474696E67732E + 466F6E74436F6C6F720708636C615768697465000007544C61796F7574000953 + 74796C654E616D6506074C61796F75743205416C69676E07044C6566740A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0005545061746800095374796C654E616D65060469636F6E05416C69676E0706 + 43656E74657209446174612E506174680A1801000017000000000000000000C0 + 3F0000C03F010000000000000000000000010000000000404000000000010000 + 000000C03F0000C03F030000000000C03F0000C03F0000000000009040000000 + 000100000000004041000000000100000000004041CDCC4C3F01000000000090 + 40CDCC4C3F010000000000904000000000030000000000904000000000000000 + 0000009040333373400100000000009040000040400100000000004041000040 + 4001000000000040413333734001000000000090403333734003000000000090 + 403333734000000000000090409A99D94001000000000090400000C040010000 + 00000040410000C04001000000000040419A99D94001000000000090409A99D9 + 4003000000000090409A99D9400A46696C6C2E436F6C6F720708636C61576869 + 74650748697454657374080A53697A652E57696474680500000000000000D003 + 400B53697A652E4865696768740500000000000000E003401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 08577261704D6F64650703466974000000005450463007544C61796F75740009 + 5374796C654E616D65060E616464627574746F6E7374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C003401453697A652E506C6174666F + 726D44656661756C74080756697369626C65080B466978656448656967687402 + 18000654476C79706800095374796C654E616D65060A676C7970687374796C65 + 0C4D617267696E732E4C65667405000000000000009002400B4D617267696E73 + 2E546F7005000000000000009002400E4D617267696E732E426F74746F6D0500 + 00000000000090024005416C69676E07044C6566740A506F736974696F6E2E58 + 05000000000000009002400A506F736974696F6E2E5905000000000000009002 + 400A53697A652E576964746805000000000000008004400B53697A652E486569 + 67687405000000000000008004401453697A652E506C6174666F726D44656661 + 756C740800000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0706436C69656E740C436C69704368696C64 + 72656E090A436C6970506172656E74090A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080C4D617267696E732E4C65667405000000 + 00000000C003C00A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C003401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E + 436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 463430343034300754726967676572063049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C73653B4973466F63757365643D66616C73 + 650E54726967676572496E7665727365063149734D6F7573654F7665723D6661 + 6C73653B4973507265737365643D66616C73653B4973466F63757365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 + 616C756507097846463137353739430754726967676572062E49735072657373 + 65643D747275653B49734D6F7573654F7665723D747275653B4973466F637573 + 65643D747275650E54726967676572496E7665727365062F4973507265737365 + 643D66616C73653B49734D6F7573654F7665723D747275653B4973466F637573 + 65643D7472756500000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E740748697454657374080A53697A652E5769 + 64746805000000000000009805400B53697A652E486569676874050000000000 + 0000C003401453697A652E506C6174666F726D44656661756C74080454657874 + 060454657874165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C615768697465000007544C61796F757400095374796C654E616D6506074C61 + 796F75743205416C69676E07044C6566740A53697A652E576964746805000000 + 00000000C003400B53697A652E4865696768740500000000000000C003401453 + 697A652E506C6174666F726D44656661756C7408000554506174680009537479 + 6C654E616D65060469636F6E05416C69676E0708436F6E74656E747309446174 + 612E506174680AAC0000000E00000000000000CDCC34410000C0400100000000 + 00C0400000C040010000000000C040CDCC3441010000009A99A940CDCC344101 + 0000009A99A9400000C04001000000000000000000C04001000000000000009A + 99A940010000009A99A9409A99A940010000009A99A940000000000100000000 + 00C04000000000010000000000C0409A99A94001000000CDCC34419A99A94001 + 000000CDCC34410000C04003000000CDCC34410000C0400A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080C4D617267696E732E4C65 + 667405000000000000008001400B4D617267696E732E546F7005000000000000 + 008001400D4D617267696E732E526967687405000000000000008001400E4D61 + 7267696E732E426F74746F6D05000000000000008001400A53697A652E576964 + 746805000000000000008003400B53697A652E48656967687405000000000000 + 008003401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6508577261704D6F64650703466974000000005450 + 463007544C61796F757400095374796C654E616D650617696E666F746F6F6C62 + 7574746F6E6D756C74697669657705416C69676E070643656E7465720A53697A + 652E57696474680500000000000000C805400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C740807 + 56697369626C65080B46697865644865696768740232000654476C7970680009 + 5374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C65 + 667405000000000000009002400B4D617267696E732E546F7005000000000000 + 009002400E4D617267696E732E426F74746F6D05000000000000009002400541 + 6C69676E07044C6566740A506F736974696F6E2E580500000000000000900240 + 0A506F736974696F6E2E5905000000000000009002400A53697A652E57696474 + 6805000000000000008004400B53697A652E4865696768740500000000000000 + 8004401453697A652E506C6174666F726D44656661756C740800000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0706436C69656E740C436C69704368696C6472656E090A436C69705061 + 72656E74090A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080C4D617267696E732E4C6566740500000000000000C804C00A53697A + 652E57696474680500000000000000C805400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E31084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464634303430343007547269 + 67676572063049734D6F7573654F7665723D747275653B497350726573736564 + 3D66616C73653B4973466F63757365643D66616C73650E54726967676572496E + 7665727365063149734D6F7573654F7665723D66616C73653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E33084475726174696F6E0500000000000000000000 + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463241383245320953746F7056616C756507097846463137 + 353739430754726967676572062E4973507265737365643D747275653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D747275650E547269 + 67676572496E7665727365062F4973507265737365643D66616C73653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D7472756500000005 + 545465787400095374796C654E616D6506047465787405416C69676E0706436C + 69656E740748697454657374080A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C740804546578740604546578741654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746500000754 + 4C61796F757400095374796C654E616D6506074C61796F75743205416C69676E + 07044C6566740A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080005545061746800095374796C654E616D65060469636F + 6E05416C69676E070643656E74657209446174612E506174680A84070000A000 + 0000000000009A9987429A99074302000000010076429A990743020000000100 + 5E42CDCC064302000000343347423433054302000000010030429A9903430200 + 000067661A42CE4C01430200000067660642CECCFC4202000000CECCE4410100 + F742020000000100C041CECCEF420200000034339F419B99E74202000000CECC + 7C416866DF4202000000353343413533D64202000000CECC14413533CC420200 + 00009A99C9400000C24202000000000080403333B742020000009A991940CDCC + AB4202000000CDCC4C3F3333A042020000000000000033339442020000000000 + 00009A99874202000000000000000100764202000000CDCC4C3F01005E420200 + 00009A991940CECC4642020000000000804000003042020000009A99C9406666 + 1A42020000003333134166660642020000009A994141CCCCE441020000003333 + 7B41FFFFBF410200000066669E4132339F41020000003333BF41CACC7C410200 + 00000000E441313343410200000000000642CACC14410200000066661A429A99 + C94002000000000030420000804002000000333347429A991940020000000000 + 5E42CDCC4C3F020000006666764200000000020000009A998742000000000200 + 00003433944200000000020000003433A042CDCC4C3F02000000CDCCAB429A99 + 1940020000003333B74200008040020000000000C2429A99C940020000003333 + CC4233331341020000003333D6429A994141020000006666DF4233337B410200 + 00009999E74266669E4102000000CCCCEF423333BF4102000000FFFFF6420000 + E44102000000CCCCFC420000064202000000CC4C014300001A42020000009999 + 03439A992F420200000033330543CDCC464202000000CDCC064300005E420200 + 0000999907430000764202000000999907439A99874202000000999907433433 + 944202000000CCCC06433433A0420200000033330543CDCCAB42020000009999 + 03436766B74202000000CD4C01433333C24202000000CCCCFC423433CC420200 + 0000FFFFF6423433D64202000000CCCCEF426766DF42020000009999E7429A99 + E742020000006666DF42CDCCEF42020000003333D6420000F742020000003333 + CC42CDCCFC42020000003333C242CD4C0143020000006666B7429A9903430200 + 0000CCCCAB4233330543020000003333A042CDCC064302000000333394429A99 + 0743020000009A9987429A990743030000009A9987429A990743000000009A99 + 874200001041020000009A9979420000104102000000CECC644233331B410200 + 0000CECC50429A99314102000000CECC3C42000048410200000001002A420000 + 684102000000CECC184200008841020000003433074200009C41020000003633 + EF41CDCCB441020000006966D2419A99D141020000009C99B5416766EE410200 + 00009C999D41CDCC064202000000D0CC88416666184202000000A09969410000 + 2A4202000000A099494166663C42020000003A333341CCCC5042020000003333 + 1B4133336542020000000000104100007A4202000000000010419A9987420200 + 000000001041343392420200000033331B41CDCC9C42020000009A993141CDCC + A6420200000000004841CDCCB04202000000000068413333BA42020000000000 + 88410000C3420200000000009C41CDCCCB4202000000CDCCB4419A99D3420200 + 00009A99D141CDCCDA42020000006766EE410000E24202000000CDCC06420000 + E84202000000666618423333ED420200000000002A423333F242020000006666 + 3C423333F64202000000666650420000F9420200000066666442CDCCFB420200 + 0000333379423333FD4202000000666687423333FD4202000000333392423333 + FD420200000099999C42CDCCFB42020000009999A6420000F942020000009999 + B0423333F64202000000FFFFB9423333F24202000000CCCCC2423333ED420200 + 00009999CB423333E842020000006666D3420000E242020000009999DA42CDCC + DA4202000000CCCCE1429A99D34202000000CCCCE742CDCCCB4202000000FFFF + EC420000C34202000000FFFFF1423333BA4202000000FFFFF5420000B1420200 + 0000CCCCF8420000A742020000009999FB4200009D4202000000FFFFFC429A99 + 924202000000FFFFFC42CDCC874202000000FFFFFC4200007A42020000009999 + FB423433654202000000CCCCF8423433514202000000FFFFF54234333D420200 + 0000FFFFF14267662A4202000000FFFFEC42CECC184202000000FFFFE7423433 + 074202000000CCCCE1423633EF41020000009999DA426966D241020000006666 + D3429C99B541020000009999CB429C999D4102000000CCCCC242D0CC88410200 + 0000FFFFB942A099694102000000CCCCB042A0994941020000009999A6423A33 + 334102000000CDCC9C4233331B41020000006666924200001041020000009A99 + 874200001041030000009A998742000010410000000033337D42CDCC10420100 + 00009A999042CDCC1042010000009A999042CDCC34420100000034337D42CDCC + 34420100000034337D42CDCC10420300000033337D42CDCC1042000000003333 + 7D4233335942010000009A99904233335942010000009A9990420000C7420100 + 000034337D420000C7420100000034337D42333359420300000033337D423333 + 59420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0A53697A652E57696474680500000000000000D003400B53697A652E48656967 + 68740500000000000000E003401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F64650703 + 466974000000005450463007544C61796F757400095374796C654E616D65061B + 6F7267616E697A65746F6F6C627574746F6E6D756C74697669657705416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080756697369626C65080B46697865644865696768 + 740232000654476C79706800095374796C654E616D65060A676C797068737479 + 6C650C4D617267696E732E4C65667405000000000000009002400B4D61726769 + 6E732E546F7005000000000000009002400E4D617267696E732E426F74746F6D + 050000000000000090024005416C69676E07044C6566740A506F736974696F6E + 2E5805000000000000009002400A506F736974696F6E2E590500000000000000 + 9002400A53697A652E576964746805000000000000008004400B53697A652E48 + 656967687405000000000000008004401453697A652E506C6174666F726D4465 + 6661756C740800000A5452656374616E676C6500095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0706436C69656E740C436C6970436869 + 6C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080C4D617267696E732E4C6566740500 + 000000000000C804C00A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 + 6F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463430343034300754726967676572063049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C73653B4973466F63757365643D6661 + 6C73650E54726967676572496E7665727365063149734D6F7573654F7665723D + 66616C73653B4973507265737365643D66616C73653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3308447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463241383245320953746F + 7056616C756507097846463137353739430754726967676572062E4973507265 + 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D747275650E54726967676572496E7665727365062F497350726573 + 7365643D66616C73653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D7472756500000005545465787400095374796C654E616D65060474 + 65787405416C69676E0706436C69656E740748697454657374080A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C7408165465 + 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 + 07544C61796F757400095374796C654E616D6506074C61796F75743205416C69 + 676E07044C6566740A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080005545061746800095374796C654E616D65060469 + 636F6E05416C69676E070643656E74657209446174612E506174680AD0000000 + 11000000000000009A99E9409A99C940010000006666664066661E4101000000 + 000000009A99C940010000000000003F9A99B94001000000CDCC4C409A990941 + 01000000CDCC4C40000000000100000000008040000000000100000000008040 + 00000841010000006666D6406666B640010000009A99E9409A99C94003000000 + 9A99E9409A99C940000000009A99993E00004041010000009A99993E33333341 + 010000000000E04033333341010000000000E04000004041010000009A99993E + 00004041030000009A99993E000040410A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080A53697A652E576964746805000000000000 + 00D003400B53697A652E4865696768740500000000000000E003401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6508577261704D6F64650703466974000000005450463007544C61796F75 + 7400095374796C654E616D65061B73657474696E6773746F6F6C627574746F6E + 6D756C74697669657705416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C65080B46697865644865696768740232000654476C79706800095374796C65 + 4E616D65060A676C7970687374796C650C4D617267696E732E4C656674050000 + 00000000009002400B4D617267696E732E546F7005000000000000009002400E + 4D617267696E732E426F74746F6D050000000000000090024005416C69676E07 + 044C6566740A506F736974696F6E2E5805000000000000009002400A506F7369 + 74696F6E2E5905000000000000009002400A53697A652E576964746805000000 + 000000008004400B53697A652E48656967687405000000000000008004401453 + 697A652E506C6174666F726D44656661756C740800000A5452656374616E676C + 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0706 + 436C69656E740C436C69704368696C6472656E090A436C6970506172656E7409 + 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080C + 4D617267696E732E4C6566740500000000000000C804C00A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 + 32300953746F7056616C75650709784646343034303430075472696767657206 + 3049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 653B4973466F63757365643D66616C73650E54726967676572496E7665727365 + 063149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 + 6C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 + 6D6174696F6E33084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463241383245320953746F7056616C7565070978464631373537394307 + 54726967676572062E4973507265737365643D747275653B49734D6F7573654F + 7665723D747275653B4973466F63757365643D747275650E5472696767657249 + 6E7665727365062F4973507265737365643D66616C73653B49734D6F7573654F + 7665723D747275653B4973466F63757365643D74727565000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7407 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C7408045465787406045465787416546578745365747469 + 6E67732E466F6E74436F6C6F720708636C615768697465000007544C61796F75 + 7400095374796C654E616D6506074C61796F75743205416C69676E07044C6566 + 740A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080005545061746800095374796C654E616D65060469636F6E05416C69 + 676E070643656E74657209446174612E506174680A540D00001C010000000000 + 00333351423333E7410200000033335142CDCCE84102000000333351426666EA + 4102000000333351423333EB410200000033335142CDCCEC4102000000333351 + 426666EE4102000000333351423333EF410200000033335142CDCCF041020000 + 00333351426666F24102000000333351423333F3410200000033335142CDCCF4 + 4102000000333351426666F64102000000333351423333F7410100000099996F + 4266660E4201000000CDCC5C4200003C420100000000003A4200003442020000 + 000000384200003642020000000000364200003842020000000000344200003A + 420100000000003C42CDCC5C4201000000CDCC0E429A996F42010000000000F8 + 4133335142020000006666F6413333514202000000CDCCF44133335142020000 + 000000F44133335142020000006666F2413333514202000000CDCCF041333351 + 42020000000000F04133335142020000006666EE413333514202000000CDCCEC + 4133335142020000000000EC4133335142020000006666EA4133335142020000 + 00CDCCE84133335142020000000000E84133335142010000006666C24199996F + 4201000000FFFF4F41CCCC5C4201000000FFFF6F41FFFF394202000000FFFF67 + 41FFFF374202000000FFFF5F41FFFF354202000000FFFF5741FFFF3342010000 + 0098999940FFFF3B420100000000000000CDCC0E42010000003333F3400000F8 + 41020000003333F3406666F641020000003333F340CDCCF441020000003333F3 + 400000F441020000003333F3406666F241020000003333F340CDCCF041020000 + 003333F3400000F041020000003333F3406666EE41020000003333F340CDCCEC + 41020000003333F3400000EC41020000003333F3406666EA41020000003333F3 + 40CDCCE841020000003333F3400000E8410100000000000000CDCCC041010000 + 0066669640CDCC4C410100000066665641CDCC6C410200000066665E41CDCC64 + 410200000066666641CDCC5C410200000066666E41CDCC54410100000066664E + 413433934001000000CDCCC04100000000010000006666E6413333F340020000 + 000000E8413333F340020000009999E9413333F340020000006666EA413333F3 + 40020000000000EC413333F340020000009999ED413333F340020000006666EE + 413333F340020000000000F0413333F340020000009999F1413333F340020000 + 006666F2413333F340020000000000F4413333F340020000009999F5413333F3 + 40020000006666F6413333F34001000000CDCC0E42000000000100000000003C + 4266669640010000000000344266665641020000000000364266665E41020000 + 0000003842666666410200000000003A4266666E4101000000CDCC5C4266664E + 41010000009A996F429A99C14101000000333351423333E74103000000333351 + 423333E7410000000033334342CDCC02420200000033334342CDCC0042020000 + 00999943426766FE4102000000999943426766FA4102000000999943426766F6 + 4102000000FFFF43423433F34102000000FFFF43423433EF4102000000FFFF43 + 423433EB4102000000FFFF43420100E84102000000999943420100E441020000 + 00999943420100E0410200000033334342CECCDC410200000033334342CECCD8 + 4101000000CDCC5E426866B64101000000CDCC54429B99854101000000CDCC34 + 42CECC9441020000006766324234338F4102000000000030429B998941020000 + 0033332D42010084410200000066662A42CECC7C410200000000002842353373 + 4102000000CDCC24429C9969410100000067662C423833D34001000000010014 + 4238338340010000006766024202003041020000006766004202003041020000 + 009B99FD4168662E41020000009B99F94168662E41020000009B99F54168662E + 41020000006866F241CECC2C41020000006866EE41CECC2C41020000006866EA + 41CECC2C41020000003533E741CECC2C41020000003533E34168662E41020000 + 003533DF4168662E41020000000200DC4102003041020000000200D841020030 + 41010000009C99B5413733834001000000CFCC84413733D34001000000020094 + 419C9969410200000068668E413633734102000000CFCC8841CFCC7C41020000 + 0035338341010084410200000036337B419A998941020000009D99714167668E + 410200000004006841CECC9441010000000800D0409B99854101000000080080 + 406866B641010000006A662E419B99D941020000006A662E419B99DD41020000 + 00D0CC2C41CECCE04102000000D0CC2C41CECCE44102000000D0CC2C41CECCE8 + 410200000036332B410100EC410200000036332B410100F0410200000036332B + 410100F4410200000036332B413433F74102000000D0CC2C413433FB41020000 + 00D0CC2C413433FF41020000006A662E4134330142020000006A662E41343303 + 42010000000700804067661442010000000700D040CDCC2C4201000000040068 + 4133332542020000009E997141000028420200000037337B41CDCC2A42020000 + 003533834199992D4202000000CECC884165663042020000009B998D41CCCC32 + 4202000000020094413333354201000000CFCC844133335542010000009C99B5 + 4133335F4201000000CFCCD8419999434202000000CFCCDC4199994342020000 + 000200E041FFFF4342020000000200E441FFFF4342020000000200E841FFFF43 + 42020000003533EB4165664442020000003533EF4165664442020000003533F3 + 4165664442020000006866F64165664442020000006866FA41FFFF4342020000 + 006866FE41FFFF434202000000CECC00429999434202000000CECC0242999943 + 42010000000100144233335F420100000067662C423333554201000000CDCC24 + 4233333542020000009A992742CDCC32420200000067662A4266663042020000 + 0033332D4299992D4202000000FFFF2F42CCCC2A420200000066663242666628 + 4202000000CDCC34423333254201000000CDCC5442CDCC2C4201000000CDCC5E + 42676614420100000033334342CDCC02420300000033334342CDCC0242000000 + 003333EF4133339741020000003333FB4133339741020000009A990342999999 + 4102000000CDCC084266669E410200000000000E423333A34102000000CDCC12 + 429999A94102000000CDCC16429999B14102000000CDCC1A429999B941020000 + 0000001E423333C34102000000676620429999CD4102000000CDCC2242FFFFD7 + 410200000001002442FFFFE34102000000010024420000F04102000000010024 + 420100FC4102000000CECC224200000442020000006766204233330942020000 + 0001001E4266660E4202000000CDCC1A423333134202000000CDCC1642333317 + 4202000000CDCC124233331B420200000000000E4266661E4202000000CDCC08 + 42CDCC2042020000009A99034233332342020000003433FB4167662442020000 + 003433EF4167662442020000003433E34167662442020000003433D741343323 + 4202000000CECCCC41CDCC2042020000006866C24167661E4202000000CECCB8 + 4133331B4202000000CECCB0413333174202000000CECCA84133331342020000 + 006866A24166660E42020000009B999D413333094202000000CECC9841000004 + 4202000000686696410000FC4102000000686696410000F04102000000686696 + 410000E44102000000CECC98410000D841020000009B999D419A99CD41020000 + 006866A2413433C34102000000CECCA8419A99B94102000000CECCB0419A99B1 + 4102000000CECCB8419A99A941020000006866C2413433A34102000000CECCCC + 4167669E41020000000000D8419A999941020000003333E34133339741020000 + 003333EF4133339741030000003333EF4133339741000000003333EF41CDCC16 + 42020000000000F841CDCC1642020000000000004200001642020000009A9903 + 42676614420200000034330742CDCC124202000000CDCC0A4267661042020000 + 009A990D429A990D420200000067661042CDCC0A4202000000CDCC12429A9907 + 4202000000676614429A99034202000000010016420000004202000000CDCC16 + 423433F74102000000CDCC16423433EF4102000000CDCC16426766E641020000 + 00000016426766DE4102000000676614423433D74102000000CDCC12420100D0 + 410200000067661042CECCC841020000009A990D423433C34102000000CDCC0A + 429A99BD41020000009A990742CECCB841020000009A9903429A99B541020000 + 00000000426766B241020000003433F741CDCCB041020000003433EF41CDCCB0 + 41020000006766E641CDCCB041020000006766DE416766B241020000003433D7 + 419A99B541020000000100D041CDCCB84102000000CECCC8419A99BD41020000 + 003433C3413433C341020000009A99BD41CECCC84102000000CECCB8413433CF + 41020000009A99B5413433D741020000006766B2416766DE4102000000CDCCB0 + 413433E74102000000CDCCB0413433EF4102000000CDCCB0410100F841020000 + 006766B24100000042020000009A99B5419A99034202000000CDCCB841343307 + 42020000009A99BD41CDCC0A42020000003433C3419A990D4202000000CECCC8 + 4167661042020000003433CF41CDCC1242020000003433D74167661442020000 + 003333DF4100001642020000003333E741CDCC1642020000003333EF41CDCC16 + 42030000003333EF41CDCC16420A46696C6C2E436F6C6F720708636C61576869 + 74650748697454657374080A53697A652E57696474680500000000000000D003 + 400B53697A652E4865696768740500000000000000E003401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 08577261704D6F64650703466974000000005450463007544C61796F75740009 + 5374796C654E616D65061172656D6F7665627574746F6E7374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C003401453697A652E506C61 + 74666F726D44656661756C74080756697369626C65080B466978656448656967 + 68740218000654476C79706800095374796C654E616D65060A676C7970687374 + 796C650C4D617267696E732E4C65667405000000000000009002400B4D617267 + 696E732E546F7005000000000000009002400E4D617267696E732E426F74746F + 6D050000000000000090024005416C69676E07044C6566740A506F736974696F + 6E2E5805000000000000008404400A506F736974696F6E2E5905000000000000 + 009002400A53697A652E576964746805000000000000008004400B53697A652E + 4865696768740500000000000000C001401453697A652E506C6174666F726D44 + 656661756C740800000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0706436C69656E740C436C69704368 + 696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F720709 + 7846463230323032300748697454657374080C4D617267696E732E4C65667405 + 00000000000000C003C00A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C003401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574 + 746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 + 0000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463230323032300953746F7056616C756507 + 097846463430343034300754726967676572063049734D6F7573654F7665723D + 747275653B4973507265737365643D66616C73653B4973466F63757365643D66 + 616C73650E54726967676572496E7665727365063149734D6F7573654F766572 + 3D66616C73653B4973507265737365643D66616C73653B4973466F6375736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650615627574746F6E436F6C6F72416E696D6174696F6E33084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646324138324532095374 + 6F7056616C756507097846463137353739430754726967676572062E49735072 + 65737365643D747275653B49734D6F7573654F7665723D747275653B4973466F + 63757365643D747275650E54726967676572496E7665727365062F4973507265 + 737365643D66616C73653B49734D6F7573654F7665723D747275653B4973466F + 63757365643D7472756500000005545465787400095374796C654E616D650604 + 7465787405416C69676E0706436C69656E740748697454657374080A53697A65 + 2E576964746805000000000000009805400B53697A652E486569676874050000 + 0000000000C003401453697A652E506C6174666F726D44656661756C74080454 + 657874060454657874165465787453657474696E67732E466F6E74436F6C6F72 + 0708636C615768697465000007544C61796F757400095374796C654E616D6506 + 074C61796F75743205416C69676E07044C6566740A53697A652E576964746805 + 00000000000000C003400B53697A652E4865696768740500000000000000C003 + 401453697A652E506C6174666F726D44656661756C7408000554506174680009 + 5374796C654E616D65060469636F6E05416C69676E0708436F6E74656E747309 + 446174612E506174680A4C000000060000000000000000004041CDCC4C3F0100 + 000000000000CDCC4C3F01000000000000000000000001000000000040410000 + 00000100000000004041CDCC4C3F0300000000004041CDCC4C3F0A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080C4D617267696E73 + 2E4C65667405000000000000008001400B4D617267696E732E546F7005000000 + 000000008001400D4D617267696E732E52696768740500000000000000800140 + 0E4D617267696E732E426F74746F6D05000000000000008001400A53697A652E + 576964746805000000000000008003400B53697A652E48656967687405000000 + 000000008003401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6508577261704D6F64650703466974000000 + 00545046300A5452656374616E676C6500095374796C654E616D650614706F70 + 75706261636B67726F756E647374796C6505416C69676E070643656E7465720A + 46696C6C2E436F6C6F7207097846463244324432440A53697A652E5769647468 + 05000000000000009407400B53697A652E4865696768740500000000000080D2 + 06401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F7207097846463135313531350756697369626C65080000} + end> + Left = 56 + Top = 32 + end end diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.pas b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.pas index a5cf946..18bb3d0 100644 --- a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.pas +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.pas @@ -12,6 +12,7 @@ TForm1 = class(TForm) Button1: TButton; CompLabel1: TCompLabel; Label1: TLabel; + StyleBook1: TStyleBook; procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); private diff --git a/src/lib/FMX.Ani.pas b/src/lib/FMX.Ani.pas index c926211..60c5d60 100644 --- a/src/lib/FMX.Ani.pas +++ b/src/lib/FMX.Ani.pas @@ -2,7 +2,7 @@ { } { Delphi FireMonkey Platform } { } -{ Copyright(c) 2011-2020 Embarcadero Technologies, Inc. } +{ Copyright(c) 2011-2021 Embarcadero Technologies, Inc. } { All rights reserved } { } {*******************************************************} @@ -1343,9 +1343,9 @@ constructor TAniThread.Create; destructor TAniThread.Destroy; begin + inherited; FreeAndNil(FAniList); FTimerService := nil; - inherited; end; procedure TAniThread.AddAnimation(const Ani: TAnimation); @@ -2826,6 +2826,7 @@ constructor TTimerThread.Create; destructor TTimerThread.Destroy; begin Terminate; + FTimerEvent := nil; FEnabledEvent.setEvent; inherited; FreeAndNil(FEnabledEvent); diff --git a/src/lib/FMX.ComboEdit.Style.pas b/src/lib/FMX.ComboEdit.Style.pas deleted file mode 100644 index e96311f..0000000 --- a/src/lib/FMX.ComboEdit.Style.pas +++ /dev/null @@ -1,817 +0,0 @@ -{*******************************************************} -{ } -{ Delphi FireMonkey Platform } -{ } -{ Copyright(c) 2014-2020 Embarcadero Technologies, Inc. } -{ All rights reserved } -{ } -{*******************************************************} - -unit FMX.ComboEdit.Style; - -interface - -{$SCOPEDENUMS ON} - -uses - System.Types, System.UITypes, System.Classes, FMX.Presentation.Style, FMX.ComboEdit, FMX.Controls, FMX.Edit.Style, - FMX.Pickers, FMX.ListBox, FMX.Controls.Presentation, FMX.Controls.Model, FMX.Presentation.Messages; - -type - -{ TComboEditListBox } - - TStyledComboEdit = class; - - TComboEditListBox = class(TCustomListBox) - private - [Weak] FStyledComboEdit: TStyledComboEdit; - [Weak] FModel: TComboEditModel; - FInKeyDown: Boolean; - procedure HandleStringsChanged(const S: string; const Op: TCustomListBox.TStringsChangeOp); - protected - function GetDefaultStyleLookupName: string; override; - function GetObservers: TObservers; override; - /// Returns model of TComboEditModel - property Model: TComboEditModel read FModel write FModel; - public - constructor Create(AOwner: TComponent); override; - procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); override; - procedure MouseMove(Shift: TShiftState; X, Y: Single); override; - procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; - end; - -{ TStyledComboEditBase } - - TStyledComboEditBase = class(TStyledEdit) - private - FNeedSetFocusAfterButtonClick: Boolean; - FArrowButton: TControl; - protected - procedure ApplyStyle; override; - procedure FreeStyle; override; - property ArrowButton: TControl read FArrowButton; - /// Drop down list - procedure PMDropDown(var AMessage: TDispatchMessage); message PM_DROPDOWN; - /// Close the drop-down list. - procedure PMCloseDropDown(var AMessage: TDispatchMessage); message PM_CLOSE_DROPDOWN; - procedure Change; override; - procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; - procedure DoComboMouseDown(Sender:TObject; Button: TMouseButton; Shift: TShiftState; x, Y: Single); virtual; - /// Can user open Drop Down list by clicking on Arrow Button - function CanDropDown(const AButton: TMouseButton; const AShift: TShiftState): Boolean; virtual; - procedure DropDown; virtual; abstract; - /// This method closes the drop-down list, if it was opened - procedure CloseDropDown; virtual; abstract; - public - constructor Create(AOwner: TComponent); override; - end; - -{ TStyledComboEdit } - - TStyledComboEdit = class(TStyledComboEditBase) - private type - TStateInfo = record - Saved: Boolean; - ItemIndex: Integer; - Text: string; - end; - private - FPopup: TPopup; - FListBox: TComboEditListBox; - FListPicker: TCustomListPicker; - FSavedState: TStateInfo; - function GetComboEdit: TCustomComboEdit; - procedure RebuildList; - procedure RefreshSelectedItem; - function GetModel: TComboEditModel; - procedure DoOnValueChangedFromDropDownList(Sender: TObject; const AValueIndex: Integer); - procedure DoPopup(Sender: TObject); - procedure DoClosePopup(Sender: TObject); - protected - { Messages From Model} - procedure MMItemIndexChanged(var AMessage: TDispatchMessage); message MM_ITEMINDEX_CHANGED; - procedure MMItemHeightChanged(var AMessage: TDispatchMessage); message MM_ITEMHEIGHT_CHANGED; - procedure MMItemWidthChanged(var AMessage: TDispatchMessage); message MM_ITEMWIDTH_CHANGED; - procedure MMItemsChanged(var AMessage: TDispatchMessage); message MM_ITEMS_CHANGED; - { Messages From Controller } - /// Notification about initialization of presentation - procedure PMInit(var AMessage: TDispatchMessage); message PM_INIT; - procedure DoAbsoluteChanged; override; - protected - procedure MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); override; - procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); override; - /// Creates listbox for implementation Drop Down List - function CreateListBox: TComboEditListBox; virtual; - /// Updates width of drop down list - procedure DoRealign; override; - procedure DoExit; override; - /// Saves current value of ItemIndex and Text - procedure SaveState; - /// Restores previous saved save of ItemIndex and Text. - /// If control didn't save state, this method will ignore invoke. - procedure RestoreState; - /// Initialization of List Picker - procedure InitPicker(AListPicker: TCustomListPicker); virtual; - /// Recalculates popup size based on items - procedure RecalculatePopupSize; virtual; - /// Defines TComboEdit model class - function DefineModelClass: TDataModelClass; override; - public - constructor Create(AOwner: TComponent); override; - destructor Destroy; override; - /// Opens drop down list. If lsit is opened, it will close popup. - procedure DropDown; override; - /// Closes drop down list - procedure CloseDropDown; override; - procedure Clear; - /// Access to presented control - property ComboEdit: TCustomComboEdit read GetComboEdit; - /// Returns model of TComboEditModel - property Model: TComboEditModel read GetModel; - property ListBox: TComboEditListBox read FListBox; - /// Returns list picker, if current platform implements pickers - property ListPicker: TCustomListPicker read FListPicker; - end; - -implementation - -uses - System.SysUtils, System.Math.Vectors, System.Rtti, System.Math, FMX.Platform, FMX.Types, - FMX.Presentation.Factory, FMX.Forms, FMX.Text, FMX.Consts; - -{ TComboEditListBox } - -constructor TComboEditListBox.Create(AOwner: TComponent); -begin - inherited; - if AOwner is TStyledComboEdit then - FStyledComboEdit := TStyledComboEdit(AOwner); - OnStringsChanged := HandleStringsChanged; - FInKeyDown := False; - SetAcceptsControls(False); -end; - -procedure TComboEditListBox.KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); -begin - if not FInKeyDown then - begin - FInKeyDown := True; - try - if FStyledComboEdit <> nil then - FStyledComboEdit.KeyDown(Key, KeyChar, Shift) - else - inherited; - finally - FInKeyDown := False; - end; - end; -end; - -procedure TComboEditListBox.MouseMove(Shift: TShiftState; X, Y: Single); -var - Item: TListBoxItem; - LItemIndex: Integer; -begin - inherited; - Item := ItemByPoint(X, Y); - if Item <> nil then - begin - if Selected = Item then - Exit; - if Observers.IsObserving(TObserverMapping.EditLinkID) then - if TLinkObservers.EditLinkIsReadOnly(Observers) then - Exit - else - if not TLinkObservers.EditLinkEdit(Observers) then - Exit; - TLinkObservers.PositionLinkPosChanging(Observers); - LItemIndex := ItemIndex; - if MultiSelectStyle <> TMultiSelectStyle.None then - begin - if MultiSelectStyle = TMultiSelectStyle.Default then - begin - {$IFDEF MACOS} - if ssCommand in Shift then - {$ELSE} - if ssCtrl in Shift then - {$ENDIF} - Item.IsSelected := not Item.IsSelected - else - SelectRange(FirstSelectedItem, Item); - ItemIndex := Item.Index; - end; - end - else - ItemIndex := Item.Index; - if LItemIndex <> ItemIndex then - TLinkObservers.ListSelectionChanged(Observers); - end; -end; - -procedure TComboEditListBox.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); -var - LItem : TListBoxItem; - LItemIndex: Integer; -begin - inherited; - if (Parent is TPopup) and TPopup(Parent).IsOpen and (Model <> nil) then - begin - LItemIndex := ItemIndex; - if LocalRect.Contains(PointF(X, Y)) then - begin - LItem := ItemByPoint(X, Y) ; - if LItem <> nil then - begin - if LItem.Index <> Model.ItemIndex then - TLinkObservers.PositionLinkPosChanging(Observers); - if Observers.IsObserving(TObserverMapping.EditLinkID) then - begin - if TLinkObservers.EditLinkIsEditing(Observers) then - Model.ItemIndex := LItem.Index; - end - else - Model.ItemIndex := LItem.Index; - end; - if FStyledComboEdit <> nil then - FStyledComboEdit.SaveState; - Model.Change; - end; - TPopup(Parent).IsOpen := False; - if LItemIndex <> ItemIndex then - TLinkObservers.ListSelectionChanged(Observers); - end; -end; - -function TComboEditListBox.GetDefaultStyleLookupName: string; -begin - Result := 'listboxstyle'; // do not localize -end; - -function TComboEditListBox.GetObservers: TObservers; -begin - if Model <> nil then - Result := Model.Owner.Observers - else - Result := inherited; -end; - -procedure TComboEditListBox.HandleStringsChanged(const S: string; const Op: TCustomListBox.TStringsChangeOp); -begin - if (Model <> nil) and (Op = TCustomListBox.TStringsChangeOp.Added) then - Model.Items.Add(S); -end; - -{ TStyledComboEditBase } - -procedure TStyledComboEditBase.ApplyStyle; -var - DeviceSrv: IFMXDeviceService; -begin - inherited; - if FindStyleResource('arrow', FArrowButton) then - begin - FArrowButton.HitTest := True; - FArrowButton.Cursor := crArrow; - FArrowButton.OnMouseDown := Self.DoComboMouseDown; - if SupportsPlatformService(IFMXDeviceService, IInterface(DeviceSrv)) and (TDeviceFeature.HasTouchScreen in DeviceSrv.GetFeatures) then - FArrowButton.TouchTargetExpansion.Rect := TRectF.Create(0, DefaultTouchTargetExpansion, DefaultTouchTargetExpansion, 0) - end; -end; - -function TStyledComboEditBase.CanDropDown(const AButton: TMouseButton; const AShift: TShiftState): Boolean; -begin - Result := AButton = TMouseButton.mbLeft; -end; - -procedure TStyledComboEditBase.Change; -begin - RepaintEdit; - inherited; -end; - -constructor TStyledComboEditBase.Create(AOwner: TComponent); -var - DefaultValueService: IFMXDefaultPropertyValueService; - NeedSetFocusAfterButtonClick: TValue; -begin - inherited; - { Define default behavior for platforms } - NeedSetFocusAfterButtonClick := TValue.Empty; - if SupportsPlatformService(IFMXDefaultPropertyValueService, IInterface(DefaultValueService)) then - NeedSetFocusAfterButtonClick := DefaultValueService.GetDefaultPropertyValue(Self.ClassName, 'NeedSetFocusAfterButtonClick'); - - if NeedSetFocusAfterButtonClick.IsEmpty then - FNeedSetFocusAfterButtonClick := True - else - FNeedSetFocusAfterButtonClick := NeedSetFocusAfterButtonClick.AsBoolean; -end; - -procedure TStyledComboEditBase.DoComboMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); -var - OldPressed: Boolean; -begin - if CanDropDown(Button, Shift) then - begin - if FNeedSetFocusAfterButtonClick then - SetFocus; - OldPressed := Pressed; - try - Pressed := True; - DropDown; - finally - Pressed := OldPressed; - end; - end; -end; - -procedure TStyledComboEditBase.FreeStyle; -begin - if FArrowButton <> nil then - FArrowButton.OnMouseDown := nil; - FArrowButton := nil; - inherited; -end; - -procedure TStyledComboEditBase.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); -begin - inherited; - // if control does not support text input, then we must show drop down list, - // when user clicked on control. - if not Model.InputSupport then - DoComboMouseDown(Self, Button, Shift, X, Y); -end; - -procedure TStyledComboEditBase.PMCloseDropDown(var AMessage: TDispatchMessage); -begin - CloseDropDown; -end; - -procedure TStyledComboEditBase.PMDropDown(var AMessage: TDispatchMessage); -begin - DropDown; -end; - -{ TStyledComboEdit } - -procedure TStyledComboEdit.Clear; -begin - FListBox.Clear; -end; - -procedure TStyledComboEdit.CloseDropDown; -begin - if Model.DroppedDown then - begin - Model.DroppedDown := False; - case Model.DropDownKind of - TDropDownKind.Custom: - FPopup.IsOpen := False; - TDropDownKind.Native: - if FListPicker.IsShown then - FListPicker.Hide; - end; - end; -end; - -constructor TStyledComboEdit.Create(AOwner: TComponent); -var - PickerService: IFMXPickerService; -begin - inherited; - if TPlatformServices.Current.SupportsPlatformService(IFMXPickerService, PickerService) then - begin - FListPicker := PickerService.CreateListPicker; - FListPicker.Parent := Self; - FListPicker.OnValueChanged := DoOnValueChangedFromDropDownList; - FListPicker.OnHide := DoClosePopup; - FListPicker.OnShow := DoPopup; - end; - FPopup := TPopup.Create(Self); - FPopup.StyleLookup := 'combopopupstyle'; - FPopup.PlacementTarget := Self; - FPopup.Stored := False; - FPopup.Parent := Self; - FPopup.Locked := True; - FPopup.OnClosePopup := DoClosePopup; - FPopup.OnPopup := DoPopup; - FPopup.DragWithParent := True; - FListBox := CreateListBox; - if FListBox = nil then - raise EArgumentNilException.CreateFmt(SResultCanNotBeNil, ['CreateListBox']); - FListBox.Parent := FPopup; - FListBox.Stored := False; - FListBox.Align := TAlignLayout.Client; - FListBox.ShowCheckboxes := False; - FListBox.ItemIndex := -1; - FListBox.Model := Model; - FSavedState.Saved := False; -end; - -function TStyledComboEdit.CreateListBox: TComboEditListBox; -begin - Result := TComboEditListBox.Create(Self); -end; - -function TStyledComboEdit.DefineModelClass: TDataModelClass; -begin - Result := TComboEditModel; -end; - -destructor TStyledComboEdit.Destroy; -begin - FListPicker.Free; - FPopup.Free; - inherited; -end; - -procedure TStyledComboEdit.DoClosePopup(Sender: TObject); -begin - if not (csDestroying in ComponentState) then - begin - Model.DisableNotify; - try - Model.DroppedDown := False; - Model.SelStart := Model.Text.Length; - Model.SelLength := 0; - finally - Model.EnableNotify; - end; - Model.Caret.Show; - if Assigned(Model.OnClosePopup) then - Model.OnClosePopup(PresentedControl); - end; -end; - -procedure TStyledComboEdit.DoExit; -begin - inherited; - CloseDropDown; -end; - -procedure TStyledComboEdit.DoOnValueChangedFromDropDownList(Sender: TObject; const AValueIndex: Integer); -var - LSaveIndex: Integer; -begin - if not Model.ReadOnly then - begin - if Observers.IsObserving(TObserverMapping.EditLinkID) and not TLinkObservers.EditLinkEdit(Observers) then - // Editing not permitted, ignore change - Exit; - LSaveIndex := Model.ItemIndex; - Model.ItemIndex := AValueIndex; - if Model.ItemIndex <> LSaveIndex then - begin - if Observers.IsObserving(TObserverMapping.EditLinkID) then - begin - TLinkObservers.EditLinkModified(Observers); - TLinkObservers.EditLinkTrackUpdate(Observers); - end; - if Observers.IsObserving(TObserverMapping.ControlValueID) then - begin - TLinkObservers.ControlValueModified(Observers); - TLinkObservers.ControlValueTrackUpdate(Observers); - end; - end; - SaveState; - Model.Change; - end; -end; - -procedure TStyledComboEdit.DoPopup(Sender: TObject); -begin - if Assigned(Model.OnPopup) then - Model.OnPopup(PresentedControl); -end; - -procedure TStyledComboEdit.DoRealign; -begin - inherited; - if FDisableAlign then - Exit; - FDisableAlign := True; - try - FPopup.Width := Width; - finally - FDisableAlign := False; - end; -end; - -procedure TStyledComboEdit.DropDown; -begin - if Model.DroppedDown then - CloseDropDown - else - begin - SaveState; - Model.DroppedDown := True; - - if Model.Count > 0 then - case Model.DropDownKind of - TDropDownKind.Custom: - begin - RecalculatePopupSize; - FPopup.IsOpen := True; - if FPopup.IsOpen then - FListBox.SetFocus; - end; - TDropDownKind.Native: - begin - Model.SelLength := 0; - Model.Caret.Hide; - InitPicker(FListPicker); - FListPicker.Show; - end; - end; - end; -end; - -function TStyledComboEdit.GetComboEdit: TCustomComboEdit; -begin - Result := PresentedControl as TCustomComboEdit; -end; - -function TStyledComboEdit.GetModel: TComboEditModel; -begin - Result := inherited GetModel; -end; - -procedure TStyledComboEdit.InitPicker(AListPicker: TCustomListPicker); -begin - if Pressed or DoubleClick then - FListPicker.PreferedDisplayIndex := Screen.DisplayFromPoint(Screen.MousePos).Index - else - FListPicker.PreferedDisplayIndex := -1; - FListPicker.Values := Model.Items; - FListPicker.ItemIndex := Model.ItemIndex; - FListPicker.ItemWidth := Model.ItemWidth; - FListPicker.CountVisibleItems := Model.DropDownCount; -end; - -procedure TStyledComboEdit.KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); -var - LItemIndex: Integer; -begin - if Observers.IsObserving(TObserverMapping.EditLinkID) and ((KeyChar > ' ') or (Key in [vkUp, vkDown])) then - if TLinkObservers.EditLinkIsReadOnly(Observers) then - Exit - else - TLinkObservers.EditLinkEdit(Observers); - - inherited; - - if not Model.DroppedDown then - LItemIndex := Model.ItemIndex - else if Model.DropDownKind = TDropDownKind.Native then - LItemIndex := FListPicker.ItemIndex - else - LItemIndex := FListBox.ItemIndex; - - if (Model.Count > 0) and not Model.ReadOnly and Enabled then - begin - case Key of - vkUp: - LItemIndex := EnsureRange(LItemIndex - 1, 0, Model.Count - 1); - vkDown: - if (Shift = [ssAlt]) and not Model.DroppedDown then - DropDown - else - LItemIndex := EnsureRange(LItemIndex + 1, 0, Model.Count - 1); - vkReturn: - begin - Model.ItemIndex := LItemIndex; - Model.Change; - SaveState; - CloseDropDown; - end; - vkEscape: - begin - RestoreState; - CloseDropDown; - RefreshSelectedItem; - Exit; - end - else - Exit; - end; - TLinkObservers.ListSelectionChanged(Observers); - - if not Model.DroppedDown then - begin - Model.ItemIndex := LItemIndex; - Model.Change; - SaveState; - RefreshSelectedItem; - end - else if Model.DropDownKind = TDropDownKind.Native then - FListPicker.ItemIndex := LItemIndex - else - FListBox.ItemIndex := LItemIndex; - Key := 0; - KeyChar := #0; - end - // Mark Return key as processed to avoid handling of Default button - else if (Key = vkReturn) and ((Shift = [ssAlt]) or (Shift = [])) then - begin - Key := 0; - KeyChar := #0; - end; -end; - -procedure TStyledComboEdit.PMInit(var AMessage: TDispatchMessage); -begin - inherited; - FListBox.ItemHeight := Model.ItemHeight; -end; - -procedure TStyledComboEdit.DoAbsoluteChanged; -begin - inherited; - if FPopup.IsOpen and (not AbsoluteEnabled or not ParentedVisible or AbsoluteClipRect.IsEmpty) then - CloseDropDown; -end; - -procedure TStyledComboEdit.MMItemHeightChanged(var AMessage: TDispatchMessage); -begin - FListBox.ItemHeight := Model.ItemHeight; - if FListPicker <> nil then - FListPicker.ItemHeight := Model.ItemHeight; -end; - -procedure TStyledComboEdit.MMItemIndexChanged(var AMessage: TDispatchMessage); -begin - RefreshSelectedItem; -end; - -procedure TStyledComboEdit.MMItemsChanged(var AMessage: TDispatchMessage); -begin - RebuildList; - // if component is being loaded or destroyed, we don't assign items for picker. Because it can affect on life cycle of - // android activity (only for Android) and to bring to deadlock of java thread (Event in CallInUIThreadAndWaitFinishing - // and mutex in AndroidApi.AppGlue) - if (FListPicker <> nil) and ([csLoading, csDestroying] * ComponentState = []) then - FListPicker.Values := Model.Items; - if InRange(Model.ItemIndex, 0, Model.Count - 1) then - Text := Model.Items[Model.ItemIndex]; -end; - -procedure TStyledComboEdit.MMItemWidthChanged(var AMessage: TDispatchMessage); -begin - if (TDropDownKind.Native = Model.DropDownKind) and (FListPicker <> nil) then - FListPicker.ItemWidth := Model.ItemWidth - else - FPopup.Width := Model.ItemWidth; -end; - -procedure TStyledComboEdit.MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); -begin - inherited; - if Model.Count > 0 then - if WheelDelta < 0 then - Model.ItemIndex := EnsureRange(Model.ItemIndex + 1, 0, Model.Count - 1) - else - Model.ItemIndex := EnsureRange(Model.ItemIndex - 1, 0, Model.Count - 1); - Handled := True; -end; - -procedure TStyledComboEdit.RebuildList; -var - SavedItemIndex, I: Integer; - Item: TListBoxItem; -begin - if csDestroying in ComponentState then - Exit; - - FListBox.BeginUpdate; - try - SavedItemIndex := FListBox.ItemIndex; - FListBox.Clear; - for I := 0 to Model.Items.Count - 1 do - begin - Item := TListBoxItem.Create(nil); - Item.Parent := FListBox; - Item.AutoTranslate := AutoTranslate; - Item.Height := Model.ItemHeight; - Item.Stored := False; - Item.Locked := True; - Item.Text := Model.Items[I]; - end; - FListBox.ItemIndex := EnsureRange(SavedItemIndex, -1, FListBox.Count - 1); - finally - FListBox.EndUpdate; - end; -end; - -procedure TStyledComboEdit.RecalculatePopupSize; - - procedure UpdateItemBounds(Index: Integer); - var - Item: TListBoxItem; - NewHeight: Single; - Content: TControl; - begin - Item := FListBox.ItemByIndex(Index); - if (Item <> nil) and FindStyleResource('Content', Content) then // do not localize - begin - if Item.Height <> 0 then - NewHeight := Item.Height - else if Model.ItemHeight = 0 then - NewHeight := Content.Height - else - NewHeight := Model.ItemHeight; - Item.SetBounds(Item.Position.X, Item.Position.Y, Item.Width, NewHeight); - Item.ApplyStyleLookup; - end; - end; - - function CalculatePopupContentHeight: Single; - var - TotalHeight: Single; - Num: Integer; - I: Integer; - Item: TListBoxItem; - begin - TotalHeight := 0; - Num := 0; - for I := 0 to FListbox.Count - 1 do - begin - Item := FListbox.ListItems[I]; - if Item.Position.Y >= 0 then - begin - TotalHeight := TotalHeight + Item.Height; - Inc(Num); - end; - if Num >= Model.DropDownCount then - Break; - end; - Result := TotalHeight; - end; - -var - PopupContentHeight: Single; - I: Integer; -begin - // Resize list items to match the dimensions of the control - for I := 0 to FListbox.Count - 1 do - UpdateItemBounds(I); - - FPopup.ApplyStyleLookup; - if Pressed or DoubleClick then - FPopup.PreferedDisplayIndex := Screen.DisplayFromPoint(Screen.MousePos).Index - else - FPopup.PreferedDisplayIndex := -1; - if SameValue(Model.ItemWidth, 0, TEpsilon.Position) then - FPopup.Width := Width - else - FPopup.Width := Model.ItemWidth; - - if FListBox.ItemHeight > 0 then - PopupContentHeight := Min(Model.Count, Model.DropDownCount) * FListBox.ItemHeight - else - PopupContentHeight := CalculatePopupContentHeight; - FPopup.Height := FPopup.Padding.Top + PopupContentHeight + FListBox.BorderHeight + FPopup.Padding.Bottom; -end; - -procedure TStyledComboEdit.RefreshSelectedItem; -var - LValue: Integer; -begin - LValue := Model.ItemIndex; - if (Model.DropDownKind = TDropDownKind.Native) and (FListPicker <> nil) then - FListPicker.ItemIndex := LValue; - FListBox.ItemIndex := LValue; - if Model.ItemIndex >= 0 then - begin - SetTextInternal(Model.Items[Model.ItemIndex]); - Model.CaretPosition := Model.Text.Length; - Model.Caret.Visible := Model.InputSupport; - if not Model.ReadOnly then - Edit.SelectAll; - if ResourceControl <> nil then - ResourceControl.UpdateEffects; - Repaint; - end; -end; - -procedure TStyledComboEdit.RestoreState; -begin - if FSavedState.Saved then - begin - Model.ItemIndex := EnsureRange(FSavedState.ItemIndex, -1, Model.Count - 1); - if Model.ItemIndex = -1 then - Model.Text := FSavedState.Text; - end; -end; - -procedure TStyledComboEdit.SaveState; -begin - FSavedState.Saved := True; - FSavedState.ItemIndex := Model.ItemIndex; - FSavedState.Text := Model.Text; -end; - -initialization - TPresentationProxyFactory.Current.Register(TComboEdit, TControlType.Styled, TStyledPresentationProxy); -finalization - TPresentationProxyFactory.Current.Unregister(TComboEdit, TControlType.Styled, TStyledPresentationProxy); -end. diff --git a/src/lib/FMX.ComboEdit.pas b/src/lib/FMX.ComboEdit.pas deleted file mode 100644 index 1641678..0000000 --- a/src/lib/FMX.ComboEdit.pas +++ /dev/null @@ -1,518 +0,0 @@ -{*******************************************************} -{ } -{ Delphi FireMonkey Platform } -{ } -{ Copyright(c) 2014-2020 Embarcadero Technologies, Inc. } -{ All rights reserved } -{ } -{*******************************************************} - -unit FMX.ComboEdit; - -interface - -{$SCOPEDENUMS ON} - -uses - FMX.Types, FMX.Controls, FMX.ListBox, System.Classes, System.UITypes, FMX.Edit, FMX.Pickers, - FMX.Presentation.Messages, FMX.Controls.Presentation, FMX.Controls.Model; - -const - MM_ITEMHEIGHT_CHANGED = MM_EDIT_USER + 1; - MM_ITEMWIDTH_CHANGED = MM_EDIT_USER + 2; - MM_ITEMS_CHANGED = MM_EDIT_USER + 3; - MM_ITEMINDEX_CHANGED = MM_EDIT_USER + 4; - MM_DROPDOWNCOUNT_CHANGED = MM_EDIT_USER + 5; - MM_DROPDOWNKIND_CHANGED = MM_EDIT_USER + 6; - MM_LISTBOXRESOURCE_CHANGED = MM_EDIT_USER + 7; - MM_COMBOEDIT_USER = MM_EDIT_USER + 8; - PM_DROPDOWN = PM_EDIT_USER + 1; - PM_CLOSE_DROPDOWN = PM_EDIT_USER + 2; - PM_COMBOEDIT_USER = PM_EDIT_USER + 5; - -type - -{ TComboEditBase } - - // Base class for edit with the dropdown list. Provides action on a call popup - TComboEditBase = class(TCustomEdit) - public - constructor Create(AOwner: TComponent); override; - procedure DropDown; virtual; - /// This method trying to close the drop-down list - procedure CloseDropDown; - end; - -{ TComboEdit } - - TComboEditModel = class(TCustomEditModel) - public const - DefaultDropDownCount = 8; - DefaultItemHeight = 19; - DefaultDropDownKind = TDropDownKind.Native; - private - FItems: TStrings; - FNeedSetFocusAfterButtonClick: Boolean; - FDropDownCount: Integer; - FPlacement: TPlacement; - FItemHeight: Single; - FItemWidth: Single; - FDroppedDown: Boolean; - FDropDownKind: TDropDownKind; - FItemIndex: Integer; - FListBoxResource: string; - FOnPopup: TNotifyEvent; - FOnClosePopup: TNotifyEvent; - procedure DoItemsChanged(Sender: TObject); - procedure SetItemHeight(const Value: Single); - procedure SetItemWidth(const Value: Single); - function GetCount: Integer; - procedure SetItemIndex(const Value: Integer); - procedure SetDropDownCount(const Value: Integer); - procedure SetDropDownKind(const Value: TDropDownKind); - procedure SetListBoxResource(const Value: string); - protected - function GetTextSettingsClass: TTextSettingsInfo.TCustomTextSettingsClass; override; - function DoValidate(const Value: string): string; override; - public - constructor Create; override; - destructor Destroy; override; - property Count: Integer read GetCount; - property DropDownKind: TDropDownKind read FDropDownKind write SetDropDownKind; - property DroppedDown: Boolean read FDroppedDown write FDroppedDown; - property DropDownCount: Integer read FDropDownCount write SetDropDownCount; - property Items: TStrings read FItems; - property ItemIndex: Integer read FItemIndex write SetItemIndex; - property ItemHeight: Single read FItemHeight write SetItemHeight; - property ItemWidth: Single read FItemWidth write SetItemWidth; - property ListBoxResource: string read FListBoxResource write SetListBoxResource; - property NeedSetFocusAfterButtonClick: Boolean read FNeedSetFocusAfterButtonClick write FNeedSetFocusAfterButtonClick; - property Placement: TPlacement read FPlacement; - property OnClosePopup: TNotifyEvent read FOnClosePopup write FOnClosePopup; - property OnPopup: TNotifyEvent read FOnPopup write FOnPopup; - end; - - TCustomComboEdit = class(TComboEditBase) - private - function GetCount: Integer; - procedure SetItemIndex(const Value: Integer); - function GetItemIndex: Integer; - function GetDroppedDown: Boolean; - procedure SetDropDownCount(const Value: Integer); - function GetDropDownCount: Integer; - procedure SetDropDownKind(const Value: TDropDownKind); - function GetDropDownKind: TDropDownKind; - procedure SetListBoxResource(const Value: string); - function GetListBoxResource: string; - procedure SetItemHeight(const Value: Single); - function GetItemHeight: Single; - procedure SetItems(const Value: TStrings); - function GetItems: TStrings; - procedure SetItemWidth(const Value: Single); - function GetItemWidth: Single; - procedure SetOnClosePopup(const Value: TNotifyEvent); - function GetOnClosePopup: TNotifyEvent; - procedure SetOnPopup(const Value: TNotifyEvent); - function GetOnPopup: TNotifyEvent; - function GetModel: TComboEditModel; overload; - protected - function DefineModelClass: TDataModelClass; override; - function DefinePresentationName: string; override; - public - constructor Create(AOwner: TComponent); override; - procedure Clear; - property Action; - property Model: TComboEditModel read GetModel; - property DroppedDown: Boolean read GetDroppedDown; - property Count: Integer read GetCount; - property Font; - property TextAlign; - public - property DropDownCount: Integer read GetDropDownCount write SetDropDownCount; - property DropDownKind: TDropDownKind read GetDropDownKind write SetDropDownKind; - property ItemHeight: Single read GetItemHeight write SetItemHeight; - property ItemWidth: Single read GetItemWidth write SetItemWidth; - property Items: TStrings read GetItems write SetItems; - property ItemIndex: Integer read GetItemIndex write SetItemIndex; - property ListBoxResource: string read GetListBoxResource write SetListBoxResource; - property OnClosePopup: TNotifyEvent read GetOnClosePopup write SetOnClosePopup; - property OnPopup: TNotifyEvent read GetOnPopup write SetOnPopup; - end; - - TComboEdit = class(TCustomComboEdit) - published - property CanFocus default True; - property CanParentFocus; - property Cursor default crIBeam; - property DisableFocusEffect; - property DropDownCount default TComboEditModel.DefaultDropDownCount; - property DropDownKind default TComboEditModel.DefaultDropDownKind; - property KeyboardType; - property ReadOnly; - property ItemHeight; - property ItemWidth; - property Items; - property ItemIndex; - property ListBoxResource; - property Text; - property TextSettings; - property Position; - property Width; - property Height; - property HelpContext; - property HelpKeyword; - property HelpType; - property Hint; - property StyledSettings; - property StyleLookup; - property ClipChildren default False; - property ClipParent default False; - property DragMode default TDragMode.dmManual; - property EnableDragHighlight default True; - property Enabled default True; - property Locked default False; - property HitTest default True; - property Padding; - property Opacity; - property Margins; - property PopupMenu; - property RotationAngle; - property RotationCenter; - property Scale; - property Size; - property TouchTargetExpansion; - property Visible default True; - property Caret; - property KillFocusByReturn; - property ParentShowHint; - property ShowHint; - { events } - property OnChange; - property OnChangeTracking; - property OnTyping; - property OnApplyStyleLookup; - property OnClosePopup; - property OnPopup; - { Drag and Drop events } - property OnDragEnter; - property OnDragLeave; - property OnDragOver; - property OnDragDrop; - property OnDragEnd; - { Keyboard events } - property OnValidating; - property OnValidate; - property OnKeyDown; - property OnKeyUp; - { Mouse events } - property OnCanFocus; - property OnClick; - property OnDblClick; - property OnEnter; - property OnExit; - property OnMouseDown; - property OnMouseMove; - property OnMouseUp; - property OnMouseWheel; - property OnMouseEnter; - property OnMouseLeave; - property OnPainting; - property OnPaint; - property OnResize; - property OnResized; - property OnPresentationNameChoosing; - end; - -implementation - -uses - System.Types, System.SysUtils, System.Math, System.Math.Vectors, {$IFDEF MACOS}Macapi.CoreFoundation ,{$ENDIF} - FMX.Platform, FMX.ComboEdit.Style; - -{ TComboEditBase } - -constructor TComboEditBase.Create(AOwner: TComponent); -begin - inherited; - MinClipWidth := 14; - MinClipHeight := 14; -end; - -procedure TComboEditBase.DropDown; -begin - if HasPresentationProxy then - PresentationProxy.SendMessage(PM_DROPDOWN); -end; - -procedure TComboEditBase.CloseDropDown; -begin - if HasPresentationProxy then - PresentationProxy.SendMessage(PM_CLOSE_DROPDOWN); -end; - -{ TComboEdit } - -procedure TCustomComboEdit.Clear; -begin - Model.Items.Clear; -end; - -constructor TCustomComboEdit.Create(AOwner: TComponent); -begin - inherited; - Cursor := crIBeam; -end; - -function TCustomComboEdit.DefineModelClass: TDataModelClass; -begin - Result := TComboEditModel; -end; - -function TCustomComboEdit.DefinePresentationName: string; -begin - Result := 'ComboEdit-' + GetPresentationSuffix; -end; - -procedure TCustomComboEdit.SetDropDownCount(const Value: Integer); -begin - Model.DropDownCount := Value; -end; - -procedure TCustomComboEdit.SetDropDownKind(const Value: TDropDownKind); -begin - Model.DropDownKind := Value; -end; - -procedure TCustomComboEdit.SetItemHeight(const Value: Single); -begin - Model.ItemHeight := Value; -end; - -procedure TCustomComboEdit.SetItems(const Value: TStrings); -begin - Model.Items.Assign(Value); -end; - -procedure TCustomComboEdit.SetItemWidth(const Value: Single); -begin - Model.ItemWidth := Max(0, Value); -end; - -function TCustomComboEdit.GetItemHeight: Single; -begin - Result := Model.ItemHeight; -end; - -function TCustomComboEdit.GetItemIndex: Integer; -begin - Result := Model.ItemIndex; -end; - -function TCustomComboEdit.GetItems: TStrings; -begin - Result := Model.Items; -end; - -function TCustomComboEdit.GetItemWidth: Single; -begin - Result := Model.ItemWidth; -end; - -procedure TCustomComboEdit.SetItemIndex(const Value: Integer); -begin - Model.ItemIndex := Value; -end; - -function TCustomComboEdit.GetCount: Integer; -begin - Result := Model.Count; -end; - -function TCustomComboEdit.GetDropDownCount: Integer; -begin - Result := Model.DropDownCount; -end; - -function TCustomComboEdit.GetDropDownKind: TDropDownKind; -begin - Result := Model.DropDownKind; -end; - -function TCustomComboEdit.GetDroppedDown: Boolean; -begin - Result := Model.DroppedDown; -end; - -function TCustomComboEdit.GetListBoxResource: string; -begin - Result := Model.ListBoxResource; -end; - -function TCustomComboEdit.GetModel: TComboEditModel; -begin - Result := GetModel; -end; - -function TCustomComboEdit.GetOnClosePopup: TNotifyEvent; -begin - Result := Model.OnClosePopup; -end; - -function TCustomComboEdit.GetOnPopup: TNotifyEvent; -begin - Result := GetModel.OnPopup; -end; - -procedure TCustomComboEdit.SetListBoxResource(const Value: string); -begin - Model.ListBoxResource := Value; -end; - -procedure TCustomComboEdit.SetOnClosePopup(const Value: TNotifyEvent); -begin - Model.OnClosePopup := Value; -end; - -procedure TCustomComboEdit.SetOnPopup(const Value: TNotifyEvent); -begin - Model.OnPopup := Value; -end; - -type - TCustomEditBoxSettings = class(TTextSettingsInfo.TCustomTextSettings) - public - constructor Create(const AOwner: TPersistent); override; - published - property Font; - property FontColor; - property HorzAlign default TTextAlign.Leading; - property VertAlign default TTextAlign.Center; - end; - -{ TCustomEditBoxSettings } - -constructor TCustomEditBoxSettings.Create(const AOwner: TPersistent); -begin - inherited; - WordWrap := False; - HorzAlign := TTextAlign.Leading; - VertAlign := TTextAlign.Center; -end; - -{ TCustomComboEditModel } - -constructor TComboEditModel.Create; -begin - inherited; - FItems := TStringList.Create; - TStringList(FItems).CaseSensitive := True; - TStringList(FItems).OnChange := DoItemsChanged; - FDropDownKind := DefaultDropDownKind; - FDropDownCount := DefaultDropDownCount; - FItemHeight := DefaultItemHeight; - FItemWidth := 0; - FItemIndex := -1; - FDroppedDown := False; -end; - -destructor TComboEditModel.Destroy; -begin - FreeAndNil(FItems); - inherited; -end; - -procedure TComboEditModel.DoItemsChanged(Sender: TObject); -begin - SendMessage(MM_ITEMS_CHANGED); -end; - -function TComboEditModel.DoValidate(const Value: string): string; -var - SavedCaseSensitive: Boolean; -begin - Result := inherited DoValidate(Value); - // ComboEdit can include items with the same text values. In this case, when we validate new text value, it can - // potentially reset item index on the first matches. ItemIndex can be set from Presentation, when user select item - // in dropdown list. In this case we don't need to change ItemIndex value, if text was not really changed. - if Text <> Result then - ItemIndex := Items.IndexOf(Result); - // IndexOf uses case sensitive search. If we don't find nothing, we try to use case insensitive search. - if ItemIndex = -1 then - begin - SavedCaseSensitive := TStringList(FItems).CaseSensitive; - try - TStringList(FItems).CaseSensitive := False; - ItemIndex := Items.IndexOf(Result); - finally - TStringList(FItems).CaseSensitive := SavedCaseSensitive; - end; - end; -end; - -function TComboEditModel.GetCount: Integer; -begin - Result := FItems.Count; -end; - -function TComboEditModel.GetTextSettingsClass: TTextSettingsInfo.TCustomTextSettingsClass; -begin - Result := TCustomEditBoxSettings; -end; - -procedure TComboEditModel.SetDropDownCount(const Value: Integer); -begin - if FDropDownCount <> Value then - begin - FDropDownCount := Value; - SendMessage(MM_DROPDOWNCOUNT_CHANGED); - end; -end; - -procedure TComboEditModel.SetDropDownKind(const Value: TDropDownKind); -begin - if FDropDownKind <> Value then - begin - FDropDownKind := Value; - SendMessage(MM_DROPDOWNKIND_CHANGED); - end; -end; - -procedure TComboEditModel.SetItemHeight(const Value: Single); -begin - if not SameValue(FItemHeight, Value, TEpsilon.Vector) then - begin - FItemHeight := Value; - SendMessage(MM_ITEMHEIGHT_CHANGED); - end; -end; - -procedure TComboEditModel.SetItemIndex(const Value: Integer); -begin - if FItemIndex <> Value then - begin - FItemIndex := EnsureRange(Value, -1, Count - 1); - SendMessage(MM_ITEMINDEX_CHANGED); - end; -end; - -procedure TComboEditModel.SetItemWidth(const Value: Single); -begin - if not SameValue(FItemWidth, Value, TEpsilon.Vector) then - begin - FItemWidth := Value; - SendMessage(MM_ITEMWIDTH_CHANGED); - end; -end; - -procedure TComboEditModel.SetListBoxResource(const Value: string); -begin - if FListBoxResource <> Value then - begin - FListBoxResource := Value; - SendMessage(MM_LISTBOXRESOURCE_CHANGED); - end; -end; - -initialization - RegisterFmxClasses([TComboEdit]); -end. diff --git a/src/lib/FMX.Graphics.pas b/src/lib/FMX.Graphics.pas index 63db24a..c09addd 100644 --- a/src/lib/FMX.Graphics.pas +++ b/src/lib/FMX.Graphics.pas @@ -2,7 +2,7 @@ { } { Delphi FireMonkey Platform } { } -{ Copyright(c) 2011-2020 Embarcadero Technologies, Inc. } +{ Copyright(c) 2011-2021 Embarcadero Technologies, Inc. } { All rights reserved } { } {*******************************************************} @@ -1592,16 +1592,29 @@ function TGradient.Equal(const AGradient: TGradient): Boolean; I: Integer; begin Result := True; - if FPoints.Count <> AGradient.FPoints.Count then Exit(False); - if not SameValue(FStartPosition.X, AGradient.FStartPosition.X, TEpsilon.Position) then Exit(False); - if not SameValue(FStartPosition.Y, AGradient.FStartPosition.Y, TEpsilon.Position) then Exit(False); - if not SameValue(FStopPosition.X, AGradient.FStopPosition.X, TEpsilon.Position) then Exit(False); - if not SameValue(FStopPosition.Y, AGradient.FStopPosition.Y, TEpsilon.Position) then Exit(False); + if FPoints.Count <> AGradient.FPoints.Count then + Exit(False); + if not SameValue(FStartPosition.X, AGradient.FStartPosition.X, TEpsilon.Position) then + Exit(False); + if not SameValue(FStartPosition.Y, AGradient.FStartPosition.Y, TEpsilon.Position) then + Exit(False); + if not SameValue(FStopPosition.X, AGradient.FStopPosition.X, TEpsilon.Position) then + Exit(False); + if not SameValue(FStopPosition.Y, AGradient.FStopPosition.Y, TEpsilon.Position) then + Exit(False); for I := 0 to FPoints.Count - 1 do begin - if FPoints[I].Color <> AGradient.FPoints[I].Color then Exit(False); - if not SameValue(FPoints[I].Offset, AGradient.FPoints[I].Offset, TEpsilon.Position) then Exit(False); + if FPoints[I].Color <> AGradient.FPoints[I].Color then + Exit(False); + if not SameValue(FPoints[I].Offset, AGradient.FPoints[I].Offset, TEpsilon.Position) then + Exit(False); end; + { Radial gradient } + if not SameValue(RadialTransform.RotationAngle, AGradient.RadialTransform.RotationAngle, TEpsilon.Angle) then + Exit(False); + if not SameValue(RadialTransform.RotationCenter.X, AGradient.RadialTransform.RotationCenter.X, TEpsilon.Position) or + not SameValue(RadialTransform.RotationCenter.Y, AGradient.RadialTransform.RotationCenter.Y, TEpsilon.Position) then + Exit(False); end; procedure TGradient.Change; @@ -4259,7 +4272,7 @@ procedure TBitmap.SaveToFile(const AFileName: string; const SaveParams: PBitmapC try Surf.Assign(Self); if not TBitmapCodecManager.SaveToFile(AFileName, Surf, SaveParams) then - raise EBitmapSavingFailed.CreateFMT(SBitmapSavingFailed, [AFileName]); + raise EBitmapSavingFailed.CreateFMT(SBitmapSavingFailedNamed, [AFileName]); finally Surf.Free; end; diff --git a/src/lib/FMX.Platform.Win.pas b/src/lib/FMX.Platform.Win.pas index b2ce6a7..a42f3b0 100644 --- a/src/lib/FMX.Platform.Win.pas +++ b/src/lib/FMX.Platform.Win.pas @@ -2,7 +2,7 @@ { } { Delphi FireMonkey Platform } { } -{ Copyright(c) 2011-2020 Embarcadero Technologies, Inc. } +{ Copyright(c) 2011-2021 Embarcadero Technologies, Inc. } { All rights reserved } { } {*******************************************************} @@ -81,11 +81,15 @@ TWinWindowHandle = class(TWindowHandle) procedure CreateBuffer(const Width, Height: Integer); procedure ResizeBuffer(const Width, Height: Integer); procedure FreeBuffer; + /// Rounds physical window bounds to match scale and logical window bounds. procedure CorrectWindowSize(const WindowPos: PWindowPos); procedure ScaleChanged; procedure DpiChanged(const NewDpi: Integer); + /// Converts physical rect to logical. function WndToForm(const Rect: TRect): TRectF; overload; + /// Converts physical rect to logical. function WndToForm(const Rect: TRectF): TRectF; overload; + /// Converts logical rect to physical. function FormToWnd(const Rect: TRectF): TRectF; property Wnd: HWND read FWnd; property Form: TCommonCustomForm read FForm; @@ -95,11 +99,16 @@ TWinWindowHandle = class(TWindowHandle) property BufferSize: TSize read FBufferSize; property ZOrderManager: TWinZOrderManager read GetZOrderManager; property Transparency: Boolean read GetTransparency; + /// Logical form's client size. property ClientSize: TSize read GetClientSize write SetClientSize; property NearestIntegerMultiple: Integer read GetNearestIntegerMultiple; + /// Logical form bounds. property Bounds: TRect read GetBounds write SetBounds; + /// Logical form bounds. property BoundsF: TRectF read FBounds; + /// Physical form size. property WndClientSize: TSize read GetWndClientSize; + /// Physical form bounds. property WndBounds: TRect read GetWndBounds write SetWndBounds; end; @@ -126,10 +135,11 @@ procedure RegisterCorePlatformServices; procedure UnregisterCorePlatformServices; const - IDC_NODROP = PChar(32767); - IDC_DRAG = PChar(32766); - IDC_MULTIDRAG = PChar(32763); - IDC_SQLWAIT = PChar(32762); + // We cannot change constant values in update, however we reallocated resources. So new values are placed in the comments below. + IDC_NODROP = PChar(32767); // -> 32760 + IDC_DRAG = PChar(32766); // -> 32759 + IDC_MULTIDRAG = PChar(32763); // -> 32756 + IDC_SQLWAIT = PChar(32762); // -> 32755 type TApplicationHWNDProc = function: HWND; @@ -142,10 +152,9 @@ implementation {$SCOPEDENUMS OFF} - uses System.Messaging, System.IOUtils, Winapi.CommDlg, Winapi.Messages, Winapi.ShlObj, Winapi.MMSystem, Winapi.ShellAPI, - Winapi.MultiMon, Winapi.Imm, Winapi.UxTheme, System.Variants, System.SysUtils, System.Math, + Winapi.MultiMon, Winapi.Imm, Winapi.UxTheme, Winapi.ShellScaling, System.Variants, System.SysUtils, System.Math, System.Math.Vectors, System.StrUtils, System.DateUtils, System.RTLConsts, System.SyncObjs, System.Rtti, System.Devices, FMX.Consts, FMX.Menus, FMX.Helpers.Win, FMX.Printer, FMX.Printer.Win, FMX.Dialogs.Win, FMX.Canvas.GDIP, FMX.Canvas.D2D, FMX.Context.DX9, FMX.Context.DX11, FMX.Canvas.GPU, FMX.Forms.Border.Win, FMX.Controls.Win, FMX.Gestures.Win, @@ -154,7 +163,6 @@ implementation FMX.AcceleratorKey.Win; type - EUnavailableMenuId = class(Exception); TOpenMenuItem = class(TMenuItem); @@ -217,12 +225,6 @@ TDropSource = class(TComponent, IDataObject, IDropSource) end; type - TWin32TimerInfo = record - TimerID: UIntPtr; // the Windows timer ID for this timer - TimerHandle: TFmxHandle; // the unique FMX Handle for this timer - TimerFunc: TTimerProc; // owner function to handle timer - end; - { TPlatformWin } TFullScreenParams = record @@ -235,6 +237,10 @@ TFullScreenParams = record procedure Clean; end; + TFormInfo = class + WasLeftMouseButtonPressed: Boolean; + end; + TWinTimerService = class; TImmManager = class; @@ -268,8 +274,9 @@ TPlatformWin = class(TInterfacedObject, IFMXApplicationService, IFMXSystemFont FAcceleratorKeyRegistry: IFMXAcceleratorKeyRegistryService; FIsPostQuitMessage: Boolean; FTimerService: TWinTimerService; + FFormsInfo: TObjectDictionary; { IMM } - FImmManagers: TDictionary; + FImmManagers: TObjectDictionary; procedure ThreadSync(var Msg: TMessage); procedure WakeMainThread(Sender: TObject); function CreateAppHandle: HWND; @@ -314,6 +321,7 @@ TPlatformWin = class(TInterfacedObject, IFMXApplicationService, IFMXSystemFont /// Obtains the platform key from a given virtual key. function VirtualKeyToPlatformKey(const VirtualKey: Word): Word; function GetImmManager(const Index: TCommonCustomForm): TImmManager; + function GetFormInfo(const Index: TCommonCustomForm): TFormInfo; public constructor Create; destructor Destroy; override; @@ -411,6 +419,14 @@ TPlatformWin = class(TInterfacedObject, IFMXApplicationService, IFMXSystemFont property ImmManager[const Index: TCommonCustomForm]: TImmManager read GetImmManager; property TimerService: TWinTimerService read FTimerService; + /// Returns additional platform dependent data about fmx form. + property FormInfo[const Index: TCommonCustomForm]: TFormInfo read GetFormInfo; + end; + + TWin32TimerInfo = record + TimerID: UIntPtr; // the Windows timer ID for this timer + TimerHandle: TFmxHandle; // the unique FMX Handle for this timer + TimerFunc: TTimerProc; // owner function to handle timer end; TWinTimerService = class(TInterfacedObject, IFMXTimerService) @@ -544,31 +560,52 @@ TVirtualKeyboardWin = class(TInterfacedObject, IFMXVirtualKeyboardService) property WndClassName: string read FWndClassName write FWndClassName; end; +{ TMultiDisplayWin } + + TOrderedDictionary = class + private + FValues: TList; + FIndex: TDictionary; + function GetCount: Integer; + function GetValues(const AIndex: Integer): TValue; + public + constructor Create; + destructor Destroy; override; + procedure Add(const AKey: TKey; const AValue: TValue); + function TryGetValue(const AKey: TKey; out AValue: TValue): Boolean; + procedure Clear; + property Values[const AIndex: Integer]: TValue read GetValues; default; + property Count: Integer read GetCount; + end; + TMultiDisplayWin = class(TInterfacedObject, IFMXMultiDisplayService) private type - TDisplayWin = record - Display: TDisplay; - Handle: HMONITOR; - constructor Create(const AIndex: Integer; const APrimary: Boolean; const ABounds, AWorkArea: TRect; - const AHandle: HMONITOR); - end; + TParameter = (DisplayCount, Displays, WorkareaRect, DesktopRect); + TParameters = set of TParameter; private + FDisplays: TOrderedDictionary; FDisplayCount: Integer; FWorkAreaRect: TRect; FDesktopRect: TRect; - FDisplayList: TList; - function FindDisplay(const hm: HMONITOR): TDisplay; - procedure UpdateDisplays; + FOutdatedParameters: TParameters; + procedure AddDisplay(const AMonitorHandle: HMONITOR); + function FindDisplay(const AMonitorHandle: HMONITOR): TDisplay; + procedure UpdateDisplaysIfNeeded; + class function ScaleRect(const ARect: TRect; const AScale: Single): TRect; + class function GetMonitorScale(const AHandle: HMONITOR): Single; public + constructor Create; destructor Destroy; override; + + { IFMXMultiDisplayService } procedure UpdateDisplayInformation; function GetDisplayCount: Integer; function GetWorkAreaRect: TRect; function GetDesktopRect: TRect; - function GetDisplay(const Index: Integer): TDisplay; - function GetDesktopCenterRect(const Size: TSize): TRect; - function DisplayFromWindow(const Handle: TWindowHandle): TDisplay; - function DisplayFromPoint(const Handle: TWindowHandle; const Point: TPoint): TDisplay; + function GetDisplay(const AIndex: Integer): TDisplay; + function GetDesktopCenterRect(const ASize: TSize): TRect; + function DisplayFromWindow(const AHandle: TWindowHandle): TDisplay; + function DisplayFromPoint(const AHandle: TWindowHandle; const APoint: TPoint): TDisplay; end; TOpenForm = class(TCommonCustomForm); @@ -658,6 +695,15 @@ TTextServiceWin = class(TTextService) PlatformWin: TPlatformWin; CapturedGestureControl: TComponent; +procedure DisableProcessWindowsGhosting; +var + DisableProcessWindowsGhostingProc: procedure; +begin + DisableProcessWindowsGhostingProc := GetProcAddress(GetModuleHandle('user32.dll'), 'DisableProcessWindowsGhosting'); + if Assigned(DisableProcessWindowsGhostingProc) then + DisableProcessWindowsGhostingProc; +end; + procedure RegisterCorePlatformServices; begin PlatformWin := TPlatformWin.Create; @@ -694,6 +740,9 @@ procedure RegisterCorePlatformServices; MenuServiceWin := TMenuServiceWin.Create; TPlatformServices.Current.AddPlatformService(IFMXMenuService, MenuServiceWin); + + // If application becomes inactive while a modal dialog is opened it may hang, so we have to DisableProcessWindowsGhosting + DisableProcessWindowsGhosting; end; procedure UnregisterCorePlatformServices; @@ -754,12 +803,14 @@ constructor TPlatformWin.Create; FRunning := False; FImmManagers := TObjectDictionary.Create([doOwnsValues]); + FFormsInfo := TObjectDictionary.Create([doOwnsValues]); FTimerService := TWinTimerService.Create; end; destructor TPlatformWin.Destroy; begin TMessageManager.DefaultManager.Unsubscribe(TMainCaptionChangedMessage, FCaptionChangedId); + FreeAndNil(FFormsInfo); FreeAndNil(FImmManagers); FreeAndNil(Application); FInPaintUpdateRects.Free; @@ -1264,13 +1315,13 @@ procedure TWinWindowHandle.CorrectWindowSize(const WindowPos: PWindowPos); LClientRect, LWindowRect: TRect; FinalScale: TPointF; begin - GetClientRect(Wnd, LClientRect); + GetClientRect(Wnd, LClientRect); // dp ClientToScreen(Wnd, LClientRect.TopLeft); ClientToScreen(Wnd, LClientRect.BottomRight); - GetWindowRect(Wnd, LWindowRect); + GetWindowRect(Wnd, LWindowRect); // dp - WndClientOffset := (LClientRect.TopLeft - LWindowRect.TopLeft) + (LWindowRect.BottomRight - LClientRect.BottomRight); - WndClientSize := TSize.Create(WindowPos^.cx - WndClientOffset.X, WindowPos^.cy - WndClientOffset.Y); + WndClientOffset := (LClientRect.TopLeft - LWindowRect.TopLeft) + (LWindowRect.BottomRight - LClientRect.BottomRight); // dp + WndClientSize := TSize.Create(WindowPos^.cx - WndClientOffset.X, WindowPos^.cy - WndClientOffset.Y); // dp if SameValue(Frac(WndClientSize.Width / Scale), 0, TEpsilon.Scale) then FinalScale.X := Scale else @@ -1280,10 +1331,10 @@ procedure TWinWindowHandle.CorrectWindowSize(const WindowPos: PWindowPos); else FinalScale.Y := NearestIntegerMultiple; - LClientSize := TSizeF.Create(Round(WndClientSize.Width / FinalScale.X), Round(WndClientSize.Height / FinalScale.Y)); + LClientSize := TSizeF.Create(Round(WndClientSize.Width / FinalScale.X), Round(WndClientSize.Height / FinalScale.Y)); // dp - WindowPos^.cx := Round(LClientSize.Width * FinalScale.X) + WndClientOffset.X; - WindowPos^.cy := Round(LClientSize.Height * FinalScale.Y) + WndClientOffset.Y; + WindowPos^.cx := Round(LClientSize.Width * FinalScale.X) + WndClientOffset.X; // px + WindowPos^.cy := Round(LClientSize.Height * FinalScale.Y) + WndClientOffset.Y; // px end; class procedure TWinWindowHandle.SetForcedScale(NewScale: Single); @@ -1430,7 +1481,7 @@ procedure TWinWindowHandle.ResizeBuffer(const Width, Height: Integer); function TWinWindowHandle.GetClientSize: TSize; begin - Result := FClientSize.Round; + Result := FClientSize.Ceiling; end; function TWinWindowHandle.GetNearestIntegerMultiple: Integer; @@ -1465,10 +1516,10 @@ procedure TWinWindowHandle.SetWindowSizeByClientSize; procedure TWinWindowHandle.SetClientSize(const Value: TSize); begin - if FClientSize.Round <> Value then + if FClientSize.Ceiling <> Value then begin FWndClientSize := TSize.Create(Ceil(Value.Width * Scale), Ceil(Value.Height * Scale)); - FClientSize := TSizeF.Create(FWndClientSize.Width / Scale, FWndClientSize.Height / Scale); + FClientSize := Value; SetWindowSizeByClientSize; end; end; @@ -1482,12 +1533,13 @@ procedure TWinWindowHandle.SetBounds(const Value: TRect); var CurrentWndRect: TRect; begin - if FBounds.Round <> Value then + if FBounds.Ceiling <> Value then begin - FWndBounds := TRect.Create(Value.Left, Value.Top, Value.Left + Ceil(Value.Width * Scale), - Value.Top + Ceil(Value.Height * Scale)); - FBounds := TRectF.Create(FWndBounds.Left, FWndBounds.Top, FWndBounds.Left + FWndBounds.Width / Scale, - FWndBounds.Top + FWndBounds.Height / Scale); + FWndBounds.Left := Ceil(Value.Left * Scale); + FWndBounds.Top := Ceil(Value.Top * Scale); + FWndBounds.Width := Ceil(Value.Width * Scale); + FWndBounds.Height := Ceil(Value.Height * Scale); + FBounds := Value; GetWindowRect(Wnd, CurrentWndRect); if CurrentWndRect <> FWndBounds then SetWindowPos(Wnd, 0, FWndBounds.Left, FWndBounds.Top, FWndBounds.Width, FWndBounds.Height, @@ -1508,11 +1560,13 @@ procedure TWinWindowHandle.SetWndBounds(const Value: TRect); if FWndBounds <> Value then begin FWndBounds := Value; - FBounds := TRectF.Create(Value.Left, Value.Top, Value.Left + Value.Width / Scale, Value.Top + Value.Height / Scale); + FBounds.Left := Value.Left / Scale; + FBounds.Top := Value.Top / Scale; + FBounds.Width := Value.Width / Scale; + FBounds.Height := Value.Height / Scale; GetWindowRect(Wnd, CurrentWndRect); if CurrentWndRect <> Value then - SetWindowPos(Wnd, 0, Value.Left, Value.Top, Value.Width, Value.Height, - SWP_NOACTIVATE or SWP_NOZORDER); + SetWindowPos(Wnd, 0, Value.Left, Value.Top, Value.Width, Value.Height, SWP_NOACTIVATE or SWP_NOZORDER); UpdateClientSize; end; end; @@ -1629,6 +1683,7 @@ function WMPaint(HWND: HWND; uMsg: UINT; wParam: wParam; LPARAM: LPARAM): LRESUL LForm := FindWindow(HWND); if LForm <> nil then begin + LForm.Dispatch(Message); Wnd := FormToHWND(LForm); GetUpdateRect(Wnd, R, False); Region := CreateRectRgn(R.Left, R.Top, R.Right, R.Bottom); @@ -1933,8 +1988,6 @@ procedure HandleMouseGestures(const AForm: TCommonCustomForm; uMsg: UINT; const end; end; -// - type PDestroyChildData = ^TDestroyChildData; @@ -2061,6 +2114,8 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL P := TPoint.Create(Round(P.X / Handle.Scale), Round(P.Y / Handle.Scale)); end; +const + FlagZOrder: UINT = SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE; var R: TRect; P: TPoint; @@ -2077,9 +2132,6 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL MenuDisplayed: Boolean; OldWindowState: TWindowState; CharMsg, DeadCharMsg: UInt32; -const - FlagZOrder: UINT = SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE; - begin Result := 0; @@ -2095,7 +2147,6 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL if LForm <> nil then begin - LForm.Dispatch(Message); Wnd := FormToHWND(LForm); try InitialActionsOfPopups; @@ -2159,9 +2210,14 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL end; WM_DPICHANGED: begin + MultiDisplayWin.UpdateDisplayInformation; WindowHandleToPlatform(LForm.Handle).DpiChanged(HiWord(wParam)); Result := 0; end; + WM_DISPLAYCHANGE: + begin + MultiDisplayWin.UpdateDisplayInformation; + end; WM_ADDUPDATERECT: begin ProcessUpdateMessages; @@ -2195,11 +2251,8 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL end; if (not ((PWindowPos(lParam)^.Flags and SWP_NOSIZE) = SWP_NOSIZE)) then WindowHandleToPlatform(LForm.Handle).CorrectWindowSize(PWindowPos(lParam)); - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); if (TFmxFormState.InDesigner in LForm.FormState) and (TFmxFormState.WasNotShown in LForm.FormState) then - begin TOpenForm(LForm).ShowInDesigner; - end; end; WM_WINDOWPOSCHANGED: begin @@ -2264,6 +2317,7 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL LForm.Close; WM_LBUTTONDOWN: begin + PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := True; GetCursorPos(P); LastMousePos := ImpossibleMousePosition; ScaleMousePos(LForm.Handle, P); @@ -2272,13 +2326,34 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL end; WM_LBUTTONDBLCLK: begin + PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := True; GetCursorPos(P); LastMousePos := ImpossibleMousePosition; ScaleMousePos(LForm.Handle, P); LForm.MouseDown(TMouseButton.mbLeft, MouseToShiftState(wParam) + [ssDouble], P.X, P.Y); end; + WM_CANCELMODE: + begin + // If the user shows dialog from mouse down event, WinApi rejects MouseUp event from queue. In this case, + // Form.Captured control are not reset and we cannot complete click event correctly. As result button stay + // pressed. + // When modal dialog is appeared, WinApi sends WM_CANCELMODE message for rejecting other related events. + // We save this flag for future emulation MouseUp event, if it's required. + + // It's not Ok for FMX, because FMX depends on normal sequence of mouse events Down -> Up, so + // Form waits final MouseUp event. + // If we receive WM_CANCELMODE message while MouseDown is processed, we should emulate MouseUp event. + if PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed then + begin + GetCursorPos(P); + SendMessage(hwnd, WM_LBUTTONUP, 0, PointToLParam(P)); + end; + PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := False; + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; WM_LBUTTONUP: begin + PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := False; WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); if LForm.Border.IsSupported and WindowBorder.NCClick then Result := WMNCMessages(LForm, uMsg, wParam, lParam) @@ -2291,7 +2366,7 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL end; HandleMouseGestures(LForm, uMsg, P.X, P.Y); end; - WM_RBUTTONDOWN, WM_RBUTTONDBLCLK: + WM_RBUTTONDOWN, WM_RBUTTONDBLCLK: begin GetCursorPos(P); LastMousePos := ImpossibleMousePosition; @@ -2309,7 +2384,7 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL if uMsg = WM_RBUTTONDBLCLK then LForm.MouseDown(TMouseButton.mbRight, MouseToShiftState(wParam) + [ssDouble], P.X, P.Y) else - LForm.MouseDown(TMouseButton.mbRight, MouseToShiftState(wParam), P.X, P.Y); + LForm.MouseDown(TMouseButton.mbRight, MouseToShiftState(wParam), P.X, P.Y); end; end; WM_RBUTTONUP: @@ -2340,14 +2415,9 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL ScaleMousePos(LForm.Handle, P); LForm.MouseDown(TMouseButton.mbMiddle, MouseToShiftState(wParam) + [ssDouble], P.X, P.Y); end; - WM_MENUSELECT: - begin - MenuServiceWin.Dispatch(Message); - end; + WM_MENUSELECT, WM_INITMENUPOPUP: - begin MenuServiceWin.Dispatch(Message); - end; WM_MOUSEMOVE: begin WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); @@ -2813,6 +2883,7 @@ function TPlatformWin.CreateWindow(const AForm: TCommonCustomForm): TWindowHandl TWinWindowHandle(Result).FWinDropTarget := LDropTarget; FImmManagers.Add(AForm, TImmManager.Create(AForm)); + FFormsInfo.Add(AForm, TFormInfo.Create); end; function TPlatformWin.CreateWindowBorder(const AForm: TCommonCustomForm): TWindowBorder; @@ -2836,6 +2907,7 @@ procedure TPlatformWin.DestroyWindow(const AForm: TCommonCustomForm); Winapi.Windows.DestroyWindow(Wnd); FImmManagers.Remove(AForm); + FFormsInfo.Remove(AForm); end; procedure TPlatformWin.ReleaseWindow(const AForm: TCommonCustomForm); @@ -2956,7 +3028,7 @@ function TPlatformWin.GetWindowRect(const AForm: TCommonCustomForm): TRectF; RaiseIfNil(AForm, 'AForm'); if AForm.IsHandleAllocated then - Result := TRectF.Create(WindowHandleToPlatform(AForm.Handle).Bounds) + Result := WindowHandleToPlatform(AForm.Handle).Bounds else Result := TRectF.Create(0, 0, AForm.Width, AForm.Height); end; @@ -3062,7 +3134,7 @@ procedure TPlatformWin.SetClientSize(const AForm: TCommonCustomForm; const ASize RaiseIfNil(AForm, 'AForm'); if AForm.IsHandleAllocated then - WindowHandleToPlatform(AForm.Handle).ClientSize := TSizeF.Create(ASize).Round; + WindowHandleToPlatform(AForm.Handle).ClientSize := TSizeF.Create(ASize).Ceiling; end; procedure TPlatformWin.HideWindow(const AForm: TCommonCustomForm); @@ -3257,23 +3329,27 @@ function TPlatformWin.CanShowModal: Boolean; function TPlatformWin.ClientToScreen(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; var P: TPoint; + Scale: Single; begin RaiseIfNil(AForm, 'AForm'); - P := (Point * WindowHandleToPlatform(AForm.Handle).Scale).Round; + Scale := WindowHandleToPlatform(AForm.Handle).Scale; + P := (Point * Scale).Round; Winapi.Windows.ClientToScreen(FormToHWND(AForm), P); - Result := TPointF.Create(P); + Result := TPointF.Create(P) / Scale; end; function TPlatformWin.ScreenToClient(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; var P: TPoint; + Scale: Single; begin RaiseIfNil(AForm, 'AForm'); - P := Point.Round; + Scale := WindowHandleToPlatform(AForm.Handle).Scale; + P := (Point * Scale).Round; Winapi.Windows.ScreenToClient(FormToHWND(AForm), P); - Result := TPointF.Create(P) / WindowHandleToPlatform(AForm.Handle).Scale; + Result := TPointF.Create(P) / Scale; end; { Menus } @@ -3300,26 +3376,48 @@ procedure TPlatformWin.RemoveRecognizer(const ARec: TInteractiveGesture; const A end; procedure TPlatformWin.RestoreApp; + + function TryFindForm(const AFormHandle: HWND; out AForm: TCommonCustomForm): Boolean; + var + I: Integer; + Form: TCommonCustomForm; + begin + for I := 0 to Screen.FormCount - 1 do + begin + Form := Screen.Forms[I]; + if FormToHWND(Form) = AFormHandle then + begin + AForm := Form; + Exit(True); + end; + end; + Result := False; + end; + var - I: Integer; LWND: HWND; + Form: TCommonCustomForm; begin - if Screen <> nil then - if Screen.ActiveForm <> nil then - Screen.ActiveForm.Activate - else + if Screen = nil then + Exit; + + if Screen.ActiveForm <> nil then + Screen.ActiveForm.Activate + else + begin + LWND := GetActiveWindow; + if LWND <> 0 then begin - LWND := GetActiveWindow; - if LWND <> 0 then - for I := 0 to Screen.FormCount - 1 do - if FormToHWND(Screen.Forms[I]) = LWND then - begin - Screen.Forms[I].Activate; - Exit; - end; - if Application.MainForm <> nil then - Application.MainForm.Activate; + if TryFindForm(LWND, Form) then + Form.Activate + else + SetActiveWindow(LWND); + Exit; end; + + if Application.MainForm <> nil then + Application.MainForm.Activate; + end; end; procedure TPlatformWin.HookTouchHandler(const AForm: TCommonCustomForm); @@ -3945,7 +4043,7 @@ procedure TPlatformWin.BeginDragDrop(AForm: TCommonCustomForm; const Data: TDrag procedure TPlatformWin.SetCursor(const ACursor: TCursor); const CustomCursorMap: array [crSizeAll .. crNone] of PChar = ( - nil, nil, nil, nil, nil, IDC_SQLWAIT, IDC_MULTIDRAG, nil, nil, IDC_NODROP, IDC_DRAG, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, { IDC_SQLWAIT } PChar(32755), { IDC_MULTIDRAG } PChar(32756), nil, nil, { IDC_NODROP } PChar(32760), { IDC_DRAG } PChar(32759), nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil); const CursorMap: array [crSizeAll .. crNone] of PChar = ( @@ -3992,8 +4090,7 @@ function TPlatformWin.GetImmManager(const Index: TCommonCustomForm): TImmManager Result := FImmManagers[Index]; end; -procedure TPlatformWin.SetFullScreen(const AForm: TCommonCustomForm; - const AValue: Boolean); +procedure TPlatformWin.SetFullScreen(const AForm: TCommonCustomForm; const AValue: Boolean); var LFSParam: TFullScreenParams; LClean: TFullScreenParams; @@ -4041,9 +4138,11 @@ procedure TPlatformWin.SetShowFullScreenIcon(const AForm: TCommonCustomForm; con function TPlatformWin.GetMousePos: TPointF; var P: TPoint; + Scale: Single; begin GetCursorPos(P); - Result := PointF(P.X, P.Y); + Scale := GetScreenScale; + Result := TPoint.Create(Round(P.X / Scale), Round(P.Y / Scale)); end; { Screen } @@ -4051,9 +4150,11 @@ function TPlatformWin.GetMousePos: TPointF; function TPlatformWin.GetScreenSize: TPointF; var WR: TRect; + Scale: Single; begin Winapi.Windows.GetWindowRect(GetDesktopWindow, WR); - Result := PointF(WR.Right, WR.Bottom); + Scale := GetScreenScale; + Result := PointF(WR.Width / Scale, WR.Height / Scale); end; function TPlatformWin.GetScreenScale: Single; @@ -4104,6 +4205,11 @@ function TPlatformWin.GetFirstWeekday: Byte; Result := DayMonday; end; +function TPlatformWin.GetFormInfo(const Index: TCommonCustomForm): TFormInfo; +begin + Result := FFormsInfo[Index]; +end; + function TPlatformWin.GetModel: string; begin Result := ''; @@ -4853,31 +4959,121 @@ function TVirtualKeyboardWin.vkbState: TvkbState; FLastTime := Now; end; -{ TMultiDisplayWin.TDisplayWin } +{ TOrderedDictionary } + +procedure TOrderedDictionary.Add(const AKey: TKey; const AValue: TValue); +var + Index: Integer; +begin + Index := FValues.Add(AValue); + FIndex.Add(AKey, Index); +end; -constructor TMultiDisplayWin.TDisplayWin.Create(const AIndex: Integer; const APrimary: Boolean; const ABounds, - AWorkArea: TRect; const AHandle: HMONITOR); +procedure TOrderedDictionary.Clear; begin - Display := TDisplay.Create(AIndex, APrimary, ABounds, AWorkArea); - Handle := AHandle; + FValues.Clear; + FIndex.Clear; +end; + +constructor TOrderedDictionary.Create; +begin + FValues := TList.Create; + FIndex := TDictionary.Create; +end; + +destructor TOrderedDictionary.Destroy; +begin + FreeAndNil(FIndex); + FreeAndNil(FValues); + inherited; +end; + +function TOrderedDictionary.GetCount: Integer; +begin + Result := FValues.Count; +end; + +function TOrderedDictionary.GetValues(const AIndex: Integer): TValue; +begin + Result := FValues[AIndex]; +end; + +function TOrderedDictionary.TryGetValue(const AKey: TKey; out AValue: TValue): Boolean; +var + Index: Integer; +begin + Result := FIndex.TryGetValue(AKey, Index); + if Result then + AValue := FValues[Index]; end; { TMultiDisplayWin } +procedure TMultiDisplayWin.AddDisplay(const AMonitorHandle: HMONITOR); +var + MonInfo: TMonitorInfo; + Scale: Single; + IsPrimary: Boolean; + Bounds: TRect; + WorkArea: TRect; + Display: TDisplay; +begin + MonInfo.cbSize := SizeOf(MonInfo); + if GetMonitorInfo(AMonitorHandle, @MonInfo) then + begin + Scale := GetMonitorScale(AMonitorHandle); + IsPrimary := (MonInfo.dwFlags and MONITORINFOF_PRIMARY) <> 0; + Bounds := TMultiDisplayWin.ScaleRect(MonInfo.rcMonitor, Scale); // dp + WorkArea := TMultiDisplayWin.ScaleRect(MonInfo.rcWork, Scale); // dp + Display := TDisplay.Create(FDisplays.Count, IsPrimary, Bounds, WorkArea); + + FDisplays.Add(AMonitorHandle, Display); + end; +end; + +constructor TMultiDisplayWin.Create; +begin + FDisplays := TOrderedDictionary.Create; + FWorkAreaRect := TRect.Empty; + FDesktopRect := TRect.Empty; + FOutdatedParameters := [Low(TParameter)..High(TParameter)]; +end; + destructor TMultiDisplayWin.Destroy; begin - FDisplayList.Free; + FreeAndNil(FDisplays); inherited; end; function TMultiDisplayWin.GetDisplayCount: Integer; begin - if FDisplayCount <= 0 then + if TParameter.DisplayCount in FOutdatedParameters then + begin FDisplayCount := GetSystemMetrics(SM_CMONITORS); + Exclude(FOutdatedParameters, TParameter.DisplayCount); + end; Result := FDisplayCount; end; -function TMultiDisplayWin.GetDesktopCenterRect(const Size: TSize): TRect; +class function TMultiDisplayWin.GetMonitorScale(const AHandle: HMONITOR): Single; +const + StandardDpi = 96; +var + DpiX, DpiY: Cardinal; +begin + if TOSVersion.Check(6, 3) then + begin + if GetDPIForMonitor(AHandle, MDT_Default, DpiX, DpiY) = S_OK then + Result := DpiX / StandardDpi + else + Result := 1; + end + else + Result := 1; +end; + +function TMultiDisplayWin.GetDesktopCenterRect(const ASize: TSize): TRect; + function PointOutOfDisplay(const P: TPoint): Boolean; var I: Integer; @@ -4887,6 +5083,7 @@ function TMultiDisplayWin.GetDesktopCenterRect(const Size: TSize): TRect; Exit(False); Result := True; end; + function CornerOutOfDisplay(const R: TRect): Boolean; begin Result := PointOutOfDisplay(R.TopLeft) or PointOutOfDisplay(TPoint.Create(R.Right, R.Top)) or @@ -4900,8 +5097,7 @@ function TMultiDisplayWin.GetDesktopCenterRect(const Size: TSize): TRect; WorkArea: TRect; begin DesktopCenter := GetDesktopRect.CenterPoint; - Result := TRect.Create(TPoint.Create(DesktopCenter.X - Size.cx div 2, DesktopCenter.Y - Size.cy div 2), Size.cx, - Size.cy); + Result := TRect.Create(TPoint.Create(DesktopCenter.X - ASize.cx div 2, DesktopCenter.Y - ASize.cy div 2), ASize.cx, ASize.cy); MinDist := MaxInt; MinI := -1; @@ -4933,55 +5129,44 @@ function TMultiDisplayWin.GetDesktopCenterRect(const Size: TSize): TRect; function TMultiDisplayWin.GetDesktopRect: TRect; begin - if (FDesktopRect.Width <= 0) or (FDesktopRect.Height <= 0) then - FDesktopRect := TRect.Create(TPoint.Create(GetSystemMetrics(SM_XVIRTUALSCREEN), - GetSystemMetrics(SM_YVIRTUALSCREEN)), GetSystemMetrics(SM_CXVIRTUALSCREEN), GetSystemMetrics(SM_CYVIRTUALSCREEN)); + if TParameter.DesktopRect in FOutdatedParameters then + begin + FDesktopRect.Left := GetSystemMetrics(SM_XVIRTUALSCREEN); + FDesktopRect.Top := GetSystemMetrics(SM_YVIRTUALSCREEN); + FDesktopRect.Width := GetSystemMetrics(SM_CXVIRTUALSCREEN); + FDesktopRect.Height := GetSystemMetrics(SM_CYVIRTUALSCREEN); + Exclude(FOutdatedParameters, TParameter.DesktopRect); + end; + Result := FDesktopRect; end; function TMultiDisplayWin.GetWorkAreaRect: TRect; begin - if (FWorkAreaRect.Width <= 0) or (FWorkAreaRect.Height <= 0) then - if not SystemParametersInfo(SPI_GETWORKAREA, 0, FWorkAreaRect, 0) then - FWorkAreaRect := TRect.Empty; + if (TParameter.WorkareaRect in FOutdatedParameters) and SystemParametersInfo(SPI_GETWORKAREA, 0, FWorkAreaRect, 0) then + Exclude(FOutdatedParameters, TParameter.WorkareaRect); Result := FWorkAreaRect; end; -procedure TMultiDisplayWin.UpdateDisplayInformation; +class function TMultiDisplayWin.ScaleRect(const ARect: TRect; const AScale: Single): TRect; begin - FDisplayCount := 0; - FDesktopRect := TRect.Empty; - FWorkAreaRect := TRect.Empty; - FreeAndNil(FDisplayList); + Result.Left := Round(ARect.Left / AScale); + Result.Right := Round(ARect.Right / AScale); + Result.Top := Round(ARect.Top / AScale); + Result.Bottom := Round(ARect.Bottom / AScale); end; -function TMultiDisplayWin.FindDisplay(const hm: HMONITOR): TDisplay; - function DoFind(const Handle: HMONITOR): Integer; - var - I: Integer; - begin - Result := -1; - if FDisplayList <> nil then - for I := 0 to FDisplayList.Count - 1 do - if Handle = FDisplayList[I].Handle then - Exit(I); - end; +procedure TMultiDisplayWin.UpdateDisplayInformation; +begin + FOutdatedParameters := [Low(TParameter)..High(TParameter)]; +end; -var - Index: Integer; +function TMultiDisplayWin.FindDisplay(const AMonitorHandle: HMONITOR): TDisplay; begin - if Screen = nil then - raise EInvalidFmxHandle.Create(sArgumentInvalid); - Index := DoFind(hm); - if Index = -1 then - begin - UpdateDisplays; - Index := DoFind(hm); - end; - if Index = -1 then + UpdateDisplaysIfNeeded; + + if not FDisplays.TryGetValue(AMonitorHandle, Result) then raise EInvalidArgument.Create(sArgumentInvalid) - else - Result := FDisplayList[Index].Display; end; function IsPopupForm(const AForm: TCommonCustomForm): Boolean; @@ -4989,7 +5174,7 @@ function IsPopupForm(const AForm: TCommonCustomForm): Boolean; Result := (AForm <> nil) and ((AForm.FormStyle = TFormStyle.Popup) or (AForm.Owner is TPopup) or (AForm is TCustomPopupForm)); end; -function TMultiDisplayWin.DisplayFromWindow(const Handle: TWindowHandle): TDisplay; +function TMultiDisplayWin.DisplayFromWindow(const AHandle: TWindowHandle): TDisplay; var Wnd: TWinWindowHandle; Form, ParentForm: TCommonCustomForm; @@ -4997,10 +5182,11 @@ function TMultiDisplayWin.DisplayFromWindow(const Handle: TWindowHandle): TDispl Control: TControl; P: TPointF; ScreenPosition: TPoint; + Scene: IScene; begin - if Handle = nil then - raise EArgumentNilException.Create(SArgumentNil); - Wnd := WindowHandleToPlatform(Handle); + RaiseIfNil(AHandle, 'AHandle'); + + Wnd := WindowHandleToPlatform(AHandle); Form := FindWindow(Wnd.Wnd); ParentControl := nil; if IsPopupForm(Form) then @@ -5036,11 +5222,8 @@ function TMultiDisplayWin.DisplayFromWindow(const Handle: TWindowHandle): TDispl Control := TControl(ParentControl); P := Control.Padding.Rect.TopLeft; P := Control.LocalToAbsolute(P); - if Control.Root.GetObject is TCommonCustomForm then - begin - ParentForm := TCommonCustomForm(Control.Root.GetObject); - P := ParentForm.ClientToScreen(P); - end; + if Supports(Control.Root.GetObject, IScene, Scene) then + P := Scene.LocalToScreen(P); P.Offset((Control.Width - Control.Padding.Right) / 2, (Control.Height - Control.Padding.Bottom) / 2); ScreenPosition := TPoint.Create(Round(P.X), Round(P.Y)); Result := FindDisplay(Winapi.MultiMon.MonitorFromPoint(ScreenPosition, MONITOR_DEFAULTTONEAREST)); @@ -5054,7 +5237,7 @@ function TMultiDisplayWin.DisplayFromWindow(const Handle: TWindowHandle): TDispl Result := FindDisplay(Winapi.MultiMon.MonitorFromWindow(Wnd.Wnd, MONITOR_DEFAULTTONEAREST)); end; -function TMultiDisplayWin.DisplayFromPoint(const Handle: TWindowHandle; const Point: TPoint): TDisplay; +function TMultiDisplayWin.DisplayFromPoint(const AHandle: TWindowHandle; const APoint: TPoint): TDisplay; var Wnd: TWinWindowHandle; Form: TCommonCustomForm; @@ -5062,20 +5245,20 @@ function TMultiDisplayWin.DisplayFromPoint(const Handle: TWindowHandle; const Po PointF: TPointF; ScreenPosition: TPoint; begin - if Handle = nil then - raise EArgumentNilException.Create(SArgumentNil); - Wnd := WindowHandleToPlatform(Handle); + RaiseIfNil(AHandle, 'AHandle'); + + Wnd := WindowHandleToPlatform(AHandle); if (Wnd = nil) or (Wnd.Wnd = 0) then raise EArgumentException.Create(sArgumentInvalid); Form := FindWindow(Wnd.Wnd); if not IsPopupForm(Form) then begin - PointF := TPointF.Create(Point); + PointF := TPointF.Create(APoint); ScreenPosition := Form.ClientToScreen(PointF).Round; DispByPoint := FindDisplay(Winapi.MultiMon.MonitorFromPoint(ScreenPosition, MONITOR_DEFAULTTONEAREST)); if (GetKeyState(VK_RBUTTON) <> 0) or (GetKeyState(VK_LBUTTON) <> 0) or (GetKeyState(VK_MBUTTON) <> 0) then begin - Result := DisplayFromWindow(Handle); + Result := DisplayFromWindow(AHandle); GetCursorPos(ScreenPosition); DispByMouse := FindDisplay(Winapi.MultiMon.MonitorFromPoint(ScreenPosition, MONITOR_DEFAULTTONEAREST)); if DispByMouse.Index <> Result.Index then @@ -5087,45 +5270,35 @@ function TMultiDisplayWin.DisplayFromPoint(const Handle: TWindowHandle; const Po else if Form.Visible and (Form is TCustomPopupForm) then Result := FindDisplay(Winapi.MultiMon.MonitorFromWindow(Wnd.Wnd, MONITOR_DEFAULTTONEAREST)) else - Result := DisplayFromWindow(Handle); + Result := DisplayFromWindow(AHandle); end; function EnumMonitorsProc(hm: HMONITOR; dc: HDC; R: PRect; Data: Pointer): Boolean; stdcall; var Sender: TMultiDisplayWin; - MonInfo: TMonitorInfo; begin Sender := TMultiDisplayWin(Data); - MonInfo.cbSize := SizeOf(MonInfo); - if GetMonitorInfo(hm, @MonInfo) then - begin - if Sender.FDisplayList = nil then - Sender.FDisplayList := TList.Create; - Sender.FDisplayList.Add(TMultiDisplayWin.TDisplayWin.Create(Sender.FDisplayList.Count, - (MonInfo.dwFlags and MONITORINFOF_PRIMARY) <> 0, MonInfo.rcMonitor, MonInfo.rcWork, hm)); - end; + Sender.AddDisplay(hm); Result := True; end; -procedure TMultiDisplayWin.UpdateDisplays; +procedure TMultiDisplayWin.UpdateDisplaysIfNeeded; begin - UpdateDisplayInformation; - EnumDisplayMonitors(0, nil, @EnumMonitorsProc, Winapi.Windows.LPARAM(Self)); - if FDisplayList <> nil then - FDisplayCount := FDisplayList.Count - else - FDisplayCount := 0; + if TParameter.Displays in FOutdatedParameters then + begin + FDisplays.Clear; + EnumDisplayMonitors(0, nil, @EnumMonitorsProc, Winapi.Windows.LPARAM(Self)); + Exclude(FOutdatedParameters, TParameter.Displays); + end; end; -function TMultiDisplayWin.GetDisplay(const Index: Integer): TDisplay; +function TMultiDisplayWin.GetDisplay(const AIndex: Integer): TDisplay; begin - if Index < 0 then - raise EListError.CreateFMT(SListIndexError, [Index]); - if (FDisplayList = nil) or (FDisplayList.Count <> GetDisplayCount) then - UpdateDisplays; - if Index >= GetDisplayCount then - raise EListError.CreateFMT(SListIndexError, [Index]); - Result := FDisplayList[Index].Display; + UpdateDisplaysIfNeeded; + + if (AIndex < 0) or (AIndex >= GetDisplayCount) then + raise EListError.CreateFMT(SListIndexError, [AIndex]); + Result := FDisplays[AIndex]; end; { TFullScreenParams } @@ -5817,6 +5990,29 @@ procedure TMenuLooperWin.StartLoop(const AView: IMenuView); end; end; + function GetDpMousePos(const AView: IMenuView; const AMsg: TMsg): TPointF; + var + WP: TPoint; + Form: TCommonCustomForm; + Scale: Single; + begin + // WP is client point in Native window in px. + {$IFDEF CPUX64} + WP := SmallPointToPoint(TSmallPoint(Cardinal(AMsg.LPARAM))); // px + {$ELSE} + WP := SmallPointToPoint(TSmallPoint(AMsg.LPARAM)); // px + {$ENDIF} + Winapi.Windows.ClientToScreen(AMsg.HWND, WP); + if AView.GetObject.Root.GetObject is TCommonCustomForm then + begin + Form := TCommonCustomForm(AView.GetObject.Root.GetObject); + Scale := Form.Handle.Scale; + Result := TPoint.Create(Round(WP.X / Scale), Round(WP.Y / Scale)); + end + else + Result := WP; + end; + var Msg: TMsg; WP: TPoint; @@ -5870,12 +6066,7 @@ procedure TMenuLooperWin.StartLoop(const AView: IMenuView); WM_NCMOUSEMOVE: begin { Handle MouseOver } -{$IFDEF CPUX64} - WP := SmallPointToPoint(TSmallPoint(Cardinal(Msg.LPARAM))); -{$ELSE} - WP := SmallPointToPoint(TSmallPoint(Msg.LPARAM)); -{$ENDIF} - P := PointF(WP.X, WP.Y); + P := GetDpMousePos(AView, Msg); // dp Obj := AView.ObjectAtPoint(P); TranslateMessage(Msg); DispatchMessage(Msg); @@ -5887,8 +6078,7 @@ procedure TMenuLooperWin.StartLoop(const AView: IMenuView); while CurrentView <> nil do begin Obj := CurrentView.ObjectAtPoint(P); - if (Obj <> nil) and (Obj.GetObject is TMenuItem) and not (TMenuItem(Obj.GetObject).IsSelected) - then + if (Obj <> nil) and (Obj.GetObject is TMenuItem) and not (TMenuItem(Obj.GetObject).IsSelected) then begin if (CurrentView <> AView) then begin @@ -5909,12 +6099,7 @@ procedure TMenuLooperWin.StartLoop(const AView: IMenuView); WM_NCLBUTTONDOWN, WM_NCRBUTTONDOWN: begin { Handle MouseOver if mouse over not menuitem } -{$IFDEF CPUX64} - WP := SmallPointToPoint(TSmallPoint(Cardinal(Msg.LPARAM))); -{$ELSE} - WP := SmallPointToPoint(TSmallPoint(Msg.LPARAM)); -{$ENDIF} - P := PointF(WP.X, WP.Y); + P := GetDpMousePos(AView, Msg); // dp Obj := AView.ObjectAtPoint(P); if (Obj <> nil) and not (Obj is TMenuItem) then begin @@ -5951,12 +6136,7 @@ procedure TMenuLooperWin.StartLoop(const AView: IMenuView); WM_NCLBUTTONUP: begin { Handle MouseOver if mouse over not menuitem } -{$IFDEF CPUX64} - WP := SmallPointToPoint(TSmallPoint(Cardinal(Msg.LPARAM))); -{$ELSE} - WP := SmallPointToPoint(TSmallPoint(Msg.LPARAM)); -{$ENDIF} - P := PointF(WP.X, WP.Y); + P := GetDpMousePos(AView, Msg); // dp Obj := AView.ObjectAtPoint(P); if (Obj <> nil) and not (Obj is TMenuItem) then begin @@ -5985,7 +6165,7 @@ procedure TMenuLooperWin.StartLoop(const AView: IMenuView); end; WM_LBUTTONDOWN, WM_RBUTTONDOWN: begin - P := PointF(WP.X, WP.Y); + P := GetDpMousePos(AView, Msg); // dp Obj := AView.ObjectAtPoint(P); if (Obj <> nil) and not (Obj is TMenuItem) then begin @@ -6031,7 +6211,7 @@ procedure TMenuLooperWin.StartLoop(const AView: IMenuView); end; WM_LBUTTONUP, WM_RBUTTONUP: begin - P := PointF(WP.X, WP.Y); + P := GetDpMousePos(AView, Msg); // dp Obj := AView.ObjectAtPoint(P); if (Obj <> nil) and not (Obj is TMenuItem) then begin @@ -6462,4 +6642,4 @@ initialization OleInitialize(nil); CapturedGestureControl := nil; LastMousePos := ImpossibleMousePosition; -end. +end. \ No newline at end of file diff --git a/src/lib/FMX.TreeView.pas b/src/lib/FMX.TreeView.pas index 0b1faae..053a550 100644 --- a/src/lib/FMX.TreeView.pas +++ b/src/lib/FMX.TreeView.pas @@ -2,7 +2,7 @@ { } { Delphi FireMonkey Platform } { } -{ Copyright(c) 2011-2020 Embarcadero Technologies, Inc. } +{ Copyright(c) 2011-2021 Embarcadero Technologies, Inc. } { All rights reserved } { } {*******************************************************} @@ -2196,9 +2196,12 @@ procedure TCustomTreeView.MouseDown(Button: TMouseButton; Shift: TShiftState; X, var P: TPointF; + IsMouseInContent: Boolean; begin - inherited MouseDown(Button, Shift, X, Y); - if MouseInContentLayout(X, Y) then + // It's important to make selection before base mouse down processing. Because developer can remove nodes from this + // event handler. In this case, if he removes selected items, new node on old place will be repeatedly selected again. + IsMouseInContent := MouseInContentLayout(X, Y); + if IsMouseInContent then begin // Making selection of Items if Button = TMouseButton.mbLeft then @@ -2209,12 +2212,15 @@ procedure TCustomTreeView.MouseDown(Button: TMouseButton; Shift: TShiftState; X, TryMakeSingleSelectAndStartDrag; FMouseSelecting := True; end; - // Transfer Click to Hovered Item - if HoveredItem <> nil then - begin - P := LocalPointToHoveredItemLocalPoint(X, Y); - HoveredItem.MouseDown(Button, Shift, P.X, P.Y); - end; + end; + + inherited MouseDown(Button, Shift, X, Y); + + // Transfer Click to Hovered Item + if IsMouseInContent and (HoveredItem <> nil) then + begin + P := LocalPointToHoveredItemLocalPoint(X, Y); + HoveredItem.MouseDown(Button, Shift, P.X, P.Y); end; end; diff --git a/src/lib/MacApi.Dialogs.pas b/src/lib/MacApi.Dialogs.pas index 019fa57..8410843 100644 --- a/src/lib/MacApi.Dialogs.pas +++ b/src/lib/MacApi.Dialogs.pas @@ -180,6 +180,7 @@ function InvokeNSOpenPanel(const Title: String; const InitialDir: String; OpenPanel.retain; try + IResult := OpenPanel.runModal; if IResult = NSOKButton then ADir := NSStrToStr(TNSUrl.Wrap(OpenPanel.URLs.objectAtIndex(0)).relativePath); diff --git a/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style b/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style index 7ddcb91..4df3174 100644 --- a/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style +++ b/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style @@ -1218,7 +1218,7 @@ object TStyleContainer StyleName = 'spinboxstyle' Align = Center Size.Width = 112.199996948242200000 - Size.Height = 21.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False TabOrder = 22 @@ -1227,7 +1227,7 @@ object TStyleContainer Align = Contents Fill.Color = xFF202020 Size.Width = 112.199996948242200000 - Size.Height = 21.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 XRadius = 3.000000000000000000 @@ -1259,13 +1259,13 @@ object TStyleContainer Margins.Top = 2.000000000000000000 Margins.Right = 2.000000000000000000 Margins.Bottom = 2.000000000000000000 - Size.Width = 66.200073242187500000 - Size.Height = 17.000000000000000000 + Size.Width = 60.200042724609380000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False end object TButton StyleName = 'minusbutton' - Align = FitLeft + Align = Left CanFocus = False Cursor = crArrow Margins.Left = 2.000000000000000000 @@ -1274,55 +1274,47 @@ object TStyleContainer Margins.Bottom = 2.000000000000000000 Position.X = 2.000000000000000000 Position.Y = 2.000000000000000000 - Size.Width = 16.999954223632810000 - Size.Height = 17.000000000000000000 + Size.Width = 20.000000000000000000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False StyleLookup = 'buttonstyle' object TPath - Align = Client + Align = Center Data.Path = { 05000000000000000000803F00000000010000000000803F0000803F01000000 000000000000003F010000000000803F00000000030000000000803F00000000} Fill.Color = claWhite HitTest = False - Margins.Left = 6.000000000000000000 - Margins.Top = 6.000000000000000000 - Margins.Right = 6.000000000000000000 - Margins.Bottom = 6.000000000000000000 - Size.Width = 4.999954223632813000 - Size.Height = 5.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end end object TButton StyleName = 'plusbutton' - Align = FitRight + Align = Right CanFocus = False Cursor = crArrow Margins.Left = 2.000000000000000000 Margins.Top = 2.000000000000000000 Margins.Right = 2.000000000000000000 Margins.Bottom = 2.000000000000000000 - Position.X = 93.200027465820310000 + Position.X = 90.200042724609380000 Position.Y = 2.000000000000000000 - Size.Width = 16.999969482421880000 - Size.Height = 17.000000000000000000 + Size.Width = 19.999954223632810000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False StyleLookup = 'buttonstyle' object TPath - Align = Client + Align = Center Data.Path = { 0400000000000000000000000000000001000000000000000000803F01000000 0000803F0000003F030000000000000000000000} Fill.Color = claWhite HitTest = False - Margins.Left = 6.000000000000000000 - Margins.Top = 6.000000000000000000 - Margins.Right = 6.000000000000000000 - Margins.Bottom = 6.000000000000000000 - Size.Width = 4.999969482421875000 - Size.Height = 5.000000000000000000 + Size.Width = 7.999954223632813000 + Size.Height = 8.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end @@ -2307,7 +2299,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 38 + TabOrder = 40 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -2382,7 +2374,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 40 + TabOrder = 42 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -2460,7 +2452,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 42 + TabOrder = 45 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -2538,6 +2530,7 @@ object TStyleContainer Size.Height = 2.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 59 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -2666,7 +2659,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 46 + TabOrder = 52 object TPath StyleName = 'Path1' Align = Center @@ -2699,7 +2692,7 @@ object TStyleContainer Size.Height = 33.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 50 + TabOrder = 54 object TLayout Align = Left Size.Width = 24.000000000000000000 @@ -2851,7 +2844,7 @@ object TStyleContainer HitTest = False Margins.Left = 10.000000000000000000 Position.X = 10.000000000000000000 - Size.Width = 24.964843750000000000 + Size.Width = 26.136718750000000000 Size.Height = 15.960937500000000000 Size.PlatformDefault = False Text = 'Text' @@ -2878,6 +2871,7 @@ object TStyleContainer Size.Height = 164.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 56 object TRectangle StyleName = 'background' Align = Contents @@ -2897,6 +2891,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False + TabOrder = 57 object TRectangle StyleName = 'htrack' Align = Contents @@ -2958,7 +2953,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 45 + TabOrder = 47 object TRectangle StyleName = 'htrack' Align = Contents @@ -3020,7 +3015,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 49 + TabOrder = 51 object TBrushObject StyleName = 'foreground' end @@ -3158,7 +3153,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 36 + TabOrder = 37 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -3360,7 +3355,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 37 + TabOrder = 38 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -3581,4 +3576,355 @@ object TStyleContainer Size.PlatformDefault = False end end + object TLayout + StyleName = 'treeviewexpanderbuttonstyle' + Align = Center + Margins.Top = 1.000000000000000000 + Size.Width = 22.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 61 + object TPath + StyleName = 'Path1' + Align = Center + Data.Path = { + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C842} + Fill.Color = claWhite + HitTest = False + RotationAngle = -90.000000000000000000 + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TFloatAnimation + StyleName = 'FloatAnimation1Style' + Duration = 0.000000000000000000 + Interpolation = Circular + PropertyName = 'RotationAngle' + StartValue = -90.000000000000000000 + StopValue = 0.000000000000000000 + Trigger = 'IsExpanded=true' + TriggerInverse = 'IsExpanded=false' + end + end + end + object TRectangle + StyleName = 'treeviewitemstyle' + Align = Center + Fill.Kind = None + HitTest = False + Sides = [Bottom] + Size.Width = 87.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + Stroke.Join = Round + Visible = False + object TSpeedButton + StyleName = 'button' + Align = Left + Size.Width = 20.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'treeviewexpanderbuttonstyle' + end + object TLayout + Align = Contents + Margins.Left = 20.000000000000000000 + Size.Width = 67.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + object TCheckBox + StyleName = 'check' + Align = Left + CanFocus = False + DisableFocusEffect = True + Size.Width = 20.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + end + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 2.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 2.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Align = Left + Position.X = 22.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 38.000000000000000000 + Size.PlatformDefault = False + end + object TText + StyleName = 'text' + Align = Client + Locked = True + HitTest = False + Size.Width = 47.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + TextSettings.WordWrap = False + TextSettings.HorzAlign = Leading + end + end + object TRectangle + Align = Contents + Fill.Kind = None + HitTest = False + Margins.Bottom = 1.000000000000000000 + Sides = [Left] + Size.Width = 87.000000000000000000 + Size.Height = 39.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF2A82E2 + Stroke.Thickness = 2.000000000000000000 + end + end + object TLayout + StyleName = 'treeviewstyle' + Align = Center + Size.Width = 225.000000000000000000 + Size.Height = 259.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 64 + object TBrushObject + StyleName = 'AlternatingRowBackground' + Brush.Color = x0FFFFFFF + end + object TRectangle + StyleName = 'background' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Padding.Left = 1.000000000000000000 + Padding.Right = 1.000000000000000000 + Size.Width = 225.000000000000000000 + Size.Height = 259.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'content' + Align = Client + ClipChildren = True + Margins.Top = 1.000000000000000000 + Size.Width = 205.000000000000000000 + Size.Height = 240.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'selection' + Fill.Color = xFF2A82E2 + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + object TRectangle + StyleName = 'focusedselection' + Fill.Color = xFF2A82E2 + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + Stroke.Dash = Dot + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + end + object TScrollBar + StyleName = 'vscrollbar' + Align = Right + SmallChange = 0.000000000000000000 + Orientation = Vertical + Margins.Left = 2.000000000000000000 + Position.X = 208.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 241.000000000000000000 + Size.PlatformDefault = False + end + object TScrollBar + StyleName = 'hscrollbar' + Align = Bottom + SmallChange = 0.000000000000000000 + Orientation = Horizontal + Margins.Top = 2.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 243.000000000000000000 + Size.Width = 223.000000000000000000 + Size.Height = 16.000000000000000000 + Size.PlatformDefault = False + end + object TSmallScrollBar + StyleName = 'vsmallscrollbar' + Align = Right + SmallChange = 0.000000000000000000 + Orientation = Vertical + Margins.Left = 2.000000000000000000 + Position.X = 99.000000000000000000 + Position.Y = 2.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Visible = False + end + object TSmallScrollBar + StyleName = 'hsmallscrollbar' + Align = Bottom + SmallChange = 0.000000000000000000 + Orientation = Horizontal + Margins.Top = 2.000000000000000000 + Position.X = 2.000000000000000000 + Position.Y = 113.000000000000000000 + Size.Width = 150.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Visible = False + end + end + end + object TLayout + StyleName = 'progressbarfinishstyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + TabOrder = 63 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 54.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 34.399997711181640000 + Size.Width = 64.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + end + end + object TLayout + StyleName = 'progressbarminifinishstyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + TabOrder = 74 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Position.Y = 35.399997711181640000 + Size.Width = 66.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + end + end + end end diff --git a/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style b/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style index a51cd4b..55bb9c3 100644 --- a/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style +++ b/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style @@ -779,8 +779,8 @@ object TStyleContainer object TLayout StyleName = 'spinboxstyle' Align = Center - Size.Width = 112.199996948242200000 - Size.Height = 21.000000000000000000 + Size.Width = 138.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False TabOrder = 13 @@ -788,8 +788,8 @@ object TStyleContainer StyleName = 'background' Align = Contents Fill.Color = xFF202020 - Size.Width = 112.199996948242200000 - Size.Height = 21.000000000000000000 + Size.Width = 138.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 object TColorAnimation @@ -819,13 +819,13 @@ object TStyleContainer Margins.Top = 2.000000000000000000 Margins.Right = 2.000000000000000000 Margins.Bottom = 2.000000000000000000 - Size.Width = 66.200073242187500000 - Size.Height = 17.000000000000000000 + Size.Width = 86.000000000000000000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False end object TButton StyleName = 'minusbutton' - Align = FitLeft + Align = Left CanFocus = False Cursor = crArrow Margins.Left = 2.000000000000000000 @@ -834,55 +834,47 @@ object TStyleContainer Margins.Bottom = 2.000000000000000000 Position.X = 2.000000000000000000 Position.Y = 2.000000000000000000 - Size.Width = 16.999954223632810000 - Size.Height = 17.000000000000000000 + Size.Width = 20.000000000000000000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False StyleLookup = 'buttonstyle' object TPath - Align = Client + Align = Center Data.Path = { 05000000000000000000803F00000000010000000000803F0000803F01000000 000000000000003F010000000000803F00000000030000000000803F00000000} Fill.Color = claWhite HitTest = False - Margins.Left = 6.000000000000000000 - Margins.Top = 6.000000000000000000 - Margins.Right = 6.000000000000000000 - Margins.Bottom = 6.000000000000000000 - Size.Width = 4.999954223632813000 - Size.Height = 5.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end end object TButton StyleName = 'plusbutton' - Align = FitRight + Align = Right CanFocus = False Cursor = crArrow Margins.Left = 2.000000000000000000 Margins.Top = 2.000000000000000000 Margins.Right = 2.000000000000000000 Margins.Bottom = 2.000000000000000000 - Position.X = 93.200027465820310000 + Position.X = 116.000000000000000000 Position.Y = 2.000000000000000000 - Size.Width = 16.999969482421880000 - Size.Height = 17.000000000000000000 + Size.Width = 20.000000000000000000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False StyleLookup = 'buttonstyle' object TPath - Align = Client + Align = Center Data.Path = { 0400000000000000000000000000000001000000000000000000803F01000000 0000803F0000003F030000000000000000000000} Fill.Color = claWhite HitTest = False - Margins.Left = 6.000000000000000000 - Margins.Top = 6.000000000000000000 - Margins.Right = 6.000000000000000000 - Margins.Bottom = 6.000000000000000000 - Size.Width = 4.999969482421875000 - Size.Height = 5.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end @@ -1729,7 +1721,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 26 + TabOrder = 37 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -1892,7 +1884,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 28 + TabOrder = 39 object TLine Align = Top LineType = Top @@ -1948,7 +1940,7 @@ object TStyleContainer StyleName = 'imagecellstyle' Align = Center Visible = False - TabOrder = 29 + TabOrder = 40 object TImage StyleName = 'image' MultiResBitmap = < @@ -1970,7 +1962,7 @@ object TStyleContainer StyleName = 'popupcellstyle' Align = Center Visible = False - TabOrder = 30 + TabOrder = 41 object TLayout Align = Right Position.X = 35.000000000000000000 @@ -2023,7 +2015,7 @@ object TStyleContainer StyleName = 'textcellstyle' Align = Center Visible = False - TabOrder = 31 + TabOrder = 42 object TLayout StyleName = 'content' Align = Contents @@ -2054,7 +2046,7 @@ object TStyleContainer Size.Height = 122.199996948242200000 Size.PlatformDefault = False Visible = False - TabOrder = 32 + TabOrder = 43 object TBrushObject StyleName = 'foreground' end @@ -2164,7 +2156,7 @@ object TStyleContainer Size.Height = 32.400001525878910000 Size.PlatformDefault = False Visible = False - TabOrder = 33 + TabOrder = 44 object TText StyleName = 'text' Align = Contents @@ -2202,7 +2194,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 34 + TabOrder = 45 object TRectangle StyleName = 'Rectangle1' Align = Center @@ -2313,7 +2305,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 35 + TabOrder = 46 object TRectangle StyleName = 'htrack' Align = Contents @@ -2375,7 +2367,7 @@ object TStyleContainer StyleName = 'smallscrollbarstyle' Align = Center Visible = False - TabOrder = 36 + TabOrder = 47 object TTrack StyleName = 'htrack' Align = Client @@ -2404,7 +2396,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 37 + TabOrder = 48 object TBrushObject StyleName = 'foreground' end @@ -2501,62 +2493,6 @@ object TStyleContainer Size.PlatformDefault = False end end - object TLayout - StyleName = 'splitterstyle' - Align = Center - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 - Size.PlatformDefault = False - Visible = False - TabOrder = 38 - object TRectangle - StyleName = 'Rectangle1' - Align = Client - Fill.Color = xFF303030 - HitTest = False - Sides = [Left, Right] - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - object TLayout - StyleName = 'grip' - Align = Client - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 - Size.PlatformDefault = False - object TCircle - StyleName = 'Circle1' - Align = Center - Fill.Color = xFF404040 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - object TCircle - StyleName = 'Circle2' - Align = Center - Fill.Color = xFF404040 - Margins.Top = 20.000000000000000000 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - object TCircle - StyleName = 'Circle3' - Align = Center - Fill.Color = xFF404040 - Margins.Bottom = 20.000000000000000000 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - end - end object TLayout StyleName = 'closebuttonstyle' Align = Center @@ -2564,7 +2500,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 39 + TabOrder = 49 object TRectangle StyleName = 'closebutton' Align = Client @@ -2620,7 +2556,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 40 + TabOrder = 50 object TRectangle StyleName = 'maxbutton' Align = Client @@ -2671,7 +2607,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 41 + TabOrder = 52 object TRectangle StyleName = 'minbutton' Align = Client @@ -2723,7 +2659,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 42 + TabOrder = 53 object TRectangle StyleName = 'resbutton' Align = Client @@ -2769,13 +2705,13 @@ object TStyleContainer end end object TLayout - StyleName = 'windowborderstyle' + StyleName = 'toolwindowstyle' Align = Center Size.Width = 351.666687011718800000 Size.Height = 179.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 43 + TabOrder = 56 object TRectangle StyleName = 'mask' Align = Contents @@ -2790,9 +2726,9 @@ object TStyleContainer StyleName = 'left' Align = MostLeft Locked = True - Position.Y = 30.000000000000000000 + Position.Y = 25.000000000000000000 Size.Width = 5.000000000000000000 - Size.Height = 149.000000000000000000 + Size.Height = 154.000000000000000000 Size.PlatformDefault = False object TRectangle Align = MostLeft @@ -2800,7 +2736,7 @@ object TStyleContainer HitTest = False Sides = [Left, Right] Size.Width = 5.000000000000000000 - Size.Height = 144.000000000000000000 + Size.Height = 149.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 end @@ -2810,7 +2746,7 @@ object TStyleContainer EnableDragHighlight = False Fill.Color = xFF202020 HitTest = False - Position.Y = 144.000000000000000000 + Position.Y = 149.000000000000000000 Sides = [Left, Bottom] Size.Width = 5.000000000000000000 Size.Height = 5.000000000000000000 @@ -2841,9 +2777,9 @@ object TStyleContainer Align = MostRight Locked = True Position.X = 346.666687011718800000 - Position.Y = 30.000000000000000000 + Position.Y = 25.000000000000000000 Size.Width = 5.000000000000000000 - Size.Height = 149.000000000000000000 + Size.Height = 154.000000000000000000 Size.PlatformDefault = False object TRectangle Align = MostRight @@ -2851,7 +2787,7 @@ object TStyleContainer HitTest = False Sides = [Left, Right] Size.Width = 5.000000000000000000 - Size.Height = 144.000000000000000000 + Size.Height = 149.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 end @@ -2861,7 +2797,7 @@ object TStyleContainer EnableDragHighlight = False Fill.Color = xFF202020 HitTest = False - Position.Y = 144.000000000000000000 + Position.Y = 149.000000000000000000 Sides = [Bottom, Right] Size.Width = 5.000000000000000000 Size.Height = 5.000000000000000000 @@ -2892,7 +2828,7 @@ object TStyleContainer Locked = True HitTest = False Size.Width = 351.666687011718800000 - Size.Height = 30.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 object TLayout @@ -2901,7 +2837,7 @@ object TStyleContainer Locked = True HitTest = True Size.Width = 351.666687011718800000 - Size.Height = 30.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False end object TLayout @@ -2912,22 +2848,13 @@ object TStyleContainer Margins.Right = 1.000000000000000000 Margins.Bottom = 1.000000000000000000 Size.Width = 349.666687011718800000 - Size.Height = 28.000000000000000000 + Size.Height = 23.000000000000000000 Size.PlatformDefault = False object TLayout Align = Left Locked = True Size.Width = 9.000000000000000000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - end - object TLayout - StyleName = 'icon' - Locked = True - Position.X = 9.000000000000000000 - Position.Y = 7.000000000000000000 - Size.Width = 25.000000000000000000 - Size.Height = 21.000000000000000000 + Size.Height = 23.000000000000000000 Size.PlatformDefault = False end object TLayout @@ -2935,55 +2862,25 @@ object TStyleContainer Align = Client Locked = True Size.Width = 340.666687011718800000 - Size.Height = 28.000000000000000000 + Size.Height = 23.000000000000000000 Size.PlatformDefault = False object TSpeedButton StyleName = 'close' Align = Right Locked = True - Position.X = 290.666687011718800000 - Size.Width = 50.000000000000000000 - Size.Height = 28.000000000000000000 + Position.X = 315.666687011718800000 + Size.Width = 25.000000000000000000 + Size.Height = 23.000000000000000000 Size.PlatformDefault = False StyleLookup = 'closebuttonstyle' end - object TSpeedButton - StyleName = 'max' - Align = Right - Locked = True - Position.X = 260.666687011718800000 - Size.Width = 30.000000000000000000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'maxbuttonstyle' - end - object TSpeedButton - StyleName = 'res' - Align = Right - Locked = True - Position.X = 230.666687011718800000 - Size.Width = 30.000000000000000000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'resbuttonstyle' - end - object TSpeedButton - StyleName = 'min' - Align = Right - Locked = True - Position.X = 200.666687011718800000 - Size.Width = 30.000000000000000000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'minbuttonstyle' - end object TText StyleName = 'title' Align = Client Locked = True HitTest = False - Size.Width = 200.666687011718800000 - Size.Height = 28.000000000000000000 + Size.Width = 315.666687011718800000 + Size.Height = 23.000000000000000000 Size.PlatformDefault = False Text = 'Title' TextSettings.FontColor = claWhite @@ -2997,7 +2894,7 @@ object TStyleContainer Locked = True HitTest = True Size.Width = 341.666687011718800000 - Size.Height = 144.000000000000000000 + Size.Height = 149.000000000000000000 Size.PlatformDefault = False end object TLayout @@ -3013,7 +2910,6 @@ object TStyleContainer StyleName = 'rect' Align = Bottom Fill.Color = xFF202020 - HitTest = False Sides = [Top, Bottom] Size.Width = 341.666687011718800000 Size.Height = 5.000000000000000000 @@ -3023,265 +2919,51 @@ object TStyleContainer end end object TLayout - StyleName = 'toolwindowstyle' + StyleName = 'radiobuttonstyle' Align = Center - Size.Width = 351.666687011718800000 - Size.Height = 179.000000000000000000 + Size.Width = 121.000000000000000000 + Size.Height = 21.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 44 - object TRectangle - StyleName = 'mask' - Align = Contents - Fill.Color = xFF101010 - Size.Width = 351.666687011718800000 - Size.Height = 179.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - Visible = False - end + TabOrder = 58 object TLayout - StyleName = 'left' - Align = MostLeft - Locked = True - Position.Y = 25.000000000000000000 - Size.Width = 5.000000000000000000 - Size.Height = 154.000000000000000000 + Align = Left + Size.Width = 21.000000000000000000 + Size.Height = 21.000000000000000000 Size.PlatformDefault = False - object TRectangle - Align = MostLeft - Fill.Color = xFF202020 - HitTest = False - Sides = [Left, Right] - Size.Width = 5.000000000000000000 - Size.Height = 149.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - object TRectangle - StyleName = 'Rectangle1' - Align = MostBottom - EnableDragHighlight = False + object TEllipse + StyleName = 'background' + Align = Center Fill.Color = xFF202020 + Locked = True HitTest = False - Position.Y = 149.000000000000000000 - Sides = [Left, Bottom] - Size.Width = 5.000000000000000000 - Size.Height = 5.000000000000000000 + Size.Width = 15.000000000000000000 + Size.Height = 15.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 - object TLayout - StyleName = 'Layout3' - Align = MostRight - Position.X = 4.000000000000000000 - Size.Width = 1.000000000000000000 - Size.Height = 5.000000000000000000 + object TEllipse + StyleName = 'checkmark' + Align = Client + Fill.Color = xFF2A82E2 + Locked = True + HitTest = False + Opacity = 0.000000000000000000 + Margins.Left = 2.000000000000000000 + Margins.Top = 2.000000000000000000 + Margins.Right = 2.000000000000000000 + Margins.Bottom = 2.000000000000000000 + Size.Width = 11.000000000000000000 + Size.Height = 11.000000000000000000 Size.PlatformDefault = False - object TRectangle - StyleName = 'Rectangle1' - Align = Top - Fill.Color = xFF151515 - HitTest = False - Size.Width = 1.000000000000000000 - Size.Height = 1.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - end - end - end - end - object TLayout - StyleName = 'right' - Align = MostRight - Locked = True - Position.X = 346.666687011718800000 - Position.Y = 25.000000000000000000 - Size.Width = 5.000000000000000000 - Size.Height = 154.000000000000000000 - Size.PlatformDefault = False - object TRectangle - Align = MostRight - Fill.Color = xFF202020 - HitTest = False - Sides = [Left, Right] - Size.Width = 5.000000000000000000 - Size.Height = 149.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - object TRectangle - StyleName = 'Rectangle1' - Align = MostBottom - EnableDragHighlight = False - Fill.Color = xFF202020 - HitTest = False - Position.Y = 149.000000000000000000 - Sides = [Bottom, Right] - Size.Width = 5.000000000000000000 - Size.Height = 5.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - object TLayout - StyleName = 'Layout3' - Align = MostLeft - Size.Width = 1.000000000000000000 - Size.Height = 5.000000000000000000 - Size.PlatformDefault = False - object TRectangle - StyleName = 'Rectangle1' - Align = Top - Fill.Color = xFF151515 - HitTest = False - Size.Width = 1.000000000000000000 - Size.Height = 1.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - end - end - end - end - object TRectangle - Align = MostTop - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 351.666687011718800000 - Size.Height = 25.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - object TLayout - StyleName = 'caption' - Align = Contents - Locked = True - HitTest = True - Size.Width = 351.666687011718800000 - Size.Height = 25.000000000000000000 - Size.PlatformDefault = False - end - object TLayout - Align = Client - Locked = True - Margins.Left = 1.000000000000000000 - Margins.Top = 1.000000000000000000 - Margins.Right = 1.000000000000000000 - Margins.Bottom = 1.000000000000000000 - Size.Width = 349.666687011718800000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - object TLayout - Align = Left - Locked = True - Size.Width = 9.000000000000000000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - end - object TLayout - StyleName = 'sysbtns' - Align = Client - Locked = True - Size.Width = 340.666687011718800000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - object TSpeedButton - StyleName = 'close' - Align = Right - Locked = True - Position.X = 315.666687011718800000 - Size.Width = 25.000000000000000000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'closebuttonstyle' - end - object TText - StyleName = 'title' - Align = Client - Locked = True - HitTest = False - Size.Width = 315.666687011718800000 - Size.Height = 23.000000000000000000 - Size.PlatformDefault = False - Text = 'Title' - TextSettings.FontColor = claWhite - end - end - end - end - object TLayout - StyleName = 'client' - Align = Client - Locked = True - HitTest = True - Size.Width = 341.666687011718800000 - Size.Height = 149.000000000000000000 - Size.PlatformDefault = False - end - object TLayout - StyleName = 'bottom' - Align = Bottom - Locked = True - Position.X = 5.000000000000000000 - Position.Y = 174.000000000000000000 - Size.Width = 341.666687011718800000 - Size.Height = 5.000000000000000000 - Size.PlatformDefault = False - object TRectangle - StyleName = 'rect' - Align = Bottom - Fill.Color = xFF202020 - Sides = [Top, Bottom] - Size.Width = 341.666687011718800000 - Size.Height = 5.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - end - end - object TLayout - StyleName = 'radiobuttonstyle' - Align = Center - Size.Width = 121.000000000000000000 - Size.Height = 21.000000000000000000 - Size.PlatformDefault = False - Visible = False - TabOrder = 46 - object TLayout - Align = Left - Size.Width = 21.000000000000000000 - Size.Height = 21.000000000000000000 - Size.PlatformDefault = False - object TEllipse - StyleName = 'background' - Align = Center - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 15.000000000000000000 - Size.Height = 15.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - object TEllipse - StyleName = 'checkmark' - Align = Client - Fill.Color = xFF2A82E2 - Locked = True - HitTest = False - Opacity = 0.000000000000000000 - Margins.Left = 2.000000000000000000 - Margins.Top = 2.000000000000000000 - Margins.Right = 2.000000000000000000 - Margins.Bottom = 2.000000000000000000 - Size.Width = 11.000000000000000000 - Size.Height = 11.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - object TFloatAnimation - StyleName = 'opacityCheckmarkAnimation1' - Duration = 0.100000001490116100 - PropertyName = 'Opacity' - StartValue = 0.000000000000000000 - StopValue = 1.000000000000000000 - Trigger = 'IsChecked=true' - TriggerInverse = 'IsChecked=false' + Stroke.Kind = None + object TFloatAnimation + StyleName = 'opacityCheckmarkAnimation1' + Duration = 0.100000001490116100 + PropertyName = 'Opacity' + StartValue = 0.000000000000000000 + StopValue = 1.000000000000000000 + Trigger = 'IsChecked=true' + TriggerInverse = 'IsChecked=false' end end object TColorAnimation @@ -3324,7 +3006,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 48 + TabOrder = 61 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3399,7 +3081,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 50 + TabOrder = 64 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3473,7 +3155,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 52 + TabOrder = 66 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3547,7 +3229,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 57 + TabOrder = 67 object TBrushObject StyleName = 'foreground' end @@ -3673,6 +3355,7 @@ object TStyleContainer StyleName = 'aniindicatorstyle' Align = Center Visible = False + TabOrder = 70 object TArc StyleName = 'Arc' Align = Contents @@ -3682,7 +3365,8 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Stroke.Color = claWhite - Stroke.Thickness = 2.000000000000000000 + Stroke.Thickness = 4.000000000000000000 + Stroke.Cap = Round EndAngle = -90.000000000000000000 object TFloatAnimation StyleName = 'ani' @@ -3704,7 +3388,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 62 + TabOrder = 73 object TPath StyleName = 'Path1' Align = Center @@ -3737,7 +3421,7 @@ object TStyleContainer Size.Height = 33.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 66 + TabOrder = 78 object TLayout Align = Left Size.Width = 24.000000000000000000 @@ -3810,6 +3494,7 @@ object TStyleContainer Size.Height = 164.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 84 object TRectangle StyleName = 'background' Align = Contents @@ -3827,7 +3512,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 27 + TabOrder = 38 object TRectangle StyleName = 'htrack' Align = Contents @@ -3935,7 +3620,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 61 + TabOrder = 60 object TRectangle StyleName = 'bgrectangle' Align = Contents @@ -4007,7 +3692,7 @@ object TStyleContainer HitTest = False Margins.Left = 10.000000000000000000 Position.X = 10.000000000000000000 - Size.Width = 24.964843750000000000 + Size.Width = 26.136718750000000000 Size.Height = 15.960937500000000000 Size.PlatformDefault = False Text = 'Text' @@ -4034,6 +3719,7 @@ object TStyleContainer Size.Height = 2.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 62 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -4072,6 +3758,7 @@ object TStyleContainer Size.Height = 96.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 68 object TRectangle StyleName = 'background' Align = Client @@ -4146,4 +3833,635 @@ object TStyleContainer end end end + object TLayout + StyleName = 'treeviewexpanderbuttonstyle' + Align = Center + Margins.Top = 1.000000000000000000 + Size.Width = 22.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 71 + object TPath + StyleName = 'Path1' + Align = Center + Data.Path = { + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C842} + Fill.Color = claWhite + HitTest = False + RotationAngle = -90.000000000000000000 + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TFloatAnimation + StyleName = 'FloatAnimation1Style' + Duration = 0.000000000000000000 + Interpolation = Circular + PropertyName = 'RotationAngle' + StartValue = -90.000000000000000000 + StopValue = 0.000000000000000000 + Trigger = 'IsExpanded=true' + TriggerInverse = 'IsExpanded=false' + end + end + end + object TRectangle + StyleName = 'treeviewitemstyle' + Align = Center + Fill.Kind = None + HitTest = False + Sides = [Bottom] + Size.Width = 87.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + Visible = False + object TSpeedButton + StyleName = 'button' + Align = Left + Size.Width = 20.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'treeviewexpanderbuttonstyle' + end + object TLayout + Align = Contents + Margins.Left = 20.000000000000000000 + Size.Width = 67.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + object TCheckBox + StyleName = 'check' + Align = Left + CanFocus = False + DisableFocusEffect = True + Size.Width = 20.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + end + object TGlyph + StyleName = 'glyphstyle' + Margins.Left = 2.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 2.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Align = Left + Position.X = 22.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 38.000000000000000000 + Size.PlatformDefault = False + end + object TText + StyleName = 'text' + Align = Client + Locked = True + HitTest = False + Size.Width = 47.000000000000000000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + TextSettings.WordWrap = False + TextSettings.HorzAlign = Leading + end + end + object TRectangle + Align = Contents + Fill.Kind = None + HitTest = False + Margins.Bottom = 1.000000000000000000 + Sides = [Left] + Size.Width = 87.000000000000000000 + Size.Height = 39.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF2A82E2 + Stroke.Thickness = 2.000000000000000000 + end + end + object TLayout + StyleName = 'treeviewstyle' + Align = Center + Size.Width = 225.000000000000000000 + Size.Height = 259.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 77 + object TBrushObject + StyleName = 'AlternatingRowBackground' + Brush.Color = x0FFFFFFF + end + object TRectangle + StyleName = 'background' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Padding.Left = 1.000000000000000000 + Padding.Right = 1.000000000000000000 + Size.Width = 225.000000000000000000 + Size.Height = 259.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'content' + Align = Client + ClipChildren = True + Margins.Top = 1.000000000000000000 + Size.Width = 205.000000000000000000 + Size.Height = 240.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'selection' + Fill.Color = xFF2A82E2 + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + object TRectangle + StyleName = 'focusedselection' + Fill.Color = xFF2A82E2 + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 50.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + Stroke.Dash = Dot + end + end + object TScrollBar + StyleName = 'vscrollbar' + Align = Right + SmallChange = 0.000000000000000000 + Orientation = Vertical + Margins.Left = 2.000000000000000000 + Position.X = 208.000000000000000000 + Size.Width = 16.000000000000000000 + Size.Height = 241.000000000000000000 + Size.PlatformDefault = False + end + object TScrollBar + StyleName = 'hscrollbar' + Align = Bottom + SmallChange = 0.000000000000000000 + Orientation = Horizontal + Margins.Top = 2.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 243.000000000000000000 + Size.Width = 223.000000000000000000 + Size.Height = 16.000000000000000000 + Size.PlatformDefault = False + end + object TSmallScrollBar + StyleName = 'vsmallscrollbar' + Align = Right + SmallChange = 0.000000000000000000 + Orientation = Vertical + Margins.Left = 2.000000000000000000 + Position.X = 99.000000000000000000 + Position.Y = 2.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Visible = False + end + object TSmallScrollBar + StyleName = 'hsmallscrollbar' + Align = Bottom + SmallChange = 0.000000000000000000 + Orientation = Horizontal + Margins.Top = 2.000000000000000000 + Position.X = 2.000000000000000000 + Position.Y = 113.000000000000000000 + Size.Width = 150.000000000000000000 + Size.Height = 8.000000000000000000 + Size.PlatformDefault = False + Visible = False + end + end + end + object TLayout + StyleName = 'progressbarfinishstyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + TabOrder = 65 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 54.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 34.399997711181640000 + Size.Width = 64.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + object TLayout + StyleName = 'progressbarminifinishstyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + TabOrder = 76 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Position.Y = 35.399997711181640000 + Size.Width = 66.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + object TLayout + StyleName = 'windowborderstyle' + Align = Center + Size.Width = 351.666687011718800000 + Size.Height = 179.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 57 + object TRectangle + StyleName = 'mask' + Align = Contents + Fill.Color = xFF101010 + Size.Width = 351.666687011718800000 + Size.Height = 179.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + Visible = False + end + object TLayout + StyleName = 'left' + Align = MostLeft + Locked = True + Position.Y = 32.000000000000000000 + Size.Width = 4.000000000000000000 + Size.Height = 147.000000000000000000 + Size.PlatformDefault = False + object TRectangle + Align = MostLeft + Fill.Color = xFF202020 + HitTest = False + Sides = [Left, Right] + Size.Width = 4.000000000000000000 + Size.Height = 143.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TRectangle + StyleName = 'Rectangle1' + Align = MostBottom + EnableDragHighlight = False + Fill.Color = xFF202020 + HitTest = False + Position.Y = 143.000000000000000000 + Sides = [Left, Bottom] + Size.Width = 4.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'Layout3' + Align = MostRight + Position.X = 3.000000000000000000 + Size.Width = 1.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'Rectangle1' + Align = Top + Fill.Color = xFF151515 + HitTest = False + Size.Width = 1.000000000000000000 + Size.Height = 1.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + end + object TLayout + StyleName = 'right' + Align = MostRight + Locked = True + Position.X = 347.666687011718800000 + Position.Y = 32.000000000000000000 + Size.Width = 4.000000000000000000 + Size.Height = 147.000000000000000000 + Size.PlatformDefault = False + object TRectangle + Align = MostRight + Fill.Color = xFF202020 + HitTest = False + Sides = [Left, Right] + Size.Width = 4.000000000000000000 + Size.Height = 143.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TRectangle + StyleName = 'Rectangle1' + Align = MostBottom + EnableDragHighlight = False + Fill.Color = xFF202020 + HitTest = False + Position.Y = 143.000000000000000000 + Sides = [Bottom, Right] + Size.Width = 4.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'Layout3' + Align = MostLeft + Size.Width = 1.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'Rectangle1' + Align = Top + Fill.Color = xFF151515 + HitTest = False + Size.Width = 1.000000000000000000 + Size.Height = 1.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + end + object TRectangle + Align = MostTop + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 351.666687011718800000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'caption' + Align = Contents + Locked = True + HitTest = True + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Size.Width = 343.666687011718800000 + Size.Height = 28.000000000000000000 + Size.PlatformDefault = False + end + object TLayout + Align = Client + Locked = True + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 349.666687011718800000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + object TLayout + Align = Left + Locked = True + Size.Width = 9.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + end + object TLayout + StyleName = 'icon' + Locked = True + Position.X = 9.000000000000000000 + Position.Y = 7.000000000000000000 + Size.Width = 25.000000000000000000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + end + object TLayout + StyleName = 'sysbtns' + Align = Client + Locked = True + Size.Width = 340.666687011718800000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + object TSpeedButton + StyleName = 'close' + Align = Right + Locked = True + Position.X = 290.666687011718800000 + Size.Width = 50.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'closebuttonstyle' + end + object TSpeedButton + StyleName = 'max' + Align = Right + Locked = True + Position.X = 258.666687011718800000 + Size.Width = 32.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'maxbuttonstyle' + end + object TSpeedButton + StyleName = 'res' + Align = Right + Locked = True + Position.X = 226.666687011718800000 + Size.Width = 32.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'resbuttonstyle' + end + object TSpeedButton + StyleName = 'min' + Align = Right + Locked = True + Position.X = 194.666687011718800000 + Size.Width = 32.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'minbuttonstyle' + end + object TText + StyleName = 'title' + Align = Client + Locked = True + HitTest = False + Size.Width = 194.666687011718800000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + Text = 'Title' + TextSettings.FontColor = claWhite + end + end + end + end + object TLayout + StyleName = 'client' + Align = Client + Locked = True + HitTest = True + Size.Width = 343.666687011718800000 + Size.Height = 143.000000000000000000 + Size.PlatformDefault = False + end + object TLayout + StyleName = 'bottom' + Align = Bottom + Locked = True + Position.X = 4.000000000000000000 + Position.Y = 175.000000000000000000 + Size.Width = 343.666687011718800000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'rect' + Align = Bottom + Fill.Color = xFF202020 + HitTest = False + Sides = [Top, Bottom] + Size.Width = 343.666687011718800000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + end + end + object TLayout + StyleName = 'splitterstyle' + Align = Center + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + TabOrder = 36 + object TLayout + StyleName = 'grip' + Align = Client + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + object TCircle + StyleName = 'Circle1' + Align = Center + Fill.Color = xFF404040 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TCircle + StyleName = 'Circle2' + Align = Center + Fill.Color = xFF404040 + Margins.Top = 20.000000000000000000 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TCircle + StyleName = 'Circle3' + Align = Center + Fill.Color = xFF404040 + Margins.Bottom = 20.000000000000000000 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + end + end end diff --git a/styles/AErender Modern/AERFMXStyleMacOS.style b/styles/AErender Modern/AERFMXStyleMacOS.style index b345a06..417c3dd 100644 --- a/styles/AErender Modern/AERFMXStyleMacOS.style +++ b/styles/AErender Modern/AERFMXStyleMacOS.style @@ -978,7 +978,7 @@ object TStyleContainer StyleName = 'spinboxstyle' Align = Center Size.Width = 112.199996948242200000 - Size.Height = 21.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False TabOrder = 18 @@ -987,7 +987,7 @@ object TStyleContainer Align = Contents Fill.Color = xFF202020 Size.Width = 112.199996948242200000 - Size.Height = 21.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 XRadius = 3.000000000000000000 @@ -1019,13 +1019,13 @@ object TStyleContainer Margins.Top = 2.000000000000000000 Margins.Right = 2.000000000000000000 Margins.Bottom = 2.000000000000000000 - Size.Width = 66.200073242187500000 - Size.Height = 17.000000000000000000 + Size.Width = 60.200077056884770000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False end object TButton StyleName = 'minusbutton' - Align = FitLeft + Align = Left CanFocus = False Cursor = crArrow Margins.Left = 2.000000000000000000 @@ -1034,55 +1034,47 @@ object TStyleContainer Margins.Bottom = 2.000000000000000000 Position.X = 2.000000000000000000 Position.Y = 2.000000000000000000 - Size.Width = 16.999954223632810000 - Size.Height = 17.000000000000000000 + Size.Width = 19.999950408935550000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False StyleLookup = 'buttonstyle' object TPath - Align = Client + Align = Center Data.Path = { 05000000000000000000803F00000000010000000000803F0000803F01000000 000000000000003F010000000000803F00000000030000000000803F00000000} Fill.Color = claWhite HitTest = False - Margins.Left = 6.000000000000000000 - Margins.Top = 6.000000000000000000 - Margins.Right = 6.000000000000000000 - Margins.Bottom = 6.000000000000000000 - Size.Width = 4.999954223632813000 - Size.Height = 5.000000000000000000 + Size.Width = 7.999950408935547000 + Size.Height = 8.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end end object TButton StyleName = 'plusbutton' - Align = FitRight + Align = Right CanFocus = False Cursor = crArrow Margins.Left = 2.000000000000000000 Margins.Top = 2.000000000000000000 Margins.Right = 2.000000000000000000 Margins.Bottom = 2.000000000000000000 - Position.X = 93.200027465820310000 + Position.X = 90.200027465820310000 Position.Y = 2.000000000000000000 - Size.Width = 16.999969482421880000 - Size.Height = 17.000000000000000000 + Size.Width = 19.999969482421880000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False StyleLookup = 'buttonstyle' object TPath - Align = Client + Align = Center Data.Path = { 0400000000000000000000000000000001000000000000000000803F01000000 0000803F0000003F030000000000000000000000} Fill.Color = claWhite HitTest = False - Margins.Left = 6.000000000000000000 - Margins.Top = 6.000000000000000000 - Margins.Right = 6.000000000000000000 - Margins.Bottom = 6.000000000000000000 - Size.Width = 4.999969482421875000 - Size.Height = 5.000000000000000000 + Size.Width = 7.999969482421875000 + Size.Height = 8.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end @@ -3456,7 +3448,7 @@ object TStyleContainer HitTest = False Margins.Left = 10.000000000000000000 Position.X = 10.000000000000000000 - Size.Width = 24.964843750000000000 + Size.Width = 26.136718750000000000 Size.Height = 15.960937500000000000 Size.PlatformDefault = False Text = 'Text' @@ -3483,6 +3475,7 @@ object TStyleContainer Size.Height = 2.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 59 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -3522,6 +3515,7 @@ object TStyleContainer StyleName = 'aniindicatorstyle' Align = Center Visible = False + TabOrder = 60 object TArc StyleName = 'Arc' Align = Contents @@ -3531,7 +3525,8 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Stroke.Color = claWhite - Stroke.Thickness = 2.000000000000000000 + Stroke.Thickness = 4.000000000000000000 + Stroke.Cap = Round EndAngle = -90.000000000000000000 object TFloatAnimation StyleName = 'ani' @@ -3552,6 +3547,7 @@ object TStyleContainer Size.Height = 164.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 61 object TRectangle StyleName = 'background' Align = Contents @@ -3571,6 +3567,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False + TabOrder = 62 object TRectangle StyleName = 'htrack' Align = Contents @@ -3718,6 +3715,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 64 object TPath StyleName = 'Path1' Align = Center @@ -3750,6 +3748,7 @@ object TStyleContainer Size.Height = 259.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 65 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x0FFFFFFF @@ -3912,16 +3911,151 @@ object TStyleContainer end end object TRectangle - Align = FitLeft + Align = Contents Fill.Kind = None HitTest = False Margins.Bottom = 1.000000000000000000 Sides = [Left] - Size.Width = 68.760925292968750000 + Size.Width = 87.000000000000000000 Size.Height = 39.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF2A82E2 Stroke.Thickness = 2.000000000000000000 end end + object TLayout + StyleName = 'progressbarfinishstyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + TabOrder = 63 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 54.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 34.399997711181640000 + Size.Width = 64.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + end + end + end + object TLayout + StyleName = 'progressbarminifinishstyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + TabOrder = 74 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Position.Y = 35.399997711181640000 + Size.Width = 66.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 2.000000000000000000 + YRadius = 2.000000000000000000 + end + end + end end diff --git a/styles/AErender Modern/AERFMXStyleWindows.style b/styles/AErender Modern/AERFMXStyleWindows.style index 0908f23..7832ec4 100644 --- a/styles/AErender Modern/AERFMXStyleWindows.style +++ b/styles/AErender Modern/AERFMXStyleWindows.style @@ -16,6 +16,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 1 object TRectangle StyleName = 'background' Align = Client @@ -72,6 +73,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 2 object TBrushObject StyleName = 'foreground' end @@ -152,6 +154,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 3 object TText StyleName = 'text' Align = Contents @@ -169,6 +172,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 4 object TRectangle StyleName = 'background' Align = Contents @@ -205,6 +209,7 @@ object TStyleContainer Size.Height = 100.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 5 FixedHeight = 17 object TRectangle StyleName = 'htrack' @@ -319,6 +324,7 @@ object TStyleContainer Size.Height = 38.333343505859380000 Size.PlatformDefault = False Visible = False + TabOrder = 6 object TLayout Align = Left Size.Width = 18.000000000000000000 @@ -428,6 +434,7 @@ object TStyleContainer StyleName = 'scrollbarbottombutton' Align = Center Visible = False + TabOrder = 9 object TRectangle StyleName = 'background' Align = Client @@ -483,6 +490,7 @@ object TStyleContainer StyleName = 'scrollbarleftbutton' Align = Center Visible = False + TabOrder = 10 object TRectangle StyleName = 'background' Align = Client @@ -539,6 +547,7 @@ object TStyleContainer StyleName = 'scrollbarrightbutton' Align = Center Visible = False + TabOrder = 11 object TRectangle StyleName = 'background' Align = Client @@ -595,6 +604,7 @@ object TStyleContainer StyleName = 'scrollbartopbutton' Align = Center Visible = False + TabOrder = 12 object TRectangle StyleName = 'background' Align = Client @@ -651,6 +661,7 @@ object TStyleContainer StyleName = 'scrollbarstyle' Align = Center Visible = False + TabOrder = 13 object TButton StyleName = 'leftbutton' Align = Left @@ -747,6 +758,7 @@ object TStyleContainer Size.Width = 100.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False + TabOrder = 15 TrackingThumbScale = 1.000000000000000000 Visible = False Fill.Color = xFF202020 @@ -769,6 +781,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 16 object TBrushObject StyleName = 'foreground' end @@ -872,6 +885,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 17 object TBrushObject StyleName = 'foreground' end @@ -1000,6 +1014,7 @@ object TStyleContainer Size.Height = 100.999992370605500000 Size.PlatformDefault = False Visible = False + TabOrder = 18 object TRectangle StyleName = 'background' Align = Contents @@ -1042,6 +1057,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 20 object TRectangle StyleName = 'top' Align = Contents @@ -1145,6 +1161,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 22 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = xFF2C2C2C @@ -1254,6 +1271,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 23 object TText StyleName = 'text' Align = Client @@ -1276,6 +1294,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 24 object TGlyph StyleName = 'glyphstyle' Margins.Left = 2.000000000000000000 @@ -1320,6 +1339,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 25 object TRectangle StyleName = 'background' Align = Contents @@ -1353,6 +1373,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 26 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x32787878 @@ -1475,6 +1496,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 27 object TRectangle StyleName = 'background' Align = Contents @@ -1526,6 +1548,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False + TabOrder = 28 object TRectangle StyleName = 'htrack' Align = Contents @@ -1579,6 +1602,7 @@ object TStyleContainer Size.Height = 126.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 29 object TLayout StyleName = 'htrack' Align = Contents @@ -1620,6 +1644,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 30 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -1814,6 +1839,7 @@ object TStyleContainer Size.Height = 30.111110687255860000 Size.PlatformDefault = False Visible = False + TabOrder = 32 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -1972,6 +1998,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 33 object TLine Align = Top LineType = Top @@ -1994,6 +2021,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 + Visible = False object TRectangle Align = Client Fill.Color = xFF202020 @@ -2026,6 +2054,7 @@ object TStyleContainer StyleName = 'imagecellstyle' Align = Center Visible = False + TabOrder = 35 object TImage StyleName = 'image' MultiResBitmap = < @@ -2050,6 +2079,7 @@ object TStyleContainer Size.Height = 43.500000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 37 object TLayout Align = Right Position.X = 172.000000000000000000 @@ -2102,6 +2132,7 @@ object TStyleContainer StyleName = 'textcellstyle' Align = Center Visible = False + TabOrder = 38 object TLayout StyleName = 'content' Align = Contents @@ -2132,6 +2163,7 @@ object TStyleContainer Size.Height = 122.199996948242200000 Size.PlatformDefault = False Visible = False + TabOrder = 39 object TBrushObject StyleName = 'foreground' end @@ -2242,6 +2274,7 @@ object TStyleContainer Size.Height = 32.400001525878910000 Size.PlatformDefault = False Visible = False + TabOrder = 40 object TText StyleName = 'text' Align = Contents @@ -2304,15 +2337,16 @@ object TStyleContainer StyleName = 'spinboxstyle' Align = Center Size.Width = 112.199996948242200000 - Size.Height = 21.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 42 object TRectangle StyleName = 'background' Align = Contents Fill.Color = xFF202020 Size.Width = 112.199996948242200000 - Size.Height = 21.000000000000000000 + Size.Height = 24.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 object TColorAnimation @@ -2342,13 +2376,13 @@ object TStyleContainer Margins.Top = 2.000000000000000000 Margins.Right = 2.000000000000000000 Margins.Bottom = 2.000000000000000000 - Size.Width = 66.200073242187500000 - Size.Height = 17.000000000000000000 + Size.Width = 60.199996948242190000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False end object TButton StyleName = 'minusbutton' - Align = FitLeft + Align = Left CanFocus = False Cursor = crArrow Margins.Left = 2.000000000000000000 @@ -2357,55 +2391,47 @@ object TStyleContainer Margins.Bottom = 2.000000000000000000 Position.X = 2.000000000000000000 Position.Y = 2.000000000000000000 - Size.Width = 16.999954223632810000 - Size.Height = 17.000000000000000000 + Size.Width = 20.000000000000000000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False StyleLookup = 'buttonstyle' object TPath - Align = Client + Align = Center Data.Path = { 05000000000000000000803F00000000010000000000803F0000803F01000000 000000000000003F010000000000803F00000000030000000000803F00000000} Fill.Color = claWhite HitTest = False - Margins.Left = 6.000000000000000000 - Margins.Top = 6.000000000000000000 - Margins.Right = 6.000000000000000000 - Margins.Bottom = 6.000000000000000000 - Size.Width = 4.999954223632813000 - Size.Height = 5.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end end object TButton StyleName = 'plusbutton' - Align = FitRight + Align = Right CanFocus = False Cursor = crArrow Margins.Left = 2.000000000000000000 Margins.Top = 2.000000000000000000 Margins.Right = 2.000000000000000000 Margins.Bottom = 2.000000000000000000 - Position.X = 93.200027465820310000 + Position.X = 90.199996948242190000 Position.Y = 2.000000000000000000 - Size.Width = 16.999969482421880000 - Size.Height = 17.000000000000000000 + Size.Width = 20.000000000000000000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False StyleLookup = 'buttonstyle' object TPath - Align = Client + Align = Center Data.Path = { 0400000000000000000000000000000001000000000000000000803F01000000 0000803F0000003F030000000000000000000000} Fill.Color = claWhite HitTest = False - Margins.Left = 6.000000000000000000 - Margins.Top = 6.000000000000000000 - Margins.Right = 6.000000000000000000 - Margins.Bottom = 6.000000000000000000 - Size.Width = 4.999969482421875000 - Size.Height = 5.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 8.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end @@ -2418,6 +2444,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 43 object TRectangle StyleName = 'Rectangle1' Align = Center @@ -2500,6 +2527,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False + TabOrder = 45 object TRectangle StyleName = 'htrack' Align = Contents @@ -2564,6 +2592,7 @@ object TStyleContainer Size.Height = 103.500000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 46 object TRectangle Align = Contents Fill.Kind = None @@ -2632,6 +2661,7 @@ object TStyleContainer Size.Height = 44.500000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 47 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -2810,6 +2840,7 @@ object TStyleContainer StyleName = 'popoverstyle' Align = Center Visible = False + TabOrder = 48 object TRectangle StyleName = 'bg' Align = Client @@ -2846,6 +2877,7 @@ object TStyleContainer Size.Height = 53.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 49 object TRectangle StyleName = 'background' Align = Contents @@ -2937,6 +2969,7 @@ object TStyleContainer StyleName = 'smallscrollbarstyle' Align = Center Visible = False + TabOrder = 51 object TTrack StyleName = 'htrack' Align = Client @@ -2958,73 +2991,6 @@ object TStyleContainer StyleLookup = 'scrollbarvtrackstyle' end end - object TLayout - StyleName = 'splitterstyle' - Align = Center - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 - Size.PlatformDefault = False - Visible = False - object TRectangle - StyleName = 'Rectangle1' - Align = Client - Fill.Color = xFF303030 - HitTest = False - Sides = [Left, Right] - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - object TLayout - StyleName = 'Layout' - Align = Client - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 - Size.PlatformDefault = False - object TLayout - StyleName = 'grip' - Align = VertCenter - Locked = True - Position.Y = 32.000000000000000000 - Size.Width = 42.250000000000000000 - Size.Height = 32.000000000000000000 - Size.PlatformDefault = False - object TCircle - StyleName = 'Circle3' - Align = Center - Fill.Color = xFF404040 - HitTest = False - Margins.Bottom = 20.000000000000000000 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - object TCircle - StyleName = 'Circle2' - Align = Center - Fill.Color = xFF404040 - HitTest = False - Margins.Top = 20.000000000000000000 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - object TCircle - StyleName = 'Circle1' - Align = Center - Fill.Color = xFF404040 - HitTest = False - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - end - end - end object TLayout StyleName = 'closebuttonstyle' Align = Center @@ -3032,6 +2998,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 52 object TRectangle StyleName = 'closebutton' Align = Client @@ -3086,6 +3053,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 53 object TRectangle StyleName = 'maxbutton' Align = Client @@ -3136,6 +3104,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 54 object TRectangle StyleName = 'resbutton' Align = Client @@ -3187,6 +3156,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 55 object TRectangle StyleName = 'minbutton' Align = Client @@ -3238,6 +3208,7 @@ object TStyleContainer Size.Height = 179.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 56 object TRectangle StyleName = 'mask' Align = Contents @@ -3445,297 +3416,212 @@ object TStyleContainer end end object TLayout - StyleName = 'windowborderstyle' + StyleName = 'radiobuttonstyle' Align = Center - Size.Width = 351.666687011718800000 - Size.Height = 179.000000000000000000 + Size.Width = 121.000000000000000000 + Size.Height = 21.000000000000000000 Size.PlatformDefault = False Visible = False - object TRectangle - StyleName = 'mask' - Align = Contents - Fill.Color = xFF101010 - Size.Width = 351.666687011718800000 - Size.Height = 179.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - Visible = False - end + TabOrder = 58 object TLayout - StyleName = 'left' - Align = MostLeft - Locked = True - Position.Y = 30.000000000000000000 - Size.Width = 5.000000000000000000 - Size.Height = 149.000000000000000000 + Align = Left + Size.Width = 21.000000000000000000 + Size.Height = 21.000000000000000000 Size.PlatformDefault = False - object TRectangle - Align = MostLeft + object TEllipse + StyleName = 'background' + Align = Center Fill.Color = xFF202020 + Locked = True HitTest = False - Sides = [Left, Right] - Size.Width = 5.000000000000000000 - Size.Height = 144.000000000000000000 + Size.Width = 15.000000000000000000 + Size.Height = 15.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 + object TEllipse + StyleName = 'checkmark' + Align = Client + Fill.Color = xFF2A82E2 + Locked = True + HitTest = False + Opacity = 0.000000000000000000 + Margins.Left = 2.000000000000000000 + Margins.Top = 2.000000000000000000 + Margins.Right = 2.000000000000000000 + Margins.Bottom = 2.000000000000000000 + Size.Width = 11.000000000000000000 + Size.Height = 11.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TFloatAnimation + StyleName = 'opacityCheckmarkAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Opacity' + StartValue = 0.000000000000000000 + StopValue = 1.000000000000000000 + Trigger = 'IsChecked=true' + TriggerInverse = 'IsChecked=false' + end + end + object TColorAnimation + StyleName = 'radiobuttonColorAnimation1' + Duration = 0.000000000000000000 + Inverse = True + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true' + TriggerInverse = 'IsMouseOver=false' + end + object TColorAnimation + StyleName = 'ColorAnimation1Style' + Duration = 0.000000000000000000 + PropertyName = 'Stroke.Color' + StartValue = xFF151515 + StopValue = xFF2A82E2 + Trigger = 'IsChecked=true' + TriggerInverse = 'IsChecked=false' + end end + end + object TText + StyleName = 'text' + Align = Client + Locked = True + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + end + end + object TLayout + StyleName = 'ulcenterradiobuttonstyle' + Align = Center + Size.Width = 125.666671752929700000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 59 + object TLayout + Align = Bottom + Position.Y = 34.000000000000000000 + Size.Width = 125.666671752929700000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False object TRectangle - StyleName = 'Rectangle1' - Align = MostBottom - EnableDragHighlight = False + StyleName = 'background' + Align = Contents + Corners = [TopLeft, BottomLeft] Fill.Color = xFF202020 + Locked = True HitTest = False - Position.Y = 144.000000000000000000 - Sides = [Left, Bottom] - Size.Width = 5.000000000000000000 - Size.Height = 5.000000000000000000 + Size.Width = 125.666671752929700000 + Size.Height = 6.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 - object TLayout - StyleName = 'Layout3' - Align = MostRight - Position.X = 4.000000000000000000 - Size.Width = 1.000000000000000000 - Size.Height = 5.000000000000000000 + object TColorAnimation + StyleName = 'backgroundUlButtonColorAnimation1' + Duration = 0.000000000000000000 + Inverse = True + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true' + TriggerInverse = 'IsMouseOver=false' + end + object TRectangle + StyleName = 'checkmark' + Align = Contents + Corners = [TopLeft, BottomLeft] + Fill.Color = xFF2A82E2 + Locked = True + HitTest = False + Opacity = 0.000000000000000000 + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 123.666671752929700000 + Size.Height = 4.000000000000000000 Size.PlatformDefault = False - object TRectangle - StyleName = 'Rectangle1' - Align = Top - Fill.Color = xFF151515 - HitTest = False - Size.Width = 1.000000000000000000 - Size.Height = 1.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None + Stroke.Kind = None + object TFloatAnimation + StyleName = 'checkmarkOpacityAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Opacity' + StartValue = 0.000000000000000000 + StopValue = 1.000000000000000000 + Trigger = 'IsChecked=true' + TriggerInverse = 'IsChecked=false' end end end end - object TLayout - StyleName = 'right' - Align = MostRight + object TText + StyleName = 'text' + Align = Client Locked = True - Position.X = 346.666687011718800000 - Position.Y = 30.000000000000000000 - Size.Width = 5.000000000000000000 - Size.Height = 149.000000000000000000 + HitTest = False + Size.Width = 125.666671752929700000 + Size.Height = 34.000000000000000000 + Size.PlatformDefault = False + TextSettings.FontColor = claWhite + end + end + object TLayout + StyleName = 'ulrightradiobuttonstyle' + Align = Center + Size.Width = 125.666671752929700000 + Size.Height = 40.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 60 + object TLayout + Align = Bottom + Position.Y = 34.000000000000000000 + Size.Width = 125.666671752929700000 + Size.Height = 6.000000000000000000 Size.PlatformDefault = False object TRectangle - Align = MostRight - Fill.Color = xFF202020 - HitTest = False - Sides = [Left, Right] - Size.Width = 5.000000000000000000 - Size.Height = 144.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - object TRectangle - StyleName = 'Rectangle1' - Align = MostBottom - EnableDragHighlight = False - Fill.Color = xFF202020 - HitTest = False - Position.Y = 144.000000000000000000 - Sides = [Bottom, Right] - Size.Width = 5.000000000000000000 - Size.Height = 5.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - object TLayout - StyleName = 'Layout3' - Align = MostLeft - Size.Width = 1.000000000000000000 - Size.Height = 5.000000000000000000 - Size.PlatformDefault = False - object TRectangle - StyleName = 'Rectangle1' - Align = Top - Fill.Color = xFF151515 - HitTest = False - Size.Width = 1.000000000000000000 - Size.Height = 1.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - end - end - end - end - object TRectangle - Align = MostTop - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 351.666687011718800000 - Size.Height = 30.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - object TLayout - StyleName = 'caption' - Align = Contents - Locked = True - HitTest = True - Size.Width = 351.666687011718800000 - Size.Height = 30.000000000000000000 - Size.PlatformDefault = False - end - object TLayout - Align = Client - Locked = True - Margins.Left = 1.000000000000000000 - Margins.Top = 1.000000000000000000 - Margins.Right = 1.000000000000000000 - Margins.Bottom = 1.000000000000000000 - Size.Width = 349.666687011718800000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - object TLayout - Align = Left - Locked = True - Size.Width = 9.000000000000000000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - end - object TLayout - StyleName = 'icon' - Locked = True - Position.X = 9.000000000000000000 - Position.Y = 7.000000000000000000 - Size.Width = 25.000000000000000000 - Size.Height = 21.000000000000000000 - Size.PlatformDefault = False - end - object TLayout - StyleName = 'sysbtns' - Align = Client - Locked = True - Size.Width = 340.666687011718800000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - object TSpeedButton - StyleName = 'close' - Align = Right - Locked = True - Position.X = 290.666687011718800000 - Size.Width = 50.000000000000000000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'closebuttonstyle' - end - object TSpeedButton - StyleName = 'max' - Align = Right - Locked = True - Position.X = 260.666687011718800000 - Size.Width = 30.000000000000000000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'maxbuttonstyle' - end - object TSpeedButton - StyleName = 'res' - Align = Right - Locked = True - Position.X = 230.666687011718800000 - Size.Width = 30.000000000000000000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'resbuttonstyle' - end - object TSpeedButton - StyleName = 'min' - Align = Right - Locked = True - Position.X = 200.666687011718800000 - Size.Width = 30.000000000000000000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - StyleLookup = 'minbuttonstyle' - end - object TText - StyleName = 'title' - Align = Client - Locked = True - HitTest = False - Size.Width = 200.666687011718800000 - Size.Height = 28.000000000000000000 - Size.PlatformDefault = False - Text = 'Title' - TextSettings.FontColor = claWhite - end - end - end - end - object TLayout - StyleName = 'client' - Align = Client - Locked = True - HitTest = True - Size.Width = 341.666687011718800000 - Size.Height = 144.000000000000000000 - Size.PlatformDefault = False - end - object TLayout - StyleName = 'bottom' - Align = Bottom - Locked = True - Position.X = 5.000000000000000000 - Position.Y = 174.000000000000000000 - Size.Width = 341.666687011718800000 - Size.Height = 5.000000000000000000 - Size.PlatformDefault = False - object TRectangle - StyleName = 'rect' - Align = Bottom - Fill.Color = xFF202020 - HitTest = False - Sides = [Top, Bottom] - Size.Width = 341.666687011718800000 - Size.Height = 5.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - end - end - end - object TLayout - StyleName = 'radiobuttonstyle' - Align = Center - Size.Width = 121.000000000000000000 - Size.Height = 21.000000000000000000 - Size.PlatformDefault = False - Visible = False - object TLayout - Align = Left - Size.Width = 21.000000000000000000 - Size.Height = 21.000000000000000000 - Size.PlatformDefault = False - object TEllipse StyleName = 'background' - Align = Center + Align = Contents + Corners = [TopRight, BottomRight] Fill.Color = xFF202020 Locked = True HitTest = False - Size.Width = 15.000000000000000000 - Size.Height = 15.000000000000000000 + Size.Width = 125.666671752929700000 + Size.Height = 6.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 - object TEllipse + object TColorAnimation + StyleName = 'backgroundUlButtonColorAnimation1' + Duration = 0.000000000000000000 + Inverse = True + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true' + TriggerInverse = 'IsMouseOver=false' + end + object TRectangle StyleName = 'checkmark' - Align = Client + Align = Contents + Corners = [TopRight, BottomRight] Fill.Color = xFF2A82E2 Locked = True HitTest = False Opacity = 0.000000000000000000 - Margins.Left = 2.000000000000000000 - Margins.Top = 2.000000000000000000 - Margins.Right = 2.000000000000000000 - Margins.Bottom = 2.000000000000000000 - Size.Width = 11.000000000000000000 - Size.Height = 11.000000000000000000 + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 123.666671752929700000 + Size.Height = 4.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None object TFloatAnimation - StyleName = 'opacityCheckmarkAnimation1' + StyleName = 'checkmarkOpacityAnimation1' Duration = 0.000000000000000000 PropertyName = 'Opacity' StartValue = 0.000000000000000000 @@ -3744,25 +3630,6 @@ object TStyleContainer TriggerInverse = 'IsChecked=false' end end - object TColorAnimation - StyleName = 'radiobuttonColorAnimation1' - Duration = 0.000000000000000000 - Inverse = True - PropertyName = 'Fill.Color' - StartValue = xFF202020 - StopValue = xFF404040 - Trigger = 'IsMouseOver=true' - TriggerInverse = 'IsMouseOver=false' - end - object TColorAnimation - StyleName = 'ColorAnimation1Style' - Duration = 0.000000000000000000 - PropertyName = 'Stroke.Color' - StartValue = xFF151515 - StopValue = xFF2A82E2 - Trigger = 'IsChecked=true' - TriggerInverse = 'IsChecked=false' - end end end object TText @@ -3770,19 +3637,20 @@ object TStyleContainer Align = Client Locked = True HitTest = False - Size.Width = 100.000000000000000000 - Size.Height = 21.000000000000000000 + Size.Width = 125.666671752929700000 + Size.Height = 34.000000000000000000 Size.PlatformDefault = False TextSettings.FontColor = claWhite end end object TLayout - StyleName = 'ulcenterradiobuttonstyle' + StyleName = 'ulleftradiobuttonstyle' Align = Center Size.Width = 125.666671752929700000 Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 61 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3850,172 +3718,27 @@ object TStyleContainer end end object TLayout - StyleName = 'ulrightradiobuttonstyle' + StyleName = 'progressbarfinishstyle' Align = Center - Size.Width = 125.666671752929700000 - Size.Height = 40.000000000000000000 + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - object TLayout - Align = Bottom - Position.Y = 34.000000000000000000 - Size.Width = 125.666671752929700000 - Size.Height = 6.000000000000000000 + TabOrder = 63 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 Size.PlatformDefault = False - object TRectangle - StyleName = 'background' - Align = Contents - Corners = [TopRight, BottomRight] - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 125.666671752929700000 - Size.Height = 6.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - object TColorAnimation - StyleName = 'backgroundUlButtonColorAnimation1' - Duration = 0.000000000000000000 - Inverse = True - PropertyName = 'Fill.Color' - StartValue = xFF202020 - StopValue = xFF404040 - Trigger = 'IsMouseOver=true' - TriggerInverse = 'IsMouseOver=false' - end - object TRectangle - StyleName = 'checkmark' - Align = Contents - Corners = [TopRight, BottomRight] - Fill.Color = xFF2A82E2 - Locked = True - HitTest = False - Opacity = 0.000000000000000000 - Margins.Left = 1.000000000000000000 - Margins.Top = 1.000000000000000000 - Margins.Right = 1.000000000000000000 - Margins.Bottom = 1.000000000000000000 - Size.Width = 123.666671752929700000 - Size.Height = 4.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - object TFloatAnimation - StyleName = 'checkmarkOpacityAnimation1' - Duration = 0.000000000000000000 - PropertyName = 'Opacity' - StartValue = 0.000000000000000000 - StopValue = 1.000000000000000000 - Trigger = 'IsChecked=true' - TriggerInverse = 'IsChecked=false' - end - end - end - end - object TText - StyleName = 'text' - Align = Client - Locked = True - HitTest = False - Size.Width = 125.666671752929700000 - Size.Height = 34.000000000000000000 - Size.PlatformDefault = False - TextSettings.FontColor = claWhite - end - end - object TLayout - StyleName = 'ulleftradiobuttonstyle' - Align = Center - Size.Width = 125.666671752929700000 - Size.Height = 40.000000000000000000 - Size.PlatformDefault = False - Visible = False - object TLayout - Align = Bottom - Position.Y = 34.000000000000000000 - Size.Width = 125.666671752929700000 - Size.Height = 6.000000000000000000 - Size.PlatformDefault = False - object TRectangle - StyleName = 'background' - Align = Contents - Corners = [TopLeft, BottomLeft] - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 125.666671752929700000 - Size.Height = 6.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 - object TColorAnimation - StyleName = 'backgroundUlButtonColorAnimation1' - Duration = 0.000000000000000000 - Inverse = True - PropertyName = 'Fill.Color' - StartValue = xFF202020 - StopValue = xFF404040 - Trigger = 'IsMouseOver=true' - TriggerInverse = 'IsMouseOver=false' - end - object TRectangle - StyleName = 'checkmark' - Align = Contents - Corners = [TopLeft, BottomLeft] - Fill.Color = xFF2A82E2 - Locked = True - HitTest = False - Opacity = 0.000000000000000000 - Margins.Left = 1.000000000000000000 - Margins.Top = 1.000000000000000000 - Margins.Right = 1.000000000000000000 - Margins.Bottom = 1.000000000000000000 - Size.Width = 123.666671752929700000 - Size.Height = 4.000000000000000000 - Size.PlatformDefault = False - Stroke.Kind = None - object TFloatAnimation - StyleName = 'checkmarkOpacityAnimation1' - Duration = 0.000000000000000000 - PropertyName = 'Opacity' - StartValue = 0.000000000000000000 - StopValue = 1.000000000000000000 - Trigger = 'IsChecked=true' - TriggerInverse = 'IsChecked=false' - end - end - end - end - object TText - StyleName = 'text' - Align = Client - Locked = True - HitTest = False - Size.Width = 125.666671752929700000 - Size.Height = 34.000000000000000000 - Size.PlatformDefault = False - TextSettings.FontColor = claWhite - end - end - object TLayout - StyleName = 'progressbarstyle' - Align = Center - Size.Width = 66.599998474121090000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Visible = False - object TRectangle - StyleName = 'htrack' - Align = Contents - Fill.Color = xFF202020 - Locked = True - HitTest = False - Size.Width = 66.599998474121090000 - Size.Height = 56.399997711181640000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 + Stroke.Color = xFF151515 object TRectangle StyleName = 'hindicator' Align = Left - Fill.Color = xFF2A82E2 + Fill.Color = xFF2CE244 Locked = True HitTest = False Margins.Left = 1.000000000000000000 @@ -4043,7 +3766,7 @@ object TStyleContainer object TRectangle StyleName = 'vindicator' Align = Bottom - Fill.Color = xFF2A82E2 + Fill.Color = xFF2CE244 Locked = True HitTest = False Margins.Left = 1.000000000000000000 @@ -4066,6 +3789,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 64 object TRectangle StyleName = 'bgrectangle' Align = Contents @@ -4164,6 +3888,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 65 object TPath StyleName = 'Path1' Align = Center @@ -4196,6 +3921,7 @@ object TStyleContainer Size.Height = 33.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 66 object TLayout Align = Left Size.Width = 24.000000000000000000 @@ -4268,6 +3994,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 67 object TRectangle StyleName = 'Rectangle1' Align = Contents @@ -4294,6 +4021,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 68 object TBrushObject StyleName = 'foreground' end @@ -4422,6 +4150,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 69 object TRectangle StyleName = 'vtrack' Align = Contents @@ -4486,6 +4215,7 @@ object TStyleContainer StyleName = 'aniindicatorstyle' Align = Center Visible = False + TabOrder = 70 object TArc StyleName = 'Arc' Align = Contents @@ -4495,7 +4225,9 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Stroke.Color = claWhite - Stroke.Thickness = 2.000000000000000000 + Stroke.Thickness = 4.000000000000000000 + Stroke.Cap = Round + Stroke.Join = Bevel EndAngle = -90.000000000000000000 object TFloatAnimation StyleName = 'ani' @@ -4516,6 +4248,7 @@ object TStyleContainer Size.Height = 2.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 71 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -4554,6 +4287,7 @@ object TStyleContainer Size.Height = 164.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 72 object TRectangle StyleName = 'background' Align = Contents @@ -4571,6 +4305,7 @@ object TStyleContainer Size.Height = 96.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 73 object TRectangle StyleName = 'background' Align = Client @@ -4652,6 +4387,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False + TabOrder = 75 object TRectangle StyleName = 'htrack' Align = Contents @@ -4706,6 +4442,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 76 object TPath StyleName = 'Path1' Align = Center @@ -4786,19 +4523,18 @@ object TStyleContainer Size.Width = 47.000000000000000000 Size.Height = 40.000000000000000000 Size.PlatformDefault = False - Text = 'Text' TextSettings.FontColor = claWhite TextSettings.WordWrap = False TextSettings.HorzAlign = Leading end end object TRectangle - Align = FitLeft + Align = Contents Fill.Kind = None HitTest = False Margins.Bottom = 1.000000000000000000 Sides = [Left] - Size.Width = 68.717956542968750000 + Size.Width = 87.000000000000000000 Size.Height = 39.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF2A82E2 @@ -4812,6 +4548,7 @@ object TStyleContainer Size.Height = 259.000000000000000000 Size.PlatformDefault = False Visible = False + TabOrder = 77 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x0FFFFFFF @@ -4914,7 +4651,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 124 + TabOrder = 119 FixedHeight = 50 object TGlyph StyleName = 'glyphstyle' @@ -4966,6 +4703,7 @@ object TStyleContainer Size.Width = 50.000000000000000000 Size.Height = 50.000000000000000000 Size.PlatformDefault = False + Text = 'Text' TextSettings.FontColor = claWhite end object TLayout @@ -5004,7 +4742,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 126 + TabOrder = 123 FixedHeight = 24 object TGlyph StyleName = 'glyphstyle' @@ -5096,7 +4834,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 123 + TabOrder = 122 FixedHeight = 50 object TGlyph StyleName = 'glyphstyle' @@ -5239,7 +4977,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 121 + TabOrder = 118 FixedHeight = 50 object TGlyph StyleName = 'glyphstyle' @@ -5327,7 +5065,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 122 + TabOrder = 121 FixedHeight = 50 object TGlyph StyleName = 'glyphstyle' @@ -5608,4 +5346,424 @@ object TStyleContainer Stroke.Color = xFF151515 Visible = False end + object TLayout + StyleName = 'progressbarminifinishstyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + TabOrder = 74 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Size.Width = 50.000000000000000000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF404040 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFF2CE244 + Locked = True + HitTest = False + Position.Y = 35.399997711181640000 + Size.Width = 66.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + object TLayout + StyleName = 'progressbarstyle' + Align = Center + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Visible = False + TabOrder = 62 + object TRectangle + StyleName = 'htrack' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TRectangle + StyleName = 'hindicator' + Align = Left + Fill.Color = xFF2A82E2 + Locked = True + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 1.000000000000000000 + Size.Width = 50.000000000000000000 + Size.Height = 54.399997711181640000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + object TRectangle + StyleName = 'vtrack' + Align = Contents + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 66.599998474121090000 + Size.Height = 56.399997711181640000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TRectangle + StyleName = 'vindicator' + Align = Bottom + Fill.Color = xFF2A82E2 + Locked = True + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Position.X = 1.000000000000000000 + Position.Y = 34.399997711181640000 + Size.Width = 64.599998474121090000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + object TLayout + StyleName = 'windowborderstyle' + Align = Center + Size.Width = 351.666687011718800000 + Size.Height = 179.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 57 + object TRectangle + StyleName = 'mask' + Align = Contents + Fill.Color = xFF101010 + Size.Width = 351.666687011718800000 + Size.Height = 179.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + Visible = False + end + object TLayout + StyleName = 'left' + Align = MostLeft + Locked = True + Position.Y = 32.000000000000000000 + Size.Width = 4.000000000000000000 + Size.Height = 147.000000000000000000 + Size.PlatformDefault = False + object TRectangle + Align = MostLeft + Fill.Color = xFF202020 + HitTest = False + Sides = [Left, Right] + Size.Width = 4.000000000000000000 + Size.Height = 143.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TRectangle + StyleName = 'Rectangle1' + Align = MostBottom + EnableDragHighlight = False + Fill.Color = xFF202020 + HitTest = False + Position.Y = 143.000000000000000000 + Sides = [Left, Bottom] + Size.Width = 4.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'Layout3' + Align = MostRight + Position.X = 3.000000000000000000 + Size.Width = 1.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'Rectangle1' + Align = Top + Fill.Color = xFF151515 + HitTest = False + Size.Width = 1.000000000000000000 + Size.Height = 1.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + end + object TLayout + StyleName = 'right' + Align = MostRight + Locked = True + Position.X = 347.666687011718800000 + Position.Y = 32.000000000000000000 + Size.Width = 4.000000000000000000 + Size.Height = 147.000000000000000000 + Size.PlatformDefault = False + object TRectangle + Align = MostRight + Fill.Color = xFF202020 + HitTest = False + Sides = [Left, Right] + Size.Width = 4.000000000000000000 + Size.Height = 143.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TRectangle + StyleName = 'Rectangle1' + Align = MostBottom + EnableDragHighlight = False + Fill.Color = xFF202020 + HitTest = False + Position.Y = 143.000000000000000000 + Sides = [Bottom, Right] + Size.Width = 4.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'Layout3' + Align = MostLeft + Size.Width = 1.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'Rectangle1' + Align = Top + Fill.Color = xFF151515 + HitTest = False + Size.Width = 1.000000000000000000 + Size.Height = 1.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + end + end + object TRectangle + Align = MostTop + Fill.Color = xFF202020 + Locked = True + HitTest = False + Size.Width = 351.666687011718800000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + object TLayout + StyleName = 'caption' + Align = Contents + Locked = True + HitTest = True + Margins.Left = 4.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Size.Width = 343.666687011718800000 + Size.Height = 28.000000000000000000 + Size.PlatformDefault = False + end + object TLayout + Align = Client + Locked = True + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 349.666687011718800000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + object TLayout + Align = Left + Locked = True + Size.Width = 9.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + end + object TLayout + StyleName = 'icon' + Locked = True + Position.X = 9.000000000000000000 + Position.Y = 7.000000000000000000 + Size.Width = 25.000000000000000000 + Size.Height = 21.000000000000000000 + Size.PlatformDefault = False + end + object TLayout + StyleName = 'sysbtns' + Align = Client + Locked = True + Size.Width = 340.666687011718800000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + object TSpeedButton + StyleName = 'close' + Align = Right + Locked = True + Position.X = 290.666687011718800000 + Size.Width = 50.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'closebuttonstyle' + end + object TSpeedButton + StyleName = 'max' + Align = Right + Locked = True + Position.X = 258.666687011718800000 + Size.Width = 32.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'maxbuttonstyle' + end + object TSpeedButton + StyleName = 'res' + Align = Right + Locked = True + Position.X = 226.666687011718800000 + Size.Width = 32.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'resbuttonstyle' + end + object TSpeedButton + StyleName = 'min' + Align = Right + Locked = True + Position.X = 194.666687011718800000 + Size.Width = 32.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'minbuttonstyle' + end + object TText + StyleName = 'title' + Align = Client + Locked = True + HitTest = False + Size.Width = 194.666687011718800000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + Text = 'Title' + TextSettings.FontColor = claWhite + end + end + end + end + object TLayout + StyleName = 'client' + Align = Client + Locked = True + HitTest = True + Size.Width = 343.666687011718800000 + Size.Height = 143.000000000000000000 + Size.PlatformDefault = False + end + object TLayout + StyleName = 'bottom' + Align = Bottom + Locked = True + Position.X = 4.000000000000000000 + Position.Y = 175.000000000000000000 + Size.Width = 343.666687011718800000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + object TRectangle + StyleName = 'rect' + Align = Bottom + Fill.Color = xFF202020 + HitTest = False + Sides = [Top, Bottom] + Size.Width = 343.666687011718800000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + end + end + object TLayout + StyleName = 'splitterstyle' + Align = Center + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + TabOrder = 36 + object TLayout + StyleName = 'grip' + Align = Client + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + object TCircle + StyleName = 'Circle1' + Align = Center + Fill.Color = xFF404040 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TCircle + StyleName = 'Circle2' + Align = Center + Fill.Color = xFF404040 + Margins.Top = 20.000000000000000000 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TCircle + StyleName = 'Circle3' + Align = Center + Fill.Color = xFF404040 + Margins.Bottom = 20.000000000000000000 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + end + end end From 65b16746f2d66589596fe7ab978fa90a55b1a29b Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 4 May 2021 02:30:30 +1000 Subject: [PATCH 16/29] Updated gitgnore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9ce2c5b..307cc90 100644 --- a/.gitignore +++ b/.gitignore @@ -44,11 +44,13 @@ *.a *.o *.ocx +*.res # Delphi autogenerated files (duplicated info) *.cfg *.hpp -*Resource.rc + +#*Resource.rc # Delphi local files (user-specific info) *.local From 108c86b41e6f244099b611a7c1aa4cc4fb49fd03 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 4 May 2021 02:31:34 +1000 Subject: [PATCH 17/29] Added new custom component. Removed useless .fmx file --- src/AErender_LauncherResource.rc | 4 + .../Test Project/CompLabelUnit.Macintosh.fmx | 6 - .../Package/FMX.RenderProgress.pas | 280 ++ .../Package/FMX.RenderProgress.rc | 1 + .../Package/RenderProgress.dpk | 37 + .../Package/RenderProgress.dproj | 746 ++++ .../Package/RenderProgressDesign.style | 109 + .../RenderProgressComponent.groupproj | 48 + .../Test Project/RenderProgressTest.dpr | 15 + .../Test Project/RenderProgressTest.dproj | 941 +++++ .../Test Project/RenderProgressTestUnit.fmx | 3638 +++++++++++++++++ .../Test Project/RenderProgressTestUnit.pas | 29 + 12 files changed, 5848 insertions(+), 6 deletions(-) create mode 100644 src/AErender_LauncherResource.rc delete mode 100644 src/lib/Components/TCompLabel/Test Project/CompLabelUnit.Macintosh.fmx create mode 100644 src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas create mode 100644 src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.rc create mode 100644 src/lib/Components/TRenderProgress/Package/RenderProgress.dpk create mode 100644 src/lib/Components/TRenderProgress/Package/RenderProgress.dproj create mode 100644 src/lib/Components/TRenderProgress/Package/RenderProgressDesign.style create mode 100644 src/lib/Components/TRenderProgress/RenderProgressComponent.groupproj create mode 100644 src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dpr create mode 100644 src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dproj create mode 100644 src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.fmx create mode 100644 src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.pas diff --git a/src/AErender_LauncherResource.rc b/src/AErender_LauncherResource.rc new file mode 100644 index 0000000..073496c --- /dev/null +++ b/src/AErender_LauncherResource.rc @@ -0,0 +1,4 @@ +Language_EN RCDATA "..\\lang\\en-US.aerlang" +Language_RU RCDATA "..\\lang\\ru-RU.aerlang" +AEPARSER_MAC RCDATA "lib\\plugins\\AEP Parser\\aeparser_mac" +AEPARSER_WIN RCDATA "lib\\plugins\\AEP Parser\\aeparser_win.exe" diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.Macintosh.fmx b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.Macintosh.fmx deleted file mode 100644 index f91c9ce..0000000 --- a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.Macintosh.fmx +++ /dev/null @@ -1,6 +0,0 @@ -inherited Form1_Macintosh: TForm1_Macintosh - DesignerMasterStyle = 0 - inherited CompLabel1: TCompLabel - Position.X = 32.000000000000000000 - end -end diff --git a/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas new file mode 100644 index 0000000..c601444 --- /dev/null +++ b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas @@ -0,0 +1,280 @@ +unit FMX.RenderProgress; + +interface + +uses + System.SysUtils, System.Classes, System.Types, + FMX.Types, FMX.Controls, FMX.StdCtrls, FMX.Controls.Presentation, FMX.Styles, FMX.Memo; + +type + TRenderProgress = class(TStyledControl) + private + FComposition, FStatus: String; + FValue, FInFrame, FOutFrame: Single; + FLog: TStrings; + + function GetComposition: String; + procedure SetComposition(Value: String); + + function GetStatus: String; + procedure SetStatus(Value: String); + + function GetValue: Single; + procedure SetValue(Value: Single); + + function GetInFrame: Single; + procedure SetInFrame(Value: Single); + + function GetOutFrame: Single; + procedure SetOutFrame(Value: Single); + + function GetLog: TStrings; + procedure SetLog(Value: TStrings); + + procedure LogButtonClick(Sender: TObject); + protected + function GetStyleObject: TFmxObject; override; + procedure ApplyStyle; override; + public + constructor Create(AOwner: TComponent); override; + published + // Inherited props + property Align default TAlignLayout.None; + property HitTest default True; + property Position; + property Size; + property Height; + property Width; + property Tag; + //property DragMode; + //property EnableDragHighlight; + + // Inherited events + //property OnClick; + + // Implemeted props + property Composition: String read GetComposition write SetComposition; + property Status: String read GetStatus write SetStatus; + property Value: Single read GetValue write SetValue; + property InFrame: Single read GetInFrame write SetInFrame; + property OutFrame: Single read GetOutFrame write SetOutFrame; + property Log: TStrings read GetLog write SetLog; + + // Implemented events + + end; + +procedure Register; + +implementation + +{$R *.res} + +{ TRenderProgress } + +function TRenderProgress.GetStyleObject: TFmxObject; +const + Style = 'renderprogressstyle'; +begin + if StyleLookup = '' then begin + Result := TControl(TStyleStreaming.LoadFromResource(HInstance, Style, RT_RCDATA)); + exit; + end; + Result := inherited GetStyleObject; +end; + +{$REGION ' Composition '} + +function TRenderProgress.GetComposition: String; +begin + var Base: TFmxObject := FindStyleResource('comp'); + if Base <> nil then + FComposition := TLabel(Base).Text; + + Result := FComposition; +end; + +procedure TRenderProgress.SetComposition(Value: String); +begin + FComposition := Value; + var Base: TFmxObject := FindStyleResource('comp'); + if Base <> nil then + TLabel(Base).Text := Value; +end; + +{$ENDREGION} + +{$REGION ' Status '} + +function TRenderProgress.GetStatus: String; +begin + var Base: TFmxObject := FindStyleResource('status'); + if Base <> nil then + FStatus := TLabel(Base).Text; + + Result := FStatus; +end; + +procedure TRenderProgress.SetStatus(Value: String); +begin + FStatus := Value; + var Base: TFmxObject := FindStyleResource('status'); + if Base <> nil then + TLabel(Base).Text := Value; +end; + +{$ENDREGION} + +{$REGION ' Value '} + +function TRenderProgress.GetValue: Single; +begin + var Base: TFmxObject := FindStyleResource('progressbar'); + if Base <> nil then begin + FValue := TProgressBar(Base).Value; + end; + + Result := FValue; +end; + +procedure TRenderProgress.SetValue(Value: Single); +begin + FValue := Value; + var Base: TFmxObject := FindStyleResource('progressbar'); + if Base <> nil then begin + TProgressBar(Base).Value := Value; + + var FramesBase: TFmxObject := FindStyleResource('frames'); + if FramesBase <> nil then begin + TLabel(FramesBase).Text := Format('%s / %s', [IntToStr(Trunc(FValue)), IntToStr(Trunc(FOutFrame))]); + end; + + end; +end; + +{$ENDREGION} + +{$REGION ' InFrame '} + +function TRenderProgress.GetInFrame: Single; +begin + var Base: TFmxObject := FindStyleResource('progressbar'); + if Base <> nil then begin + FInFrame := TProgressBar(Base).Min; + end; + + Result := FValue; +end; + +procedure TRenderProgress.SetInFrame(Value: Single); +begin + FInFrame := Value; + var Base: TFmxObject := FindStyleResource('progressbar'); + if Base <> nil then + TProgressBar(Base).Min := Value; + + var FramesBase: TFmxObject := FindStyleResource('frames'); + if FramesBase <> nil then begin + TLabel(FramesBase).Text := Format('%s / %s', [IntToStr(Trunc(FValue)), IntToStr(Trunc(FOutFrame))]); + end; +end; + +{$ENDREGION} + +{$REGION ' OutFrame '} + +function TRenderProgress.GetOutFrame: Single; +begin + var Base: TFmxObject := FindStyleResource('progressbar'); + if Base <> nil then begin + FOutFrame := TProgressBar(Base).Max; + end; + + Result := FValue; +end; + +procedure TRenderProgress.SetOutFrame(Value: Single); +begin + FOutFrame := Value; + var Base: TFmxObject := FindStyleResource('progressbar'); + if Base <> nil then + TProgressBar(Base).Max := Value; + + var FramesBase: TFmxObject := FindStyleResource('frames'); + if FramesBase <> nil then begin + TLabel(FramesBase).Text := Format('%s / %s', [IntToStr(Trunc(FValue)), IntToStr(Trunc(FOutFrame))]); + end; +end; + +{$ENDREGION} + +{$REGION ' Log '} + +function TRenderProgress.GetLog: TStrings; +begin + var Base: TFmxObject := FindStyleResource('log'); + if Base <> nil then begin + FLog := TMemo(Base).Lines; + end; + + Result := FLog; +end; + +procedure TRenderProgress.SetLog(Value: TStrings); +begin + FLog := Value; + var Base: TFmxObject := FindStyleResource('log'); + if Base <> nil then + TMemo(Base).Lines := Value; +end; + +{$ENDREGION} + +procedure TRenderProgress.LogButtonClick(Sender: TObject); +begin + var LogMemo: TFmxObject := FindStyleResource('log'); + var Panel: TFmxObject := FindStyleResource('renderprogressstyle'); + if (LogMemo <> nil) and (Panel <> nil) then + if TMemo(LogMemo).Visible = False then begin + TMemo(LogMemo).Visible := True; + TPanel(Panel).Height := TPanel(Panel).Height + 192; + end else begin + TMemo(LogMemo).Visible := False; + TPanel(Panel).Height := TPanel(Panel).Height - 192; + end; +end; + +procedure TRenderProgress.ApplyStyle; +begin + inherited; + SetComposition(FComposition); + SetStatus(FStatus); + SetValue(FValue); + SetInFrame(FInFrame); + SetOutFrame(FOutFrame); + SetLog(FLog); + + var LogButtonBase: TFmxObject := FindStyleResource('logbutton'); + if LogButtonBase <> nil then + TButton(LogButtonBase).OnClick := Self.LogButtonClick; +end; + +constructor TRenderProgress.Create(AOwner: TComponent); +begin + inherited; + Composition := 'CompName'; + Status := '...'; + Value := -1; + InFrame := 0; + OutFrame := 100; + //Log := TStrings.Create; + Height := 240; + Width := 480; +end; + +procedure Register; +begin + RegisterComponents('AErender Launcher', [TRenderProgress]); +end; + +end. diff --git a/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.rc b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.rc new file mode 100644 index 0000000..da892a6 --- /dev/null +++ b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.rc @@ -0,0 +1 @@ +renderprogressstyle RCDATA "RenderProgressDesign.style" \ No newline at end of file diff --git a/src/lib/Components/TRenderProgress/Package/RenderProgress.dpk b/src/lib/Components/TRenderProgress/Package/RenderProgress.dpk new file mode 100644 index 0000000..40c85b9 --- /dev/null +++ b/src/lib/Components/TRenderProgress/Package/RenderProgress.dpk @@ -0,0 +1,37 @@ +package RenderProgress; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$IMPLICITBUILD ON} + +requires + rtl, + fmx; + +contains + FMX.RenderProgress in 'FMX.RenderProgress.pas'; + +end. diff --git a/src/lib/Components/TRenderProgress/Package/RenderProgress.dproj b/src/lib/Components/TRenderProgress/Package/RenderProgress.dproj new file mode 100644 index 0000000..7357f9d --- /dev/null +++ b/src/lib/Components/TRenderProgress/Package/RenderProgress.dproj @@ -0,0 +1,746 @@ + + + {3B13A4E7-7192-42E7-B8F9-5C6D741D583D} + RenderProgress.dpk + 19.0 + FMX + True + Debug + Win32 + 1 + Package + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + true + true + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + All + RenderProgress + + + None + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + rtl;fmx;$(DCC_UsePackage) + + + None + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + rtl;fmx;$(DCC_UsePackage) + + + None + rtl;fmx;$(DCC_UsePackage) + + + None + rtl;fmx;$(DCC_UsePackage) + + + rtl;fmx;$(DCC_UsePackage) + + + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + rtl;fmx;$(DCC_UsePackage) + + + rtl;fmx;$(DCC_UsePackage) + + + DEBUG;$(DCC_Define) + true + false + true + true + true + + + false + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + + MainSource + + + + + +
    FMX.RenderProgress.res
    +
    + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
    + + Delphi.Personality.12 + Package + + + + RenderProgress.dpk + + + + False + False + False + False + False + True + False + + + + + true + + + + + true + + + + + true + + + + + RenderProgress.bpl + true + + + + + 1 + + + 0 + + + + + classes + 1 + + + classes + 1 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + 1 + + + 1 + + + 0 + + + + + 1 + .framework + + + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + + + 12 + + + + +
    diff --git a/src/lib/Components/TRenderProgress/Package/RenderProgressDesign.style b/src/lib/Components/TRenderProgress/Package/RenderProgressDesign.style new file mode 100644 index 0000000..ad62160 --- /dev/null +++ b/src/lib/Components/TRenderProgress/Package/RenderProgressDesign.style @@ -0,0 +1,109 @@ +object TLayout + StyleName = 'renderprogressstyle' + Align = Center + Size.Width = 572.000000000000000000 + Size.Height = 240.000000000000000000 + Size.PlatformDefault = False + object TPanel + StyleName = 'bgpanel' + Align = Client + Size.Width = 572.000000000000000000 + Size.Height = 240.000000000000000000 + Size.PlatformDefault = False + object TLabel + StyleName = 'comp' + Align = MostLeft + StyledSettings = [Family, Style, FontColor] + Margins.Left = 16.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Position.X = 16.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Size = 16.000000000000000000 + Text = 'Composition' + end + object TLabel + StyleName = 'frames' + Align = MostRight + AutoSize = True + StyledSettings = [Family, FontColor] + Margins.Left = 8.000000000000000000 + Margins.Right = 16.000000000000000000 + Position.X = 449.000000000000000000 + Size.Width = 59.000000000000000000 + Size.Height = 48.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Size = 16.000000000000000000 + TextSettings.WordWrap = False + Text = '56 / 600' + end + object TButton + StyleName = 'logbutton' + Align = MostRight + Position.X = 524.000000000000000000 + Size.Width = 48.000000000000000000 + Size.Height = 48.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'logbuttonstyle' + end + object TLabel + StyleName = 'status' + Align = Top + StyledSettings = [Family, Size, FontColor] + Margins.Left = 16.000000000000000000 + Margins.Top = 8.000000000000000000 + Position.X = 152.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 289.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.StyleExt = {00070000000000000004000000} + Text = 'Status Text' + end + object TProgressBar + StyleName = 'progressbar' + Align = Client + HitTest = False + Orientation = Horizontal + Margins.Left = 16.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Bottom = 16.000000000000000000 + Size.Width = 391.000000000000000000 + Size.Height = 3.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'progressbarministyle' + Value = 50.000000000000000000 + Visible = False + end + object TAniIndicator + StyleName = 'ani' + Align = Client + Enabled = True + StyleLookup = 'aniindicatorhorzstyle' + HitTest = False + Margins.Left = 16.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Bottom = 16.000000000000000000 + Size.Width = 289.000000000000000000 + Size.Height = 3.000000000000000000 + Size.PlatformDefault = False + end + object TMemo + StyleName = 'log' + Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] + DataDetectorTypes = [] + StyledSettings = [Style, FontColor] + TextSettings.Font.Family = 'Consolas' + Align = MostBottom + Position.Y = 48.000000000000000000 + Size.Width = 572.000000000000000000 + Size.Height = 192.000000000000000000 + Size.PlatformDefault = False + Viewport.Width = 568.000000000000000000 + Viewport.Height = 188.000000000000000000 + end + end +end diff --git a/src/lib/Components/TRenderProgress/RenderProgressComponent.groupproj b/src/lib/Components/TRenderProgress/RenderProgressComponent.groupproj new file mode 100644 index 0000000..693f187 --- /dev/null +++ b/src/lib/Components/TRenderProgress/RenderProgressComponent.groupproj @@ -0,0 +1,48 @@ + + + {C7B9F1BA-6D22-4F9E-B690-1ED1812117BB} + + + + + + + + + + + Default.Personality.12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dpr b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dpr new file mode 100644 index 0000000..38cf13a --- /dev/null +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dpr @@ -0,0 +1,15 @@ +program RenderProgressTest; + +uses + System.StartUpCopy, + FMX.Forms, + FMX.RenderProgress in '..\Package\FMX.RenderProgress.pas', + RenderProgressTestUnit in 'RenderProgressTestUnit.pas' {Form1}; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dproj b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dproj new file mode 100644 index 0000000..860aa29 --- /dev/null +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dproj @@ -0,0 +1,941 @@ + + + {73109990-37B6-4CBC-B9F2-EF5F15457694} + 19.0 + FMX + True + Debug + Win32 + 37907 + Application + RenderProgressTest.dpr + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + true + true + true + true + true + true + true + true + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\delphi_PROJECTICNS.icns + RenderProgressTest + + + DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + Debug + true + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + + + DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + Debug + true + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + + + DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;TMSFMXPackPkgDXE13;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) + CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers + iPhoneAndiPad + true + Debug + $(MSBuildProjectName) + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png + + + DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) + + + DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;fgx;DBXInformixDriver;IndyIPClient;CompLabel;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) + CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers + Debug + true + + + DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;bindcompvclsmp;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;TMSFMXPackPkgDXE13;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vcledge;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;fgx;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;CompLabel;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;bindcompvclsmp;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vcledge;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;fgx;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;CompLabel;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + DEBUG;$(DCC_Define) + true + false + true + true + true + + + false + true + PerMonitorV2 + + + true + PerMonitorV2 + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + true + PerMonitorV2 + + + true + PerMonitorV2 + + + + MainSource + + + +
    Form1
    +
    + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
    + + Delphi.Personality.12 + Application + + + + RenderProgressTest.dpr + + + + True + True + True + False + True + True + True + + + + + true + + + + + true + + + + + true + + + + + RenderProgressTest.exe + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + classes + 1 + + + classes + 1 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + 1 + + + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + + + 12 + + + + +
    diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.fmx b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.fmx new file mode 100644 index 0000000..2b3d5af --- /dev/null +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.fmx @@ -0,0 +1,3638 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + Caption = 'Form1' + ClientHeight = 447 + ClientWidth = 1054 + StyleBook = StyleBook2 + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [Desktop] + DesignerMasterStyle = 0 + object Layout1: TLayout + Align = Center + Enabled = False + Size.Width = 690.000000000000000000 + Size.Height = 256.000000000000000000 + Size.PlatformDefault = False + Visible = False + object Panel1: TPanel + Align = Top + Margins.Left = 8.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 674.000000000000000000 + Size.Height = 240.000000000000000000 + Size.PlatformDefault = False + object Label1: TLabel + Align = MostLeft + StyledSettings = [Family, Style, FontColor] + Margins.Left = 16.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Position.X = 16.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 120.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Size = 16.000000000000000000 + Text = 'Composition' + end + object Label2: TLabel + Align = MostRight + AutoSize = True + StyledSettings = [Family, FontColor] + Margins.Left = 8.000000000000000000 + Margins.Right = 16.000000000000000000 + Position.X = 551.000000000000000000 + Size.Width = 59.000000000000000000 + Size.Height = 48.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.Size = 16.000000000000000000 + TextSettings.WordWrap = False + Text = '56 / 600' + end + object Button1: TButton + Align = MostRight + Position.X = 626.000000000000000000 + Size.Width = 48.000000000000000000 + Size.Height = 48.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'logbuttonstyle' + end + object Label3: TLabel + Align = Top + StyledSettings = [Family, Size, FontColor] + Margins.Left = 16.000000000000000000 + Margins.Top = 8.000000000000000000 + Position.X = 152.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 391.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + TextSettings.Font.StyleExt = {00070000000000000004000000} + Text = 'Status Text' + end + object ProgressBar1: TProgressBar + Align = Client + HitTest = False + Orientation = Horizontal + Margins.Left = 16.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Bottom = 16.000000000000000000 + Size.Width = 391.000000000000000000 + Size.Height = 3.000000000000000000 + Size.PlatformDefault = False + StyleLookup = 'progressbarministyle' + Value = 50.000000000000000000 + Visible = False + end + object AniIndicator1: TAniIndicator + Align = Client + Enabled = True + StyleLookup = 'aniindicatorhorzstyle' + HitTest = False + Margins.Left = 16.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Bottom = 16.000000000000000000 + Size.Width = 391.000000000000000000 + Size.Height = 3.000000000000000000 + Size.PlatformDefault = False + end + object Memo1: TMemo + Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] + DataDetectorTypes = [] + StyledSettings = [Family, FontColor] + Align = MostBottom + Position.Y = 48.000000000000000000 + Size.Width = 674.000000000000000000 + Size.Height = 192.000000000000000000 + Size.PlatformDefault = False + Viewport.Width = 670.000000000000000000 + Viewport.Height = 188.000000000000000000 + end + end + end + object StyleBook1: TStyleBook + Styles = < + item + ResourcesBin = { + 464D585F5354594C4520322E3501061372656E64657270726F67726573737374 + 796C65037608005450463007544C61796F757400095374796C654E616D650613 + 72656E64657270726F67726573737374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000000008F08400B53697A652E486569 + 6768740500000000000000F006401453697A652E506C6174666F726D44656661 + 756C740800065450616E656C00095374796C654E616D650607626770616E656C + 05416C69676E0706436C69656E740A53697A652E576964746805000000000000 + 008F08400B53697A652E4865696768740500000000000000F006401453697A65 + 2E506C6174666F726D44656661756C74080006544C6162656C00095374796C65 + 4E616D650604636F6D7005416C69676E07084D6F73744C6566740E5374796C65 + 6453657474696E67730B0646616D696C79055374796C6509466F6E74436F6C6F + 72000C4D617267696E732E4C65667405000000000000008003400B4D61726769 + 6E732E546F7005000000000000008002400E4D617267696E732E426F74746F6D + 05000000000000008002400A506F736974696F6E2E5805000000000000008003 + 400A506F736974696F6E2E5905000000000000008002400A53697A652E576964 + 74680500000000000000F005400B53697A652E48656967687405000000000000 + 008004401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E742E53697A65050000000000000080034004546578 + 74060B436F6D706F736974696F6E000006544C6162656C00095374796C654E61 + 6D6506066672616D657305416C69676E07094D6F73745269676874084175746F + 53697A65090E5374796C656453657474696E67730B0646616D696C7909466F6E + 74436F6C6F72000C4D617267696E732E4C65667405000000000000008002400D + 4D617267696E732E526967687405000000000000008003400A506F736974696F + 6E2E580500000000000080E007400A53697A652E576964746805000000000000 + 00EC04400B53697A652E4865696768740500000000000000C004401453697A65 + 2E506C6174666F726D44656661756C7408165465787453657474696E67732E46 + 6F6E742E53697A650500000000000000800340155465787453657474696E6773 + 2E576F72645772617008045465787406083536202F2036303000000754427574 + 746F6E00095374796C654E616D6506096C6F67627574746F6E05416C69676E07 + 094D6F737452696768740A506F736974696F6E2E580500000000000000830840 + 0A53697A652E57696474680500000000000000C004400B53697A652E48656967 + 68740500000000000000C004401453697A652E506C6174666F726D4465666175 + 6C74080B5374796C654C6F6F6B7570060E6C6F67627574746F6E7374796C6500 + 0006544C6162656C00095374796C654E616D65060673746174757305416C6967 + 6E0703546F700E5374796C656453657474696E67730B0646616D696C79045369 + 7A6509466F6E74436F6C6F72000C4D617267696E732E4C656674050000000000 + 00008003400B4D617267696E732E546F7005000000000000008002400A506F73 + 6974696F6E2E5805000000000000009806400A506F736974696F6E2E59050000 + 00000000008002400A53697A652E576964746805000000000000809007400B53 + 697A652E48656967687405000000000000008803401453697A652E506C617466 + 6F726D44656661756C74081A5465787453657474696E67732E466F6E742E5374 + 796C654578740A0D000000000700000000000000040000000454657874060B53 + 7461747573205465787400000C5450726F677265737342617200095374796C65 + 4E616D65060B70726F677265737362617205416C69676E0706436C69656E7407 + 48697454657374080B4F7269656E746174696F6E070A486F72697A6F6E74616C + 0C4D617267696E732E4C65667405000000000000008003400B4D617267696E73 + 2E546F7005000000000000008001400E4D617267696E732E426F74746F6D0500 + 0000000000008003400A53697A652E57696474680500000000000080C307400B + 53697A652E4865696768740500000000000000C000401453697A652E506C6174 + 666F726D44656661756C74080B5374796C654C6F6F6B7570061470726F677265 + 73736261726D696E697374796C650556616C75650500000000000000C8044007 + 56697369626C650800000D54416E69496E64696361746F7200095374796C654E + 616D650603616E6905416C69676E0706436C69656E7407456E61626C6564090B + 5374796C654C6F6F6B75700615616E69696E64696361746F72686F727A737479 + 6C650748697454657374080C4D617267696E732E4C6566740500000000000000 + 8003400B4D617267696E732E546F7005000000000000008001400E4D61726769 + 6E732E426F74746F6D05000000000000008003400A53697A652E576964746805 + 000000000000809007400B53697A652E4865696768740500000000000000C000 + 401453697A652E506C6174666F726D44656661756C7408000005544D656D6F00 + 095374796C654E616D6506036C6F6719546F7563682E496E7465726163746976 + 6547657374757265730B0350616E074C6F6E6754617009446F75626C65546170 + 0011446174614465746563746F7254797065730B000E5374796C656453657474 + 696E67730B055374796C6509466F6E74436F6C6F720018546578745365747469 + 6E67732E466F6E742E46616D696C790608436F6E736F6C617305416C69676E07 + 0A4D6F7374426F74746F6D0A506F736974696F6E2E590500000000000000C004 + 400A53697A652E576964746805000000000000008F08400B53697A652E486569 + 6768740500000000000000C006401453697A652E506C6174666F726D44656661 + 756C74080E56696577706F72742E576964746805000000000000008E08400F56 + 696577706F72742E4865696768740500000000000000BC064000000000} + end> + Left = 24 + Top = 24 + end + object StyleBook2: TStyleBook + Styles = < + item + ResourcesBin = { + 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 + AF00060B627574746F6E7374796C6503BA040609656469747374796C6503A305 + 060A6C6162656C7374796C65031501060D67726F7570626F787374796C650383 + 02060D747261636B6261727374796C65038107060D636865636B626F78737479 + 6C6503880506147363726F6C6C62617268747261636B7374796C65033B010614 + 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 + 6172626F74746F6D627574746F6E03220406137363726F6C6C6261726C656674 + 627574746F6E03390406147363726F6C6C6261727269676874627574746F6E03 + 3A0406127363726F6C6C626172746F70627574746F6E033804060E7363726F6C + 6C6261727374796C65035804060A7468756D627374796C65033B02060B737769 + 7463687374796C6503D101060D636F6D626F626F787374796C6503F607060E63 + 6F6D626F656469747374796C65038209060F746162636F6E74726F6C7374796C + 65039C01060B746162646F747374796C65035901060C7461626974656D737479 + 6C6503E404060D7468756D626261727374796C65034F03060C6C697374626F78 + 7374796C6503A207060D6C697374626F78666F6F74657203800106106C697374 + 626F786974656D7374796C65031B0306126C697374626F78706C61696E686561 + 646572033B020609677269647374796C65039808060F6865616465726974656D + 7374796C6503C303061970726F67726573736261726D696E696572726F727374 + 796C65035603061170726F677265737363656C6C7374796C65039A0206106D65 + 6E756261726974656D7374796C6503250B060C6D656E756261727374796C6503 + 6C02060D6D656E756974656D7374796C6503520B06126D656E75736570617261 + 746F727374796C65037801060D6D656E75766965777374796C65039102060E69 + 6D61676563656C6C7374796C65033201060E706F70757063656C6C7374796C65 + 03C603060D7465787463656C6C7374796C65039B0106096D656D6F7374796C65 + 03DC07060E6C696E6B6C6162656C7374796C65034503060E7374617475736261 + 727374796C6503E401060C7370696E626F787374796C65035407060D73697A65 + 677269707374796C6503F004060C746F6F6C6261727374796C6503CA00061570 + 726F67726573736261726572726F727374796C65036404060F64726F70746172 + 6765747374796C65036804061464726F707461726765746669656C647374796C + 6503890E060C706F706F7665727374796C65032A02060D706F707570626F7873 + 74796C6503320606147374617475736261726E6F677269707374796C6503D400 + 0613736D616C6C7363726F6C6C6261727374796C6503A301060D73706C697474 + 65727374796C650360040610636C6F7365627574746F6E7374796C6503660406 + 0E6D6178627574746F6E7374796C6503F603060E726573627574746F6E737479 + 6C65030F04060E6D696E627574746F6E7374796C65030E04060F746F6F6C7769 + 6E646F777374796C6503B20D061177696E646F77626F726465727374796C6503 + 4A100610726164696F627574746F6E7374796C6503AE050618756C63656E7465 + 72726164696F627574746F6E7374796C650352050617756C7269676874726164 + 696F627574746F6E7374796C650355050616756C6C656674726164696F627574 + 746F6E7374796C65035005061670726F677265737362617266696E6973687374 + 796C65036504060D657870616E6465727374796C650366060613657870616E64 + 6572627574746F6E7374796C650376020615657870616E646572636865636B62 + 6F787374796C6503D005060E6C6162656C66696C6C7374796C6503B801061363 + 6F6D626F656469746572726F727374796C65038709061E70726F677265737362 + 6172696E64657465726D696E61626C657374796C650379040611616E69696E64 + 696361746F727374796C6503DF010615616E69696E64696361746F72686F727A + 7374796C65038A02060A70616E656C7374796C65031E01060E6C6F6762757474 + 6F6E7374796C65038A07061470726F67726573736261726D696E697374796C65 + 035103061B7472656576696577657870616E646572627574746F6E7374796C65 + 037E02061174726565766965776974656D7374796C65031405060D7472656576 + 6965777374796C650336070619616374696F6E746F6F6C627574746F6E6D756C + 746976696577033F07060E616464627574746F6E7374796C65032C070617696E + 666F746F6F6C627574746F6E6D756C74697669657703A90D061B6F7267616E69 + 7A65746F6F6C627574746F6E6D756C74697669657703EE06061B73657474696E + 6773746F6F6C627574746F6E6D756C746976696577037D13061172656D6F7665 + 627574746F6E7374796C6503CF060614706F7075706261636B67726F756E6473 + 74796C6503BA00061A70726F67726573736261726D696E6966696E6973687374 + 796C65035703061070726F67726573736261727374796C65035F040054504630 + 0A5452656374616E676C6500095374796C654E616D65060F6261636B67726F75 + 6E647374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463244324432440A53697A652E576964746805000000000000009407 + 400B53697A652E4865696768740500000000000080D206401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0756697369626C650800005450463007544C61796F757400095374796C654E61 + 6D65060B627574746F6E7374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000C805400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0706436C69656E740C436C697043 + 68696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E310844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 + 746F7056616C756507097846463430343034300754726967676572063049734D + 6F7573654F7665723D747275653B4973507265737365643D66616C73653B4973 + 466F63757365643D66616C73650E54726967676572496E766572736506314973 + 4D6F7573654F7665723D66616C73653B4973507265737365643D66616C73653B + 4973466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D617469 + 6F6E32084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3430343034300953746F7056616C756507097846463137353739430754726967 + 676572062F4973507265737365643D747275653B49734D6F7573654F7665723D + 747275653B4973466F63757365643D66616C736500000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E + 696D6174696F6E33084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463241383245320953746F7056616C75650709784646313735373943 + 0754726967676572062E4973507265737365643D747275653B49734D6F757365 + 4F7665723D747275653B4973466F63757365643D747275650E54726967676572 + 496E7665727365062F4973507265737365643D66616C73653B49734D6F757365 + 4F7665723D747275653B4973466F63757365643D747275650000000554546578 + 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 + 13456E61626C6544726167486967686C69676874080748697454657374080A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 74650000005450463007544C61796F757400095374796C654E616D6506096564 + 69747374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C805400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08000C5442727573684F626A65637400095374796C654E616D65060A666F7265 + 67726F756E6400000C5442727573684F626A65637400095374796C654E616D65 + 060973656C656374696F6E0B42727573682E436F6C6F72070978393632413832 + 453200000B54466F6E744F626A65637400095374796C654E616D650604666F6E + 7409466F6E742E53697A650500000000000000D0024000000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 31353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614656469745374726F6B65416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060C5374726F6B652E + 436F6C6F720A537461727456616C756507097846463135313531350953746F70 + 56616C756507097846463241383245320754726967676572060E4973466F6375 + 7365643D747275650E54726967676572496E7665727365060F4973466F637573 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650614656469745374726F6B65416E696D6174696F6E320844757261 + 74696F6E050000000000000000000007496E7665727365090C50726F70657274 + 794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75650709 + 7846463135313531350953746F7056616C756507097846463443344334430754 + 726967676572062149734D6F7573654F7665723D747275653B4973466F637573 + 65643D66616C73653B0E54726967676572496E7665727365062249734D6F7573 + 654F7665723D66616C73653B4973466F63757365643D66616C73653B00000007 + 544C61796F757400095374796C654E616D650607627574746F6E7305416C6967 + 6E07055269676874064C6F636B6564090B4D617267696E732E546F7005000000 + 000000008000400D4D617267696E732E52696768740500000000000000800040 + 0E4D617267696E732E426F74746F6D05000000000000008000400A506F736974 + 696F6E2E580500000000000000C004400A506F736974696F6E2E590500000000 + 0000008000400A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C7408000007544C61796F757400095374796C654E616D650607 + 636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D61 + 7267696E732E4C65667405000000000000008001400B4D617267696E732E546F + 7005000000000000008000400D4D617267696E732E5269676874050000000000 + 00008000400E4D617267696E732E426F74746F6D05000000000000008000400A + 53697A652E57696474680500000000000000A804400B53697A652E4865696768 + 740500000000000000A803401453697A652E506C6174666F726D44656661756C + 7408000006544C6162656C00095374796C654E616D65060670726F6D7074064C + 6F636B656409074F706163697479050000000000000080FE3F16546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465045465787406 + 04546578740000005450463007544C61796F757400095374796C654E616D6506 + 0A6C6162656C7374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000C805400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C740807566973 + 69626C65080005545465787400095374796C654E616D6506047465787405416C + 69676E0708436F6E74656E74730748697454657374080A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 + 3007544C61796F757400095374796C654E616D65060D67726F7570626F787374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000F004400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65 + 0748697454657374080C4D617267696E732E4C6566740500000000000000C000 + 400B4D617267696E732E546F7005000000000000009002400D4D617267696E73 + 2E52696768740500000000000000C000400E4D617267696E732E426F74746F6D + 0500000000000000C000400A53697A652E57696474680500000000000000D804 + 400B53697A652E48656967687405000000000000009804401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 3135313531350005545465787400095374796C654E616D650604746578740841 + 75746F53697A65090A436C6970506172656E74090748697454657374080C4D61 + 7267696E732E4C6566740500000000000000A002400A506F736974696F6E2E58 + 05000000000060559502400A506F736974696F6E2E590500000000004055D501 + C00A53697A652E576964746805000000000000B8C703400B53697A652E486569 + 6768740500000000000060FF02401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 5768697465155465787453657474696E67732E576F7264577261700800000000 + 5450463007544C61796F757400095374796C654E616D65060D747261636B6261 + 727374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C805 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 0B46697865644865696768740211000A5452656374616E676C6500095374796C + 654E616D65060668747261636B05416C69676E070A5665727443656E7465720A + 46696C6C2E436F6C6F7207097846463135313531350748697454657374080A50 + 6F736974696F6E2E590500000000000000BC04400A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000A001 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946696C + 6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C4D61 + 7267696E732E4C6566740500000000000000C001400B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 0000C001400E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E57696474680500000000000000B005400B53697A652E4865696768 + 740500000000000000C000401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C + 6500095374796C654E616D650609686967686C6967687405416C69676E07044C + 6566740A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 74080C50616464696E672E4C6566740500000000000000A002400A53697A652E + 57696474680500000000000000F003400B53697A652E48656967687405000000 + 00000000A001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666656374000853 + 6F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846 + 46324138324532074F706163697479050000000000000080FF3F07456E61626C + 6564080000000A5452656374616E676C6500095374796C654E616D6506067674 + 7261636B05416C69676E070A486F727A43656E7465720A46696C6C2E436F6C6F + 7207097846463135313531350748697454657374080A506F736974696F6E2E58 + 0500000000000000BC04400A53697A652E57696474680500000000000000A001 + 400B53697A652E4865696768740500000000000000C805401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E + 6F6E65064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 740500000000000000C001400B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E52696768740500000000000000C001400E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 6805000000000000000000000B53697A652E4865696768740500000000000000 + C405401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E + 616D650609686967686C6967687405416C69676E0703546F700A46696C6C2E43 + 6F6C6F7207097846463241383245320748697454657374080A53697A652E5769 + 6474680500000000000000A001400B53697A652E486569676874050000000000 + 0000F003401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6500000B54476C6F774566666563740008536F66 + 746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F72070978464632 + 4138324532074F706163697479050000000000000080FF3F07456E61626C6564 + 0800000006545468756D6200095374796C654E616D650606687468756D62064C + 6F636B6564090A506F736974696F6E2E580500000000003033AB03400A506F73 + 6974696F6E2E59050000000000FFFFA304400A53697A652E5769647468050000 + 0000000000F002400B53697A652E4865696768740500000000000000F0024014 + 53697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75 + 70060D7468756D626261727374796C65000006545468756D6200095374796C65 + 4E616D650606767468756D62064C6F636B6564090A506F736974696F6E2E5805 + 0000000000CBCCA804400A506F736974696F6E2E590500000000009899B10340 + 0A53697A652E57696474680500000000000000F002400B53697A652E48656967 + 68740500000000000000F002401453697A652E506C6174666F726D4465666175 + 6C74080B5374796C654C6F6F6B7570060D7468756D626261727374796C650000 + 005450463007544C61796F757400095374796C654E616D65060D636865636B62 + 6F787374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 050000000000ACAA8006400B53697A652E486569676874050000000000585599 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 080007544C61796F75740005416C69676E07044C6566740A53697A652E576964 + 746805000000000000009003400B53697A652E48656967687405000000000058 + 559904401453697A652E506C6174666F726D44656661756C7408000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A53697A652E57696474680500000000000000F00240 + 0B53697A652E4865696768740500000000000000F002401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 3531353135000A5452656374616E676C6500095374796C654E616D65060A5265 + 6374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F + 720709784646324138324532074869745465737408074F706163697479050000 + 00000000000000000C4D617267696E732E4C6566740500000000000000800040 + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 + 000000000000008000400A53697A652E57696474680500000000000000B00240 + 0B53697A652E4865696768740500000000000000B002401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54466C6F6174416E696D6174696F6E00095374796C654E616D65061B636865 + 6368626F7856697362696C697479416E696D6174696F6E31084475726174696F + 6E05000000000000000000000C50726F70657274794E616D6506074F70616369 + 74790A537461727456616C756505000000000000000000000953746F7056616C + 75650500000000000000C805400754726967676572060E4973436865636B6564 + 3D747275650E54726967676572496E7665727365060F4973436865636B65643D + 66616C73650000000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650618636865636B626F785374726F6B65416E696D6174696F6E31084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060C + 5374726F6B652E436F6C6F720A537461727456616C7565070978464631353135 + 31350953746F7056616C75650709784646324138324532075472696767657206 + 0E4973436865636B65643D747275650E54726967676572496E7665727365060F + 4973436865636B65643D66616C736500000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650617636865636B626F78436F6C6F72416E696D61 + 74696F6E31084475726174696F6E05000000000000000000000C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463230323032300953746F7056616C75650709784646343034303430075472 + 6967676572061049734D6F7573654F7665723D747275650E5472696767657249 + 6E7665727365061149734D6F7573654F7665723D66616C736500000000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E740A53697A652E57696474680500000000005855DD05400B53697A652E4865 + 6967687405000000000058559904401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 615768697465000000545046300A5452656374616E676C6500095374796C654E + 616D6506147363726F6C6C62617268747261636B7374796C6505416C69676E07 + 0643656E7465720A46696C6C2E436F6C6F720709784646313531353135074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369 + 626C65080006545468756D6200095374796C654E616D6506057468756D62064C + 6F636B6564090A53697A652E576964746805000000000000008003400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B7570060A7468756D627374796C + 65000000545046300A5452656374616E676C6500095374796C654E616D650614 + 7363726F6C6C62617276747261636B7374796C6505416C69676E070643656E74 + 65720A46696C6C2E436F6C6F7207097846463135313531350748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C650800 + 06545468756D6200095374796C654E616D6506057468756D62064C6F636B6564 + 090A53697A652E57696474680500000000000000C804400B53697A652E486569 + 67687405000000000000008003401453697A652E506C6174666F726D44656661 + 756C74080B5374796C654C6F6F6B7570060A7468756D627374796C6500000054 + 50463007544C61796F757400095374796C654E616D6506157363726F6C6C6261 + 72626F74746F6D627574746F6E05416C69676E070643656E7465720756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846463137353739430754726967676572061F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E + 54726967676572496E766572736506204973507265737365643D66616C73653B + 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0005545061746800095374796C654E616D650605506174683105416C69676E07 + 06436C69656E7409446174612E506174680A3400000004000000000000000000 + C8420000C84201000000000096430000C8420100000000004843000096430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080A53697A652E57696474680500000000000000A002400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 005450463007544C61796F757400095374796C654E616D6506137363726F6C6C + 6261726C656674627574746F6E05416C69676E070643656E7465720756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846463137353739430754726967676572061F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E + 54726967676572496E766572736506204973507265737365643D66616C73653B + 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0005545061746800095374796C654E616D650605506174683105416C69676E07 + 06436C69656E7409446174612E506174680A3400000004000000000000000000 + C8420000C84201000000000096430000C8420100000000004843000096430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080D526F746174696F6E416E676C650500000000000000B405 + 400A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 + 4C61796F757400095374796C654E616D6506147363726F6C6C62617272696768 + 74627574746F6E05416C69676E070643656E7465720756697369626C6508000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0706436C69656E740C436C69704368696C6472656E090A436C + 6970506172656E74090A46696C6C2E436F6C6F72070978464632303230323007 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463230323032300953746F7056616C7565070978 + 46463430343034300754726967676572062049734D6F7573654F7665723D7472 + 75653B4973507265737365643D66616C73650E54726967676572496E76657273 + 65062149734D6F7573654F7665723D66616C73653B4973507265737365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463430343034300953746F70 + 56616C756507097846463137353739430754726967676572061F497350726573 + 7365643D747275653B49734D6F7573654F7665723D747275650E547269676765 + 72496E766572736506204973507265737365643D66616C73653B49734D6F7573 + 654F7665723D7472756500000007544C61796F757400095374796C654E616D65 + 06074C61796F75743105416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000A002400B53697A652E48656967687405000000000000 + 00C001401453697A652E506C6174666F726D44656661756C7408000554506174 + 6800095374796C654E616D650605506174683105416C69676E0706436C69656E + 7409446174612E506174680A3400000004000000000000000000C8420000C842 + 01000000000096430000C842010000000000484300009643030000000000C842 + 0000C8420A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080D526F746174696F6E416E676C650500000000000000B405C00A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000C001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 + 00095374796C654E616D6506127363726F6C6C626172746F70627574746F6E05 + 416C69676E070643656E7465720756697369626C6508000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 06436C69656E740C436C69704368696C6472656E090A436C6970506172656E74 + 090A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646343034303430 + 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463430343034300953746F7056616C7565070978 + 46463137353739430754726967676572061F4973507265737365643D74727565 + 3B49734D6F7573654F7665723D747275650E54726967676572496E7665727365 + 06204973507265737365643D66616C73653B49734D6F7573654F7665723D7472 + 756500000007544C61796F757400095374796C654E616D6506074C61796F7574 + 3105416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000A002400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080005545061746800095374796C65 + 4E616D650605506174683105416C69676E0706436C69656E7409446174612E50 + 6174680A3400000004000000000000000000C8420000C8420100000000009643 + 0000C842010000000000484300009643030000000000C8420000C8420A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080D526F746174 + 696F6E416E676C650500000000000000B406400A53697A652E57696474680500 + 000000000000A002400B53697A652E4865696768740500000000000000C00140 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000000005450463007544C61796F757400095374796C654E + 616D65060E7363726F6C6C6261727374796C6505416C69676E070643656E7465 + 720756697369626C6508000754427574746F6E00095374796C654E616D65060A + 6C656674627574746F6E05416C69676E07044C656674064C6F636B6564090A50 + 6F736974696F6E2E5905000000000000008003400A53697A652E576964746805 + 000000000000008003400B53697A652E48656967687405000000000000009003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B757006137363726F6C6C6261726C656674627574746F6E0000075442757474 + 6F6E00095374796C654E616D65060B7269676874627574746F6E05416C69676E + 07055269676874064C6F636B6564090A506F736974696F6E2E58050000000000 + 00008804400A506F736974696F6E2E5905000000000000008003400A53697A65 + 2E576964746805000000000000008003400B53697A652E486569676874050000 + 00000000009003401453697A652E506C6174666F726D44656661756C74080B53 + 74796C654C6F6F6B757006147363726F6C6C6261727269676874627574746F6E + 00000754427574746F6E00095374796C654E616D65060C626F74746F6D627574 + 746F6E05416C69676E0706426F74746F6D064C6F636B6564090A506F73697469 + 6F6E2E5905000000000000008804400A53697A652E5769647468050000000000 + 0000C804400B53697A652E48656967687405000000000000008003401453697A + 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75700615 + 7363726F6C6C626172626F74746F6D627574746F6E00000654547261636B0009 + 5374796C654E616D65060668747261636B05416C69676E0706436C69656E7406 + 4C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A + 53697A652E576964746805000000000000009003400B53697A652E4865696768 + 7405000000000000009003401453697A652E506C6174666F726D44656661756C + 74080B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B73 + 74796C6500000654547261636B00095374796C654E616D65060676747261636B + 05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E74617469 + 6F6E070A486F72697A6F6E74616C0A53697A652E576964746805000000000000 + 009003400B53697A652E48656967687405000000000000009003401453697A65 + 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570061473 + 63726F6C6C62617276747261636B7374796C6500000754427574746F6E000953 + 74796C654E616D650609746F70627574746F6E05416C69676E0703546F700A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 05000000000000008003401453697A652E506C6174666F726D44656661756C74 + 080B5374796C654C6F6F6B757006127363726F6C6C626172746F70627574746F + 6E000000545046300A5452656374616E676C6500095374796C654E616D65060A + 7468756D627374796C6505416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463444344434440748697454657374080A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E69 + 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463444344434440953746F7056616C7565070978464631373537394307 + 54726967676572060E4973507265737365643D747275650E5472696767657249 + 6E7665727365060F4973507265737365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463444344434440953746F7056616C75650707636C6147726179 + 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 + 6572496E7665727365061149734D6F7573654F7665723D66616C736500000054 + 5046300D545377697463684F626A65637400095374796C654E616D65060B7377 + 697463687374796C6505416C69676E070643656E746572044B696E64070C4661 + 64696E67547261636B730A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C740812547261636B696E675468756D625363616C65 + 050000000000000080FF3F0756697369626C65080A46696C6C2E436F6C6F7207 + 097846463230323032300C46696C6C4F6E2E436F6C6F72070978464631373537 + 39430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F6B652E4B696E + 6407044E6F6E650B5468756D622E436F6C6F7207097846463430343034300D54 + 68756D624F6E2E436F6C6F7207097846463241383245320C5468756D624F6E2E + 4B696E640705536F6C6964105468756D625374726F6B652E4B696E6407044E6F + 6E650F5468756D625374726F6B652E4361700705526F756E64105468756D6253 + 74726F6B652E446173680706437573746F6D105468756D625374726F6B652E4A + 6F696E0705526F756E64165468756D625374726F6B652E437573746F6D446173 + 680A08000000000000000000000000005450463007544C61796F757400095374 + 796C654E616D65060D636F6D626F626F787374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000C5442727573684F626A6563740009 + 5374796C654E616D65060A666F726567726F756E6400000B54466F6E744F626A + 65637400095374796C654E616D650604666F6E7409466F6E742E53697A650500 + 000000000000D00240000007544C61796F757400095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0708436F6E74656E74730A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 + 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080A53697A652E57696474680500000000000000 + C805400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E650007544C61796F757400095374796C654E616D650611427574746F6E5374 + 796C654F626A65637405416C69676E070846697452696768740B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A506F736974696F6E2E580500000000005ED99705400A506F73697469 + 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 + 889AB803400B53697A652E4865696768740500000000000000B803401453697A + 652E506C6174666F726D44656661756C74080007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720C4D61 + 7267696E732E4C656674050000000000000080FF3F0A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080005545061746800 + 095374796C654E616D650605506174683105416C69676E0706436C69656E7409 + 446174612E506174680A3400000004000000000000000000C8420000C8420100 + 0000000096430000C842010000000000484300009643030000000000C8420000 + C8420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0A53697A652E57696474680500000000000000A002400B53697A652E48656967 + 68740500000000000000C001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572063049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C73650E5472 + 6967676572496E7665727365063149734D6F7573654F7665723D66616C73653B + 4973507265737365643D66616C73653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463430343034300953746F7056616C7565 + 07097846463137353739430754726967676572062F4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463241383245320953746F70 + 56616C756507097846463137353739430754726967676572062E497350726573 + 7365643D747275653B49734D6F7573654F7665723D747275653B4973466F6375 + 7365643D747275650E54726967676572496E7665727365062F49735072657373 + 65643D66616C73653B49734D6F7573654F7665723D747275653B4973466F6375 + 7365643D747275650000000007544C61796F757400095374796C654E616D6506 + 07636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D + 617267696E732E4C65667405000000000000008000400B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 000000D803400E4D617267696E732E426F74746F6D0500000000000000800040 + 0A53697A652E576964746805000000000000008E05400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C74080000005450463007544C61796F757400095374796C654E616D65060E63 + 6F6D626F656469747374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000C805400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508000C5442727573684F626A65637400095374796C654E616D65 + 060A666F726567726F756E6400000B54466F6E744F626A65637400095374796C + 654E616D650604666F6E7409466F6E742E53697A650500000000000000D00240 + 000007544C61796F757400095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0708436F6E74656E74730A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070643 + 6C69656E740A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464632303230323000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E315374796C65084475726174696F6E050000000000 + 000000000007496E7665727365090C50726F70657274794E616D65060C537472 + 6F6B652E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206204973 + 4D6F7573654F7665723D747275653B4973466F63757365643D66616C73650E54 + 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 + 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E325374 + 796C65084475726174696F6E050000000000000000000007496E766572736509 + 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 + 7456616C756507097846463430343034300953746F7056616C75650709784646 + 3241383245320754726967676572061F49734D6F7573654F7665723D74727565 + 3B4973466F63757365643D747275650E54726967676572496E76657273650620 + 49734D6F7573654F7665723D747275653B4973466F63757365643D66616C7365 + 000007544C61796F757400095374796C654E616D6506056172726F7705416C69 + 676E070846697452696768740B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E + 580500000000005ED99705400A506F736974696F6E2E59050000000000000080 + FF3F0A53697A652E5769647468050000000000889AB803400B53697A652E4865 + 696768740500000000000000B803401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C6500095374796C654E616D65060A5265 + 6374616E676C653105416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F7207097846463330333033300748697454657374080A53697A652E576964 + 7468050000000000889AB803400B53697A652E48656967687405000000000000 + 00B803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614436F6C6F72416E696D6174696F6E315374796C650844 + 75726174696F6E050000000000000000000007496E7665727365090C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463330333033300953746F7056616C7565070978464634303430343007 + 54726967676572062049734D6F7573654F7665723D747275653B4973466F6375 + 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 + 654F7665723D66616C73653B4973466F63757365643D66616C736500000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 + 6E696D6174696F6E325374796C65084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463430343034300953746F7056616C75650709784646 + 3137353739430754726967676572061F4973466F63757365643D747275653B49 + 734D6F7573654F7665723D7472756500000007544C61796F757400095374796C + 654E616D6506074C61796F75743105416C69676E070643656E7465720C4D6172 + 67696E732E4C656674050000000000000080FF3F0A53697A652E576964746805 + 00000000000000A002400B53697A652E4865696768740500000000000000C001 + 401453697A652E506C6174666F726D44656661756C7408000554506174680009 + 5374796C654E616D650605506174683105416C69676E0706436C69656E740944 + 6174612E506174680A3400000004000000000000000000C8420000C842010000 + 00000096430000C842010000000000484300009643030000000000C8420000C8 + 420A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A + 53697A652E57696474680500000000000000A002400B53697A652E4865696768 + 740500000000000000C001401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E650000000000000C5442727573 + 684F626A65637400095374796C654E616D65060973656C656374696F6E0B4272 + 7573682E436F6C6F720709783936324138324532000007544C61796F75740009 + 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 0000000000F003400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E576964746805000000000000008805400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C74080000005450463007544C61796F757400095374796C654E616D6506 + 0F746162636F6E74726F6C7374796C6505416C69676E070643656E7465720A53 + 697A652E576964746805000000000000008E06400B53697A652E486569676874 + 050000000000FFFFC905401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646333033303330064C6F636B6564090748697454 + 657374080C50616464696E672E4C65667405000000000000008000400B506164 + 64696E672E546F7005000000000000008000400D50616464696E672E52696768 + 7405000000000000008000400E50616464696E672E426F74746F6D0500000000 + 0000008000400A53697A652E576964746805000000000000008E06400B53697A + 652E486569676874050000000000FFFFC905401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000000545046300A5452656374616E676C6500095374796C654E616D65060B + 746162646F747374796C6505416C69676E070643656E7465720A46696C6C2E43 + 6F6C6F7207097846463135313531350748697454657374080A53697A652E5769 + 64746805000000000000008005400B53697A652E486569676874050000000000 + 00008001401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E + 696D6174696F6E00084475726174696F6E05000000000018B7D1F23F0C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463135313531350953746F7056616C75650709784646324138324532 + 0754726967676572060F497353656C65637465643D747275650E547269676765 + 72496E76657273650610497353656C65637465643D66616C7365000000545046 + 3007544C61796F757400095374796C654E616D65060C7461626974656D737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C74080756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D650603746F7005416C69676E0708 + 436F6E74656E74730C436C69704368696C6472656E0907436F726E6572730B07 + 546F704C65667408546F705269676874000A46696C6C2E436F6C6F7207097846 + 46323032303230064C6F636B6564090748697454657374080553696465730B03 + 546F70044C656674055269676874000A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000654476C79706800095374796C654E616D65060A67 + 6C7970687374796C650C4D617267696E732E4C65667405000000000000008001 + 400D4D617267696E732E526967687405000000000000008001C005416C69676E + 07044C6566740A53697A652E576964746805000000000000008003400B53697A + 652E48656967687405000000000000008003401453697A652E506C6174666F72 + 6D44656661756C7408000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080C4D617267696E732E4C6566740500000000000000C000400B4D617267696E + 732E546F700500000000000000C000400D4D617267696E732E52696768740500 + 000000000000C000400E4D617267696E732E426F74746F6D0500000000000000 + C000400A53697A652E57696474680500000000000000B004400B53697A652E48 + 656967687405000000000000009803401453697A652E506C6174666F726D4465 + 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C615768697465155465787453657474696E67732E576F726457726170080000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650612746162 + 436F6C6F72416E696D6174696F6E310D416E696D6174696F6E54797065070549 + 6E4F7574084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464634303430343007547269 + 67676572062149734D6F7573654F7665723D747275653B497353656C65637465 + 643D66616C73650E54726967676572496E7665727365062249734D6F7573654F + 7665723D66616C73653B497353656C65637465643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650612746162436F6C6F + 72416E696D6174696F6E32084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646324138 + 3245320754726967676572060F497353656C65637465643D747275650E547269 + 67676572496E76657273650610497353656C65637465643D66616C7365000000 + 00545046300A5452656374616E676C6500095374796C654E616D65060D746875 + 6D626261727374796C6505416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463241383245320748697454657374080A53697A652E576964 + 74680500000000000000A003400B53697A652E48656967687405000000000000 + 00A003401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350756697369626C6508000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D6506147468756D62436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463241383245320953746F7056616C7565070978464631 + 37353739430754726967676572061F4973507265737365643D747275653B4973 + 4D6F7573654F7665723D747275650E54726967676572496E7665727365061049 + 73507265737365643D66616C73653B00000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F + 6E32084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 41383245320953746F7056616C75650709784646343039424646075472696767 + 6572062049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 + 3D66616C73653B4973507265737365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D6506157468756D625374726F6B65 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463135313531350953746F7056616C756507097846463137 + 353739430754726967676572061F4973507265737365643D747275653B49734D + 6F7573654F7665723D747275650E54726967676572496E7665727365060F4973 + 507265737365643D66616C73650000005450463007544C61796F757400095374 + 796C654E616D65060C6C697374626F787374796C6505416C69676E070643656E + 7465720A53697A652E5769647468050000000000FFFFE905400B53697A652E48 + 656967687405000000000000008306401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000C5442727573684F626A656374000953 + 74796C654E616D650618416C7465726E6174696E67526F774261636B67726F75 + 6E640B42727573682E436F6C6F72070978464632433243324300000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032 + 303230064C6F636B6564090748697454657374080C50616464696E672E4C6566 + 7405000000000000008000400B50616464696E672E546F700500000000000000 + 8000400D50616464696E672E526967687405000000000000008000400E506164 + 64696E672E426F74746F6D05000000000000008000400A53697A652E57696474 + 68050000000000FFFFE905400B53697A652E4865696768740500000000000000 + 8306401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F7207097846463135313531350007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C436C69 + 704368696C6472656E090A53697A652E5769647468050000000000FFFFC10540 + 0B53697A652E4865696768740500000000000000DE05401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72070978464632 + 41383245320748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000A5452656374616E676C6500095374796C654E616D650610666F63 + 7573656473656C656374696F6E0A46696C6C2E436F6C6F720709784646324138 + 3245320748697454657374080A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650B5374726F6B652E446173680703446F740000000A545363726F6C6C426172 + 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 + 696768740B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E0708566572746963616C0A506F736974696F6E2E5805000000 + 0000FFFFC505400A506F736974696F6E2E5905000000000000008000400A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 00000000000000DE05401453697A652E506C6174666F726D44656661756C7408 + 00000A545363726F6C6C42617200095374796C654E616D65060A687363726F6C + 6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500 + 0000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E7461 + 6C0A506F736974696F6E2E5805000000000000008000400A506F736974696F6E + 2E590500000000000000E205400A53697A652E5769647468050000000000FFFF + E105400B53697A652E48656967687405000000000000008003401453697A652E + 506C6174666F726D44656661756C740800000F54536D616C6C5363726F6C6C42 + 617200095374796C654E616D65060F76736D616C6C7363726F6C6C6261720541 + 6C69676E070552696768740B536D616C6C4368616E6765050000000000000000 + 00000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E73 + 2E4C65667405000000000000008000400A506F736974696F6E2E580500000000 + 000000C605400A506F736974696F6E2E5905000000000000008000400A53697A + 652E576964746805000000000000008002400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C740807 + 56697369626C650800000F54536D616C6C5363726F6C6C42617200095374796C + 654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F + 74746F6D0B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005 + 000000000000008000400A506F736974696F6E2E580500000000000000800040 + 0A506F736974696F6E2E590500000000000000E205400A53697A652E57696474 + 6805000000000000009606400B53697A652E4865696768740500000000000000 + 8002401453697A652E506C6174666F726D44656661756C74080756697369626C + 65080000000B54476C6F774566666563740008536F66746E6573730500000000 + 00CDCCCCFC3F09476C6F77436F6C6F720709784646463639453244074F706163 + 6974790500000000006666E6FE3F0754726967676572060E4973466F63757365 + 643D7472756507456E61626C6564080000005450463007544C61796F75740009 + 5374796C654E616D65060D6C697374626F78666F6F74657205416C69676E0706 + 43656E7465720A53697A652E576964746805000000000000009205400B53697A + 652E4865696768740500000000000000D003401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C65080005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C6566740500000000000000A001 + 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 + 2E52696768740500000000000000A001400E4D617267696E732E426F74746F6D + 05000000000000008000400A53697A652E57696474680500000000000000FC04 + 400B53697A652E4865696768740500000000000000B003401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D6506106C697374626F786974656D7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000D605400B + 53697A652E4865696768740500000000000000C003401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508000654476C797068000953 + 74796C654E616D65060A676C7970687374796C650C4D617267696E732E4C6566 + 7405000000000000008000400B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E526967687405000000000000008000400E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F05416C69676E07044C65 + 66740A53697A652E576964746805000000000000008003400B53697A652E4865 + 6967687405000000000000008003401453697A652E506C6174666F726D446566 + 61756C7408000005545465787400095374796C654E616D650604746578740541 + 6C69676E0706436C69656E740748697454657374080C4D617267696E732E4C65 + 66740500000000000000C000400B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E52696768740500000000000000C000400E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A53697A652E576964 + 74680500000000000000CA05400B53697A652E48656967687405000000000000 + 00B003401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974651554657874 + 53657474696E67732E576F72645772617008165465787453657474696E67732E + 486F727A416C69676E07074C656164696E6700000954436865636B426F780009 + 5374796C654E616D650605636865636B05416C69676E07084D6F73744C656674 + 0843616E466F637573081244697361626C65466F637573456666656374090A53 + 697A652E57696474680500000000000000A003400B53697A652E486569676874 + 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 + 080756697369626C65080000005450463007544C61796F757400095374796C65 + 4E616D6506126C697374626F78706C61696E68656164657205416C69676E0706 + 43656E7465720A53697A652E576964746805000000000000009205400B53697A + 652E4865696768740500000000000000D003401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F720709784646324432443244064C6F636B + 6564090748697454657374080A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000005545465787400095374796C654E616D65060474657874 + 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080C + 4D617267696E732E4C6566740500000000000000A001400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 00000000A001400E4D617267696E732E426F74746F6D05000000000000008000 + 400A53697A652E57696474680500000000000000FC04400B53697A652E486569 + 6768740500000000000000B003401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 57686974650000005450463007544C61796F757400095374796C654E616D6506 + 09677269647374796C6505416C69676E070643656E7465720A53697A652E5769 + 647468050000000000FFFFE905400B53697A652E486569676874050000000000 + 00008306401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508000C5442727573684F626A65637400095374796C654E616D65061841 + 6C7465726E6174696E67526F774261636B67726F756E640B42727573682E436F + 6C6F72070978333237383738373800000C5442727573684F626A656374000953 + 74796C654E616D6506086C696E6566696C6C0B42727573682E436F6C6F720709 + 78464631353135313500000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080C50616464696E672E4C65667405000000000000008000400B506164 + 64696E672E546F7005000000000000008000400D50616464696E672E52696768 + 7405000000000000008000400E50616464696E672E426F74746F6D0500000000 + 0000008000400A53697A652E5769647468050000000000FFFFE905400B53697A + 652E48656967687405000000000000008306401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 3500075448656164657200095374796C654E616D650606686561646572055369 + 6465730B03546F70044C65667406426F74746F6D0552696768740005416C6967 + 6E0703546F700748697454657374080A506F736974696F6E2E58050000000000 + 00008000400A506F736974696F6E2E5905000000000000008000400A53697A65 + 2E5769647468050000000000FFFFE105400B53697A652E486569676874050000 + 0000000000A803401453697A652E506C6174666F726D44656661756C74080000 + 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 + 676E0706436C69656E740C436C69704368696C6472656E090A53697A652E5769 + 647468050000000000FFFFC105400B53697A652E486569676874050000000000 + 0000B405401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060973656C656374696F6E0A4669 + 6C6C2E436F6C6F720709784646324138324532074869745465737408074F7061 + 63697479050000000000000080FD3F0A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6500000A5452656374616E676C6500095374796C654E616D650605666F + 6375730A46696C6C2E436F6C6F72070978414632413832453207486974546573 + 74080C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507595261646975 + 730500000000000000C000400000000A545363726F6C6C42617200095374796C + 654E616D65060A767363726F6C6C62617205416C69676E070552696768740B53 + 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F + 6E0708566572746963616C0A506F736974696F6E2E58050000000000FFFFC505 + 400A506F736974696F6E2E590500000000000000B803400A53697A652E576964 + 746805000000000000008003400B53697A652E48656967687405000000000000 + 00B405401453697A652E506C6174666F726D44656661756C740800000A545363 + 726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261720541 + 6C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000000000 + 0000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F7369 + 74696F6E2E5805000000000000008000400A506F736974696F6E2E5905000000 + 00000000E205400A53697A652E5769647468050000000000FFFFE105400B5369 + 7A652E48656967687405000000000000008003401453697A652E506C6174666F + 726D44656661756C740800000F54536D616C6C5363726F6C6C42617200095374 + 796C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E0705 + 52696768740B536D616C6C4368616E676505000000000000000000000B4F7269 + 656E746174696F6E0708566572746963616C0C4D617267696E732E4C65667405 + 000000000000008000400A506F736974696F6E2E580500000000000000C60540 + 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 + 6805000000000000008002400B53697A652E4865696768740500000000000000 + 8002401453697A652E506C6174666F726D44656661756C74080756697369626C + 650800000F54536D616C6C5363726F6C6C42617200095374796C654E616D6506 + 0F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B53 + 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F + 6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000000000 + 008000400A506F736974696F6E2E5805000000000000008000400A506F736974 + 696F6E2E590500000000000000E205400A53697A652E57696474680500000000 + 0000009606400B53697A652E4865696768740500000000000000800240145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650800000000 + 5450463007544C61796F757400095374796C654E616D65060F68656164657269 + 74656D7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 6805000000000000009205400B53697A652E4865696768740500000000000000 + D003401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508000A5452656374616E676C6500095374796C654E616D65060A6261636B67 + 726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646344334433443064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000000009205400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615686561646572436F6C6F72 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463443344334430953746F7056616C7565070978464632413832 + 45320754726967676572060E4973507265737365643D747275650E5472696767 + 6572496E7665727365060F4973507265737365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D65061668656164657253 + 74726F6B65416E696D6174696F6E31084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53 + 7461727456616C756507097846463135313531350953746F7056616C75650709 + 7846463241383245320754726967676572060E4973507265737365643D747275 + 650E54726967676572496E7665727365060F4973507265737365643D66616C73 + 6500000005545465787400095374796C654E616D6506047465787405416C6967 + 6E0706436C69656E74064C6F636B6564090748697454657374080C4D61726769 + 6E732E4C6566740500000000000000A001400B4D617267696E732E546F700500 + 0000000000008000400D4D617267696E732E52696768740500000000000000A0 + 01400E4D617267696E732E426F74746F6D05000000000000008000400A53697A + 652E57696474680500000000000000FC04400B53697A652E4865696768740500 + 000000000000B003401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 0000005450463007544C61796F757400095374796C654E616D65061970726F67 + 726573736261726D696E696572726F727374796C6505416C69676E070643656E + 7465720A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000A5452656374616E676C650009537479 + 6C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646343034303430064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A54526563 + 74616E676C6500095374796C654E616D65060A68696E64696361746F7205416C + 69676E07044C6566740A46696C6C2E436F6C6F72070978464645323241324106 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E650000000A5452656374616E676C6500095374796C654E616D650606 + 76747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646343034303430064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009 + 5374796C654E616D65060A76696E64696361746F7205416C69676E0706426F74 + 746F6D0A46696C6C2E436F6C6F720709784646453232413241064C6F636B6564 + 090748697454657374080A506F736974696F6E2E5905000000000099998D0440 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C + 61796F757400095374796C654E616D65061170726F677265737363656C6C7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000F805400B53697A652E4865696768740500000000000000FC05401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000754 + 4C61796F757400095374796C654E616D65060668747261636B05416C69676E07 + 08436F6E74656E7473064C6F636B6564090C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E + 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 + 000000000000F005400B53697A652E4865696768740500000000000000F40540 + 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 + 6C6500095374796C654E616D65060A68696E64696361746F7205416C69676E07 + 044C6566740A46696C6C2E436F6C6F720709784646324138324532064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 + 0080FF3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000F005401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 + 095374796C654E616D6506106D656E756261726974656D7374796C6505416C69 + 676E070643656E7465720C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C650005416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646324138324532074869745465737408074F70616369747905000000 + 000017B7D1F13F0A53697A652E576964746805000000000000009205400B5369 + 7A652E4865696768740500000000000000D003401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5446 + 6C6F6174416E696D6174696F6E00084475726174696F6E05000000000018B7D1 + F23F0C50726F70657274794E616D6506074F7061636974790A53746172745661 + 6C756505000000000000000000000953746F7056616C75650500000000000000 + 80FF3F0754726967676572060F497353656C65637465643D747275650E547269 + 67676572496E76657273650610497353656C65637465643D66616C7365000000 + 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646324138324532074869745465737408074F70616369747905000000000017 + B7D1F13F0A53697A652E576964746805000000000000009205400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F61 + 74416E696D6174696F6E00084475726174696F6E05000000000018B7D1F23F0C + 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 + 05000000000000000000000953746F7056616C7565050000000000000080FF3F + 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 + 6572496E7665727365061149734D6F7573654F7665723D66616C736500000007 + 544C61796F757400095374796C654E616D650605676C79706805416C69676E07 + 044C6566740A53697A652E57696474680500000000000000C803400B53697A65 + 2E4865696768740500000000000000D003401453697A652E506C6174666F726D + 44656661756C74080007544C61796F757400095374796C654E616D6506096368 + 65636B6D61726B05416C69676E0708436F6E74656E7473074F70616369747905 + 00000000006F1283F53F0A53697A652E57696474680500000000000000C80340 + 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 + 74666F726D44656661756C7408000554506174680005416C69676E070643656E + 74657209446174612E506174680A58000000070000000000000056D9524391AE + 2C43010000009276664365021643010000009F3983432B7C3C43010000009E9A + A64382D2B442010000006F1CB04375A4D1420100000026DF8243263F67430300 + 000056D9524391AE2C430A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080A53697A652E57696474680500000000000000B002400B53 + 697A652E4865696768740500000000000000B002401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F + 54466C6F6174416E696D6174696F6E00084475726174696F6E050000000000CD + CCCCFB3F0C50726F70657274794E616D6506074F7061636974790A5374617274 + 56616C756505000000000000000000000953746F7056616C7565050000000000 + 000080FF3F0754726967676572060E4973436865636B65643D747275650E5472 + 6967676572496E7665727365060F4973436865636B65643D66616C7365000000 + 0654476C79706800095374796C654E616D65060A676C7970687374796C650C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 000000C000400E4D617267696E732E426F74746F6D050000000000000080FF3F + 05416C69676E070552696768740A53697A652E57696474680500000000000000 + 8003400B53697A652E48656967687405000000000000008003401453697A652E + 506C6174666F726D44656661756C740800000654496D61676500095374796C65 + 4E616D6506066269746D61700E4D756C74695265734269746D61700E01000005 + 416C69676E0708436F6E74656E74730C4D617267696E732E4C65667405000000 + 000000008000400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E526967687405000000000000008000400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 00000000A803400B53697A652E4865696768740500000000000000B003401453 + 697A652E506C6174666F726D44656661756C7408000000055454657874000953 + 74796C654E616D6506047465787405416C69676E07044C656674064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + 8002400D4D617267696E732E526967687405000000000000008002400A506F73 + 6974696F6E2E5805000000000000008404400A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E + 67732E466F6E74436F6C6F720708636C61576869746516546578745365747469 + 6E67732E486F727A416C69676E07074C656164696E6700000554546578740009 + 5374796C654E616D65060873686F727463757405416C69676E07055269676874 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 000000000000C002400D4D617267696E732E52696768740500000000000000C0 + 01400A506F736974696F6E2E580500000000000000C000C00A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 + 7453657474696E67732E486F727A416C69676E07074C656164696E6700000754 + 4C61796F757400095374796C654E616D6506077375626D61726B05416C69676E + 070552696768740A506F736974696F6E2E580500000000000000D404400A5369 + 7A652E57696474680500000000000000A003400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 000554506174680005416C69676E070643656E74657209446174612E50617468 + 0A34000000040000000000000000000000000000000100000000000000000080 + 3F010000000000803F0000003F0300000000000000000000000A46696C6C2E43 + 6F6C6F720708636C615768697465064C6F636B6564090748697454657374080A + 53697A652E57696474680500000000000000E001400B53697A652E4865696768 + 7405000000000000008002401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300A545265 + 6374616E676C6500095374796C654E616D65060C6D656E756261727374796C65 + 05416C69676E070643656E7465720C436C69704368696C6472656E090946696C + 6C2E4B696E6407044E6F6E650748697454657374080A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E650756697369626C6508000A5452656374616E676C6500 + 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080C4D617267696E732E4C656674050000000000 + 000080FFBF0B4D617267696E732E546F70050000000000000080FFBF0D4D6172 + 67696E732E5269676874050000000000000080FFBF0A53697A652E5769647468 + 0500000000000000D004400B53697A652E4865696768740500000000000000CC + 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F720709784646313531353135000007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 + 697A652E57696474680500000000000000C004400B53697A652E486569676874 + 0500000000000000C004401453697A652E506C6174666F726D44656661756C74 + 080000005450463007544C61796F757400095374796C654E616D65060D6D656E + 756974656D7374796C6505416C69676E070643656E7465720C4D617267696E73 + 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 + 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F + 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E + 57696474680500000000008EE3F605400B53697A652E48656967687405000000 + 00008EE3F003401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508000A5452656374616E676C650005416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 7408074F70616369747905000000000017B7D1F13F0A53697A652E5769647468 + 0500000000008EE3F605400B53697A652E4865696768740500000000008EE3F0 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572 + 6174696F6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F + 7061636974790A537461727456616C756505000000000000000000000953746F + 7056616C7565050000000000000080FF3F0754726967676572060F497353656C + 65637465643D747275650E54726967676572496E76657273650610497353656C + 65637465643D66616C73650000000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0A46696C6C2E436F6C6F72070978464632413832453207486974546573740807 + 4F70616369747905000000000000000000000A53697A652E5769647468050000 + 0000008EE3F605400B53697A652E4865696768740500000000008EE3F0034014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572617469 + 6F6E05000000000018B7D1F23F07496E7665727365090C50726F70657274794E + 616D6506074F7061636974790A537461727456616C7565050000000000000000 + 00000953746F7056616C7565050000000000000080FF3F075472696767657206 + 1049734D6F7573654F7665723D747275650E54726967676572496E7665727365 + 061149734D6F7573654F7665723D66616C736500000007544C61796F75740009 + 5374796C654E616D650605676C79706805416C69676E07044C6566740A53697A + 652E57696474680500000000000000C803400B53697A652E4865696768740500 + 000000008EE3F003401453697A652E506C6174666F726D44656661756C740800 + 07544C61796F757400095374796C654E616D650609636865636B6D61726B0541 + 6C69676E0708436F6E74656E7473074F7061636974790500000000006F1283F5 + 3F0A53697A652E57696474680500000000000000C803400B53697A652E486569 + 6768740500000000008EE3F003401453697A652E506C6174666F726D44656661 + 756C7408000554506174680005416C69676E070643656E74657209446174612E + 506174680A58000000070000000000000056D9524391AE2C4301000000927666 + 4365021643010000009F3983432B7C3C43010000009E9AA64382D2B442010000 + 006F1CB04375A4D1420100000026DF8243263F67430300000056D9524391AE2C + 430A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A + 53697A652E57696474680500000000000000B002400B53697A652E4865696768 + 740500000000000000B002401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E69 + 6D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 657274794E616D6506074F7061636974790A537461727456616C756505000000 + 000000000000000953746F7056616C7565050000000000000080FF3F07547269 + 67676572060E4973436865636B65643D747275650E54726967676572496E7665 + 727365060F4973436865636B65643D66616C73650000000654476C7970680009 + 5374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C65 + 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 + 008000400D4D617267696E732E52696768740500000000000000C000400E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F05416C69676E07044C + 6566740A53697A652E576964746805000000000000008003400B53697A652E48 + 656967687405000000000000008003401453697A652E506C6174666F726D4465 + 6661756C740800000654496D61676500095374796C654E616D6506066269746D + 61700E4D756C74695265734269746D61700E01000005416C69676E07044C6566 + 740C4D617267696E732E4C65667405000000000000008000400B4D617267696E + 732E546F7005000000000000008000400D4D617267696E732E52696768740500 + 0000000000008000400E4D617267696E732E426F74746F6D0500000000000000 + 8000400A506F736974696F6E2E5805000000000000008000400A506F73697469 + 6F6E2E5905000000000000008000400A53697A652E5769647468050000000000 + 0000A803400B53697A652E4865696768740500000000008EE3D003401453697A + 652E506C6174666F726D44656661756C74080000000554546578740009537479 + 6C654E616D6506047465787405416C69676E07044C656674064C6F636B656409 + 0748697454657374080C4D617267696E732E4C65667405000000000000008002 + 400D4D617267696E732E526967687405000000000000008002400A506F736974 + 696F6E2E5805000000000000008404400A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000008EE3F00340145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C615768697465165465787453657474696E67 + 732E486F727A416C69676E07074C656164696E67000005545465787400095374 + 796C654E616D65060873686F727463757405416C69676E07055269676874064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 00000000C002400D4D617267696E732E52696768740500000000000000C00140 + 0A506F736974696F6E2E580500000000001CC7BD04400A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000008EE3 + F003401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 + 657474696E67732E486F727A416C69676E07074C656164696E67000007544C61 + 796F757400095374796C654E616D6506077375626D61726B05416C69676E0705 + 52696768740A506F736974696F6E2E580500000000008EE3CE05400A53697A65 + 2E57696474680500000000000000A003400B53697A652E486569676874050000 + 0000008EE3F003401453697A652E506C6174666F726D44656661756C74080005 + 54506174680005416C69676E070643656E74657209446174612E506174680A34 + 0000000400000000000000000000000000000001000000000000000000803F01 + 0000000000803F0000003F0300000000000000000000000A46696C6C2E436F6C + 6F720708636C615768697465064C6F636B6564090748697454657374080A5369 + 7A652E57696474680500000000000000C001400B53697A652E48656967687405 + 00000000000000A002401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F + 757400095374796C654E616D6506126D656E75736570617261746F727374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080756697369626C65080005544C69 + 6E650005416C69676E0703546F70084C696E65547970650703546F700C4D6172 + 67696E732E4C656674050000000000000080FFBF0B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 0080FFBF0A506F736974696F6E2E58050000000000000080FFBF0A506F736974 + 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 + 000000D004400B53697A652E486569676874050000000000000080FF3F145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000000545046300A5452656374616E676C65000953 + 74796C654E616D65060D6D656E75766965777374796C6505416C69676E070643 + 656E7465720A46696C6C2E436F6C6F7207097846463230323032300A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F7207097846463135313531350756697369626C650800 + 0A5452656374616E676C650005416C69676E0706436C69656E740A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000D54536861646F77456666 + 656374000844697374616E636505000000000000008001400944697265637469 + 6F6E0500000000000000B4044008536F66746E657373050000000000000080FE + 3F074F706163697479050000000000000080FE3F0B536861646F77436F6C6F72 + 0708636C61426C61636B00000007544C61796F757400095374796C654E616D65 + 0607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E + 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 + 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E + 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 + 696474680500000000000000C004400B53697A652E4865696768740500000000 + 000000C004401453697A652E506C6174666F726D44656661756C740800000054 + 50463007544C61796F757400095374796C654E616D65060E696D61676563656C + 6C7374796C6505416C69676E070643656E7465720756697369626C6508000654 + 496D61676500095374796C654E616D650605696D6167650E4D756C7469526573 + 4269746D61700E01000005416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000000000C004 + 400B53697A652E4865696768740500000000000000C004401453697A652E506C + 6174666F726D44656661756C74080000005450463007544C61796F7574000953 + 74796C654E616D65060E706F70757063656C6C7374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000BB06400B53697A + 652E4865696768740500000000000000AE04401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C65080007544C61796F75740005416C69 + 676E070552696768740A506F736974696F6E2E580500000000000000AC06400A + 53697A652E57696474680500000000000000F002400B53697A652E4865696768 + 740500000000000000AE04401453697A652E506C6174666F726D44656661756C + 7408000554506174680005416C69676E070643656E74657209446174612E5061 + 74680A400000000500000000000000000000000000803F010000000000803F00 + 00803F010000000000003F0000000001000000000000000000803F0300000000 + 000000000000000A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080B4D617267696E732E546F700500000000000000E001C00A53697A + 652E576964746805000000000000008002400B53697A652E4865696768740500 + 0000000000008001401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6500000554506174680005416C69676E + 070643656E74657209446174612E506174680A34000000040000000000000000 + 00000000000000010000000000803F00000000010000000000003F0000803F03 + 00000000000000000000000A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080B4D617267696E732E546F700500000000000000C00140 + 0A53697A652E576964746805000000000000008002400B53697A652E48656967 + 687405000000000000008001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650000000554546578740009 + 5374796C654E616D6506047465787405416C69676E0706436C69656E74064C6F + 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 + 000000A001400B4D617267696E732E546F7005000000000000008000400D4D61 + 7267696E732E52696768740500000000000000A001400E4D617267696E732E42 + 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 + 000000A206400B53697A652E48656967687405000000000000009E0440145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D65060D7465787463656C6C7374796C6505416C + 69676E070643656E7465720756697369626C65080007544C61796F7574000953 + 74796C654E616D650607636F6E74656E7405416C69676E0708436F6E74656E74 + 73064C6F636B6564090C4D617267696E732E4C65667405000000000000008001 + 400B4D617267696E732E546F7005000000000000008001400D4D617267696E73 + 2E526967687405000000000000008001400E4D617267696E732E426F74746F6D + 05000000000000008001400A53697A652E57696474680500000000000000A804 + 400B53697A652E4865696768740500000000000000A804401453697A652E506C + 6174666F726D44656661756C740800000C5442727573684F626A656374000953 + 74796C654E616D65060A666F726567726F756E6400000C5442727573684F626A + 65637400095374796C654E616D65060973656C656374696F6E0B42727573682E + 436F6C6F72070978393632413832453200000B54466F6E744F626A6563740009 + 5374796C654E616D650604666F6E740000005450463007544C61796F75740009 + 5374796C654E616D6506096D656D6F7374796C6505416C69676E070643656E74 + 65720A53697A652E5769647468050000000000CCCC8806400B53697A652E4865 + 696768740500000000006666F405401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508000C5442727573684F626A65637400095374 + 796C654E616D65060A666F726567726F756E6400000C5442727573684F626A65 + 637400095374796C654E616D65060973656C656374696F6E0B42727573682E43 + 6F6C6F72070978374634343735394400000B54466F6E744F626A656374000953 + 74796C654E616D650604666F6E7400000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E5769647468050000000000CCCC8806400B53697A652E486569 + 6768740500000000006666F405401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C + 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 + 06436C69656E740C4D617267696E732E4C65667405000000000000008000400B + 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 + 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 + 0000000000008000400A53697A652E57696474680500000000009899E905400B + 53697A652E4865696768740500000000006666CC05401453697A652E506C6174 + 666F726D44656661756C740800000A545363726F6C6C42617200095374796C65 + 4E616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D0643 + 7572736F72070763724172726F770B536D616C6C4368616E6765050000000000 + 00000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F + 736974696F6E2E590500000000006666D405400A53697A652E57696474680500 + 00000000CCCC8806400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000A545363726F6C6C + 42617200095374796C654E616D65060A767363726F6C6C62617205416C69676E + 0705526967687406437572736F72070763724172726F770B536D616C6C436861 + 6E676505000000000000000000000B4F7269656E746174696F6E070856657274 + 6963616C0A506F736974696F6E2E580500000000009899F105400A53697A652E + 576964746805000000000000008003400B53697A652E48656967687405000000 + 00006666D405401453697A652E506C6174666F726D44656661756C7408000007 + 544C61796F75740005416C69676E0706436C69656E740A53697A652E57696474 + 680500000000009899F105400B53697A652E4865696768740500000000006666 + D405401453697A652E506C6174666F726D44656661756C7408000F54536D616C + 6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C736372 + 6F6C6C62617205416C69676E0705526967687406437572736F72070763724172 + 726F770B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E0708566572746963616C0C4D617267696E732E4C656674050000 + 00000000008000400A53697A652E576964746805000000000000008002400B53 + 697A652E48656967687405000000000000008002401453697A652E506C617466 + 6F726D44656661756C74080756697369626C650800000F54536D616C6C536372 + 6F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C62 + 617205416C69676E0706426F74746F6D06437572736F72070763724172726F77 + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000 + 0000008000400A53697A652E576964746805000000000000009606400B53697A + 652E48656967687405000000000000008002401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C65080000000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D6506146D656D6F5374726F6B65416E696D + 6174696F6E31084475726174696F6E050000000000000000000007496E766572 + 7365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53 + 7461727456616C756507097846463135313531350953746F7056616C75650709 + 7846463430343034300754726967676572062049734D6F7573654F7665723D74 + 7275653B4973466F63757365643D66616C73650E54726967676572496E766572 + 7365062149734D6F7573654F7665723D66616C73653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D6506146D656D6F5374726F6B65416E696D6174696F6E32084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060C5374726F6B + 652E436F6C6F720A537461727456616C75650709784646343034303430095374 + 6F7056616C756507097846463241383245320754726967676572060E4973466F + 63757365643D747275650E54726967676572496E7665727365060F4973466F63 + 757365643D66616C7365000000005450463007544C61796F757400095374796C + 654E616D65060E6C696E6B6C6162656C7374796C6505416C69676E070643656E + 7465720A53697A652E5769647468050000000000CCCC8006400B53697A652E48 + 65696768740500000000009A998104401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C65080005545465787400095374796C654E616D + 6506047465787405416C69676E0708436F6E74656E7473074869745465737408 + 0A53697A652E5769647468050000000000CCCC8006400B53697A652E48656967 + 68740500000000009A998104401453697A652E506C6174666F726D4465666175 + 6C74081A5465787453657474696E67732E466F6E742E5374796C654578740A0D + 00000004040000000000000004000000165465787453657474696E67732E466F + 6E74436F6C6F72070D636C61446F64676572626C7565000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E315374796C65084475726174696F6E050000000000000000000007496E76 + 65727365090C50726F70657274794E616D6506165465787453657474696E6773 + 2E466F6E74436F6C6F720A537461727456616C7565070D636C61446F64676572 + 626C75650953746F7056616C7565070E636C6144656570736B79626C75650754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E325374796C65084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D6506165465787453657474696E67732E466F6E + 74436F6C6F720A537461727456616C7565070E636C6144656570736B79626C75 + 650953746F7056616C756507097846463137353739430754726967676572062F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D66616C736500000000545046300A5452656374616E67 + 6C6500095374796C654E616D65060E7374617475736261727374796C6505416C + 69676E070643656E7465720C436C69704368696C6472656E090A46696C6C2E43 + 6F6C6F7207097846463235323532350748697454657374080553696465730B03 + 546F70000A53697A652E57696474680500000000000000F004400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 56697369626C65080007544C61796F757400095374796C654E616D6506074C61 + 796F75743105416C69676E070552696768740A506F736974696F6E2E58050000 + 00000000008C04400A53697A652E57696474680500000000000000C803400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C740800095453697A654772697000095374796C654E616D + 65060973697A65677267697005416C69676E0706426F74746F6D0A506F736974 + 696F6E2E590500000000000000C803400A53697A652E57696474680500000000 + 000000C803400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C7408000000005450463007544C6179 + 6F757400095374796C654E616D65060C7370696E626F787374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000006666E00540 + 0B53697A652E4865696768740500000000000000C003401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A + 53697A652E57696474680500000000006666E005400B53697A652E4865696768 + 740500000000000000C003401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E69 + 6D6174696F6E315374796C65084475726174696F6E0500000000000000000000 + 07496E7665727365090C50726F70657274794E616D65060C5374726F6B652E43 + 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 + 616C756507097846463430343034300754726967676572061049734D6F757365 + 4F7665723D747275650E54726967676572496E7665727365061149734D6F7573 + 654F7665723D66616C73650000000C5442727573684F626A6563740009537479 + 6C654E616D65060A666F726567726F756E640B42727573682E436F6C6F720709 + 78464645414541454100000C5442727573684F626A65637400095374796C654E + 616D65060973656C656374696F6E0B42727573682E436F6C6F72070978393632 + 4138324532000007544C61796F757400095374796C654E616D650607636F6E74 + 656E7405416C69676E0706436C69656E74064C6F636B6564090C4D617267696E + 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 + 00000000008000400D4D617267696E732E526967687405000000000000008000 + 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 + 2E5769647468050000000000CCCCF004400B53697A652E486569676874050000 + 0000000000A003401453697A652E506C6174666F726D44656661756C74080000 + 0754427574746F6E00095374796C654E616D65060B6D696E7573627574746F6E + 05416C69676E07044C6566740843616E466F6375730806437572736F72070763 + 724172726F770C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A506F736974696F6E2E5805000000000000008000400A50 + 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 + 00000000000000A003400B53697A652E4865696768740500000000000000A003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B7570060B627574746F6E7374796C65000554506174680005416C69676E0706 + 43656E74657209446174612E506174680A400000000500000000000000000080 + 3F00000000010000000000803F0000803F01000000000000000000003F010000 + 000000803F00000000030000000000803F000000000A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080A53697A652E57696474680500 + 0000000000008002400B53697A652E4865696768740500000000000000800240 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E650000000754427574746F6E00095374796C654E616D65060A + 706C7573627574746F6E05416C69676E070552696768740843616E466F637573 + 0806437572736F72070763724172726F770C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E + 732E426F74746F6D05000000000000008000400A506F736974696F6E2E580500 + 000000006666B405400A506F736974696F6E2E5905000000000000008000400A + 53697A652E57696474680500000000000000A003400B53697A652E4865696768 + 740500000000000000A003401453697A652E506C6174666F726D44656661756C + 74080B5374796C654C6F6F6B7570060B627574746F6E7374796C650005545061 + 74680005416C69676E070643656E74657209446174612E506174680A34000000 + 0400000000000000000000000000000001000000000000000000803F01000000 + 0000803F0000003F0300000000000000000000000A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080A53697A652E5769647468050000 + 00000000008002400B53697A652E486569676874050000000000000080024014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000000005450463007544C61796F757400095374796C654E61 + 6D65060D73697A65677269707374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000000C803400B53697A652E4865696768 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653105416C69676E070643656E7465720A46696C + 6C2E436F6C6F7207097846463630363036300A53697A652E5769647468050000 + 0000000000A000400B53697A652E4865696768740500000000000000A0004014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D6506 + 0A52656374616E676C653205416C69676E070643656E7465720A46696C6C2E43 + 6F6C6F7207097846463630363036300C4D617267696E732E4C65667405000000 + 00000000A002400A53697A652E57696474680500000000000000A000400B5369 + 7A652E4865696768740500000000000000A000401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6533 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463630 + 363036300C4D617267696E732E4C6566740500000000000000A002400B4D6172 + 67696E732E546F700500000000000000A002400A53697A652E57696474680500 + 000000000000A000400B53697A652E4865696768740500000000000000A00040 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D65 + 060A52656374616E676C653405416C69676E070643656E7465720A46696C6C2E + 436F6C6F7207097846463630363036300B4D617267696E732E546F7005000000 + 00000000A002400A53697A652E57696474680500000000000000A000400B5369 + 7A652E4865696768740500000000000000A000401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6535 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463630 + 363036300B4D617267696E732E546F700500000000000000A002400D4D617267 + 696E732E52696768740500000000000000A002400A53697A652E576964746805 + 00000000000000A000400B53697A652E4865696768740500000000000000A000 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653605416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463630363036300C4D617267696E732E4C6566740500 + 000000000000A002400E4D617267696E732E426F74746F6D0500000000000000 + A002400A53697A652E57696474680500000000000000A000400B53697A652E48 + 65696768740500000000000000A000401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000000545046300A + 5452656374616E676C6500095374796C654E616D65060C746F6F6C6261727374 + 796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463235323532350748697454657374080553696465730B06426F74746F6D000A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135075669736962 + 6C650800005450463007544C61796F757400095374796C654E616D6506157072 + 6F67726573736261726572726F727374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508000A5452656374616E676C6500095374796C65 + 4E616D65060668747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000A + 5452656374616E676C6500095374796C654E616D65060A68696E64696361746F + 7205416C69676E07044C6566740A46696C6C2E436F6C6F720709784646453232 + 413241064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E + 58050000000000000080FF3F0A506F736974696F6E2E59050000000000000080 + FF3F0A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000009999D904401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452656374 + 616E676C6500095374796C654E616D65060676747261636B05416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 33338505400B53697A652E4865696768740500000000009999E104401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000A5452656374616E676C6500095374796C654E616D + 65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C + 2E436F6C6F720709784646453232413241064C6F636B65640907486974546573 + 74080C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F736974 + 696F6E2E5905000000000099998904400A53697A652E57696474680500000000 + 0033338105400B53697A652E4865696768740500000000000000A80340145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000000005450463007544C61796F757400095374796C654E616D65 + 060F64726F707461726765747374796C6505416C69676E070643656E7465720A + 53697A652E5769647468050000000000ACAAD905400B53697A652E4865696768 + 740500000000000000CF05401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508000A5452656374616E676C650005416C69676E0708 + 436F6E74656E74730946696C6C2E4B696E6407044E6F6E650748697454657374 + 080A53697A652E5769647468050000000000ACAAD905400B53697A652E486569 + 6768740500000000000000CF05401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F720708636C615768697465105374726F + 6B652E546869636B6E65737305000000000000008001400B5374726F6B652E44 + 61736807044461736807585261646975730500000000000000C0024007595261 + 646975730500000000000000C002400005545465787400095374796C654E616D + 6506047465787405416C69676E0706426F74746F6D0748697454657374080C4D + 617267696E732E4C6566740500000000000000A002400D4D617267696E732E52 + 696768740500000000000000A002400A506F736974696F6E2E58050000000000 + 0000A002400A506F736974696F6E2E590500000000000000D604400A53697A65 + 2E5769647468050000000000ACAAB105400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74081654 + 65787453657474696E67732E466F6E74436F6C6F720708636C61576869746500 + 00001254466C6F61744B6579416E696D6174696F6E00084475726174696F6E05 + 0000000000999999FE3F044B6579730E010001034B6579050000000000000080 + FE3F0556616C75650500000000000000A003C00001034B657905000000000000 + 0080FF3F0000044C6F6F70090C50726F70657274794E616D65060B5061646469 + 6E672E546F7010537461727446726F6D43757272656E74080754726967676572 + 060F4973447261674F7665723D7472756500000554506174680005416C69676E + 070643656E74657209446174612E506174680AC4000000100000000000000008 + EC8343F087A4430100000008EC8343083CFB430200000035BE7143504DF94302 + 00000012835C43A8E6F54302000000F0674943F803F1430100000008EC8343FC + 0116440100000008EC8343FC5116440100000000408443FC5116440100000010 + 689A43FC412B4401000000081CD043F803F14302000000915DC64321E0F54302 + 000000919DBB439643F94302000000087CB043F833FB4301000000087CB043F0 + 87A4430100000008EC8343F087A4430300000000000000000000000A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000100C804401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E650000005450463007544C61796F7574000953 + 74796C654E616D65061464726F707461726765746669656C647374796C650541 + 6C69676E070643656E7465720A53697A652E576964746805000000000000A08A + 07400B53697A652E4865696768740500000000000000B204401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 + 6E0706436C69656E740946696C6C2E4B696E6407044E6F6E6507486974546573 + 74080A53697A652E576964746805000000000000A08A07400B53697A652E4865 + 696768740500000000000000B204401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646324138324532000554 + 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 + 656E740748697454657374080A53697A652E576964746805000000000000809A + 05400B53697A652E4865696768740500000000000000B204401453697A652E50 + 6C6174666F726D44656661756C7408165465787453657474696E67732E466F6E + 74436F6C6F720708636C615768697465000007544C61796F757400095374796C + 654E616D6506074C61796F75743105416C69676E07044C6566740A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000B204401453697A652E506C6174666F726D44656661756C7408000554 + 5061746800095374796C654E616D650605506174683105416C69676E07064365 + 6E74657209446174612E506174680A24010000180000000000000073B8AC43C1 + 4A7843010000006D2717435849DD430200000086CB0A431078E3430200000096 + 83ED421078E34302000000DACED4425849DD43020000009A19BC42081CD74302 + 0000009A19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385 + EB61430100000068D1D4426811584202000000281CBC42CAA126420200000028 + 1CBC42E6FBAC410200000068D1D442D04D144102000000A886ED429CC245C002 + 000000CCCC0A439CC245C002000000B4281743D04D14410100000016B9AC4391 + 8D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F + 5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43711D724302 + 00000073B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080A53697A652E5769647468 + 0500000000000000F002400B53697A652E4865696768740500000000000000F0 + 02401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6508577261704D6F646507034669740000055450617468 + 00095374796C654E616D650605506174683205416C69676E070643656E746572 + 09446174612E506174680A24010000180000000000000073B8AC43C14A784301 + 0000006D2717435849DD430200000086CB0A431078E343020000009683ED4210 + 78E34302000000DACED4425849DD43020000009A19BC42081CD743020000009A + 19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385EB614301 + 00000068D1D4426811584202000000281CBC42CAA1264202000000281CBC42E6 + FBAC410200000068D1D442D04D144102000000A886ED429CC245C002000000CC + CC0A439CC245C002000000B4281743D04D14410100000016B9AC43918D4B4302 + 000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343 + EB614302000000A05AB1439C046A4302000000FACEAF43711D72430200000073 + B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080C4D617267696E732E4C6566740500 + 000000000000A004400A53697A652E57696474680500000000000000F002400B + 53697A652E4865696768740500000000000000F002401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650857 + 7261704D6F64650703466974000005545061746800095374796C654E616D6506 + 05506174683305416C69676E070643656E74657209446174612E506174680A24 + 010000180000000000000073B8AC43C14A7843010000006D2717435849DD4302 + 00000086CB0A431078E343020000009683ED421078E34302000000DACED44258 + 49DD43020000009A19BC42081CD743020000009A19BC424C17CD4302000000DA + CED4421DEAC64301000000B4288B4385EB61430100000068D1D4426811584202 + 000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D0 + 4D144102000000A886ED429CC245C002000000CCCC0A439CC245C002000000B4 + 281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB514302 + 0000009F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1439C + 046A4302000000FACEAF43711D72430200000073B8AC43C14A78430300000073 + B8AC43C14A78430A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080D4D617267696E732E52696768740500000000000000A004400A53 + 697A652E57696474680500000000000000F002400B53697A652E486569676874 + 0500000000000000F002401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 + 7400000007544C61796F757400095374796C654E616D6506074C61796F757432 + 05416C69676E070552696768740A506F736974696F6E2E580500000000000040 + B106400A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000B204401453697A652E506C6174666F726D4465 + 6661756C74080005545061746800095374796C654E616D650605506174683105 + 416C69676E070643656E74657209446174612E506174680A2401000018000000 + 0000000073B8AC43C14A7843010000006D2717435849DD430200000086CB0A43 + 1078E343020000009683ED421078E34302000000DACED4425849DD4302000000 + 9A19BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEAC643 + 01000000B4288B4385EB61430100000068D1D4426811584202000000281CBC42 + CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D144102000000 + A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D1441 + 0100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143 + F1D25943020000009F5AB14343EB614302000000A05AB1439C046A4302000000 + FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A7843 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D52 + 6F746174696F6E416E676C650500000000000000B406400A53697A652E576964 + 74680500000000000000F002400B53697A652E48656967687405000000000000 + 00F002401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6508577261704D6F64650703466974000005545061 + 746800095374796C654E616D650605506174683205416C69676E070643656E74 + 657209446174612E506174680A24010000180000000000000073B8AC43C14A78 + 43010000006D2717435849DD430200000086CB0A431078E343020000009683ED + 421078E34302000000DACED4425849DD43020000009A19BC42081CD743020000 + 009A19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385EB61 + 430100000068D1D4426811584202000000281CBC42CAA1264202000000281CBC + 42E6FBAC410200000068D1D442D04D144102000000A886ED429CC245C0020000 + 00CCCC0A439CC245C002000000B4281743D04D14410100000016B9AC43918D4B + 4302000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB1 + 4343EB614302000000A05AB1439C046A4302000000FACEAF43711D7243020000 + 0073B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080C4D617267696E732E4C656674 + 0500000000000000A004400D526F746174696F6E416E676C6505000000000000 + 00B406400A53697A652E57696474680500000000000000F002400B53697A652E + 4865696768740500000000000000F002401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F + 64650703466974000005545061746800095374796C654E616D65060550617468 + 3305416C69676E070643656E74657209446174612E506174680A240100001800 + 00000000000073B8AC43C14A7843010000006D2717435849DD430200000086CB + 0A431078E343020000009683ED421078E34302000000DACED4425849DD430200 + 00009A19BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEA + C64301000000B4288B4385EB61430100000068D1D4426811584202000000281C + BC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D14410200 + 0000A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D + 14410100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5A + B143F1D25943020000009F5AB14343EB614302000000A05AB1439C046A430200 + 0000FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A + 78430A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0D4D617267696E732E52696768740500000000000000A004400D526F74617469 + 6F6E416E676C650500000000000000B406400A53697A652E5769647468050000 + 0000000000F002400B53697A652E4865696768740500000000000000F0024014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6508577261704D6F646507034669740000000000545046300754 + 4C61796F757400095374796C654E616D65060C706F706F7665727374796C6505 + 416C69676E070643656E7465720756697369626C6508000A5452656374616E67 + 6C6500095374796C654E616D650602626705416C69676E0706436C69656E740A + 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F + 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C + 69656E740C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 + 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 + 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F0A53697A652E57696474680500000000000000C004400B53697A + 652E4865696768740500000000000000C004401453697A652E506C6174666F72 + 6D44656661756C740800000D54536861646F7745666665637400084469737461 + 6E63650500000000000000C0004009446972656374696F6E0500000000000000 + B4054008536F66746E657373050000000000000080FE3F074F70616369747905 + 0000000000000080FE3F0B536861646F77436F6C6F720708636C61426C61636B + 000000005450463007544C61796F757400095374796C654E616D65060D706F70 + 7570626F787374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000080C406400B53697A652E486569676874050000000000 + 0000D404401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080A53697A652E57696474 + 680500000000000080C406400B53697A652E4865696768740500000000000000 + D404401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 0953746F7056616C756507097846463430343034300754726967676572062049 + 734D6F7573654F7665723D747275653B4973507265737365643D66616C73650E + 54726967676572496E7665727365062149734D6F7573654F7665723D66616C73 + 653B4973507265737365643D66616C736500000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3253 + 74796C65084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464632413832453207547269 + 67676572062049734D6F7573654F7665723D747275653B497350726573736564 + 3D747275653B0E54726967676572496E7665727365062049734D6F7573654F76 + 65723D747275653B4973507265737365643D66616C736500000007544C61796F + 75740005416C69676E070552696768740A506F736974696F6E2E580500000000 + 000080B506400A53697A652E57696474680500000000000000F002400B53697A + 652E4865696768740500000000000000D404401453697A652E506C6174666F72 + 6D44656661756C7408000554506174680005416C69676E070643656E74657209 + 446174612E506174680A400000000500000000000000000000000000803F0100 + 00000000803F0000803F010000000000003F0000000001000000000000000000 + 803F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080B4D617267696E732E546F700500000000000000 + E001C00A53697A652E576964746805000000000000008002400B53697A652E48 + 656967687405000000000000008001401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000055450617468 + 0005416C69676E070643656E74657209446174612E506174680A340000000400 + 0000000000000000000000000000010000000000803F00000000010000000000 + 003F0000803F0300000000000000000000000A46696C6C2E436F6C6F72070863 + 6C6157686974650748697454657374080B4D617267696E732E546F7005000000 + 00000000C001400A53697A652E576964746805000000000000008002400B5369 + 7A652E48656967687405000000000000008001401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000005 + 545465787400095374796C654E616D6506047465787405416C69676E0706436C + 69656E740748697454657374080C4D617267696E732E4C656674050000000000 + 000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D6172 + 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F + 74746F6D050000000000000080FF3F0A53697A652E5769647468050000000000 + 0080B306400B53697A652E4865696768740500000000000000CC04401453697A + 652E506C6174666F726D44656661756C7408165465787453657474696E67732E + 466F6E74436F6C6F720708636C615768697465000000545046300A5452656374 + 616E676C6500095374796C654E616D6506147374617475736261726E6F677269 + 707374796C6505416C69676E070643656E7465720C436C69704368696C647265 + 6E090A46696C6C2E436F6C6F7207097846463235323532350553696465730B03 + 546F70000A53697A652E57696474680500000000000000F004400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 56697369626C650800005450463007544C61796F757400095374796C654E616D + 650613736D616C6C7363726F6C6C6261727374796C6505416C69676E07064365 + 6E7465720756697369626C6508000654547261636B00095374796C654E616D65 + 060668747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F + 7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C804401453697A652E506C6174666F726D44656661756C74080B5374796C654C + 6F6F6B757006147363726F6C6C62617268747261636B7374796C650000065454 + 7261636B00095374796C654E616D65060676747261636B05416C69676E070643 + 6C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A + 6F6E74616C0A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C62617276 + 747261636B7374796C650000005450463007544C61796F757400095374796C65 + 4E616D65060D73706C69747465727374796C6505416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000A904400B53697A652E486569 + 6768740500000000000080C105401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508000A5452656374616E676C6500095374796C65 + 4E616D65060A52656374616E676C653105416C69676E0706436C69656E740A46 + 696C6C2E436F6C6F720709784646333033303330074869745465737408055369 + 6465730B044C656674055269676874000A53697A652E57696474680500000000 + 000000A904400B53697A652E4865696768740500000000000080C10540145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000007544C61796F757400095374796C654E616D65 + 06064C61796F757405416C69676E0706436C69656E740A53697A652E57696474 + 680500000000000000A904400B53697A652E4865696768740500000000000080 + C105401453697A652E506C6174666F726D44656661756C74080007544C61796F + 757400095374796C654E616D6506046772697005416C69676E070A5665727443 + 656E746572064C6F636B6564090A506F736974696F6E2E590500000000000000 + 8004400A53697A652E57696474680500000000000000A904400B53697A652E48 + 656967687405000000000000008004401453697A652E506C6174666F726D4465 + 6661756C7408000754436972636C6500095374796C654E616D65060743697263 + 6C653305416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463430343034300748697454657374080E4D617267696E732E426F74746F6D05 + 00000000000000A003400A53697A652E57696474680500000000000000E00140 + 0B53697A652E4865696768740500000000000000E001401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 353135313500000754436972636C6500095374796C654E616D65060743697263 + 6C653205416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463430343034300748697454657374080B4D617267696E732E546F7005000000 + 00000000A003400A53697A652E57696474680500000000000000E001400B5369 + 7A652E4865696768740500000000000000E001401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 313500000754436972636C6500095374796C654E616D650607436972636C6531 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463430 + 343034300748697454657374080A53697A652E57696474680500000000000000 + E001400B53697A652E4865696768740500000000000000E001401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 464631353135313500000000005450463007544C61796F757400095374796C65 + 4E616D650610636C6F7365627574746F6E7374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000A5452656374616E676C6500095374 + 796C654E616D65060B636C6F7365627574746F6E05416C69676E0706436C6965 + 6E740A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E315374796C65084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646464636313537 + 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E325374796C65084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846464646363135370953746F7056616C756507097846 + 464532344634350754726967676572061F49734D6F7573654F7665723D747275 + 653B4973507265737365643D747275650E54726967676572496E766572736506 + 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 6500000005545061746800095374796C654E616D650605506174683105416C69 + 676E070643656E74657209446174612E506174680AC400000010000000000000 + 000000A0C00000704101000000000070410000A0C001000000000048420000F0 + 41010000000000AA420000A0C0010000000000D242000070410100000000008C + 4200004842010000000000D2420000B442010000000000AA420000DC42020000 + 003BDF34429E6F8C4202000000FE547D427FAAB0420200000000004842000096 + 4201000000000070410000DC42010000000000A0C00000B442010000000000F0 + 4100005C42010000000000A0C000007041030000000000A0C0000070410A4669 + 6C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000A002401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 + 095374796C654E616D65060E6D6178627574746F6E7374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 + 00095374796C654E616D6506096D6178627574746F6E05416C69676E0706436C + 69656E740A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464632413832 + 45320754726967676572062049734D6F7573654F7665723D747275653B497350 + 7265737365643D66616C73650E54726967676572496E7665727365062149734D + 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463241383245320953746F7056616C75650709 + 7846463137353739430754726967676572061F49734D6F7573654F7665723D74 + 7275653B4973507265737365643D747275650E54726967676572496E76657273 + 65062049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C736500000005545061746800095374796C654E616D65060550617468310541 + 6C69676E070643656E74657209446174612E506174680A580000000700000000 + 0000000000C8420000C8420100000000002F440000C8420100000000002F4400 + 002F44010000000080094400800944010000000080094400007A430100000000 + 007A4300007A43030000000000C8420000C8420A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080A53697A652E576964746805000000 + 00000000A002400B53697A652E4865696768740500000000000000A002401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650000005450463007544C61796F757400095374796C654E616D65 + 060E726573627574746F6E7374796C6505416C69676E070643656E7465720A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508000A5452656374616E676C6500095374796C654E616D + 650609726573627574746F6E05416C69676E0706436C69656E740A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646323032 + 3032300953746F7056616C756507097846463241383245320754726967676572 + 062049734D6F7573654F7665723D747275653B4973507265737365643D66616C + 73650E54726967676572496E7665727365062149734D6F7573654F7665723D66 + 616C73653B4973507265737365643D66616C736500000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F + 6E325374796C65084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463241383245320953746F7056616C7565070978464631373537394307 + 54726967676572061F49734D6F7573654F7665723D747275653B497350726573 + 7365643D747275650E54726967676572496E7665727365062049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C736500000005545061 + 746800095374796C654E616D650605506174683105416C69676E070643656E74 + 657209446174612E506174680A5800000007000000000000000000C8420000C8 + 420100000000002F440000C8420100000000002F4400002F4401000000008009 + 4400800944010000000080094400007A430100000000007A4300007A43030000 + 000000C8420000C8420A46696C6C2E436F6C6F720708636C6157686974650748 + 697454657374080D526F746174696F6E416E676C650500000000000000B40640 + 0A53697A652E57696474680500000000000000A002400B53697A652E48656967 + 68740500000000000000A002401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61 + 796F757400095374796C654E616D65060E6D696E627574746F6E7374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 + 616E676C6500095374796C654E616D6506096D696E627574746F6E05416C6967 + 6E0706436C69656E740A46696C6C2E436F6C6F72070978464632303230323007 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E315374796C65084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 463241383245320754726967676572062049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C73650E54726967676572496E7665727365 + 062149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463241383245320953746F705661 + 6C756507097846463137353739430754726967676572061F49734D6F7573654F + 7665723D747275653B4973507265737365643D747275650E5472696767657249 + 6E7665727365062049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C736500000005545061746800095374796C654E616D6506055061 + 74683105416C69676E070643656E74657209446174612E506174680A40000000 + 050000000000000000002F44008009440100000000002F4400002F4401000000 + 0000C84200002F44010000000000C842008009440300000000002F4400800944 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080B4D + 617267696E732E546F700500000000000000A002400D526F746174696F6E416E + 676C650500000000000000B406400A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000C000401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650000005450463007544C61796F757400095374796C654E616D65060F74 + 6F6F6C77696E646F777374796C6505416C69676E070643656E7465720A53697A + 652E576964746805000000000056D5AF07400B53697A652E4865696768740500 + 000000000000B306401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 + 046D61736B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 07097846463130313031300A53697A652E576964746805000000000056D5AF07 + 400B53697A652E4865696768740500000000000000B306401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0756697369626C6508000007544C61796F757400095374796C654E616D650604 + 6C65667405416C69676E07084D6F73744C656674064C6F636B6564090A506F73 + 6974696F6E2E590500000000000000C803400A53697A652E5769647468050000 + 0000000000A001400B53697A652E48656967687405000000000000009A064014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 650005416C69676E07084D6F73744C6566740A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080553696465730B044C656674055269 + 676874000A53697A652E57696474680500000000000000A001400B53697A652E + 48656967687405000000000000009506401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 + 6C653105416C69676E070A4D6F7374426F74746F6D13456E61626C6544726167 + 486967686C69676874080A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080A506F736974696F6E2E59050000000000000095064005 + 53696465730B044C65667406426F74746F6D000A53697A652E57696474680500 + 000000000000A001400B53697A652E4865696768740500000000000000A00140 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F7207097846463135313531350007544C61796F757400095374796C654E61 + 6D6506074C61796F75743305416C69676E07094D6F737452696768740A506F73 + 6974696F6E2E5805000000000000008001400A53697A652E5769647468050000 + 000000000080FF3F0B53697A652E4865696768740500000000000000A0014014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 6500095374796C654E616D65060A52656374616E676C653105416C69676E0703 + 546F700A46696C6C2E436F6C6F72070978464631353135313507486974546573 + 74080A53697A652E5769647468050000000000000080FF3F0B53697A652E4865 + 69676874050000000000000080FF3F1453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000000007544C61 + 796F757400095374796C654E616D650605726967687405416C69676E07094D6F + 73745269676874064C6F636B6564090A506F736974696F6E2E58050000000000 + 5655AD07400A506F736974696F6E2E590500000000000000C803400A53697A65 + 2E57696474680500000000000000A001400B53697A652E486569676874050000 + 00000000009A06401453697A652E506C6174666F726D44656661756C7408000A + 5452656374616E676C650005416C69676E07094D6F737452696768740A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080553696465 + 730B044C656674055269676874000A53697A652E576964746805000000000000 + 00A001400B53697A652E48656967687405000000000000009506401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653105416C69676E070A4D6F7374426F74746F6D13 + 456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A506F736974696F6E2E590500 + 0000000000009506400553696465730B06426F74746F6D055269676874000A53 + 697A652E57696474680500000000000000A001400B53697A652E486569676874 + 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F + 757400095374796C654E616D6506074C61796F75743305416C69676E07084D6F + 73744C6566740A53697A652E5769647468050000000000000080FF3F0B53697A + 652E4865696768740500000000000000A001401453697A652E506C6174666F72 + 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 + 060A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F6C + 6F7207097846463135313531350748697454657374080A53697A652E57696474 + 68050000000000000080FF3F0B53697A652E4865696768740500000000000000 + 80FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000000000A5452656374616E676C650005416C69 + 676E07074D6F7374546F700A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000056D5AF07400B53697A652E4865696768740500000000000000C8034014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F7207097846463135313531350007544C61796F757400095374796C654E616D + 65060763617074696F6E05416C69676E0708436F6E74656E7473064C6F636B65 + 64090748697454657374090A53697A652E576964746805000000000056D5AF07 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C7408000007544C61796F75740005416C69676E07 + 06436C69656E74064C6F636B6564090C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 + 000056D5AE07400B53697A652E4865696768740500000000000000B803401453 + 697A652E506C6174666F726D44656661756C74080007544C61796F7574000541 + 6C69676E07044C656674064C6F636B6564090A53697A652E5769647468050000 + 00000000009002400B53697A652E4865696768740500000000000000B8034014 + 53697A652E506C6174666F726D44656661756C7408000007544C61796F757400 + 095374796C654E616D65060773797362746E7305416C69676E0706436C69656E + 74064C6F636B6564090A53697A652E57696474680500000000005655AA07400B + 53697A652E4865696768740500000000000000B803401453697A652E506C6174 + 666F726D44656661756C7408000C545370656564427574746F6E00095374796C + 654E616D650605636C6F736505416C69676E07055269676874064C6F636B6564 + 090A506F736974696F6E2E5805000000000056D59D07400A53697A652E576964 + 74680500000000000000C803400B53697A652E48656967687405000000000000 + 00B803401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B75700610636C6F7365627574746F6E7374796C650000055454657874 + 00095374796C654E616D6506057469746C6505416C69676E0706436C69656E74 + 064C6F636B6564090748697454657374080A53697A652E576964746805000000 + 000056D59D07400B53697A652E4865696768740500000000000000B803401453 + 697A652E506C6174666F726D44656661756C7408045465787406055469746C65 + 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 + 65000000000007544C61796F757400095374796C654E616D650606636C69656E + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737409 + 0A53697A652E576964746805000000000056D5AA07400B53697A652E48656967 + 687405000000000000009506401453697A652E506C6174666F726D4465666175 + 6C7408000007544C61796F757400095374796C654E616D650606626F74746F6D + 05416C69676E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E + 580500000000000000A001400A506F736974696F6E2E590500000000000000AE + 06400A53697A652E576964746805000000000056D5AA07400B53697A652E4865 + 696768740500000000000000A001401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C6500095374796C654E616D6506047265 + 637405416C69676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646 + 3230323032300553696465730B03546F7006426F74746F6D000A53697A652E57 + 6964746805000000000056D5AA07400B53697A652E4865696768740500000000 + 000000A001401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000000005450463007544C61 + 796F757400095374796C654E616D65061177696E646F77626F72646572737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 0056D5AF07400B53697A652E4865696768740500000000000000B30640145369 + 7A652E506C6174666F726D44656661756C74080756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D6506046D61736B05416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F7207097846463130313031300A + 53697A652E576964746805000000000056D5AF07400B53697A652E4865696768 + 740500000000000000B306401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000007 + 544C61796F757400095374796C654E616D6506046C65667405416C69676E0708 + 4D6F73744C656674064C6F636B6564090A506F736974696F6E2E590500000000 + 000000F003400A53697A652E57696474680500000000000000A001400B53697A + 652E48656967687405000000000000009506401453697A652E506C6174666F72 + 6D44656661756C7408000A5452656374616E676C650005416C69676E07084D6F + 73744C6566740A46696C6C2E436F6C6F72070978464632303230323007486974 + 54657374080553696465730B044C656674055269676874000A53697A652E5769 + 6474680500000000000000A001400B53697A652E486569676874050000000000 + 00009006401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F72070978464631353135313500000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070A4D + 6F7374426F74746F6D13456E61626C6544726167486967686C69676874080A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A506F + 736974696F6E2E5905000000000000009006400553696465730B044C65667406 + 426F74746F6D000A53697A652E57696474680500000000000000A001400B5369 + 7A652E4865696768740500000000000000A001401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350007544C61796F757400095374796C654E616D6506074C61796F75743305 + 416C69676E07094D6F737452696768740A506F736974696F6E2E580500000000 + 0000008001400A53697A652E5769647468050000000000000080FF3F0B53697A + 652E4865696768740500000000000000A001401453697A652E506C6174666F72 + 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 + 060A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F6C + 6F7207097846463135313531350748697454657374080A53697A652E57696474 + 68050000000000000080FF3F0B53697A652E4865696768740500000000000000 + 80FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000000000007544C61796F757400095374796C654E + 616D650605726967687405416C69676E07094D6F73745269676874064C6F636B + 6564090A506F736974696F6E2E580500000000005655AD07400A506F73697469 + 6F6E2E590500000000000000F003400A53697A652E5769647468050000000000 + 0000A001400B53697A652E48656967687405000000000000009506401453697A + 652E506C6174666F726D44656661756C7408000A5452656374616E676C650005 + 416C69676E07094D6F737452696768740A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080553696465730B044C6566740552696768 + 74000A53697A652E57696474680500000000000000A001400B53697A652E4865 + 6967687405000000000000009006401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F72070978464631353135313500000A + 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 + 3105416C69676E070A4D6F7374426F74746F6D13456E61626C65447261674869 + 67686C69676874080A46696C6C2E436F6C6F7207097846463230323032300748 + 697454657374080A506F736974696F6E2E590500000000000000900640055369 + 6465730B06426F74746F6D055269676874000A53697A652E5769647468050000 + 0000000000A001400B53697A652E4865696768740500000000000000A0014014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F7207097846463135313531350007544C61796F757400095374796C654E616D + 6506074C61796F75743305416C69676E07084D6F73744C6566740A53697A652E + 5769647468050000000000000080FF3F0B53697A652E48656967687405000000 + 00000000A001401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 + 05416C69676E0703546F700A46696C6C2E436F6C6F7207097846463135313531 + 350748697454657374080A53697A652E5769647468050000000000000080FF3F + 0B53697A652E486569676874050000000000000080FF3F1453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000000000A5452656374616E676C650005416C69676E07074D6F7374546F700A + 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000056D5AF07400B53697A + 652E4865696768740500000000000000F003401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 350007544C61796F757400095374796C654E616D65060763617074696F6E0541 + 6C69676E0708436F6E74656E7473064C6F636B6564090748697454657374090A + 53697A652E576964746805000000000056D5AF07400B53697A652E4865696768 + 740500000000000000F003401453697A652E506C6174666F726D44656661756C + 7408000007544C61796F75740005416C69676E0706436C69656E74064C6F636B + 6564090C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A53697A652E576964746805000000000056D5AE07400B53697A65 + 2E4865696768740500000000000000E003401453697A652E506C6174666F726D + 44656661756C74080007544C61796F75740005416C69676E07044C656674064C + 6F636B6564090A53697A652E576964746805000000000000009002400B53697A + 652E4865696768740500000000000000E003401453697A652E506C6174666F72 + 6D44656661756C7408000007544C61796F757400095374796C654E616D650604 + 69636F6E064C6F636B6564090A506F736974696F6E2E58050000000000000090 + 02400A506F736974696F6E2E590500000000000000E001400A53697A652E5769 + 6474680500000000000000C803400B53697A652E486569676874050000000000 + 0000A803401453697A652E506C6174666F726D44656661756C7408000007544C + 61796F757400095374796C654E616D65060773797362746E7305416C69676E07 + 06436C69656E74064C6F636B6564090A53697A652E5769647468050000000000 + 5655AA07400B53697A652E4865696768740500000000000000E003401453697A + 652E506C6174666F726D44656661756C7408000C545370656564427574746F6E + 00095374796C654E616D650605636C6F736505416C69676E0705526967687406 + 4C6F636B6564090A506F736974696F6E2E5805000000000056559107400A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000E003401453697A652E506C6174666F726D44656661756C7408 + 0B5374796C654C6F6F6B75700610636C6F7365627574746F6E7374796C650000 + 0C545370656564427574746F6E00095374796C654E616D6506036D617805416C + 69676E07055269676874064C6F636B6564090A506F736974696F6E2E58050000 + 00000056558207400A53697A652E57696474680500000000000000F003400B53 + 697A652E4865696768740500000000000000E003401453697A652E506C617466 + 6F726D44656661756C74080B5374796C654C6F6F6B7570060E6D617862757474 + 6F6E7374796C6500000C545370656564427574746F6E00095374796C654E616D + 65060372657305416C69676E07055269676874064C6F636B6564090A506F7369 + 74696F6E2E58050000000000ACAAE606400A53697A652E576964746805000000 + 00000000F003400B53697A652E4865696768740500000000000000E003401453 + 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 + 060E726573627574746F6E7374796C6500000C545370656564427574746F6E00 + 095374796C654E616D6506036D696E05416C69676E07055269676874064C6F63 + 6B6564090A506F736974696F6E2E58050000000000ACAAC806400A53697A652E + 57696474680500000000000000F003400B53697A652E48656967687405000000 + 00000000E003401453697A652E506C6174666F726D44656661756C74080B5374 + 796C654C6F6F6B7570060E6D696E627574746F6E7374796C6500000554546578 + 7400095374796C654E616D6506057469746C6505416C69676E0706436C69656E + 74064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 000000ACAAC806400B53697A652E4865696768740500000000000000E0034014 + 53697A652E506C6174666F726D44656661756C7408045465787406055469746C + 65165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 7465000000000007544C61796F757400095374796C654E616D650606636C6965 + 6E7405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 090A53697A652E576964746805000000000056D5AA07400B53697A652E486569 + 67687405000000000000009006401453697A652E506C6174666F726D44656661 + 756C7408000007544C61796F757400095374796C654E616D650606626F74746F + 6D05416C69676E0706426F74746F6D064C6F636B6564090A506F736974696F6E + 2E580500000000000000A001400A506F736974696F6E2E590500000000000000 + AE06400A53697A652E576964746805000000000056D5AA07400B53697A652E48 + 65696768740500000000000000A001401453697A652E506C6174666F726D4465 + 6661756C7408000A5452656374616E676C6500095374796C654E616D65060472 + 65637405416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846 + 463230323032300748697454657374080553696465730B03546F7006426F7474 + 6F6D000A53697A652E576964746805000000000056D5AA07400B53697A652E48 + 65696768740500000000000000A001401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350000 + 00005450463007544C61796F757400095374796C654E616D650610726164696F + 627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000F205400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C740807566973 + 69626C65080007544C61796F75740005416C69676E07044C6566740A53697A65 + 2E57696474680500000000000000A803400B53697A652E486569676874050000 + 0000000000A803401453697A652E506C6174666F726D44656661756C74080008 + 54456C6C6970736500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646323032 + 303230064C6F636B6564090748697454657374080A53697A652E576964746805 + 00000000000000F002400B53697A652E4865696768740500000000000000F002 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F720709784646313531353135000854456C6C6970736500095374796C65 + 4E616D650609636865636B6D61726B05416C69676E0706436C69656E740A4669 + 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 + 65737408074F70616369747905000000000000000000000C4D617267696E732E + 4C65667405000000000000008000400B4D617267696E732E546F700500000000 + 0000008000400D4D617267696E732E526967687405000000000000008000400E + 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 + 696474680500000000000000B002400B53697A652E4865696768740500000000 + 000000B002401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00 + 095374796C654E616D65061A6F706163697479436865636B6D61726B416E696D + 6174696F6E31084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D6506074F7061636974790A537461727456616C75650500000000 + 0000000000000953746F7056616C7565050000000000000080FF3F0754726967 + 676572060E4973436865636B65643D747275650E54726967676572496E766572 + 7365060F4973436865636B65643D66616C73650000000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D65061A726164696F627574746F6E436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 0007496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572061049734D6F7573654F + 7665723D747275650E54726967676572496E7665727365061149734D6F757365 + 4F7665723D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060C + 5374726F6B652E436F6C6F720A537461727456616C7565070978464631353135 + 31350953746F7056616C75650709784646324138324532075472696767657206 + 0E4973436865636B65643D747275650E54726967676572496E7665727365060F + 4973436865636B65643D66616C73650000000005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000A803401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C6157686974650000005450463007544C61796F757400095374 + 796C654E616D650618756C63656E746572726164696F627574746F6E7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 5655FB05400B53697A652E4865696768740500000000000000A004401453697A + 652E506C6174666F726D44656661756C74080756697369626C65080007544C61 + 796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E590500 + 0000000000008804400A53697A652E57696474680500000000005655FB05400B + 53697A652E4865696768740500000000000000C001401453697A652E506C6174 + 666F726D44656661756C7408000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E747307 + 436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080A53697A652E57696474680500000000005655FB05400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D6506216261636B + 67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E31084475 + 726174696F6E050000000000000000000007496E7665727365090C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572061049734D6F7573654F7665723D747275650E54726967676572 + 496E7665727365061149734D6F7573654F7665723D66616C736500000A545265 + 6374616E676C6500095374796C654E616D650609636865636B6D61726B05416C + 69676E0708436F6E74656E747307436F726E6572730B07546F704C6566740A42 + 6F74746F6D4C656674000A46696C6C2E436F6C6F720709784646324138324532 + 064C6F636B656409074869745465737408074F70616369747905000000000000 + 000000000C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 + 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 + 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F0A53697A652E57696474680500000000005655F705400B53697A + 652E48656967687405000000000000008001401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C + 6F6174416E696D6174696F6E00095374796C654E616D65061A636865636B6D61 + 726B4F706163697479416E696D6174696F6E31084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D6506074F7061636974790A5374 + 61727456616C756505000000000000000000000953746F7056616C7565050000 + 000000000080FF3F0754726967676572060E4973436865636B65643D74727565 + 0E54726967676572496E7665727365060F4973436865636B65643D66616C7365 + 000000000005545465787400095374796C654E616D6506047465787405416C69 + 676E0706436C69656E74064C6F636B6564090748697454657374080A53697A65 + 2E57696474680500000000005655FB05400B53697A652E486569676874050000 + 00000000008804401453697A652E506C6174666F726D44656661756C74081654 + 65787453657474696E67732E466F6E74436F6C6F720708636C61576869746500 + 00005450463007544C61796F757400095374796C654E616D650617756C726967 + 6874726164696F627574746F6E7374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 + 68740500000000000000A004401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C65080007544C61796F75740005416C69676E0706426F + 74746F6D0A506F736974696F6E2E5905000000000000008804400A53697A652E + 57696474680500000000005655FB05400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E747307436F726E6572730B08546F70526967 + 68740B426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632 + 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 + 680500000000005655FB05400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D6506216261636B67726F756E64556C427574746F + 6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 + 0000000007496E7665727365090C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463230323032300953746F + 7056616C756507097846463430343034300754726967676572061049734D6F75 + 73654F7665723D747275650E54726967676572496E7665727365061149734D6F + 7573654F7665723D66616C736500000A5452656374616E676C6500095374796C + 654E616D650609636865636B6D61726B05416C69676E0708436F6E74656E7473 + 07436F726E6572730B08546F7052696768740B426F74746F6D5269676874000A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 745465737408074F70616369747905000000000000000000000C4D617267696E + 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 + 2E57696474680500000000005655F705400B53697A652E486569676874050000 + 00000000008001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D65061A636865636B6D61726B4F706163697479416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572060E4973436865636B65643D747275650E54726967676572496E76 + 65727365060F4973436865636B65643D66616C73650000000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000880440145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D650616756C6C656674726164696F627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000005655FB05400B53697A652E4865696768740500000000000000A004 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 0007544C61796F75740005416C69676E0706426F74746F6D0A506F736974696F + 6E2E5905000000000000008804400A53697A652E576964746805000000000056 + 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C656674 + 000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000005655FB05400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F + 6E31084475726174696F6E050000000000000000000007496E7665727365090C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572061049734D6F7573654F7665723D747275650E5472 + 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 + 000A5452656374616E676C6500095374796C654E616D650609636865636B6D61 + 726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F704C + 6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B656409074869745465737408074F7061636974790500 + 0000000000000000000C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000005655F705 + 400B53697A652E48656967687405000000000000008001401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A6368 + 65636B6D61726B4F706163697479416E696D6174696F6E31084475726174696F + 6E05000000000000000000000C50726F70657274794E616D6506074F70616369 + 74790A537461727456616C756505000000000000000000000953746F7056616C + 7565050000000000000080FF3F0754726967676572060E4973436865636B6564 + 3D747275650E54726967676572496E7665727365060F4973436865636B65643D + 66616C7365000000000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 + 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 + 687405000000000000008804401453697A652E506C6174666F726D4465666175 + 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 + 686974650000005450463007544C61796F757400095374796C654E616D650616 + 70726F677265737362617266696E6973687374796C6505416C69676E07064365 + 6E7465720A53697A652E576964746805000000000033338505400B53697A652E + 4865696768740500000000009999E104401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000A5452656374616E676C6500095374 + 796C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000033338505400B53697A + 652E4865696768740500000000009999E104401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000A5452656374616E676C6500095374796C654E616D65060A68696E646963 + 61746F7205416C69676E07044C6566740A46696C6C2E436F6C6F720709784646 + 324345323434064C6F636B6564090748697454657374080C4D617267696E732E + 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 + 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E + 4D617267696E732E426F74746F6D050000000000000080FF3F0A506F73697469 + 6F6E2E58050000000000000080FF3F0A506F736974696F6E2E59050000000000 + 000080FF3F0A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000009999D904401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452 + 656374616E676C6500095374796C654E616D65060676747261636B05416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000A5452656374616E676C6500095374796C65 + 4E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46 + 696C6C2E436F6C6F720709784646324345323434064C6F636B65640907486974 + 54657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D61 + 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 + 6874050000000000000080FF3F0E4D617267696E732E426F74746F6D05000000 + 0000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F + 736974696F6E2E5905000000000099998904400A53697A652E57696474680500 + 0000000033338105400B53697A652E4865696768740500000000000000A80340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000000005450463007544C61796F757400095374796C654E + 616D65060D657870616E6465727374796C6505416C69676E070643656E746572 + 0A53697A652E576964746805000000000000C08407400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508000A5452656374616E676C6500095374796C654E + 616D65060B626772656374616E676C6505416C69676E0708436F6E74656E7473 + 0C436C69704368696C6472656E090A46696C6C2E436F6C6F7207097846463244 + 32443244064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000000C08407400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F7207097846463135313531350007544C61796F757400095374796C65 + 4E616D6506074C61796F75743305416C69676E0703546F700A53697A652E5769 + 64746805000000000000C08407400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C74080007544C61 + 796F757400095374796C654E616D6506074C61796F75743405416C69676E0708 + 436F6E74656E74730A53697A652E576964746805000000000000C08407400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653205416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646323532353235064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000000C08407400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 00000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 09784646313531353135064C6F636B6564090748697454657374080A53697A65 + 2E576964746805000000000000C08407400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D650614466C6F6174416E696D6174696F6E31537479 + 6C65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C61 + 74696F6E070843697263756C61720C50726F70657274794E616D650607536361 + 6C652E580A537461727456616C7565050000000000000080FF3F0953746F7056 + 616C756505000000000000000000000754726967676572060F4973457870616E + 6465643D747275650E54726967676572496E766572736506104973457870616E + 6465643D66616C73650000000007544C61796F757400095374796C654E616D65 + 06074C61796F75743305416C69676E0708436F6E74656E74730A53697A652E57 + 6964746805000000000000C08407400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C740800055454 + 65787400095374796C654E616D6506047465787405416C69676E07044C656674 + 084175746F53697A65090A436C6970506172656E7409064C6F636B6564090748 + 697454657374080C4D617267696E732E4C6566740500000000000000A002400A + 506F736974696F6E2E580500000000000000A002400A53697A652E5769647468 + 05000000000000B8C703400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74081654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746516546578745365 + 7474696E67732E486F727A416C69676E07074C656164696E670000000F544578 + 70616E646572427574746F6E00095374796C654E616D650606627574746F6E05 + 416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E5805 + 00000000000080F506400A53697A652E57696474680500000000000000A00340 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C740800000000005450463007544C61796F75740009 + 5374796C654E616D650613657870616E646572627574746F6E7374796C650541 + 6C69676E070643656E7465720B4D617267696E732E546F700500000000000000 + 80FF3F0A53697A652E57696474680500000000000000B003400B53697A652E48 + 65696768740500000000000000B003401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C65080005545061746800095374796C654E616D + 650605506174683105416C69676E070643656E74657209446174612E50617468 + 0A3400000004000000000000000000C8420000C84201000000000096430000C8 + 42010000000000484300009643030000000000C8420000C8420A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080D526F746174696F6E + 416E676C650500000000000000B405400A53697A652E57696474680500000000 + 000000A002400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D + 650614466C6F6174416E696D6174696F6E315374796C65084475726174696F6E + 050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E07084369726375 + 6C61720C50726F70657274794E616D65060D526F746174696F6E416E676C650A + 537461727456616C75650500000000000000B405400953746F7056616C756505 + 000000000000000000000754726967676572060F4973457870616E6465643D74 + 7275650E54726967676572496E766572736506104973457870616E6465643D66 + 616C7365000000005450463007544C61796F757400095374796C654E616D6506 + 15657870616E646572636865636B626F787374796C6505416C69676E07064365 + 6E7465720A53697A652E576964746805000000000000008406400B53697A652E + 48656967687405000000000000008404401453697A652E506C6174666F726D44 + 656661756C74080756697369626C65080007544C61796F75740005416C69676E + 07044C6566740A53697A652E57696474680500000000000000C003400B53697A + 652E48656967687405000000000000008404401453697A652E506C6174666F72 + 6D44656661756C7408000554506174680005416C69676E0706436C69656E7409 + 446174612E506174680AD80100002700000000000000FEC8BA4402E792440200 + 00002592AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FEB0 + 9E440200000093A4A4446A0C9F44020000004A80AC44FC79AA4402000000046E + BA44FC79AA44020000004A00C844FC79AA44020000000080CF44FEB09E440200 + 00000080CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402E7 + 924402000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B876 + BF44FE309744020000000277C344EEA09A44020000000277C34404DE9E440200 + 00000277C344121BA34402000000B876BF44008CA64402000000FE88BA44008C + A644020000004C9BB544008CA64402000000009CB144121BA34402000000009C + B14404DE9E4402000000009CB144EEA09A44020000004C9BB544FE3097440200 + 0000FE88BA44FE309744000000000080BA44045E9B4402000000146EB844045E + 9B440200000000C0B64454F79C440200000000C0B64400F09E440200000000C0 + B644ACE8A04402000000146EB844FC81A244020000000080BA44FC81A2440200 + 0000EC91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400F0 + 9E44020000000040BE4454F79C4402000000EC91BC44045E9B44020000000080 + BA44045E9B440A46696C6C2E436F6C6F72070978363030303030303007486974 + 54657374080C4D617267696E732E4C65667405000000000000008000400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 + 000000008000400A53697A652E57696474680500000000000000A003400B5369 + 7A652E4865696768740500000000000000E803401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261 + 704D6F64650703466974000F54436F6C6F72416E696D6174696F6E0008447572 + 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978363030303030303009 + 53746F7056616C75650708636C61426C61636B0754726967676572060E497343 + 6865636B65643D7472756500000F54436F6C6F72416E696D6174696F6E000844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C75650708636C61426C61636B + 0953746F7056616C756507097836303030303030300754726967676572060F49 + 73436865636B65643D66616C73650000000005545465787400095374796C654E + 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 + 48697454657374080C4D617267696E732E4C6566740500000000000000800240 + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 5269676874050000000000000080FF3F0A53697A652E57696474680500000000 + 000000C605400B53697A652E4865696768740500000000000000F80340145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720709784646454545454545165465787453657474696E + 67732E486F727A416C69676E07074C656164696E670000005450463007544C61 + 796F757400095374796C654E616D65060E6C6162656C66696C6C7374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000000 + C805400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 + 616E676C6500095374796C654E616D65060A52656374616E676C653105416C69 + 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464631353135 + 31350A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000005545465787400 + 095374796C654E616D6506047465787405416C69676E0708436F6E74656E7473 + 0748697454657374080A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C6157686974650000005450463007544C61796F757400095374 + 796C654E616D650613636F6D626F656469746572726F727374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508000C5442727573684F62 + 6A65637400095374796C654E616D65060A666F726567726F756E6400000B5446 + 6F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E742E + 53697A650500000000000000D00240000007544C61796F757400095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C7408000A5452656374616E676C6500095374796C654E616D65060A52656374 + 616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F720709784646323032303230000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 + 084475726174696F6E050000000000000000000007496E7665727365090C5072 + 6F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572062049734D6F7573654F7665723D747275653B4973 + 466F63757365643D66616C73650E54726967676572496E766572736506214973 + 4D6F7573654F7665723D66616C73653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F + 6C6F72416E696D6174696F6E325374796C65084475726174696F6E0500000000 + 00000000000007496E7665727365090C50726F70657274794E616D65060C5374 + 726F6B652E436F6C6F720A537461727456616C75650709784646343034303430 + 0953746F7056616C756507097846464532324132410754726967676572061F49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 + 726967676572496E7665727365062049734D6F7573654F7665723D747275653B + 4973466F63757365643D66616C7365000007544C61796F757400095374796C65 + 4E616D6506056172726F7705416C69676E070846697452696768740B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E580500000000005ED99705400A506F7369 + 74696F6E2E59050000000000000080FF3F0A53697A652E576964746805000000 + 0000889AB803400B53697A652E4865696768740500000000000000B803401453 + 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646333033303330074869 + 7454657374080A53697A652E5769647468050000000000889AB803400B53697A + 652E4865696768740500000000000000B803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E315374796C65084475726174696F6E05000000000000000000 + 0007496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463330333033300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973466F63 + 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646343034303430 + 0953746F7056616C756507097846463943313731370754726967676572061F49 + 73466F63757365643D747275653B49734D6F7573654F7665723D747275650000 + 0007544C61796F757400095374796C654E616D6506074C61796F75743105416C + 69676E070643656E7465720C4D617267696E732E4C6566740500000000000000 + 80FF3F0A53697A652E57696474680500000000000000A002400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080005545061746800095374796C654E616D650605506174683105 + 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 + 000000000000C8420000C84201000000000096430000C8420100000000004843 + 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650000000000000C5442727573684F626A65637400095374796C654E616D + 65060973656C656374696F6E0B42727573682E436F6C6F720709783936324138 + 324532000007544C61796F757400095374796C654E616D650607636F6E74656E + 7405416C69676E0706436C69656E740C4D617267696E732E4C65667405000000 + 000000008000400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E52696768740500000000000000F003400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 000000008805400B53697A652E4865696768740500000000000000A803401453 + 697A652E506C6174666F726D44656661756C74080000005450463007544C6179 + 6F757400095374796C654E616D65061E70726F6772657373626172696E646574 + 65726D696E61626C657374796C6505416C69676E070643656E7465720A53697A + 652E5769647468050000000000ABAAB006400B53697A652E4865696768740500 + 000000000000C003401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 + 0676747261636B05416C69676E0708436F6E74656E747307456E61626C656408 + 0A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564090748 + 697454657374080A53697A652E57696474680500000000000000E006400B5369 + 7A652E48656967687405000000000000009404401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350756697369626C6508000A5452656374616E676C6500095374796C654E61 + 6D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C + 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 + 74696F6E2E590500000000000000F002400A53697A652E576964746805000000 + 00000000DE06400B53697A652E4865696768740500000000000000A803401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6500000007544C61796F757400095374796C654E616D6506066874 + 7261636B05416C69676E0708436F6E74656E74730A53697A652E576964746805 + 0000000000ABAAB006400B53697A652E4865696768740500000000000000C003 + 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E74730C436C69704368696C6472656E090A46696C6C2E436F + 6C6F720709784646324138324532064C6F636B6564090748697454657374080A + 53697A652E5769647468050000000000ABAAB006400B53697A652E4865696768 + 740500000000000000C003401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E69 + 6D6174696F6E315374796C6507456E61626C656409084475726174696F6E0500 + 000000000000800140044C6F6F70090C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 + 746F7056616C756507097846463241383245320754726967676572060E497356 + 697369626C653D7472756500000000005450463007544C61796F757400095374 + 796C654E616D650611616E69696E64696361746F727374796C6505416C69676E + 070643656E7465720756697369626C650800045441726300095374796C654E61 + 6D65060341726305416C69676E0708436F6E74656E7473074869745465737408 + 0D526F746174696F6E416E676C650500000000000000B407400A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720708636C615768697465105374726F6B652E546869636B + 6E65737305000000000000008001400A5374726F6B652E4361700705526F756E + 640B5374726F6B652E4A6F696E0705426576656C08456E64416E676C65050000 + 0000000000B405C0000F54466C6F6174416E696D6174696F6E00095374796C65 + 4E616D650603616E6907456E61626C656409084475726174696F6E0500000000 + 00000080FF3F044C6F6F70090C50726F70657274794E616D65060D526F746174 + 696F6E416E676C650A537461727456616C756505000000000000000000000953 + 746F7056616C75650500000000000000B407400754726967676572060E497356 + 697369626C653D74727565000000005450463007544C61796F75740009537479 + 6C654E616D650615616E69696E64696361746F72686F727A7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000040C006 + 400B53697A652E48656967687405000000000000008000401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000A5452656374616E + 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E + 0706436C69656E740C436C69704368696C6472656E090A46696C6C2E436F6C6F + 7207097846463430343034300A53697A652E57696474680500000000000040C0 + 06400B53697A652E48656967687405000000000000008000401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650005544C696E6500095374796C654E616D6506054C696E6531084C696E6554 + 7970650706426F74746F6D0A53697A652E57696474680500000000000000A00B + 400B53697A652E48656967687405000000000000008000401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 324138324532105374726F6B652E546869636B6E657373050000000000000080 + 02400B5374726F6B652E44617368070444617368000F54466C6F6174416E696D + 6174696F6E00095374796C654E616D650603616E6907456E61626C6564090844 + 75726174696F6E0500000000000000800340044C6F6F70090C50726F70657274 + 794E616D65060A506F736974696F6E2E580A537461727456616C756505000000 + 00000000C808C00953746F7056616C7565050000000000000000000007547269 + 67676572060E497356697369626C653D7472756500000000005450463007544C + 61796F757400095374796C654E616D65060A70616E656C7374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C00640 + 0B53697A652E4865696768740500000000000000A406401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A + 53697A652E57696474680500000000000000C006400B53697A652E4865696768 + 740500000000000000A406401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C6179 + 6F757400095374796C654E616D65060E6C6F67627574746F6E7374796C650541 + 6C69676E070643656E7465720A53697A652E57696474680500000000000000C0 + 05400B53697A652E4865696768740500000000000000C005401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080A53697A652E57696474680500000000000000C005400B53697A652E4865 + 696768740500000000000000C005401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572063049734D6F7573654F7665723D747275653B497350 + 7265737365643D66616C73653B4973466F63757365643D66616C73650E547269 + 67676572496E7665727365063149734D6F7573654F7665723D66616C73653B49 + 73507265737365643D66616C73653B4973466F63757365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574 + 746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000 + 0000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463430343034300953746F7056616C756507 + 097846463137353739430754726967676572062F4973507265737365643D7472 + 75653B49734D6F7573654F7665723D747275653B4973466F63757365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 + 616C756507097846463137353739430754726967676572062E49735072657373 + 65643D747275653B49734D6F7573654F7665723D747275653B4973466F637573 + 65643D747275650E54726967676572496E7665727365062F4973507265737365 + 643D66616C73653B49734D6F7573654F7665723D747275653B4973466F637573 + 65643D74727565000005545061746800095374796C654E616D65060550617468 + 3105416C69676E0706436C69656E7409446174612E506174680A5C0200003200 + 0000000000000000A841CDCCCC40010000000000A8410000C041010000000000 + C03F0000C041010000000000C03F00000000010000009A996941000000000100 + 00000000A841CDCCCC40030000000000A841CDCCCC400000000000009C410000 + F04001000000000058410000F04001000000000058410000C03F010000000000 + 40400000C03F01000000000040400000B4410100000000009C410000B4410100 + 000000009C410000F0400300000000009C410000F04000000000000040410000 + F04001000000000090400000F04001000000000090400000C040010000000000 + 40410000C04001000000000040410000F04003000000000040410000F0400000 + 0000000090400000104101000000000090410000104101000000000090410000 + 2841010000000000904000002841010000000000904000001041030000000000 + 9040000010410000000000009040000040410100000000009041000040410100 + 0000000090410000584101000000000090400000584101000000000090400000 + 4041030000000000904000004041000000000000904000007041010000000000 + 9041000070410100000000009041000084410100000000009040000084410100 + 0000000090400000704103000000000090400000704100000000000090400000 + 9041010000000000904100009041010000000000904100009C41010000000000 + 904000009C410100000000009040000090410300000000009040000090410000 + 0000000070410000C04001000000333393410000C04001000000000070416666 + 264001000000000070410000C04003000000000070410000C0400A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080C4D617267696E73 + 2E4C6566740500000000000000A002400B4D617267696E732E546F7005000000 + 00000000A002400D4D617267696E732E52696768740500000000000000A00240 + 0E4D617267696E732E426F74746F6D0500000000000000A002400A53697A652E + 576964746805000000000000009805400B53697A652E48656967687405000000 + 000000009805401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6508577261704D6F64650703466974000000 + 005450463007544C61796F757400095374796C654E616D65061470726F677265 + 73736261726D696E697374796C6505416C69676E070643656E7465720A53697A + 652E576964746805000000000033338505400B53697A652E4865696768740500 + 000000009999E104401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 + 0668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F720709784646343034303430064C6F636B6564090748697454657374080A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C6500 + 095374796C654E616D65060A68696E64696361746F7205416C69676E07044C65 + 66740A46696C6C2E436F6C6F720709784646324138324532064C6F636B656409 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000009999E104401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 000A5452656374616E676C6500095374796C654E616D65060676747261636B05 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464634 + 3034303430064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000033338505400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E61 + 6D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C + 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 + 7374080A506F736974696F6E2E5905000000000099998D04400A53697A652E57 + 6964746805000000000033338505400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 + 5374796C654E616D65061B7472656576696577657870616E646572627574746F + 6E7374796C6505416C69676E070643656E7465720B4D617267696E732E546F70 + 050000000000000080FF3F0A53697A652E57696474680500000000000000B003 + 400B53697A652E4865696768740500000000000000B003401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000554506174680009 + 5374796C654E616D650605506174683105416C69676E070643656E7465720944 + 6174612E506174680A3400000004000000000000000000C8420000C842010000 + 00000096430000C842010000000000484300009643030000000000C8420000C8 + 420A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D + 526F746174696F6E416E676C650500000000000000B405C00A53697A652E5769 + 6474680500000000000000A002400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0009 + 5374796C654E616D650614466C6F6174416E696D6174696F6E315374796C6508 + 4475726174696F6E05000000000000000000000D496E746572706F6C6174696F + 6E070843697263756C61720C50726F70657274794E616D65060D526F74617469 + 6F6E416E676C650A537461727456616C75650500000000000000B405C0095374 + 6F7056616C756505000000000000000000000754726967676572060F49734578 + 70616E6465643D747275650E54726967676572496E7665727365061049734578 + 70616E6465643D66616C736500000000545046300A5452656374616E676C6500 + 095374796C654E616D65061174726565766965776974656D7374796C6505416C + 69676E070643656E7465720946696C6C2E4B696E6407044E6F6E650748697454 + 657374080553696465730B06426F74746F6D000A53697A652E57696474680500 + 000000000000AE05400B53697A652E4865696768740500000000000000A00440 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F7207097846463135313531350756697369626C6508000C54537065656442 + 7574746F6E00095374796C654E616D650606627574746F6E05416C69676E0704 + 4C6566740A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000A004401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B7570061B7472656576696577657870 + 616E646572627574746F6E7374796C65000007544C61796F75740005416C6967 + 6E0708436F6E74656E74730C4D617267696E732E4C6566740500000000000000 + A003400A53697A652E576964746805000000000000008605400B53697A652E48 + 65696768740500000000000000A004401453697A652E506C6174666F726D4465 + 6661756C7408000954436865636B426F7800095374796C654E616D6506056368 + 65636B05416C69676E07044C6566740843616E466F637573081244697361626C + 65466F637573456666656374090A53697A652E57696474680500000000000000 + A003400B53697A652E4865696768740500000000000000A004401453697A652E + 506C6174666F726D44656661756C740800000654476C79706800095374796C65 + 4E616D65060A676C7970687374796C650C4D617267696E732E4C656674050000 + 00000000008000400B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E526967687405000000000000008000400E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F05416C69676E07044C6566740A50 + 6F736974696F6E2E580500000000000000B003400A506F736974696F6E2E5905 + 0000000000000080FF3F0A53697A652E57696474680500000000000000800340 + 0B53697A652E48656967687405000000000000009804401453697A652E506C61 + 74666F726D44656661756C7408000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 + 54657374080A53697A652E57696474680500000000000000BC04400B53697A65 + 2E4865696768740500000000000000A004401453697A652E506C6174666F726D + 44656661756C74080454657874060454657874165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C615768697465155465787453657474696E67 + 732E576F72645772617008165465787453657474696E67732E486F727A416C69 + 676E07074C656164696E670000000A5452656374616E676C650005416C69676E + 0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869745465 + 7374080E4D617267696E732E426F74746F6D050000000000000080FF3F055369 + 6465730B044C656674000A53697A652E57696474680500000000000000AE0540 + 0B53697A652E48656967687405000000000000009C04401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 + 4138324532105374726F6B652E546869636B6E65737305000000000000008000 + 400000005450463007544C61796F757400095374796C654E616D65060D747265 + 65766965777374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000E106400B53697A652E486569676874050000000000 + 00808107401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508000C5442727573684F626A65637400095374796C654E616D65061841 + 6C7465726E6174696E67526F774261636B67726F756E640B42727573682E436F + 6C6F72070978304646464646464600000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 + 0748697454657374080C50616464696E672E4C656674050000000000000080FF + 3F0D50616464696E672E5269676874050000000000000080FF3F0A53697A652E + 57696474680500000000000000E106400B53697A652E48656967687405000000 + 000000808107401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F7207097846463135313531350007544C61796F75740009 + 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 + 0C436C69704368696C6472656E090B4D617267696E732E546F70050000000000 + 000080FF3F0A53697A652E57696474680500000000000000CD06400B53697A65 + 2E4865696768740500000000000000F006401453697A652E506C6174666F726D + 44656661756C7408000A5452656374616E676C6500095374796C654E616D6506 + 0973656C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0A5452656374616E676C6500095374796C654E616D650610666F637573656473 + 656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B537472 + 6F6B652E446173680703446F740000000A545363726F6C6C4261720009537479 + 6C654E616D65060A767363726F6C6C62617205416C69676E070552696768740B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E0708566572746963616C0C4D617267696E732E4C65667405000000000000 + 008000400A506F736974696F6E2E580500000000000000D006400A53697A652E + 576964746805000000000000008003400B53697A652E48656967687405000000 + 00000000F106401453697A652E506C6174666F726D44656661756C740800000A + 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 + 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D + 617267696E732E546F7005000000000000008000400A506F736974696F6E2E58 + 050000000000000080FF3F0A506F736974696F6E2E590500000000000000F306 + 400A53697A652E57696474680500000000000000DF06400B53697A652E486569 + 67687405000000000000008003401453697A652E506C6174666F726D44656661 + 756C740800000F54536D616C6C5363726F6C6C42617200095374796C654E616D + 65060F76736D616C6C7363726F6C6C62617205416C69676E070552696768740B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E0708566572746963616C0C4D617267696E732E4C65667405000000000000 + 008000400A506F736974696F6E2E580500000000000000C605400A506F736974 + 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 + 0000008002400B53697A652E4865696768740500000000000000800240145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650800000F54 + 536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D616C + 6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368 + 616E676505000000000000000000000B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A50 + 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 + 00000000000000E205400A53697A652E57696474680500000000000000960640 + 0B53697A652E48656967687405000000000000008002401453697A652E506C61 + 74666F726D44656661756C74080756697369626C650800000000545046300754 + 4C61796F757400095374796C654E616D650619616374696F6E746F6F6C627574 + 746F6E6D756C74697669657705416C69676E070643656E7465720A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C65080B46697865644865696768740232000654476C79706800095374 + 796C654E616D65060A676C7970687374796C650C4D617267696E732E4C656674 + 05000000000000009002400B4D617267696E732E546F70050000000000000090 + 02400E4D617267696E732E426F74746F6D050000000000000090024005416C69 + 676E07044C6566740A506F736974696F6E2E5805000000000000009002400A50 + 6F736974696F6E2E5905000000000000009002400A53697A652E576964746805 + 000000000000008004400B53697A652E48656967687405000000000000008004 + 401453697A652E506C6174666F726D44656661756C740800000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080C4D617267696E732E4C6566740500000000000000C804C00A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F + 6E31084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646343034303430075472696767 + 6572063049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73653B4973466F63757365643D66616C73650E54726967676572496E7665 + 727365063149734D6F7573654F7665723D66616C73653B497350726573736564 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E33084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463241383245320953746F7056616C7565070978464631373537 + 39430754726967676572062E4973507265737365643D747275653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D747275650E5472696767 + 6572496E7665727365062F4973507265737365643D66616C73653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D74727565000000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E740748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C7408045465787406045465787416546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000007544C61 + 796F757400095374796C654E616D6506074C61796F75743205416C69676E0704 + 4C6566740A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080005545061746800095374796C654E616D65060469636F6E05 + 416C69676E070643656E74657209446174612E506174680A1801000017000000 + 000000000000C03F0000C03F0100000000000000000000000100000000004040 + 00000000010000000000C03F0000C03F030000000000C03F0000C03F00000000 + 00009040000000000100000000004041000000000100000000004041CDCC4C3F + 0100000000009040CDCC4C3F0100000000009040000000000300000000009040 + 0000000000000000000090403333734001000000000090400000404001000000 + 0000404100004040010000000000404133337340010000000000904033337340 + 03000000000090403333734000000000000090409A99D9400100000000009040 + 0000C04001000000000040410000C04001000000000040419A99D94001000000 + 000090409A99D94003000000000090409A99D9400A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080A53697A652E5769647468050000 + 0000000000D003400B53697A652E4865696768740500000000000000E0034014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6508577261704D6F64650703466974000000005450463007544C + 61796F757400095374796C654E616D65060E616464627574746F6E7374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00C805400B53697A652E4865696768740500000000000000C003401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C65080B4669786564 + 4865696768740218000654476C79706800095374796C654E616D65060A676C79 + 70687374796C650C4D617267696E732E4C65667405000000000000009002400B + 4D617267696E732E546F7005000000000000009002400E4D617267696E732E42 + 6F74746F6D050000000000000090024005416C69676E07044C6566740A506F73 + 6974696F6E2E5805000000000000009002400A506F736974696F6E2E59050000 + 00000000009002400A53697A652E576964746805000000000000008004400B53 + 697A652E48656967687405000000000000008004401453697A652E506C617466 + 6F726D44656661756C740800000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C + 69704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080C4D617267696E732E4C + 6566740500000000000000C003C00A53697A652E576964746805000000000000 + 00C805400B53697A652E4865696768740500000000000000C003401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572063049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73653B4973466F637573 + 65643D66616C73650E54726967676572496E7665727365063149734D6F757365 + 4F7665723D66616C73653B4973507265737365643D66616C73653B4973466F63 + 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E330844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 + 320953746F7056616C756507097846463137353739430754726967676572062E + 4973507265737365643D747275653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D747275650E54726967676572496E7665727365062F49 + 73507265737365643D66616C73653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D7472756500000005545465787400095374796C654E61 + 6D6506047465787405416C69676E0706436C69656E740748697454657374080A + 53697A652E576964746805000000000000009805400B53697A652E4865696768 + 740500000000000000C003401453697A652E506C6174666F726D44656661756C + 74080454657874060454657874165465787453657474696E67732E466F6E7443 + 6F6C6F720708636C615768697465000007544C61796F757400095374796C654E + 616D6506074C61796F75743205416C69676E07044C6566740A53697A652E5769 + 6474680500000000000000C003400B53697A652E486569676874050000000000 + 0000C003401453697A652E506C6174666F726D44656661756C74080005545061 + 746800095374796C654E616D65060469636F6E05416C69676E0708436F6E7465 + 6E747309446174612E506174680AAC0000000E00000000000000CDCC34410000 + C040010000000000C0400000C040010000000000C040CDCC3441010000009A99 + A940CDCC3441010000009A99A9400000C04001000000000000000000C0400100 + 0000000000009A99A940010000009A99A9409A99A940010000009A99A9400000 + 0000010000000000C04000000000010000000000C0409A99A94001000000CDCC + 34419A99A94001000000CDCC34410000C04003000000CDCC34410000C0400A46 + 696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D6172 + 67696E732E4C65667405000000000000008001400B4D617267696E732E546F70 + 05000000000000008001400D4D617267696E732E526967687405000000000000 + 008001400E4D617267696E732E426F74746F6D05000000000000008001400A53 + 697A652E576964746805000000000000008003400B53697A652E486569676874 + 05000000000000008003401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 + 74000000005450463007544C61796F757400095374796C654E616D650617696E + 666F746F6F6C627574746F6E6D756C74697669657705416C69676E070643656E + 7465720A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C65080B46697865644865696768740232000654 + 476C79706800095374796C654E616D65060A676C7970687374796C650C4D6172 + 67696E732E4C65667405000000000000009002400B4D617267696E732E546F70 + 05000000000000009002400E4D617267696E732E426F74746F6D050000000000 + 000090024005416C69676E07044C6566740A506F736974696F6E2E5805000000 + 000000009002400A506F736974696F6E2E5905000000000000009002400A5369 + 7A652E576964746805000000000000008004400B53697A652E48656967687405 + 000000000000008004401453697A652E506C6174666F726D44656661756C7408 + 00000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E09 + 0A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080C4D617267696E732E4C6566740500000000000000 + C804C00A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572063049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C73650E5472 + 6967676572496E7665727365063149734D6F7573654F7665723D66616C73653B + 4973507265737365643D66616C73653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463241383245320953746F7056616C7565 + 07097846463137353739430754726967676572062E4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 7275650E54726967676572496E7665727365062F4973507265737365643D6661 + 6C73653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 72756500000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E740748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C7408045465787406045465 + 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 697465000007544C61796F757400095374796C654E616D6506074C61796F7574 + 3205416C69676E07044C6566740A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080005545061746800095374796C654E61 + 6D65060469636F6E05416C69676E070643656E74657209446174612E50617468 + 0A84070000A0000000000000009A9987429A99074302000000010076429A9907 + 430200000001005E42CDCC064302000000343347423433054302000000010030 + 429A9903430200000067661A42CE4C01430200000067660642CECCFC42020000 + 00CECCE4410100F742020000000100C041CECCEF420200000034339F419B99E7 + 4202000000CECC7C416866DF4202000000353343413533D64202000000CECC14 + 413533CC42020000009A99C9400000C24202000000000080403333B742020000 + 009A991940CDCCAB4202000000CDCC4C3F3333A0420200000000000000333394 + 4202000000000000009A99874202000000000000000100764202000000CDCC4C + 3F01005E42020000009A991940CECC4642020000000000804000003042020000 + 009A99C94066661A42020000003333134166660642020000009A994141CCCCE4 + 410200000033337B41FFFFBF410200000066669E4132339F41020000003333BF + 41CACC7C41020000000000E441313343410200000000000642CACC1441020000 + 0066661A429A99C94002000000000030420000804002000000333347429A9919 + 400200000000005E42CDCC4C3F020000006666764200000000020000009A9987 + 4200000000020000003433944200000000020000003433A042CDCC4C3F020000 + 00CDCCAB429A991940020000003333B74200008040020000000000C2429A99C9 + 40020000003333CC4233331341020000003333D6429A994141020000006666DF + 4233337B41020000009999E74266669E4102000000CCCCEF423333BF41020000 + 00FFFFF6420000E44102000000CCCCFC420000064202000000CC4C014300001A + 4202000000999903439A992F420200000033330543CDCC464202000000CDCC06 + 4300005E4202000000999907430000764202000000999907439A998742020000 + 00999907433433944202000000CCCC06433433A0420200000033330543CDCCAB + 4202000000999903436766B74202000000CD4C01433333C24202000000CCCCFC + 423433CC4202000000FFFFF6423433D64202000000CCCCEF426766DF42020000 + 009999E7429A99E742020000006666DF42CDCCEF42020000003333D6420000F7 + 42020000003333CC42CDCCFC42020000003333C242CD4C0143020000006666B7 + 429A99034302000000CCCCAB4233330543020000003333A042CDCC0643020000 + 00333394429A990743020000009A9987429A990743030000009A9987429A9907 + 43000000009A99874200001041020000009A9979420000104102000000CECC64 + 4233331B4102000000CECC50429A99314102000000CECC3C4200004841020000 + 0001002A420000684102000000CECC184200008841020000003433074200009C + 41020000003633EF41CDCCB441020000006966D2419A99D141020000009C99B5 + 416766EE41020000009C999D41CDCC064202000000D0CC884166661842020000 + 00A099694100002A4202000000A099494166663C42020000003A333341CCCC50 + 420200000033331B4133336542020000000000104100007A4202000000000010 + 419A9987420200000000001041343392420200000033331B41CDCC9C42020000 + 009A993141CDCCA6420200000000004841CDCCB04202000000000068413333BA + 4202000000000088410000C3420200000000009C41CDCCCB4202000000CDCCB4 + 419A99D342020000009A99D141CDCCDA42020000006766EE410000E242020000 + 00CDCC06420000E84202000000666618423333ED420200000000002A423333F2 + 420200000066663C423333F64202000000666650420000F94202000000666664 + 42CDCCFB4202000000333379423333FD4202000000666687423333FD42020000 + 00333392423333FD420200000099999C42CDCCFB42020000009999A6420000F9 + 42020000009999B0423333F64202000000FFFFB9423333F24202000000CCCCC2 + 423333ED42020000009999CB423333E842020000006666D3420000E242020000 + 009999DA42CDCCDA4202000000CCCCE1429A99D34202000000CCCCE742CDCCCB + 4202000000FFFFEC420000C34202000000FFFFF1423333BA4202000000FFFFF5 + 420000B14202000000CCCCF8420000A742020000009999FB4200009D42020000 + 00FFFFFC429A99924202000000FFFFFC42CDCC874202000000FFFFFC4200007A + 42020000009999FB423433654202000000CCCCF8423433514202000000FFFFF5 + 4234333D4202000000FFFFF14267662A4202000000FFFFEC42CECC1842020000 + 00FFFFE7423433074202000000CCCCE1423633EF41020000009999DA426966D2 + 41020000006666D3429C99B541020000009999CB429C999D4102000000CCCCC2 + 42D0CC884102000000FFFFB942A099694102000000CCCCB042A0994941020000 + 009999A6423A33334102000000CDCC9C4233331B410200000066669242000010 + 41020000009A99874200001041030000009A998742000010410000000033337D + 42CDCC1042010000009A999042CDCC1042010000009A999042CDCC3442010000 + 0034337D42CDCC34420100000034337D42CDCC10420300000033337D42CDCC10 + 420000000033337D4233335942010000009A99904233335942010000009A9990 + 420000C7420100000034337D420000C7420100000034337D4233335942030000 + 0033337D42333359420A46696C6C2E436F6C6F720708636C6157686974650748 + 697454657374080A53697A652E57696474680500000000000000D003400B5369 + 7A652E4865696768740500000000000000E003401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261 + 704D6F64650703466974000000005450463007544C61796F757400095374796C + 654E616D65061B6F7267616E697A65746F6F6C627574746F6E6D756C74697669 + 657705416C69676E070643656E7465720A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C65080B466978 + 65644865696768740232000654476C79706800095374796C654E616D65060A67 + 6C7970687374796C650C4D617267696E732E4C65667405000000000000009002 + 400B4D617267696E732E546F7005000000000000009002400E4D617267696E73 + 2E426F74746F6D050000000000000090024005416C69676E07044C6566740A50 + 6F736974696F6E2E5805000000000000009002400A506F736974696F6E2E5905 + 000000000000009002400A53697A652E57696474680500000000000000800440 + 0B53697A652E48656967687405000000000000008004401453697A652E506C61 + 74666F726D44656661756C740800000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C + 436C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E43 + 6F6C6F7207097846463230323032300748697454657374080C4D617267696E73 + 2E4C6566740500000000000000C804C00A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463230323032300953746F70 + 56616C756507097846463430343034300754726967676572063049734D6F7573 + 654F7665723D747275653B4973507265737365643D66616C73653B4973466F63 + 757365643D66616C73650E54726967676572496E7665727365063149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C73653B497346 + 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E33 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646324138 + 3245320953746F7056616C756507097846463137353739430754726967676572 + 062E4973507265737365643D747275653B49734D6F7573654F7665723D747275 + 653B4973466F63757365643D747275650E54726967676572496E766572736506 + 2F4973507265737365643D66616C73653B49734D6F7573654F7665723D747275 + 653B4973466F63757365643D7472756500000005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E740748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 5768697465000007544C61796F757400095374796C654E616D6506074C61796F + 75743205416C69676E07044C6566740A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080005545061746800095374796C65 + 4E616D65060469636F6E05416C69676E070643656E74657209446174612E5061 + 74680AD000000011000000000000009A99E9409A99C940010000006666664066 + 661E4101000000000000009A99C940010000000000003F9A99B94001000000CD + CC4C409A99094101000000CDCC4C400000000001000000000080400000000001 + 0000000000804000000841010000006666D6406666B640010000009A99E9409A + 99C940030000009A99E9409A99C940000000009A99993E00004041010000009A + 99993E33333341010000000000E04033333341010000000000E0400000404101 + 0000009A99993E00004041030000009A99993E000040410A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080A53697A652E5769647468 + 0500000000000000D003400B53697A652E4865696768740500000000000000E0 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6508577261704D6F646507034669740000000054504630 + 07544C61796F757400095374796C654E616D65061B73657474696E6773746F6F + 6C627574746F6E6D756C74697669657705416C69676E070643656E7465720A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080756697369626C65080B46697865644865696768740232000654476C797068 + 00095374796C654E616D65060A676C7970687374796C650C4D617267696E732E + 4C65667405000000000000009002400B4D617267696E732E546F700500000000 + 0000009002400E4D617267696E732E426F74746F6D0500000000000000900240 + 05416C69676E07044C6566740A506F736974696F6E2E58050000000000000090 + 02400A506F736974696F6E2E5905000000000000009002400A53697A652E5769 + 64746805000000000000008004400B53697A652E486569676874050000000000 + 00008004401453697A652E506C6174666F726D44656661756C740800000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A436C6970 + 506172656E74090A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080C4D617267696E732E4C6566740500000000000000C804C00A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E31084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E33084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463241383245320953746F7056616C75650709784646 + 3137353739430754726967676572062E4973507265737365643D747275653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 + 726967676572496E7665727365062F4973507265737365643D66616C73653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650000 + 0005545465787400095374796C654E616D6506047465787405416C69676E0706 + 436C69656E740748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080454657874060454657874165465 + 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 + 07544C61796F757400095374796C654E616D6506074C61796F75743205416C69 + 676E07044C6566740A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080005545061746800095374796C654E616D65060469 + 636F6E05416C69676E070643656E74657209446174612E506174680A540D0000 + 1C01000000000000333351423333E7410200000033335142CDCCE84102000000 + 333351426666EA4102000000333351423333EB410200000033335142CDCCEC41 + 02000000333351426666EE4102000000333351423333EF410200000033335142 + CDCCF04102000000333351426666F24102000000333351423333F34102000000 + 33335142CDCCF44102000000333351426666F64102000000333351423333F741 + 0100000099996F4266660E4201000000CDCC5C4200003C420100000000003A42 + 0000344202000000000038420000364202000000000036420000384202000000 + 0000344200003A420100000000003C42CDCC5C4201000000CDCC0E429A996F42 + 010000000000F84133335142020000006666F6413333514202000000CDCCF441 + 33335142020000000000F44133335142020000006666F2413333514202000000 + CDCCF04133335142020000000000F04133335142020000006666EE4133335142 + 02000000CDCCEC4133335142020000000000EC4133335142020000006666EA41 + 3333514202000000CDCCE84133335142020000000000E8413333514201000000 + 6666C24199996F4201000000FFFF4F41CCCC5C4201000000FFFF6F41FFFF3942 + 02000000FFFF6741FFFF374202000000FFFF5F41FFFF354202000000FFFF5741 + FFFF33420100000098999940FFFF3B420100000000000000CDCC0E4201000000 + 3333F3400000F841020000003333F3406666F641020000003333F340CDCCF441 + 020000003333F3400000F441020000003333F3406666F241020000003333F340 + CDCCF041020000003333F3400000F041020000003333F3406666EE4102000000 + 3333F340CDCCEC41020000003333F3400000EC41020000003333F3406666EA41 + 020000003333F340CDCCE841020000003333F3400000E8410100000000000000 + CDCCC0410100000066669640CDCC4C410100000066665641CDCC6C4102000000 + 66665E41CDCC64410200000066666641CDCC5C410200000066666E41CDCC5441 + 0100000066664E413433934001000000CDCCC04100000000010000006666E641 + 3333F340020000000000E8413333F340020000009999E9413333F34002000000 + 6666EA413333F340020000000000EC413333F340020000009999ED413333F340 + 020000006666EE413333F340020000000000F0413333F340020000009999F141 + 3333F340020000006666F2413333F340020000000000F4413333F34002000000 + 9999F5413333F340020000006666F6413333F34001000000CDCC0E4200000000 + 0100000000003C42666696400100000000003442666656410200000000003642 + 66665E410200000000003842666666410200000000003A4266666E4101000000 + CDCC5C4266664E41010000009A996F429A99C14101000000333351423333E741 + 03000000333351423333E7410000000033334342CDCC02420200000033334342 + CDCC004202000000999943426766FE4102000000999943426766FA4102000000 + 999943426766F64102000000FFFF43423433F34102000000FFFF43423433EF41 + 02000000FFFF43423433EB4102000000FFFF43420100E8410200000099994342 + 0100E44102000000999943420100E0410200000033334342CECCDC4102000000 + 33334342CECCD84101000000CDCC5E426866B64101000000CDCC54429B998541 + 01000000CDCC3442CECC9441020000006766324234338F410200000000003042 + 9B9989410200000033332D42010084410200000066662A42CECC7C4102000000 + 000028423533734102000000CDCC24429C9969410100000067662C423833D340 + 0100000001001442383383400100000067660242020030410200000067660042 + 02003041020000009B99FD4168662E41020000009B99F94168662E4102000000 + 9B99F54168662E41020000006866F241CECC2C41020000006866EE41CECC2C41 + 020000006866EA41CECC2C41020000003533E741CECC2C41020000003533E341 + 68662E41020000003533DF4168662E41020000000200DC410200304102000000 + 0200D84102003041010000009C99B5413733834001000000CFCC84413733D340 + 01000000020094419C9969410200000068668E413633734102000000CFCC8841 + CFCC7C410200000035338341010084410200000036337B419A99894102000000 + 9D99714167668E410200000004006841CECC9441010000000800D0409B998541 + 01000000080080406866B641010000006A662E419B99D941020000006A662E41 + 9B99DD4102000000D0CC2C41CECCE04102000000D0CC2C41CECCE44102000000 + D0CC2C41CECCE8410200000036332B410100EC410200000036332B410100F041 + 0200000036332B410100F4410200000036332B413433F74102000000D0CC2C41 + 3433FB4102000000D0CC2C413433FF41020000006A662E413433014202000000 + 6A662E4134330342010000000700804067661442010000000700D040CDCC2C42 + 010000000400684133332542020000009E997141000028420200000037337B41 + CDCC2A42020000003533834199992D4202000000CECC88416566304202000000 + 9B998D41CCCC324202000000020094413333354201000000CFCC844133335542 + 010000009C99B54133335F4201000000CFCCD8419999434202000000CFCCDC41 + 99994342020000000200E041FFFF4342020000000200E441FFFF434202000000 + 0200E841FFFF4342020000003533EB4165664442020000003533EF4165664442 + 020000003533F34165664442020000006866F64165664442020000006866FA41 + FFFF4342020000006866FE41FFFF434202000000CECC00429999434202000000 + CECC024299994342010000000100144233335F420100000067662C4233335542 + 01000000CDCC244233333542020000009A992742CDCC32420200000067662A42 + 666630420200000033332D4299992D4202000000FFFF2F42CCCC2A4202000000 + 666632426666284202000000CDCC34423333254201000000CDCC5442CDCC2C42 + 01000000CDCC5E42676614420100000033334342CDCC02420300000033334342 + CDCC0242000000003333EF4133339741020000003333FB413333974102000000 + 9A9903429999994102000000CDCC084266669E410200000000000E423333A341 + 02000000CDCC12429999A94102000000CDCC16429999B14102000000CDCC1A42 + 9999B9410200000000001E423333C34102000000676620429999CD4102000000 + CDCC2242FFFFD7410200000001002442FFFFE34102000000010024420000F041 + 02000000010024420100FC4102000000CECC2242000004420200000067662042 + 333309420200000001001E4266660E4202000000CDCC1A423333134202000000 + CDCC16423333174202000000CDCC124233331B420200000000000E4266661E42 + 02000000CDCC0842CDCC2042020000009A99034233332342020000003433FB41 + 67662442020000003433EF4167662442020000003433E3416766244202000000 + 3433D7413433234202000000CECCCC41CDCC2042020000006866C24167661E42 + 02000000CECCB84133331B4202000000CECCB0413333174202000000CECCA841 + 33331342020000006866A24166660E42020000009B999D413333094202000000 + CECC98410000044202000000686696410000FC4102000000686696410000F041 + 02000000686696410000E44102000000CECC98410000D841020000009B999D41 + 9A99CD41020000006866A2413433C34102000000CECCA8419A99B94102000000 + CECCB0419A99B14102000000CECCB8419A99A941020000006866C2413433A341 + 02000000CECCCC4167669E41020000000000D8419A999941020000003333E341 + 33339741020000003333EF4133339741030000003333EF413333974100000000 + 3333EF41CDCC1642020000000000F841CDCC1642020000000000004200001642 + 020000009A990342676614420200000034330742CDCC124202000000CDCC0A42 + 67661042020000009A990D429A990D420200000067661042CDCC0A4202000000 + CDCC12429A99074202000000676614429A990342020000000100164200000042 + 02000000CDCC16423433F74102000000CDCC16423433EF4102000000CDCC1642 + 6766E64102000000000016426766DE4102000000676614423433D74102000000 + CDCC12420100D0410200000067661042CECCC841020000009A990D423433C341 + 02000000CDCC0A429A99BD41020000009A990742CECCB841020000009A990342 + 9A99B54102000000000000426766B241020000003433F741CDCCB04102000000 + 3433EF41CDCCB041020000006766E641CDCCB041020000006766DE416766B241 + 020000003433D7419A99B541020000000100D041CDCCB84102000000CECCC841 + 9A99BD41020000003433C3413433C341020000009A99BD41CECCC84102000000 + CECCB8413433CF41020000009A99B5413433D741020000006766B2416766DE41 + 02000000CDCCB0413433E74102000000CDCCB0413433EF4102000000CDCCB041 + 0100F841020000006766B24100000042020000009A99B5419A99034202000000 + CDCCB84134330742020000009A99BD41CDCC0A42020000003433C3419A990D42 + 02000000CECCC84167661042020000003433CF41CDCC1242020000003433D741 + 67661442020000003333DF4100001642020000003333E741CDCC164202000000 + 3333EF41CDCC1642030000003333EF41CDCC16420A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080A53697A652E5769647468050000 + 0000000000D003400B53697A652E4865696768740500000000000000E0034014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6508577261704D6F64650703466974000000005450463007544C + 61796F757400095374796C654E616D65061172656D6F7665627574746F6E7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C003401453 + 697A652E506C6174666F726D44656661756C74080756697369626C65080B4669 + 7865644865696768740218000654476C79706800095374796C654E616D65060A + 676C7970687374796C650C4D617267696E732E4C656674050000000000000090 + 02400B4D617267696E732E546F7005000000000000009002400E4D617267696E + 732E426F74746F6D050000000000000090024005416C69676E07044C6566740A + 506F736974696F6E2E5805000000000000008404400A506F736974696F6E2E59 + 05000000000000009002400A53697A652E576964746805000000000000008004 + 400B53697A652E4865696768740500000000000000C001401453697A652E506C + 6174666F726D44656661756C740800000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E74 + 0C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080C4D617267696E + 732E4C6566740500000000000000C003C00A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C003401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463230323032300953746F + 7056616C756507097846463430343034300754726967676572063049734D6F75 + 73654F7665723D747275653B4973507265737365643D66616C73653B4973466F + 63757365643D66616C73650E54726967676572496E7665727365063149734D6F + 7573654F7665723D66616C73653B4973507265737365643D66616C73653B4973 + 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E + 33084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463241 + 383245320953746F7056616C7565070978464631373537394307547269676765 + 72062E4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 75653B4973466F63757365643D747275650E54726967676572496E7665727365 + 062F4973507265737365643D66616C73653B49734D6F7573654F7665723D7472 + 75653B4973466F63757365643D7472756500000005545465787400095374796C + 654E616D6506047465787405416C69676E0706436C69656E7407486974546573 + 74080A53697A652E576964746805000000000000009805400B53697A652E4865 + 696768740500000000000000C003401453697A652E506C6174666F726D446566 + 61756C74080454657874060454657874165465787453657474696E67732E466F + 6E74436F6C6F720708636C615768697465000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743205416C69676E07044C6566740A53697A65 + 2E57696474680500000000000000C003400B53697A652E486569676874050000 + 0000000000C003401453697A652E506C6174666F726D44656661756C74080005 + 545061746800095374796C654E616D65060469636F6E05416C69676E0708436F + 6E74656E747309446174612E506174680A4C0000000600000000000000000040 + 41CDCC4C3F0100000000000000CDCC4C3F010000000000000000000000010000 + 0000004041000000000100000000004041CDCC4C3F0300000000004041CDCC4C + 3F0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080C + 4D617267696E732E4C65667405000000000000008001400B4D617267696E732E + 546F7005000000000000008001400D4D617267696E732E526967687405000000 + 000000008001400E4D617267696E732E426F74746F6D05000000000000008001 + 400A53697A652E576964746805000000000000008003400B53697A652E486569 + 67687405000000000000008003401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507 + 0346697400000000545046300A5452656374616E676C6500095374796C654E61 + 6D650614706F7075706261636B67726F756E647374796C6505416C69676E0706 + 43656E7465720A46696C6C2E436F6C6F7207097846463244324432440A53697A + 652E576964746805000000000000009407400B53697A652E4865696768740500 + 000000000080D206401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F7207097846463135313531350756697369626C6508 + 00005450463007544C61796F757400095374796C654E616D65061A70726F6772 + 6573736261726D696E6966696E6973687374796C6505416C69676E070643656E + 7465720A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000A5452656374616E676C650009537479 + 6C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646343034303430064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A54526563 + 74616E676C6500095374796C654E616D65060A68696E64696361746F7205416C + 69676E07044C6566740A46696C6C2E436F6C6F72070978464632434532343406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E650000000A5452656374616E676C6500095374796C654E616D650606 + 76747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646343034303430064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009 + 5374796C654E616D65060A76696E64696361746F7205416C69676E0706426F74 + 746F6D0A46696C6C2E436F6C6F720709784646324345323434064C6F636B6564 + 090748697454657374080A506F736974696F6E2E5905000000000099998D0440 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C + 61796F757400095374796C654E616D65061070726F6772657373626172737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D65060668747261636B05416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000A5452656374616E676C6500095374796C65 + 4E616D65060A68696E64696361746F7205416C69676E07044C6566740A46696C + 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 + 74696F6E2E59050000000000000080FF3F0A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000009999D904401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650000000A5452656374616E676C6500095374796C654E616D6506 + 0676747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F720709784646323032303230064C6F636B6564090748697454657374080A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F720709784646313531353135000A5452656374 + 616E676C6500095374796C654E616D65060A76696E64696361746F7205416C69 + 676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F + 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E + 732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E580500 + 00000000000080FF3F0A506F736974696F6E2E5905000000000099998904400A + 53697A652E576964746805000000000033338105400B53697A652E4865696768 + 740500000000000000A803401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000000} + end> + Left = 192 + Top = 24 + end + object RenderProgress1: TRenderProgress + Position.X = 264.000000000000000000 + Position.Y = 112.000000000000000000 + Size.Width = 480.000000000000000000 + Size.Height = 240.000000000000000000 + Size.PlatformDefault = False + Composition = 'Comp' + Status = '...' + Value = -1.000000000000000000 + InFrame = -1.000000000000000000 + OutFrame = -1.000000000000000000 + end +end diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.pas b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.pas new file mode 100644 index 0000000..3a38f21 --- /dev/null +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.pas @@ -0,0 +1,29 @@ +unit RenderProgressTestUnit; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, + FMX.StdCtrls, FMX.Controls.Presentation, FMX.Layouts, FMX.Memo.Types, + FMX.ScrollBox, FMX.Memo, FMX.RenderProgress; + +type + TForm1 = class(TForm) + StyleBook1: TStyleBook; + StyleBook2: TStyleBook; + RenderProgress1: TRenderProgress; + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.fmx} + +end. From 6e074ce76a16754f37b29ddb1493099aa803a203 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 4 May 2021 02:32:05 +1000 Subject: [PATCH 18/29] Updated aeparser plugin --- src/lib/plugins/AEP Parser/aeparser.go | 7 +++++-- src/lib/plugins/AEP Parser/go.mod | 8 ++++++++ src/lib/plugins/AEP Parser/go.sum | 4 ++++ 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 src/lib/plugins/AEP Parser/go.mod create mode 100644 src/lib/plugins/AEP Parser/go.sum diff --git a/src/lib/plugins/AEP Parser/aeparser.go b/src/lib/plugins/AEP Parser/aeparser.go index d4d1d00..d678c34 100644 --- a/src/lib/plugins/AEP Parser/aeparser.go +++ b/src/lib/plugins/AEP Parser/aeparser.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "fmt" + "os" aep "github.com/LilyStilson/aftereffects-aep-parser" ) @@ -13,9 +14,11 @@ func main() { var comps []aep.Item - for _, value := range project.Items - if value.ItemType == aep.ItemTypeComposition + for _, value := range project.Items { + if value.ItemType == aep.ItemTypeComposition { comps = append(comps, *value) + } + } JSONComp, err := json.Marshal(comps) diff --git a/src/lib/plugins/AEP Parser/go.mod b/src/lib/plugins/AEP Parser/go.mod new file mode 100644 index 0000000..17dfc59 --- /dev/null +++ b/src/lib/plugins/AEP Parser/go.mod @@ -0,0 +1,8 @@ +module main + +go 1.10 + +require ( + github.com/LilyStilson/aftereffects-aep-parser v0.0.0-20210220175541-6a3310917538 + github.com/rioam2/rifx v0.0.0-20200718170510-a8114e272da2 // indirect +) diff --git a/src/lib/plugins/AEP Parser/go.sum b/src/lib/plugins/AEP Parser/go.sum new file mode 100644 index 0000000..703df74 --- /dev/null +++ b/src/lib/plugins/AEP Parser/go.sum @@ -0,0 +1,4 @@ +github.com/LilyStilson/aftereffects-aep-parser v0.0.0-20210220175541-6a3310917538 h1:fsCcozoBceer4kHtJ1sNtoqF2YAhxP0eqEpFjiIiSmM= +github.com/LilyStilson/aftereffects-aep-parser v0.0.0-20210220175541-6a3310917538/go.mod h1:vl9j+VrVsbpy7nVrLtR0MxfvdvZytzsbjHqP1cD0W10= +github.com/rioam2/rifx v0.0.0-20200718170510-a8114e272da2 h1:2IIvKNJ8JYflWullRO8H+maDSUZlVNT5z2INeqFS2r4= +github.com/rioam2/rifx v0.0.0-20200718170510-a8114e272da2/go.mod h1:TYyDvYI3ihyHtCN4kT8AFUUMOlONaCVdYXM9vKTsS/M= From ceeb978c16b2b48202828211f529d1230de785fc Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Sat, 5 Jun 2021 20:10:00 +1000 Subject: [PATCH 19/29] Updated TRenderProgress component --- .../Package/FMX.RenderProgress.pas | 324 +- .../Package/FMX.RenderProgress.rc | 2 +- .../Package/RenderProgress.dpk | 1 + .../Package/RenderProgress.dproj | 158 +- .../Package/RenderProgressDesign.style | 107 +- .../TRenderProgress/TRenderProgress.groupproj | 48 + .../Test Project/RenderProgressTest.dpr | 2 +- .../Test Project/RenderProgressTest.dproj | 193 +- .../Test Project/RenderProgressTestUnit.fmx | 8 +- .../Test Project/RenderProgressUnit.fmx | 3560 +++++++++++++++++ .../Test Project/RenderProgressUnit.pas | 42 + 11 files changed, 4213 insertions(+), 232 deletions(-) create mode 100644 src/lib/Components/TRenderProgress/TRenderProgress.groupproj create mode 100644 src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.fmx create mode 100644 src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.pas diff --git a/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas index c601444..48a4346 100644 --- a/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas +++ b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas @@ -3,24 +3,23 @@ interface uses - System.SysUtils, System.Classes, System.Types, - FMX.Types, FMX.Controls, FMX.StdCtrls, FMX.Controls.Presentation, FMX.Styles, FMX.Memo; + System.Types, System.SysUtils, System.Classes, + FMX.Types, FMX.Controls, FMX.Styles, FMX.StdCtrls, FMX.Objects, FMX.ActnList, FMX.Memo; type TRenderProgress = class(TStyledControl) private - FComposition, FStatus: String; - FValue, FInFrame, FOutFrame: Single; + FComposition, FStatus, + FST_WaitingForAErender, FST_Rendering, FST_FinishedRender, FST_RenderError: String; FLog: TStrings; + FInFrame, FOutFrame, FValue: Single; + FMemoVisible, FIsError: Boolean; function GetComposition: String; procedure SetComposition(Value: String); - function GetStatus: String; - procedure SetStatus(Value: String); - - function GetValue: Single; - procedure SetValue(Value: Single); +// function GetStatus: String; +// procedure SetStatus(Value: String); function GetInFrame: Single; procedure SetInFrame(Value: Single); @@ -28,9 +27,18 @@ TRenderProgress = class(TStyledControl) function GetOutFrame: Single; procedure SetOutFrame(Value: Single); + function GetValue: Single; + procedure SetValue(Value: Single); + function GetLog: TStrings; procedure SetLog(Value: TStrings); + function GetMemoVisible: Boolean; + procedure SetMemoVisible(Value: Boolean); + + function GetIsError: Boolean; + procedure SetIsError(Value: Boolean); + procedure LogButtonClick(Sender: TObject); protected function GetStyleObject: TFmxObject; override; @@ -38,30 +46,25 @@ TRenderProgress = class(TStyledControl) public constructor Create(AOwner: TComponent); override; published - // Inherited props property Align default TAlignLayout.None; - property HitTest default True; - property Position; property Size; - property Height; - property Width; - property Tag; - //property DragMode; - //property EnableDragHighlight; - - // Inherited events - //property OnClick; + property Position; + property Margins; - // Implemeted props property Composition: String read GetComposition write SetComposition; - property Status: String read GetStatus write SetStatus; - property Value: Single read GetValue write SetValue; + + property ST_WaitingForAErender: String read FST_WaitingForAErender write FST_WaitingForAErender; + property ST_Rendering: String read FST_Rendering write FST_Rendering; + property ST_FinishedRender: String read FST_FinishedRender write FST_FinishedRender; + property ST_RenderError: String read FST_RenderError write FST_RenderError; + property InFrame: Single read GetInFrame write SetInFrame; property OutFrame: Single read GetOutFrame write SetOutFrame; - property Log: TStrings read GetLog write SetLog; - - // Implemented events + property Value: Single read GetValue write SetValue; + property MemoVisible: Boolean read GetMemoVisible write SetMemoVisible; + property IsError: Boolean read GetIsError write SetIsError; + property Log: TStrings read GetLog write SetLog; end; procedure Register; @@ -70,206 +73,217 @@ implementation {$R *.res} -{ TRenderProgress } - -function TRenderProgress.GetStyleObject: TFmxObject; -const - Style = 'renderprogressstyle'; -begin - if StyleLookup = '' then begin - Result := TControl(TStyleStreaming.LoadFromResource(HInstance, Style, RT_RCDATA)); - exit; - end; - Result := inherited GetStyleObject; -end; - -{$REGION ' Composition '} +{$REGION 'Compoisition'} function TRenderProgress.GetComposition: String; begin - var Base: TFmxObject := FindStyleResource('comp'); - if Base <> nil then - FComposition := TLabel(Base).Text; - + FComposition := StylesData['comp.text'].AsString; Result := FComposition; end; procedure TRenderProgress.SetComposition(Value: String); begin + StylesData['comp.text'] := Value; FComposition := Value; - var Base: TFmxObject := FindStyleResource('comp'); - if Base <> nil then - TLabel(Base).Text := Value; end; {$ENDREGION} -{$REGION ' Status '} +//{$REGION 'Status'} +// +//function TRenderProgress.GetStatus: String; +//begin +// FStatus := StylesData['status.text'].AsString; +// Result := FStatus; +//end; +// +//procedure TRenderProgress.SetStatus(Value: String); +//begin +// StylesData['status.text'] := Value; +// FStatus := Value; +//end; +// +//{$ENDREGION} + +{$REGION 'InFrame'} -function TRenderProgress.GetStatus: String; +function TRenderProgress.GetInFrame: Single; begin - var Base: TFmxObject := FindStyleResource('status'); - if Base <> nil then - FStatus := TLabel(Base).Text; - - Result := FStatus; + FInFrame := StylesData['progressbar.min'].AsExtended; + Result := FInFrame; end; -procedure TRenderProgress.SetStatus(Value: String); +procedure TRenderProgress.SetInFrame(Value: Single); begin - FStatus := Value; - var Base: TFmxObject := FindStyleResource('status'); - if Base <> nil then - TLabel(Base).Text := Value; + StylesData['progressbar.min'] := Value; + FInFrame := Value; + + if FValue = -1 then + StylesData['frames.text'] := '...' + else + StylesData['frames.text'] := Format('%s / %s', [IntToStr(Trunc(FValue)), IntToStr(Trunc(FOutFrame))]) end; {$ENDREGION} -{$REGION ' Value '} +{$REGION 'OutFrame'} -function TRenderProgress.GetValue: Single; +function TRenderProgress.GetOutFrame: Single; begin - var Base: TFmxObject := FindStyleResource('progressbar'); - if Base <> nil then begin - FValue := TProgressBar(Base).Value; - end; - - Result := FValue; + FOutFrame := StylesData['progressbar.max'].AsExtended; + Result := FOutFrame; end; -procedure TRenderProgress.SetValue(Value: Single); +procedure TRenderProgress.SetOutFrame(Value: Single); begin - FValue := Value; - var Base: TFmxObject := FindStyleResource('progressbar'); - if Base <> nil then begin - TProgressBar(Base).Value := Value; - - var FramesBase: TFmxObject := FindStyleResource('frames'); - if FramesBase <> nil then begin - TLabel(FramesBase).Text := Format('%s / %s', [IntToStr(Trunc(FValue)), IntToStr(Trunc(FOutFrame))]); - end; + StylesData['progressbar.max'] := Value; + FOutFrame := Value; - end; + if FValue = -1 then + StylesData['frames.text'] := '...' + else + StylesData['frames.text'] := Format('%s / %s', [IntToStr(Trunc(FValue)), IntToStr(Trunc(FOutFrame))]) end; {$ENDREGION} -{$REGION ' InFrame '} - -function TRenderProgress.GetInFrame: Single; +{$REGION 'Value'} +function TRenderProgress.GetValue: Single; begin - var Base: TFmxObject := FindStyleResource('progressbar'); - if Base <> nil then begin - FInFrame := TProgressBar(Base).Min; - end; - + FValue := StylesData['progressbar.value'].AsExtended; Result := FValue; end; -procedure TRenderProgress.SetInFrame(Value: Single); +procedure TRenderProgress.SetValue(Value: Single); begin - FInFrame := Value; - var Base: TFmxObject := FindStyleResource('progressbar'); - if Base <> nil then - TProgressBar(Base).Min := Value; + // Set Progressbar value + StylesData['progressbar.value'] := Value; + FValue := Value; - var FramesBase: TFmxObject := FindStyleResource('frames'); - if FramesBase <> nil then begin - TLabel(FramesBase).Text := Format('%s / %s', [IntToStr(Trunc(FValue)), IntToStr(Trunc(FOutFrame))]); - end; -end; + // Set Progressbar visibility + StylesData['progressbar.visible'] := Trunc(Value) >= 0; + StylesData['ani.visible'] := Trunc(Value) = -1; + + if not FIsError then + if FValue = -1 then begin // Waiting for aerender + StylesData['frames.text'] := '...'; + StylesData['status.text'] := FST_WaitingForAErender; + end else + if (FValue >= 0) and (FValue <= FOutFrame) then begin // Rendering + if FValue = FOutFrame then begin // Finished rendering + StylesData['status.text'] := FST_FinishedRender; + StylesData['progressbar.stylelookup'] := 'progressbarminifinishstyle'; + end else begin // Still rendering + StylesData['status.text'] := FST_Rendering; + StylesData['progressbar.stylelookup'] := 'progressbarministyle'; + end; + StylesData['frames.text'] := Format('%s / %s', [IntToStr(Trunc(FValue)), IntToStr(Trunc(FOutFrame))]) + end; +end; {$ENDREGION} -{$REGION ' OutFrame '} - -function TRenderProgress.GetOutFrame: Single; +{$REGION 'Log'} +function TRenderProgress.GetLog: TStrings; begin - var Base: TFmxObject := FindStyleResource('progressbar'); - if Base <> nil then begin - FOutFrame := TProgressBar(Base).Max; - end; - - Result := FValue; + FLog := StylesData['log.lines'].AsType; + Result := FLog end; -procedure TRenderProgress.SetOutFrame(Value: Single); +procedure TRenderProgress.SetLog(Value: TStrings); begin - FOutFrame := Value; - var Base: TFmxObject := FindStyleResource('progressbar'); - if Base <> nil then - TProgressBar(Base).Max := Value; - - var FramesBase: TFmxObject := FindStyleResource('frames'); - if FramesBase <> nil then begin - TLabel(FramesBase).Text := Format('%s / %s', [IntToStr(Trunc(FValue)), IntToStr(Trunc(FOutFrame))]); - end; + StylesData['log.lines'] := Value; + FLog := Value; end; - {$ENDREGION} -{$REGION ' Log '} - -function TRenderProgress.GetLog: TStrings; +{$REGION 'Memo'} +function TRenderProgress.GetMemoVisible: Boolean; begin - var Base: TFmxObject := FindStyleResource('log'); - if Base <> nil then begin - FLog := TMemo(Base).Lines; - end; - - Result := FLog; + FMemoVisible := StylesData['log.visible'].AsBoolean; + Result := FMemoVisible; end; -procedure TRenderProgress.SetLog(Value: TStrings); +procedure TRenderProgress.SetMemoVisible(Value: Boolean); begin - FLog := Value; - var Base: TFmxObject := FindStyleResource('log'); - if Base <> nil then - TMemo(Base).Lines := Value; + if Value then + Height := 240 + else + Height := 48; + StylesData['log.visible'] := Value; + FMemoVisible := Value; end; - {$ENDREGION} -procedure TRenderProgress.LogButtonClick(Sender: TObject); +{$REGION 'IsError'} +function TRenderProgress.GetIsError: Boolean; begin - var LogMemo: TFmxObject := FindStyleResource('log'); - var Panel: TFmxObject := FindStyleResource('renderprogressstyle'); - if (LogMemo <> nil) and (Panel <> nil) then - if TMemo(LogMemo).Visible = False then begin - TMemo(LogMemo).Visible := True; - TPanel(Panel).Height := TPanel(Panel).Height + 192; + Result := FIsError; +end; + +procedure TRenderProgress.SetIsError(Value: Boolean); +begin + if Value then begin + StylesData['status.text'] := FST_RenderError; + StylesData['progressbar.stylelookup'] := 'progressbarminierrorstyle'; + end else + if (FValue >= 0) and (FValue < FOutFrame) then begin + StylesData['status.text'] := FST_Rendering; + StylesData['progressbar.stylelookup'] := 'progressbarministyle'; end else begin - TMemo(LogMemo).Visible := False; - TPanel(Panel).Height := TPanel(Panel).Height - 192; + StylesData['status.text'] := FST_FinishedRender; + StylesData['progressbar.stylelookup'] := 'progressbarminifinishstyle'; end; + + FIsError := Value; +end; +{$ENDREGION} + +function TRenderProgress.GetStyleObject: TFmxObject; +const + Style = 'RenderProgressDesignStyle'; +begin + if StyleLookup = '' then begin + Result := TControl(TStyleStreaming.LoadFromResource(HInstance, Style, RT_RCDATA)); + exit; + end; + Result := inherited GetStyleObject; end; procedure TRenderProgress.ApplyStyle; +var + LogButton: TButton; begin inherited; - SetComposition(FComposition); - SetStatus(FStatus); - SetValue(FValue); - SetInFrame(FInFrame); - SetOutFrame(FOutFrame); - SetLog(FLog); - - var LogButtonBase: TFmxObject := FindStyleResource('logbutton'); - if LogButtonBase <> nil then - TButton(LogButtonBase).OnClick := Self.LogButtonClick; + + if FindStyleResource('logbutton', LogButton) then + if not Assigned(LogButton.OnClick) then + LogButton.OnClick := LogButtonClick; +end; + +procedure TRenderProgress.LogButtonClick(Sender: TObject); +begin + if MemoVisible then + MemoVisible := False + else + MemoVisible := True; end; constructor TRenderProgress.Create(AOwner: TComponent); begin inherited; - Composition := 'CompName'; - Status := '...'; - Value := -1; + Height := 240; + Width := 480; + Composition := 'comptext'; + ST_WaitingForAErender := 'Waiting for aerender...'; + ST_Rendering := 'Rendering'; + ST_FinishedRender := 'Rendering finished'; + ST_RenderError := 'ERROR: See log for more info'; InFrame := 0; OutFrame := 100; + Value := -1; + MemoVisible := False; //Log := TStrings.Create; - Height := 240; - Width := 480; end; procedure Register; diff --git a/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.rc b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.rc index da892a6..e21c559 100644 --- a/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.rc +++ b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.rc @@ -1 +1 @@ -renderprogressstyle RCDATA "RenderProgressDesign.style" \ No newline at end of file +RenderProgressDesignStyle RCDATA "RenderProgressDesign.style" diff --git a/src/lib/Components/TRenderProgress/Package/RenderProgress.dpk b/src/lib/Components/TRenderProgress/Package/RenderProgress.dpk index 40c85b9..2890643 100644 --- a/src/lib/Components/TRenderProgress/Package/RenderProgress.dpk +++ b/src/lib/Components/TRenderProgress/Package/RenderProgress.dpk @@ -29,6 +29,7 @@ requires rtl, + designide, fmx; contains diff --git a/src/lib/Components/TRenderProgress/Package/RenderProgress.dproj b/src/lib/Components/TRenderProgress/Package/RenderProgress.dproj index 7357f9d..d813187 100644 --- a/src/lib/Components/TRenderProgress/Package/RenderProgress.dproj +++ b/src/lib/Components/TRenderProgress/Package/RenderProgress.dproj @@ -1,8 +1,8 @@  - {3B13A4E7-7192-42E7-B8F9-5C6D741D583D} + {43162C7F-3069-4108-A170-0A27EE47F323} RenderProgress.dpk - 19.0 + 19.2 FMX True Debug @@ -82,15 +82,18 @@ None android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar rtl;fmx;$(DCC_UsePackage) + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png None android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar rtl;fmx;$(DCC_UsePackage) + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png None rtl;fmx;$(DCC_UsePackage) + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png None @@ -132,10 +135,11 @@ MainSource + -
    FMX.RenderProgress.res
    +
    New1.res
    Cfg_2 @@ -183,7 +187,7 @@ true
    - + RenderProgress.bpl true @@ -325,6 +329,16 @@ 1 + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + res\drawable-ldpi @@ -555,6 +569,32 @@ 0 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset @@ -575,6 +615,56 @@ 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset @@ -615,6 +705,66 @@ 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + 1 diff --git a/src/lib/Components/TRenderProgress/Package/RenderProgressDesign.style b/src/lib/Components/TRenderProgress/Package/RenderProgressDesign.style index ad62160..5d6c106 100644 --- a/src/lib/Components/TRenderProgress/Package/RenderProgressDesign.style +++ b/src/lib/Components/TRenderProgress/Package/RenderProgressDesign.style @@ -6,48 +6,60 @@ object TLayout Size.PlatformDefault = False object TPanel StyleName = 'bgpanel' - Align = Client + Align = Contents + Size.Width = 572.000000000000000000 + Size.Height = 240.000000000000000000 + Size.PlatformDefault = False + end + object TLayout + StyleName = 'content' + Align = Contents Size.Width = 572.000000000000000000 Size.Height = 240.000000000000000000 Size.PlatformDefault = False object TLabel StyleName = 'comp' Align = MostLeft + AutoSize = True StyledSettings = [Family, Style, FontColor] Margins.Left = 16.000000000000000000 Margins.Top = 8.000000000000000000 Margins.Bottom = 8.000000000000000000 Position.X = 16.000000000000000000 Position.Y = 8.000000000000000000 - Size.Width = 120.000000000000000000 + Size.Width = 40.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 16.000000000000000000 - Text = 'Composition' + TextSettings.WordWrap = False + Text = 'comp' end - object TLabel - StyleName = 'frames' - Align = MostRight - AutoSize = True - StyledSettings = [Family, FontColor] - Margins.Left = 8.000000000000000000 - Margins.Right = 16.000000000000000000 - Position.X = 449.000000000000000000 - Size.Width = 59.000000000000000000 - Size.Height = 48.000000000000000000 + object TMemo + StyleName = 'log' + Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] + DataDetectorTypes = [] + StyledSettings = [Style, FontColor] + TextSettings.Font.Family = 'Consolas' + Align = MostBottom + Position.Y = 48.000000000000000000 + Size.Width = 572.000000000000000000 + Size.Height = 192.000000000000000000 Size.PlatformDefault = False - TextSettings.Font.Size = 16.000000000000000000 - TextSettings.WordWrap = False - Text = '56 / 600' + Viewport.Width = 568.000000000000000000 + Viewport.Height = 188.000000000000000000 end - object TButton - StyleName = 'logbutton' - Align = MostRight - Position.X = 524.000000000000000000 - Size.Width = 48.000000000000000000 - Size.Height = 48.000000000000000000 + object TAniIndicator + StyleName = 'ani' + Align = Client + Enabled = True + StyleLookup = 'aniindicatorhorzstyle' + HitTest = False + Margins.Left = 16.000000000000000000 + Margins.Top = 4.000000000000000000 + Margins.Bottom = 16.000000000000000000 + Size.Width = 380.000000000000000000 + Size.Height = 3.000000000000000000 Size.PlatformDefault = False - StyleLookup = 'logbuttonstyle' end object TLabel StyleName = 'status' @@ -55,13 +67,13 @@ object TLayout StyledSettings = [Family, Size, FontColor] Margins.Left = 16.000000000000000000 Margins.Top = 8.000000000000000000 - Position.X = 152.000000000000000000 + Position.X = 72.000000000000000000 Position.Y = 8.000000000000000000 - Size.Width = 289.000000000000000000 + Size.Width = 380.000000000000000000 Size.Height = 17.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} - Text = 'Status Text' + Text = 'status' end object TProgressBar StyleName = 'progressbar' @@ -78,32 +90,29 @@ object TLayout Value = 50.000000000000000000 Visible = False end - object TAniIndicator - StyleName = 'ani' - Align = Client - Enabled = True - StyleLookup = 'aniindicatorhorzstyle' - HitTest = False - Margins.Left = 16.000000000000000000 - Margins.Top = 4.000000000000000000 - Margins.Bottom = 16.000000000000000000 - Size.Width = 289.000000000000000000 - Size.Height = 3.000000000000000000 + object TButton + StyleName = 'logbutton' + Align = MostRight + Position.X = 524.000000000000000000 + Size.Width = 48.000000000000000000 + Size.Height = 48.000000000000000000 Size.PlatformDefault = False + StyleLookup = 'logbuttonstyle' end - object TMemo - StyleName = 'log' - Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] - DataDetectorTypes = [] - StyledSettings = [Style, FontColor] - TextSettings.Font.Family = 'Consolas' - Align = MostBottom - Position.Y = 48.000000000000000000 - Size.Width = 572.000000000000000000 - Size.Height = 192.000000000000000000 + object TLabel + StyleName = 'frames' + Align = MostRight + AutoSize = True + StyledSettings = [Family, FontColor] + Margins.Left = 8.000000000000000000 + Margins.Right = 16.000000000000000000 + Position.X = 460.000000000000000000 + Size.Width = 48.000000000000000000 + Size.Height = 48.000000000000000000 Size.PlatformDefault = False - Viewport.Width = 568.000000000000000000 - Viewport.Height = 188.000000000000000000 + TextSettings.Font.Size = 16.000000000000000000 + TextSettings.WordWrap = False + Text = 'frames' end end end diff --git a/src/lib/Components/TRenderProgress/TRenderProgress.groupproj b/src/lib/Components/TRenderProgress/TRenderProgress.groupproj new file mode 100644 index 0000000..e3f9f09 --- /dev/null +++ b/src/lib/Components/TRenderProgress/TRenderProgress.groupproj @@ -0,0 +1,48 @@ + + + {6DC5DB84-E3A9-48CB-8B52-E81110201511} + + + + + + + + + + + Default.Personality.12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dpr b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dpr index 38cf13a..47145b6 100644 --- a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dpr +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dpr @@ -4,7 +4,7 @@ uses System.StartUpCopy, FMX.Forms, FMX.RenderProgress in '..\Package\FMX.RenderProgress.pas', - RenderProgressTestUnit in 'RenderProgressTestUnit.pas' {Form1}; + RenderProgressUnit in 'RenderProgressUnit.pas' {Form1}; {$R *.res} diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dproj b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dproj index 860aa29..489f74e 100644 --- a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dproj +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTest.dproj @@ -1,7 +1,7 @@  - {73109990-37B6-4CBC-B9F2-EF5F15457694} - 19.0 + {4F833CCA-91A8-41FF-9C6D-D740C8DD9CF6} + 19.2 FMX True Debug @@ -70,6 +70,12 @@ Base true + + true + Cfg_2 + true + true + true Cfg_2 @@ -123,6 +129,7 @@ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png DBXSqliteDriver;RESTComponents;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) @@ -144,42 +151,35 @@ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;TMSFMXPackPkgDXE13;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) - CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers + CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers iPhoneAndiPad true Debug $(MSBuildProjectName) - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPad\FM_NotificationIcon_40x40.png DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;fgx;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage) @@ -235,6 +235,13 @@ 0 0 + + $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPad\FM_NotificationIcon_40x40.png + true PerMonitorV2 @@ -248,7 +255,7 @@ MainSource - +
    Form1
    @@ -443,6 +450,16 @@ 1
    + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + res\drawable-ldpi @@ -694,6 +711,32 @@ 0 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset @@ -714,6 +757,56 @@ 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset @@ -754,6 +847,66 @@ 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + 1 @@ -806,6 +959,10 @@ ..\$(PROJECTNAME).launchscreen 64 + + ..\$(PROJECTNAME).launchscreen + 64 + diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.fmx b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.fmx index 2b3d5af..d6b9aee 100644 --- a/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.fmx +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressTestUnit.fmx @@ -3624,12 +3624,12 @@ object Form1: TForm1 Top = 24 end object RenderProgress1: TRenderProgress - Position.X = 264.000000000000000000 - Position.Y = 112.000000000000000000 - Size.Width = 480.000000000000000000 + Position.X = 272.000000000000000000 + Position.Y = 104.000000000000000000 + Size.Width = 657.000000000000000000 Size.Height = 240.000000000000000000 Size.PlatformDefault = False - Composition = 'Comp' + Composition = 'CompName' Status = '...' Value = -1.000000000000000000 InFrame = -1.000000000000000000 diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.fmx b/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.fmx new file mode 100644 index 0000000..64abb6e --- /dev/null +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.fmx @@ -0,0 +1,3560 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + Caption = 'Form1' + ClientHeight = 351 + ClientWidth = 1024 + StyleBook = StyleBook1 + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [Desktop] + DesignerMasterStyle = 0 + object StyleBook1: TStyleBook + Styles = < + item + ResourcesBin = { + 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 + AF00060B627574746F6E7374796C6503BA040609656469747374796C6503A305 + 060A6C6162656C7374796C65031501060D67726F7570626F787374796C650383 + 02060D747261636B6261727374796C65038107060D636865636B626F78737479 + 6C6503880506147363726F6C6C62617268747261636B7374796C65033B010614 + 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 + 6172626F74746F6D627574746F6E03220406137363726F6C6C6261726C656674 + 627574746F6E03390406147363726F6C6C6261727269676874627574746F6E03 + 3A0406127363726F6C6C626172746F70627574746F6E033804060E7363726F6C + 6C6261727374796C65035804060A7468756D627374796C65033B02060B737769 + 7463687374796C6503D101060D636F6D626F626F787374796C6503F607060E63 + 6F6D626F656469747374796C65038209060F746162636F6E74726F6C7374796C + 65039C01060B746162646F747374796C65035901060C7461626974656D737479 + 6C6503E404060D7468756D626261727374796C65034F03060C6C697374626F78 + 7374796C6503A207060D6C697374626F78666F6F74657203800106106C697374 + 626F786974656D7374796C65031B0306126C697374626F78706C61696E686561 + 646572033B020609677269647374796C65039808060F6865616465726974656D + 7374796C6503C303061970726F67726573736261726D696E696572726F727374 + 796C65035603061170726F677265737363656C6C7374796C65039A0206106D65 + 6E756261726974656D7374796C6503250B060C6D656E756261727374796C6503 + 6C02060D6D656E756974656D7374796C6503520B06126D656E75736570617261 + 746F727374796C65037801060D6D656E75766965777374796C65039102060E69 + 6D61676563656C6C7374796C65033201060E706F70757063656C6C7374796C65 + 03C603060D7465787463656C6C7374796C65039B0106096D656D6F7374796C65 + 03DC07060E6C696E6B6C6162656C7374796C65034503060E7374617475736261 + 727374796C6503E401060C7370696E626F787374796C65035407060D73697A65 + 677269707374796C6503F004060C746F6F6C6261727374796C6503CA00061570 + 726F67726573736261726572726F727374796C65036404060F64726F70746172 + 6765747374796C65036804061464726F707461726765746669656C647374796C + 6503890E060C706F706F7665727374796C65032A02060D706F707570626F7873 + 74796C6503320606147374617475736261726E6F677269707374796C6503D400 + 0613736D616C6C7363726F6C6C6261727374796C6503A301060D73706C697474 + 65727374796C650360040610636C6F7365627574746F6E7374796C6503660406 + 0E6D6178627574746F6E7374796C6503F603060E726573627574746F6E737479 + 6C65030F04060E6D696E627574746F6E7374796C65030E04060F746F6F6C7769 + 6E646F777374796C6503B20D061177696E646F77626F726465727374796C6503 + 4A100610726164696F627574746F6E7374796C6503AE050618756C63656E7465 + 72726164696F627574746F6E7374796C650352050617756C7269676874726164 + 696F627574746F6E7374796C650355050616756C6C656674726164696F627574 + 746F6E7374796C65035005061670726F677265737362617266696E6973687374 + 796C65036504060D657870616E6465727374796C650366060613657870616E64 + 6572627574746F6E7374796C650376020615657870616E646572636865636B62 + 6F787374796C6503D005060E6C6162656C66696C6C7374796C6503B801061363 + 6F6D626F656469746572726F727374796C65038709061E70726F677265737362 + 6172696E64657465726D696E61626C657374796C650379040611616E69696E64 + 696361746F727374796C6503DF010615616E69696E64696361746F72686F727A + 7374796C65038A02060A70616E656C7374796C65031E01060E6C6F6762757474 + 6F6E7374796C65038A07061470726F67726573736261726D696E697374796C65 + 035103061B7472656576696577657870616E646572627574746F6E7374796C65 + 037E02061174726565766965776974656D7374796C65031405060D7472656576 + 6965777374796C650336070619616374696F6E746F6F6C627574746F6E6D756C + 746976696577033F07060E616464627574746F6E7374796C65032C070617696E + 666F746F6F6C627574746F6E6D756C74697669657703A90D061B6F7267616E69 + 7A65746F6F6C627574746F6E6D756C74697669657703EE06061B73657474696E + 6773746F6F6C627574746F6E6D756C746976696577037D13061172656D6F7665 + 627574746F6E7374796C6503CF060614706F7075706261636B67726F756E6473 + 74796C6503BA00061A70726F67726573736261726D696E6966696E6973687374 + 796C65035703061070726F67726573736261727374796C65035F040054504630 + 0A5452656374616E676C6500095374796C654E616D65060F6261636B67726F75 + 6E647374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463244324432440A53697A652E576964746805000000000000009407 + 400B53697A652E4865696768740500000000000080D206401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0756697369626C650800005450463007544C61796F757400095374796C654E61 + 6D65060B627574746F6E7374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000C805400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0706436C69656E740C436C697043 + 68696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E310844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 + 746F7056616C756507097846463430343034300754726967676572063049734D + 6F7573654F7665723D747275653B4973507265737365643D66616C73653B4973 + 466F63757365643D66616C73650E54726967676572496E766572736506314973 + 4D6F7573654F7665723D66616C73653B4973507265737365643D66616C73653B + 4973466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D617469 + 6F6E32084475726174696F6E05000000000000000000000C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3430343034300953746F7056616C756507097846463137353739430754726967 + 676572062F4973507265737365643D747275653B49734D6F7573654F7665723D + 747275653B4973466F63757365643D66616C736500000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E + 696D6174696F6E33084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463241383245320953746F7056616C75650709784646313735373943 + 0754726967676572062E4973507265737365643D747275653B49734D6F757365 + 4F7665723D747275653B4973466F63757365643D747275650E54726967676572 + 496E7665727365062F4973507265737365643D66616C73653B49734D6F757365 + 4F7665723D747275653B4973466F63757365643D747275650000000554546578 + 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 + 13456E61626C6544726167486967686C69676874080748697454657374080A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 74650000005450463007544C61796F757400095374796C654E616D6506096564 + 69747374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C805400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08000C5442727573684F626A65637400095374796C654E616D65060A666F7265 + 67726F756E6400000C5442727573684F626A65637400095374796C654E616D65 + 060973656C656374696F6E0B42727573682E436F6C6F72070978393632413832 + 453200000B54466F6E744F626A65637400095374796C654E616D650604666F6E + 7409466F6E742E53697A650500000000000000D0024000000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 + 31353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614656469745374726F6B65416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060C5374726F6B652E + 436F6C6F720A537461727456616C756507097846463135313531350953746F70 + 56616C756507097846463241383245320754726967676572060E4973466F6375 + 7365643D747275650E54726967676572496E7665727365060F4973466F637573 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650614656469745374726F6B65416E696D6174696F6E320844757261 + 74696F6E050000000000000000000007496E7665727365090C50726F70657274 + 794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75650709 + 7846463135313531350953746F7056616C756507097846463443344334430754 + 726967676572062149734D6F7573654F7665723D747275653B4973466F637573 + 65643D66616C73653B0E54726967676572496E7665727365062249734D6F7573 + 654F7665723D66616C73653B4973466F63757365643D66616C73653B00000007 + 544C61796F757400095374796C654E616D650607627574746F6E7305416C6967 + 6E07055269676874064C6F636B6564090B4D617267696E732E546F7005000000 + 000000008000400D4D617267696E732E52696768740500000000000000800040 + 0E4D617267696E732E426F74746F6D05000000000000008000400A506F736974 + 696F6E2E580500000000000000C004400A506F736974696F6E2E590500000000 + 0000008000400A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C7408000007544C61796F757400095374796C654E616D650607 + 636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D61 + 7267696E732E4C65667405000000000000008001400B4D617267696E732E546F + 7005000000000000008000400D4D617267696E732E5269676874050000000000 + 00008000400E4D617267696E732E426F74746F6D05000000000000008000400A + 53697A652E57696474680500000000000000A804400B53697A652E4865696768 + 740500000000000000A803401453697A652E506C6174666F726D44656661756C + 7408000006544C6162656C00095374796C654E616D65060670726F6D7074064C + 6F636B656409074F706163697479050000000000000080FE3F16546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465045465787406 + 04546578740000005450463007544C61796F757400095374796C654E616D6506 + 0A6C6162656C7374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000C805400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C740807566973 + 69626C65080005545465787400095374796C654E616D6506047465787405416C + 69676E0708436F6E74656E74730748697454657374080A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 + 3007544C61796F757400095374796C654E616D65060D67726F7570626F787374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000F004400B53697A652E4865696768740500000000000000C804401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65 + 0748697454657374080C4D617267696E732E4C6566740500000000000000C000 + 400B4D617267696E732E546F7005000000000000009002400D4D617267696E73 + 2E52696768740500000000000000C000400E4D617267696E732E426F74746F6D + 0500000000000000C000400A53697A652E57696474680500000000000000D804 + 400B53697A652E48656967687405000000000000009804401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 3135313531350005545465787400095374796C654E616D650604746578740841 + 75746F53697A65090A436C6970506172656E74090748697454657374080C4D61 + 7267696E732E4C6566740500000000000000A002400A506F736974696F6E2E58 + 05000000000060559502400A506F736974696F6E2E590500000000004055D501 + C00A53697A652E576964746805000000000000B8C703400B53697A652E486569 + 6768740500000000000060FF02401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 5768697465155465787453657474696E67732E576F7264577261700800000000 + 5450463007544C61796F757400095374796C654E616D65060D747261636B6261 + 727374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C805 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 0B46697865644865696768740211000A5452656374616E676C6500095374796C + 654E616D65060668747261636B05416C69676E070A5665727443656E7465720A + 46696C6C2E436F6C6F7207097846463135313531350748697454657374080A50 + 6F736974696F6E2E590500000000000000BC04400A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000A001 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946696C + 6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C4D61 + 7267696E732E4C6566740500000000000000C001400B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 0000C001400E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E57696474680500000000000000B005400B53697A652E4865696768 + 740500000000000000C000401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C + 6500095374796C654E616D650609686967686C6967687405416C69676E07044C + 6566740A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 74080C50616464696E672E4C6566740500000000000000A002400A53697A652E + 57696474680500000000000000F003400B53697A652E48656967687405000000 + 00000000A001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666656374000853 + 6F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846 + 46324138324532074F706163697479050000000000000080FF3F07456E61626C + 6564080000000A5452656374616E676C6500095374796C654E616D6506067674 + 7261636B05416C69676E070A486F727A43656E7465720A46696C6C2E436F6C6F + 7207097846463135313531350748697454657374080A506F736974696F6E2E58 + 0500000000000000BC04400A53697A652E57696474680500000000000000A001 + 400B53697A652E4865696768740500000000000000C805401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F + 756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E + 6F6E65064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 740500000000000000C001400B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E52696768740500000000000000C001400E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 6805000000000000000000000B53697A652E4865696768740500000000000000 + C405401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E + 616D650609686967686C6967687405416C69676E0703546F700A46696C6C2E43 + 6F6C6F7207097846463241383245320748697454657374080A53697A652E5769 + 6474680500000000000000A001400B53697A652E486569676874050000000000 + 0000F003401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6500000B54476C6F774566666563740008536F66 + 746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F72070978464632 + 4138324532074F706163697479050000000000000080FF3F07456E61626C6564 + 0800000006545468756D6200095374796C654E616D650606687468756D62064C + 6F636B6564090A506F736974696F6E2E580500000000003033AB03400A506F73 + 6974696F6E2E59050000000000FFFFA304400A53697A652E5769647468050000 + 0000000000F002400B53697A652E4865696768740500000000000000F0024014 + 53697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75 + 70060D7468756D626261727374796C65000006545468756D6200095374796C65 + 4E616D650606767468756D62064C6F636B6564090A506F736974696F6E2E5805 + 0000000000CBCCA804400A506F736974696F6E2E590500000000009899B10340 + 0A53697A652E57696474680500000000000000F002400B53697A652E48656967 + 68740500000000000000F002401453697A652E506C6174666F726D4465666175 + 6C74080B5374796C654C6F6F6B7570060D7468756D626261727374796C650000 + 005450463007544C61796F757400095374796C654E616D65060D636865636B62 + 6F787374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 050000000000ACAA8006400B53697A652E486569676874050000000000585599 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 080007544C61796F75740005416C69676E07044C6566740A53697A652E576964 + 746805000000000000009003400B53697A652E48656967687405000000000058 + 559904401453697A652E506C6174666F726D44656661756C7408000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A53697A652E57696474680500000000000000F00240 + 0B53697A652E4865696768740500000000000000F002401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 3531353135000A5452656374616E676C6500095374796C654E616D65060A5265 + 6374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F + 720709784646324138324532074869745465737408074F706163697479050000 + 00000000000000000C4D617267696E732E4C6566740500000000000000800040 + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 + 000000000000008000400A53697A652E57696474680500000000000000B00240 + 0B53697A652E4865696768740500000000000000B002401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 0F54466C6F6174416E696D6174696F6E00095374796C654E616D65061B636865 + 6368626F7856697362696C697479416E696D6174696F6E31084475726174696F + 6E05000000000000000000000C50726F70657274794E616D6506074F70616369 + 74790A537461727456616C756505000000000000000000000953746F7056616C + 75650500000000000000C805400754726967676572060E4973436865636B6564 + 3D747275650E54726967676572496E7665727365060F4973436865636B65643D + 66616C73650000000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650618636865636B626F785374726F6B65416E696D6174696F6E31084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060C + 5374726F6B652E436F6C6F720A537461727456616C7565070978464631353135 + 31350953746F7056616C75650709784646324138324532075472696767657206 + 0E4973436865636B65643D747275650E54726967676572496E7665727365060F + 4973436865636B65643D66616C736500000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650617636865636B626F78436F6C6F72416E696D61 + 74696F6E31084475726174696F6E05000000000000000000000C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463230323032300953746F7056616C75650709784646343034303430075472 + 6967676572061049734D6F7573654F7665723D747275650E5472696767657249 + 6E7665727365061149734D6F7573654F7665723D66616C736500000000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E740A53697A652E57696474680500000000005855DD05400B53697A652E4865 + 6967687405000000000058559904401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 615768697465000000545046300A5452656374616E676C6500095374796C654E + 616D6506147363726F6C6C62617268747261636B7374796C6505416C69676E07 + 0643656E7465720A46696C6C2E436F6C6F720709784646313531353135074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369 + 626C65080006545468756D6200095374796C654E616D6506057468756D62064C + 6F636B6564090A53697A652E576964746805000000000000008003400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B7570060A7468756D627374796C + 65000000545046300A5452656374616E676C6500095374796C654E616D650614 + 7363726F6C6C62617276747261636B7374796C6505416C69676E070643656E74 + 65720A46696C6C2E436F6C6F7207097846463135313531350748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C650800 + 06545468756D6200095374796C654E616D6506057468756D62064C6F636B6564 + 090A53697A652E57696474680500000000000000C804400B53697A652E486569 + 67687405000000000000008003401453697A652E506C6174666F726D44656661 + 756C74080B5374796C654C6F6F6B7570060A7468756D627374796C6500000054 + 50463007544C61796F757400095374796C654E616D6506157363726F6C6C6261 + 72626F74746F6D627574746F6E05416C69676E070643656E7465720756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846463137353739430754726967676572061F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E + 54726967676572496E766572736506204973507265737365643D66616C73653B + 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0005545061746800095374796C654E616D650605506174683105416C69676E07 + 06436C69656E7409446174612E506174680A3400000004000000000000000000 + C8420000C84201000000000096430000C8420100000000004843000096430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080A53697A652E57696474680500000000000000A002400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 005450463007544C61796F757400095374796C654E616D6506137363726F6C6C + 6261726C656674627574746F6E05416C69676E070643656E7465720756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846463137353739430754726967676572061F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E + 54726967676572496E766572736506204973507265737365643D66616C73653B + 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0005545061746800095374796C654E616D650605506174683105416C69676E07 + 06436C69656E7409446174612E506174680A3400000004000000000000000000 + C8420000C84201000000000096430000C8420100000000004843000096430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080D526F746174696F6E416E676C650500000000000000B405 + 400A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 + 4C61796F757400095374796C654E616D6506147363726F6C6C62617272696768 + 74627574746F6E05416C69676E070643656E7465720756697369626C6508000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0706436C69656E740C436C69704368696C6472656E090A436C + 6970506172656E74090A46696C6C2E436F6C6F72070978464632303230323007 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463230323032300953746F7056616C7565070978 + 46463430343034300754726967676572062049734D6F7573654F7665723D7472 + 75653B4973507265737365643D66616C73650E54726967676572496E76657273 + 65062149734D6F7573654F7665723D66616C73653B4973507265737365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463430343034300953746F70 + 56616C756507097846463137353739430754726967676572061F497350726573 + 7365643D747275653B49734D6F7573654F7665723D747275650E547269676765 + 72496E766572736506204973507265737365643D66616C73653B49734D6F7573 + 654F7665723D7472756500000007544C61796F757400095374796C654E616D65 + 06074C61796F75743105416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000A002400B53697A652E48656967687405000000000000 + 00C001401453697A652E506C6174666F726D44656661756C7408000554506174 + 6800095374796C654E616D650605506174683105416C69676E0706436C69656E + 7409446174612E506174680A3400000004000000000000000000C8420000C842 + 01000000000096430000C842010000000000484300009643030000000000C842 + 0000C8420A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080D526F746174696F6E416E676C650500000000000000B405C00A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000C001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 + 00095374796C654E616D6506127363726F6C6C626172746F70627574746F6E05 + 416C69676E070643656E7465720756697369626C6508000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 06436C69656E740C436C69704368696C6472656E090A436C6970506172656E74 + 090A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646343034303430 + 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000000000 + 000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463430343034300953746F7056616C7565070978 + 46463137353739430754726967676572061F4973507265737365643D74727565 + 3B49734D6F7573654F7665723D747275650E54726967676572496E7665727365 + 06204973507265737365643D66616C73653B49734D6F7573654F7665723D7472 + 756500000007544C61796F757400095374796C654E616D6506074C61796F7574 + 3105416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000A002400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080005545061746800095374796C65 + 4E616D650605506174683105416C69676E0706436C69656E7409446174612E50 + 6174680A3400000004000000000000000000C8420000C8420100000000009643 + 0000C842010000000000484300009643030000000000C8420000C8420A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080D526F746174 + 696F6E416E676C650500000000000000B406400A53697A652E57696474680500 + 000000000000A002400B53697A652E4865696768740500000000000000C00140 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000000005450463007544C61796F757400095374796C654E + 616D65060E7363726F6C6C6261727374796C6505416C69676E070643656E7465 + 720756697369626C6508000754427574746F6E00095374796C654E616D65060A + 6C656674627574746F6E05416C69676E07044C656674064C6F636B6564090A50 + 6F736974696F6E2E5905000000000000008003400A53697A652E576964746805 + 000000000000008003400B53697A652E48656967687405000000000000009003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B757006137363726F6C6C6261726C656674627574746F6E0000075442757474 + 6F6E00095374796C654E616D65060B7269676874627574746F6E05416C69676E + 07055269676874064C6F636B6564090A506F736974696F6E2E58050000000000 + 00008804400A506F736974696F6E2E5905000000000000008003400A53697A65 + 2E576964746805000000000000008003400B53697A652E486569676874050000 + 00000000009003401453697A652E506C6174666F726D44656661756C74080B53 + 74796C654C6F6F6B757006147363726F6C6C6261727269676874627574746F6E + 00000754427574746F6E00095374796C654E616D65060C626F74746F6D627574 + 746F6E05416C69676E0706426F74746F6D064C6F636B6564090A506F73697469 + 6F6E2E5905000000000000008804400A53697A652E5769647468050000000000 + 0000C804400B53697A652E48656967687405000000000000008003401453697A + 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75700615 + 7363726F6C6C626172626F74746F6D627574746F6E00000654547261636B0009 + 5374796C654E616D65060668747261636B05416C69676E0706436C69656E7406 + 4C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A + 53697A652E576964746805000000000000009003400B53697A652E4865696768 + 7405000000000000009003401453697A652E506C6174666F726D44656661756C + 74080B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B73 + 74796C6500000654547261636B00095374796C654E616D65060676747261636B + 05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E74617469 + 6F6E070A486F72697A6F6E74616C0A53697A652E576964746805000000000000 + 009003400B53697A652E48656967687405000000000000009003401453697A65 + 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570061473 + 63726F6C6C62617276747261636B7374796C6500000754427574746F6E000953 + 74796C654E616D650609746F70627574746F6E05416C69676E0703546F700A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 05000000000000008003401453697A652E506C6174666F726D44656661756C74 + 080B5374796C654C6F6F6B757006127363726F6C6C626172746F70627574746F + 6E000000545046300A5452656374616E676C6500095374796C654E616D65060A + 7468756D627374796C6505416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463444344434440748697454657374080A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E69 + 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463444344434440953746F7056616C7565070978464631373537394307 + 54726967676572060E4973507265737365643D747275650E5472696767657249 + 6E7665727365060F4973507265737365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463444344434440953746F7056616C75650707636C6147726179 + 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 + 6572496E7665727365061149734D6F7573654F7665723D66616C736500000054 + 5046300D545377697463684F626A65637400095374796C654E616D65060B7377 + 697463687374796C6505416C69676E070643656E746572044B696E64070C4661 + 64696E67547261636B730A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C740812547261636B696E675468756D625363616C65 + 050000000000000080FF3F0756697369626C65080A46696C6C2E436F6C6F7207 + 097846463230323032300C46696C6C4F6E2E436F6C6F72070978464631373537 + 39430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F6B652E4B696E + 6407044E6F6E650B5468756D622E436F6C6F7207097846463430343034300D54 + 68756D624F6E2E436F6C6F7207097846463241383245320C5468756D624F6E2E + 4B696E640705536F6C6964105468756D625374726F6B652E4B696E6407044E6F + 6E650F5468756D625374726F6B652E4361700705526F756E64105468756D6253 + 74726F6B652E446173680706437573746F6D105468756D625374726F6B652E4A + 6F696E0705526F756E64165468756D625374726F6B652E437573746F6D446173 + 680A08000000000000000000000000005450463007544C61796F757400095374 + 796C654E616D65060D636F6D626F626F787374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000C5442727573684F626A6563740009 + 5374796C654E616D65060A666F726567726F756E6400000B54466F6E744F626A + 65637400095374796C654E616D650604666F6E7409466F6E742E53697A650500 + 000000000000D00240000007544C61796F757400095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0708436F6E74656E74730A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 + 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080A53697A652E57696474680500000000000000 + C805400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E650007544C61796F757400095374796C654E616D650611427574746F6E5374 + 796C654F626A65637405416C69676E070846697452696768740B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A506F736974696F6E2E580500000000005ED99705400A506F73697469 + 6F6E2E59050000000000000080FF3F0A53697A652E5769647468050000000000 + 889AB803400B53697A652E4865696768740500000000000000B803401453697A + 652E506C6174666F726D44656661756C74080007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720C4D61 + 7267696E732E4C656674050000000000000080FF3F0A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080005545061746800 + 095374796C654E616D650605506174683105416C69676E0706436C69656E7409 + 446174612E506174680A3400000004000000000000000000C8420000C8420100 + 0000000096430000C842010000000000484300009643030000000000C8420000 + C8420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0A53697A652E57696474680500000000000000A002400B53697A652E48656967 + 68740500000000000000C001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572063049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C73650E5472 + 6967676572496E7665727365063149734D6F7573654F7665723D66616C73653B + 4973507265737365643D66616C73653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463430343034300953746F7056616C7565 + 07097846463137353739430754726967676572062F4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463241383245320953746F70 + 56616C756507097846463137353739430754726967676572062E497350726573 + 7365643D747275653B49734D6F7573654F7665723D747275653B4973466F6375 + 7365643D747275650E54726967676572496E7665727365062F49735072657373 + 65643D66616C73653B49734D6F7573654F7665723D747275653B4973466F6375 + 7365643D747275650000000007544C61796F757400095374796C654E616D6506 + 07636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D + 617267696E732E4C65667405000000000000008000400B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 000000D803400E4D617267696E732E426F74746F6D0500000000000000800040 + 0A53697A652E576964746805000000000000008E05400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C74080000005450463007544C61796F757400095374796C654E616D65060E63 + 6F6D626F656469747374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000C805400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508000C5442727573684F626A65637400095374796C654E616D65 + 060A666F726567726F756E6400000B54466F6E744F626A65637400095374796C + 654E616D650604666F6E7409466F6E742E53697A650500000000000000D00240 + 000007544C61796F757400095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0708436F6E74656E74730A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070643 + 6C69656E740A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464632303230323000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E315374796C65084475726174696F6E050000000000 + 000000000007496E7665727365090C50726F70657274794E616D65060C537472 + 6F6B652E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206204973 + 4D6F7573654F7665723D747275653B4973466F63757365643D66616C73650E54 + 726967676572496E7665727365062149734D6F7573654F7665723D66616C7365 + 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E325374 + 796C65084475726174696F6E050000000000000000000007496E766572736509 + 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 + 7456616C756507097846463430343034300953746F7056616C75650709784646 + 3241383245320754726967676572061F49734D6F7573654F7665723D74727565 + 3B4973466F63757365643D747275650E54726967676572496E76657273650620 + 49734D6F7573654F7665723D747275653B4973466F63757365643D66616C7365 + 000007544C61796F757400095374796C654E616D6506056172726F7705416C69 + 676E070846697452696768740B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E + 580500000000005ED99705400A506F736974696F6E2E59050000000000000080 + FF3F0A53697A652E5769647468050000000000889AB803400B53697A652E4865 + 696768740500000000000000B803401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C6500095374796C654E616D65060A5265 + 6374616E676C653105416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F7207097846463330333033300748697454657374080A53697A652E576964 + 7468050000000000889AB803400B53697A652E48656967687405000000000000 + 00B803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614436F6C6F72416E696D6174696F6E315374796C650844 + 75726174696F6E050000000000000000000007496E7665727365090C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463330333033300953746F7056616C7565070978464634303430343007 + 54726967676572062049734D6F7573654F7665723D747275653B4973466F6375 + 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 + 654F7665723D66616C73653B4973466F63757365643D66616C736500000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F7241 + 6E696D6174696F6E325374796C65084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463430343034300953746F7056616C75650709784646 + 3137353739430754726967676572061F4973466F63757365643D747275653B49 + 734D6F7573654F7665723D7472756500000007544C61796F757400095374796C + 654E616D6506074C61796F75743105416C69676E070643656E7465720C4D6172 + 67696E732E4C656674050000000000000080FF3F0A53697A652E576964746805 + 00000000000000A002400B53697A652E4865696768740500000000000000C001 + 401453697A652E506C6174666F726D44656661756C7408000554506174680009 + 5374796C654E616D650605506174683105416C69676E0706436C69656E740944 + 6174612E506174680A3400000004000000000000000000C8420000C842010000 + 00000096430000C842010000000000484300009643030000000000C8420000C8 + 420A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A + 53697A652E57696474680500000000000000A002400B53697A652E4865696768 + 740500000000000000C001401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E650000000000000C5442727573 + 684F626A65637400095374796C654E616D65060973656C656374696F6E0B4272 + 7573682E436F6C6F720709783936324138324532000007544C61796F75740009 + 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 0000000000F003400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E576964746805000000000000008805400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C74080000005450463007544C61796F757400095374796C654E616D6506 + 0F746162636F6E74726F6C7374796C6505416C69676E070643656E7465720A53 + 697A652E576964746805000000000000008E06400B53697A652E486569676874 + 050000000000FFFFC905401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646333033303330064C6F636B6564090748697454 + 657374080C50616464696E672E4C65667405000000000000008000400B506164 + 64696E672E546F7005000000000000008000400D50616464696E672E52696768 + 7405000000000000008000400E50616464696E672E426F74746F6D0500000000 + 0000008000400A53697A652E576964746805000000000000008E06400B53697A + 652E486569676874050000000000FFFFC905401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000000545046300A5452656374616E676C6500095374796C654E616D65060B + 746162646F747374796C6505416C69676E070643656E7465720A46696C6C2E43 + 6F6C6F7207097846463135313531350748697454657374080A53697A652E5769 + 64746805000000000000008005400B53697A652E486569676874050000000000 + 00008001401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E + 696D6174696F6E00084475726174696F6E05000000000018B7D1F23F0C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463135313531350953746F7056616C75650709784646324138324532 + 0754726967676572060F497353656C65637465643D747275650E547269676765 + 72496E76657273650610497353656C65637465643D66616C7365000000545046 + 3007544C61796F757400095374796C654E616D65060C7461626974656D737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C74080756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D650603746F7005416C69676E0708 + 436F6E74656E74730C436C69704368696C6472656E0907436F726E6572730B07 + 546F704C65667408546F705269676874000A46696C6C2E436F6C6F7207097846 + 46323032303230064C6F636B6564090748697454657374080553696465730B03 + 546F70044C656674055269676874000A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000654476C79706800095374796C654E616D65060A67 + 6C7970687374796C650C4D617267696E732E4C65667405000000000000008001 + 400D4D617267696E732E526967687405000000000000008001C005416C69676E + 07044C6566740A53697A652E576964746805000000000000008003400B53697A + 652E48656967687405000000000000008003401453697A652E506C6174666F72 + 6D44656661756C7408000005545465787400095374796C654E616D6506047465 + 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 080C4D617267696E732E4C6566740500000000000000C000400B4D617267696E + 732E546F700500000000000000C000400D4D617267696E732E52696768740500 + 000000000000C000400E4D617267696E732E426F74746F6D0500000000000000 + C000400A53697A652E57696474680500000000000000B004400B53697A652E48 + 656967687405000000000000009803401453697A652E506C6174666F726D4465 + 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C615768697465155465787453657474696E67732E576F726457726170080000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650612746162 + 436F6C6F72416E696D6174696F6E310D416E696D6174696F6E54797065070549 + 6E4F7574084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464634303430343007547269 + 67676572062149734D6F7573654F7665723D747275653B497353656C65637465 + 643D66616C73650E54726967676572496E7665727365062249734D6F7573654F + 7665723D66616C73653B497353656C65637465643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650612746162436F6C6F + 72416E696D6174696F6E32084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646324138 + 3245320754726967676572060F497353656C65637465643D747275650E547269 + 67676572496E76657273650610497353656C65637465643D66616C7365000000 + 00545046300A5452656374616E676C6500095374796C654E616D65060D746875 + 6D626261727374796C6505416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463241383245320748697454657374080A53697A652E576964 + 74680500000000000000A003400B53697A652E48656967687405000000000000 + 00A003401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350756697369626C6508000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D6506147468756D62436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463241383245320953746F7056616C7565070978464631 + 37353739430754726967676572061F4973507265737365643D747275653B4973 + 4D6F7573654F7665723D747275650E54726967676572496E7665727365061049 + 73507265737365643D66616C73653B00000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F + 6E32084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 41383245320953746F7056616C75650709784646343039424646075472696767 + 6572062049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 + 3D66616C73653B4973507265737365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D6506157468756D625374726F6B65 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463135313531350953746F7056616C756507097846463137 + 353739430754726967676572061F4973507265737365643D747275653B49734D + 6F7573654F7665723D747275650E54726967676572496E7665727365060F4973 + 507265737365643D66616C73650000005450463007544C61796F757400095374 + 796C654E616D65060C6C697374626F787374796C6505416C69676E070643656E + 7465720A53697A652E5769647468050000000000FFFFE905400B53697A652E48 + 656967687405000000000000008306401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000C5442727573684F626A656374000953 + 74796C654E616D650618416C7465726E6174696E67526F774261636B67726F75 + 6E640B42727573682E436F6C6F72070978464632433243324300000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032 + 303230064C6F636B6564090748697454657374080C50616464696E672E4C6566 + 7405000000000000008000400B50616464696E672E546F700500000000000000 + 8000400D50616464696E672E526967687405000000000000008000400E506164 + 64696E672E426F74746F6D05000000000000008000400A53697A652E57696474 + 68050000000000FFFFE905400B53697A652E4865696768740500000000000000 + 8306401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F7207097846463135313531350007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C436C69 + 704368696C6472656E090A53697A652E5769647468050000000000FFFFC10540 + 0B53697A652E4865696768740500000000000000DE05401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72070978464632 + 41383245320748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000A5452656374616E676C6500095374796C654E616D650610666F63 + 7573656473656C656374696F6E0A46696C6C2E436F6C6F720709784646324138 + 3245320748697454657374080A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650B5374726F6B652E446173680703446F740000000A545363726F6C6C426172 + 00095374796C654E616D65060A767363726F6C6C62617205416C69676E070552 + 696768740B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E0708566572746963616C0A506F736974696F6E2E5805000000 + 0000FFFFC505400A506F736974696F6E2E5905000000000000008000400A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 00000000000000DE05401453697A652E506C6174666F726D44656661756C7408 + 00000A545363726F6C6C42617200095374796C654E616D65060A687363726F6C + 6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500 + 0000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E7461 + 6C0A506F736974696F6E2E5805000000000000008000400A506F736974696F6E + 2E590500000000000000E205400A53697A652E5769647468050000000000FFFF + E105400B53697A652E48656967687405000000000000008003401453697A652E + 506C6174666F726D44656661756C740800000F54536D616C6C5363726F6C6C42 + 617200095374796C654E616D65060F76736D616C6C7363726F6C6C6261720541 + 6C69676E070552696768740B536D616C6C4368616E6765050000000000000000 + 00000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E73 + 2E4C65667405000000000000008000400A506F736974696F6E2E580500000000 + 000000C605400A506F736974696F6E2E5905000000000000008000400A53697A + 652E576964746805000000000000008002400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C740807 + 56697369626C650800000F54536D616C6C5363726F6C6C42617200095374796C + 654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F + 74746F6D0B536D616C6C4368616E676505000000000000000000000B4F726965 + 6E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005 + 000000000000008000400A506F736974696F6E2E580500000000000000800040 + 0A506F736974696F6E2E590500000000000000E205400A53697A652E57696474 + 6805000000000000009606400B53697A652E4865696768740500000000000000 + 8002401453697A652E506C6174666F726D44656661756C74080756697369626C + 65080000000B54476C6F774566666563740008536F66746E6573730500000000 + 00CDCCCCFC3F09476C6F77436F6C6F720709784646463639453244074F706163 + 6974790500000000006666E6FE3F0754726967676572060E4973466F63757365 + 643D7472756507456E61626C6564080000005450463007544C61796F75740009 + 5374796C654E616D65060D6C697374626F78666F6F74657205416C69676E0706 + 43656E7465720A53697A652E576964746805000000000000009205400B53697A + 652E4865696768740500000000000000D003401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C65080005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C6566740500000000000000A001 + 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 + 2E52696768740500000000000000A001400E4D617267696E732E426F74746F6D + 05000000000000008000400A53697A652E57696474680500000000000000FC04 + 400B53697A652E4865696768740500000000000000B003401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D6506106C697374626F786974656D7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000D605400B + 53697A652E4865696768740500000000000000C003401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508000654476C797068000953 + 74796C654E616D65060A676C7970687374796C650C4D617267696E732E4C6566 + 7405000000000000008000400B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E526967687405000000000000008000400E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F05416C69676E07044C65 + 66740A53697A652E576964746805000000000000008003400B53697A652E4865 + 6967687405000000000000008003401453697A652E506C6174666F726D446566 + 61756C7408000005545465787400095374796C654E616D650604746578740541 + 6C69676E0706436C69656E740748697454657374080C4D617267696E732E4C65 + 66740500000000000000C000400B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E52696768740500000000000000C000400E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A53697A652E576964 + 74680500000000000000CA05400B53697A652E48656967687405000000000000 + 00B003401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974651554657874 + 53657474696E67732E576F72645772617008165465787453657474696E67732E + 486F727A416C69676E07074C656164696E6700000954436865636B426F780009 + 5374796C654E616D650605636865636B05416C69676E07084D6F73744C656674 + 0843616E466F637573081244697361626C65466F637573456666656374090A53 + 697A652E57696474680500000000000000A003400B53697A652E486569676874 + 0500000000000000C003401453697A652E506C6174666F726D44656661756C74 + 080756697369626C65080000005450463007544C61796F757400095374796C65 + 4E616D6506126C697374626F78706C61696E68656164657205416C69676E0706 + 43656E7465720A53697A652E576964746805000000000000009205400B53697A + 652E4865696768740500000000000000D003401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F720709784646324432443244064C6F636B + 6564090748697454657374080A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000005545465787400095374796C654E616D65060474657874 + 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080C + 4D617267696E732E4C6566740500000000000000A001400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 00000000A001400E4D617267696E732E426F74746F6D05000000000000008000 + 400A53697A652E57696474680500000000000000FC04400B53697A652E486569 + 6768740500000000000000B003401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 57686974650000005450463007544C61796F757400095374796C654E616D6506 + 09677269647374796C6505416C69676E070643656E7465720A53697A652E5769 + 647468050000000000FFFFE905400B53697A652E486569676874050000000000 + 00008306401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508000C5442727573684F626A65637400095374796C654E616D65061841 + 6C7465726E6174696E67526F774261636B67726F756E640B42727573682E436F + 6C6F72070978333237383738373800000C5442727573684F626A656374000953 + 74796C654E616D6506086C696E6566696C6C0B42727573682E436F6C6F720709 + 78464631353135313500000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080C50616464696E672E4C65667405000000000000008000400B506164 + 64696E672E546F7005000000000000008000400D50616464696E672E52696768 + 7405000000000000008000400E50616464696E672E426F74746F6D0500000000 + 0000008000400A53697A652E5769647468050000000000FFFFE905400B53697A + 652E48656967687405000000000000008306401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 3500075448656164657200095374796C654E616D650606686561646572055369 + 6465730B03546F70044C65667406426F74746F6D0552696768740005416C6967 + 6E0703546F700748697454657374080A506F736974696F6E2E58050000000000 + 00008000400A506F736974696F6E2E5905000000000000008000400A53697A65 + 2E5769647468050000000000FFFFE105400B53697A652E486569676874050000 + 0000000000A803401453697A652E506C6174666F726D44656661756C74080000 + 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 + 676E0706436C69656E740C436C69704368696C6472656E090A53697A652E5769 + 647468050000000000FFFFC105400B53697A652E486569676874050000000000 + 0000B405401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060973656C656374696F6E0A4669 + 6C6C2E436F6C6F720709784646324138324532074869745465737408074F7061 + 63697479050000000000000080FD3F0A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6500000A5452656374616E676C6500095374796C654E616D650605666F + 6375730A46696C6C2E436F6C6F72070978414632413832453207486974546573 + 74080C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507595261646975 + 730500000000000000C000400000000A545363726F6C6C42617200095374796C + 654E616D65060A767363726F6C6C62617205416C69676E070552696768740B53 + 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F + 6E0708566572746963616C0A506F736974696F6E2E58050000000000FFFFC505 + 400A506F736974696F6E2E590500000000000000B803400A53697A652E576964 + 746805000000000000008003400B53697A652E48656967687405000000000000 + 00B405401453697A652E506C6174666F726D44656661756C740800000A545363 + 726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261720541 + 6C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000000000 + 0000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F7369 + 74696F6E2E5805000000000000008000400A506F736974696F6E2E5905000000 + 00000000E205400A53697A652E5769647468050000000000FFFFE105400B5369 + 7A652E48656967687405000000000000008003401453697A652E506C6174666F + 726D44656661756C740800000F54536D616C6C5363726F6C6C42617200095374 + 796C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E0705 + 52696768740B536D616C6C4368616E676505000000000000000000000B4F7269 + 656E746174696F6E0708566572746963616C0C4D617267696E732E4C65667405 + 000000000000008000400A506F736974696F6E2E580500000000000000C60540 + 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 + 6805000000000000008002400B53697A652E4865696768740500000000000000 + 8002401453697A652E506C6174666F726D44656661756C74080756697369626C + 650800000F54536D616C6C5363726F6C6C42617200095374796C654E616D6506 + 0F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B53 + 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F + 6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000000000 + 008000400A506F736974696F6E2E5805000000000000008000400A506F736974 + 696F6E2E590500000000000000E205400A53697A652E57696474680500000000 + 0000009606400B53697A652E4865696768740500000000000000800240145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650800000000 + 5450463007544C61796F757400095374796C654E616D65060F68656164657269 + 74656D7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 6805000000000000009205400B53697A652E4865696768740500000000000000 + D003401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508000A5452656374616E676C6500095374796C654E616D65060A6261636B67 + 726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646344334433443064C6F636B6564090748697454657374080A53697A + 652E576964746805000000000000009205400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F720709784646313531353135000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615686561646572436F6C6F72 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463443344334430953746F7056616C7565070978464632413832 + 45320754726967676572060E4973507265737365643D747275650E5472696767 + 6572496E7665727365060F4973507265737365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D65061668656164657253 + 74726F6B65416E696D6174696F6E31084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53 + 7461727456616C756507097846463135313531350953746F7056616C75650709 + 7846463241383245320754726967676572060E4973507265737365643D747275 + 650E54726967676572496E7665727365060F4973507265737365643D66616C73 + 6500000005545465787400095374796C654E616D6506047465787405416C6967 + 6E0706436C69656E74064C6F636B6564090748697454657374080C4D61726769 + 6E732E4C6566740500000000000000A001400B4D617267696E732E546F700500 + 0000000000008000400D4D617267696E732E52696768740500000000000000A0 + 01400E4D617267696E732E426F74746F6D05000000000000008000400A53697A + 652E57696474680500000000000000FC04400B53697A652E4865696768740500 + 000000000000B003401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 0000005450463007544C61796F757400095374796C654E616D65061970726F67 + 726573736261726D696E696572726F727374796C6505416C69676E070643656E + 7465720A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000A5452656374616E676C650009537479 + 6C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646343034303430064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A54526563 + 74616E676C6500095374796C654E616D65060A68696E64696361746F7205416C + 69676E07044C6566740A46696C6C2E436F6C6F72070978464645323241324106 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E650000000A5452656374616E676C6500095374796C654E616D650606 + 76747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646343034303430064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009 + 5374796C654E616D65060A76696E64696361746F7205416C69676E0706426F74 + 746F6D0A46696C6C2E436F6C6F720709784646453232413241064C6F636B6564 + 090748697454657374080A506F736974696F6E2E5905000000000099998D0440 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C + 61796F757400095374796C654E616D65061170726F677265737363656C6C7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000F805400B53697A652E4865696768740500000000000000FC05401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508000754 + 4C61796F757400095374796C654E616D65060668747261636B05416C69676E07 + 08436F6E74656E7473064C6F636B6564090C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E + 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 + 000000000000F005400B53697A652E4865696768740500000000000000F40540 + 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 + 6C6500095374796C654E616D65060A68696E64696361746F7205416C69676E07 + 044C6566740A46696C6C2E436F6C6F720709784646324138324532064C6F636B + 6564090748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 + 0080FF3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000F005401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 + 095374796C654E616D6506106D656E756261726974656D7374796C6505416C69 + 676E070643656E7465720C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C650005416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646324138324532074869745465737408074F70616369747905000000 + 000017B7D1F13F0A53697A652E576964746805000000000000009205400B5369 + 7A652E4865696768740500000000000000D003401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F5446 + 6C6F6174416E696D6174696F6E00084475726174696F6E05000000000018B7D1 + F23F0C50726F70657274794E616D6506074F7061636974790A53746172745661 + 6C756505000000000000000000000953746F7056616C75650500000000000000 + 80FF3F0754726967676572060F497353656C65637465643D747275650E547269 + 67676572496E76657273650610497353656C65637465643D66616C7365000000 + 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646324138324532074869745465737408074F70616369747905000000000017 + B7D1F13F0A53697A652E576964746805000000000000009205400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F61 + 74416E696D6174696F6E00084475726174696F6E05000000000018B7D1F23F0C + 50726F70657274794E616D6506074F7061636974790A537461727456616C7565 + 05000000000000000000000953746F7056616C7565050000000000000080FF3F + 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 + 6572496E7665727365061149734D6F7573654F7665723D66616C736500000007 + 544C61796F757400095374796C654E616D650605676C79706805416C69676E07 + 044C6566740A53697A652E57696474680500000000000000C803400B53697A65 + 2E4865696768740500000000000000D003401453697A652E506C6174666F726D + 44656661756C74080007544C61796F757400095374796C654E616D6506096368 + 65636B6D61726B05416C69676E0708436F6E74656E7473074F70616369747905 + 00000000006F1283F53F0A53697A652E57696474680500000000000000C80340 + 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 + 74666F726D44656661756C7408000554506174680005416C69676E070643656E + 74657209446174612E506174680A58000000070000000000000056D9524391AE + 2C43010000009276664365021643010000009F3983432B7C3C43010000009E9A + A64382D2B442010000006F1CB04375A4D1420100000026DF8243263F67430300 + 000056D9524391AE2C430A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080A53697A652E57696474680500000000000000B002400B53 + 697A652E4865696768740500000000000000B002401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F + 54466C6F6174416E696D6174696F6E00084475726174696F6E050000000000CD + CCCCFB3F0C50726F70657274794E616D6506074F7061636974790A5374617274 + 56616C756505000000000000000000000953746F7056616C7565050000000000 + 000080FF3F0754726967676572060E4973436865636B65643D747275650E5472 + 6967676572496E7665727365060F4973436865636B65643D66616C7365000000 + 0654476C79706800095374796C654E616D65060A676C7970687374796C650C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F7005000000000000008000400D4D617267696E732E52696768740500000000 + 000000C000400E4D617267696E732E426F74746F6D050000000000000080FF3F + 05416C69676E070552696768740A53697A652E57696474680500000000000000 + 8003400B53697A652E48656967687405000000000000008003401453697A652E + 506C6174666F726D44656661756C740800000654496D61676500095374796C65 + 4E616D6506066269746D61700E4D756C74695265734269746D61700E01000005 + 416C69676E0708436F6E74656E74730C4D617267696E732E4C65667405000000 + 000000008000400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E526967687405000000000000008000400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 00000000A803400B53697A652E4865696768740500000000000000B003401453 + 697A652E506C6174666F726D44656661756C7408000000055454657874000953 + 74796C654E616D6506047465787405416C69676E07044C656674064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + 8002400D4D617267696E732E526967687405000000000000008002400A506F73 + 6974696F6E2E5805000000000000008404400A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E + 67732E466F6E74436F6C6F720708636C61576869746516546578745365747469 + 6E67732E486F727A416C69676E07074C656164696E6700000554546578740009 + 5374796C654E616D65060873686F727463757405416C69676E07055269676874 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 000000000000C002400D4D617267696E732E52696768740500000000000000C0 + 01400A506F736974696F6E2E580500000000000000C000C00A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 + 7453657474696E67732E486F727A416C69676E07074C656164696E6700000754 + 4C61796F757400095374796C654E616D6506077375626D61726B05416C69676E + 070552696768740A506F736974696F6E2E580500000000000000D404400A5369 + 7A652E57696474680500000000000000A003400B53697A652E48656967687405 + 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 + 000554506174680005416C69676E070643656E74657209446174612E50617468 + 0A34000000040000000000000000000000000000000100000000000000000080 + 3F010000000000803F0000003F0300000000000000000000000A46696C6C2E43 + 6F6C6F720708636C615768697465064C6F636B6564090748697454657374080A + 53697A652E57696474680500000000000000E001400B53697A652E4865696768 + 7405000000000000008002401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300A545265 + 6374616E676C6500095374796C654E616D65060C6D656E756261727374796C65 + 05416C69676E070643656E7465720C436C69704368696C6472656E090946696C + 6C2E4B696E6407044E6F6E650748697454657374080A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E650756697369626C6508000A5452656374616E676C6500 + 05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080C4D617267696E732E4C656674050000000000 + 000080FFBF0B4D617267696E732E546F70050000000000000080FFBF0D4D6172 + 67696E732E5269676874050000000000000080FFBF0A53697A652E5769647468 + 0500000000000000D004400B53697A652E4865696768740500000000000000CC + 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F720709784646313531353135000007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 + 697A652E57696474680500000000000000C004400B53697A652E486569676874 + 0500000000000000C004401453697A652E506C6174666F726D44656661756C74 + 080000005450463007544C61796F757400095374796C654E616D65060D6D656E + 756974656D7374796C6505416C69676E070643656E7465720C4D617267696E73 + 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 + 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F + 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E + 57696474680500000000008EE3F605400B53697A652E48656967687405000000 + 00008EE3F003401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508000A5452656374616E676C650005416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F72070978464632413832453207486974546573 + 7408074F70616369747905000000000017B7D1F13F0A53697A652E5769647468 + 0500000000008EE3F605400B53697A652E4865696768740500000000008EE3F0 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572 + 6174696F6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F + 7061636974790A537461727456616C756505000000000000000000000953746F + 7056616C7565050000000000000080FF3F0754726967676572060F497353656C + 65637465643D747275650E54726967676572496E76657273650610497353656C + 65637465643D66616C73650000000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0A46696C6C2E436F6C6F72070978464632413832453207486974546573740807 + 4F70616369747905000000000000000000000A53697A652E5769647468050000 + 0000008EE3F605400B53697A652E4865696768740500000000008EE3F0034014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572617469 + 6F6E05000000000018B7D1F23F07496E7665727365090C50726F70657274794E + 616D6506074F7061636974790A537461727456616C7565050000000000000000 + 00000953746F7056616C7565050000000000000080FF3F075472696767657206 + 1049734D6F7573654F7665723D747275650E54726967676572496E7665727365 + 061149734D6F7573654F7665723D66616C736500000007544C61796F75740009 + 5374796C654E616D650605676C79706805416C69676E07044C6566740A53697A + 652E57696474680500000000000000C803400B53697A652E4865696768740500 + 000000008EE3F003401453697A652E506C6174666F726D44656661756C740800 + 07544C61796F757400095374796C654E616D650609636865636B6D61726B0541 + 6C69676E0708436F6E74656E7473074F7061636974790500000000006F1283F5 + 3F0A53697A652E57696474680500000000000000C803400B53697A652E486569 + 6768740500000000008EE3F003401453697A652E506C6174666F726D44656661 + 756C7408000554506174680005416C69676E070643656E74657209446174612E + 506174680A58000000070000000000000056D9524391AE2C4301000000927666 + 4365021643010000009F3983432B7C3C43010000009E9AA64382D2B442010000 + 006F1CB04375A4D1420100000026DF8243263F67430300000056D9524391AE2C + 430A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A + 53697A652E57696474680500000000000000B002400B53697A652E4865696768 + 740500000000000000B002401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E69 + 6D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 657274794E616D6506074F7061636974790A537461727456616C756505000000 + 000000000000000953746F7056616C7565050000000000000080FF3F07547269 + 67676572060E4973436865636B65643D747275650E54726967676572496E7665 + 727365060F4973436865636B65643D66616C73650000000654476C7970680009 + 5374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C65 + 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 + 008000400D4D617267696E732E52696768740500000000000000C000400E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F05416C69676E07044C + 6566740A53697A652E576964746805000000000000008003400B53697A652E48 + 656967687405000000000000008003401453697A652E506C6174666F726D4465 + 6661756C740800000654496D61676500095374796C654E616D6506066269746D + 61700E4D756C74695265734269746D61700E01000005416C69676E07044C6566 + 740C4D617267696E732E4C65667405000000000000008000400B4D617267696E + 732E546F7005000000000000008000400D4D617267696E732E52696768740500 + 0000000000008000400E4D617267696E732E426F74746F6D0500000000000000 + 8000400A506F736974696F6E2E5805000000000000008000400A506F73697469 + 6F6E2E5905000000000000008000400A53697A652E5769647468050000000000 + 0000A803400B53697A652E4865696768740500000000008EE3D003401453697A + 652E506C6174666F726D44656661756C74080000000554546578740009537479 + 6C654E616D6506047465787405416C69676E07044C656674064C6F636B656409 + 0748697454657374080C4D617267696E732E4C65667405000000000000008002 + 400D4D617267696E732E526967687405000000000000008002400A506F736974 + 696F6E2E5805000000000000008404400A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000008EE3F00340145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C615768697465165465787453657474696E67 + 732E486F727A416C69676E07074C656164696E67000005545465787400095374 + 796C654E616D65060873686F727463757405416C69676E07055269676874064C + 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 + 00000000C002400D4D617267696E732E52696768740500000000000000C00140 + 0A506F736974696F6E2E580500000000001CC7BD04400A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000008EE3 + F003401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465165465787453 + 657474696E67732E486F727A416C69676E07074C656164696E67000007544C61 + 796F757400095374796C654E616D6506077375626D61726B05416C69676E0705 + 52696768740A506F736974696F6E2E580500000000008EE3CE05400A53697A65 + 2E57696474680500000000000000A003400B53697A652E486569676874050000 + 0000008EE3F003401453697A652E506C6174666F726D44656661756C74080005 + 54506174680005416C69676E070643656E74657209446174612E506174680A34 + 0000000400000000000000000000000000000001000000000000000000803F01 + 0000000000803F0000003F0300000000000000000000000A46696C6C2E436F6C + 6F720708636C615768697465064C6F636B6564090748697454657374080A5369 + 7A652E57696474680500000000000000C001400B53697A652E48656967687405 + 00000000000000A002401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F + 757400095374796C654E616D6506126D656E75736570617261746F727374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080756697369626C65080005544C69 + 6E650005416C69676E0703546F70084C696E65547970650703546F700C4D6172 + 67696E732E4C656674050000000000000080FFBF0B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 0080FFBF0A506F736974696F6E2E58050000000000000080FFBF0A506F736974 + 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 + 000000D004400B53697A652E486569676874050000000000000080FF3F145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000000545046300A5452656374616E676C65000953 + 74796C654E616D65060D6D656E75766965777374796C6505416C69676E070643 + 656E7465720A46696C6C2E436F6C6F7207097846463230323032300A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F7207097846463135313531350756697369626C650800 + 0A5452656374616E676C650005416C69676E0706436C69656E740A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000D54536861646F77456666 + 656374000844697374616E636505000000000000008001400944697265637469 + 6F6E0500000000000000B4044008536F66746E657373050000000000000080FE + 3F074F706163697479050000000000000080FE3F0B536861646F77436F6C6F72 + 0708636C61426C61636B00000007544C61796F757400095374796C654E616D65 + 0607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E + 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 + 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E + 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 + 696474680500000000000000C004400B53697A652E4865696768740500000000 + 000000C004401453697A652E506C6174666F726D44656661756C740800000054 + 50463007544C61796F757400095374796C654E616D65060E696D61676563656C + 6C7374796C6505416C69676E070643656E7465720756697369626C6508000654 + 496D61676500095374796C654E616D650605696D6167650E4D756C7469526573 + 4269746D61700E01000005416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000000000C004 + 400B53697A652E4865696768740500000000000000C004401453697A652E506C + 6174666F726D44656661756C74080000005450463007544C61796F7574000953 + 74796C654E616D65060E706F70757063656C6C7374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000BB06400B53697A + 652E4865696768740500000000000000AE04401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C65080007544C61796F75740005416C69 + 676E070552696768740A506F736974696F6E2E580500000000000000AC06400A + 53697A652E57696474680500000000000000F002400B53697A652E4865696768 + 740500000000000000AE04401453697A652E506C6174666F726D44656661756C + 7408000554506174680005416C69676E070643656E74657209446174612E5061 + 74680A400000000500000000000000000000000000803F010000000000803F00 + 00803F010000000000003F0000000001000000000000000000803F0300000000 + 000000000000000A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080B4D617267696E732E546F700500000000000000E001C00A53697A + 652E576964746805000000000000008002400B53697A652E4865696768740500 + 0000000000008001401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6500000554506174680005416C69676E + 070643656E74657209446174612E506174680A34000000040000000000000000 + 00000000000000010000000000803F00000000010000000000003F0000803F03 + 00000000000000000000000A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080B4D617267696E732E546F700500000000000000C00140 + 0A53697A652E576964746805000000000000008002400B53697A652E48656967 + 687405000000000000008001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650000000554546578740009 + 5374796C654E616D6506047465787405416C69676E0706436C69656E74064C6F + 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 + 000000A001400B4D617267696E732E546F7005000000000000008000400D4D61 + 7267696E732E52696768740500000000000000A001400E4D617267696E732E42 + 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 + 000000A206400B53697A652E48656967687405000000000000009E0440145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D65060D7465787463656C6C7374796C6505416C + 69676E070643656E7465720756697369626C65080007544C61796F7574000953 + 74796C654E616D650607636F6E74656E7405416C69676E0708436F6E74656E74 + 73064C6F636B6564090C4D617267696E732E4C65667405000000000000008001 + 400B4D617267696E732E546F7005000000000000008001400D4D617267696E73 + 2E526967687405000000000000008001400E4D617267696E732E426F74746F6D + 05000000000000008001400A53697A652E57696474680500000000000000A804 + 400B53697A652E4865696768740500000000000000A804401453697A652E506C + 6174666F726D44656661756C740800000C5442727573684F626A656374000953 + 74796C654E616D65060A666F726567726F756E6400000C5442727573684F626A + 65637400095374796C654E616D65060973656C656374696F6E0B42727573682E + 436F6C6F72070978393632413832453200000B54466F6E744F626A6563740009 + 5374796C654E616D650604666F6E740000005450463007544C61796F75740009 + 5374796C654E616D6506096D656D6F7374796C6505416C69676E070643656E74 + 65720A53697A652E5769647468050000000000CCCC8806400B53697A652E4865 + 696768740500000000006666F405401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508000C5442727573684F626A65637400095374 + 796C654E616D65060A666F726567726F756E6400000C5442727573684F626A65 + 637400095374796C654E616D65060973656C656374696F6E0B42727573682E43 + 6F6C6F72070978374634343735394400000B54466F6E744F626A656374000953 + 74796C654E616D650604666F6E7400000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E5769647468050000000000CCCC8806400B53697A652E486569 + 6768740500000000006666F405401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C + 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 + 06436C69656E740C4D617267696E732E4C65667405000000000000008000400B + 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 + 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 + 0000000000008000400A53697A652E57696474680500000000009899E905400B + 53697A652E4865696768740500000000006666CC05401453697A652E506C6174 + 666F726D44656661756C740800000A545363726F6C6C42617200095374796C65 + 4E616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D0643 + 7572736F72070763724172726F770B536D616C6C4368616E6765050000000000 + 00000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F + 736974696F6E2E590500000000006666D405400A53697A652E57696474680500 + 00000000CCCC8806400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000A545363726F6C6C + 42617200095374796C654E616D65060A767363726F6C6C62617205416C69676E + 0705526967687406437572736F72070763724172726F770B536D616C6C436861 + 6E676505000000000000000000000B4F7269656E746174696F6E070856657274 + 6963616C0A506F736974696F6E2E580500000000009899F105400A53697A652E + 576964746805000000000000008003400B53697A652E48656967687405000000 + 00006666D405401453697A652E506C6174666F726D44656661756C7408000007 + 544C61796F75740005416C69676E0706436C69656E740A53697A652E57696474 + 680500000000009899F105400B53697A652E4865696768740500000000006666 + D405401453697A652E506C6174666F726D44656661756C7408000F54536D616C + 6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C736372 + 6F6C6C62617205416C69676E0705526967687406437572736F72070763724172 + 726F770B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E0708566572746963616C0C4D617267696E732E4C656674050000 + 00000000008000400A53697A652E576964746805000000000000008002400B53 + 697A652E48656967687405000000000000008002401453697A652E506C617466 + 6F726D44656661756C74080756697369626C650800000F54536D616C6C536372 + 6F6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C62 + 617205416C69676E0706426F74746F6D06437572736F72070763724172726F77 + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000 + 0000008000400A53697A652E576964746805000000000000009606400B53697A + 652E48656967687405000000000000008002401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C65080000000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D6506146D656D6F5374726F6B65416E696D + 6174696F6E31084475726174696F6E050000000000000000000007496E766572 + 7365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53 + 7461727456616C756507097846463135313531350953746F7056616C75650709 + 7846463430343034300754726967676572062049734D6F7573654F7665723D74 + 7275653B4973466F63757365643D66616C73650E54726967676572496E766572 + 7365062149734D6F7573654F7665723D66616C73653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D6506146D656D6F5374726F6B65416E696D6174696F6E32084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060C5374726F6B + 652E436F6C6F720A537461727456616C75650709784646343034303430095374 + 6F7056616C756507097846463241383245320754726967676572060E4973466F + 63757365643D747275650E54726967676572496E7665727365060F4973466F63 + 757365643D66616C7365000000005450463007544C61796F757400095374796C + 654E616D65060E6C696E6B6C6162656C7374796C6505416C69676E070643656E + 7465720A53697A652E5769647468050000000000CCCC8006400B53697A652E48 + 65696768740500000000009A998104401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C65080005545465787400095374796C654E616D + 6506047465787405416C69676E0708436F6E74656E7473074869745465737408 + 0A53697A652E5769647468050000000000CCCC8006400B53697A652E48656967 + 68740500000000009A998104401453697A652E506C6174666F726D4465666175 + 6C74081A5465787453657474696E67732E466F6E742E5374796C654578740A0D + 00000004040000000000000004000000165465787453657474696E67732E466F + 6E74436F6C6F72070D636C61446F64676572626C7565000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E315374796C65084475726174696F6E050000000000000000000007496E76 + 65727365090C50726F70657274794E616D6506165465787453657474696E6773 + 2E466F6E74436F6C6F720A537461727456616C7565070D636C61446F64676572 + 626C75650953746F7056616C7565070E636C6144656570736B79626C75650754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E325374796C65084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D6506165465787453657474696E67732E466F6E + 74436F6C6F720A537461727456616C7565070E636C6144656570736B79626C75 + 650953746F7056616C756507097846463137353739430754726967676572062F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D66616C736500000000545046300A5452656374616E67 + 6C6500095374796C654E616D65060E7374617475736261727374796C6505416C + 69676E070643656E7465720C436C69704368696C6472656E090A46696C6C2E43 + 6F6C6F7207097846463235323532350748697454657374080553696465730B03 + 546F70000A53697A652E57696474680500000000000000F004400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 56697369626C65080007544C61796F757400095374796C654E616D6506074C61 + 796F75743105416C69676E070552696768740A506F736974696F6E2E58050000 + 00000000008C04400A53697A652E57696474680500000000000000C803400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C740800095453697A654772697000095374796C654E616D + 65060973697A65677267697005416C69676E0706426F74746F6D0A506F736974 + 696F6E2E590500000000000000C803400A53697A652E57696474680500000000 + 000000C803400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C7408000000005450463007544C6179 + 6F757400095374796C654E616D65060C7370696E626F787374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000006666E00540 + 0B53697A652E4865696768740500000000000000C003401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A + 53697A652E57696474680500000000006666E005400B53697A652E4865696768 + 740500000000000000C003401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E69 + 6D6174696F6E315374796C65084475726174696F6E0500000000000000000000 + 07496E7665727365090C50726F70657274794E616D65060C5374726F6B652E43 + 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 + 616C756507097846463430343034300754726967676572061049734D6F757365 + 4F7665723D747275650E54726967676572496E7665727365061149734D6F7573 + 654F7665723D66616C73650000000C5442727573684F626A6563740009537479 + 6C654E616D65060A666F726567726F756E640B42727573682E436F6C6F720709 + 78464645414541454100000C5442727573684F626A65637400095374796C654E + 616D65060973656C656374696F6E0B42727573682E436F6C6F72070978393632 + 4138324532000007544C61796F757400095374796C654E616D650607636F6E74 + 656E7405416C69676E0706436C69656E74064C6F636B6564090C4D617267696E + 732E4C65667405000000000000008000400B4D617267696E732E546F70050000 + 00000000008000400D4D617267696E732E526967687405000000000000008000 + 400E4D617267696E732E426F74746F6D05000000000000008000400A53697A65 + 2E5769647468050000000000CCCCF004400B53697A652E486569676874050000 + 0000000000A003401453697A652E506C6174666F726D44656661756C74080000 + 0754427574746F6E00095374796C654E616D65060B6D696E7573627574746F6E + 05416C69676E07044C6566740843616E466F6375730806437572736F72070763 + 724172726F770C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A506F736974696F6E2E5805000000000000008000400A50 + 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 + 00000000000000A003400B53697A652E4865696768740500000000000000A003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B7570060B627574746F6E7374796C65000554506174680005416C69676E0706 + 43656E74657209446174612E506174680A400000000500000000000000000080 + 3F00000000010000000000803F0000803F01000000000000000000003F010000 + 000000803F00000000030000000000803F000000000A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080A53697A652E57696474680500 + 0000000000008002400B53697A652E4865696768740500000000000000800240 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E650000000754427574746F6E00095374796C654E616D65060A + 706C7573627574746F6E05416C69676E070552696768740843616E466F637573 + 0806437572736F72070763724172726F770C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E526967687405000000000000008000400E4D617267696E + 732E426F74746F6D05000000000000008000400A506F736974696F6E2E580500 + 000000006666B405400A506F736974696F6E2E5905000000000000008000400A + 53697A652E57696474680500000000000000A003400B53697A652E4865696768 + 740500000000000000A003401453697A652E506C6174666F726D44656661756C + 74080B5374796C654C6F6F6B7570060B627574746F6E7374796C650005545061 + 74680005416C69676E070643656E74657209446174612E506174680A34000000 + 0400000000000000000000000000000001000000000000000000803F01000000 + 0000803F0000003F0300000000000000000000000A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080A53697A652E5769647468050000 + 00000000008002400B53697A652E486569676874050000000000000080024014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000000005450463007544C61796F757400095374796C654E61 + 6D65060D73697A65677269707374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000000C803400B53697A652E4865696768 + 740500000000000000C803401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653105416C69676E070643656E7465720A46696C + 6C2E436F6C6F7207097846463630363036300A53697A652E5769647468050000 + 0000000000A000400B53697A652E4865696768740500000000000000A0004014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D6506 + 0A52656374616E676C653205416C69676E070643656E7465720A46696C6C2E43 + 6F6C6F7207097846463630363036300C4D617267696E732E4C65667405000000 + 00000000A002400A53697A652E57696474680500000000000000A000400B5369 + 7A652E4865696768740500000000000000A000401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6533 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463630 + 363036300C4D617267696E732E4C6566740500000000000000A002400B4D6172 + 67696E732E546F700500000000000000A002400A53697A652E57696474680500 + 000000000000A000400B53697A652E4865696768740500000000000000A00040 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D65 + 060A52656374616E676C653405416C69676E070643656E7465720A46696C6C2E + 436F6C6F7207097846463630363036300B4D617267696E732E546F7005000000 + 00000000A002400A53697A652E57696474680500000000000000A000400B5369 + 7A652E4865696768740500000000000000A000401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6535 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463630 + 363036300B4D617267696E732E546F700500000000000000A002400D4D617267 + 696E732E52696768740500000000000000A002400A53697A652E576964746805 + 00000000000000A000400B53697A652E4865696768740500000000000000A000 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653605416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463630363036300C4D617267696E732E4C6566740500 + 000000000000A002400E4D617267696E732E426F74746F6D0500000000000000 + A002400A53697A652E57696474680500000000000000A000400B53697A652E48 + 65696768740500000000000000A000401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000000545046300A + 5452656374616E676C6500095374796C654E616D65060C746F6F6C6261727374 + 796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463235323532350748697454657374080553696465730B06426F74746F6D000A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135075669736962 + 6C650800005450463007544C61796F757400095374796C654E616D6506157072 + 6F67726573736261726572726F727374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508000A5452656374616E676C6500095374796C65 + 4E616D65060668747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000A + 5452656374616E676C6500095374796C654E616D65060A68696E64696361746F + 7205416C69676E07044C6566740A46696C6C2E436F6C6F720709784646453232 + 413241064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E + 58050000000000000080FF3F0A506F736974696F6E2E59050000000000000080 + FF3F0A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000009999D904401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452656374 + 616E676C6500095374796C654E616D65060676747261636B05416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 33338505400B53697A652E4865696768740500000000009999E104401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000A5452656374616E676C6500095374796C654E616D + 65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C + 2E436F6C6F720709784646453232413241064C6F636B65640907486974546573 + 74080C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F736974 + 696F6E2E5905000000000099998904400A53697A652E57696474680500000000 + 0033338105400B53697A652E4865696768740500000000000000A80340145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000000005450463007544C61796F757400095374796C654E616D65 + 060F64726F707461726765747374796C6505416C69676E070643656E7465720A + 53697A652E5769647468050000000000ACAAD905400B53697A652E4865696768 + 740500000000000000CF05401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508000A5452656374616E676C650005416C69676E0708 + 436F6E74656E74730946696C6C2E4B696E6407044E6F6E650748697454657374 + 080A53697A652E5769647468050000000000ACAAD905400B53697A652E486569 + 6768740500000000000000CF05401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F720708636C615768697465105374726F + 6B652E546869636B6E65737305000000000000008001400B5374726F6B652E44 + 61736807044461736807585261646975730500000000000000C0024007595261 + 646975730500000000000000C002400005545465787400095374796C654E616D + 6506047465787405416C69676E0706426F74746F6D0748697454657374080C4D + 617267696E732E4C6566740500000000000000A002400D4D617267696E732E52 + 696768740500000000000000A002400A506F736974696F6E2E58050000000000 + 0000A002400A506F736974696F6E2E590500000000000000D604400A53697A65 + 2E5769647468050000000000ACAAB105400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74081654 + 65787453657474696E67732E466F6E74436F6C6F720708636C61576869746500 + 00001254466C6F61744B6579416E696D6174696F6E00084475726174696F6E05 + 0000000000999999FE3F044B6579730E010001034B6579050000000000000080 + FE3F0556616C75650500000000000000A003C00001034B657905000000000000 + 0080FF3F0000044C6F6F70090C50726F70657274794E616D65060B5061646469 + 6E672E546F7010537461727446726F6D43757272656E74080754726967676572 + 060F4973447261674F7665723D7472756500000554506174680005416C69676E + 070643656E74657209446174612E506174680AC4000000100000000000000008 + EC8343F087A4430100000008EC8343083CFB430200000035BE7143504DF94302 + 00000012835C43A8E6F54302000000F0674943F803F1430100000008EC8343FC + 0116440100000008EC8343FC5116440100000000408443FC5116440100000010 + 689A43FC412B4401000000081CD043F803F14302000000915DC64321E0F54302 + 000000919DBB439643F94302000000087CB043F833FB4301000000087CB043F0 + 87A4430100000008EC8343F087A4430300000000000000000000000A46696C6C + 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000100C804401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E650000005450463007544C61796F7574000953 + 74796C654E616D65061464726F707461726765746669656C647374796C650541 + 6C69676E070643656E7465720A53697A652E576964746805000000000000A08A + 07400B53697A652E4865696768740500000000000000B204401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 + 6E0706436C69656E740946696C6C2E4B696E6407044E6F6E6507486974546573 + 74080A53697A652E576964746805000000000000A08A07400B53697A652E4865 + 696768740500000000000000B204401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646324138324532000554 + 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 + 656E740748697454657374080A53697A652E576964746805000000000000809A + 05400B53697A652E4865696768740500000000000000B204401453697A652E50 + 6C6174666F726D44656661756C7408165465787453657474696E67732E466F6E + 74436F6C6F720708636C615768697465000007544C61796F757400095374796C + 654E616D6506074C61796F75743105416C69676E07044C6566740A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000B204401453697A652E506C6174666F726D44656661756C7408000554 + 5061746800095374796C654E616D650605506174683105416C69676E07064365 + 6E74657209446174612E506174680A24010000180000000000000073B8AC43C1 + 4A7843010000006D2717435849DD430200000086CB0A431078E3430200000096 + 83ED421078E34302000000DACED4425849DD43020000009A19BC42081CD74302 + 0000009A19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385 + EB61430100000068D1D4426811584202000000281CBC42CAA126420200000028 + 1CBC42E6FBAC410200000068D1D442D04D144102000000A886ED429CC245C002 + 000000CCCC0A439CC245C002000000B4281743D04D14410100000016B9AC4391 + 8D4B4302000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F + 5AB14343EB614302000000A05AB1439C046A4302000000FACEAF43711D724302 + 00000073B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080A53697A652E5769647468 + 0500000000000000F002400B53697A652E4865696768740500000000000000F0 + 02401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6508577261704D6F646507034669740000055450617468 + 00095374796C654E616D650605506174683205416C69676E070643656E746572 + 09446174612E506174680A24010000180000000000000073B8AC43C14A784301 + 0000006D2717435849DD430200000086CB0A431078E343020000009683ED4210 + 78E34302000000DACED4425849DD43020000009A19BC42081CD743020000009A + 19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385EB614301 + 00000068D1D4426811584202000000281CBC42CAA1264202000000281CBC42E6 + FBAC410200000068D1D442D04D144102000000A886ED429CC245C002000000CC + CC0A439CC245C002000000B4281743D04D14410100000016B9AC43918D4B4302 + 000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB14343 + EB614302000000A05AB1439C046A4302000000FACEAF43711D72430200000073 + B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080C4D617267696E732E4C6566740500 + 000000000000A004400A53697A652E57696474680500000000000000F002400B + 53697A652E4865696768740500000000000000F002401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650857 + 7261704D6F64650703466974000005545061746800095374796C654E616D6506 + 05506174683305416C69676E070643656E74657209446174612E506174680A24 + 010000180000000000000073B8AC43C14A7843010000006D2717435849DD4302 + 00000086CB0A431078E343020000009683ED421078E34302000000DACED44258 + 49DD43020000009A19BC42081CD743020000009A19BC424C17CD4302000000DA + CED4421DEAC64301000000B4288B4385EB61430100000068D1D4426811584202 + 000000281CBC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D0 + 4D144102000000A886ED429CC245C002000000CCCC0A439CC245C002000000B4 + 281743D04D14410100000016B9AC43918D4B4302000000BECFAF43A5BB514302 + 0000009F5AB143F1D25943020000009F5AB14343EB614302000000A05AB1439C + 046A4302000000FACEAF43711D72430200000073B8AC43C14A78430300000073 + B8AC43C14A78430A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080D4D617267696E732E52696768740500000000000000A004400A53 + 697A652E57696474680500000000000000F002400B53697A652E486569676874 + 0500000000000000F002401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 + 7400000007544C61796F757400095374796C654E616D6506074C61796F757432 + 05416C69676E070552696768740A506F736974696F6E2E580500000000000040 + B106400A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000B204401453697A652E506C6174666F726D4465 + 6661756C74080005545061746800095374796C654E616D650605506174683105 + 416C69676E070643656E74657209446174612E506174680A2401000018000000 + 0000000073B8AC43C14A7843010000006D2717435849DD430200000086CB0A43 + 1078E343020000009683ED421078E34302000000DACED4425849DD4302000000 + 9A19BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEAC643 + 01000000B4288B4385EB61430100000068D1D4426811584202000000281CBC42 + CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D144102000000 + A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D1441 + 0100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5AB143 + F1D25943020000009F5AB14343EB614302000000A05AB1439C046A4302000000 + FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A7843 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D52 + 6F746174696F6E416E676C650500000000000000B406400A53697A652E576964 + 74680500000000000000F002400B53697A652E48656967687405000000000000 + 00F002401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6508577261704D6F64650703466974000005545061 + 746800095374796C654E616D650605506174683205416C69676E070643656E74 + 657209446174612E506174680A24010000180000000000000073B8AC43C14A78 + 43010000006D2717435849DD430200000086CB0A431078E343020000009683ED + 421078E34302000000DACED4425849DD43020000009A19BC42081CD743020000 + 009A19BC424C17CD4302000000DACED4421DEAC64301000000B4288B4385EB61 + 430100000068D1D4426811584202000000281CBC42CAA1264202000000281CBC + 42E6FBAC410200000068D1D442D04D144102000000A886ED429CC245C0020000 + 00CCCC0A439CC245C002000000B4281743D04D14410100000016B9AC43918D4B + 4302000000BECFAF43A5BB5143020000009F5AB143F1D25943020000009F5AB1 + 4343EB614302000000A05AB1439C046A4302000000FACEAF43711D7243020000 + 0073B8AC43C14A78430300000073B8AC43C14A78430A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080C4D617267696E732E4C656674 + 0500000000000000A004400D526F746174696F6E416E676C6505000000000000 + 00B406400A53697A652E57696474680500000000000000F002400B53697A652E + 4865696768740500000000000000F002401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F + 64650703466974000005545061746800095374796C654E616D65060550617468 + 3305416C69676E070643656E74657209446174612E506174680A240100001800 + 00000000000073B8AC43C14A7843010000006D2717435849DD430200000086CB + 0A431078E343020000009683ED421078E34302000000DACED4425849DD430200 + 00009A19BC42081CD743020000009A19BC424C17CD4302000000DACED4421DEA + C64301000000B4288B4385EB61430100000068D1D4426811584202000000281C + BC42CAA1264202000000281CBC42E6FBAC410200000068D1D442D04D14410200 + 0000A886ED429CC245C002000000CCCC0A439CC245C002000000B4281743D04D + 14410100000016B9AC43918D4B4302000000BECFAF43A5BB5143020000009F5A + B143F1D25943020000009F5AB14343EB614302000000A05AB1439C046A430200 + 0000FACEAF43711D72430200000073B8AC43C14A78430300000073B8AC43C14A + 78430A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0D4D617267696E732E52696768740500000000000000A004400D526F74617469 + 6F6E416E676C650500000000000000B406400A53697A652E5769647468050000 + 0000000000F002400B53697A652E4865696768740500000000000000F0024014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6508577261704D6F646507034669740000000000545046300754 + 4C61796F757400095374796C654E616D65060C706F706F7665727374796C6505 + 416C69676E070643656E7465720756697369626C6508000A5452656374616E67 + 6C6500095374796C654E616D650602626705416C69676E0706436C69656E740A + 46696C6C2E436F6C6F7207097846463230323032300748697454657374080A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F + 757400095374796C654E616D650607636F6E74656E7405416C69676E0706436C + 69656E740C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 + 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 + 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F0A53697A652E57696474680500000000000000C004400B53697A + 652E4865696768740500000000000000C004401453697A652E506C6174666F72 + 6D44656661756C740800000D54536861646F7745666665637400084469737461 + 6E63650500000000000000C0004009446972656374696F6E0500000000000000 + B4054008536F66746E657373050000000000000080FE3F074F70616369747905 + 0000000000000080FE3F0B536861646F77436F6C6F720708636C61426C61636B + 000000005450463007544C61796F757400095374796C654E616D65060D706F70 + 7570626F787374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000080C406400B53697A652E486569676874050000000000 + 0000D404401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080A53697A652E57696474 + 680500000000000080C406400B53697A652E4865696768740500000000000000 + D404401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 0953746F7056616C756507097846463430343034300754726967676572062049 + 734D6F7573654F7665723D747275653B4973507265737365643D66616C73650E + 54726967676572496E7665727365062149734D6F7573654F7665723D66616C73 + 653B4973507265737365643D66616C736500000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3253 + 74796C65084475726174696F6E05000000000000000000000C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464632413832453207547269 + 67676572062049734D6F7573654F7665723D747275653B497350726573736564 + 3D747275653B0E54726967676572496E7665727365062049734D6F7573654F76 + 65723D747275653B4973507265737365643D66616C736500000007544C61796F + 75740005416C69676E070552696768740A506F736974696F6E2E580500000000 + 000080B506400A53697A652E57696474680500000000000000F002400B53697A + 652E4865696768740500000000000000D404401453697A652E506C6174666F72 + 6D44656661756C7408000554506174680005416C69676E070643656E74657209 + 446174612E506174680A400000000500000000000000000000000000803F0100 + 00000000803F0000803F010000000000003F0000000001000000000000000000 + 803F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080B4D617267696E732E546F700500000000000000 + E001C00A53697A652E576964746805000000000000008002400B53697A652E48 + 656967687405000000000000008001401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000055450617468 + 0005416C69676E070643656E74657209446174612E506174680A340000000400 + 0000000000000000000000000000010000000000803F00000000010000000000 + 003F0000803F0300000000000000000000000A46696C6C2E436F6C6F72070863 + 6C6157686974650748697454657374080B4D617267696E732E546F7005000000 + 00000000C001400A53697A652E576964746805000000000000008002400B5369 + 7A652E48656967687405000000000000008001401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000005 + 545465787400095374796C654E616D6506047465787405416C69676E0706436C + 69656E740748697454657374080C4D617267696E732E4C656674050000000000 + 000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D6172 + 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F + 74746F6D050000000000000080FF3F0A53697A652E5769647468050000000000 + 0080B306400B53697A652E4865696768740500000000000000CC04401453697A + 652E506C6174666F726D44656661756C7408165465787453657474696E67732E + 466F6E74436F6C6F720708636C615768697465000000545046300A5452656374 + 616E676C6500095374796C654E616D6506147374617475736261726E6F677269 + 707374796C6505416C69676E070643656E7465720C436C69704368696C647265 + 6E090A46696C6C2E436F6C6F7207097846463235323532350553696465730B03 + 546F70000A53697A652E57696474680500000000000000F004400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 56697369626C650800005450463007544C61796F757400095374796C654E616D + 650613736D616C6C7363726F6C6C6261727374796C6505416C69676E07064365 + 6E7465720756697369626C6508000654547261636B00095374796C654E616D65 + 060668747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F + 7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C804401453697A652E506C6174666F726D44656661756C74080B5374796C654C + 6F6F6B757006147363726F6C6C62617268747261636B7374796C650000065454 + 7261636B00095374796C654E616D65060676747261636B05416C69676E070643 + 6C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A + 6F6E74616C0A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C62617276 + 747261636B7374796C650000005450463007544C61796F757400095374796C65 + 4E616D65060D73706C69747465727374796C6505416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000A904400B53697A652E486569 + 6768740500000000000080C105401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508000A5452656374616E676C6500095374796C65 + 4E616D65060A52656374616E676C653105416C69676E0706436C69656E740A46 + 696C6C2E436F6C6F720709784646333033303330074869745465737408055369 + 6465730B044C656674055269676874000A53697A652E57696474680500000000 + 000000A904400B53697A652E4865696768740500000000000080C10540145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000007544C61796F757400095374796C654E616D65 + 06064C61796F757405416C69676E0706436C69656E740A53697A652E57696474 + 680500000000000000A904400B53697A652E4865696768740500000000000080 + C105401453697A652E506C6174666F726D44656661756C74080007544C61796F + 757400095374796C654E616D6506046772697005416C69676E070A5665727443 + 656E746572064C6F636B6564090A506F736974696F6E2E590500000000000000 + 8004400A53697A652E57696474680500000000000000A904400B53697A652E48 + 656967687405000000000000008004401453697A652E506C6174666F726D4465 + 6661756C7408000754436972636C6500095374796C654E616D65060743697263 + 6C653305416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463430343034300748697454657374080E4D617267696E732E426F74746F6D05 + 00000000000000A003400A53697A652E57696474680500000000000000E00140 + 0B53697A652E4865696768740500000000000000E001401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 353135313500000754436972636C6500095374796C654E616D65060743697263 + 6C653205416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463430343034300748697454657374080B4D617267696E732E546F7005000000 + 00000000A003400A53697A652E57696474680500000000000000E001400B5369 + 7A652E4865696768740500000000000000E001401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 313500000754436972636C6500095374796C654E616D650607436972636C6531 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463430 + 343034300748697454657374080A53697A652E57696474680500000000000000 + E001400B53697A652E4865696768740500000000000000E001401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 464631353135313500000000005450463007544C61796F757400095374796C65 + 4E616D650610636C6F7365627574746F6E7374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000A5452656374616E676C6500095374 + 796C654E616D65060B636C6F7365627574746F6E05416C69676E0706436C6965 + 6E740A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E315374796C65084475726174696F6E05000000000000000000000C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646464636313537 + 0754726967676572062049734D6F7573654F7665723D747275653B4973507265 + 737365643D66616C73650E54726967676572496E7665727365062149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E325374796C65084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846464646363135370953746F7056616C756507097846 + 464532344634350754726967676572061F49734D6F7573654F7665723D747275 + 653B4973507265737365643D747275650E54726967676572496E766572736506 + 2049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 6500000005545061746800095374796C654E616D650605506174683105416C69 + 676E070643656E74657209446174612E506174680AC400000010000000000000 + 000000A0C00000704101000000000070410000A0C001000000000048420000F0 + 41010000000000AA420000A0C0010000000000D242000070410100000000008C + 4200004842010000000000D2420000B442010000000000AA420000DC42020000 + 003BDF34429E6F8C4202000000FE547D427FAAB0420200000000004842000096 + 4201000000000070410000DC42010000000000A0C00000B442010000000000F0 + 4100005C42010000000000A0C000007041030000000000A0C0000070410A4669 + 6C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000A002401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 + 095374796C654E616D65060E6D6178627574746F6E7374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508000A5452656374616E676C65 + 00095374796C654E616D6506096D6178627574746F6E05416C69676E0706436C + 69656E740A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464632413832 + 45320754726967676572062049734D6F7573654F7665723D747275653B497350 + 7265737365643D66616C73650E54726967676572496E7665727365062149734D + 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C + 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463241383245320953746F7056616C75650709 + 7846463137353739430754726967676572061F49734D6F7573654F7665723D74 + 7275653B4973507265737365643D747275650E54726967676572496E76657273 + 65062049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C736500000005545061746800095374796C654E616D65060550617468310541 + 6C69676E070643656E74657209446174612E506174680A580000000700000000 + 0000000000C8420000C8420100000000002F440000C8420100000000002F4400 + 002F44010000000080094400800944010000000080094400007A430100000000 + 007A4300007A43030000000000C8420000C8420A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080A53697A652E576964746805000000 + 00000000A002400B53697A652E4865696768740500000000000000A002401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650000005450463007544C61796F757400095374796C654E616D65 + 060E726573627574746F6E7374796C6505416C69676E070643656E7465720A53 + 697A652E57696474680500000000000000C804400B53697A652E486569676874 + 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508000A5452656374616E676C6500095374796C654E616D + 650609726573627574746F6E05416C69676E0706436C69656E740A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646323032 + 3032300953746F7056616C756507097846463241383245320754726967676572 + 062049734D6F7573654F7665723D747275653B4973507265737365643D66616C + 73650E54726967676572496E7665727365062149734D6F7573654F7665723D66 + 616C73653B4973507265737365643D66616C736500000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F + 6E325374796C65084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463241383245320953746F7056616C7565070978464631373537394307 + 54726967676572061F49734D6F7573654F7665723D747275653B497350726573 + 7365643D747275650E54726967676572496E7665727365062049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C736500000005545061 + 746800095374796C654E616D650605506174683105416C69676E070643656E74 + 657209446174612E506174680A5800000007000000000000000000C8420000C8 + 420100000000002F440000C8420100000000002F4400002F4401000000008009 + 4400800944010000000080094400007A430100000000007A4300007A43030000 + 000000C8420000C8420A46696C6C2E436F6C6F720708636C6157686974650748 + 697454657374080D526F746174696F6E416E676C650500000000000000B40640 + 0A53697A652E57696474680500000000000000A002400B53697A652E48656967 + 68740500000000000000A002401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61 + 796F757400095374796C654E616D65060E6D696E627574746F6E7374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 + 616E676C6500095374796C654E616D6506096D696E627574746F6E05416C6967 + 6E0706436C69656E740A46696C6C2E436F6C6F72070978464632303230323007 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E315374796C65084475726174696F6E0500000000000000 + 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 463241383245320754726967676572062049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C73650E54726967676572496E7665727365 + 062149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463241383245320953746F705661 + 6C756507097846463137353739430754726967676572061F49734D6F7573654F + 7665723D747275653B4973507265737365643D747275650E5472696767657249 + 6E7665727365062049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C736500000005545061746800095374796C654E616D6506055061 + 74683105416C69676E070643656E74657209446174612E506174680A40000000 + 050000000000000000002F44008009440100000000002F4400002F4401000000 + 0000C84200002F44010000000000C842008009440300000000002F4400800944 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080B4D + 617267696E732E546F700500000000000000A002400D526F746174696F6E416E + 676C650500000000000000B406400A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000C000401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650000005450463007544C61796F757400095374796C654E616D65060F74 + 6F6F6C77696E646F777374796C6505416C69676E070643656E7465720A53697A + 652E576964746805000000000056D5AF07400B53697A652E4865696768740500 + 000000000000B306401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 + 046D61736B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 07097846463130313031300A53697A652E576964746805000000000056D5AF07 + 400B53697A652E4865696768740500000000000000B306401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0756697369626C6508000007544C61796F757400095374796C654E616D650604 + 6C65667405416C69676E07084D6F73744C656674064C6F636B6564090A506F73 + 6974696F6E2E590500000000000000C803400A53697A652E5769647468050000 + 0000000000A001400B53697A652E48656967687405000000000000009A064014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 650005416C69676E07084D6F73744C6566740A46696C6C2E436F6C6F72070978 + 46463230323032300748697454657374080553696465730B044C656674055269 + 676874000A53697A652E57696474680500000000000000A001400B53697A652E + 48656967687405000000000000009506401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 + 6C653105416C69676E070A4D6F7374426F74746F6D13456E61626C6544726167 + 486967686C69676874080A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080A506F736974696F6E2E59050000000000000095064005 + 53696465730B044C65667406426F74746F6D000A53697A652E57696474680500 + 000000000000A001400B53697A652E4865696768740500000000000000A00140 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F7207097846463135313531350007544C61796F757400095374796C654E61 + 6D6506074C61796F75743305416C69676E07094D6F737452696768740A506F73 + 6974696F6E2E5805000000000000008001400A53697A652E5769647468050000 + 000000000080FF3F0B53697A652E4865696768740500000000000000A0014014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 6500095374796C654E616D65060A52656374616E676C653105416C69676E0703 + 546F700A46696C6C2E436F6C6F72070978464631353135313507486974546573 + 74080A53697A652E5769647468050000000000000080FF3F0B53697A652E4865 + 69676874050000000000000080FF3F1453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000000007544C61 + 796F757400095374796C654E616D650605726967687405416C69676E07094D6F + 73745269676874064C6F636B6564090A506F736974696F6E2E58050000000000 + 5655AD07400A506F736974696F6E2E590500000000000000C803400A53697A65 + 2E57696474680500000000000000A001400B53697A652E486569676874050000 + 00000000009A06401453697A652E506C6174666F726D44656661756C7408000A + 5452656374616E676C650005416C69676E07094D6F737452696768740A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080553696465 + 730B044C656674055269676874000A53697A652E576964746805000000000000 + 00A001400B53697A652E48656967687405000000000000009506401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653105416C69676E070A4D6F7374426F74746F6D13 + 456E61626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A506F736974696F6E2E590500 + 0000000000009506400553696465730B06426F74746F6D055269676874000A53 + 697A652E57696474680500000000000000A001400B53697A652E486569676874 + 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350007544C61796F + 757400095374796C654E616D6506074C61796F75743305416C69676E07084D6F + 73744C6566740A53697A652E5769647468050000000000000080FF3F0B53697A + 652E4865696768740500000000000000A001401453697A652E506C6174666F72 + 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 + 060A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F6C + 6F7207097846463135313531350748697454657374080A53697A652E57696474 + 68050000000000000080FF3F0B53697A652E4865696768740500000000000000 + 80FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000000000A5452656374616E676C650005416C69 + 676E07074D6F7374546F700A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000056D5AF07400B53697A652E4865696768740500000000000000C8034014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F7207097846463135313531350007544C61796F757400095374796C654E616D + 65060763617074696F6E05416C69676E0708436F6E74656E7473064C6F636B65 + 64090748697454657374090A53697A652E576964746805000000000056D5AF07 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C7408000007544C61796F75740005416C69676E07 + 06436C69656E74064C6F636B6564090C4D617267696E732E4C65667405000000 + 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D + 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E + 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 + 000056D5AE07400B53697A652E4865696768740500000000000000B803401453 + 697A652E506C6174666F726D44656661756C74080007544C61796F7574000541 + 6C69676E07044C656674064C6F636B6564090A53697A652E5769647468050000 + 00000000009002400B53697A652E4865696768740500000000000000B8034014 + 53697A652E506C6174666F726D44656661756C7408000007544C61796F757400 + 095374796C654E616D65060773797362746E7305416C69676E0706436C69656E + 74064C6F636B6564090A53697A652E57696474680500000000005655AA07400B + 53697A652E4865696768740500000000000000B803401453697A652E506C6174 + 666F726D44656661756C7408000C545370656564427574746F6E00095374796C + 654E616D650605636C6F736505416C69676E07055269676874064C6F636B6564 + 090A506F736974696F6E2E5805000000000056D59D07400A53697A652E576964 + 74680500000000000000C803400B53697A652E48656967687405000000000000 + 00B803401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B75700610636C6F7365627574746F6E7374796C650000055454657874 + 00095374796C654E616D6506057469746C6505416C69676E0706436C69656E74 + 064C6F636B6564090748697454657374080A53697A652E576964746805000000 + 000056D59D07400B53697A652E4865696768740500000000000000B803401453 + 697A652E506C6174666F726D44656661756C7408045465787406055469746C65 + 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 + 65000000000007544C61796F757400095374796C654E616D650606636C69656E + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737409 + 0A53697A652E576964746805000000000056D5AA07400B53697A652E48656967 + 687405000000000000009506401453697A652E506C6174666F726D4465666175 + 6C7408000007544C61796F757400095374796C654E616D650606626F74746F6D + 05416C69676E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E + 580500000000000000A001400A506F736974696F6E2E590500000000000000AE + 06400A53697A652E576964746805000000000056D5AA07400B53697A652E4865 + 696768740500000000000000A001401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C6500095374796C654E616D6506047265 + 637405416C69676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646 + 3230323032300553696465730B03546F7006426F74746F6D000A53697A652E57 + 6964746805000000000056D5AA07400B53697A652E4865696768740500000000 + 000000A001401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000000005450463007544C61 + 796F757400095374796C654E616D65061177696E646F77626F72646572737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 0056D5AF07400B53697A652E4865696768740500000000000000B30640145369 + 7A652E506C6174666F726D44656661756C74080756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D6506046D61736B05416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F7207097846463130313031300A + 53697A652E576964746805000000000056D5AF07400B53697A652E4865696768 + 740500000000000000B306401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508000007 + 544C61796F757400095374796C654E616D6506046C65667405416C69676E0708 + 4D6F73744C656674064C6F636B6564090A506F736974696F6E2E590500000000 + 000000F003400A53697A652E57696474680500000000000000A001400B53697A + 652E48656967687405000000000000009506401453697A652E506C6174666F72 + 6D44656661756C7408000A5452656374616E676C650005416C69676E07084D6F + 73744C6566740A46696C6C2E436F6C6F72070978464632303230323007486974 + 54657374080553696465730B044C656674055269676874000A53697A652E5769 + 6474680500000000000000A001400B53697A652E486569676874050000000000 + 00009006401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F72070978464631353135313500000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070A4D + 6F7374426F74746F6D13456E61626C6544726167486967686C69676874080A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A506F + 736974696F6E2E5905000000000000009006400553696465730B044C65667406 + 426F74746F6D000A53697A652E57696474680500000000000000A001400B5369 + 7A652E4865696768740500000000000000A001401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350007544C61796F757400095374796C654E616D6506074C61796F75743305 + 416C69676E07094D6F737452696768740A506F736974696F6E2E580500000000 + 0000008001400A53697A652E5769647468050000000000000080FF3F0B53697A + 652E4865696768740500000000000000A001401453697A652E506C6174666F72 + 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 + 060A52656374616E676C653105416C69676E0703546F700A46696C6C2E436F6C + 6F7207097846463135313531350748697454657374080A53697A652E57696474 + 68050000000000000080FF3F0B53697A652E4865696768740500000000000000 + 80FF3F1453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000000000007544C61796F757400095374796C654E + 616D650605726967687405416C69676E07094D6F73745269676874064C6F636B + 6564090A506F736974696F6E2E580500000000005655AD07400A506F73697469 + 6F6E2E590500000000000000F003400A53697A652E5769647468050000000000 + 0000A001400B53697A652E48656967687405000000000000009506401453697A + 652E506C6174666F726D44656661756C7408000A5452656374616E676C650005 + 416C69676E07094D6F737452696768740A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080553696465730B044C6566740552696768 + 74000A53697A652E57696474680500000000000000A001400B53697A652E4865 + 6967687405000000000000009006401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F72070978464631353135313500000A + 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 + 3105416C69676E070A4D6F7374426F74746F6D13456E61626C65447261674869 + 67686C69676874080A46696C6C2E436F6C6F7207097846463230323032300748 + 697454657374080A506F736974696F6E2E590500000000000000900640055369 + 6465730B06426F74746F6D055269676874000A53697A652E5769647468050000 + 0000000000A001400B53697A652E4865696768740500000000000000A0014014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F7207097846463135313531350007544C61796F757400095374796C654E616D + 6506074C61796F75743305416C69676E07084D6F73744C6566740A53697A652E + 5769647468050000000000000080FF3F0B53697A652E48656967687405000000 + 00000000A001401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 + 05416C69676E0703546F700A46696C6C2E436F6C6F7207097846463135313531 + 350748697454657374080A53697A652E5769647468050000000000000080FF3F + 0B53697A652E486569676874050000000000000080FF3F1453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 + 000000000A5452656374616E676C650005416C69676E07074D6F7374546F700A + 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000056D5AF07400B53697A + 652E4865696768740500000000000000F003401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 350007544C61796F757400095374796C654E616D65060763617074696F6E0541 + 6C69676E0708436F6E74656E7473064C6F636B6564090748697454657374090A + 53697A652E576964746805000000000056D5AF07400B53697A652E4865696768 + 740500000000000000F003401453697A652E506C6174666F726D44656661756C + 7408000007544C61796F75740005416C69676E0706436C69656E74064C6F636B + 6564090C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A53697A652E576964746805000000000056D5AE07400B53697A65 + 2E4865696768740500000000000000E003401453697A652E506C6174666F726D + 44656661756C74080007544C61796F75740005416C69676E07044C656674064C + 6F636B6564090A53697A652E576964746805000000000000009002400B53697A + 652E4865696768740500000000000000E003401453697A652E506C6174666F72 + 6D44656661756C7408000007544C61796F757400095374796C654E616D650604 + 69636F6E064C6F636B6564090A506F736974696F6E2E58050000000000000090 + 02400A506F736974696F6E2E590500000000000000E001400A53697A652E5769 + 6474680500000000000000C803400B53697A652E486569676874050000000000 + 0000A803401453697A652E506C6174666F726D44656661756C7408000007544C + 61796F757400095374796C654E616D65060773797362746E7305416C69676E07 + 06436C69656E74064C6F636B6564090A53697A652E5769647468050000000000 + 5655AA07400B53697A652E4865696768740500000000000000E003401453697A + 652E506C6174666F726D44656661756C7408000C545370656564427574746F6E + 00095374796C654E616D650605636C6F736505416C69676E0705526967687406 + 4C6F636B6564090A506F736974696F6E2E5805000000000056559107400A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000E003401453697A652E506C6174666F726D44656661756C7408 + 0B5374796C654C6F6F6B75700610636C6F7365627574746F6E7374796C650000 + 0C545370656564427574746F6E00095374796C654E616D6506036D617805416C + 69676E07055269676874064C6F636B6564090A506F736974696F6E2E58050000 + 00000056558207400A53697A652E57696474680500000000000000F003400B53 + 697A652E4865696768740500000000000000E003401453697A652E506C617466 + 6F726D44656661756C74080B5374796C654C6F6F6B7570060E6D617862757474 + 6F6E7374796C6500000C545370656564427574746F6E00095374796C654E616D + 65060372657305416C69676E07055269676874064C6F636B6564090A506F7369 + 74696F6E2E58050000000000ACAAE606400A53697A652E576964746805000000 + 00000000F003400B53697A652E4865696768740500000000000000E003401453 + 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 + 060E726573627574746F6E7374796C6500000C545370656564427574746F6E00 + 095374796C654E616D6506036D696E05416C69676E07055269676874064C6F63 + 6B6564090A506F736974696F6E2E58050000000000ACAAC806400A53697A652E + 57696474680500000000000000F003400B53697A652E48656967687405000000 + 00000000E003401453697A652E506C6174666F726D44656661756C74080B5374 + 796C654C6F6F6B7570060E6D696E627574746F6E7374796C6500000554546578 + 7400095374796C654E616D6506057469746C6505416C69676E0706436C69656E + 74064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 000000ACAAC806400B53697A652E4865696768740500000000000000E0034014 + 53697A652E506C6174666F726D44656661756C7408045465787406055469746C + 65165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 + 7465000000000007544C61796F757400095374796C654E616D650606636C6965 + 6E7405416C69676E0706436C69656E74064C6F636B6564090748697454657374 + 090A53697A652E576964746805000000000056D5AA07400B53697A652E486569 + 67687405000000000000009006401453697A652E506C6174666F726D44656661 + 756C7408000007544C61796F757400095374796C654E616D650606626F74746F + 6D05416C69676E0706426F74746F6D064C6F636B6564090A506F736974696F6E + 2E580500000000000000A001400A506F736974696F6E2E590500000000000000 + AE06400A53697A652E576964746805000000000056D5AA07400B53697A652E48 + 65696768740500000000000000A001401453697A652E506C6174666F726D4465 + 6661756C7408000A5452656374616E676C6500095374796C654E616D65060472 + 65637405416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846 + 463230323032300748697454657374080553696465730B03546F7006426F7474 + 6F6D000A53697A652E576964746805000000000056D5AA07400B53697A652E48 + 65696768740500000000000000A001401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350000 + 00005450463007544C61796F757400095374796C654E616D650610726164696F + 627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000F205400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C740807566973 + 69626C65080007544C61796F75740005416C69676E07044C6566740A53697A65 + 2E57696474680500000000000000A803400B53697A652E486569676874050000 + 0000000000A803401453697A652E506C6174666F726D44656661756C74080008 + 54456C6C6970736500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646323032 + 303230064C6F636B6564090748697454657374080A53697A652E576964746805 + 00000000000000F002400B53697A652E4865696768740500000000000000F002 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F720709784646313531353135000854456C6C6970736500095374796C65 + 4E616D650609636865636B6D61726B05416C69676E0706436C69656E740A4669 + 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 + 65737408074F70616369747905000000000000000000000C4D617267696E732E + 4C65667405000000000000008000400B4D617267696E732E546F700500000000 + 0000008000400D4D617267696E732E526967687405000000000000008000400E + 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 + 696474680500000000000000B002400B53697A652E4865696768740500000000 + 000000B002401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00 + 095374796C654E616D65061A6F706163697479436865636B6D61726B416E696D + 6174696F6E31084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D6506074F7061636974790A537461727456616C75650500000000 + 0000000000000953746F7056616C7565050000000000000080FF3F0754726967 + 676572060E4973436865636B65643D747275650E54726967676572496E766572 + 7365060F4973436865636B65643D66616C73650000000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D65061A726164696F627574746F6E436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 0007496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572061049734D6F7573654F + 7665723D747275650E54726967676572496E7665727365061149734D6F757365 + 4F7665723D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060C + 5374726F6B652E436F6C6F720A537461727456616C7565070978464631353135 + 31350953746F7056616C75650709784646324138324532075472696767657206 + 0E4973436865636B65643D747275650E54726967676572496E7665727365060F + 4973436865636B65643D66616C73650000000005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000A803401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C6157686974650000005450463007544C61796F757400095374 + 796C654E616D650618756C63656E746572726164696F627574746F6E7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 5655FB05400B53697A652E4865696768740500000000000000A004401453697A + 652E506C6174666F726D44656661756C74080756697369626C65080007544C61 + 796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E590500 + 0000000000008804400A53697A652E57696474680500000000005655FB05400B + 53697A652E4865696768740500000000000000C001401453697A652E506C6174 + 666F726D44656661756C7408000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E747307 + 436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080A53697A652E57696474680500000000005655FB05400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D6506216261636B + 67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E31084475 + 726174696F6E050000000000000000000007496E7665727365090C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572061049734D6F7573654F7665723D747275650E54726967676572 + 496E7665727365061149734D6F7573654F7665723D66616C736500000A545265 + 6374616E676C6500095374796C654E616D650609636865636B6D61726B05416C + 69676E0708436F6E74656E747307436F726E6572730B07546F704C6566740A42 + 6F74746F6D4C656674000A46696C6C2E436F6C6F720709784646324138324532 + 064C6F636B656409074869745465737408074F70616369747905000000000000 + 000000000C4D617267696E732E4C656674050000000000000080FF3F0B4D6172 + 67696E732E546F70050000000000000080FF3F0D4D617267696E732E52696768 + 74050000000000000080FF3F0E4D617267696E732E426F74746F6D0500000000 + 00000080FF3F0A53697A652E57696474680500000000005655F705400B53697A + 652E48656967687405000000000000008001401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C + 6F6174416E696D6174696F6E00095374796C654E616D65061A636865636B6D61 + 726B4F706163697479416E696D6174696F6E31084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D6506074F7061636974790A5374 + 61727456616C756505000000000000000000000953746F7056616C7565050000 + 000000000080FF3F0754726967676572060E4973436865636B65643D74727565 + 0E54726967676572496E7665727365060F4973436865636B65643D66616C7365 + 000000000005545465787400095374796C654E616D6506047465787405416C69 + 676E0706436C69656E74064C6F636B6564090748697454657374080A53697A65 + 2E57696474680500000000005655FB05400B53697A652E486569676874050000 + 00000000008804401453697A652E506C6174666F726D44656661756C74081654 + 65787453657474696E67732E466F6E74436F6C6F720708636C61576869746500 + 00005450463007544C61796F757400095374796C654E616D650617756C726967 + 6874726164696F627574746F6E7374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 + 68740500000000000000A004401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C65080007544C61796F75740005416C69676E0706426F + 74746F6D0A506F736974696F6E2E5905000000000000008804400A53697A652E + 57696474680500000000005655FB05400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E747307436F726E6572730B08546F70526967 + 68740B426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632 + 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 + 680500000000005655FB05400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D6506216261636B67726F756E64556C427574746F + 6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000000000 + 0000000007496E7665727365090C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463230323032300953746F + 7056616C756507097846463430343034300754726967676572061049734D6F75 + 73654F7665723D747275650E54726967676572496E7665727365061149734D6F + 7573654F7665723D66616C736500000A5452656374616E676C6500095374796C + 654E616D650609636865636B6D61726B05416C69676E0708436F6E74656E7473 + 07436F726E6572730B08546F7052696768740B426F74746F6D5269676874000A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 745465737408074F70616369747905000000000000000000000C4D617267696E + 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 + 2E57696474680500000000005655F705400B53697A652E486569676874050000 + 00000000008001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D65061A636865636B6D61726B4F706163697479416E + 696D6174696F6E31084475726174696F6E05000000000000000000000C50726F + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572060E4973436865636B65643D747275650E54726967676572496E76 + 65727365060F4973436865636B65643D66616C73650000000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000880440145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D650616756C6C656674726164696F627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000005655FB05400B53697A652E4865696768740500000000000000A004 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 0007544C61796F75740005416C69676E0706426F74746F6D0A506F736974696F + 6E2E5905000000000000008804400A53697A652E576964746805000000000056 + 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C656674 + 000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000005655FB05400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 + 353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F + 6E31084475726174696F6E050000000000000000000007496E7665727365090C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572061049734D6F7573654F7665723D747275650E5472 + 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 + 000A5452656374616E676C6500095374796C654E616D650609636865636B6D61 + 726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F704C + 6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B656409074869745465737408074F7061636974790500 + 0000000000000000000C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000005655F705 + 400B53697A652E48656967687405000000000000008001401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A6368 + 65636B6D61726B4F706163697479416E696D6174696F6E31084475726174696F + 6E05000000000000000000000C50726F70657274794E616D6506074F70616369 + 74790A537461727456616C756505000000000000000000000953746F7056616C + 7565050000000000000080FF3F0754726967676572060E4973436865636B6564 + 3D747275650E54726967676572496E7665727365060F4973436865636B65643D + 66616C7365000000000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 + 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 + 687405000000000000008804401453697A652E506C6174666F726D4465666175 + 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 + 686974650000005450463007544C61796F757400095374796C654E616D650616 + 70726F677265737362617266696E6973687374796C6505416C69676E07064365 + 6E7465720A53697A652E576964746805000000000033338505400B53697A652E + 4865696768740500000000009999E104401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508000A5452656374616E676C6500095374 + 796C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 + 7454657374080A53697A652E576964746805000000000033338505400B53697A + 652E4865696768740500000000009999E104401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000A5452656374616E676C6500095374796C654E616D65060A68696E646963 + 61746F7205416C69676E07044C6566740A46696C6C2E436F6C6F720709784646 + 324345323434064C6F636B6564090748697454657374080C4D617267696E732E + 4C656674050000000000000080FF3F0B4D617267696E732E546F700500000000 + 00000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E + 4D617267696E732E426F74746F6D050000000000000080FF3F0A506F73697469 + 6F6E2E58050000000000000080FF3F0A506F736974696F6E2E59050000000000 + 000080FF3F0A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000009999D904401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452 + 656374616E676C6500095374796C654E616D65060676747261636B05416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000A5452656374616E676C6500095374796C65 + 4E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46 + 696C6C2E436F6C6F720709784646324345323434064C6F636B65640907486974 + 54657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D61 + 7267696E732E546F70050000000000000080FF3F0D4D617267696E732E526967 + 6874050000000000000080FF3F0E4D617267696E732E426F74746F6D05000000 + 0000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F + 736974696F6E2E5905000000000099998904400A53697A652E57696474680500 + 0000000033338105400B53697A652E4865696768740500000000000000A80340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000000005450463007544C61796F757400095374796C654E + 616D65060D657870616E6465727374796C6505416C69676E070643656E746572 + 0A53697A652E576964746805000000000000C08407400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508000A5452656374616E676C6500095374796C654E + 616D65060B626772656374616E676C6505416C69676E0708436F6E74656E7473 + 0C436C69704368696C6472656E090A46696C6C2E436F6C6F7207097846463244 + 32443244064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000000C08407400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F7207097846463135313531350007544C61796F757400095374796C65 + 4E616D6506074C61796F75743305416C69676E0703546F700A53697A652E5769 + 64746805000000000000C08407400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C74080007544C61 + 796F757400095374796C654E616D6506074C61796F75743405416C69676E0708 + 436F6E74656E74730A53697A652E576964746805000000000000C08407400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 + 6D65060A52656374616E676C653205416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646323532353235064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000000C08407400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 00000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 09784646313531353135064C6F636B6564090748697454657374080A53697A65 + 2E576964746805000000000000C08407400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D650614466C6F6174416E696D6174696F6E31537479 + 6C65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C61 + 74696F6E070843697263756C61720C50726F70657274794E616D650607536361 + 6C652E580A537461727456616C7565050000000000000080FF3F0953746F7056 + 616C756505000000000000000000000754726967676572060F4973457870616E + 6465643D747275650E54726967676572496E766572736506104973457870616E + 6465643D66616C73650000000007544C61796F757400095374796C654E616D65 + 06074C61796F75743305416C69676E0708436F6E74656E74730A53697A652E57 + 6964746805000000000000C08407400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C740800055454 + 65787400095374796C654E616D6506047465787405416C69676E07044C656674 + 084175746F53697A65090A436C6970506172656E7409064C6F636B6564090748 + 697454657374080C4D617267696E732E4C6566740500000000000000A002400A + 506F736974696F6E2E580500000000000000A002400A53697A652E5769647468 + 05000000000000B8C703400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74081654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746516546578745365 + 7474696E67732E486F727A416C69676E07074C656164696E670000000F544578 + 70616E646572427574746F6E00095374796C654E616D650606627574746F6E05 + 416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E5805 + 00000000000080F506400A53697A652E57696474680500000000000000A00340 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C740800000000005450463007544C61796F75740009 + 5374796C654E616D650613657870616E646572627574746F6E7374796C650541 + 6C69676E070643656E7465720B4D617267696E732E546F700500000000000000 + 80FF3F0A53697A652E57696474680500000000000000B003400B53697A652E48 + 65696768740500000000000000B003401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C65080005545061746800095374796C654E616D + 650605506174683105416C69676E070643656E74657209446174612E50617468 + 0A3400000004000000000000000000C8420000C84201000000000096430000C8 + 42010000000000484300009643030000000000C8420000C8420A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080D526F746174696F6E + 416E676C650500000000000000B405400A53697A652E57696474680500000000 + 000000A002400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D + 650614466C6F6174416E696D6174696F6E315374796C65084475726174696F6E + 050000000000CDCCCCFB3F0D496E746572706F6C6174696F6E07084369726375 + 6C61720C50726F70657274794E616D65060D526F746174696F6E416E676C650A + 537461727456616C75650500000000000000B405400953746F7056616C756505 + 000000000000000000000754726967676572060F4973457870616E6465643D74 + 7275650E54726967676572496E766572736506104973457870616E6465643D66 + 616C7365000000005450463007544C61796F757400095374796C654E616D6506 + 15657870616E646572636865636B626F787374796C6505416C69676E07064365 + 6E7465720A53697A652E576964746805000000000000008406400B53697A652E + 48656967687405000000000000008404401453697A652E506C6174666F726D44 + 656661756C74080756697369626C65080007544C61796F75740005416C69676E + 07044C6566740A53697A652E57696474680500000000000000C003400B53697A + 652E48656967687405000000000000008404401453697A652E506C6174666F72 + 6D44656661756C7408000554506174680005416C69676E0706436C69656E7409 + 446174612E506174680AD80100002700000000000000FEC8BA4402E792440200 + 00002592AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FEB0 + 9E440200000093A4A4446A0C9F44020000004A80AC44FC79AA4402000000046E + BA44FC79AA44020000004A00C844FC79AA44020000000080CF44FEB09E440200 + 00000080CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402E7 + 924402000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B876 + BF44FE309744020000000277C344EEA09A44020000000277C34404DE9E440200 + 00000277C344121BA34402000000B876BF44008CA64402000000FE88BA44008C + A644020000004C9BB544008CA64402000000009CB144121BA34402000000009C + B14404DE9E4402000000009CB144EEA09A44020000004C9BB544FE3097440200 + 0000FE88BA44FE309744000000000080BA44045E9B4402000000146EB844045E + 9B440200000000C0B64454F79C440200000000C0B64400F09E440200000000C0 + B644ACE8A04402000000146EB844FC81A244020000000080BA44FC81A2440200 + 0000EC91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400F0 + 9E44020000000040BE4454F79C4402000000EC91BC44045E9B44020000000080 + BA44045E9B440A46696C6C2E436F6C6F72070978363030303030303007486974 + 54657374080C4D617267696E732E4C65667405000000000000008000400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 + 000000008000400A53697A652E57696474680500000000000000A003400B5369 + 7A652E4865696768740500000000000000E803401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261 + 704D6F64650703466974000F54436F6C6F72416E696D6174696F6E0008447572 + 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978363030303030303009 + 53746F7056616C75650708636C61426C61636B0754726967676572060E497343 + 6865636B65643D7472756500000F54436F6C6F72416E696D6174696F6E000844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C75650708636C61426C61636B + 0953746F7056616C756507097836303030303030300754726967676572060F49 + 73436865636B65643D66616C73650000000005545465787400095374796C654E + 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 + 48697454657374080C4D617267696E732E4C6566740500000000000000800240 + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 5269676874050000000000000080FF3F0A53697A652E57696474680500000000 + 000000C605400B53697A652E4865696768740500000000000000F80340145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720709784646454545454545165465787453657474696E + 67732E486F727A416C69676E07074C656164696E670000005450463007544C61 + 796F757400095374796C654E616D65060E6C6162656C66696C6C7374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000000 + C805400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508000A5452656374 + 616E676C6500095374796C654E616D65060A52656374616E676C653105416C69 + 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464631353135 + 31350A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000005545465787400 + 095374796C654E616D6506047465787405416C69676E0708436F6E74656E7473 + 0748697454657374080A53697A652E57696474680500000000000000C805400B + 53697A652E4865696768740500000000000000C803401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C6157686974650000005450463007544C61796F757400095374 + 796C654E616D650613636F6D626F656469746572726F727374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508000C5442727573684F62 + 6A65637400095374796C654E616D65060A666F726567726F756E6400000B5446 + 6F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E742E + 53697A650500000000000000D00240000007544C61796F757400095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C7408000A5452656374616E676C6500095374796C654E616D65060A52656374 + 616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000C805400B53697A652E4865696768740500000000000000C80340 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F720709784646323032303230000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 + 084475726174696F6E050000000000000000000007496E7665727365090C5072 + 6F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572062049734D6F7573654F7665723D747275653B4973 + 466F63757365643D66616C73650E54726967676572496E766572736506214973 + 4D6F7573654F7665723D66616C73653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F + 6C6F72416E696D6174696F6E325374796C65084475726174696F6E0500000000 + 00000000000007496E7665727365090C50726F70657274794E616D65060C5374 + 726F6B652E436F6C6F720A537461727456616C75650709784646343034303430 + 0953746F7056616C756507097846464532324132410754726967676572061F49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 + 726967676572496E7665727365062049734D6F7573654F7665723D747275653B + 4973466F63757365643D66616C7365000007544C61796F757400095374796C65 + 4E616D6506056172726F7705416C69676E070846697452696768740B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E580500000000005ED99705400A506F7369 + 74696F6E2E59050000000000000080FF3F0A53697A652E576964746805000000 + 0000889AB803400B53697A652E4865696768740500000000000000B803401453 + 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646333033303330074869 + 7454657374080A53697A652E5769647468050000000000889AB803400B53697A + 652E4865696768740500000000000000B803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E315374796C65084475726174696F6E05000000000000000000 + 0007496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463330333033300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973466F63 + 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646343034303430 + 0953746F7056616C756507097846463943313731370754726967676572061F49 + 73466F63757365643D747275653B49734D6F7573654F7665723D747275650000 + 0007544C61796F757400095374796C654E616D6506074C61796F75743105416C + 69676E070643656E7465720C4D617267696E732E4C6566740500000000000000 + 80FF3F0A53697A652E57696474680500000000000000A002400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080005545061746800095374796C654E616D650605506174683105 + 416C69676E0706436C69656E7409446174612E506174680A3400000004000000 + 000000000000C8420000C84201000000000096430000C8420100000000004843 + 00009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080A53697A652E576964746805000000000000 + 00A002400B53697A652E4865696768740500000000000000C001401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650000000000000C5442727573684F626A65637400095374796C654E616D + 65060973656C656374696F6E0B42727573682E436F6C6F720709783936324138 + 324532000007544C61796F757400095374796C654E616D650607636F6E74656E + 7405416C69676E0706436C69656E740C4D617267696E732E4C65667405000000 + 000000008000400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E52696768740500000000000000F003400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 000000008805400B53697A652E4865696768740500000000000000A803401453 + 697A652E506C6174666F726D44656661756C74080000005450463007544C6179 + 6F757400095374796C654E616D65061E70726F6772657373626172696E646574 + 65726D696E61626C657374796C6505416C69676E070643656E7465720A53697A + 652E5769647468050000000000ABAAB006400B53697A652E4865696768740500 + 000000000000C003401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 + 0676747261636B05416C69676E0708436F6E74656E747307456E61626C656408 + 0A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564090748 + 697454657374080A53697A652E57696474680500000000000000E006400B5369 + 7A652E48656967687405000000000000009404401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350756697369626C6508000A5452656374616E676C6500095374796C654E61 + 6D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C + 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 + 74696F6E2E590500000000000000F002400A53697A652E576964746805000000 + 00000000DE06400B53697A652E4865696768740500000000000000A803401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6500000007544C61796F757400095374796C654E616D6506066874 + 7261636B05416C69676E0708436F6E74656E74730A53697A652E576964746805 + 0000000000ABAAB006400B53697A652E4865696768740500000000000000C003 + 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E74730C436C69704368696C6472656E090A46696C6C2E436F + 6C6F720709784646324138324532064C6F636B6564090748697454657374080A + 53697A652E5769647468050000000000ABAAB006400B53697A652E4865696768 + 740500000000000000C003401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E69 + 6D6174696F6E315374796C6507456E61626C656409084475726174696F6E0500 + 000000000000800140044C6F6F70090C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 + 746F7056616C756507097846463241383245320754726967676572060E497356 + 697369626C653D7472756500000000005450463007544C61796F757400095374 + 796C654E616D650611616E69696E64696361746F727374796C6505416C69676E + 070643656E7465720756697369626C650800045441726300095374796C654E61 + 6D65060341726305416C69676E0708436F6E74656E7473074869745465737408 + 0D526F746174696F6E416E676C650500000000000000B407400A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720708636C615768697465105374726F6B652E546869636B + 6E65737305000000000000008001400A5374726F6B652E4361700705526F756E + 640B5374726F6B652E4A6F696E0705426576656C08456E64416E676C65050000 + 0000000000B405C0000F54466C6F6174416E696D6174696F6E00095374796C65 + 4E616D650603616E6907456E61626C656409084475726174696F6E0500000000 + 00000080FF3F044C6F6F70090C50726F70657274794E616D65060D526F746174 + 696F6E416E676C650A537461727456616C756505000000000000000000000953 + 746F7056616C75650500000000000000B407400754726967676572060E497356 + 697369626C653D74727565000000005450463007544C61796F75740009537479 + 6C654E616D650615616E69696E64696361746F72686F727A7374796C6505416C + 69676E070643656E7465720A53697A652E57696474680500000000000040C006 + 400B53697A652E48656967687405000000000000008000401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000A5452656374616E + 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E + 0706436C69656E740C436C69704368696C6472656E090A46696C6C2E436F6C6F + 7207097846463430343034300A53697A652E57696474680500000000000040C0 + 06400B53697A652E48656967687405000000000000008000401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650005544C696E6500095374796C654E616D6506054C696E6531084C696E6554 + 7970650706426F74746F6D0A53697A652E57696474680500000000000000A00B + 400B53697A652E48656967687405000000000000008000401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 324138324532105374726F6B652E546869636B6E657373050000000000000080 + 02400B5374726F6B652E44617368070444617368000F54466C6F6174416E696D + 6174696F6E00095374796C654E616D650603616E6907456E61626C6564090844 + 75726174696F6E0500000000000000800340044C6F6F70090C50726F70657274 + 794E616D65060A506F736974696F6E2E580A537461727456616C756505000000 + 00000000C808C00953746F7056616C7565050000000000000000000007547269 + 67676572060E497356697369626C653D7472756500000000005450463007544C + 61796F757400095374796C654E616D65060A70616E656C7374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C00640 + 0B53697A652E4865696768740500000000000000A406401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A + 53697A652E57696474680500000000000000C006400B53697A652E4865696768 + 740500000000000000A406401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C6179 + 6F757400095374796C654E616D65060E6C6F67627574746F6E7374796C650541 + 6C69676E070643656E7465720A53697A652E57696474680500000000000000C0 + 05400B53697A652E4865696768740500000000000000C005401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080A53697A652E57696474680500000000000000C005400B53697A652E4865 + 696768740500000000000000C005401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463230323032300953746F7056616C7565070978464634303430 + 34300754726967676572063049734D6F7573654F7665723D747275653B497350 + 7265737365643D66616C73653B4973466F63757365643D66616C73650E547269 + 67676572496E7665727365063149734D6F7573654F7665723D66616C73653B49 + 73507265737365643D66616C73653B4973466F63757365643D66616C73650000 + 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574 + 746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000 + 0000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463430343034300953746F7056616C756507 + 097846463137353739430754726967676572062F4973507265737365643D7472 + 75653B49734D6F7573654F7665723D747275653B4973466F63757365643D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0615627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E + 05000000000000000000000C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 + 616C756507097846463137353739430754726967676572062E49735072657373 + 65643D747275653B49734D6F7573654F7665723D747275653B4973466F637573 + 65643D747275650E54726967676572496E7665727365062F4973507265737365 + 643D66616C73653B49734D6F7573654F7665723D747275653B4973466F637573 + 65643D74727565000005545061746800095374796C654E616D65060550617468 + 3105416C69676E0706436C69656E7409446174612E506174680A5C0200003200 + 0000000000000000A841CDCCCC40010000000000A8410000C041010000000000 + C03F0000C041010000000000C03F00000000010000009A996941000000000100 + 00000000A841CDCCCC40030000000000A841CDCCCC400000000000009C410000 + F04001000000000058410000F04001000000000058410000C03F010000000000 + 40400000C03F01000000000040400000B4410100000000009C410000B4410100 + 000000009C410000F0400300000000009C410000F04000000000000040410000 + F04001000000000090400000F04001000000000090400000C040010000000000 + 40410000C04001000000000040410000F04003000000000040410000F0400000 + 0000000090400000104101000000000090410000104101000000000090410000 + 2841010000000000904000002841010000000000904000001041030000000000 + 9040000010410000000000009040000040410100000000009041000040410100 + 0000000090410000584101000000000090400000584101000000000090400000 + 4041030000000000904000004041000000000000904000007041010000000000 + 9041000070410100000000009041000084410100000000009040000084410100 + 0000000090400000704103000000000090400000704100000000000090400000 + 9041010000000000904100009041010000000000904100009C41010000000000 + 904000009C410100000000009040000090410300000000009040000090410000 + 0000000070410000C04001000000333393410000C04001000000000070416666 + 264001000000000070410000C04003000000000070410000C0400A46696C6C2E + 436F6C6F720708636C6157686974650748697454657374080C4D617267696E73 + 2E4C6566740500000000000000A002400B4D617267696E732E546F7005000000 + 00000000A002400D4D617267696E732E52696768740500000000000000A00240 + 0E4D617267696E732E426F74746F6D0500000000000000A002400A53697A652E + 576964746805000000000000009805400B53697A652E48656967687405000000 + 000000009805401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E6508577261704D6F64650703466974000000 + 005450463007544C61796F757400095374796C654E616D65061470726F677265 + 73736261726D696E697374796C6505416C69676E070643656E7465720A53697A + 652E576964746805000000000033338505400B53697A652E4865696768740500 + 000000009999E104401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000A5452656374616E676C6500095374796C654E616D6506 + 0668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F720709784646343034303430064C6F636B6564090748697454657374080A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C6500 + 095374796C654E616D65060A68696E64696361746F7205416C69676E07044C65 + 66740A46696C6C2E436F6C6F720709784646324138324532064C6F636B656409 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000009999E104401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 000A5452656374616E676C6500095374796C654E616D65060676747261636B05 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464634 + 3034303430064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000033338505400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E61 + 6D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C + 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 + 7374080A506F736974696F6E2E5905000000000099998D04400A53697A652E57 + 6964746805000000000033338505400B53697A652E4865696768740500000000 + 000000A803401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 + 5374796C654E616D65061B7472656576696577657870616E646572627574746F + 6E7374796C6505416C69676E070643656E7465720B4D617267696E732E546F70 + 050000000000000080FF3F0A53697A652E57696474680500000000000000B003 + 400B53697A652E4865696768740500000000000000B003401453697A652E506C + 6174666F726D44656661756C74080756697369626C6508000554506174680009 + 5374796C654E616D650605506174683105416C69676E070643656E7465720944 + 6174612E506174680A3400000004000000000000000000C8420000C842010000 + 00000096430000C842010000000000484300009643030000000000C8420000C8 + 420A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D + 526F746174696F6E416E676C650500000000000000B405C00A53697A652E5769 + 6474680500000000000000A002400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0009 + 5374796C654E616D650614466C6F6174416E696D6174696F6E315374796C6508 + 4475726174696F6E05000000000000000000000D496E746572706F6C6174696F + 6E070843697263756C61720C50726F70657274794E616D65060D526F74617469 + 6F6E416E676C650A537461727456616C75650500000000000000B405C0095374 + 6F7056616C756505000000000000000000000754726967676572060F49734578 + 70616E6465643D747275650E54726967676572496E7665727365061049734578 + 70616E6465643D66616C736500000000545046300A5452656374616E676C6500 + 095374796C654E616D65061174726565766965776974656D7374796C6505416C + 69676E070643656E7465720946696C6C2E4B696E6407044E6F6E650748697454 + 657374080553696465730B06426F74746F6D000A53697A652E57696474680500 + 000000000000AE05400B53697A652E4865696768740500000000000000A00440 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F7207097846463135313531350756697369626C6508000C54537065656442 + 7574746F6E00095374796C654E616D650606627574746F6E05416C69676E0704 + 4C6566740A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000A004401453697A652E506C6174666F726D44 + 656661756C74080B5374796C654C6F6F6B7570061B7472656576696577657870 + 616E646572627574746F6E7374796C65000007544C61796F75740005416C6967 + 6E0708436F6E74656E74730C4D617267696E732E4C6566740500000000000000 + A003400A53697A652E576964746805000000000000008605400B53697A652E48 + 65696768740500000000000000A004401453697A652E506C6174666F726D4465 + 6661756C7408000954436865636B426F7800095374796C654E616D6506056368 + 65636B05416C69676E07044C6566740843616E466F637573081244697361626C + 65466F637573456666656374090A53697A652E57696474680500000000000000 + A003400B53697A652E4865696768740500000000000000A004401453697A652E + 506C6174666F726D44656661756C740800000654476C79706800095374796C65 + 4E616D65060A676C7970687374796C650C4D617267696E732E4C656674050000 + 00000000008000400B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E526967687405000000000000008000400E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F05416C69676E07044C6566740A50 + 6F736974696F6E2E580500000000000000B003400A506F736974696F6E2E5905 + 0000000000000080FF3F0A53697A652E57696474680500000000000000800340 + 0B53697A652E48656967687405000000000000009804401453697A652E506C61 + 74666F726D44656661756C7408000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 + 54657374080A53697A652E57696474680500000000000000BC04400B53697A65 + 2E4865696768740500000000000000A004401453697A652E506C6174666F726D + 44656661756C74080454657874060454657874165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C615768697465155465787453657474696E67 + 732E576F72645772617008165465787453657474696E67732E486F727A416C69 + 676E07074C656164696E670000000A5452656374616E676C650005416C69676E + 0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869745465 + 7374080E4D617267696E732E426F74746F6D050000000000000080FF3F055369 + 6465730B044C656674000A53697A652E57696474680500000000000000AE0540 + 0B53697A652E48656967687405000000000000009C04401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 + 4138324532105374726F6B652E546869636B6E65737305000000000000008000 + 400000005450463007544C61796F757400095374796C654E616D65060D747265 + 65766965777374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000E106400B53697A652E486569676874050000000000 + 00808107401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508000C5442727573684F626A65637400095374796C654E616D65061841 + 6C7465726E6174696E67526F774261636B67726F756E640B42727573682E436F + 6C6F72070978304646464646464600000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 + 0748697454657374080C50616464696E672E4C656674050000000000000080FF + 3F0D50616464696E672E5269676874050000000000000080FF3F0A53697A652E + 57696474680500000000000000E106400B53697A652E48656967687405000000 + 000000808107401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F7207097846463135313531350007544C61796F75740009 + 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 + 0C436C69704368696C6472656E090B4D617267696E732E546F70050000000000 + 000080FF3F0A53697A652E57696474680500000000000000CD06400B53697A65 + 2E4865696768740500000000000000F006401453697A652E506C6174666F726D + 44656661756C7408000A5452656374616E676C6500095374796C654E616D6506 + 0973656C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 0A5452656374616E676C6500095374796C654E616D650610666F637573656473 + 656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B537472 + 6F6B652E446173680703446F740000000A545363726F6C6C4261720009537479 + 6C654E616D65060A767363726F6C6C62617205416C69676E070552696768740B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E0708566572746963616C0C4D617267696E732E4C65667405000000000000 + 008000400A506F736974696F6E2E580500000000000000D006400A53697A652E + 576964746805000000000000008003400B53697A652E48656967687405000000 + 00000000F106401453697A652E506C6174666F726D44656661756C740800000A + 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 + 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D + 617267696E732E546F7005000000000000008000400A506F736974696F6E2E58 + 050000000000000080FF3F0A506F736974696F6E2E590500000000000000F306 + 400A53697A652E57696474680500000000000000DF06400B53697A652E486569 + 67687405000000000000008003401453697A652E506C6174666F726D44656661 + 756C740800000F54536D616C6C5363726F6C6C42617200095374796C654E616D + 65060F76736D616C6C7363726F6C6C62617205416C69676E070552696768740B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E0708566572746963616C0C4D617267696E732E4C65667405000000000000 + 008000400A506F736974696F6E2E580500000000000000C605400A506F736974 + 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 + 0000008002400B53697A652E4865696768740500000000000000800240145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650800000F54 + 536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D616C + 6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368 + 616E676505000000000000000000000B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A50 + 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 + 00000000000000E205400A53697A652E57696474680500000000000000960640 + 0B53697A652E48656967687405000000000000008002401453697A652E506C61 + 74666F726D44656661756C74080756697369626C650800000000545046300754 + 4C61796F757400095374796C654E616D650619616374696F6E746F6F6C627574 + 746F6E6D756C74697669657705416C69676E070643656E7465720A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C65080B46697865644865696768740232000654476C79706800095374 + 796C654E616D65060A676C7970687374796C650C4D617267696E732E4C656674 + 05000000000000009002400B4D617267696E732E546F70050000000000000090 + 02400E4D617267696E732E426F74746F6D050000000000000090024005416C69 + 676E07044C6566740A506F736974696F6E2E5805000000000000009002400A50 + 6F736974696F6E2E5905000000000000009002400A53697A652E576964746805 + 000000000000008004400B53697A652E48656967687405000000000000008004 + 401453697A652E506C6174666F726D44656661756C740800000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E74090A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080C4D617267696E732E4C6566740500000000000000C804C00A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F + 6E31084475726174696F6E05000000000000000000000C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646343034303430075472696767 + 6572063049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73653B4973466F63757365643D66616C73650E54726967676572496E7665 + 727365063149734D6F7573654F7665723D66616C73653B497350726573736564 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E33084475726174696F6E05000000000000000000000C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463241383245320953746F7056616C7565070978464631373537 + 39430754726967676572062E4973507265737365643D747275653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D747275650E5472696767 + 6572496E7665727365062F4973507265737365643D66616C73653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D74727565000000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E740748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C7408045465787406045465787416546578745365 + 7474696E67732E466F6E74436F6C6F720708636C615768697465000007544C61 + 796F757400095374796C654E616D6506074C61796F75743205416C69676E0704 + 4C6566740A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080005545061746800095374796C654E616D65060469636F6E05 + 416C69676E070643656E74657209446174612E506174680A1801000017000000 + 000000000000C03F0000C03F0100000000000000000000000100000000004040 + 00000000010000000000C03F0000C03F030000000000C03F0000C03F00000000 + 00009040000000000100000000004041000000000100000000004041CDCC4C3F + 0100000000009040CDCC4C3F0100000000009040000000000300000000009040 + 0000000000000000000090403333734001000000000090400000404001000000 + 0000404100004040010000000000404133337340010000000000904033337340 + 03000000000090403333734000000000000090409A99D9400100000000009040 + 0000C04001000000000040410000C04001000000000040419A99D94001000000 + 000090409A99D94003000000000090409A99D9400A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080A53697A652E5769647468050000 + 0000000000D003400B53697A652E4865696768740500000000000000E0034014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6508577261704D6F64650703466974000000005450463007544C + 61796F757400095374796C654E616D65060E616464627574746F6E7374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00C805400B53697A652E4865696768740500000000000000C003401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C65080B4669786564 + 4865696768740218000654476C79706800095374796C654E616D65060A676C79 + 70687374796C650C4D617267696E732E4C65667405000000000000009002400B + 4D617267696E732E546F7005000000000000009002400E4D617267696E732E42 + 6F74746F6D050000000000000090024005416C69676E07044C6566740A506F73 + 6974696F6E2E5805000000000000009002400A506F736974696F6E2E59050000 + 00000000009002400A53697A652E576964746805000000000000008004400B53 + 697A652E48656967687405000000000000008004401453697A652E506C617466 + 6F726D44656661756C740800000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C + 69704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080C4D617267696E732E4C + 6566740500000000000000C003C00A53697A652E576964746805000000000000 + 00C805400B53697A652E4865696768740500000000000000C003401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572063049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73653B4973466F637573 + 65643D66616C73650E54726967676572496E7665727365063149734D6F757365 + 4F7665723D66616C73653B4973507265737365643D66616C73653B4973466F63 + 757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E330844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 + 320953746F7056616C756507097846463137353739430754726967676572062E + 4973507265737365643D747275653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D747275650E54726967676572496E7665727365062F49 + 73507265737365643D66616C73653B49734D6F7573654F7665723D747275653B + 4973466F63757365643D7472756500000005545465787400095374796C654E61 + 6D6506047465787405416C69676E0706436C69656E740748697454657374080A + 53697A652E576964746805000000000000009805400B53697A652E4865696768 + 740500000000000000C003401453697A652E506C6174666F726D44656661756C + 74080454657874060454657874165465787453657474696E67732E466F6E7443 + 6F6C6F720708636C615768697465000007544C61796F757400095374796C654E + 616D6506074C61796F75743205416C69676E07044C6566740A53697A652E5769 + 6474680500000000000000C003400B53697A652E486569676874050000000000 + 0000C003401453697A652E506C6174666F726D44656661756C74080005545061 + 746800095374796C654E616D65060469636F6E05416C69676E0708436F6E7465 + 6E747309446174612E506174680AAC0000000E00000000000000CDCC34410000 + C040010000000000C0400000C040010000000000C040CDCC3441010000009A99 + A940CDCC3441010000009A99A9400000C04001000000000000000000C0400100 + 0000000000009A99A940010000009A99A9409A99A940010000009A99A9400000 + 0000010000000000C04000000000010000000000C0409A99A94001000000CDCC + 34419A99A94001000000CDCC34410000C04003000000CDCC34410000C0400A46 + 696C6C2E436F6C6F720708636C6157686974650748697454657374080C4D6172 + 67696E732E4C65667405000000000000008001400B4D617267696E732E546F70 + 05000000000000008001400D4D617267696E732E526967687405000000000000 + 008001400E4D617267696E732E426F74746F6D05000000000000008001400A53 + 697A652E576964746805000000000000008003400B53697A652E486569676874 + 05000000000000008003401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 + 74000000005450463007544C61796F757400095374796C654E616D650617696E + 666F746F6F6C627574746F6E6D756C74697669657705416C69676E070643656E + 7465720A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C65080B46697865644865696768740232000654 + 476C79706800095374796C654E616D65060A676C7970687374796C650C4D6172 + 67696E732E4C65667405000000000000009002400B4D617267696E732E546F70 + 05000000000000009002400E4D617267696E732E426F74746F6D050000000000 + 000090024005416C69676E07044C6566740A506F736974696F6E2E5805000000 + 000000009002400A506F736974696F6E2E5905000000000000009002400A5369 + 7A652E576964746805000000000000008004400B53697A652E48656967687405 + 000000000000008004401453697A652E506C6174666F726D44656661756C7408 + 00000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E09 + 0A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080C4D617267696E732E4C6566740500000000000000 + C804C00A53697A652E57696474680500000000000000C805400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E31084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572063049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C73650E5472 + 6967676572496E7665727365063149734D6F7573654F7665723D66616C73653B + 4973507265737365643D66616C73653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463241383245320953746F7056616C7565 + 07097846463137353739430754726967676572062E4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 7275650E54726967676572496E7665727365062F4973507265737365643D6661 + 6C73653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 72756500000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E740748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C7408045465787406045465 + 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 697465000007544C61796F757400095374796C654E616D6506074C61796F7574 + 3205416C69676E07044C6566740A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080005545061746800095374796C654E61 + 6D65060469636F6E05416C69676E070643656E74657209446174612E50617468 + 0A84070000A0000000000000009A9987429A99074302000000010076429A9907 + 430200000001005E42CDCC064302000000343347423433054302000000010030 + 429A9903430200000067661A42CE4C01430200000067660642CECCFC42020000 + 00CECCE4410100F742020000000100C041CECCEF420200000034339F419B99E7 + 4202000000CECC7C416866DF4202000000353343413533D64202000000CECC14 + 413533CC42020000009A99C9400000C24202000000000080403333B742020000 + 009A991940CDCCAB4202000000CDCC4C3F3333A0420200000000000000333394 + 4202000000000000009A99874202000000000000000100764202000000CDCC4C + 3F01005E42020000009A991940CECC4642020000000000804000003042020000 + 009A99C94066661A42020000003333134166660642020000009A994141CCCCE4 + 410200000033337B41FFFFBF410200000066669E4132339F41020000003333BF + 41CACC7C41020000000000E441313343410200000000000642CACC1441020000 + 0066661A429A99C94002000000000030420000804002000000333347429A9919 + 400200000000005E42CDCC4C3F020000006666764200000000020000009A9987 + 4200000000020000003433944200000000020000003433A042CDCC4C3F020000 + 00CDCCAB429A991940020000003333B74200008040020000000000C2429A99C9 + 40020000003333CC4233331341020000003333D6429A994141020000006666DF + 4233337B41020000009999E74266669E4102000000CCCCEF423333BF41020000 + 00FFFFF6420000E44102000000CCCCFC420000064202000000CC4C014300001A + 4202000000999903439A992F420200000033330543CDCC464202000000CDCC06 + 4300005E4202000000999907430000764202000000999907439A998742020000 + 00999907433433944202000000CCCC06433433A0420200000033330543CDCCAB + 4202000000999903436766B74202000000CD4C01433333C24202000000CCCCFC + 423433CC4202000000FFFFF6423433D64202000000CCCCEF426766DF42020000 + 009999E7429A99E742020000006666DF42CDCCEF42020000003333D6420000F7 + 42020000003333CC42CDCCFC42020000003333C242CD4C0143020000006666B7 + 429A99034302000000CCCCAB4233330543020000003333A042CDCC0643020000 + 00333394429A990743020000009A9987429A990743030000009A9987429A9907 + 43000000009A99874200001041020000009A9979420000104102000000CECC64 + 4233331B4102000000CECC50429A99314102000000CECC3C4200004841020000 + 0001002A420000684102000000CECC184200008841020000003433074200009C + 41020000003633EF41CDCCB441020000006966D2419A99D141020000009C99B5 + 416766EE41020000009C999D41CDCC064202000000D0CC884166661842020000 + 00A099694100002A4202000000A099494166663C42020000003A333341CCCC50 + 420200000033331B4133336542020000000000104100007A4202000000000010 + 419A9987420200000000001041343392420200000033331B41CDCC9C42020000 + 009A993141CDCCA6420200000000004841CDCCB04202000000000068413333BA + 4202000000000088410000C3420200000000009C41CDCCCB4202000000CDCCB4 + 419A99D342020000009A99D141CDCCDA42020000006766EE410000E242020000 + 00CDCC06420000E84202000000666618423333ED420200000000002A423333F2 + 420200000066663C423333F64202000000666650420000F94202000000666664 + 42CDCCFB4202000000333379423333FD4202000000666687423333FD42020000 + 00333392423333FD420200000099999C42CDCCFB42020000009999A6420000F9 + 42020000009999B0423333F64202000000FFFFB9423333F24202000000CCCCC2 + 423333ED42020000009999CB423333E842020000006666D3420000E242020000 + 009999DA42CDCCDA4202000000CCCCE1429A99D34202000000CCCCE742CDCCCB + 4202000000FFFFEC420000C34202000000FFFFF1423333BA4202000000FFFFF5 + 420000B14202000000CCCCF8420000A742020000009999FB4200009D42020000 + 00FFFFFC429A99924202000000FFFFFC42CDCC874202000000FFFFFC4200007A + 42020000009999FB423433654202000000CCCCF8423433514202000000FFFFF5 + 4234333D4202000000FFFFF14267662A4202000000FFFFEC42CECC1842020000 + 00FFFFE7423433074202000000CCCCE1423633EF41020000009999DA426966D2 + 41020000006666D3429C99B541020000009999CB429C999D4102000000CCCCC2 + 42D0CC884102000000FFFFB942A099694102000000CCCCB042A0994941020000 + 009999A6423A33334102000000CDCC9C4233331B410200000066669242000010 + 41020000009A99874200001041030000009A998742000010410000000033337D + 42CDCC1042010000009A999042CDCC1042010000009A999042CDCC3442010000 + 0034337D42CDCC34420100000034337D42CDCC10420300000033337D42CDCC10 + 420000000033337D4233335942010000009A99904233335942010000009A9990 + 420000C7420100000034337D420000C7420100000034337D4233335942030000 + 0033337D42333359420A46696C6C2E436F6C6F720708636C6157686974650748 + 697454657374080A53697A652E57696474680500000000000000D003400B5369 + 7A652E4865696768740500000000000000E003401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261 + 704D6F64650703466974000000005450463007544C61796F757400095374796C + 654E616D65061B6F7267616E697A65746F6F6C627574746F6E6D756C74697669 + 657705416C69676E070643656E7465720A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C65080B466978 + 65644865696768740232000654476C79706800095374796C654E616D65060A67 + 6C7970687374796C650C4D617267696E732E4C65667405000000000000009002 + 400B4D617267696E732E546F7005000000000000009002400E4D617267696E73 + 2E426F74746F6D050000000000000090024005416C69676E07044C6566740A50 + 6F736974696F6E2E5805000000000000009002400A506F736974696F6E2E5905 + 000000000000009002400A53697A652E57696474680500000000000000800440 + 0B53697A652E48656967687405000000000000008004401453697A652E506C61 + 74666F726D44656661756C740800000A5452656374616E676C6500095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C + 436C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E43 + 6F6C6F7207097846463230323032300748697454657374080C4D617267696E73 + 2E4C6566740500000000000000C804C00A53697A652E57696474680500000000 + 000000C805400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F + 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463230323032300953746F70 + 56616C756507097846463430343034300754726967676572063049734D6F7573 + 654F7665723D747275653B4973507265737365643D66616C73653B4973466F63 + 757365643D66616C73650E54726967676572496E7665727365063149734D6F75 + 73654F7665723D66616C73653B4973507265737365643D66616C73653B497346 + 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E33 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646324138 + 3245320953746F7056616C756507097846463137353739430754726967676572 + 062E4973507265737365643D747275653B49734D6F7573654F7665723D747275 + 653B4973466F63757365643D747275650E54726967676572496E766572736506 + 2F4973507265737365643D66616C73653B49734D6F7573654F7665723D747275 + 653B4973466F63757365643D7472756500000005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E740748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 5768697465000007544C61796F757400095374796C654E616D6506074C61796F + 75743205416C69676E07044C6566740A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080005545061746800095374796C65 + 4E616D65060469636F6E05416C69676E070643656E74657209446174612E5061 + 74680AD000000011000000000000009A99E9409A99C940010000006666664066 + 661E4101000000000000009A99C940010000000000003F9A99B94001000000CD + CC4C409A99094101000000CDCC4C400000000001000000000080400000000001 + 0000000000804000000841010000006666D6406666B640010000009A99E9409A + 99C940030000009A99E9409A99C940000000009A99993E00004041010000009A + 99993E33333341010000000000E04033333341010000000000E0400000404101 + 0000009A99993E00004041030000009A99993E000040410A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080A53697A652E5769647468 + 0500000000000000D003400B53697A652E4865696768740500000000000000E0 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6508577261704D6F646507034669740000000054504630 + 07544C61796F757400095374796C654E616D65061B73657474696E6773746F6F + 6C627574746F6E6D756C74697669657705416C69676E070643656E7465720A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080756697369626C65080B46697865644865696768740232000654476C797068 + 00095374796C654E616D65060A676C7970687374796C650C4D617267696E732E + 4C65667405000000000000009002400B4D617267696E732E546F700500000000 + 0000009002400E4D617267696E732E426F74746F6D0500000000000000900240 + 05416C69676E07044C6566740A506F736974696F6E2E58050000000000000090 + 02400A506F736974696F6E2E5905000000000000009002400A53697A652E5769 + 64746805000000000000008004400B53697A652E486569676874050000000000 + 00008004401453697A652E506C6174666F726D44656661756C740800000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A436C6970 + 506172656E74090A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080C4D617267696E732E4C6566740500000000000000C804C00A53 + 697A652E57696474680500000000000000C805400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E31084475726174696F6E05000000000000000000000C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E33084475726174696F6E050000000000000000 + 00000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463241383245320953746F7056616C75650709784646 + 3137353739430754726967676572062E4973507265737365643D747275653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650E54 + 726967676572496E7665727365062F4973507265737365643D66616C73653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D747275650000 + 0005545465787400095374796C654E616D6506047465787405416C69676E0706 + 436C69656E740748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080454657874060454657874165465 + 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 + 07544C61796F757400095374796C654E616D6506074C61796F75743205416C69 + 676E07044C6566740A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080005545061746800095374796C654E616D65060469 + 636F6E05416C69676E070643656E74657209446174612E506174680A540D0000 + 1C01000000000000333351423333E7410200000033335142CDCCE84102000000 + 333351426666EA4102000000333351423333EB410200000033335142CDCCEC41 + 02000000333351426666EE4102000000333351423333EF410200000033335142 + CDCCF04102000000333351426666F24102000000333351423333F34102000000 + 33335142CDCCF44102000000333351426666F64102000000333351423333F741 + 0100000099996F4266660E4201000000CDCC5C4200003C420100000000003A42 + 0000344202000000000038420000364202000000000036420000384202000000 + 0000344200003A420100000000003C42CDCC5C4201000000CDCC0E429A996F42 + 010000000000F84133335142020000006666F6413333514202000000CDCCF441 + 33335142020000000000F44133335142020000006666F2413333514202000000 + CDCCF04133335142020000000000F04133335142020000006666EE4133335142 + 02000000CDCCEC4133335142020000000000EC4133335142020000006666EA41 + 3333514202000000CDCCE84133335142020000000000E8413333514201000000 + 6666C24199996F4201000000FFFF4F41CCCC5C4201000000FFFF6F41FFFF3942 + 02000000FFFF6741FFFF374202000000FFFF5F41FFFF354202000000FFFF5741 + FFFF33420100000098999940FFFF3B420100000000000000CDCC0E4201000000 + 3333F3400000F841020000003333F3406666F641020000003333F340CDCCF441 + 020000003333F3400000F441020000003333F3406666F241020000003333F340 + CDCCF041020000003333F3400000F041020000003333F3406666EE4102000000 + 3333F340CDCCEC41020000003333F3400000EC41020000003333F3406666EA41 + 020000003333F340CDCCE841020000003333F3400000E8410100000000000000 + CDCCC0410100000066669640CDCC4C410100000066665641CDCC6C4102000000 + 66665E41CDCC64410200000066666641CDCC5C410200000066666E41CDCC5441 + 0100000066664E413433934001000000CDCCC04100000000010000006666E641 + 3333F340020000000000E8413333F340020000009999E9413333F34002000000 + 6666EA413333F340020000000000EC413333F340020000009999ED413333F340 + 020000006666EE413333F340020000000000F0413333F340020000009999F141 + 3333F340020000006666F2413333F340020000000000F4413333F34002000000 + 9999F5413333F340020000006666F6413333F34001000000CDCC0E4200000000 + 0100000000003C42666696400100000000003442666656410200000000003642 + 66665E410200000000003842666666410200000000003A4266666E4101000000 + CDCC5C4266664E41010000009A996F429A99C14101000000333351423333E741 + 03000000333351423333E7410000000033334342CDCC02420200000033334342 + CDCC004202000000999943426766FE4102000000999943426766FA4102000000 + 999943426766F64102000000FFFF43423433F34102000000FFFF43423433EF41 + 02000000FFFF43423433EB4102000000FFFF43420100E8410200000099994342 + 0100E44102000000999943420100E0410200000033334342CECCDC4102000000 + 33334342CECCD84101000000CDCC5E426866B64101000000CDCC54429B998541 + 01000000CDCC3442CECC9441020000006766324234338F410200000000003042 + 9B9989410200000033332D42010084410200000066662A42CECC7C4102000000 + 000028423533734102000000CDCC24429C9969410100000067662C423833D340 + 0100000001001442383383400100000067660242020030410200000067660042 + 02003041020000009B99FD4168662E41020000009B99F94168662E4102000000 + 9B99F54168662E41020000006866F241CECC2C41020000006866EE41CECC2C41 + 020000006866EA41CECC2C41020000003533E741CECC2C41020000003533E341 + 68662E41020000003533DF4168662E41020000000200DC410200304102000000 + 0200D84102003041010000009C99B5413733834001000000CFCC84413733D340 + 01000000020094419C9969410200000068668E413633734102000000CFCC8841 + CFCC7C410200000035338341010084410200000036337B419A99894102000000 + 9D99714167668E410200000004006841CECC9441010000000800D0409B998541 + 01000000080080406866B641010000006A662E419B99D941020000006A662E41 + 9B99DD4102000000D0CC2C41CECCE04102000000D0CC2C41CECCE44102000000 + D0CC2C41CECCE8410200000036332B410100EC410200000036332B410100F041 + 0200000036332B410100F4410200000036332B413433F74102000000D0CC2C41 + 3433FB4102000000D0CC2C413433FF41020000006A662E413433014202000000 + 6A662E4134330342010000000700804067661442010000000700D040CDCC2C42 + 010000000400684133332542020000009E997141000028420200000037337B41 + CDCC2A42020000003533834199992D4202000000CECC88416566304202000000 + 9B998D41CCCC324202000000020094413333354201000000CFCC844133335542 + 010000009C99B54133335F4201000000CFCCD8419999434202000000CFCCDC41 + 99994342020000000200E041FFFF4342020000000200E441FFFF434202000000 + 0200E841FFFF4342020000003533EB4165664442020000003533EF4165664442 + 020000003533F34165664442020000006866F64165664442020000006866FA41 + FFFF4342020000006866FE41FFFF434202000000CECC00429999434202000000 + CECC024299994342010000000100144233335F420100000067662C4233335542 + 01000000CDCC244233333542020000009A992742CDCC32420200000067662A42 + 666630420200000033332D4299992D4202000000FFFF2F42CCCC2A4202000000 + 666632426666284202000000CDCC34423333254201000000CDCC5442CDCC2C42 + 01000000CDCC5E42676614420100000033334342CDCC02420300000033334342 + CDCC0242000000003333EF4133339741020000003333FB413333974102000000 + 9A9903429999994102000000CDCC084266669E410200000000000E423333A341 + 02000000CDCC12429999A94102000000CDCC16429999B14102000000CDCC1A42 + 9999B9410200000000001E423333C34102000000676620429999CD4102000000 + CDCC2242FFFFD7410200000001002442FFFFE34102000000010024420000F041 + 02000000010024420100FC4102000000CECC2242000004420200000067662042 + 333309420200000001001E4266660E4202000000CDCC1A423333134202000000 + CDCC16423333174202000000CDCC124233331B420200000000000E4266661E42 + 02000000CDCC0842CDCC2042020000009A99034233332342020000003433FB41 + 67662442020000003433EF4167662442020000003433E3416766244202000000 + 3433D7413433234202000000CECCCC41CDCC2042020000006866C24167661E42 + 02000000CECCB84133331B4202000000CECCB0413333174202000000CECCA841 + 33331342020000006866A24166660E42020000009B999D413333094202000000 + CECC98410000044202000000686696410000FC4102000000686696410000F041 + 02000000686696410000E44102000000CECC98410000D841020000009B999D41 + 9A99CD41020000006866A2413433C34102000000CECCA8419A99B94102000000 + CECCB0419A99B14102000000CECCB8419A99A941020000006866C2413433A341 + 02000000CECCCC4167669E41020000000000D8419A999941020000003333E341 + 33339741020000003333EF4133339741030000003333EF413333974100000000 + 3333EF41CDCC1642020000000000F841CDCC1642020000000000004200001642 + 020000009A990342676614420200000034330742CDCC124202000000CDCC0A42 + 67661042020000009A990D429A990D420200000067661042CDCC0A4202000000 + CDCC12429A99074202000000676614429A990342020000000100164200000042 + 02000000CDCC16423433F74102000000CDCC16423433EF4102000000CDCC1642 + 6766E64102000000000016426766DE4102000000676614423433D74102000000 + CDCC12420100D0410200000067661042CECCC841020000009A990D423433C341 + 02000000CDCC0A429A99BD41020000009A990742CECCB841020000009A990342 + 9A99B54102000000000000426766B241020000003433F741CDCCB04102000000 + 3433EF41CDCCB041020000006766E641CDCCB041020000006766DE416766B241 + 020000003433D7419A99B541020000000100D041CDCCB84102000000CECCC841 + 9A99BD41020000003433C3413433C341020000009A99BD41CECCC84102000000 + CECCB8413433CF41020000009A99B5413433D741020000006766B2416766DE41 + 02000000CDCCB0413433E74102000000CDCCB0413433EF4102000000CDCCB041 + 0100F841020000006766B24100000042020000009A99B5419A99034202000000 + CDCCB84134330742020000009A99BD41CDCC0A42020000003433C3419A990D42 + 02000000CECCC84167661042020000003433CF41CDCC1242020000003433D741 + 67661442020000003333DF4100001642020000003333E741CDCC164202000000 + 3333EF41CDCC1642030000003333EF41CDCC16420A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080A53697A652E5769647468050000 + 0000000000D003400B53697A652E4865696768740500000000000000E0034014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6508577261704D6F64650703466974000000005450463007544C + 61796F757400095374796C654E616D65061172656D6F7665627574746F6E7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C003401453 + 697A652E506C6174666F726D44656661756C74080756697369626C65080B4669 + 7865644865696768740218000654476C79706800095374796C654E616D65060A + 676C7970687374796C650C4D617267696E732E4C656674050000000000000090 + 02400B4D617267696E732E546F7005000000000000009002400E4D617267696E + 732E426F74746F6D050000000000000090024005416C69676E07044C6566740A + 506F736974696F6E2E5805000000000000008404400A506F736974696F6E2E59 + 05000000000000009002400A53697A652E576964746805000000000000008004 + 400B53697A652E4865696768740500000000000000C001401453697A652E506C + 6174666F726D44656661756C740800000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E74 + 0C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080C4D617267696E + 732E4C6566740500000000000000C003C00A53697A652E576964746805000000 + 00000000C805400B53697A652E4865696768740500000000000000C003401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463230323032300953746F + 7056616C756507097846463430343034300754726967676572063049734D6F75 + 73654F7665723D747275653B4973507265737365643D66616C73653B4973466F + 63757365643D66616C73650E54726967676572496E7665727365063149734D6F + 7573654F7665723D66616C73653B4973507265737365643D66616C73653B4973 + 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E + 33084475726174696F6E05000000000000000000000C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463241 + 383245320953746F7056616C7565070978464631373537394307547269676765 + 72062E4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 75653B4973466F63757365643D747275650E54726967676572496E7665727365 + 062F4973507265737365643D66616C73653B49734D6F7573654F7665723D7472 + 75653B4973466F63757365643D7472756500000005545465787400095374796C + 654E616D6506047465787405416C69676E0706436C69656E7407486974546573 + 74080A53697A652E576964746805000000000000009805400B53697A652E4865 + 696768740500000000000000C003401453697A652E506C6174666F726D446566 + 61756C74080454657874060454657874165465787453657474696E67732E466F + 6E74436F6C6F720708636C615768697465000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743205416C69676E07044C6566740A53697A65 + 2E57696474680500000000000000C003400B53697A652E486569676874050000 + 0000000000C003401453697A652E506C6174666F726D44656661756C74080005 + 545061746800095374796C654E616D65060469636F6E05416C69676E0708436F + 6E74656E747309446174612E506174680A4C0000000600000000000000000040 + 41CDCC4C3F0100000000000000CDCC4C3F010000000000000000000000010000 + 0000004041000000000100000000004041CDCC4C3F0300000000004041CDCC4C + 3F0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080C + 4D617267696E732E4C65667405000000000000008001400B4D617267696E732E + 546F7005000000000000008001400D4D617267696E732E526967687405000000 + 000000008001400E4D617267696E732E426F74746F6D05000000000000008001 + 400A53697A652E576964746805000000000000008003400B53697A652E486569 + 67687405000000000000008003401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507 + 0346697400000000545046300A5452656374616E676C6500095374796C654E61 + 6D650614706F7075706261636B67726F756E647374796C6505416C69676E0706 + 43656E7465720A46696C6C2E436F6C6F7207097846463244324432440A53697A + 652E576964746805000000000000009407400B53697A652E4865696768740500 + 000000000080D206401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F7207097846463135313531350756697369626C6508 + 00005450463007544C61796F757400095374796C654E616D65061A70726F6772 + 6573736261726D696E6966696E6973687374796C6505416C69676E070643656E + 7465720A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508000A5452656374616E676C650009537479 + 6C654E616D65060668747261636B05416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646343034303430064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A54526563 + 74616E676C6500095374796C654E616D65060A68696E64696361746F7205416C + 69676E07044C6566740A46696C6C2E436F6C6F72070978464632434532343406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E650000000A5452656374616E676C6500095374796C654E616D650606 + 76747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646343034303430064C6F636B6564090748697454657374080A5369 + 7A652E576964746805000000000033338505400B53697A652E48656967687405 + 00000000009999E104401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C650009 + 5374796C654E616D65060A76696E64696361746F7205416C69676E0706426F74 + 746F6D0A46696C6C2E436F6C6F720709784646324345323434064C6F636B6564 + 090748697454657374080A506F736974696F6E2E5905000000000099998D0440 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C + 61796F757400095374796C654E616D65061070726F6772657373626172737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080756697369626C6508000A5452 + 656374616E676C6500095374796C654E616D65060668747261636B05416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000A5452656374616E676C6500095374796C65 + 4E616D65060A68696E64696361746F7205416C69676E07044C6566740A46696C + 6C2E436F6C6F720709784646324138324532064C6F636B656409074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 + 74696F6E2E59050000000000000080FF3F0A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000009999D904401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650000000A5452656374616E676C6500095374796C654E616D6506 + 0676747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F720709784646323032303230064C6F636B6564090748697454657374080A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F720709784646313531353135000A5452656374 + 616E676C6500095374796C654E616D65060A76696E64696361746F7205416C69 + 676E0706426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F + 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E + 732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E580500 + 00000000000080FF3F0A506F736974696F6E2E5905000000000099998904400A + 53697A652E576964746805000000000033338105400B53697A652E4865696768 + 740500000000000000A803401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000000} + end> + Left = 32 + Top = 16 + end + object StyleBook2: TStyleBook + Styles = < + item + ResourcesBin = { + 464D585F5354594C4520322E3501061372656E64657270726F67726573737374 + 796C6503FC08005450463007544C61796F757400095374796C654E616D650613 + 72656E64657270726F67726573737374796C6505416C69676E070643656E7465 + 720A53697A652E576964746805000000000000008F08400B53697A652E486569 + 6768740500000000000000F006401453697A652E506C6174666F726D44656661 + 756C740800065450616E656C00095374796C654E616D650607626770616E656C + 05416C69676E0708436F6E74656E74730A53697A652E57696474680500000000 + 0000008F08400B53697A652E4865696768740500000000000000F00640145369 + 7A652E506C6174666F726D44656661756C7408000007544C61796F7574000953 + 74796C654E616D650607636F6E74656E7405416C69676E0708436F6E74656E74 + 730A53697A652E576964746805000000000000008F08400B53697A652E486569 + 6768740500000000000000F006401453697A652E506C6174666F726D44656661 + 756C74080006544C6162656C00095374796C654E616D650604636F6D7005416C + 69676E07084D6F73744C656674084175746F53697A65090E5374796C65645365 + 7474696E67730B0646616D696C79055374796C6509466F6E74436F6C6F72000C + 4D617267696E732E4C65667405000000000000008003400B4D617267696E732E + 546F7005000000000000008002400E4D617267696E732E426F74746F6D050000 + 00000000008002400A506F736974696F6E2E5805000000000000008003400A50 + 6F736974696F6E2E5905000000000000008002400A53697A652E576964746805 + 00000000000000A004400B53697A652E48656967687405000000000000008004 + 401453697A652E506C6174666F726D44656661756C7408165465787453657474 + 696E67732E466F6E742E53697A65050000000000000080034015546578745365 + 7474696E67732E576F7264577261700804546578740604636F6D70000005544D + 656D6F00095374796C654E616D6506036C6F6719546F7563682E496E74657261 + 637469766547657374757265730B0350616E074C6F6E6754617009446F75626C + 655461700011446174614465746563746F7254797065730B000E5374796C6564 + 53657474696E67730B055374796C6509466F6E74436F6C6F7200185465787453 + 657474696E67732E466F6E742E46616D696C790608436F6E736F6C617305416C + 69676E070A4D6F7374426F74746F6D0A506F736974696F6E2E59050000000000 + 0000C004400A53697A652E576964746805000000000000008F08400B53697A65 + 2E4865696768740500000000000000C006401453697A652E506C6174666F726D + 44656661756C74080E56696577706F72742E576964746805000000000000008F + 08400F56696577706F72742E4865696768740500000000000000C0064000000D + 54416E69496E64696361746F7200095374796C654E616D650603616E6905416C + 69676E0706436C69656E7407456E61626C6564090B5374796C654C6F6F6B7570 + 0615616E69696E64696361746F72686F727A7374796C65074869745465737408 + 0C4D617267696E732E4C65667405000000000000008003400B4D617267696E73 + 2E546F7005000000000000008001400E4D617267696E732E426F74746F6D0500 + 0000000000008003400A53697A652E57696474680500000000000000BE07400B + 53697A652E4865696768740500000000000000C000401453697A652E506C6174 + 666F726D44656661756C7408000006544C6162656C00095374796C654E616D65 + 060673746174757305416C69676E0703546F700E5374796C656453657474696E + 67730B0646616D696C790453697A6509466F6E74436F6C6F72000C4D61726769 + 6E732E4C65667405000000000000008003400B4D617267696E732E546F700500 + 0000000000008002400A506F736974696F6E2E5805000000000000009005400A + 506F736974696F6E2E5905000000000000008002400A53697A652E5769647468 + 0500000000000000BE07400B53697A652E486569676874050000000000000088 + 03401453697A652E506C6174666F726D44656661756C74081A54657874536574 + 74696E67732E466F6E742E5374796C654578740A0D0000000007000000000000 + 00040000000454657874060673746174757300000C5450726F67726573734261 + 7200095374796C654E616D65060B70726F677265737362617205416C69676E07 + 06436C69656E740748697454657374080B4F7269656E746174696F6E070A486F + 72697A6F6E74616C0C4D617267696E732E4C6566740500000000000000800340 + 0B4D617267696E732E546F7005000000000000008001400E4D617267696E732E + 426F74746F6D05000000000000008003400A53697A652E576964746805000000 + 00000080C307400B53697A652E4865696768740500000000000000C000401453 + 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 + 061470726F67726573736261726D696E697374796C650556616C756505000000 + 00000000C804400756697369626C650800000754427574746F6E00095374796C + 654E616D6506096C6F67627574746F6E05416C69676E07094D6F737452696768 + 740A506F736974696F6E2E5805000000000000008308400A53697A652E576964 + 74680500000000000000C004400B53697A652E48656967687405000000000000 + 00C004401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B7570060E6C6F67627574746F6E7374796C65000006544C6162656C00 + 095374796C654E616D6506066672616D657305416C69676E07094D6F73745269 + 676874084175746F53697A65090E5374796C656453657474696E67730B064661 + 6D696C7909466F6E74436F6C6F72000C4D617267696E732E4C65667405000000 + 000000008002400D4D617267696E732E52696768740500000000000000800340 + 0A506F736974696F6E2E580500000000000000E607400A53697A652E57696474 + 680500000000000000C004400B53697A652E4865696768740500000000000000 + C004401453697A652E506C6174666F726D44656661756C740816546578745365 + 7474696E67732E466F6E742E53697A6505000000000000008003401554657874 + 53657474696E67732E576F72645772617008045465787406066672616D657300 + 000000} + end> + Left = 112 + Top = 16 + end + object TrackBar1: TTrackBar + CanParentFocus = True + Min = -1.000000000000000000 + Orientation = Horizontal + Position.X = 168.000000000000000000 + Position.Y = 296.000000000000000000 + Size.Width = 697.000000000000000000 + Size.Height = 17.000000000000000000 + Size.PlatformDefault = False + Value = -1.000000000000000000 + OnChange = TrackBar1Change + end + object RenderProgress1: TRenderProgress + Size.Width = 649.000000000000000000 + Size.Height = 48.000000000000000000 + Size.PlatformDefault = False + Position.X = 240.000000000000000000 + Position.Y = 24.000000000000000000 + Composition = 'comptext' + ST_WaitingForAErender = 'Waiting for aerender...' + ST_Rendering = 'Rendering' + ST_FinishedRender = 'Rendering finished' + ST_RenderError = 'ERROR: See log for more info' + OutFrame = 100.000000000000000000 + MemoVisible = False + IsError = False + Log.Strings = ( + '') + end + object CheckBox1: TCheckBox + Position.X = 24.000000000000000000 + Position.Y = 296.000000000000000000 + Text = 'IsError' + OnChange = CheckBox1Change + end +end diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.pas b/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.pas new file mode 100644 index 0000000..c549ea5 --- /dev/null +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.pas @@ -0,0 +1,42 @@ +unit RenderProgressUnit; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, + FMX.RenderProgress, FMX.Controls.Presentation, FMX.StdCtrls; + +type + TForm1 = class(TForm) + StyleBook1: TStyleBook; + StyleBook2: TStyleBook; + TrackBar1: TTrackBar; + RenderProgress1: TRenderProgress; + CheckBox1: TCheckBox; + procedure TrackBar1Change(Sender: TObject); + procedure CheckBox1Change(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.fmx} + +procedure TForm1.CheckBox1Change(Sender: TObject); +begin + RenderProgress1.IsError := CheckBox1.IsChecked; +end; + +procedure TForm1.TrackBar1Change(Sender: TObject); +begin + RenderProgress1.Value := TrackBar1.Value; +end; + +end. From 403b31a060aee03791b9c791d080229ce6016d99 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Sat, 5 Jun 2021 21:45:19 +1000 Subject: [PATCH 20/29] Added a build command for easier compilation --- build/AErender_Launcher.ciproj | 17 +++++++++++++++++ build/build.bat | 9 +++++++++ 2 files changed, 26 insertions(+) create mode 100644 build/AErender_Launcher.ciproj create mode 100644 build/build.bat diff --git a/build/AErender_Launcher.ciproj b/build/AErender_Launcher.ciproj new file mode 100644 index 0000000..69a7982 --- /dev/null +++ b/build/AErender_Launcher.ciproj @@ -0,0 +1,17 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/build.bat b/build/build.bat new file mode 100644 index 0000000..1c8889a --- /dev/null +++ b/build/build.bat @@ -0,0 +1,9 @@ +@ECHO off +@setlocal + +set "msbuild_path=%WINDIR%\Microsoft.NET\Framework\v4.0.30319" +set "BDS=C:\Program Files (x86)\Embarcadero\Studio\21.0\" + +::"%msbuild_path%\msbuild.exe" /t:build src\AErender_Launcher.dproj + +"%msbuild_path%\msbuild.exe" /t:build AErender_Launcher.ciproj \ No newline at end of file From 979ea25929d1d1df813509a8c9554a7f04a736fa Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Sat, 5 Jun 2021 22:08:59 +1000 Subject: [PATCH 21/29] Updated build script and added build instructions --- build/README.md | 39 +++++++++++++++++++++++++++++++++++++++ build/build.bat | 2 -- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 build/README.md diff --git a/build/README.md b/build/README.md new file mode 100644 index 0000000..0135f8e --- /dev/null +++ b/build/README.md @@ -0,0 +1,39 @@ +# Building AErender Launcher +## Step 1 +To build **Launcher** you first of all need to install a RAD Studio *(Delphi, we don't need C++Builder here).* There is three options how to do it: +### Option 1 - Legal, Free, but outdated +1) Go to https://www.embarcadero.com/ +2) Go to Free Tools -> Delphi Community Ed. +3) Click on "Get community edition free" +4) Complete form, download and install Delphi Community Edition 10.3.3 with macOS/OSX dev tools + +**Downsides:** You will have outdated version of Delphi. If you try to build **Launcher**, it will build, but I won't guarantee you 100% functionality, because there was a lot of bugfixes since 10.3.3 to the newest version + +### Option 2 - Legal, but Trial +1) Go to https://www.embarcadero.com/ +2) Go to Products -> RAD Studio +3) Click on "Start a Free Trial" +4) Complete form, download and install RAD Studio Trial 10.4.2 with macOS/OSX dev tools + +### Option 3 - Illegal, but no Trial +1) Find whereever a pirated version of RAD Studio Architect 10.4.2 +2) ... +3) Install and crack RAD Studio Architect 10.4.2 + +*btw, I don't support this, but oh well...* + +## Step 2 +### If you have MSBuild installed and you want to build for Windows +To build only Windows versions of **Launcher**, go to `/build/` folder at the root of the repository and start a `build.bat` file. Both x64 and x32 versions will be built into the following folders: +```text +/src/Win32/Beta/AErender_Launcher.exe +``` +```text +/src/Win64/Beta/AErender_Launcher.exe +``` + +### If you don't have MSBuild installed or you want to build for macOS +1) Open `/src/AErender_Launcher.dproj` +2) Change project's **Build Configurations** to "Beta" (if it's not already) +3) Select needed platform by changing it in project's **Target Platforms** (double click) +4) Compile project by `Shift+F9` or going into `Project` -> `Build AErender_Launcher` \ No newline at end of file diff --git a/build/build.bat b/build/build.bat index 1c8889a..4ab4d4f 100644 --- a/build/build.bat +++ b/build/build.bat @@ -1,6 +1,4 @@ @ECHO off -@setlocal - set "msbuild_path=%WINDIR%\Microsoft.NET\Framework\v4.0.30319" set "BDS=C:\Program Files (x86)\Embarcadero\Studio\21.0\" From 2683f4008215f91fe27f61935de82d433a0f55e5 Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Fri, 17 Sep 2021 12:47:57 +1000 Subject: [PATCH 22/29] Various code changes Some work done on making a new threaded rendering system Updated styles Added build scripts --- src/AErender_Launcher.dpr | 9 +- src/AboutUnit.fmx | 3329 +++++++++-------- src/AboutUnit.pas | 2 +- src/ImportUnit.pas | 2 +- src/MainUnit.pas | 502 +-- src/MainUnit.vlb | 14 +- src/OutputModuleEditorUnit.fmx | 4 +- src/OutputModuleEditorUnit.pas | 10 +- src/RenderingUnit.fmx | 48 +- src/RenderingUnit.pas | 531 ++- src/SettingsUnit.fmx | 60 +- src/SettingsUnit.pas | 28 +- src/lib/AErenderLauncher.AerenderParser.pas | 11 + src/lib/AErenderLauncher.IO.pas | 20 +- src/lib/AErenderLauncher.Math.pas | 10 + src/lib/AErenderLauncher.Rendering.pas | 287 +- src/lib/AErenderLauncher.SysUtils.pas | 97 + src/lib/AErenderLauncher.Types.pas | 66 + src/lib/AErenderLauncher.Values.pas | 7 + .../TCompLabel/Test Project/CompLabelUnit.fmx | 1 - .../Package/FMX.RenderProgress.pas | 34 +- .../Test Project/RenderProgressUnit.fmx | 26 +- .../Test Project/RenderProgressUnit.pas | 9 +- src/lib/plugins/AEP Parser/build.bat | 12 + .../AERFMXStyleMacOSAnimated.style | 247 +- .../AERFMXStyleWindowsAnimated.style | 346 +- styles/AErender Modern/AERFMXStyleMacOS.style | 186 +- .../AErender Modern/AERFMXStyleWindows.style | 306 +- 28 files changed, 3289 insertions(+), 2915 deletions(-) create mode 100644 src/lib/AErenderLauncher.SysUtils.pas create mode 100644 src/lib/AErenderLauncher.Types.pas create mode 100644 src/lib/AErenderLauncher.Values.pas create mode 100644 src/lib/plugins/AEP Parser/build.bat diff --git a/src/AErender_Launcher.dpr b/src/AErender_Launcher.dpr index 9768c83..3bc3441 100644 --- a/src/AErender_Launcher.dpr +++ b/src/AErender_Launcher.dpr @@ -35,6 +35,7 @@ uses FMX.Ani in 'lib\FMX.Ani.pas', FMX.TreeView in 'lib\FMX.TreeView.pas', FMX.CompLabel in 'lib\Components\TCompLabel\Package\FMX.CompLabel.pas', + FMX.RenderProgress in 'lib\Components\TRenderProgress\Package\FMX.RenderProgress.pas', SplashScreenUnit in 'SplashScreenUnit.pas' {SplashScreenForm}, MainUnit in 'MainUnit.pas' {MainForm}, SettingsUnit in 'SettingsUnit.pas' {SettingsForm}, @@ -46,7 +47,6 @@ uses OutputModuleEditorUnit in 'OutputModuleEditorUnit.pas' {OutputModuleEditorForm}, {$IFDEF MACOS} Mac.CodeBlocks in 'lib\Mac.CodeBlocks.pas', - MacApi.Dialogs in 'lib\MacApi.Dialogs.pas', {$ENDIF MACOS} {$IFDEF MSWINDOWS} FMX.Taskbar in 'lib\FMX.Taskbar.pas', @@ -56,8 +56,11 @@ uses AErenderLauncher.Math.ExpParser in 'lib\AErenderLauncher.Math.ExpParser.pas', AErenderLauncher.Rendering in 'lib\AErenderLauncher.Rendering.pas', AErenderLauncher.IO in 'lib\AErenderLauncher.IO.pas', - AErenderLauncher.Math in 'lib\AErenderLauncher.Math.pas', - System.Types.Nullable in 'lib\System.Types.Nullable.pas'; + AErenderLauncher.Math in 'lib\AErenderLauncher.Math.pas' {/System.Types.Nullable in 'lib\System.Types.Nullable.pas';}, + AErenderLauncher.SysUtils in 'lib\AErenderLauncher.SysUtils.pas', + AErenderLauncher.Types in 'lib\AErenderLauncher.Types.pas'; + +//System.Types.Nullable in 'lib\System.Types.Nullable.pas'; {$R *.res} diff --git a/src/AboutUnit.fmx b/src/AboutUnit.fmx index 6ca640d..f1366ef 100644 --- a/src/AboutUnit.fmx +++ b/src/AboutUnit.fmx @@ -53,107 +53,107 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000080000000800806000000C33E61 CB000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 0C7E49444154785EED9D096C1CD519C7FF6BEF61EFAED7EB24CE65C70E09CE01 - 499CD8F1DA69D522E821A196569510AA5AD152A456D0500857522804016A55B5 - 95420B885E2A1515BDA8408552540482A05610C747123B212124244E6292D8F1 - BD6BAFF7EAFBE6209777E6CD78D733EB793FE9CBCEF7BC99B5FCFDF77BF71B08 - 0402814020100804028140201008040207E0525E6702F5B366F2330B91CC25AF - 7925DFC1A0FB931529A6FA82EC50E0C9D28AA97E5EC84730D42017337333F330 - 0BC05FB916A5157528F22E4491AB8495092E259D99407AF234C6070F23D6D7C5 - 4AA2CC12CC92CC52CC722E865C0A400D3C05DD0B9FAF12C1A53722BCE406F8E7 - 47D88F7CF426012F993862675B3174E2158C1DFB07E2F13E5638C98CC4903321 - E44A00E703EFF556A172FDDD0854DF0C5F6940FAA9607AC4C7A3889EFC13FAF6 - ECC0E4E4295672A110A6452E0440753BA5793FE6ACB805951BB6C3EB0E4B3F11 - E496C9E410FA3A1FC3C0077F645E8C19550FD44E30CD740540C167A9BD643E6A - 5B9E42A8EACB72B120AF8C9E7815C75A37031367991767665A04D311801C7CAF - B716355FFC3B4ACBD7CAC58219617CB80B3DAFDFC4AA84E3CC332D026AA99B41 - 0EBECF5785A55F780925E13572B160C6F0942C4059D57518EB7915A91455076A - 97D11066044059C3CBAC1CB5D73E8FD2791BA552C1CCE32EA944C9DC0D183CFA - 32F34CB507CC08805AFB412CA8FF212A967D5D2E12588637580B57910BD133EF - 31CFB00828951B4149FDE5F508D7DD2917092C87624131911AE4C6626AE4CD94 - FA2963F8B168E3C3F0FAA8EB27B003140B8A09C5468E1177E3DEA800BCF0B33A - BF6CE1757291C036504C283672FB2C2F02206595A0A2EEDBB22BB01D726C689E - 85BB6DC72B0035FD87105E78BD5422B01F726C42CCB8AB012302F020B0388222 - 3F7D80C08E506C2846F2D07C4E0540EFF32038B7497605B6458E1109802BB63C - 6F222591B9E109AF944A04F6C5175EC1FEA5B11A356E9A18A902DCF00516C9AE - C0B678028BD9BFAA0074E1CD00F4BE62147BCBA512817D29F2AA8D408A59CE32 - 00E1422A45CA12D899748ABB014818118060162204E07084001C8E1080C31102 - 703842000EA7E004E0F178E0F7FBB9ADB8987B62CC91F0F417492434C73C1FCB - BFB413FEF052A9D422EEBA771BAE5AC3BF00794F473B9E797287E23980D8D031 - 1C79F51A76454BC6690389E612B182CB002525C6B615AE5D578F4030A878824B - 29380194872B942B3E8ADD6E6C6C6A563CC1A5149400CACA42983377AEE2F113 - D9F429E54A7029052580F50D8D70B9B887B93F61F9952B3077DE3CC5135C4841 - 096063A445B932068926D222B2C054148C00CACBC358B16AB5E2194708606A0A - 46008D9166141599FF7517575563494DADE209540A460091E64DCAD5D474EDDB - A35C654734062FA7200430AF723EAE587EA5E25D4E3A9DC6BFFEF992E265A789 - 89C8E52A18CDCF0805F1D7A0C06971A2E7388E1D3D8273FD748C4E762A2AE6B0 - 76C42AC5334F59288450797956F37A69E0343B7E7F000D4D117CEDC69B70EB77 - 6FC76D776CC18285D62CB72C88A1E0471EFF291657572BDEE5FCE7DFAFE0C517 - FE866F7EEB3BF8ECB59F534AA7E67FEFBC8DE79EFDBDE2198702FCF3279E56BC - A9191E1EC2C3DBEE453C4EE7369CA78AB543AEBFE1ABD8D0D804B7FBE2D57534 - 5C4DC3D6D366B60D0557552FD10C3ED1BD6F9FFCDAB5577AD5A26163449A5032 - CBD8E8A854E568413D96D5579F9FAF28292DC5376EBE050F3DF613299B5D1A7C - 2BB1BD00F4D2FFD8D8183E3C7C48BA7EFFC07E241224FAEC94FAFD585BBF5EF1 - 8C43C1A7CFD4A3A6564E94D5353578E8D11FE39AEB3E3FAD5E4CBEB0B5006800 - 474F005D7B3B3FF9464EB294FBFEFE6EE95A8B48CBA7952B734C8C8F2B57D9A1 - 21EB95AB56E3FE07B6A3923562ED8AAD0570C5B2E5AC0750A97853B3B7F3E27A - B3B3BD4DB9CA0E65006A8899452FCB10CB58AF65F396FB0CCF5ECE34B6164093 - CEE85D2291C0816E3A51F53C7BF774E8D6D15407532BDC2C7AF727A855EFF3D1 - 811DF6C6B602A0FA526F1AF7E081EECB5ADA51563F1FFE406E1368D13C8DA161 - 12DE6CC1B60258B9FA2AA9CBA545B66ED39E0EFD6AA06EE52A54CC313EB54C24 - 8500F28F5EE32F93494BE97E2A78FAD3D20CA1CE67642399A4637A734B3EEEC9 - 832D054075340D966871F4C8118C8E8C28DEC50C9CEBC7C9133D8A971DB37303 - 998CB9339A7B7B4FE18DD75FC36F9F79128F6F7F10F7DDF57DDCBDF97BB8E707 - B7A17B9FFE18463EB0A500D6ACAB9756F46AB15FE70FC69305AA97D448034DF9 - 24994C60E75B6FE2B1871FC0A33FDA8617FEF23CDA5B7749022501C76231A9DD - 6215B614805EFA27F6B1FEBF169DEDBB952B6DF2B94EA0A3AD150F6DBB177F7E - EE599C3A794229B517B613808FF59BD7AD6F50BCA939C7523C4D006941DFB033 - A74F2B5E764800669699E931383880DF3CFD2B0C0E0C2825F6C4760258BFA151 - 77368D67B08768DFBD4BB9CA0E8DD85D5997FB936FD229FDB1023B603B01F0A4 - FFF6563A16571F9EEE20D1ECE08522B69A0E0E0683F8D9134F6B6EE7A21678FB - EE56AE9638A5F6C6A6886E8A8F46C7B075CB1DDC5DB13BEFD98AABD7AE53BCA9 - 39D7DF8F07EFDFA2783348214F07D354ADDE5E3E0AE6C64833CB142DBA46EFE3 - A9DF0381200B289DB5EC3C6C25009EF49F2F9C5A0DD84600E18A39D2F0AC5550 - CFA3B4B454F19C836D04D01469C94B778C175A25A437FA381BB18F005AAC4BFF - 2A914DD35B285288D84200F3172C44EDD22B14CF3A68054FD8E0EEE342C71602 - B0B2F17721D21A04D67B7012B61040C406E95FA5D961D580E50341B45F8F56CD - EAF1EBA77E899EE3C714CF38B4BBE89EAD0F289E368F3CB815A73FEE55BCCB11 - 0341398467366E6464585AFC493B7FCCDAA1F7F7A3F7D449E58EDA38290B582A - 0079544FBFCEDDDBD1CEB510538F36CE3904AA92ACEC92CE24960A6079DD0AAE - 235F3A3867FFF4D8BD8B4F00545DD0B26E2760A900785AFFB15894A5EF038A37 - 3DCE9E39CDDD8E70CA5672CB0440933E3453A7C7BE3D9D48A572B76072F7AE77 - 952B6DA86A72C22193960960D555574BA77EE9C1BBB48B97B6D65D5C53C9C160 - 99A103290B15CB04C093FE69D3C7FEAE8B77FE4C175A317CF4C8878AA78D137A - 039608C0E3F1624383FE53E769A934CF3E3CA3B4713606EB3734486B14673396 - 08803667D29E793D729DFE55DADB7671752BBD5E1F97500B194B0440EBFEF5A0 - F4DFB557FFE027330C0F0DE1D041BE9E457D43A372751E9EA563B41FA010B064 - 28D81F082014D2DEF7178B46A511C07C41DBB669118A1EB4696374F4E21D4874 - C8049D02A205755F4786F3F7FB67C5E050B0E57301821C33DB8F8B17E4162100 - 872304E07084001C8E1080C31102703842000E4708C0E10801381C210087634C - 00C5C5D69C6526E0C7608C8C082083C4E4D4E7B209EC831C23EE73EC78044037 - 234B2339A67FEA92C05AE418D104901A374D783300DD2889F830DF5A2A8175C8 - 31A26A4037F8046F0620452531D637F5D9AC02FB20C78804A066014D783300DD - 2C81D8B976A493A37291C076506C2846142B3966BA18A902D84D13A31839F186 - 5C24B01D526C588C6401E4AC0A50A1B4328EBE0FFE2ABB02DB21C7869E67C3DD - 1534920128A58C63A2BF1323BDFF954A05F6816242B19105C055FF13463200DD - 94D6988DE26CC70EC43386061C047984624131A1D870AC03BC10739BDF92F131 - B8518AC082D9BD68BE5018E8FA1D867A5E645743CCE8193A7915809C5AA2670F - 22B8A011DE6095E40BAC217AA61527DFDBCEAEFA99C598A5A89817B3022085A5 - 31DADB86B2459F81BB547F81BD20F74C0C7E88E33B37B3EE1F1D7D62A8F5AF62 - 56006429F6C11318EE7917C1C59BE02931F704268139624387F0D19BB723153F - C23CDA816228F5AB98DD00AF8A20894C2A8A918F76C2135A869272B169642618 - EA791B27DFDE8254E22879CC28F88652BF8A5901102400525C02E9F404467ADE - 41726208C1F9F57015DBFF898985483A318ADEF61D38D3F90BF6373FC54AA615 - 7C62BA2721D1FFA7AE24059C9EC55A8162DF5254AEB91573EABE82E262E79DBE - 9C0F52A9710C1C7E197DDD7F60299FCEB819641665A6A67DFA329A2257476191 - 08E899ECB499BE8C5988096111CA6BAF4779CDB50854AE81AB48FB3930828BC9 - A42711EDEB666DACB7307CFC3516F88F5929D5F5F488B10966DCE3FD5AE44A00 - 04DD8BAA145508F4EDA7ACE007DC21F8C3ABE00BD5C21D9807978B32462E3F7B - 36904126134732DA8FF8C871D6C83BC89A58B4B883BA76F46DA7113E35F094F2 - 4D7FEB2F241F415085A08A81BEF91470BA26A36C21823F35E7DB55B2518AA791 - 3D35E8390BBC4A3E0341F726A38093912044F0F5514540C1A657B58ECF69E055 - 662A18EAE788E0F3A1063B2F41170804028140201008040281402010380EE0FF - BD70E546015DCDEF0000000049454E44AE426082} + 0C7D49444154785EED9D096C14E715C7DFDADEC3BBEB5DDB6073186C2E7383F1 + B536ADDA087A48A84DAB4A5154B54A9B466A959434219040A14014A256555B89 + B4094A2F3555AAF44A95A84969D42851206A95607C806D6E4CC08003D8F8DEF5 + B157BF37478C8D77E69BF1AE67D6F37ED263E77D5E662DBFFFBEEFFE06088220 + 0882200882200882200882B00036E9753A903F6B3A3F331D894F784D29A90E06 + DE1F2D4332D927128381478B4926FB292115C190839CC92C8B999D9907DC05EB + 203BAF14321C7321C3E66265C44462F161888DDE80A19E0B10EA6C6125416661 + 6611665166491743320520071E83EE00A7B300BC8BEE83DC85F782BB30C07EE4 + C43711BCC4472074AB0E7AAFBE098397FF0123239DAC7094198A216942489600 + C602EF701441C18627C05DF400B8DC1EE1A7C4D4180E052174FD4FD079E2208C + 8E5E6725770A614A24430058B7639A7743FEF207A1A07C3F38B272859F10C965 + 34D20B9D4D07A0FBFC1F99176286D503B6137433550160F0596A77154249ED0B + E02BFAB2584CA49481AB87E172DD56961A6E316F84996E114C450062F01D8E12 + 28FEE2DF21DBBF4E2C26A685A1BE16687FFB7E56255C619E6E11604B5D0F62F0 + 9DCE2258F485D7C195BB562C26A60DBB6B0EE4146D86C1F6C3108D6275207719 + 35A1470098351CCCFC50B2E915C89E5D259412D34F96AB005CB3CAA1E7D21BCC + D3D51ED023006CED7B614ED90F216FC9D7C522C2301CDE12B065D82078F343E6 + 691601A6722D48A9DF5F06FE658F894584E1602C302642835C5B4CB5BC19533F + 660C37CCABDA074E1776FD083380B1C098606CC4187137EEB50AC0016E56E7E7 + CCDD2C1611A6016382B111DB672911002ACB0579A5DF165DC27488B1C17916EE + B61DAF00E4F4EF83DCB95B8412C27C88B1F131E3AE06B408C00E9EF901C870E3 + 071066046383311287E6932A007C9F1DBCB3AA4597302D628C50005CB1E57913 + 2A092D0BECB92B8412C2BC387397B37F71AC468E9B225AAA802C707AE6892E61 + 5AEC9EF9EC5F5900AAF066007C5F26643AFC4209615E321C7223106396B40C80 + D8201A456511662616E56E00225A0440CC404800168704607148001687046071 + 48001627ED0460B7DBC1ED76735B6626F7C49825E1E92FA248708EB910967EE9 + 28B8731709A506F1F88E5DB07A2DFF02E4138D0DF0E2F30725CF02847A2F43DB + E17BD8152E19C70D248A4BC4D22E03B85CDAB615AE5B5F061EAF57F28889A49D + 00FCB979D2151F99595950555D2379C444D24A0039393EC89F354BF2F8096CFC + 9474454C24AD04B0A1A2126C36EE61EE4F58BA6C39CC9A3D5BF2883B492B0154 + 056AA52B6DA06802B5940526236D04E0F7E7C2F295AB244F3B2480C9491B0154 + 066A202343FFAF3BBF68012C2C2E913C42266D0410A8D9285D4D4E4BF309E92A + 31D418BC9BB410C0EC824258BC7499E4DD4D2C16837FFDF375C94B4C351391CD + 96369A9F16D2E2AF818153E26AFB15B87CA90D6E77E1313A89C9CBCB67ED8895 + 92A79F1C9F0F7C7E7F42733870E034316EB7072AAA03F0B5FBEE8787BEFB083C + FCE8369833D798E596693114FCF4B33F85F90B1648DEDDFCE7DF6FC26BAFFE0D + BEF9ADEFC067377D4E2A9D9CFFBD7F045E7EE9F792A71D0CF0CF9F3B247993D3 + D7D70BFB76ED8091113CB7618C22D60ED972EF57A1BCB21AB2B2C6AFAEC3E16A + 1CB69E32336D28B868C142C5E023ADCDCDE26BCB49E155898AAA8030A1A497C1 + 8101A1CA51027B2CABD68CCD57B8B2B3E11B0F3C087B0FFC44C86613836F24A6 + 17805AFA1F1C1C848B17CE09D7674E9F827018459F986CB71BD6956D903CED60 + F0F133D5282E1113E582E262D8FBCC8FE19ECD9F9F522F2655985A003880A326 + 8096934D9F7C234759CA3D73AA55B8562250FB69E94A1FC34343D2556270C87A + C5CA55F0D4EEFD50C01AB166C5D40258BC6429EB011448DEE49C6C1A5F6F3635 + D44B5789C10C800D31BDA865196409EBB56CDDF6A4E6D9CBE9C6D402A85619BD + 0B87C370BA154F541DE3E48946D53A1AEB606C85EB45EDFE08B6EA9D4E3CB0C3 + DC985600585FAA4DE39E3DDD7A574B3BC8EAE70BE7C53681123553181A46E1CD + 144C2B8015AB560B5D2E2512759B4E34AA5703A52B56425EBEF6A96524420248 + 3D6A8DBF783C26A4FBC9E0E94F0B33842A9F918848048FE94D2EA9B8270FA614 + 00D6D13858A2C4A5B63618E8EF97BCF174DFEE826B57DB252F317AE706E2717D + 673477745C8777DE7E0B7EFBE2F3F0ECFE3DF0E4E3DF8727B67E0FB6FFE06168 + 6D561FC34805A614C0DAF565C28A5E254EA9FCC178B2C08285C5C240532A8944 + C270F4BD77E1C0BEDDF0CC8F76C1AB7F79051AEA8E09024501874221A1DD6214 + A614805AFA479A59FF5F89A686E3D29532A95C27D0585F077B77ED803FBFFC12 + 5CBF76552A3517A6138093F59BD76FA890BCC9B9CD523C4E002981DFB09B376E + 485E6250007A9699A9D1D3D30DBF39F42BE8E9EE964ACC89E904B0A1BC527536 + 8D67B00769387E4CBA4A0C8ED82D2B4DFEC937B1A8FA588119309D0078D27F43 + 1D1E8BAB0E4F7710A9B1F04211534D077BBD5EF8D9738714B773610BBCE1781D + 574B1C537B65754035C5078383B073DBA3DC5DB1C7B6EF8435EBD64BDEE4DCEE + EA823D4F6D93BC69249DA78371AA566D2F1F06B32A50C33245ADAAE1FB78EA77 + 8FC7CB028A672D5B0F53098027FDA70AAB5603A611406E5EBE303C6B14D8F3C8 + CECE963CEB601A0154076A53D21DE3055709A98D3ECE44CC23805AE3D2BF4C60 + E3D4168AA423A61040E19CB950B268B1E41907AEE0C9D5B8FB38DD3185008C6C + FCDD89B00681F51EAC842904103041FA97A9B1583560F84010EED7C355B36AFC + FA855F42FB95CB92A71DDC5DB47DE76EC953E6E93D3BE1C6C71D927737341094 + 447866E3FAFBFB84C59FB8F347AF9D3B730A3AAE5F93EEA88C95B280A1021047 + F5D4EBDC938D0D5C0B31D5A8E79C43C02AC9C82EE97462A80096962EE73AF2A5 + 9173F64F8DE3C7F80480D5052EEBB602860A80A7F51F0A0559FA3E2D7953E3D6 + CD1BDCED08AB6C25374C0038E98333756A349F68826834790B268F1FFB40BA52 + 06AB262B1C3269980056AE5E239CFAA506EFD22E5EEAEB8E714D257BBD399A0E + A44C570C13004FFAC74D1FA75AC6EFFC992AB862F852DB45C953C60ABD014304 + 60B73BA0BC42FDA9F3B8549A671F9E56EA391B8365E515C21AC5998C2102C0CD + 99B8675E8D64A77F9986FA635CDD4A87C3C925D474C61001E0BA7F3530FDB79C + 543FF8490F7DBDBD70EE2C5FCFA2ACA252BA1A8367E918EE0748070C190A767B + 3CE0F329EFFB0B0583C20860AAC06DDBB808450DDCB43130307E07121E3281A7 + 802881DDD7FEBED4FDFE09D138146CF85C00916466FA71F144722101581C1280 + C52101581C1280C52101581C1280C52101581C1280C52101581C6D02C8CC34E6 + 2C33821F8D31D22280388447273F978D300F628CB8CFB1E31100DE0C2D069141 + F553970863116384134072DC14E1CD0078A3088CF4F1ADA5228C438C115603AA + C1477833002A2A02839D939FCD4A980731462800390B28C29B01F0666108DD6E + 805864402C224C07C6066384B11263A68A962A80DD343C00FD57DF118B08D321 + C486C5481440D2AA00194C2B43D079FEAFA24B980E3136F83C1BEEAEA0960C80 + 29650886BB9AA0BFE3BF4229611E3026181B51005CF53FA22503E04D718DD900 + DC6A3C08C3714D030E440AC158604C30361CEB00EF44DFE6B7C8C820D8211B3C + 7366F6A2F974A1BBE577D0DBFE1ABBEA6586CFD049A900C4D412BC7516BC732A + C1E12D127CC2188237EBE0DA87FBD95517B310B32816F3A25700A8B0180C74D4 + 43CEBCCF4056B6FA027B22F90CF75C842B47B7B2EE1F1E7DA2A9F52FA3570068 + 51F6C1C3D0D7FE0178E76F04BB4BDF1398087D847ACFC147EF3E02D19136E6E1 + 0E144DA95F46EF0678590411884783D0FFD151B0FB9680CB4F9B46A683DEF623 + 70EDC83688862FA1C70C83AF29F5CBE81500820240C58521161B86FEF6F72132 + DC0BDEC232B0659AFF8989E9482C3C001D0D07E166D32FD8DFFC3A2B9952F091 + A99E8484FF1FBB9218707C166B1E643A1741C1DA8720BFF42B909969BDD39753 + 41343A04DD17DE80CED63FB0948F67DCF4300B3293D33E7E197591ACA3B05004 + F84C76DC4C9FC3CCC784300FFC255BC05FBC093C056BC196A1FC1C18623CF1D8 + 28043B5B591BEB3DE8BBF2160BFCC7AC14EB7A7CC4D83033EEF17E2592250004 + EF85558A2C04FCF66356700364F9C09DBB129CBE12C8F2CC069B0D3346323F7B + 261087787C0422C12E18E9BFC21A796759130B177760D70EBFED38C227071E53 + BEEE6FFD9DA42208B2106431E0371F038ED768982D28F89333D6AE120D533C8E + ECC9414F5AE065521908BC371A061C0D0541C157471601061B5FE53A3EA98197 + 99AE60C89F43C1E7430E764A824E100441100441100441100441580E80FF0389 + 0BE54521A1D3C30000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_128.png' @@ -165,215 +165,215 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000001000000010008060000005C72A8 66000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 19F749444154785EEDDD09745C577907F04FD268345A479225DBB22CDBF2BECA - AB6C67C10990139A94400E3DA4057ADAD3055A5AA05007701A12201020B42914 - 4E810007DAB4612B1438142810B2419A102FDABCE1258A6DD9B2BC681FCD8CD6 - DEEFBD7BD1F358B267E6DD37EFCDBCFFEF9C9BF7EEB36C8F1C7DFF77DF761F01 + 19F649444154785EEDDD09745C577907F04FD26866B48E244BB66559B6E57D95 + 57D9CE82132027349400871E68819EF67481961628D4019C86040804086D0A85 + 5320C08196366C850287020542364813E2459B37BC44B12D2FF2A27D34335A7B + BFF7EE45CF63C99E9977DFBC37F3FEBF736EDEBBCFB23D72F4FDDF7DDB7D0400 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000004066E5C965AE48FC7E72EDFB03774CC9A592D8CF5AD95E20 - EAF35BBF0F5E9F693B40BA54C1F3D25AFCD6ED59291B0B24B1B87999D8F24563 - AAAF58D701669358E4AA3F299AEA5B1B4B5C66856C2A086B317381AB3EAFCFD6 - ACBF472D0192612D686E5CFCB335EBD730D5F7BC6C280A55C4AAA9E22EB8AA15 - CF69A0D2EA2D14AC5C43C1F2155454514F53C57554341E260A86C4D700246934 - 46F1C000E545BB293E789646878ED368FF118AF41EA0E8E533E20B2666688981 - E0F920F07200CC54F4DC02BF6B45456554DAF01A2AAFBF9D4AE7DF4405817AB1 - 1DC05913E3672972FE791A3AFB738A9C798AE2F161B175DCD25410248681E778 - 3100662A7CDEC3ABC22FA4F0C21BA872D95B29547B27058B4AC53600778CC623 - 14BBF813EA3FF90D1AE87A416C19134D05C16CA302CFF05A002416FE74D11315 - D19C957753F5EA7752A87CBDE803784B6CE820F51EFD025D3EF643D18B8B660D - 83C420F004AF04802A7C55FC6A8F1F345AF5F23B68CEBAFB2854B642F401BC2D - 367C9C2E1FFA24F59EF8A9E88DCA661D11786634E08500B016BF2A7CDEE30729 - 54B59216EC7C984AAB6F117D80EC12E97D96CEBD783FC5FA8E891E87801A1170 - 10782204B8E0DCA40A5F0DF7B9F0F96C7D09CD6DFA6B5AD4FC650A962F177D80 - EC132C5E427316BD55FC68C729D2D321B7BABED7B7E2E2738B75AFCFCD3CCE2F - 2CADA3C5AFFA1C15CFB955F4017243E4E2B374E6F977D358A45BF4D4F90175F9 - D0B591805B23006BF1AB63FD622AA9DD42CB6EFD0E05C34DA20F903B82A54BA8 - AAE10D14B9BC97C6462E892DD682776D54E04600CC5CFC958DB7D3E25D8F537E - 518DE803E49EFC60055535DE4DA391A314EB3F2DB658F7FCBE1801CC54FC210A - 37BE9EE66FFB0A0502C5A20F90BBF2F282543CEF2E1A8F1EA778FFCB628BAB21 - 90C90098ADF8EF12C5FF450A06F91C0040EE2B2828102170870881136E8740A6 - 024015BF3ADB6F0EFB2B1A6EA1C5377D850A02DC07F00F0E81F0C2D789438116 - E35903976E12CA540070E173004CEFF943956B68F16BBE41F9F9B895177C2A2F - 40E50B6FA7A1AE27693CD62736A8005021E0781870613A2D71E85F2486FB73A8 - E116B1E72F088B3E807F710D702D704D706D9835C2B5A2EAC6514E8F00ACC56F - 5EE7E79B7C1A6EFA3495D6DE2CD60120208ABFA8A28EFA4F3D297A19BD55D8E9 - 00E011C695C7FD7396BF816AD6BE5FAC038052145E4B13D1E314ED3D297AD607 - 87986341E0E42180DAFB4F074061C95C9ADFF431B10E0089B8360A4B6BC51AEF - 2CB966B876541D39221301303DFC9FB76937E517E3461F8099706DCCDB78AF58 - E34365AE19C7CF05381500EA434FEFFD4BAB575345E35BC53A00CC866B846B25 - 43A300A703607AEF5FBBE97DA2E7F4390780ECC635C2B592A151801301A03EEC - F4DEBF44245A79DD1D621D00AE876B856B2603A30027038093CB0C809AB57F21 - B701C0F5E5C99A5101E0D828407700A80FC87FAE39FC2F2CA9A2B24577195B01 - 20395C335C3BD38701AA56B58680532300FE73CDBD7F78C91BA9200F4FF901A4 - 826B866BE7EAC300AD7407802A7E15008554D170A7580240AACCDAE111800A00 - ED21A03300D407E3A579FC1F289F4BA515CDC65600480DD70ED7901900EA3C00 - D316023A0380F1079B0E80F0FC5D6204A3FBEF00F009513B460D5D1100DA8A9F - 391100FC679A0150326F276F0480349935A402806BCBB301A0D2693A00CA6A37 - 8B2500A4CBACA1C400D016023A03804D0740614905054A96185B01203D5C435C - 4B1E1F01A8545201906FBC9E5BF38705F0A13CF9721CB3AEAEAC35DB740580A2 - 02A0804255D8FB03E810AAE65ACAAA7300F91408D4F14600B02950B040FCD7AC - ABE93AD3426700B0E9100886798E3300B0CBAC25EDC5CF740580FA60AAE5537E - 804F5C00805D662D59034035DB748F0098FC70F925661700EC319EA5D156F456 - 4E048029DFB876090076E5E7F1F3008E70700400001A65C50800850FE02CAD35 - E6DC210000781E0200C0C71000003E860000F0310400808F2100007C0C0100E0 - 630800001F430000F8180200C0C71000003E860000F0315D0F167090F09C65FC - 4EF352D1C2D4F8EAC7A86CC1AD62DDF7AAE7CCA1BC3C67B236168D5224322C7B - 909386CF3D439D4FFF95581B102D225A5CB409D12645B30501E0B05DB7BE86DE - F6A77F2E7BFA4D4E4ED2A73EF6613AF54AA7DC0239C7C100C02180C3C2959572 - CD19F9F9F9B4F3C69B650F203508008771813A6DDB8E9D19F97B20F7E0A7C661 - A5656572CD391515615AB36E83EC01240F01E0B070B84AAE396BC70D37CA3580 - E421001C56535B2BD79CB569CB560A06F91C2C40F210000E0A1416D2BCF99979 - 4152515188366DDE227B00C941003868AD382E2F142190293B6EB849AE012407 - 01E0A0ADCDDBE55A66AC59BF81CACBF14226481E02C021050505D4B471B3EC65 - 06FF9D990E1DC86E080087AC5BDF4425A57C536466E1300052810070C8F69DEE - 5C965BBA7C05D5D4CE953D806B430038802FC7356DCEECF0DFCAADF081EC8300 - 70C0C6CD5B8CCB726EC16100240B01E080E61D37C83577CCAFABA3458B97C81E - C0EC10009AF189BF751B9A64CF3D1805403210009A6DD9DA4C814040F652D7DE - D642E3E3E3B297BE663C210849C04F8866CD3BED0DFF0F1FECA013C77E2B7BE9 - 0B5756D1EA356B650F606608008D78F28F95ABD6C85E7A3A4F9EA08EF636D9B3 - A7195703E03A10001A6D6BDE616BD81D8FC7E9CCE95374E460BBDC62CF667138 - 120C06650FE06A08008D9A77D8DBE3F2D07F626282CE9EEDA2BEDE5EB9357DC5 - C5C5D4B4C9BDFB11BC8C839A1FD55EB17295F128354FABC6F74F1485DCBB7CEB - 064C0AAA49EDDC79F4F1471E95BDF47CFFBBDFA6FFFDF18F8CF53FF9B3BFA49B - 76D9FFE76B6B39405FF8DC3FCB9E7BEA16D4DB3A393A363A4AE7CF77CB5EEAB8 - E0B9D8D7376DA2E562D9B0681115165E3D3A7AF2673FA5FFFAD613B2E7119815 - D8FBEE78FD1BE8EE3FB847F6D2F3898F3EF0BBD97DB76EDB4EEFF8DBF718EB76 - F015850FBCF75DAE4E1DBEA47129DDF7E043B297BE5F3FF70CFDC7D7BF2A7BC9 - A9AE9E43BB5EFD5ABAF155BB281CBEFE04AD2F3CFF2BFAB7AF3E267B1E815981 - BDCFEEEDB7C3C34374FAD42BB24774E4F02163CA6FBB78AFEBF61382B1584CAE - D973B31811D52F6C90BD6BE313B23C1D3B8FCA389C93297E3F420068C03F940B - EA17CA5E7A0E75B4D3D4D494EC118D8C44E8E489E3B267CF76976F0AEABD7C49 - AED9B775FB0EB936339E85E9CEBBDE481FFFD4A3C63B190A6C1C76F801024003 - 1D0FDF1C6C6B956BD30EB65FBD2D1D7CEC3BA7A646F6326F541CBFC7358D0256 - AC5825D7AED6B874193DF0D14FD01BDFF4660A16F1D1285C0F02C0A6BCBC3CDA - B67DA7ECA56762629C3A3AAEBEF6DFDEDA22D7EC73FBF98481013E7CB5AF6186 - 671CF8FF010FF33F70FF878DE720207908009B78AF6377E6DFA3470E53746444 - F6A69D3BDB45172FF4C89E3D6E3F1B30A2E924245FDAACACAA963D322EDBBDF3 - DDEF334EC0E2D6E7D4E15FCCA6ED1AE6E36F3DB05FAE5D8D2FE3E9C0E7281636 - 2C92BDCCD375229055579B01C0F31FDEBBE743C6E3D7901E04800DBCC7D9BAED - DA27A592D17E8D226F39B04FAED9E7E628406700F0DB962AC261DABDE77E3CF6 - 6C1302C08655ABD71A3F8876BCD2F932F5F7F7C9DED54E1E3F268E9FFB65CF1E - 7E50898F97DDA0E392A65253534BEFBD778F717311D88300B0C1EE937FACAD65 - F6E13FE34B83BA0E03AAC4B1F3CA55AB652FB3E2717D238037DDF396A4EF0780 - 6B4300A489AF376FD966FF069BEB05006BDDAFEF30C0ED7B0274C0034EFA2000 - D2B47E43937146DA8E4B172FD2D9AE2ED99BDDD12387281A8DCA9E3D7C8B3187 - 57A6E93C04007D100069D2715D3D99BD3FE327043B66B851281DC52525B4A169 - 93EC654E2CA627C0402F04401AF8DAB38E4B4FC906006B6BD17818A0E1DC45CA - A6EF72060F4100A461D3E6AD333E4A9A8AC8F0301D4F61EAAF83ED6D5AE60A64 - 4D9BB61823814C8A46AFBED109DC870048C3760DC37F9EFC3395E362BE8E7EF4 - F021D9B3C7784250C3094CC87E088014959696196FE1B5AB358D1B7C5AF6EF95 - 6BF6E9B88331153CDD19780F022045FC382ABF85D70E7E3A8E67FF4D158F1AAC - 8F0CDBC193975AEFA9771A9FC8CC0603FD7A6EBACA1698112845BBF77CC8F6CD - 34BCF7FFE2E73F2B7BA9D9F3C047A871E972D9B3E77BDFF926FDFCA73F963D67 - BDF6F6DFA37BDEF2C7B297596363A3C6642BA75F79857ACE77D3A54B17696870 - D098736162C23C0CCBCFCB33E60EE05FD715B2DA6046206FE03D263F5B6F174F - FE91AEB6167D8F08EFC8F06140269DED3A433FF9D10FE81F3FF110BDF76FDE41 - 9F7EF821FAD6138FD3D3BFFC857149956FC1BED0D34397451870BB78F1029DEF - 3EE7BDE27718022005FCB61D1DF7D21FB41100E99C3B98CDC286C5B66732F292 - E1A1216344F391FB3F480F3D701FFDF0BFBF4B278E1FD376F52417210052A0E3 - E61F7EC6DFCE1459DDE7CE1AC3545D72E11D82BDBD97E989C7BF4E7B76BFC738 - ACE17F23480E022049F3E6D7D1E2258DB297BE8E36FB43F86BCD1F902A0E35B7 - 9E10B46B787898BEF99FFF4E0F7C70373DF7F42FC5B1FE98FC154816022049DB - C4F05F071DD37CEDDFFB1BB9661FCF15B86CF94AD9CB1EFC84E487EFBB979E11 - C7F418E2A70F0190A4ED36DFFAC3060707B4CCF4CB67B4F94CB62E3B6ECCAEC3 - 80AED3A7E88B9FFF8C3102007B100049E08928754C36C97B2D1D6799F9CFD8FF - 92BE5100BFD3D0EEBD0D99343232E2BBB3F54E41002441C7ADBFAC45E373FD3A - 0F034A4A4B697DD346D9033F41005C079F20D371FC3F1289D0D1C30765CF3E7E - 85185FBFD645C7BB0D20FB2000AE63F98A95C6FBE5ECE2C93D75DF0EAB73C250 - 7EBCD9EE0427907D1000D7A1EB851AFB7EF3825CD3E75AB309A78A1F6FDEBCB5 - 59F6C02FF02CC035F089B1473EF37963FE793BF8FAF4D7BEFC05EDD362E5E717 - D0DBDFF92E6D2FC43872A8833EFB4F8FC89E5E3A9F053876F4083DFAC8C3B2E7 - 03783DB83BD66DD848EFF9FBF7CB5EEEE380E2BBE99C78220E0160031E067287 - 2B5367B9884712CDDBFDF53DFB1D0260163CF5F4C6CD5B65CF3F323D5108B80B - 01308BF54D9B7C79569C9F77985FB740F620D7210066E1B7E1BF15EE09F00F04 - C00C78C65C1E01F8151F0664EB1382901A04C00CCC69BF33FFF61CAFA8AD9DAB - 6DDA31F03604C00C74BCF433DBE164A03F200012945754D09AB5EB65CFBFB669 - 98FD18BC0F0190606BF30E6D77D66533BEFB71ED3AFBEF3F006FC34F7A025DF7 - FEE7825C982F10AE0D0160513DA7C678FA0F4CFC8420BF0815721702C0C2CFD7 - FE67122C2A32AE8840EE420058F0BCFF70251C06E4360480C4B7BFF28B32E04A - 6BD6AD37AE8C406E420048B9FC9A2C3B8C270471623467210024FC90CF4EC794 - E8E04D98104458D2B894EE7BF021D9B3A7A3BD35636FDC9D0D8F666EDEF56AD9 - D3E3813DBB8D9769A60B1382D88019819CF5E63F7A1BDDF6BA3B64CF9EC7FEF5 - 5FE8C0BEBDB2E78EFA850DF4E0C73E297B7AFCE807DFA3FFF9E1F7652F750800 - 1B30239073F8A9375D67FFF93DF4765EFDAD0BBF1A5BF70B3271352037F93E00 - 56AE5E43E1CA2AD9B3E7607B1BC5E31CCEEEDBAB7916E2B9F3E61B874A905B7C - 1F00CDDBF55DFBD7F9D65EBBF6697C7598822704738FAF03809F76E3877F7498 - 9818A7B6567DF3F4DBD573BEDB7889A84E3C61281E94CA2DBEFEBFB96E7D93F1 - 5E3C1D8E1E394CD19111D9F306DDA3808A70188F4AE7185F0780CEB9EF0EEC7D - 49AE7987EEF3000C8701B9C5B701100C1651D3E6CDB2670FBF50C34BC37FA5F7 - F225EA3C7952F6F4D8B4659B31653AE406DF0680F1A86B919E475D4F1CFB2D0D - 0D0ECA9EB7BCF4E2F3724D8F5028E4CBF725E42ADF0680CE5B7F5BF6BB7BE3CF - B5F04D49535353B2A707EE09C81DBE0C003EF1B76E4393ECD9A7F335DDBAF5F7 - F7D16F8F1E963D3DD6AEDF4065E5E5B207D9CC9701B0656B33050201D9B3878F - B1FB7A7B65CF9BF66B3E41695C3EDDB65DF6209BF93200744EFBDDEAE1BDBFC2 - 57282626F8D6717D7018901B7C1700E1CA4A5AB96A8DECD9B77F9FF72EFF251A - 1E1EA2A3470EC99E1ECB56ACA49ADA5AD9836CE5BB00D8A671DA6F7EE8E6E285 - F41F91CDA4BD2F3A704F00DE2198F57C1700CD1A27B7C886BDBFD2DAB29FC6C7 - C7654F0F0440F6F35500D4CE9D478DCB96C99E7DADFBBD7FFCAFF06DCA073BDA - 644F8FBA05F5D4B07889EC4136F25500F0EBAE74E1876DF810209BECFBCD8B72 - 4D9F1D180564355F0580CE21AB971EFD4D567B5B0BC5E331D9D383DFA5805789 - 672FDF0440FDC285B4A07EA1ECD977208B8EFF95782C461D6DADB2A7074FA6B2 - 7ACD5AD9836CE39B00A8ACAA966BF6759D394DA75EE994BDECF2FCAF9E936BFA - D4372C926BB31BE8EF936BF6F5F7F7CB35B0CB379382F23075D5EA35142A2E96 - 5BD233393149C78F1DA568342AB7649FC58D4BA9AA4ACF34687C83114FD299CC - 54682B56ADA6529BF32FF0BFFF8913C76824C27363FA04660506F031CC0A0C00 - 4E400000F8180200C0C71000003E860000F0310400808F2100007C0C0100E063 - 0800001F430000F8180200C0C71000003E860000F0310400808F2100007C0C01 - 00E0630800001F430000F8180200C0C71000003E860000F0310400808FE90E80 - 29B9E4098BF5BE8A16C0AFAEACA5E91AD3C0C111C054F6BE3903C0539CAB2527 - 0280136A8A26C706CD2E00D862D69259579A39350298A2F8A0BE97C101F8597C - B057FC577BF1335D01A0D269BA4D8E9E174B00B0CBACA5AB6B4C03274E02729B - A468DF29630B00D863D612BF07505BE12B4E1C02F0079D14C3969362A9F5C302 - F8101F4EBF2C96665D69A63300CC3DBF6AE3B1611A8F6214006007D710D792B5 - B634EE58750700E30FC8AF2E9EA0484F9BB10500D263D690594F666D31CF0580 - B5F855008CD3F0857DBC1100D264D610DF08A402406B0838750EC00C80C8B9FF - 231A551F180052226AC7A8A12B02402BDD8700DCA603201EB944D1C103621D00 - 52C5B5C335746500A83AD342F708407D38330088C6A8FFF42FC412005265D6CE - 98682A00B4163F737604600440E7CF88E231B10E0049133563D4CE1501903523 - 00FEA0FCA147693CD64703DDFC8D0040B2B866B876B886CC5AD25EFCCC899380 - D600E0F48AD3C5234FC8ED00707D53B266E2A2A911800A00AD9C1E01F0871FA5 - 68EF711A3AF794580780EBE15AE19A31F7FE8901A035049C1C01F0318B19009C - 643D6D8F892DBC0D0066C335C2B562EEFD5500588FFFB5722200987514C0DF44 - CC48B4C1CEEF8B7500980DD788B9F7E713E789C7FFDA393502B08E02CC11007F - 43DDFBBF44D1317EB6190012716D708D98C5AF46008E9CFD570AE452B73CB964 - BCCE41934F5313933415BD40150DB719BF0200D37A5E7A88462EB58BB588683C - 0D987504E008A702201187801904B1BE7354145E48A1CA15C6AF000051FFA99F - 8863FFAF89357EF26F44341E05A8E37F47F6FECCC90050A30055FC6600708BF4 - B453E5E25D5410AC127D007F1B8B74D2A967F7881172BFE8A9E2B70EFF1D93A9 - 11806206011F0A0CF7B45155E3EB282FBFC8FC25001F9A1C1FA2CEA7FE8EC686 - 4F8B1EEFFD79E8AFAEFF3B76ECAF642200D448403143802739880F1C172381DB - 4437D34104E00153A374FAB90F50E462ABE8F0717FC686FE8A9B859747F1C10B - 3436789A420DB752419E53972401BC67746A9CBA9F7F9006BA9E133DDEF35B4F - FC59CFFC3BCA8D0050A9668E0C6203676942844071C32D0801F0052EFE1E51FC - FDA79E143D75D28F9BE397FD12B9390298FEE662035D343E788242F5375320BF - 506E05C83DF18911EAF9F53FD0C0E9A7454FEDF955F1F325BF8CEDFD59A60380 - F7FAD66F6CFA1B8D0F7453B4673F95D6EFA440A0CCD806904BE2B11EEA7A6637 - 0D77EF153D2E7EB5F7B7163FD743468A9FB93502982904A6686CA4570C8B9EA2 - 92EAE5142CAB377E152017447A5EA2CEA777D3E8C009D14BDCF3F3493F0E808C - 163FF3C22180FAA6CD363516A3BE9779783442A57337525E5E40AC0364A7A9A9 - 385DE8F81275BDF8A8F8D9BE2CB6A8E25797FBB8F0ADC5CF2D63DC0C00A6BE59 - 5EF24840B5298A5C384283677E45C5958BA8B014A301C83E2317F6D2A967EF13 - C7FBCF8A9E75C86FBDCDD7B5E26789D7E833C9BC1FC06C1C44BCA7E7138021D9 - 4A442B365A65E3AD54BBE1ED142A5F2CFA00DE161B3A45173BBE4CFD9D5CF85C - ECDCB8F0F91ABFBACECF856F3DE6CF78F133370340E1CF60DE226C860037BE3B - 901B078119021C0855CB6EA39A757F288200CF1180F7C4868ED3A543DFA6BE93 - 7C794FEDE9B971D1F370DF3AE49F1EEDBAC80B01C0D4488043C03A1AB006816A - 45545EBF99AA1A7F9FCA1A5E4505F91C0E00EE98988CD2B03854EDEBFC310D9D - 6D115B54B1ABBDBD2A7CEB5E5F15BEABC5CFBC12004C8500370E81C42008CAA5 - 6A412A282A1761B0932AEA6EA0D0FC4D54149A27B603388B2FE7C5CEB7D260F7 - 0BA2E85FA489F890D8CAC7F4AAD855B39EE1E7C2777DC89FC84B01C0D4E7E1A5 - 1A0D5883801B0781B5A9ED8514AAAAA3E2EAB514AC584AA1F0220A94CEA55059 - 0DE517948B3F92BF16204953719A9C18A6D8F0251A8F5CA0D8C0691A1D7C99A2 - BD8729D6D72DBE800B5B352E746B53DB671BEE7BA2F899D70240E1CFA59A3A3F - A0C24015BC3514549F9BFA3A6EFCFBAC7F1640B2AC7B6A2E5EB507E7A60ADB1A - 02AAE079A9BECE5AF8AA798AD78BC25ABCAA98AD056E2DFAC4E2E7660D00A696 - 00D7A20A55156D620070E362574BB5AE9AFA3DEAF773F3A46C290855C4AAA9C2 - 562303B554EBD6C6D4EF034896B570D59E5C3555E86A9D97FCB56A696D9E966D - 45612D64B5CE8D0B7DA6A56A4C2D0192A18AD75ACC89859E58F0CCBAEE79D95C - 143315B7DA96B89D59D701AEC75AC489C56DEDABA55ACF2AB95214B3153A8A1E - 74B016F76CEB5929570B04850F4EC8FA82070000000000000000000000000000 - 000000000000000000000000000000000000000000EF21FA7F03E937B90D8BAB - B80000000049454E44AE426082} + 0000000000000000D9552097F922F9FBC9B7EF0FDC3125974A723F67E57A81A8 + CF6FFD3E787DA6ED00995205CF4B6BF15BB7E7A45C2C90E4E2E665722B148DA9 + BE625D07984D7291ABFEA468AA6F6D2C79991372A920ACC5CC05AEFABC3E5BB3 + FE1EB5044885B5A0B971F1CFD6AC5FC354DFF372A1285411ABA68ABBE89A5632 + A791CA6AB650B06A0D052B5650A8B281A64AEA293416210A85C5D700A42811A7 + 44F10015C4CE5362F02C8D0E1DA7D1FE2314ED3D40B12B67C4174CCCD09203C1 + F341E0E50098A9E8B9057ED742A1722A6B7C055534DC4965F36FA1A24083D80E + E0AC89F1B314BDF02C0D9DFD3945CF3C4189C4B0D83A6E692A0892C3C073BC18 + 0033153EEFE155E1175364E14D54B5EC2D14AA7DB5D8B197896D00EE48C4A394 + B8FC13EA3FF90D1AE87E4E6C19134D05C16CA302CFF05A002417FE74D18B313C + CD59F97AAA59FD0E0A57AC177D006F890F1DA4DEA39FA72BC77E287A09D1AC61 + 901C049EE095005085AF8A5FEDF18346AB597E17CD59772F85CB57883E80B7C5 + 878FD395439FA0DE133F15BD51D9AC2302CF8C06BC1000D6E25785CF7BFC2085 + AB57D2829D0F5159CD6DA20F905BA2BD4FD3B9E7EFA378DF31D1E3105023020E + 024F8400179C9B54E1ABE13E173E9FAD2FA5B9CD7F4D8BB67D898215CB451F20 + F7044B96D09CC6B7881FEB04457B3AE556D7F7FA565C7C6EB1EEF5B999C7F9C5 + 65F5B4F8659FA59239B78B3E407E885E7A9ACE3CFB2E1A8B9E173D757E405D3E + 746D24E0D608C05AFCEA58BF844AEBB6D0B2DBBF43C148B3E803E48F60D912AA + 6E7C2D45AFECA5B191CB628BB5E05D1B15B8110033177F55D39DB478D7D7A930 + 542BFA00F9A7305849D54DAFA7D1E8518AF79F165BAC7B7E5F8C00662AFE3045 + 9A5E43F3B67E9902C525A20F90BF0A0A82149E7B378DC78E53A2FF45B1C5D510 + C86600CC56FC778BE2FF0285427C0E0020FF0502452204EE122170C2ED10C856 + 00A8E25767FBCD617F65E36DB4F816B1E70F701FC03F3804220B5F250E055A8D + 670D5CBA49285B01C085CF0130BDE70F57ADA1C5AFF8061516E2565EF0A98200 + 552CBC9386BA1FA7F1789FD8A002408580E361C085E9B4E4A17F8882C139D478 + DB97A9A82822FA00FEC535C0B5C035C1B561D608D78AAA1B47393D02B016BF79 + 9D9F6FF269BCE553545677AB5807808028FE50653DF59F7A5CF4B27AABB0D301 + C0238CAB8FFBE72C7F2DD5AE7D9F5807002514594B13B1E314EB3D297AD60787 + 986341E0E42180DAFB4F074071E95C9ADFFC51B10E00C9B8368ACBEAC41AEF2C + B966B876541D39221B01303DFC9FB769371596E0461F8099706DCCDB788F58E3 + 4365AE19C7CF05381500EA434FEFFDCB6A565365D35BC43A00CC866B846B254B + A300A703607AEF5FB7E9BDA2E7F4390780DCC635C2B592A551801301A03EECF4 + DEBF54245A45FD5D621D006E846B856B260BA30027038093CB0C80DAB57F21B7 + 01C08D15C89A5101E0D828407700A80FC87FAE39FC2F2EADA6F245771B5B0120 + 355C335C3BD38701AA56B58680532300FE73CDBD7F64C9EBA8A8004FF901A483 + 6B866BE7DAC300AD7407802A7E1500C554D9F86AB104807499B5C323001500DA + 43406700A80FC64BF3F83F503197CA2A5A8CAD00901EAE1DAE213300D47900A6 + 2D04740600E30F361D0091F9BB8842BAFF0E009F10B563D4D05501A0ADF89913 + 01C07FA61900A5F376F24600C89059432A00B8B63C1B002A9DA603A0BC6EB358 + 0240A6CC1A4A0E006D21A03300D8740014975652A07489B1150032C335C4B5E4 + F111804A25150085C6EBB9357F58001F2A902FC731EBEAEA5AB34D5700282A00 + 8A285C8DBD3F800EE11AAEA59C3A07504881403D6F04009B02450BC47FCDBA9A + AE332D7406009B0E816084E7380300BBCC5AD25EFC4C5700A80FA65A211506F8 + C40500D865D692350054B34DF70880C90F57586A7601C01EE3591A6D456FE544 + 00980A8D6B9700605761013F0FE00807470000A0514E8C0050F800CED25A63CE + 1D020080E72100007C0C0100E0630800001F430000F8180200C0C71000003E86 + 0000F0310400808F2100007C0C0100E0630800001FD3F560010709CF59C6EF34 + 2F132D424D2F7F94CA17DC2ED67DAF66CE1C2A2870266BE3B11845A3C3B20779 + 69F8DC53D4F5E45F89B501D1A2A225449B106D52345B10000EDB75FB2BE8AD7F + FAE7B2A7DFE4E4247DF2A31FA2532F75C92D90771C0C001C02382C525525D79C + 515858483B6FBE55F600D28300701817A8D3B6EDD89995BF07F20F7E6A1C5656 + 5E2ED79C535919A135EB36C81E40EA10000E8B44AAE59AB376DC74B35C03481D + 02C061B5757572CD599BB66CA56090CFC102A40E01E0A0407131CD9B9F9D1724 + 854261DAB4798BEC01A40601E0A0B5E2B8BC588440B6ECB8E916B906901A0480 + 83B6B66C976BD9B166FD06AAA8C00B99207508008714151551F3C6CDB2971DFC + 77663B7420B721001CB26E7D339596F14D91D985C300480702C021DB77BA7359 + 6EE9F215545B3757F600AE0F01E000BE1CD7BC39BBC37F2BB7C207720F02C001 + 1B376F312ECBB9058701902A0480035A76DC24D7DC31BFBE9E162D5E227B00B3 + 430068C627FED66D68963DF7601400A9400068B6656B0B050201D94B5F477B2B + 8D8F8FCB5EE65AF08420A4003F219AB5ECB437FC3F7CB0934E1CFBADEC652E52 + 554DABD7AC953D8099210034E2C93F56AE5A237B99E93A79823A3BDA65CF9E16 + 5C0D801B400068B4AD6587AD61772291A033A74FD191831D728B3D9BC5E14830 + 18943D806B2100346AD9616F8FCB43FF8989093A7BB69BFA7A7BE5D6CC959494 + 50F326F7EE47F0320E6A7E547BC5CA55C6A3D43CAD1ADF3F110ABB77F9D60D98 + 145493BAB9F3E8630F3F227B99F9FE77BF4DFFFBE31F19EB7FF2677F49B7ECB2 + FFCFD7DE7A803EFFD97F963DF7D42F68B07572746C74942E5C382F7BE9E382E7 + 625FDFBC89968B65E3A245545C7CEDE8E8F19FFD94FEEB5B8FC99E47605660EF + BBEB35AFA5D7FFC19B642F331FFFC8FDBF9BDD77EBB6EDF4F6BF7DB7B16E075F + 5178FF7BDEE9EAD4E14B9A96D2BD0F3C287B99FBF5334FD17F7CED2BB2979A9A + 9A39B4EBE5AFA49B5FB68B22911B4FD0FADCB3BFA27FFBCAA3B2E7119815D8FB + ECDE7E3B3C3C44A74FBD247B44470E1F32A6FCB68BF7BA6E3F21188FC7E59A3D + B78A1151C3C246D9BB3E3E21CBD3B1F3A88CC33995E2F723048006FC43B9A061 + A1EC65E65067074D4D4DC91ED1C848944E9E382E7BF66C77F9A6A0DE2B97E59A + 7D5BB7EF906B33E359985E7DF7EBE8639F7CC4782743918DC30E3F400068A0E3 + E19B83ED6D726DDAC18E6BB765828F7DE7D4D6CA5EF68D8AE3F784A651C08A15 + ABE4DAB59A962EA3FB3FF2717ADD1BDE48C1101F8DC28D20006C2A2828A06DDB + 77CA5E662626C6A9B3F3DA6BFF1D6DAD72CD3EB79F4F1818E0C357FB1A6778C6 + 81FF1FF030FFFDF77DC8780E02528700B089F73A7667FE3D7AE430C54646646F + DAB9B3DD74E9628FECD9E3F6B301239A4E42F2A5CDAAEA1AD923E3B2DD3BDEF5 + 5EE3042C6E7D4E1FFEC56CDAAE613EFEB603FBE5DAB5F8329E0E7C8E6261E322 + D9CB3E5D2702594D8D19003CFFE13D7B3E683C7E0D994100D8C07B9CADDBAE7F + 522A151DD729F2D603FBE49A7D6E8E02740600BF6DA93212A1DD7BEEC363CF36 + 21006C58B57AADF18368C74B5D2F527F7F9FEC5DEBE4F163E2F8B95FF6ECE107 + 95F878D90D3A2E692AB5B575F49E7BF6183717813D08001BEC3EF9C7DA5B671F + FE33BE34A8EB30A05A1C3BAF5CB55AF6B22B91D0370278C39BDE9CF2FD00707D + 08800CF1F5E62DDBECDF6073A300606DFBF51D06B87D4F800E78C0491F044086 + D66F6836CE48DB71F9D2253ADBDD2D7BB33B7AE410C56231D9B3876F31E6F0CA + 369D8700A00F0220433AAEABA7B2F767FC8460E70C370A65A2A4B49436346F92 + BDEC89C7F50418E88500C8005F7BD671E929D50060EDAD1A0F03349CBB48DBF4 + 5DCEE02108800C6CDABC75C64749D3111D1EA6E3694CFD75B0A35DCB5C81AC79 + D3166324904DB1D8B5373A81FB100019D8AE61F8CF937FA6735CCCD7D18F1E3E + 247BF6184F086A388109B90F0190A6B2B272E32DBC76B56570834FEBFEBD72CD + 3E1D7730A683A73B03EF4100A4891F47E5B7F0DAC14FC7F1ECBFE9E25183F591 + 613B78F252EB3DF54EE31399B960A05FCF4D57B9023302A569F79E0FDABE9986 + F7FE5FF8DC67642F3D7BEEFF30352D5D2E7BF67CEF3BDFA49FFFF4C7B2E7AC57 + DEF97BF4A637FFB1EC65D7D8D8A831D9CAE9975EA29E0BE7E9F2E54B34343868 + CCB93031611E86151614187307F0AFEB0A596D30239037F01E939FADB78B27FF + C8547BABBE47847764F930209BCE769FA19FFCE807F48F1F7F90DEF3376FA74F + 3DF4207DEBB1AFD393BFFC857149956FC1BED8D34357441870BB74E9225D387F + CE7BC5EF3004401AF86D3B3AEEA53F682300323977309B858D8B6DCF64E425C3 + 4343C688E6C3F77D801EBCFF5EFAE17F7F974E1C3FA6EDEA493E4200A441C7CD + 3FFC8CBF9D29B2CE9F3B6B0C5375C9877708F6F65EA1C7BEFE35DAB3FBDDC661 + 0DFF1B416A1000299A37BF9E162F6992BDCC75B6DB1FC25F6FFE807471A8B9F5 + 84A05DC3C3C3F4CDFFFC77BAFF03BBE999277F298EF5C7E4AF40AA100029DA26 + 86FF3AE898E66BFFDEDFC835FB78AEC065CB57CA5EEEE027243F74EF3DF49438 + A6C7103F730880146DB7F9D61F363838A065A65F3EA3CD67B275D971736E1D06 + 749F3E455FF8DCA78D1100D8830048014F44A963B249DE6BE938CBCC7FC6FE17 + F48D02F89D8676EF6DC8A6919111DF9DAD770A0220053A6EFD65AD1A9FEBD779 + 18505A5646EB9B37CA1EF80902E006F804998EE3FF9168948E1E3E287BF6F12B + C4F8FAB52E3ADE6D00B907017003CB57AC34DE2F67174FEEA9FB76589D1386F2 + E3CD76273881DC8300B8015D2FD4D8F79BE7E49A3ED79B4D385DFC78F3E6AD2D + B2077E816701AE834F8C3DFCE9CF19F3CFDBC1D7A7BFFAA5CF6B9F16ABB0B088 + DEF68E776A7B21C691439DF4997F7A58F6F4D2F92CC0B1A347E891871F923D1F + C0EBC1DDB16EC3467AF7DFBF4FF6F21F0714DF4DE7C4137108001BF030903B5C + 993ACB453C9268D9EEAFEFD9EF1000B3E0A9A7376EDE2A7BFE91ED8942C05D08 + 8059AC6FDEE4CBB3E2FCBCC3FCFA05B207F90E01300BBF0DFFAD704F807F2000 + 66C033E6F208C0AFF83020579F1084F4200066604EFB9DFDB7E778455DDD5C6D + D38E81B7210066A0E3A59FB90E2703FD010190A4A2B292D6AC5D2F7BFEB54DC3 + ECC7E07D0880245B5B7668BBB32E97F1DD8F6BD7D97FFF01781B7ED293E8BAF7 + 3F1FE4C37C81707D08008B9A39B5C6D37F60E22704F945A890BF1000167EBEF6 + 3F936028645C1181FC8500B0E079FFE16A380CC86F0800896F7FE51765C0D5D6 + AC5B6F5C1981FC840090F2F9355976184F08E2C468DE420048F8219F9D8E29D1 + C19B302188B0A46929DDFBC083B2674F67475BD6DEB83B1B1ECDDCBAEBE5B2A7 + C7FD7B761B2FD3CC142604B101330239EB8D7FF456BAE35577C99E3D8FFEEBBF + D0817D7B65CF1D0D0B1BE9818F7E42F6F4F8D10FBE47FFF3C3EFCB5EFA100036 + 604620E7F0536FBACEFEF37BE8EDBCFA5B177E35B6EE1764E26A407EF27D00AC + 5CBD862255D5B267CFC18E764A24389CDDB757F32CC473E7CD370E9520BFF83E + 005AB6EBBBF6AFF3ADBD76EDD3F8EA30054F08E61F5F07003FEDC60FFFE83031 + 314EED6DFAE6E9B7ABE7C279E325A23AF184A178502ABFF8FAFFE6BAF5CDC67B + F174387AE430C5464664CF1B748F022A23113C2A9D677C1D003AE7BE3BB0F705 + B9E61DBACF03301C06E417DF06403018A2E6CD9B65CF1E7EA1869786FF4AEF95 + CBD475F2A4ECE9B169CB3663CA74C80FBE0D00E351D7909E475D4F1CFB2D0D0D + 0ECA9EB7BCF0FCB3724D8F7038ECCBF725E42BDF0680CE5B7F5BF7BB7BE3CFF5 + F04D49535353B2A707EE09C81FBE0C003EF1B76E43B3ECD9A7F335DDBAF5F7F7 + D16F8F1E963D3DD6AEDF40E51515B207B9CC9701B0656B0B050201D9B3878FB1 + FB7A7B65CF9BF66B3E41695C3EDDB65DF62097F93200744EFBDDE6E1BDBFC257 + 282626F8D6717D7018901F7C170091AA2A5AB96A8DECD9B77F9FF72EFF251B1E + 1EA2A3470EC99E1ECB56ACA4DABA3AD9835CE5BB00D8A671DA6F7EE8E6D2C5CC + 1F91CDA6BDCF3B704F00DE2198F37C17002D1A27B7C885BDBFD2D6BA9FC6C7C7 + 654F0F0440EEF35500D4CD9D474DCB96C99E7D6DFBBD7FFCAFF06DCA073BDB65 + 4F8FFA050DD4B87889EC412EF25500F0EBAE74E1876DF8102097ECFBCDF3724D + 9F1D1805E4345F0580CE21AB971EFD4D55477B2B251271D9D383DFA5805789E7 + 2EDF0440C3C285B4A061A1ECD97720878EFF95443C4E9DED6DB2A7074FA6B27A + CD5AD9835CE39B00A8AAAE916BF6759F394DA75EEA92BDDCF2ECAF9E916BFA34 + 342E926BB31BE8EF936BF6F5F7F7CB35B0CB379382F23075D5EA35142E29915B + 3233393149C78F1DA5582C26B7E49EC54D4BA9BA5ACF34687C83114FD299CA54 + 682B56ADA6329BF32FF0BFFF8913C76824CA7363FA04660506F031CC0A0C004E + 400000F8180200C0C71000003E860000F0310400808F2100007C0C0100E06308 + 00001F430000F8180200C0C71000003E860000F0310400808F2100007C0C0100 + E0630800001F430000F8180200C0C71000003E860000F0310400808FE90E8029 + B9E4098BF5BE8A16C0AFAEAEA5E91AD3C0C111C054EEBE3903C0539CAB252702 + 80136A8A26C706CD2E00D862D69259579A39350298A2C4A0BE97C101F85962B0 + 57FC577BF1335D01A0D269BA4D8E5E104B00B0CBACA56B6B4C03274E02729BA4 + 58DF29630B00D863D612BF07505BE12B4E1C02F0079D14C3969362A9F5C302F8 + 101F4EBF2896665D69A63300CC3DBF6AE3F1611A8F6114006007D710D792B5B6 + 34EE58750700E30FC8AF2E9EA0684FBBB105003263D690594F666D31CF0580B5 + F855008CD3F0C57DBC11003264D610DF08A402406B0838750EC00C80E8B9FF23 + 4AA80F0C006911B563D4D05501A095EE43006ED30190885EA6D8D001B10E00E9 + E2DAE11ABA3A00549D69A17B04A03E9C19004463D47FFA17620900E9326B674C + 3415005A8B9F393B023002A0EB6744F1B858078094899A316AE7AA00C8991100 + 7F50FED0A3341EEFA3810BFC8D0040AAB866B876B886CC5AD25EFCCC899380D6 + 00E0F44AD0A5238FC9ED00706353B26612A2A911800A00AD9C1E01F0871FA558 + EF711A3AF7845807801BE15AE19A31F7FEC901A035049C1C01F0318B19009C64 + 3DED8F8A2DBC0D0066C335C2B562EEFD5500588FFFB5722200987514C0DF44DC + 48B4C1AEEF8B7500980DD788B9F7E713E7C9C7FFDA393502B08E02CC11007F43 + E7F77F9146C6F8D9660048C6B5C1356216BF1A013872F65F29924BDD0AE492F1 + 3A074D214D4D886F2476912A1BEF307E0500A6F5BCF0208D5CEE106B51D1781A + 30EB08C0114E0540320E013308E27DE728145948E1AA15C6AF000051FFA99F88 + 63FFAF8A357EF26F44341E05A8E37F47F6FECCC90050A30055FC6600708BF674 + 50D5E25D5414AC167D007F1B8B76D1A9A7F7881172BFE8A9E2B70EFF1D93AD11 + 806206011F0A0CF7B45375D3ABA8A03064FE12800F4D8E0F51D7137F4763C3A7 + 458FF7FE3CF457D7FF1D3BF657B211006A24A09821C0931C24068E8B91C01DA2 + 9BED2002F080A9513AFDCCFB297AA94D74F8B83F6B437FC5CDC22BA0C4E0451A + 1B3C4DA1C6DB2950E0D4254900EF494C8DD385671FA081EE67448FF7FCD6137F + D633FF8E72230054AA992383F8C0599A1021106EBC0D2100BEC0C57F51147FFF + A9C7454F9DF4E3E6F865BF646E8E00A6BFB9F840378D0F9EA070C3AD14282C96 + 5B01F24F6262847A7EFD0F3470FA49D1537B7E55FC7CC92F6B7B7F96ED00E0BD + BEF51B9BFE461303E729D6B39FCA1A765220506E6C03C82789780F753FB59B86 + CFEF153D2E7EB5F7B7163FD743568A9FB93502982904A6686CA4570C8B9EA0D2 + 9AE5142C6F307E15201F447B5EA0AE2777D3E8C009D14BDEF3F3493F0E80AC16 + 3FF3C22180FAA6CD363516A7BE177978344265733752414140AC03E4A6A9A904 + 5DECFC22753FFF88F8D9BE22B6A8E25797FBB8F0ADC5CF2D6BDC0C00A6BE595E + F24840B5298A5E3C4283677E4525558BA8B80CA301C83D2317F7D2A9A7EF15C7 + FB4F8B9E75C86FBDCDD7B5E267C9D7E8B3C9BC1FC06C1C44BCA7E7138061D94A + 452B315A55D3ED54B7E16D14AE582CFA00DE161F3A45973ABF44FD5D5CF85CEC + DCB8F0F91ABFBACECF856F3DE6CF7AF133370340E1CF60DE226C860037BE3B90 + 1B078119021C08D5CBEEA0DA757F288200CF1180F7C4878ED3E543DFA6BE937C + 794FEDE9B971D1F370DF3AE49F1EEDBAC80B01C0D4488043C03A1AB006816A21 + AA68D84CD54DBF4FE58D2FA3A2420E0700774C4CC668581CAAF675FD9886CEB6 + 8A2DAAD8D5DE5E15BE75AFAF0ADFD5E2675E0900A642801B8740721004E552B5 + 2015852A4418ECA4CAFA9B283C7F1385C2F3C4760067F1E5BCF885361A3CFF9C + 28FAE769223124B6F231BD2A76D5AC67F8B9F05D1FF227F3520030F57978A946 + 03D620E0C641606D6A7B3185ABEBA9A4662D052B975238B288026573295C5E4B + 854515E28FE4AF0548D15482262786293E7C99C6A317293E709A46075FA458EF + 618AF79D175FC085AD1A17BAB5A9EDB30DF73D51FCCC6B01A0F0E7524D9D1F50 + 61A00ADE1A0AAACF4D7D1D37FE7DD63F0B2055D63D3517AFDA837353856D0D01 + 55F0BC545F672D7CD53CC5EB45612D5E55CCD602B7167D72F173B30600534B80 + EB5185AA8A363900B871B1ABA55A574DFD1EF5FBB97952AE14842A62D55461AB + 91815AAA756B63EAF701A4CA5AB86A4FAE9A2A74B5CE4BFE5AB5B4364FCBB5A2 + B016B25AE7C6853ED35235A69600A950C56B2DE6E4424F2E78665DF7BC5C2E8A + 998A5B6D4BDECEACEB0037622DE2E4E2B6F6D552ADE7947C298AD90A1D450F3A + 588B7BB6F59C94AF0582C20727E47CC103000000000000000000000000000000 + 0000000000000000000000000000000000000080F710FD3FE0A636B770554958 + 0000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_256.png' @@ -385,462 +385,462 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 38DE49444154785EEDDD09745D577DEFF1BF66599607D9F23C8F8967CB96AC78 - 484808D061BDD5BEBE36AFA5B4405B4A0B2D141AA6A60D84B934A5505885BEAE - 2E565B5EA134AF29014A5BCA900021831D8FB193388EE779920759D6EC77FEF7 - EE5DED7B7CAF06EBDE7BF6B9E7FB61EDECBDCF5512E548F8F73FE31600000000 + 38EA49444154785EEDDD09745D577DEFF1BF66599607D9F218CF53E2D9B2252B + 1E12120274586FB5AFAFCD6B292DD096D2425B0A0D534303612E4D2994AE425F + 5717AB2DAF509AD79400A52D65488090C18EC7D8711CC7F33CC983ACC11AFCCE + FFDEBDD1BEC7F76AB0EEBD679F7BBE1FD6F6DEFB4849E423A1DFFF8C5B000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000008067CA4C0FFFF1B3 - 021017374C0F8F112AFEC9F533E16705202E72150014061E2154A297ED67309C - 6DFCEC00F8221CECD9827EB8DB5024844834860A733B1FEED7014054860A7F3B - 1FEED7A1480890E271F775AE200FF76AB8DB00200AD9027E38DBDCCF54B6AF45 - 01112085952DB45538C0DD3EFC75D93E0BF7CA1D034021650B6BB7CF3656E1CF - B2F52AD7187944681446AE60D6B19DDB7178AEDCCFB23515EE953B068042C816 - CE6E3F5853D9C6D93E53B9C6C80302237F7205B18EEDDC8EB3CDB5950FB24DE9 - 58D9CF54B80780427303DBF676DC6F7A9DEBD87E665BB66D2AD7DCCA35C62D22 - 3446CFDD87D942D98E6D78BBBDFD5CC7E1B9DBA7DB847953A56ACCED5256395F - 6AC7CF96B153A74A45E56C91AA49D2D75727E55533A422F81F0014425FF0BFFE - 9E535251D121D27351FA7A8FCBB5B367A5F3CA71B9D17B587AAEBF28978F9C0D - BED286B7361BF86EF0EB383C57E1DE7EAEC2BD72C718210D16DC1A77DFD9B10D - 6B65C76E0B07BBF6B6B9F332699837572AC7AE93DA29EBA47EEA6AA9BCB154A4 - 667CF0190078ACEB8AF496ED97F6B3BBA5F3DC76E9BDB65DDA8E1C0D3ED0B076 - 83DF8EDDB9DB879B0A8F2D778C61D2D0C1C8D9FDE6F6E1B1361BEC769CBB4D98 - 314D6A26DF2D13166C94DA715B82BF657AB01D004AC08DD3D279F5C772F9D053 - D275E171B97CEA4CB0D12D00B2351BF6EED8067D78ECF618260D260C9FDD5F6E - EF8E35CCED363BB621AFA7E6ED38DD262E5828E366FC9C8C9F75AF94573705DB - 00A0F4F577EF902B27BE27574F7D432E1D3AA85B42ADCF196BB0DBDE1D2BBB4D - 857B0CC186170667F793BBBF34C4951BF676EC361BFCE9BE6E62A34C58F2BFA4 - 61E12F4845E5AA601B0024575FEF1E693BF8AF72F9E547A5E3D2F9608B5B00B8 - 85806D36F4ED58E9D8A210182637D0909DDD476EEF360D77DB670F7DED1B976D - 96C94BDE24D5E35E1DCC6B82060018D025DD57BF2F175EFE7B39FFC293C13C5C - 04848B01B708709B0AF7C842830BD9D97DE3F6E1E6867E66E06BAB195F279317 - FFBC342C7DAB94572C0DB6010086D2DFB75FDAF6FF8D5CD8FBA8747575055B34 - FC731502D98A001BFCE11E0E0D31DCCCEE17B7B7811FEE0702DF0DFEC6E56F94 - 86856F93B2B2C6601B0060A46EDC382F6D07BF28E7F7FD83745DE908B6D842C0 - 2D086C0110EEC3E16F7B1836E09066F787DBBBCD067E8EE0AFA991294DBF2E13 - 17BE83E007803CD142E0D2C1CFCBB91D5F0E9D11081702B6D902C03615EE13CF - 061D06F685DBDBD0B7BD1BFCDA579A71A54C5FFB3FA471E9FBA5AC6A5E300700 - E4DB8D9E23727EFFA7E4F4CE6F05B3DEA069F86BAFA11F2E0434E8DD62405104 - 386CD8259D1BFACA867E38F8B5D9237E0DFF4A993077A9CC6CFA8854D66F0EE6 - 008042EB6D7F524EEEF8A05C3EBA5F67A60D753640C78A22C0A000C80C7FB7D9 - C0D7B10DFD81F0AF1E375666ACFB03193BFB77832DBA0D00502CFA5AE26BC7FF - 5A4E6DFF4BE9BE7A2DD8E21601B6D9E0770B01DB94ED1349C32DC96CD82B3BB6 - A11F3EE24F077FEAA87F618BCC6CFE73A9AC5A18CC010051E9ED392827B7BD47 - 2E1FDCAA33D3DC22C02D00DC4240B9E3C449EA91AB0D7B6DCA8EC3A19F0E7C91 - AA54ABA9A995395BDE279357FC9954564C0EB60100A2545ED120F5737E49C64E - AA95EBA7B74A9F667EC69FED6E1F36D4E7252D89FFD1E11FB83DE2D796EBA8BF - 4A6AA7CC9779777E5EAAC7AC0DE60000DFF45DDF23077FF476E93C773898F504 - 6DB0B301DA74ACDC330289A1019724B9C23F1CFA03C12F522DD356FC94CCBDE3 - CB5251CD1DFE00E0ABF2AA693279FE7D5276E3805C4B150161F660CFD2B186BE - DDE67E56F2925400847FC06EF8DB9619FCDAE6BDEA7E99B4F4E3C1C7BCBE1700 - BC17FC593D76FACFC998491572F988DE173054A8EBE7892C02925200847FB043 - 877F75FD445974EF1765ECB4D7077300409CD48C6F9589B357CAD5D38F4B5FB7 - 5E0A188CE641E28A80241400E11F6838FC751FD8F0D7562D6326CF94F9F7FE5D - F00BB429980300E2A872CC42193F6FB3749C7D5C7AAF5F0FB6B8D7F8C321AFF3 - 441501A55E00847F9083857FFAC87FECD4DB64DEABFF5EAA6A96057300409C55 - 544D0F8A807BE5FAB9A7A4E7DA25B33517CD87C41401492800EC0F3057F86B4B - 3FE63776EAEDB2E035FF241515B3823900A014E8A3821317FEAC5C3BF3445004 - B499ADEED90097E6845B0494AC522E004612FE7AE4AFE1FF5516F10180125456 - 56E71401F64C40A28B80522D00087F0040A6CC2220F167024AB100B03F2CEDDD - E0770B00F79ABF86FF57087F0048807411F033598A805C858055728540A91500 - E1F0770B007BD46FC3BF4AC64C9A29F35FFB55292F9F1ECC010049A045C0F805 - AF96F693DF96DEEB1D66AB6BB0B30225A3940A80E1867FFA51BFAAB11365F14F - 7F4D2A2AE7077300409294978D9789F3EF964B871F93FE1E7D6DF0506700AC92 - 29024AAD00B03F181BFC6E013070E45F5D5D270B5FFB375259D714CC01004954 - 563159C6CF5C25570F7F5BFAFADC7501B21503BAAD64C25F954A01607F28DA6B - E0DBDE1EF96B4B87BF1EFDCFD9F280D44DF99FC1180090641535F3A466429D5C - 3AF26430B3C1EF160076ACB9E28E63AF140A0037FC6DF0878FFCD3A7FDB50098 - D9F24B3271C10782310000FADAE07552597B5CAE9E7CC96CC9560884C5BE0828 - 9502C06DD9C23F7DF43F6ED64A696CFAA25494E91C0080B4CA862DD2DDF6B874 - 5F3D1FCC34F8DD2260B04220B6E25E00D8D0571AFA3AD6FF261DBBE15F2D5513 - 1B64E13D5F92CA4AEEF8070064D203C3F1B336C8A513DF90FECEEE604BB80808 - F7367B622BCE0580DDF9B608B047FEE1F04F1700F3367E486A26BE2A18030070 - 33BD29B0B6BE412E1D7E3C98E50AFFB0D81602712F00DCA6C1AFFF3DB60D1CFD - 4F5DF55A99B4F88F82310000B9558F5B19FC759F5C3B7B38E835F46DB3721502 - B1A3A119476EC5E516006E21903E0B503761924C5CF991600C00C0D03433343B - 06CE266BA6B8196373C772C7B1A1FF51716477BE36FD61D8E61EF9A7DBBC577F - 4C6AEB9A8331000043AB2CAB97318D53E5E281EF0633F72C806D254143336E6C - F0AB7021A005C0C0D1FFE4459B65CCA45F08C600000C9F6647C392D660E49E05 - D0A659E3668F72C7B111C702C0727F00FADFE1160015525D5D2BD35A3E1C8C01 - 0018B919EB3F9ECA12375B06F2C6CDA0588A5B01E0EE6C3B0E877FBA5A9BB2F6 - 57A5A2624130060060E43443344BB29F05708B00E58E63216E05806577B46D99 - 0580DEBC3169E1BB82310000B74EB364E08640B70008E750ECC4A9007077B21D - EBF76F5B3AFCB56F5CFD7B41372E180300300A4196A432C5C998CCECC9964DB1 - A0DF7CDCD81D6C9B0DFF74AB6D982E13E6BE21180300307A9A299A2D6ED66486 - BF6DB1129702C0DDB976ACDF7B66F86B75366DF5EF04BD2EFC0300403E549B6C - 712F0368B339942DA3BC179702C0B23BD6B6CC22402BB4F1B37F25180300903F - 9A2D996701C2E16F5B6CC4A1007077A8DDC199C19F6E953265F99B839EA37F00 - 40BE559B8C19CE5900E58EBD14870240D91DEBB6CC22A06AC2789938E7978331 - 0000F9A719A359933BFCDDE63DDF0B007727BA3B3633FCB5226B5CF48BC1903B - FF010005A24F0468D6649C05C8560458EED83BBE1700CADDA1766CC37FA00898 - B484A37F004061A5B3C60D7FDB67CB2AAFC5A100B0EC0EB53B7A20FC1B16AE93 - F2CAC5C1180080C2D1ACD1CCC92C02DC6CD2160B3E1700EE4EB43B559B0DFE81 - 0260D2A25F0A7A00000A2F9D396E01E01602B659EED82B3E1700CADD99B6E9F7 - 3C10FE5575755233E5678331000085A799A3D9935904840B00DBBCE57B01A0EC - 0E7477A8DDD9E53271FE5D5251362618030050789A399A3D6E16656694B2BDB7 - F49BF65178C7D99DEAEEEC74E5357EC14F053D0000C593CE9EF019006D36AF5C - E1B917F49BF595DD896E73777279FAF4FF8457076300008A47B3277D19203397 - B2679797F49B8D037747EAF76C8EFEE7B472FA1F0050749A3D9A41996701DCAC - F29EEF0580BB33F57BCD6C63A7BE2AE8010028BE7406DD9C4D99D9E52DFD467D - 13DE71EEDCDDC115326ED6C6A00700A0F8D21994EB1E006D2A3CF7867EB33ECB - B603D33BB97EFA5429AF981F8C0100283ECD20CD229B4B9959A56CEF259F0B00 - 77076AB33B38DDC6346C087A0000A293CEA2CC7C1AC82D657BEFE837EA33BB13 - C3AD5C6A27AF097A0000A293CE2237F4C3CD5BBE1500E19D65E7DADBCA2ADDC6 - CF6C0A7A0000A293CEA2CC7CCACC2E57781E29FD467DA33BC836E5CED33BB7AA - AA4ACAAB58FC0700102DCD22CD249B4F9999A5C2736FF85800B8EC4E73776AB9 - D4CD5914F4D5410300204AD5269332736A60EC2D5F0B0077A7D9F1C00EADAE59 - 92DA020040D42A6B17067FB5816F73355B8E79C5D70240D99D6977A8EDCBA572 - EC82A00700207AD5757A493A9D4F9999659B97F49BF49DBB13B595CBB8197383 - 1E0080E8A533291CFADABCE6530110DE69B9E75535140000003F9455CDD4BF3A - 4D0D358F9CAF6700DC1D667B6DE90AABAF5CDFBC040040F4AA2AA7057F1DC8A8 - 7453E1DE2BBE16002EBB33075A5515050000C00F655533F4AF599AD77C2E00B2 - EDCC32193B6D4AD00300E08F743665CF2D4FC5E10C80B23B50AFFFD799310000 - 7E4867D34056C5808F05805B31DD3C2EAB9D9E9E0200E08974360D9E5F9EF1FD - 1280E5E5CE030020249C57DE66575C6E02B4CAA4A28C4B000000BF9497D7047F - 8D45F05B71BA07C0ECCC8A89E91E00004F94954FB623D3BCE77B0110DE89B1D8 - A90080448A5566C5ED1200000071E07D76C5E51280B23B93820000E09BD86554 - 9C0A000000902714000000241005000000094401000040025100000090401400 - 0000241005000000094401000040025100000090401400000024100500000009 - 4401000040025100000090401400000024100500000009440100004002510000 - 0090401400000024100500000009440100004002510000009040140000002410 - 0500000009440100004002510000009040140000002410050000000944010000 - 40029599DE07FABD68D3A2445B45D0AA82566D5A6DAA352EBF4F66343D148C81 - FFB670D162A9AAD25F9778E9EBEF97E3478F486767A7D90220964EED7848CEEF - 7B2418E9FF99B5759BD613B4BEA0F59B76C3B4C8510020F6DEFC96DF918D9BEF - 34B3F8B9DED1219FFED4C7E55850080088A91816005C0240ECB56EDC6C46F134 - A6AE4EEE79CD6BCD0C008A830200B1575E1EFF5FE3354DCD5255A527BA00A038 - 2800000FD4D7D7CB8A55ABCD0C000A8F0200F044DC2F650088170A00C45A6DAD - DE1B5A1A56AF595B52FF3D00FC460180581B5B3FCE8CE2AFB2AA4A9A5B379A19 - 0014160500626DC2840966541A5A36DC6146005058140088B50913269A5169B8 - 7DF90A699834C9CC00A0702800106B134B302C5BB80C00A0082800106B53A74E - 33A3D2C1D300008A810200B136655AE91500B3E7CC951933669A190014060500 - 626DE6CCD966545A366CE22C0080C2A200406CE9CD72931B1BCDACB4B4DE4101 - 00A0B02800105BEB9B379851E9D1C266F1D2DBCC0C00F28F0200B1D554C20580 - E26640008544018058D2D3FF8B972C35B3D2B42E28702A2A2ACC0C00F28B0200 - B1B4765DB319952E5D2170D59A26330380FCA200402CAD6D5A6F46A56D5D4B69 - 5FE600101D0A00C44EFDB871B2F4F6656656DAD6AF6F6185400005410180D8D1 - 57E5969727E3575757085CB32E19673B001417050062A739612BE66DDA7C9719 - 0140FE500020569270F77F985EEE28B5550F01448F0200B1B2714BF28E86F572 - 474B6BB2CE7A00283C0A00C44A29BFFD6F301B782910803CA300406CE80A79BA - 525E12CD9BBF40A64E9B6E6600307A1400888DA4AF90B771CB9D660400A34701 - 80D86849D8DDFF6149FFEF07905F14008885F90B16CA94A9D3CC2C99F4BF7FE1 - A225660600A3430180586065BC349E0600902F140088055D190FE9A701582110 - 403E5000C07BCB56AC94890D0D66966CBA42E0B2E52BCD0C006E1D0500BC17F5 - 69EF277FF88419F921E94F4300C80F0A00784D4F77AF698A76EDFF1F7CEF3B72 - A9ADCDCCA2A74B21B3422080D1A20080D756AD694A9DF68E4A5757971C3B7A44 - F63EBFCB6C895E4D4D0D2B040218350A00786D5D4BB437FF1D397C28D5EFDDB3 - 3BD5FBE28E8D5BCC08006E0D0500BC5555559D3ADD1DA543AF1C48F55A00F4F7 - F7A7C63EB87DF90AA91F37CECC0060E42800E0AD752D2DA9D3DD513AF0F24BA9 - BEB3B33318EF4F8D7D905E2170A39901C0C85100C05B3EACFC7760FF40E8BFB0 - EF7933F24333AF0606300A1400F0929EDE5EB172B59945E3F8B1A3D2D171CDCC - FCBB0F60F192A5AC1008E0965100C04B6BD7354B655595994563FF8B2F9851DA - 914307E5CAE5CB66E687665E0D0CE016F9F44ED1B250D3E244BF3FDB2A53AD6E - CA0A1937E3EE608C12F68BFFFBF5D23865AA9945E33FBFFD2D397DEAA499A5CD - 99375F66CF9E6366D19B3C79B27CFFBBDF31336068FA0E89193367C99225B7C9 - F295AB64F59A26D9B8F9CE54D1BDE5AE7BE4CEBBEF914D5BEE9295ABD6C8B9B3 - 67BC2B7ABDD57EFA71E938B72F18F59AD6679ADE3D7CC369DED0A0F5851BFC36 - FCF510B0DA347DF349AD342EBF4F66343D148C51A21A264D924F3CFCD9D48D6E - 517AF7EFFD4EC62500D5BA69B3FCE66FBFCDCCFCF0C98F7C500E1F3A686640A6 - 858B16CB82A02D0E027FCEDCB9235A55B3BDBD5DFEF8BDEF4ADD048B219CDAF1 - 909CDFF74830D29DA5ADDBB49EA0D942C02D0622470100EFBCE6753F2DF7BDFE - D7CC2C1A7AFDFFA31F7CC0CC06E8BD099FFEDC17CDCC0FDFFFAFFF94AF7DE5CB - 66966C2B82A3D6091326985934CE0647CD07F6A79F1E89821EE1AF695A9FDA17 - ABD7AC95317575E6935BF3E79FFCA8BC1CE17F4F6C50008C0A050052DEFBC007 - 5337B845494FFF3FFAC83F9959A6073EF45199377F8199454F5F53FC407094D6 - D7A77FC624D7FA960DF2D6B7BFD3CCA2F5E2BEBDF2C5CF7FA6A847CEB7DDBE4C - 36DF758FAC6F6EC9EBFD337FF1A98FCB4BA1FB6190450C0B8068CFB102217A57 - 7BD4E1AF067BE46FEFF37E3D0DA02B252E0DFEF04FBA99B3669B51F4F4454DBF - FE1B6F31B3C2D19765DD73EFEBE4239F7C58FEF0FD7F2CAD1B37457EF32CE283 - 02005EF1E1AEF6DE9E9E8CE7FFC37C7B1C50B56E6485C00BE7CF9B911FF43D0D - 53A70DFF7AFB4868F0BFE6753F239F78F833F22BBFF64699367D86F904183E0A - 0078A5C58397DBEC7FE905E9E9D13377D9E9EB81AF777498991FD6356F488542 - 925D387FCE8CFCA147E7F9A4AB63EA1DFA1AFCF7BDFE0D323EE2FB1D106F1400 - F0C69CB9F3BC388DBB7BD74E33CA4EAFB5FB7619405F99BC36E12B049EF7EC0C - 80D2C22C5F96AD58297FF2E18FCB9B7EEBAD043FF2820200DE887AE53F6B38A7 - F87DBC0CD092F09702F9F8BCBADE9F3163C64C33BB35FA58EC6FBFEDF7E55DEF - F98057F73920FE2800E08DD63BA2BF8EAD2F3E397BE6B499E5E66301B06A4D53 - A25708D4CB36BE5D9A518B96DE66462377CF6B5E271FFEC4C3ACFB8082A00080 - 1716077F484E6E6C34B3E86CDFB6D58C0677F9F2253974F01533F383BE38C987 - 0594A2A42FAEF18DBE8867A4F4A8FFFE0FFCB1FCCA1BDE18F98A98285D1400F0 - 822FC1B57BD70E331ADA48BEB6583624FC6980B6B60B66E48FD973E69AD1F0E8 - FB0C3EF4D13F95A5B7F168270A8B020091D33B9B7D38C5A9D79047F206B73D3B - FD2B00F41D0A7AF498543E9E019835CCEBF6FAFF83D7FFDA9B522F331AEDDBFB - 80E1A00040E4F425363EDCD5BC67F7C802FDD8D12372D1C33BCF376EB9CB8C92 - A7CBC377D6EB8B79865AB679C28489A93760DE7DEF6BCD16A0F0280010395FEE - 5EDFFACCD366347C3B773C6746FEF0E15D0A51F175E5BAA9832CC0A38FBF3EF0 - A18FC882858BCC16A038280010297D794DF3868D66169DAEAEAE41DFFE978B8F - F701E8A3621A2A4934D80B9CA294EB0C973EDBAF47FE131B927BD906D1A10040 - A456AC5AEDC55DCE7A247F2BE1B1FFC517BCBCEEACCB16279116723ECAF684CB - FA965679E71FBE8FBBFC11190A0044CA97D3FF7BF7EC32A391D1B702EEF1F02C - 408B076755A2D07EF5AA19F9A5A65617331D70C7A62DF296DFFDBDD4A39B4054 - F8ED436474DDF2B54DD1BFBEB6BFBF5F766DBFF56BF93B47F1F7168ABE814E4F - 2FC30FF5F5032F686A0DC2FF377EFB77097F448EDF404466CDBAF55E2C5DAAA7 - F147B36EBBBE15D0C753CF497F35B04FEC19003DEDFFE6DF7A6B6A0C448D0200 - 91F1E534F568EFE4D77B077CBC0CA03757266D85401F5F05ACEAEBEB53676438 - ED0F9FF09B8848E83BEBF506401FECDCBECD8C6E9D8F4F03E8CD65BEECE362E9 - E8B866467ED1C700DFF68E7713FEF00ABF8D88C4DA75CD5EFC6178FCD85169BB - 78D1CC6E9DDE43D0DBD36366FED8B4E54E334294F4313FEEF6876F280010898D - 9BFD08A67CDDC0A7F710EC7FE90533F3C78A95ABA5AE6EAC9901C0000A00149D - BEAB5EDF59EF837C9CFEB79E1BE64A82C5A43759AE6B49F60A8100B2A30040D1 - F9B2F2DFA5B6B6D4FBFCF3259FC5443EB5267C854000D95100A0E87C59AC66E7 - 8EFC06B6BE84E6C0CB237F9D70A12DBDEDF6C4AC10E8EB9B00011F5100A0A874 - 55B491AE8F5E28857881CF2E0F170752AD1BB7985169BBEAE99B00011F5100A0 - A89A3D79398D1E29EA0B80F2CDC7B7022A5E0A04208C020045B5C997BBFF8323 - 757D8F7FBE9D3D735A4E9E386E66FED0B32EB366CF313300A0004011E912B553 - 065917BD986E75F19FE118ED9B050BC597B32F85A4EB3A00181E0A00148D2F4B - D4EA0B7B46B3F8CF507CBD0CB069B31F375F1652DBC50B660460281400281A5F - DEFDAF77EA8F66F19FA11C397430F588A16F7485C0C54B6F33330049470180A2 - D0E0D100F2C1D6679F36A3C2C9F72386F9C2AB8101581400280A9F5E4653C8EB - FF96AF9701D63435276E854000D95100A0E02A2A2A649D276FFFD3D3FFF958FC - 6728FA88617B7BBB99F94397A52DF51502791910303C140028B8A5B72F4B058F - 0FF63EBFDB8C0A4B1F31DCE5E96580527F35B0BE9111C0D028005070BEBCFA57 - 6D7BA6F0D7FFADDD3B779A915F56AF592BB5B5B566060C8E472B4B1705000A4A - AF37AF6D5A6F66D13A73EA54EA453DC5F2E2BEE7538F1CFA26B542A0279764E0 - B7D3A74FC9E14387CC0CA5A6CCF43ED0EF459B1625DA2A82561534BD63499B1E - B2D44AE3F2FB6446D343C11831B0BE6583BCF5EDEF34B3687DFB5B8FC963FFF2 - 889915C71FDCFF3E59BED2BF6BEE2FEEDB2B9F79F89366565A3EF1F067657263 - A399259BDE8772E6D449397FFE5CEAD154BD3CD2DE7E553A3A3AE47AC735F355 - 99B4681F3F61825C08FE9E83AFBC223D3DDDE6130CEAD48E87E4FC3EFD03469F - 31D6A63B4E9B1E05E86B47F5548AB61BA6458E020005F5F677BE5BD6787206E0 - 531F7B28F803ED809915C7ABEEB9577EF58DBF6166FED0D3BA0FBCF75D45B921 - B2D8925A009C3B7B2615D8470E1F0CDA213979FC7810F4D9431E0510C302804B - 002818BDCEBCC293A3DFEBC1118FFEA1586CBB77ED3023BF949797CB7A2E03C4 - DA85F3E7E5878F7F5FFEF6AFFF4ADEF7AEDF973F79FFFDF2A5BFF9827CEF3BFF - 2107F6BF44F8634814002818BDCEACD79B7DA077FF1762F19FA1E811761485C7 - 70F874732686E7F8B1A3F28D47FF9F7CE4C13F4A9DC1F9C7BFFF926C7DE629B9 - 7CF992F90A60F8280050307EBDFCA7388FFF65E3EBE240BA42E08C1933CD0CBE - D223FD7FFFE663F2E007DE231FFDE003F26FDFFCBA9C387ECC7C0ADC3A0A0014 - 44FDB871A9E7FF7D11650150C88587466B83270B342193DEA3B12B281C3FF717 - 0FA78EF4BFFEE823457D8205C9400180826869DD98BACEEC033D051FE529523D - 5AD31BB47CD47A0705804FF4B1D1EFFFD77FCA83EFBF5FBEF0B9CF14E5B5D548 - 2E0A001444F3067FD69E2FD6DBFF06B37DDB5633F28BDE2DCF0A81D1B3C1FFC0 - 7BDF2D5FFBCA97538FED0185460180BC6B983449162F596A66D1DBB333FA3BF1 - 7D7D1A40B5B4FA53AC254D38F8B9990FC5440180BCF3E9EEF22B972F17FDD9FF - 6CF4B12C7D118B8F9A376C4C2DD884E2D29B433FFCE007087E4486020079E7D3 - F3E57B76FB73E4BD7DDBB366E49724AC10E8132D4AFFEA2F3F2D5FFCDC67E4EC - 193FEF0D4132500020AFF4B1327DBCCC173E2DC8F39CA705806A6EDD68462824 - 5D8EFA631FFAE3E0F7D2DF4B42480E0A00E4954F8F95E9BAF0513EFE1776E895 - 03A977B3FB68FDFA1656082CB0FD2FBD289F7DF84F39DD0F6F500020AF5A3CBA - FB5F57E3F36921137D13E1B34F3D69667ED13736AE59E7C79A0DA56AFF8BFB58 - 58075EA10040DECC5FB050A64C9D6666D1F3F194BBCF9701366DE6D5C0409250 - 00206F7C7AF5AFBE496D8F47D7FF2D9F9F06D03737EA1B1C0124030500F24617 - FFF1C5FE175FF07635345F9F06D03737DEE1511107A0B028009017CB56AC9489 - 0D0D6616BDADCF3E6D46FEE16900003EA000405EF8F436393DFDBF73FB3633F3 - 8FCF9701162C5C2453A74D373300A58C0200A3A66F915BD3D46C66D1D3D3FFED - 57AF9A999FF678FC6A609FEEE5005038140018B5556B9A526F93F385CFA7FF2D - 9F2F03B46EDC6446004A190500466D5D8B3F37FFF97EFADFD2B314D73B3ACCCC - 2FFA28E7C2454BCC0C40A9A200C0A8545555CBDA267F5E20F3E2BEBDDE9FFE57 - FA52A0DDBBFD7B4CD1628540A0F451006054D6B5B4484D4D8D9945EFE9A77E6C - 46FEDBBB679719F967C3C6CDAC100894380A008C8A4F2BFFE9DAEABBB63F6766 - FED31715E9250B1FE93D1DFA622000A5ABCCF43ED0EF459B1625DAF4F0A32A68 - D5A6E94A25B5D2B8FC3E99D1F4503046C4F4AD719FFAF4E752EF91F7812EB3BA - F7797F16FF190E7D79924F67505CCF3CFD13F9D2FFF98299C5C7271EFEAC4C6E - 6C34337F7CEBB147E59B5F7FD4CC50724EED7848CEEF7B2418759AA60B3F68EB - 095A5FD0B4DAD776C3B4C85100E0966D79D53DF2EB6FFE2D3343A9D1D514EF7F - C7DB62B7800D05002211C302804B00B8653EADFC87FCD333137A8F0780D24401 - 805BD2306912D78813A06503AF06064A1505006E89DEFCA78BC7A0B4AD58B59A - 15028112C59FE0B8254D1EDDFD8FC2D122AF850582809244018011D3C562162F - 596A662875CDDCEB0194240A008C58336F894B142DF6582110283D14001831EE - FE4F1E8A3EA0F450006044E6CC9D273367CD363324C51D2C110C941C0A008C88 - 4F2BFFA178A64D9F912AFE00940E0A008C48EB1D1C0926D5A62D779911805240 - 0180615BBCF4362F5FB18AE2D0750B582110281D140018369F56FE43F14D6C68 + 00000000000000000000000000000000000000000000000000009E29333DFCC7 + F70A405CDC303D3C46A8F827D7F784EF1580B8C855005018788450895EB6EFC1 + 70B6F1BD03E08B70B0670BFAE16E43911022D1182ACCED7CB89F070051192AFC + ED7CB89F872221408AC7DDD7B9823CDCABE16E038028640BF8E16C733FA6B27D + 2E0A880029AC6CA1ADC201EEF6E1CFCBF6B170AFDC31001452B6B076FB6C6315 + FE58B65EE51A238F088DC2C815CC3AB6733B0ECF95FBB16C4D857BE58E01A010 + B285B3DB0FD654B671B68FA95C63E40181913FB98258C7766EC7D9E6DACA07D9 + A674ACECC754B80780427303DBF676DC6F7A9DEBD87ECCB66CDB54AEB9956B8C + 5B44688C9EBB0FB385B21DDBF0767BFB711D87E76E9F6E13E64E95AA31774859 + E53CA91D3F4BC64E9D2A1595B344AA26495F5F9D9457CD908AE07F0050087DC1 + FFFA7B4E4945458748CF45E9EB3D2ED7CE9E95AE2BC7E546EF61E9E9DC27978F + 9C0D3ED386B7361BF86EF0EB383C57E1DE7E5C857BE58E31421A2CB835EEBEB3 + 631BD6CA8EDD160E76ED6D73E765D230778E548E5D2BB553D64AFDD45552D9BF + 4482D40F3E06001EEBBA22BDE5FBA5FDEC2EE93AB74D7AAF6D93B62347830F68 + 58BBC16FC7EEDCEDC34D85C7963BC63069E860E4EC7E73FBF0589B0D763BCEDD + 26CC98263593EF9109F33748EDB8CDC13F323DD80E0025E0C669E9BAFA23B97C + E869E9BEF0845C3E7526D8E81600D99A0D7B776C833E3C767B0C93061386CFEE + 2FB777C71AE6769B1DDB90D753F3769C6E13E72F9071337E4EC6DF769F945737 + 05DB00A0F4F55FDF2E574E7C57AE9EFABA5C3A7450B7845A9F33D660B7BD3B56 + 769B0AF718820D2F0CCEEE27777F69882B37ECEDD86D36F8D37DDDC44699B0F8 + 7F49C3825F908ACA95C1360048AEBEDEDDD276F0DFE4F2CB8F49C7A5F3C116B7 + 00700B01DB6CE8DBB1D2B14521304C6EA0213BBB8FDCDE6D1AEEB6CF1EFADA37 + 2EDD249317BF49AAC7BD3A98D7040D0030A05BAE5FFD9E5C78F91FE4FC8B4F05 + F37011102E06DC22C06D2ADC230B0D2E6467F78DDB879B1BFA9981AFAD667C9D + 4C5EF4F3D2B0E4AD525EB124D80600184A7FDF7E69DBFFB77261CF63D2DDDD1D + 6CD1F0CF5508642B026CF0877B3834C47033BB5FDCDE067EB81F087C37F81B97 + BD511A16BC4DCACA1A836D008091BA71E3BCB41DFC829CDFFB8FD27DA523D862 + 0B01B720B00540B80F87BFED61D880439ADD1F6EEF361BF83982BFA646A634FD + BA4C5CF007043F00E4891602970EFE959CDBFEA5D019817021609B2D006C53E1 + 3EF16CD061605FB8BD0D7DDBBBC1AF7DA51957CAF435FF431A97BC4FCAAAE606 + 730040BEDDE83922E7F77F4A4EEFF86630EB0D9A86BFF61AFAE1424083DE2D06 + 144580C3865DD2B9A1AF6CE887835F9B3DE2D7F0AF94097396C8CCA68F4865FD + A6600E0028B4DEF6A7E4E4F60FCAE5A3FB7566DA50670374AC28020C0A80CCF0 + 779B0D7C1DDBD01F08FFEA716365C6DA3F94B1B37E37D8A2DB0000C5A2AF25BE + 76FC6FE4D4B6BF94EB57AF055BDC22C0361BFC6E21609BB27D2269B825990D7B + 65C736F4C347FCE9E04F1DF52F689199CD7F2E95550B823900202ABD3D07E5E4 + D677CBE5835B74669A5B04B805805B0828779C38493D72B561AF4DD97138F4D3 + 812F52956A3535B5327BF37B65F2F23F93CA8AC9C136004094CA2B1AA47EF62F + C9D849B5D2797A8BF469E667FC6E77FBB0A13E5ED292F8970E7FC3ED11BFB65C + 47FD55523B659ECCBDEBAFA47ACC9A600E00F04D5FE76E39F8C3B74BD7B9C3C1 + AC2768839D0DD0A663E59E11480C0DB824C915FEE1D01F087E916A99B6FCA764 + CE9D5F928A6AEEF007005F95574D93C9F3EE97B21B07E45AAA0808B3077B968E + 35F4ED36F763252F490540F81BEC86BF6D99C1AF6DEEAB1E90494B3E1E7C98D7 + F70280F782DFD563A7FF9C8C995421978FE87D014385BA7E3C914540520A80F0 + 3776E8F0AFAE9F280BEFFB828C9DF6FA600E0088939AF1AD3271D60AB97AFA09 + E9BBAE970206A37990B82220090540F81B1A0E7FDD0736FCB555CB98C93365DE + 7D7F1FFC006D0CE6008038AA1CB340C6CFDD241D679F90DECECE608B7B8D3F1C + F23A4F541150EA0540F81B3958F8A78FFCC74EBD5DE6BEFA1FA4AA6669300700 + C45945D5F4A008B84F3ACF3D2D3DD72E99ADB9683E24A60848420160BF81B9C2 + 5F5BFA31BFB153EF90F9AFF967A9A8B82D9803004A813E2A3871C1CFCAB5334F + 0645409BD9EA9E0D70694EB84540C92AE5026024E1AF47FE1AFE5F61111F0028 + 416565754E1160CF0424BA0828D50280F0070064CA2C02127F26A0140B00FBCD + D2DE0D7EB70070AFF96BF87F99F00780044817013F93A508C855085825570894 + 5A01100E7FB700B047FD36FCAB64CCA49932EFB55F91F2F2E9C11C0090045A04 + 8C9FFF6A693FF92DE9EDEC305B5D839D152819A554000C37FCD38FFA558D9D28 + 8B7EFAAB5251392F98030092A4BC6CBC4C9C778F5C3AFCB8F4F7E86B83873A03 + 60954C11506A0580FDC6D8E0770B808123FFEAEA3A59F0DABF95CABAA6600E00 + 48A2B28AC9327EE64AB97AF85BD2D7E7AE0B90AD18D06D2513FEAA540A00FB4D + D15E03DFF6F6C85F5B3AFCF5E87FF6E607A56ECAFF0CC6008024ABA8992B3513 + EAE4D291A782990D7EB700B063CD15771C7BA55000B8E16F833F7CE49F3EEDAF + 05C0CC965F9289F3DF1F8C0100D0D706AF95CADAE372F5E44B664BB642202CF6 + 4540A914006ECB16FEE9A3FF71B7AD90C94D5F90CA329D03009056D1B059AEB7 + 3D21D7AF9E0F661AFC6E11305821105B712F006CE82B0D7D1DEBDF49C76EF857 + 4BD5C4065970EF17A5AA923BFE010099F4C070FC6DEBE5D289AF4B7FD7F5604B + B80808F7367B622BCE0580DDF9B608B047FEE1F04F170073377C486A26BE2A18 + 03007033BD29B0B6BE412E1D7E2298E50AFFB0D81602712F00DCA6C1AF7F1FDB + 068EFEA7AE7CAD4C5AF4C7C1180080DCAAC7AD08FEDC2BD7CE1E0E7A0D7DDBAC + 5C8540EC6868C6915B71B905805B08A4CF02D44D982413577C241803003034CD + 0CCD8E81B3C99A296EC6D8DCB1DC716CE85F2A8EECCED7A6DF0CDBDC23FF749B + FBEA8F496D5D7330060060689565F532A671AA5C3CF09D60E69E05B0AD246868 + C68D0D7E152E04B4001838FA9FBC70938C99F40BC1180080E1D3EC6858DC1A8C + DCB300DA346BDCEC51EE3836E2580058EE3740FF1E6E015021D5D5B532ADE5C3 + C1180080919BB1EEE3A92C71B365206FDC0C8AA5B81500EECEB6E370F8A7ABB5 + 296B7E552A2AE607630000464E3344B324FB5900B70850EE3816E25600587647 + DB965900E8CD1B9316BC3318030070EB344B066E08740B80700EC54E9C0A0077 + 27DBB17EFDB6A5C35FFBC655BF1774E382310000A31064492A539C8CC9CC9E6C + D9140BFAC5C78DDDC1B6D9F04FB7DA86E93261CE1B82310000A3A799A2D9E266 + 4D66F8DB162B712900DC9D6BC7FAB56786BF5667D356FD4ED0EBC23F0000E443 + B5C916F73280369B43D932CA7B7129002CBB636DCB2C02B4421B3FEB57823100 + 00F9A3D9927916201CFEB6C5461C0A007787DA1D9C19FCE956295396BD39E839 + FA0700E45BB5C998E19C0550EED84B71280094DDB16ECB2C02AA268C9789B37F + 39180300907F9A319A35B9C3DF6DDEF3BD007077A2BB6333C35F2BB2C685BF18 + 0CB9F31F005020FA4480664DC659806C4580E58EBDE37B01A0DC1D6AC736FC07 + 8A80498B39FA070014563A6BDCF0B77DB6ACF25A1C0A00CBEE50BBA307C2BF61 + C15A29AF5C148C0100281CCD1ACD9CCC22C0CD266DB1E07301E0EE44BB53B5D9 + E01F2800262DFCA5A00700A0F0D299E316006E21609BE58EBDE27301A0DC9D69 + 9B7ECD03E15F55572735537E3618030050789A399A3D994540B800B0CD5BBE17 + 00CAEE407787DA9D5D2E13E7DD2D1565638231000085A799A3D9E36651664629 + DB7B4BBF681F85779CDDA9EECE4E575EE3E7FF54D00300503CE9EC099F01D066 + F3CA159E7B41BF585FD99DE836772797A74FFF4F7875300600A078347BD29701 + 3273297B767949BFD8387077A47ECDE6E87F762BA7FF010045A7D9A319947916 + C0CD2AEFF95E00B83B53BFD6CC3676EAAB821E0080E24B67D0CDD994995DDED2 + 2FD437E11DE7CEDD1D5C21E36EDB10F40000145F3A8372DD03A04D85E7DED02F + D667D976607A27D74F9F2AE515F382310000C5A719A45964732933AB94EDBDE4 + 7301E0EE406D7607A7DB9886F5410F004074D25994994F03B9A56CEF1DFD427D + 667762B8954BEDE4D5410F004074D259E4867EB879CBB70220BCB3EC5C7B5B59 + A5DBF8994D410F004074D25994994F99D9E50ACF23A55FA86F7407D9A6DC797A + E75655554979158BFF0000A2A559A49964F32933B35478EE0D1F0B0097DD69EE + 4E2D97BAD90B83BE3A68000044A9DA6452664E0D8CBDE56B01E0EE343B1ED8A1 + D5358B535B0000885A65ED82E04F1BF83657B3E598577C2D0094DD997687DABE + 5C2AC7CE0F7A0000A2575DA797A4D3F9949959B67949BF48DFB93B515BB98C9B + 3127E80100885E3A93C2A1AFCD6B3E1500E19D967B5E5543010000F04359D54C + FDD3696AA879E47C3D03E0EE30DB6B4B57587DE5FAE6250000A25755392DF873 + 20A3D24D857BAFF85A00B8ECCE1C685555140000003F9455CDD03FB334AFF95C + 0064DB99653276DA94A00700C01FE96CCA9E5B9E8AC319006577A05EFFAF3363 + 0000FC90CEA681AC8A011F0B00B762BA795C563B3D3D0500C013E96C1A3CBF3C + E3FB2500CBCB9D0700404838AFBCCDAEB8DC046895494519970000007E292FAF + 09FE8C45F05B71BA07C0ECCC8A89E91E00004F94954FB623D3BCE77B0110DE89 + B1D8A90080448A5566C5ED1200000071E07D76C5E51280B23B93820000E09BD8 + 65549C0A00000090271400000024100500000009440100004002510000009040 + 1400000024100500000009440100004002510000009040140000002410050000 + 0009440100004002510000009040140000002410050000000944010000400251 + 0000009040140000002410050000000944010000400251000000904014000000 + 2410050000000944010000400251000000904014000000241005000000094401 + 000040029599DE07FAB568D3A2445B45D0AA82566D5A6DAA352EBB5F66343D1C + 8C819F58B070915455E98F4BBCF4F5F7CBF1A347A4ABABCB6C01104BA7B63F2C + E7F73E1A8CF4FFCCDAAE9BD613B4BEA0F59B76C3B4C8510020F6DEFC96DF910D + 9BEE32B3F8E9ECE8904F7FEAE3722C280400C4540C0B002E0120F65A376C32A3 + 781A535727F7BEE6B5660600C5410180D82B2F8FFF8FF1EAA666A9AAD2135D00 + 501C14008007EAEBEB65F9CA55660600854701007822EE973200C40B050062AD + B656EF0D2D0DAB56AF29A9BF0F00BF510020D6C6D68F33A3F8ABACAA92E6D60D + 66060085450180589B30618219958696F5779A110014160500626DC284896654 + 1AEE58B65C1A264D323300281C0A00C4DAC4120CCB162E030028020A00C4DAD4 + A9D3CCA874F034008062A00040AC4D99567A05C0ACD97364C68C996606008541 + 0180589B397396199596F51B390B00A0B02800105B7AB3DCE4C646332B2DAD77 + 520000282C0A00C4D6BAE6F566547AB4B059B4E476330380FCA300406C359570 + 01A0B81910402151002096F4F4FFA2C54BCCAC34AD0D0A9C8A8A0A330380FCA2 + 00402CAD59DB6C46A54B57085CB9BAC9CC0020BF2800104B6B9AD69951695BDB + 52DA97390044870200B1533F6E9C2CB963A99995B675EB5A5821104041500020 + 76F455B9E5E5C9F8D1D5150257AF4DC6D90E00C5450180D8694ED88A791B37DD + 6D4600903F1400889524DCFD1FA6973B4A6DD54300D1A30040AC6CD89CBCA361 + BDDCD1D29AACB31E000A8F0200B152CA6FFF1BCC7A5E0A0420CF2800101BBA42 + 9EAE94974473E7CD97A9D3A69B19008C1E05006223E92BE46DD87C971901C0E8 + 510020365A1276F77F58D2FFFE00F28B0200B1306FFE029932759A992593FEFD + 172C5C6C6600303A1400880556C64BE3690000F942018058D095F1907E1A8015 + 0201E4030500BCB774F90A99D8D06066C9A62B042E5DB6C2CC00E0D65100C07B + 519FF67EEA074F9A911F92FE340480FCA00080D7F474F7EAA668D7FEFFFE77BF + 2D97DADACC2C7ABA14322B0402182D0A00786DE5EAA6D469EFA8747777CBB1A3 + 4764CF0B3BCD96E8D5D4D4B042208051A30080D7D6B6447BF3DF91C38752FD9E + DDBB52BD2FEEDCB0D98C00E0D65000C05B5555D5A9D3DD513AF4CA8154AF0540 + 7F7F7F6AEC833B962D97FA71E3CC0C00468E0200DE5ADBD2923ADD1DA5032FBF + 94EABBBABA82F1FED4D807E91502379819008C1C0500BCE5C3CA7F07F60F84FE + 8B7B5F30233F34F36A6000A34001002FE9E9EDE52B569959348E1F3B2A1D1DD7 + CCCCBFFB00162D5EC20A81006E190500BCB4666DB3545655995934F6EF7BD18C + D28E1C3A28572E5F36333F34F36A6000B7C8A7778A96859A1627FAF5D956996A + 755396CBB819F7046394B05FFCDFAF97C62953CD2C1AFFF5AD6FCAE95327CD2C + 6DF6DC79326BD66C338BDEE4C993E57BDFF9B6990143D37748CC98799B2C5E7C + BB2C5BB15256AD6E920D9BEE4A15DD9BEFBE57EEBAE75ED9B8F96E59B172B59C + 3B7BC6BBA2D75BEDA79F908E737B8351AF697DA6E9DDC3379CE60D0D5A5FB8C1 + 6FC35F0F01AB4DD3379FD44AE3B2FB6546D3C3C11825AA61D224F9C4239F4DDD + E816A577FDDEEF645C0250AD1B37C96FFEF6DBCCCC0F9FFCC807E5F0A1836606 + 645AB07091CC0FDAA220F067CF9933A25535DBDBDBE503EF7967EA26580CE1D4 + F687E5FCDE478391EE2C6DD74DEB099A2D04DC6220721400F0CE6B5EF7D372FF + EB7FCDCCA2A1D7FF3FFAC107CD6C80DE9BF0E9CF7DC1CCFCF0BDFFFE2FF9EA97 + BF6466C9B63C386A9D3061829945E36C70D47C607FFAE99128E811FEEAA675A9 + 7DB16AF51A195357673E726BFEFC931F959723FCFBC40605C0A8500020E53D0F + 7E3075835B94F4F4FF638FFEB399657AF0431F95B9F3E69B59F4F435C50F0647 + 697D7DFA3B26B9D6B5AC97B7BEFD1D6616AD7D7BF7C817FEEA33453D72BEFD8E + A5B2E9EE7B655D734B5EEF9FF98B4F7D5C5E0ADD0F832C625800447B8E1508D1 + BBDAA30E7F35D8237F7B5EF0EB69005D297149F0CB3FE966DE36CB8CA2A72F6A + FAF5DF788B99158EBE2CEBDEFB5E271FF9E423F247EFFB80B46ED818F9CDB388 + 0F0A0078C587BBDA7B7B7A329EFF0FF3ED7140D5BA8115022F9C3F6F467ED0F7 + 344C9D36FCEBED23A1C1FF9AD7FD8C7CE291CFC8AFFCDA1B65DAF419E623C0F0 + 5100C02B2D1EBCDC66FF4B2F4A4F8F9EB9CB4E5F0FDCD9D161667E58DBBC3E15 + 0A4976E1FC3933F2871E9DE793AE8EA977E86BF0DFFFFA37C8F888EF7740BC51 + 00C01BB3E7CCF5E234EEAE9D3BCC283BBDD6EEDB65007D65F29A84AF1078DEB3 + 33004A0BB37C59BA7C85FCC9873F2E6FFAADB712FCC80B0A007823EA95FFACE1 + 9CE2F7F132404BC25F0AE4E3F3EA7A7FC68C1933CDECD6E863B1BFFDB6DF9777 + BEFBFD5EDDE780F8A30080375AEF8CFE3AB6BEF8E4EC99D366969B8F05C0CAD5 + 4D895E21502FDBF87669462D5C72BB198DDCBDAF799D7CF8138FB0EE030A8202 + 005E5814FC929CDCD86866D1D9B6758B190DEEF2E54B72E8E02B66E6077D7192 + 0F0B2845495F5CE31B7D11CF48E951FF03EFFF80FCCA1BDE18F98A98285D1400 + F0822FC1B56BE776331ADA483EB758D627FC6980B6B60B66E48F59B3E798D1F0 + E8FB0C3EF4D13F9525B7F368270A8B020091D33B9B7D38C5A9D79047F206B7DD + 3BFC2B00F41D0A7AF498543E9E01B86D98D7EDF5FF07AFFFB537A55E6634DAB7 + F701C3410180C8E94B6C7CB8AB79F7AE9105FAB1A347E4A287779E6FD87CB719 + 254FB787EFACD717F30CB56CF3840913536FC0BCE7BED79A2D40E151002072BE + DCBDBEE5D967CC68F8766C7FDE8CFCE1C3BB14A2E2EBCA7553075980471F7F7D + F0431F91F90B169A2D407150002052FAF29AE6F51BCC2C3ADDDDDD83BEFD2F17 + 1FEF03D047C534549268B017384529D7192E7DB65F8FFC273624F7B20DA24301 + 80482D5FB9CA8BBB9CF548FE56C263FFBE17BDBCEEACCB16279116723ECAF684 + CBBA965679C71FBD97BBFC11190A0044CA97D3FF7B76EF34A391D1B702EEF6F0 + 2C408B076755A2D07EF5AA19F9A5A65617331D70E7C6CDF296DFFDBDD4A39B40 + 54F8E9436474DDF2354DD1BFBEB6BFBF5F766EBBF56BF93B46F1CF168ABE814E + 4F2FC30FF5F5032F686A0DC2FF377EFB77097F448E9F404466F5DA755E2C5DAA + A7F147B36EBBBE15D0C753CF497F35B04FEC19003DEDFFE6DF7A6B6A0C448D02 + 0091F1E534F568EFE4D77B077CBC0CA03757266D85401F5F05ACEAEBEB536764 + 38ED0F9FF0938848E83BEBF506401FECD8B6D58C6E9D8F4F03E8CD65BEECE362 + E9E8B866467ED1C700DFF607EF22FCE1157E1A1189356B9BBDF86578FCD85169 + BB78D1CC6E9DDE43D0DBD36366FED8B8F92E334294F4313FEEF6876F28001089 + 0D9BFC08A67CDDC0A7F710EC7FE94533F3C7F215ABA4AE6EAC9901C0000A0014 + 9DBEAB5EDF59EF837C9CFEB79E1FE64A82C5A43759AE6D49F60A8100B2A30040 + D1F9B2F2DFA5B6B6D4FBFCF3259FC5443EB5267C854000D95100A0E87C59AC66 + C7F6FC06B6BE84E6C0CB237F9D70A12DB9FD8EC4AC10E8EB9B00011F5100A0A8 + 7455B491AE8F5E28857881CF4E0F170752AD1B369B5169BBEAE99B00011F5100 + A0A89A3D79398D1E29EA0B80F2CDC7B7022A5E0A04208C020045B5D197BBFF83 + 23757D8F7FBE9D3D735A4E9E386E66FED0B32EB7CD9A6D660040018022D2256A + A70CB22E7A31DDEAE23FC331DA370B168A2F675F0A49D77500303C1400281A5F + 96A8D517F68C66F19FA1F87A1960E3263F6EBE2CA4B68B17CC08C05028005034 + BEBCFB5FEFD41FCDE23F433972E860EA1143DFE80A818B96DC6E6600928E0200 + 45A1C1A301E4832DCF3D63468593EF470CF385570303B0280050143EBD8CA690 + D7FF2D5F2F03AC6E6A4EDC0A8100B2A30040C1555454C85A4FDEFEA7A7FFF3B1 + F8CF50F411C3F6F67633F3872E4B5BEA2B04F232206078280050704BEE589A0A + 1E1FEC7961971915963E62B8D3D3CB00A5FE6A607D232380A15100A0E07C79F5 + AFDAFA6CE1AFFF5BBB76EC3023BFAC5ABD466A6B6BCD0C181C8F56962E0A0014 + 945E6F5ED3B4CECCA275E6D4A9D48B7A8A65DFDE17528F1CFA26B542A0279764 + E0B7D3A74FC9E14387CC0CA5A6CCF43ED0AF459B1625DA2A82561534BD63499B + 1EB2D44AE3B2FB6546D3C3C11831B0AE65BDBCF5EDEF30B3687DEB9B8FCBE3FF + FAA89915C71F3EF05E59B6C2BF6BEEFBF6EE91CF3CF249332B2D9F78E4B332B9 + B1D1CC924DEF433973EAA49C3F7F2EF568AA5E1E696FBF2A1D1D1DD2D971CD7C + 56262DDAC74F982017827FE6E02BAF484FCF75F3110CEAD4F687E5FC5EFD05A3 + CF186BD31DA74D8F02F4B5A37A2A45DB0DD322470180827AFB3BDE25AB3D3903 + F0A98F3D1CFC423B6066C5F1AA7BEF935F7DE36F98993FF4B4EE83EF7967516E + 882CB6A41600E7CE9E4905F691C3078376484E1E3F1E047DF6904701C4B000E0 + 12000A46AF332FF7E4E8B73338E2D15F8AC5B66BE77633F24B7979B9ACE33240 + AC5D387F5E7EF0C4F7E4EFFEE6AFE5BDEFFC7DF993F73D205FFCDBCFCB77BFFD + 9F7260FF4B843F8644018082D1EBCC7ABDD9077AF77F2116FF198A1E61475178 + 0C874F376762788E1F3B2A5F7FECFFC9471EFAE3D4199C7FFA872FCA96679F96 + CB972F99CF00868F020005E3D7CB7F8AF3F85F36BE2E0EA42B04CE9831D3CCE0 + 2B3DD2FF8F6F3C2E0FBDFFDDF2D10F3E28FFFE8DAFC989E3C7CC47815B470180 + 82A81F372EF5FCBF2FA22C000AB9F0D068ADF764812664D27B34760685E3E7FE + E291D491FED71E7BB4A84FB02019280050102DAD1B52D7997DA0A7E0A33C45AA + 476B7A83968F5AEFA400F0893E36FABDFFFE2F79E87D0FC8E73FF799A2BCB61A + C945018082685EEFCFDAF3C57AFBDF60B66DDD62467ED1BBE55921307A36F81F + 7CCFBBE4AB5FFE52EAB13DA0D0280090770D9326C9A2C54BCC2C7ABB77447F27 + BEAF4F03A896567F8AB5A409073F37F3A198280090773EDD5D7EE5F2E5A23FFB + 9F8D3E96A52F62F151F3FA0DA9059B505C7A73E8871F7A3FC18FC8500020EF7C + 7ABE7CF72E7F8EBCB76D7DCE8CFC928415027DA245E95FFFE5A7E50B9FFB8C9C + 3DE3E7BD2148060A00E4953E56A68F97F9C2A705799EF7B40050CDAD1BCC0885 + A4CB517FEC431F087E2EFDBD2484E4A000405EF9F45899AE0B1FE5E37F61875E + 39907A37BB8FD6AD6B6185C002DBFFD23EF9EC237FCAE97E7883020079D5E2D1 + DDFFBA1A9F4F0B99E89B089F7BFA2933F38BBEB171F55A3FD66C2855FBF7ED65 + 611D7885020079336FFE029932759A9945CFC753EE3E5F06D8B8895703034942 + 0180BCF1E9D5BFFA26B5DD1E5DFFB77C7E1A40DFDCA86F7004900C1400C81B5D + FCC717FBF7BDE8ED6A68BE3E0DA06F6EBCD3A3220E40615100202F962E5F2113 + 1B1ACC2C7A5B9E7BC68CFCC3D300007C400180BCF0E96D727AFA7FC7B6AD66E6 + 1F9F2F03CC5FB050A64E9B6E66004A190500464DDF22B7BAA9D9CCA2A7A7FFDB + AF5E35333FEDF6F8D5C03EDDCB01A0702800306A2B5737A5DE26E70B9F4FFF5B + 3E5F0668DDB0D18C0094320A008CDADA167F6EFEF3FDF4BFA567293A3B3ACCCC + 2FFA28E782858BCD0C40A9A200C0A8545555CB9A267F5E20B36FEF1EEF4FFF2B + 7D29D0AE5DFE3DA668B1422050FA2800302A6B5B5AA4A6A6C6CCA2F7CCD33F32 + 23FFEDD9BDD38CFCB37EC3265608044A1C050046C5A795FF746DF59DDB9E3733 + FFE98B8AF492858FF49E0E7D311080D255667A1FE8D7A24D8B126D7AF85115B4 + 6AD374A5925A695C76BFCC687A38182362FAD6B84F7DFA73A9F7C8FB409759DD + F3823F8BFF0C87BE3CC9A73328AE679FF9B17CF1FF7CDECCE2E3138F7C562637 + 369A993FBEF9F863F28DAF3D66662839A7B63F2CE7F73E1A8CBA4CD3851FB4F5 + 04AD2F685AED6BBB615AE4280070CB36BFEA5EF9F537FF9699A1D4E86A8A0FFC + C1DB62B7800D05002211C302804B00B8653EADFC87FCD333137A8F0780D24401 + 805BD2306912D78813A0653DAF06064A1505006E89DEFCA78BC7A0B42D5FB98A + 15028112C56F70DC92268FEEFE47E16891D7C202414049A200C088E962318B16 + 2F313394BA66EEF5004A12050046AC99B7C4258A167BAC1008941E0A008C1877 + FF270F451F507A28003022B3E7CC9599B7CD323324C59D2C110C941C0A008C88 + 4F2BFFA178A64D9F912AFE00940E0A008C48EB9D1C0926D5C6CD779B11805240 + 0180615BB4E4762F5FB18AE2D0750B582110281D140018369F56FE43F14D6C68 E0ED8F4009A100C0B0E8911FCF83A3959B01819241018061D123BFF113269819 - 924A2F035455E9E29C00E28E0200C3D2C273E008E80A81ABD7AE353300714601 - 8021E9115F33ABC2C1E03200501A280030245D114E8FFC00B562252B0402A580 - 020043E2F43F5C955555B2765DB39901882B0A000CAAB6B656D636AD3733206D - E3E63BCD08405C510060506BD6AD4F1DF1012E5D21B061D22433031047140018 - 540B37FF21878DBC1A1888350A00E4A4377AE90D8040362C0B0DC41B050072D2 - 1BBDCACBF9154176BA2C342B0402F1C59FEEC8891BBD309496562E1101714501 - 80ACF4062FBDD10B180C2F0502E28B020059B1F21F86435708BCEDF6E5660620 - 4E28009015777863B85A376D322300714201809B4C9D365D66CF996B66C0E0D6 - AD678540208E28007093665EFD8B11185357C7E3A2400C5100E0269BB8FB1F23 - B4690BBF3340DC500020833ED73D65EA34330386475708ACAB1B6B6600E28002 - 00195A37F15817464ED78B58D7C29323409C50002003EFFEC7ADE2D5C040BC94 - 99DE07FABD68D3A2445B45D074193ABDBD585B6DAA352EBF4F66343D148C9167 - 8B97DE26EFFDA307CDCC1FBB763C27C78E1E31B3641A533756EE7DED4F9999BF - 3E70FF3BA5EDE245338BC6271EFEAC4C6E6C34337F7CEBB147E59B5F7FD4CC50 - 724EED7848CEEF7B2418759AD66D5A4FD0FA82D66FDA0DD322470180FFF68637 - FDA6DC75F7ABCDCC1F0F7EE03D72F6CC69334BAE8F7DEAD3DEDF9FF12FFFFC55 - F9CEBFFF9B994583020091886101C02500A4545454C83A0FDFFE77FCD851C2DF - D8FAECD366E42F5E0D0CC40705005296DEBE4CEAEBEBCDCC1FCF6D7BD68CB07D - ABFFFB425F20356BF61C3303E0330A00A4F8FAEADF5DDB9F3323E87D10E7CE9E - 31337FF12229201E2800907A8DEBDAA6F566E60F0DBB13C78F9919D44F9EFC91 - 19F96BD366D69100E2800200B27AED5AA9A9A931337FC4E19A77B16D7BC6FF7D + 924A2F035455E9E29C00E28E0200C3D2C273E008E80A81ABD6AC313300714601 + 8021E9115F33ABC2C1E03200501A280030245D114E8FFC00B57C052B0402A580 + 020043E2F43F5C955555B2666DB39901882B0A000CAAB6B656D634AD3333206D + C3A6BBCC08405C51006050ABD7AE4B1DF1012E5D21B061D22433031047140018 + 540B37FF21870DBC1A1888350A00E4A4377AE90D8040362C0B0DC41B050072D2 + 1BBDCACBF9114176BA2C342B0402F1C56F77E4C48D5E184A4B2B978880B8A200 + 40567A8397DEE8050C86970201F1450180AC58F90FC3A12B04DE7EC732330310 + 271400C88A3BBC315CAD1B379A118038A100C04DA64E9B2EB366CF313360706B + D7B1422010471400B84933AFFEC5088CA9ABE371512086280070938DDCFD8F11 + DAB8999F19206E280090419FEB9E32759A9901C3A32B04D6D58D353300714001 + 800CAD1B79AC0B23A7EB45AC6DE1C911204E2800908177FFE356F16A60205ECA + 4CEF03FD5AB46951A2AD2268BA0C9DDE5EACAD36D51A97DD2F339A1E0EC6C8B3 + 454B6E97F7FCF14366E68F9DDB9F9763478F9859328DA91B2BF7BDF6A7CCCC5F + EF7FE01DD276F1A29945E3138F7C562637369A993FBEF9F863F28DAF3D666628 + 39A7B63F2CE7F73E1A8CBA4CBB6E5A4FD0FA82D66FDA0DD3224701809F78C39B + 7E53EEBEE7D566E68F87DEFF6E397BE6B49925D7C73EF569EFEFCFF8D77FF98A + 7CFB3FFEDDCCA241018048C4B000E01200522A2A2A64AD876FFF3B7EEC28E16F + 6C79EE1933F217AF0606E2830200294BEE582AF5F5F566E68FE7B73E6746D8B6 + C5FF7DA12F90BA6DD66C3303E0330A00A4F8FAEADF9DDB9E3723E87D10E7CE9E + 31337FF12229201E2800907A8DEB9AA67566E60F0DBB13C78F9919D48F9FFAA1 + 19F96BE326D69100E2800200B26ACD1AA9A9A931337FC4E19A77B16D7DD6FF7D A22B04EA132500FC4601006F6FDC8AC335EF62D31B22F5C648DF713320E03F0A 8084ABADAD4DBDC6D53797DADA12FFEC7F2E71B831529F28D1274B00F88B0220 - E1F40F6A7D8DAB6FB673F77F4E4FFDF88766E42F7DA264D59A263303E0230A80 - 84F3F5542D8FFFE5A66FDA3BF0F27E33F3570B4F03005EA30048B0FA71E352CF - FFFBE6CAE5CB7260FF4B66866C76C4A040D2274BF41213003F510024584BEB46 - 292FF7EF5760CFEE1D66845CE2708624B542A0876F97049046019060CD9EAEDE - B635068FBA454D2F03EC7FE94533F3174F0300FEA20048A886499364F192A566 - E68FF6F676D9FFE20B6686C13CF3D49366E42FBDC4A4BF6B00FC43019050BEBE - FA77CFAE1DD2D7A70B6761283BB76F93FE7E5D5CCC5F7A89693D9701002F5100 - 2494AF7F28EFE4DDFFC3D67EF56A2CCE966CE03200E0250A80049A3163666AD5 - 36DF747575C9DE3DBBCD0CC31187D725CF9BBF40A64E9B6E66007C410190401B - 36F97944B673C773D2D3D36D66188E6DCF3C25BD3D3D66E6AF8D5BEE342300BE - A00048A0164FEFFEDFBB67971961B83A3B3B65EFF3FE9F35F1F5770E48320A80 - 8499BF60A14C993ACDCCFCA147B1ACFD7F6BE2F04E00FD9D638540C02F140009 - E3EB73D97A14AB47B318392D9CE27019805703037EA10048185FDFCCC6BBFF6F - 9D164ECF3DB7D5CCFCD5BC61232B04021EA1004890652B56CAC4860633F3873E - CBCEDDFFA3B37DABFF0594AE10B862957F4B4F034945019020BE9E82D567D9F5 - 9976DC3A2DA0F4314ADF35B76E34230051A30048083DF5BAA6A9D9CCFC128767 - D97DA78F4FEA6394BE638540C01F140009B16A4D53EA14AC8FF6EC64F5BF7C78 - F627FEAF0D505353236BD6AD37330051A2004888752D7EDEFC77E0E5FD72F9F2 - 2533C368BCB0EFF9D4624ABEBB63E316330210250A8004A8AAAA4E9D7AF5D10E - EEFECF1B5D4469D78E6D66E6AFDB97AF90FA71E3CC0C4054280012605D4B4BEA - D4AB8F78FC2FBFB63EE3FFFD14BA42E01D2C1004448E0220017C5DF9EFC8E143 - D276F1A299211FF4898A2B972F9B99BF781A00881E054089D353AD2B56FAF9EC - 751CEE5A8F1BBD0CB02D064F552C58B88815028188510094B8B5EB9AA5B2AACA - CCFCB22D06A7ABE3282E97559A79353010290A8012E7EB2A6C274F1C97B3674E - 9B19F2E9C0FE97E4525B9B99F96BD366960806A2440150C21A264D92A5B72F33 - 33BF70FABFB0B6C76485405D9D12403428004A98DEFCA7775CFB280EEFAE8FB3 - 9FFCF88766E4375F57A704928002A08435797AF7FFB9B367E4D8D123668642D0 - FDABFBD977CD1BEE60854020221400254AEFB05EBC64A999F965FB36FF97AE2D - 0571586361FC8409DE5EA6024A1D054089F2F90EEBDDBB78F77F31C4E532CBC6 - 2D7799118062A2002851BEDEFDAF77A7EB5DEA283CBD0C70FCD85133F397BEA6 - 5A5F570DA0B828004AD09CB9F364E6ACD966E69738DC9D5E4AE2F04E007D4DB5 - BEAE1A4071510094207DF98FAF38FD5F5C7179D992AFAFAB064A190540099ADC - D868467ED1A56AF55DF5281E7DD9521C2E032C58B8D88C46AFBFBFDF8CFC1287 - 351A902C140025E8C2F9F366E40FFD43F99FBFFA7F53EFAA47713DF6E823DE86 - A2D5D5D56546A3F7D4937EBE03E1E02BAF9811E08732D3FB40BF176D5A9468D3 - 8783F525F67A7790B6DA546B5C7E9FCC687A28182307BDA16ACB5D77CB9CB973 - A5DC8367AC3B3A3A64DB334F057F001E305B506C8B97DE96BA31B4A656FF6FE4 - 97F6AB5783D0FE919C387ECC6C19BDD64D9BE5B6DB9679F3FBBF67D70E7961EF - F3660B4AD2A91D0FC9F97D8F04A34ED3BA4DEB099A1EF96815AEED866991A300 - 000060B4625800700900008004A200000020812800000048200A000000128802 - 00008004A200000020812800000048200A00000012880200008004A200000020 - 812800000048200A00000012880200008004A200000020812800000048200A00 - 000012880200008004A200000020812800000048200A00000012880200008004 - A200000020812800000048200A00000012880200008004A20000002081280000 - 0048200A00000012880200008004A200000020812800000048200A0000001288 - 0200008004A200000020812800000048200A00000012880200008004A2000000 - 20812800000048200A00000012880200008004A200000020812800000048200A - 00000012880200008004A200000020812800000048A01816007D97CC0000004F - C42F9B625800F477980100009E885F36C5A900B8617A00007C159BAC8A430190 - B9337B3BCF9A1100007EB8399BBC2F047C2F00C23BF086F47471090000E09774 - 36DD9C591E8BCB2500DD89E91D79EDEC85540F00802F06B26920AF3C17B74B00 - E91DDBD77F2E3D05002062377A4EE95F4DB3BC2F027C2E006E0EFEB4A0EFE53E - 0000801F7AFB35939C8CFAEFB172C75EF1B10070775EB6F10DE9B97E2CB50500 - 80A8F575BA6700C299A5DCB137E2740F80ED6FC8D513C7D35300002296CE2437 - E4BD0BFB6C7CBF0490BDF5761E0E7A0000A2D773FD95E0AFD9F32ADDBC14979B - 00335BF7F503410F0040F47A3A0F057FBD39AB3CE76B0160779CDB6BEB4FF51D - C7F50C4077D000008852B7C9A4818C4A3715EEBDE2530160779ABBC3B2CF7B7B - 7BA4B7FB606A2B000051D12CD24C72332A6DA879E4E27809205D615D3BB52BE8 - 0100884E3A8B06B229B3792D2E3701DA1DAB7DBA755CD813F4000044279D4503 - D9949959B679C9F77B00941DBB3B342800CE6DD78D000044269D4599F99466B3 - 4BB9636FF87E09C0DDA1EE382800CE9F93FEDEA3C1180080E2D30CD22CB2B994 - 3DB3BCE5630160779ADD71EEDCEEE4746B3FF96CD00300507CE90CCACCA5CCCC - 52E1B9377C2B00C23BC8DD81E19DDC2FD7CE3C19F40000145F3A836ECEA6CCEC - 7285E7918ACB258070D31DDC27978E6E93BE1BD783310000C5A3D9A319A45934 - 10FAD99AB77C2E00EC8EB33BD1ADAED2ADB7B3533A2FFC28180300503C9A3D9A - 41D9B22933FC6DEF9D389C01B0BD6DEE4EEE93CB87BE17F40000144F3A7BECD1 - BF6D6E5629DB7B29CE3701A677FCE5A34F7119000050349A399A3D6E160D3437 - B35478EE8D38DD03E0EE60DBFAA4B7F3BA749EF96E300600A0F03473347B6E0E - 7FDBDCECF296EF0580E5EE4CDDB9BAD3075ADBC16F043D00008597CE9CCC1C8A - 51F05BBEDF04186E6E85355008B41DDA237D3DBA1C23000085A359A3999319FC - 6ECB965D5EF2B50008EF30BB13DD9D6C77BEB65EB9B0FF5F831E0080C249674D - 6FD0DC0C72B3295BE887E75E88C32500BBE3EC4ED5E6EEECF40FE0D2CBFF167C - D41E8C01002880206352593368F06B53B6F7569C6E02B42D33F86DEBBA76552E - 1D7A2C180300907F9A319A35E1FCC95E04D8E62DDFEF01B0DC9D69C3DF2D02F4 - 744CAF9C79E19F82BE3B680000E453B7C99874DE6486BFEDDDACB2DCB157E270 - 09C0B23BD5EE64B70048B7EE4B67E5CA51CE020000F24BB34533269C3B999964 - 732A16E2720F80DDA1766CC3DF2D02D255D9A93D5F0E7ACE020000F2A5DB64CB - 708EFE953BF6561CEE01B0EC0ED5A63B3B1CFEE9BEFBD219B97CF4D1600C00C0 - E869A668B6B85933903F368FDC8CB2DCB177E27209C0DDB1B6E52E02CEECFABB - E04B78220000304A4196A43265D8E16F9BF72A4CEFBB32D394DBDBA6858CEDCB - A5AFAB57CAAA7B646CE31DC11C00805B73F6A52FC8E5C35B83915E5AEE31BD16 - 01B6D942201CFCDE170171390360D91D6C5BB6B300E97661D7A3D2DF73341803 - 0030729A219A256EB60C7DF41F1B71BB04A0EC381CFE9905406F6FA79C78F6CF - 8331000023A719A259E2664B66E6848B00E58EBD16B73300CAEE5CDB72170197 - 0E6F93F6B3FF118C0100183ECD0ECD10375332B3C60D7EDB62254E0580BB83ED - D8565FB608B03F20BD4E93FE819D7CE62FA5AFEF5C30060060689A199A1D03C1 - AF99E2668C9B3DD9B22916E27213A0656FFA53769CAB697153267D5D3DD2DF7B - 5AC6CD7C4D3007006070A7777C4CAE9E782118B937FE0D1C58661601B10A7D57 - DC0A004B033E571F6EE572FDFC091933698AD48CBF2D98030090DD95E3DF9053 - CF7D2518D9E0B7E1EF1600B13FFA5771BC07C0B23B5B9BFD616855669BFD41A5 - 7F70A7B7FE95F4751E0EC60000DC4C3342B3E2E6C077B3251CFEDA6229AE6700 - 941EDDDBDE8E959DBBAD5CFA7AFAA4B3ED799938EBA7452A2B836D0000185D9D - 72F4C9F74847DBC960A2E13FD8D17F38FC635908C4FD1280B2E36CBD367B96A3 - 5CBADB2F4B79D505193BF54EB30D000091732FFE995C7CE5E960A4A1DF15341B - FCB6D933001AF49C0188980D7897BBCD8EB50D1401ED670EC99809F552337185 - D9060048B22B47FE594E6CFDC760E4867FF8E8DF9EFA77C3DF8A6511500A9700 - 2C77EE86BF72E765D27E6297D4CF5A21556366E987008084BADEB6558E3EFE49 - B971435FF8E39EF6D73E7C0F40F8C83F96C16FC5B90050E190CFD567B61BC1CF - ECDA89A764E2822D525E3931D80600489A9ECE57E4C877DF2B3DDDBA789C0D7F + E1F417B5BEC6D537DBB8FB3FA7A77FF40333F2973E51B27275939901F0110540 + C2F97AAA96C7FF72D337ED1D7879BF99F9AB85A70100AF51002458FDB871A9E7 + FF7D73E5F26539B0FF25334336DB635020E993257A8909809F280012ACA57583 + 9497FBF723B07BD77633422E713843925A21D0C3B74B0248A30048B0664F576F + DB128347DDA2A69701F6BFB4CFCCFCC5D30080BF280012AA61D22459B4788999 + F9A3BDBD5DF6EF7BD1CC3098679F7ECA8CFCA59798F4670D807F280012CAD757 + FFEEDEB95DFAFA74E12C0C65C7B6ADD2DFAF8B8BF94B2F31ADE33200E0250A80 + 84F2F597F20EDEFD3F6CED57AFC6E26CC97A2E03005EA20048A0193366A6566D + F34D7777B7ECD9BDCBCC301C71785DF2DC79F365EAB4E96606C017140009B47E + A39F47643BB63F2F3D3DD7CD0CC3B1F5D9A7A5B7A7C7CCFCB561F35D6604C017 + 140009D4E2E9DDFF7B76EF34230C57575797EC79C1FFB326BEFECC0149460190 + 30F3E62F902953A799993FF42896B5FF6F4D1CDE09A03F73AC1008F885022061 + 7C7D2E5B8F62F5681623A785531C2E03F06A60C02F140009E3EB9BD978F7FFAD + D3C2E9F9E7B79899BF9AD76F608540C023140009B274F90A99D8D06066FED067 + D9B9FB7F74B66DF1BF80D2150297AFF46FE96920A9280012C4D753B0FA2CBB3E + D38E5BA705943E46E9BBE6D60D6604206A140009A1A75E5737359B995FE2F02C + BBEFF4F1497D8CD277AC1008F88302202156AE6E4A9D82F5D1EE1DACFE970FCF + FDD8FFB5016A6A6A64F5DA756606204A140009B1B6C5CF9BFF0EBCBC5F2E5FBE + 6466188D17F7BE905A4CC977776ED86C4600A2440190005555D5A953AF3EDACE + DDFF79A38B28EDDCBED5CCFC75C7B2E5523F6E9C9901880A054002AC6D69499D + 7AF5118FFFE5D79667FDBF9F425708BC93058280C851002480AF2BFF1D397C48 + DA2E5E3433E4833E5171E5F26533F3174F0300D1A30028717AAA75F90A3F9FBD + 8EC35DEB71A39701B6C6E0A98AF90B16B2422010310A8012B7666DB354565599 + 995FB6C6E074751CC5E5B24A33AF060622450150E27C5D85EDE489E372F6CC69 + 33433E1DD8FF925C6A6B33337F6DDCC412C1409428004A58C3A449B2E48EA566 + E6174EFF17D6B698AC10A8AB53028806054009D39BFFF48E6B1FC5E1DDF571F6 + E31FFDC08CFCE6EBEA944012500094B0264FEFFE3F77F68C1C3B7AC4CC5008BA + 7F753FFBAE79FD9DAC1008448402A044E91DD68B162F3133BF6CDBEAFFD2B5A5 + 200E6B2C8C9F30C1DBCB5440A9A30028513EDF61BD6B27EFFE2F86B85C66D9B0 + F96E3302504C140025CAD7BBFFF5EE74BD4B1D85A797018E1F3B6A66FED2D754 + EBEBAA0114170540099A3D67AECCBC6D9699F9250E77A7979238BC13405F53AD + AFAB06505C140025485FFEE32B4EFF17575C5EB6E4EBEBAA8152460150822637 + 369A915F74A95A7D573D8A475FB61487CB00F3172C32A3D1EBEFEF3723BFC461 + 8D06240B054009BA70FEBC19F9437F29FFCB57FE6FEA5DF528AEC71F7BD4DB50 + B4BABBBBCD68F49E7ECACF77201C7CE5153302FC50667A1FE8D7A24D8B126DFA + 70B0BEC45EEF0ED2569B6A8DCBEE97194D0F0763E4A037546DBEFB1E993D678E + 947BF08C754747876C7DF6E9E017E001B305C5B668C9EDA91B436B6AF5FF467E + 69BF7A3508ED1FCA89E3C7CC96D16BDDB8496EBF7DA9373FFFBB776E9717F7BC + 60B6A0249DDAFEB09CDFFB6830EA32EDBA693D41D3231FADC2B5DD302D721400 + 00008C560C0B002E010000904014000000241005000000094401000040025100 + 0000904014000000241005000000094401000040025100000090401400000024 + 1005000000094401000040025100000090401400000024100500000009440100 + 0040025100000090401400000024100500000009440100004002510000009040 + 1400000024100500000009440100004002510000009040140000002410050000 + 0009440100004002510000009040140000002410050000000944010000400251 + 0000009040140000002410050000000944010000400251000000904014000000 + 2410050000000944010000400251000000904014000000241005000000094401 + 00004002510000009040140000002410050000000914C302A0EF92190000E089 + F865530C0B80FE0E330000C013F1CBA6381500374C0F0080AF62935571280032 + 77666FD759330200C00F376793F78580EF05407807DE909E6E2E010000FC92CE + A69B33CB6371B904A03B31BD23AF9DBD90EA0100F0C540360DE495E7E2760920 + BD63FBFACFA5A7000044EC46CF29FDD334CBFB22C0E702E0E6E04F0BFA5EEE03 + 0000F8A1B75F33C9C9A89F8C953BF68A8F0580BBF3B28D6F484FE7B1D4160000 + A2D6D7E59E0108679672C7DE88D33D00B6BF21574F1C4F4F010088583A93DC90 + F72EECB3F1FD1240F6D6DB7538E80100885E4FE72BC19FD9F32ADDBC14979B00 + 33DBF5CE03410F0040F47ABA0E057FDE9C559EF3B500B03BCEEDB5F5A7FA8EE3 + 7A06E07AD0000088D27593490319956E2ADC7BC5A702C0EE347787659FF7F6F6 + 48EFF583A9AD00004445B34833C9CDA8B4A1E6918BE32580748575EDD4CEA007 + 00203AE92C1AC8A6CCE6B5B8DC046877ACF6E9D6716177D00300109D74160D64 + 536666D9E625DFEF015076ECEED0A00038B74D3702001099741665E6539ACD2E + E58EBDE1FB25007787BAE3A000387F4EFA7B8F066300008A4F3348B3C8E652F6 + CCF2968F0580DD6976C7B973BB93D3ADFDE473410F0040F1A53328339732334B + 85E7DEF0AD0008EF207707867772BF5C3BF354D00300507CE90CBA399B32B3CB + 159E472A2E9700C24D77709F5C3ABA55FA6E74066300008A47B3473348B36820 + F4B3356FF95C00D81D6777A25B5DA55B6F5797745DF861300600A078347B3483 + B2655366F8DBDE3B713803607BDBDC9DDC27970F7D37E80100289E74F6D8A37F + DBDCAC52B6F7529C6F024CEFF8CB479FE6320000A0683473347BDC2C1A686E66 + A9F0DC1B71BA07C0DDC1B6F5496F57A7749DF94E300600A0F03473347B6E0E7F + DBDCECF296EF0580E5EE4CDDB9BAD3075ADBC1AF073D00008597CE9CCC1C8A51 + F05BBEDF04186E6E85355008B41DDA2D7D3DBA1C23000085A359A3999319FC6E + CB965D5EF2B50008EF30BB13DD9D6C77BEB65EB9B0FFDF821E0080C249674D6F + D0DC0C72B3295BE887E75E88C32500BBE3EC4ED5E6EEECF437E0D2CBFF1E7CA8 + 3D180300500041C6A4B266D0E0D7A66CEFAD38DD04685B66F0DBD67DEDAA5C3A + F47830060020FF3463346BC2F993BD08B0CD5BBEDF0360B93BD386BF5B04E8E9 + 985E39F3E23F07FDF5A00100904FD74DC6A4F32633FC6DEF6695E58EBD12874B + 0096DDA97627BB0540BA5DBF7456AE1CE52C000020BF345B3463C2B993994936 + A762212EF700D81D6AC736FCDD22205D959DDAFDA5A0E72C0000205FAE9B6C19 + CED1BF72C7DE8AC33D0096DDA1DA746787C33FDD5FBF74462E1F7D2C18030030 + 7A9A299A2D6ED60CE48FCD2337A32C77EC9DB85C027077AC6DB98B80333BFF3E + F8149E0800008C529025A94C1976F8DBE6BD0AD3FBAECC34E5F6B6692163FB72 + E9EBEE95B2EA1E19DB7867300700E0D69C7DE9F372F9F09660A497967B4CAF45 + 806DB6100807BFF745405CCE00587607DB96ED2C40BA5DD8F998F4F71C0DC600 + 008C9C668866899B2D431FFDC746DC2E01283B0E877F6601D0DBDB25279EFBF3 + 600C00C0C869866896B8D9929939E12240B963AFC5ED0C80B23BD7B6DC45C0A5 + C35BA5FDEC7F06630000864FB34333C4CD94CCAC7183DFB658895301E0EE603B + B6D5972D02EC3748AFD3A4BF61279FFD4BE9EB3B178C0100189A668666C740F0 + 6BA6B819E3664FB66C8A85B8DC0468D99BFE941DE76A5ADC94495F778FF4F79E + 9671335F13CC010018DCE9ED1F93AB275E0C46EE8D7F030796994540AC42DF15 + B702C0D280CFD5875BB9749E3F2163264D919AF1B707730000B2BB72FCEB72EA + F92F07231BFC36FCDD0220F647FF2A8EF7005876676BB3DF0CADCA6CB3DFA8F4 + 37EEF496BF96BEAEC3C11800809B69466856DC1CF86EB684C35F5B2CC5F50C80 + D2A37BDBDBB1B273B7954B5F4F9F74B5BD201367FEB4486565B00D0000A3AB4B + 8E3EF56EE9683B194C34FC073BFA0F877F2C0B81B85F0250769CADD766CF7294 + CBF5F6CB525E7D41C64EBDCB6C030040E4DCBE3F938BAF3C138C34F4BB836683 + DF367B0640839E330011B301EF72B7D9B1B68122A0FDCC211933A15E6A262E37 + DB00004976E5C8BFC8892DFF148CDCF00F1FFDDB53FF6EF85BB12C024AE11280 + E5CEDDF057EEBC4CDA4FEC94FADB964BD598DBF483008084EA6CDB22479FF8A4 + DCB8A12FFC714FFB6B1FBE07207CE41FCBE0B7E25C00A870C8E7EA33DB8DE07B + 76EDC4D33271FE6629AF9C186C0300244D4FD72B72E43BEF919EEBBA789C0D7F 5B00D823FF5CA7FEADD81601712F002C1BF661EE765B00A832E9EBE995F6934F - CAD8B9774B6565BDD90E004882AECE3372F4BB7F209DED1782991BFCB60F1FF9 - 87C33F5C08C44E291400E1F077835E0D847EB8EFEDEA94EB67B7C9D859411150 - 35C66C070094B2AEEB6D72FC893F94EB6DC7825938FC35F875EC86BF0D7BB7C5 - 5E299E01C835760D14013DD7AFC8F533CFCAD8D914010050EA52E1FFF8BBA4E3 - E22BC12C1CFEDABB47FFF6C83F5C04A8D81701A55200280D756DFA43B1E3B0F0 - B6F49C2200004A5FF6F0778B000DFEF0A97F1BFA3AB6621FFEAAD40A00B77765 - 0B7E771B670200A094E50E7F7BD49FEBC8DF1601AA2482DF2AA50240650BFFE1 - 1A2802EAE7344B45E504B31D001067DD9DC7E4C413F707E17F486741D367FDC3 - 4540B6A37F1BFEB6A99229024AAD0050431DEDBB6EFE5A2D023A4EFE58EAA7AF - 968A9A29663B00208EBAAFBC20477FF03EE9683BA1B3A0B9E19FEBE8DF0D7DDB - 94ED4B42291600CA0DFD9B433ECDFE20C39F07BF065DD7E5EAF127A466EA02A9 - A99B63B60200E2A4E3CC8FE4C80F1F94AE8C47FDDCF0B77DAED3FE6EE09754F8 - AB522D002C0D77FDA1DD1CF269B98B007D4FC0A5034F48F5B87219D3B0C66C05 - 00C441DBA17F90234F7C26F8B3BC23980D15FED94EFB6BAF745C72E1AF4ABD00 - 50C32D02ACCCF99563BBA5B7F380D44C6E95CACA6AB31500E0A3AECE6B7266FB - 47E4CCAEC782D960C19FE8F057493803607BFD210EB708B0D2DBAF5F3C2ED74E - FD50C6CF5C2115D58DA96D0000BFF4B4BF28477EF05EB97A724F300B87BE1BFC - C30DFF9296943300B6CF5504D81FB4FBB98E077E017A3BDBA5EDC07F49D5D84A - A91DBB22D875B98A0900405175F7CBA5A35F0DC2FF13D2735DAFF7BBA1EF06BF - 8EEDDDFE1AF44385FF400694A02414006A38458015FE81EB3CBDEDC68D7EB972 - 6CA7745ED92E6367AE968A8AF1A9ED008068E8237EC79F7E50CEEDFDF7E0CF68 - 7B87BFED6DF0DBE63EEA67833F91E1AF925200A8E11601FA99FB83777F19D2AD - EBCA39697BE53FA46A4C39670300200AF6A8FF898F4B67C63BFD6DF0BB631BFE - E153FE890D7F95B4E0728B00551E341D6BEF362D8C2A4DAB1AB48D9BB6406634 - BF436A263605730040A1755DDA21A7B67D5EAE9E3918CC34D86DC8676BB98EFA - 131DFE2A8947AEB98A00B710D002C0365B04848B01775E295396DD235357BD45 - CAAB6604730040BEF5F79C92B37BFE56CEBDF08360E6067FB808B0731BFCE123 - 7F0DF94487BF4A6201A0C24540B800081702F66C40B66260605B45456D5004FC - 9C8C5BF8AB5233A621D80600182D7D8FFFD5835F09C2FF1BD2D7D7196C71033E - 5BE8DB160EFE7001A01219FE2AA9058065835FB94580EDDD22C02D046CF0BBE3 - 816D15D5753275655008CCFF650A0100B845A9E03FFC3539FB7C10FCDDFA421F - 1BECE1C0CF15FCE1A3FE6CE19FB8E0B76CF82559B800B0CD16003A768B00B710 - C80CFE70ABA8A891C6E5AF93494B7F412A6B1706DB000043E9ED3C2817F7FFAB - 9CDFF79DE0885FEFE877C3DDB670E86B73835F9B0D7D37F8DDD0B77D2269B861 - 603FD8DE06BF365B08D8162E02062B08063E6B58D4249317FDBC548C6F95EA1A - FD1A0080D5DDD5237D579E910BAF3C266DAFEC08B684C33D57D3A0B7BD361BF8 - E1E0D7B122FC0D0A8001E122C02D006CEF1601DABB211F2E04C2DBD2E3EA0993 - A461C16B64FCA2574B6DED92601B00245767E7CB72E595EF4BDBA1EF4AF7E58B - C11637D4C3211F9EBB7DB6E0B77D38F4131FFECA861DD2DCF0B7BDDBDC22C016 - 02E1E606BFEDC3DBD26DDCB439523FE76E9938AF552A6B6F0FB60140E9EBED7C - 512E1D7946DA8F3D2E57CFE833FC1AE0B6B9C19E2BEC6DD3B986BC8EB385BE6D - 2ADC279E0D3A64B2FBC5ED6D0110EE872A04061BDB562EB50D8D326E7A8B8C9B - BD46AA1B564B55D5D4603B00C45F4FCF59E96EDB2D578FEF92ABA7B74A67DBF9 - 60AB0DEE70A00F35769BFE33DCE00F87BF0AF7306CC0E16676DFB87DB8D902C0 - 2D04721504B6B90580FBB5EEDF5F2E75D36748DDF86532A67199D44D5B2A37CA - E7494DEDD8E03300F097AEC657D67F443ACEEC97EBE75F908E2B413B7D2AF8C4 - 06B40D6E37C4ED3857D0DBE6FEFD6E7343DF3615EEE1D010C3E0EC3E727BB769 - 60DBDEB670A0DB90B72DD736F7EFB16DE0DF51DB3859C64C5C20E53533A576EC - 34A99D3049AAEAA74979E578E92F1B2355371A45AAF56B0120FFF446BDB2F236 - 29BF715DFA7BAF484FFB19E9BC7C513AAF9D91FEAE9372FDD221E93CAF8BF168 - E0DA607683DA0D6F37D8EDF65CDBC27FAF36F7DFE13615EE9185860B8666F793 - BBBF6CD00E04F4C0D86D36D0C3211FDEEE7E9EAD85FF3DB629DB2B770C00F9E4 - 06AA1BB26E73C33957CB16EED982DE1DDB16FEF7D8A66CAFDC31B2202C46261C - B8DABB6337A0DDD0D6962DE0C3DBB27D8DFBCFB0FFEC7053B657EE1800F2215B - B86A9FADB9616DC7B685437DA8B9FD67B8FF6CED95DDA6C23D864050DC9A70E8 - 6A1F1E6B7343DB86F8705BF8EFC9F6CF54EE58B96300C827375CC3E1AB2D1CD4 - B685E7C369D9FE99DA5478ECF61826C2E2D6650B5DEDC363B7B9C16E7BDBDC79 - B6AF0D8F6D53EE18000A2D1CC06ECB16DE6E1F1EBB73B70F37151E5BEE18C344 - 688C9EBB0FDD40B6BD1D6B78877BFBB98EC373B71FAC5976EC6E03807CCA15BE - 83B56CC1AEE3F05C857BFBB9362BD718234458E44FB630563AB6733BCE36D796 - 2DF0ED36A563653F53E11E000ACD06AFDBDBB11BDE6EC8DB966D9BCA35B7728D - 718B088DC270F76B786CE7761C9E2BF7B36C4D857BE58E01A010B205B1DB0FD6 - 54B671B6CF54AE31F280C028AC5CE16CC7D9FAF0D765FB2CDC2B770C0085942D - 98DD3EDB58853FCBD6AB5C63E411A1513C8385B59D877B35DC6D001085C1027C - B06DEE672ADBD7A28008906884F77BAEF970BF0E00A23258902B3B1FEED7A148 - 0890E865FB190C671B3F3B00BE184E980F771B8A8410F14FAE9F093F2B007191 - 2BD8097C8FE8AB670100C827821E000000000000000000000000000000000000 + C9D839F7486565BDD90E004882EEAE3372F43B7F285DED1782991BFCB60F1FF9 + 87C33F5C08C44E291400E1F077835E0D847EB8EFEDEE92CEB35BA5EEB6A008A8 + 1A63B603004A5957679B9C78F28FA4B3ED58300B87BF06BF8EDDF0B761EFB6D8 + 2BC53300B9C6AE8122A0A7F38A749D794EEA6651040040A94B85FF13EF948E8B + AF04B370F86BEF1EFDDB23FF7011A0625F04944A01A034D4B5E937C58EC3C2DB + D2738A0000287DD9C3DF2D0234F8C3A7FE6DE8EBD88A7DF8AB522B00DCDE952D + F8DD6D9C09008052963BFCED517FAE237F5B04A892087EAB940A00952DFC876B + A008A89FDD2C159513CC7600409C5DEF3A26279E7C2008FF433A0B9A3EEB1F2E + 02B21DFDDBF0B74D954C11506A05801AEA68DF75F3E76A11D071F247523F7D95 + 54D44C31DB01007174FDCA8B72F4FBEF958EB6133A0B9A1BFEB98EFEDDD0B74D + D9BE24946201A0DCD0BF39E4D3EC3732FCF1E0C7A0BB53AE1E7F526AA6CE979A + BAD9662B00204E3ACEFC508EFCE021E9CE78D4CF0D7FDBE73AEDEF067E4985BF + 2AD502C0D270D76FDACD219F96BB08D0F7045C3AF0A4548F2B97310DABCD5600 + 401CB41DFA4739F2E46782DFE51DC16CA8F0CF76DA5F7BA5E3920B7F55EA0580 + 1A6E116065CEAF1CDB25BD5D07A47A52AB5456559BAD00001F75755E9333DB3F + 2267763E1ECC060BFE4487BF4AC21900DBEB3771B8458095DEDE79F1B8749CFA + 818C9FB95C2AAA1B53DB00007EE969DF27479F788F5C3DB93B988543DF0DFEE1 + 867F494BCA1900DBE72A02EC37DAFDB88E077E007ABBDAA5EDC07F4BD5D84AA9 + AD5B2E5299AB980000145577BF5C3AF61539F2FD4F484FA75EEF7743DF0D7E1D + DBBBFD35E8870AFF810C2841492800D4708A002BFC0DD7797ADB8D1BFD72E5D8 + 0EE9BAB24DC6CE5C251515E353DB0100D1D047FC8E3FFB909CDBF31FC1EF687B + 87BFED6DF0DBE63EEA67833F91E1AF925200A8E11601FA31F71BEFFE30A45BF7 + 9573D2F6CA7F4AD59872CE06004014EC51FF931F97AE8C77FADBE077C736FCC3 + A7FC131BFE2A4905801A4E11900EF981A6C2DB6EC88DBEDED4D980CE0B3F9431 + 93E64865ED8C603B00A0D0BA2F6D97E3CFFC899CDBF79DE077B1BB8EBFDB6CF0 + BBE1EF067FA2C35F25F1C8D52D025479D074AC4DC7DAB430B2AD3268554E6F9B + 3BAF94294BEF95A92BDF22E5551402005008FD3DA7E4ECEEBF93732F7E3F9869 + A8BB011F0E7CDBDBA37EB700B00773890D7F95C40240858B807001102E0434EC + 6DBB39FC6D5F51511B14013F27F50B7E556AC73404DB0000A3A5EFF16F3FF8E5 + 20FCBF2E7DA9237E37E0B385BE6DE1E00F17002A91E1AF925A005836F8955B04 + D8DE2D02DC42C006BF3B1ED856515D2753570485C0BC5FA61000805B940AFEC3 + 5F95B32F04C17F5D5FE863833D1CF8B9823F7CD49F2DFC1317FC960DBF240B17 + 00B6D90240C76E11E0160299C11F6E151535D2B8EC753269C92F4865ED82601B + 006028BD5D07E5E2FE7F93F37BBF1D1CF1EB1DFD6EB8DB160E7D6D6EF06BB3A1 + EF06BF1BFAB64F240D370CEC07DBDBE0D7660B01DBC245C06005C1C0C71A1636 + C9E4853F2FE5E35AA5A6563F0700607577F548FFD567E5C22B8F4BDB2BDB832D + E170CFD534E86DAFCD067E38F875AC087F83026040B808700B00DBBB4580F66E + C8870B81F0B6F4B87AC2246998FF1A19BFF0D5525BBB38D80600C9D5D5F5B25C + 79E57BD276E83B72FDF2C5608B1BEAE1900FCFDD3E5BF0DB3E1CFA890F7F65C3 + 0E696EF8DBDE6D6E11600B81707383DFF6E16DE9366EDA6CA99F7D8F4C9CDB2A + 95B57704DB00A0F4F576ED934B479E95F6634FC8D533FA0CBF06B86D6EB0E70A + 7BDB74AE21AFE36CA16F9B0AF78967830E99EC7E717B5B0084FBA10A81C1C6B6 + 954B6D43A38C9BDE22E366AD96EA865552553535D80E00F1D7D37356AEB7ED92 + ABC777CAD5D35BA4ABED7CB0D5067738D0871ABB4DFF1D6EF087C35F857B1836 + E07033BB6FDC3EDC6C01E01602B90A02DBDC02C0FD5CF79F2F97BAE933A46EFC + 5219D3B854EAA62D91FEB2B9523B666CF03100F097AEC6577EE388749CD92F9D + E75F948E2B413B7D2AF8880D681BDC6E88DB71AEA0B7CDFDE7DDE686BE6D2ADC + C3A12186C1D97DE4F66ED3C0B6BD6DE140B7216F5BAE6DEE3F63DBC07FA3B671 + B28C99385FCA6B664AEDD869523B619254D54F93F2CAF141813046AAFA1B456A + F4730120FFF446BDF28AB620E03BA5BFF78AF4B49F91AECB17A5EBDA19E9EF3E + 299D970E49D7795D8C4703D706B31BD46E78BBC16EB7E7DA16FE67B5B9FF0DB7 + A9708F2C345C3034BB9FDCFD65837620A007C66EB3811E0EF9F076F7E3D95AF8 + BF639BB2BD72C700904F6EA0BA21EB36379C73B56CE19E2DE8DDB16DE1FF8E6D + CAF6CA1D230BC26264C281ABBD3B7603DA0D6D6DD9023EBC2DDBE7B8FF0EFBEF + 0E37657BE58E01201FB285ABF6D99A1BD6766C5B38D4879ADB7F87FBEFD65ED9 + 6D2ADC630804C5AD0987AEF6E1B13637B46D880FB785FF996CFF4EE58E953B06 + 807C72C3351CBEDAC2416D5B783E9C96EDDFA94D85C76E8F61222C6E5DB6D0D5 + 3E3C769B1BECB6B7CD9D67FBDCF0D836E58E01A0D0C201ECB66CE1EDF6E1B13B + 77FB7053E1B1E58E314C84C6E8B9FBD00D64DBDBB18677B8B71FD77178EEF683 + 35CB8EDD6D00904FB9C277B0962DD8751C9EAB706F3FAECDCA35C6081116F993 + 2D8C958EEDDC8EB3CDB5650B7CBB4DE958D98FA9700F00856683D7EDEDD80D6F + 37E46DCBB64DE59A5BB9C6B845844661B8FB353CB6733B0ECF95FBB16C4D857B + E58E01A010B205B1DB0FD654B671B68FA95C63E401815158B9C2D98EB3F5E1CF + CBF6B170AFDC31001452B66076FB6C6315FE58B65EE51A238F088DE2192CACED + 3CDCABE16E0380280C16E0836D733FA6B27D2E0A8800894678BFE79A0FF7F300 + 202A8305B9B2F3E17E1E8A8400895EB6EFC170B6F1BD03E08BE184F970B7A148 + 0811FFE4FA9EF0BD021017B9829DC0F788BE7A1600807C22E801000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000080E888FC7F - 85E95DAA11B842F90000000049454E44AE426082} + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000888EC8FF076923705B230375FA0000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512.png' @@ -852,11 +852,11 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000004000000040008060000007F1D2B 83000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 73A849444154785EEDFD0BB465D75918E8AE7AA95425EB6155095B6F63832C99 - 475509835D2A49B7934A21A547D22160184D0FE8C035036E465F7A600883DB38 - DD24B763D2C4A1E1362383868B7924DC660CE238100231763C422C0B99604B25 - 03B2243FF5B0655B25590FEB592AD5DDFFD97BFACC33CF5CFB71CE3EFBECBDD7 - F78D3199FF9C6B9F129C33D7E1FCFF9A6BAD0600000000000000000000000000 + 73AB49444154785EEDFD0BB465D75918E8AE7AA954A5A755256CBDC10659328F + AA1206BB54926E2795424A8FA443C0309A1ED0816B06DC8CBEF4C01006B771BA + 496EC7A48943C36D46060D17F348B8CD1884100881183B1E21966599604B2503 + B2243FF5B0655B25590FEB592AD5DDFFD97BFACC33CF5CFB71CE3EFBECBDD7F7 + 8D3199FF9C6B9F129C33D7E1FCFF9A6BAD060000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -866,909 +866,909 @@ object AboutForm: TAboutForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000080 - CED831E881D970CE0100AC7576D0035B4C3202D3E59C0200982E05029812C90A - 6CCC66CE1DE71D0040DF66927B850198904404469BF43C715E01004CC7A449BE - A2000C215181F5C63D2F367AFE38EF0000FA369AB08FFB750A02909188C078E7 - C124E7CAA8CF3AEF0000FA4625E89324F0E37C5641804E9388D045D34AF8DB3E - 33AD7F1F0060996D26619F56B2AF2040A74842E88A516B7D23C7877DCDA49F6F - B391AF0100D84E1B49AA6B5F33ECDF99F4F361B3C761E1492E58669326E8B9F2 - 78DBE737FAB9D0F6590080653749025FCE6FF673C9B0E3A3BE16169204846533 - 6C4D4F72ACF6D97C6EB3C793DA1C00C032AB25D7A3E6367B3CD43E936CF4182C - 14C907CB60D83A1EF758ED73696E9263F978D8D785DAF1716CF4EB0000A66DA3 - C971FE75B57F63D8F1341EF675C38E85DAF164A3C760EE492458646DEB77DCF9 - B6F166E6DBE230EC586ED831008045326E325D7EAEED588ADB3E3FE97C528E93 - 49E761AE493458346D6B769CF9F233693CCEFC34E6421E27E3CE01002C925A92 - 3C6AAE164F6B2E8C9A0FE5B164D279983B920C1645DB5A1D355F1EAFCD8F3337 - AA0FE37C26D4BEA666D831008079362C291E966CA7715B1F467DA6ECC3B873A1 - 6D3E99741EE686048379D6B63EC799AFC5C3E66A7D8A433E1ED58788CB71DE27 - A3C600008BAE2DC14ED2389F8FB81C8FEA531CF2F1A83E0C9B0B799C9B741EB6 - 95648379D4B62E6BF3F95C2D2EE7DAC6B5BE2D2EFB61C7F23ED4E69272AEF619 - 0080455026C0B58438CDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2A43617 - DAE6615B483098276DEB7158B25C1E8B713E376C3CCDB8ECDB8E35CD6547AE6C - CE3970E54ABCF7154757FA1D3B2E6876ED7DC357FF7FC4CE33BD78EF05FD0100 - C0A279E1A9E6E55DF7F4E3DE9F41675EB8A7397BF6A995E10B5FB963A57FF1B1 - 879ACFDFF5D04ADC9792E5BCAFCDA57EDA7118350E695CCE87DA5C689B87995A - 4D4A60FBD4D6E1A8B95A3CAC1F37AECD85FC583917D6C6971DB96225C98F047F - 25B93FE70DCD99B357347BF65C31F80C0000E1F4E9879B5D3B1E6ECEBCD82F12 - 4481A05F1C78B877344FB687C5B5B9901F2BE7C2B078581FDAE264DC39989994 - B0C076A8ADBF6173E5B118E773F978543CBDB9D7FC8DA3CDDEF3DED0ECD8FD0D - CDAEDD57343B77BF79700C0080CD78F9A50F37675E7AB839FBD25F352F3C734F - F3D9FF18BB0752121D7DDEC234E6425B1CCA71C83F5B1A770EB65C4A6260966A - EB6ED85C7EAC9C8BBE6DAE364E733B077D792CB5B07EFEB2C35736AFB8E2CDCD - CE3DDFD0ECDEFBE666C7AE37F4E601009895B367EE695E7AE1C3CDCBA7FFAAF9 - CAC31F6E3E7F326E238884BA6CA1361F2DBC3CE86BC76AE3D4D7E692DA5C32EE - 1C6C9994E8C02CD4D6DBB0B9FC583917FDB0B86C6154D2BFBE45C27FDEE5479B - DDFBBFBD39BBE30DB6F00300CC99B88560C7D97B9A979E7D5FF3CCE7EE185210 - 686BA1AD18905A1816E77DA8CD25E3CEC1D4459203B350AEB5DADA4B73F9B188 - 6BE334578EC74DF2D3E7F27E47F3CAD75ED85CFCFAA3CD9E5EC2DFEC7AB3841F - 0060C14441A039F3E1E6F4B3EF6B1EBFEF8EE6CB9F7EB2371B09764AF2F33EE6 - 87B5502B0E84721C6AE3BCCF9573B5CFC0544522045BA9B6C6CAB934CEE7232E - E7D35C6D3C4E5B9BECA71657F9CFBFFA9666E7396F6E769FD34BFC0100581A2F - BDF8BEE6E5173FDC3CFDC01F5776074C520C285BA88D539FE2501E4FCA71A8CD - C1544402045BA1B6B6CAB934CEE723CEE76B714AE4D35C6A6B13FBB5AD92F45F - 756BB367FF77B98F1F00A023E2F901A79FFD37CDD30FBEB7A518908FF3563B16 - CADD01A12D0EF97CAE1C87DA1C6C4A2443304DB53555CEA5713E1F713E5FC6F9 - DCF8897E3E17DBFB0F5E7B6BB3F7821F94F40300745C14035E78EA379A53F7BE - B7B84D20FABC8D2A0C84723EB4C5219FCF95E3509B830D89E408A6A55C4FB5F5 - 9592F2241FD7E251AD4CF8D78F5FF7376F69F69EFFDDCDAE3D277A63000058EB - CCE9F7372F3CFDAF9B4FFD873FEE8DCA847FD478580B6D7128C7493957FB0C4C - 2C1224D8ACDA3A2AE7D2B8D6A716F2715B1B96F4F7E34B0F5DD55CF8DAFF7BD3 - ECF9760FF20300602C2B0F103CFDBEE6C94FFF7AF3C8DD0FF66622F1CE13FE8D - 1603426D5CEB93721C6A7330B648986033CA35D4361ED68FD3D627F9B5F875DF - 7E6BB3F7A2B7B8DA0F00C0A6ACEC0A78E2DDCDA7DEF7DEDEA8AD0830AC3830AC - 85517D326A0C638BA40936A2B676CAB9949827F938C5A35A2DD95FDB5FF4B517 - 35AFFAA6EF6E769CFB83AEF603003055B12BE0ECF3BFD17CF12FFE75F3C4679E - E8CD44029E92FDB22FE3512DE47128C7A11C87DA1C0C1549144CAA5C376DE3BC - 2FE37C2E4FF2531B95F8EF6C2E3D746573E16BBFBBD9B3EB079B66EF05BD3900 - 00D8222F3CD59C3EF31BCD174EBEAB79E233F1D0C048F4272D04C45C28E74319 - E77D326A0C43453205E3AAAD977C2EC5B53EB5908FA3D592FD3C5E9FF85FF4F5 - 6F6B76EFFDAEDE18000066EBA517FE4DF3C4277EA179E4EE78956024F5650120 - 4FFEDBE2D4426D5CEB431E27B5395827922A1847B956DAC6795FC66DAD96E897 - 7D2FF1FFE6AB9A8BAEF931893F00007361A51070FF2F368F7C2C1E1818C97D59 - 0068EB87B550C6799F8C1AC33A915CC128E53AC9C729AEF5A35A4AF0532CF107 - 0060F18C5708C893FF3C1ED6425B1FF23894635823922C6853AE8FB671DE9771 - 6A79B29F8FEB497FB478B8DFAB8FFC58B367DF0FF6C6000030DF4E3FF71BCD17 - EEFAC5C1C30253D29F92FDB63EB5721C2D9471DE27A3C6B022122EA829D7466D - 9CE6F2BEADA5043F8FD727FD315E49FC0FBFD5C3FD0000583C6B1E1698BF3520 - B534CEFB32AEB590F7294E468D6125F98252B92EF2718AF3BE8C534B097E2D5E - 4DF8F3F1D7FFD7DFDDECB9F0C79A5D3B2FEF8D010060319D79F973CDE9277FB1 - F9C41FFDEBDE2825FF79E29F8FD35C2D4E2D9471487DC8E3508EE9B848BE20A9 - AD877C2EC5793FACA5043FC565C2BF1A5F7EC33736175DFEBF343BCF79536F0C - 0000CBE1E517FFAC79E273FFEFE6737FFA97311AB448CCDBE2344E715B0B651F - F238A9CDD14191804128D7426D9CE66A716A29B1CFE3B5C97EDEDCE70F004017 - B43F1F20B548D2CBBE8C530B6D71326A4C07455206E53AC8C729CEFBBC8594E0 - 472BE3D4CAF1CEE675DF7E4BB3FF8277BACF1F00806E78E1A9E6D9A77EB2F9D4 - FBFEB83748897F6A91A097E33497C7218D530B651FF23894633A269232BAAD5C - 03F938C579DFD6F224BFECD7B678ADDFC5AFFFE7B6FB0300D049715BC0E3F7FD - 83E2B581798B44BDAD6F6BA1EC431E87724C87EC1AF4745324E8B97C1C71DE52 - 425F9B2F5BACABD4E76D7773CDDFFEA1E68257FD1FCD8EBDAFEB8D0100A07B76 - ECBAA2D97FD15B9A8B5EF752F3D8FD77A7D9AC85D487DA5CAEF6D964D4980EF1 - C3EFAE51BF24D25C1E47529FFA349FE2E8CB78B55DFA4D5737175FFB4E57FD01 - 0020B3B21BE0DE9F6C1EF98B0762546971C5BE8CA34F71487D9A0F799CE4E3F2 - 181D105765E99694B827659C1FCFC779729FFAD4621DE571DE76375FFF5F7F4F - 73C1A5FFA7ABFE000050E8EF06F8AEE6C2D73CDE3CFE897BD36CD6925A5CF6B9 - DAB132AE7D1D4BCC0FBC5BCA9F77F90BA0EC6B2D92FCB2AFB778C2FF65DFFACF - 9B5D7B4EF4C60000C030674EBFBFF9FC9FFF83216F0A482DAEDE977DAD85B20F - 791CCA314B2A1238BAA1FC59E7E314479F5A487124F4659C12FD14E7BB007636 - 57FFB51B9AF35EFDCE66D7CECB7B630000602C2F3CD53CF5D8FFA379E03FFD69 - 6F9027FD67067D24EB692EC5D1977148713E4EF23894639650246D2CBF48D273 - F938E2B2853CB94FF3AB09FE6ACBB7FBF7DBB57FE7C79BFD07FE59B37387D7FB - 0100C04476EF6DF69EFF5DCDC5AFDDD99CBAEFCF7A13F9DFE8A94FDAC6D14742 - 9F1F1FF76B59627EC8CB6FD8891D711AA7B8D622D14F7D7BBBE835AF6C2EFFD6 - 5FF1A03F000098827840E0E7FEFC479A273EFBE5188D6891F0A7BEAD853C0E79 - 1CCA314B24923A9657F9F3CDC711A7718ACB16897DD9972DAEFAEF6CAE3AFA8D - CD8597FF5F4DB3D7557F0000989A179E6A9EFCDC7FD73C78C75FF60691E0A75B + 00000000000000000000000000000000000000000000000000000000000080CE + D831E881D970CE0100AC7576D0035B4C3202D3E59C0200982E05029812C90A6C + CC66CE1DE71D0040DF66927B850198904404469BF43C715E01004CC7A449BEA2 + 000C215181F5C63D2F367AFE38EF0000FA369AB08FFB750A02909188C078E7C1 + 24E7CAA8CF3AEF0000FA4625E89324F0E37C5641804E9388D045D34AF8DB3E33 + AD7F1F0060996D26619F56B2AF2040A74842E88A516B7D23C7877DCDA49F6FB3 + 91AF0100D84E1B49AA6B5F33ECDF99F4F361B3C761E1492E58669326E8B9F278 + DBE737FAB9D0F6590080653749025FCE6FF673C9B0E3A3BE161692048465336C + 4D4F72ACF6D97C6EB3C793DA1C00C032AB25D7A3E6367B3CD43E936CF4182C14 + C907CB60D83A1EF758ED73696E9263F978D8D785DAF1716CF4EB0000A66DA3C9 + 71FE75B57F63D8F1341EF675C38E85DAF164A3C760EE492458646DEB77DCF9B6 + F166E6DBE230EC586ED831008045326E325D7EAEED588ADB3E3FE97C528E9349 + E761AE493458346D6B769CF9F233693CCEFC34E6421E27E3CE01002C925A923C + 6AAE164F6B2E8C9A0FE5B164D279983B920C1645DB5A1D355F1EAFCD8F3337AA + 0FE37C26D4BEA666D831008079362C291E966CA7715B1F467DA6ECC3B873A16D + 3E99741EE686048379D6B63EC799AFC5C3E66A7D8A433E1ED58788CB71DE27A3 + C600008BAE2DC14ED2389F8FB81C8FEA531CF2F1A83E0C9B0B799C9B741EB695 + 648379D4B62E6BF3F95C2D2EE7DAC6B5BE2D2EFB61C7F23ED4E69272AEF61900 + 80455026C0B58438CDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2A43617DA + E6615B483098276DEB7158B25C1E8B713E376C3CCDB8ECDB8E35CDE547AE6ACE + 3970D54ABCF7FCA32BFD8E1D1736BBF6BEE12BFF3F62E7CBBDF8DC0BFB030080 + 45F3C2D3CD2BBBEFEDC7BD3F83CEBC786F73F6ECD32BC317BF7CE74AFFD2E30F + 379FBBFBE195B82F25CB795F9B4BFDB4E3306A1CD2B89C0FB5B9D0360F33B59A + 94C0F6A9ADC35173B578583F6E5C9B0BF9B1722EAC8D2F3F72E54A921F09FE4A + 727FCE1B9A3367AF6CF6ECB972F0190000C2E9D38F34BB763CD29C79A95F2488 + 0241BF38F048EF689E6C0F8B6B73213F56CE8561F1B03EB4C5C9B87330332961 + 81ED505B7FC3E6CA6331CEE7F2F1A8787A735FFD378E367BCF7B43B363F7D737 + BB765FD9ECDCFDE6C131000036E395973FD49C79F991E6ECCB7FD5BCF8ECBDCD + 67FE63EC1E484974F4790BD3980B6D7128C721FF6C69DC39D87229898159AAAD + BB6173F9B1722EFAB6B9DA38CDED1CF4E5B1D4C2FAF9CB0F5FD59C7FE59B9B9D + 7BBEBED9BDF7CDCD8E5D6FE8CD0300302B67CFDCDBBCFCE2879A574EFF55F3E5 + 473ED47CEE64DC46100975D9426D3E5A7865D0D78ED5C6A9AFCD25B5B964DC39 + D83229D18159A8ADB76173F9B1722EFA6171D9C2A8A47F7D8B84FFBC2B8E36BB + F77F5B7376C71B6CE107009833710BC18EB3F7362F3FF79EE6D9CFDE39A420D0 + D6425B3120B5302CCEFB509B4BC69D83A98B240766A15C6BB5B597E6F26311D7 + C669AE1C8F9BE4A7CFE5FD8EE655AFBDA8B9E4F5479B3DBD84BFD9F566093F00 + C08289824073E643CDE9E7DED33C71FF9DCD973EF5546F3612EC94E4E77DCC0F + 6BA1561C08E538D4C6799F2BE76A9F81A98A4408B6526D8D9573699CCF475CCE + A7B9DA789CB636D94F2DAEF25F70CDADCDCE73DEDCEC3EA797F80300B0345E7E + E93DCD2B2F7DA879E6C13FA9EC0E98A41850B6501BA73EC5A13C9E94E3509B83 + A9880408B6426D6D9573699CCF479CCFD7E294C8A7B9D4D626F66B5B25E9BFFA + B666CFFEEF741F3F004047C4F3034E3FF76F9A671E7A774B31201FE7AD762C94 + BB03425B1CF2F95C390EB539D8944886609A6A6BAA9C4BE37C3EE27CBE8CF3B9 + F113FD7C2EB6F71FBCEEB666EF853F20E90700E8B82806BCF8F4AF37A7EE7B77 + 719B40F4791B551808E57C688B433E9F2BC7A136071B12C9114C4BB99E6AEB2B + 25E5493EAEC5A35A99F0AF1FBFEE6FDEDAECBDE0BB9A5D7B4EF4C60000B0D699 + D3EF6D5E7CE65F379FFC0F7FD21B9509FFA8F1B016DAE2508E9372AEF6199858 + 2448B059B57554CEA571AD4F2DE4E3B6362CE9EFC7971DBABAB9E8B5FFF7A6D9 + F36D1EE40700C058561E2078FA3DCD539FFAB5E6D17B1EEACD44E29D27FC1B2D + 0684DAB8D627E538D4E6606C9130C166946BA86D3CAC1FA7AD4FF26BF1EBBEED + B666EFC56F71B51F00804D59D915F0E4EF369F7CCFBB7BA3B622C0B0E2C0B016 + 46F5C9A8318C2D9226D888DADA29E752629EE4E3148F6AB5647F6D7FF1D75CDC + BCFA1BBFABD971EE0FB8DA0F00C054C5AE80B32FFC7AF385BFF8D7CD939F7EB2 + 371309784AF6CBBE8C47B590C7A11C87721C6A733054245130A972DDB48DF3BE + 8CF3B93CC94F6D54E2BFB3B9ECD055CD45AFFDAE66CFCE1F689A732FECCD0100 + C01679E1E9E6F42BBFDE7CFEE4BB9A273F1D0F0D8C447FD24240CC85723E9471 + DE27A3C63054245330AEDA7AC9E7525CEB530BF9385A2DD9CFE3F589FFC55FF7 + B666F7DEEFEC8D010060B65E7EF1DF344F7EFCE79B47EF89570946525F1600F2 + E4BF2D4E2DD4C6B53EE471529B837522A98271946BA56D9CF765DCD66A897ED9 + F712FF6FBABAB9F8DA1F95F803003017560A010FFC42F3E847E3818191DC9705 + 80B67E580B659CF7C9A831AC13C9158C52AE937C9CE25A3FAAA5043FC5127F00 + 0016CF7885803CF9CFE3612DB4F5218F4339863522C98236E5FA681BE77D19A7 + 9627FBF9B89EF4478B87FBBDE6C88F367BF6FD406F0C0000F3EDF4F3BFDE7CFE + EE5F183C2C3025FD29D96FEB532BC7D14219E77D326A0C2B22E1829A726DD4C6 + 692EEFDB5A4AF0F3787DD21FE395C4FFF05B3DDC0F0080C5B3E66181F95B0352 + 4BE3BC2FE35A0B799FE264D41856922F2895EB221FA738EFCB38B594E0D7E2D5 + 843F1F7FDD7FFD5DCD9E8B7EB4D9B5F38ADE18000016D399573EDB9C7EEA179A + 8FFFF1BFEE8D52F29F27FEF938CDD5E2D4421987D4873C0EE5988E8BE40B92DA + 7AC8E7529CF7C35A4AF0535C26FCABF115377E4373F115FF4BB3F39C37F5C600 + 00B01C5E79E9CF9A273FFBFF6E3EFBC1BF8CD1A04562DE16A7718ADB5A28FB90 + C7496D8E0E8A040C42B9166AE334578B534B897D1EAF4DF6F3E63E7F0000BAA0 + FDF900A945925EF6659C5A688B9351633A28923228D7413E4E71DEE72DA4043F + 5A19A7568E7736AFFBB65B9BFD17BCD37DFE000074C30B4F37CF3DF313CD27DF + F327BD414AFC538B04BD1CA7B93C0E699C5A28FB90C7A11CD3319194D16DE51A + C8C729CEFBB69627F965BFB6C56BFD2E79FD3FB7DD1F00804E8ADB029EB8FF1F + 14AF0DCC5B24EA6D7D5B0B651FF23894633A64D7A0A79B2241CFE5E388F39612 + FADA7CD9625DA53E6FBB9B6BFFF60F36177ED5FFD1ECD8FBBADE180000BA67C7 + AE2B9BFD17BDA5B9F86B5F6E1E7FE09E349BB590FA509BCBD53E9B8C1AD3217E + F8DD35EA97449ACBE348EA539FE6531C7D19AFB6CBBEF19AE692EBDEE9AA3F00 + 0064567603DCF713CDA37FF1608C2A2DAED89771F4290EA94FF3218F937C5C1E + A303E2AA2CDD9212F7A48CF3E3F9384FEE539F5AACA33CCEDBEEE6EBFEEBEF6E + 2E7CCDFFE9AA3F000014FABB01BEB3B9E86B9E689EF8F87D69366B492D2EFB5C + ED5819D7BE8E25E607DE2DE5CFBBFC0550F6B516497ED9D75B3CE1FFF26FF9E7 + CDAE3D277A630000609833A7DFDB7CEECFFFC1903705A41657EFCBBED642D987 + 3C0EE5982515091CDD50FEACF3718AA34F2DA43812FA324E897E8AF35D003B9B + 6BFEDA8DCD79AF7967B36BE715BD3100003096179E6E9E7EE2FFD13CF89F3ED8 + 1BE449FF99411FC97A9A4B71F4651C529C8F933C0EE5982514491BCB2F92F45C + 3E8EB86C214FEED3FC6A82BFDAF2EDFEFD76DDDFF9B166FF817FD6ECDCE1F57E + 00003091DD7B9BBD177C6773C96B7736A7EEFFB3DE44FE377AEA93B671F491D0 + E7C7C7FD5A96981FF2F21B7662479CC629AEB548F453DFDE2EFEEA5735577CCB + 2F7BD01F00004C413C20F0B37FFEC3CD939FF9528C46B448F853DFD6421E873C + 0EE5982512491DCBABFCF9E6E388D338C5658BC4BEECCB1657FD7736571FFD86 + E6A2CBFFAFA639D7557F0000989A179E6E9EFADC7FD73C74E75FF60691E0A75B 01CA16897BD9D75AC8E390C7A11CB3242279633945C29ECBC711A7718ACB16C9 - 7DEA53A25FB6DD2B7D3CE5FF1597FDC6CA76250000608A7A7F639FFBCAFFAEB9 - F0CACF378F7FE2E3BD89F81B3DE47FBBA7B9A41C97467D7ED4D7B3A0228963F9 - 0C3B81234EE314972D25FDB5B6B60870DD5B7EBE39E715FF632F060000B6CAEE - 7D279A03AFBFAA3975CF7F1CCCA4BFDD6BDAE673E567468D59027EA8CB67D889 - 1B711AA7386F91E0A73E8F23D94F73FDF145AFB9A8B9E2CDBFD3ECD8755D6F0C - 0000CCC2D9331F6F1EFEF0F7364F7C365E1558DE0E30CE9B02F216F238E47128 - C72C303B00964B24ECB97C1C711AA738B594D8E7713FD15F9BFCF7C771BFFF81 - 6FFA9D66E7AED7F6C60000C0ACECD87949F38A2BFE76B3EFFCFFD23CF9F0A998 - E91F5891FEBE2FB5CD87727ED49805A600B03C869DA811A7718A538BC43E8F6B - 2D1502FAC97F3CEC6FE79E4B7A63000060D6E275DBE7EEFF5BCDB917DE362802 - 84F87B7E94B6CF94F3A3C62C280580E530EC048D388D539C5A24F7A96F6BABC9 - FFD7FD4D0FFB030080B9307838E005573CD23CFEC9FCE1806DD2F1B6CF95F3A3 - C62C200580C537ECC48C388D539C5A24F7659FB7D5C43FC691FCEFBBF8E77A31 - 0000302FF6EC3B312802DCD31BC5DFF521F5A5718F27A3C62C180580C536EC84 - 8C388D539C5A9EF4A73E6F79F2DF7FD2FFDEF33DE91F0000E6511401D6BF21A0 - 4D3AD6F699727ED49805A200B0B8869D8811A7718A53CB93FED4D712FFFEF8BA - B7FCF366F7DEEFECC50000C0BCDAB9FBBAE6C0EBAFAC1401529F1B762C94F3A3 - C62C080580C5959F74659CC6294E2D4FFA539FDA6AD29F7AC93F00002C8ED916 - 0158400A008B293FF9CA388D539C5A24F5659F9AE41F000096C1EC8A006D5FC3 - 1C5300583C6D275DC4699CE2D422A92FFBD4F2E43FDA6EC93F00002CB0D522C0 - 07063349E402A534573B16CAF97CDCF635CC290580C5D276B2459CC6294E2D4F - FA539F5A99FCC795FF774AFE010060C1ADDF0990444E504A73B563A19CCFC76D - 5FC31C5200581C6D2759C4699CE2D4F2A43FF5A949FE01006099290250500058 - 0C6D275BDED75A2DF14F497FEA25FF0000B0AC262B028CA3EDEB36FAEF31430A - 008B213F99529CF7B516097EEAF326F90700802E99BC08D0369FA4E3A33EC79C - 5100987FF94955C6790B91D8A7719EF4E72D25FE11EF6EAEF98E1F6BCED9F703 - BD18000058565104B8E8753B9BC7EEFD2FBDD1D95E4B39C438867D3E9F9FE4DF - 641B2800CCB7B69329E2348E443EF5693E25FB65CB93FF5DCDD7FDCDEF6ECEBD - F0EDBD1800005876BBCF795373C1159F6F1EFFE4C70733798E314C7C2E15016A - C5807C3CEEBFC9365000985F6D2751C4699CE248E8F3B8D6D627FFFB2EFEB95E - 0C000074C59E7D2736590448CAAFCBC7E3FE9BCC9802C07C6A3B99A22FE3D452 - A29FC729E14F71BF5DF6E66F6C2E78F5FFA737BDB737060000BA64CF396F6E76 - BFE243CDD30F9F1ACC946A897E3E97A46335C38EB14D1400E6537EB2A438EFCB - 5626FE79D29FFA7E7BF5375ED51CBCE6DDBDF0FCDE180000E89C9D7B9BFD17FE - AD5EA6F047CD57BEF4F4607294C837DAA463C33EC31C5000983FF94953C6B516 - 097EEACBB6B60070E1D5AF6C2EFD965F6F76ECBABC370600003A2B8A0097BCA9 - 79E1E93F6A5E78F285C1E42891778C927F669CCF3343911C323FDA4E9688D338 - EFDBDAFAE43FDAE5DFFACF7AC9FF75BD180000E8BAC80D2247C87386B5B9442D - D7482DE47D8A435BCC368B1F2CF3A376A2445FC6F9C91871D9F29377F74A7FCD - DF795BB367FF7FDB8B010000FA76EE7E6D73D16B77368FDDF767BD51E417B57B - FD6BCACFC69839A700303FF21326C5795FB632E9CF5B2A00F4DBD71EBFA5D97F - F13FEEC50000006BED3EE7DB9AF3BEE6BEE689CF7C7A30338EB64241E42A791F - F2986DA400301FDA4E8E886B2D92FCD4E7497F9EFC47BCBBB9F24DDFD85C70F9 - 2FF7869EF80F0000D49DB3EFE666EF791F6A9EFA5CBC192092FBC8377265C25F - 1EAFC93F33CEE7D9620A00F3219D0CE50992C691CCA73EE6A22F5B5900D8D55C - 78D52B9B03DFF8CBCDCEDD1EFA0700000CB1736FB3FBFC23CDE9891E0A98A482 - 41AD70508ED9460A00DB2F3F21521C7D1947729FC7794B497F1EEF6E5EFB37FE - D766F7DE9B7A310000C0703B771D6CCE7BD5D734A73EFE81DEA8B6C5BF361722 - 47C98FC5B8A66D9E195100D85EF90950C6B55626FEA9A5A47FB57DDDAD6F69F6 - 5EF0A3BD180000603C3B775FD75C70F9E79BC73F79EF60661C6D858124729924 - 8F99310580ED95167F7942A47124F7699CE232F14FFD6ABBF4DBBEA9B9F0D25F - E81D72DF3F000030993D7BDFD4ECDA7F7BF395CF3D3A982995097FCA5F92385E - CE9563B641248F6C8FDA091073693EEFCB961701F2D62F005CF49AFFADD79DDF - 8B01000026D4CB2556728AAF5E64ACE51ED16AB94AC8FB14E76A73CC40FC3099 - BD7CC19771ADD54EB6FC648C77FDF7C7AFFF8EFFB9D973EEF15E0C0000B031F1 - 3C8057BEEEC2E6B17B6F1BCC84FCCA7F6DDBBF5B01E69C02C0F6A82DFCE8531C - 497D1AA7384FFC53BF36BEEAFF76B439EFA0F7FD0300009BB7EB9C43CDB917FF - 79F3E4039F1BCC8C4AFA533E93C4B1728E6D14C923B3959F00296E9B2B5BFCBC - 529F5ABF0870C195AF6C5E71596CD3010000988EC83122D7C8738FD596E72865 - 0BA90FC3E69891F861B13DCAC51EE3BC85149727D8FA76E9B7FC68B36BA7F7FD - 030000D3133946E41AB51CA4DFCA7C255A48713E97946366242A38CC4EBED053 - 9C9F10F949539E4C6BB7FBAFB6DD83ADFFFFA8170300004C57FF56808F0C6E05 - 68BBCF7FA3B702B4CDB30522A16436F2855D5BE4692EFA322E8B01ABED822B2F - 6A5E71D93FEDC50000005B23728EC83D6A39C9DA9C255A28E3523E573BCE1688 - 1F12DB279D14790BD1D74EA8B2EDB2F51F0000D872ABB702A49DC965ABE53021 - FAB2B14DE207C3D6CB17798A6B8B3FCDE52D3F89F2D64BFEBFED1B9A73CEFBEF - 7B310000C0D68ADC237290F62240B45A4E93CBE7F263E5E7D802F10362766A8B - 3A9D00C35A3A91F2136B6773D16B6CFD07000066E7C2AB7EBAF73FD7E6256B73 - 9651AD549B638B44E586AD952FE814E78B3FC5E5C95356D562BCDABEEE6FFD60 - B377FFDFEDC5000000B3B16BF7E5CD05577FA579FCFE938399100FF94B2DC9E3 - 908F532E546A9B674A22B164366A8B39E6F216F2715E00586D175CF1CA66DF2B - FE9FBD18000060B62217899CA496ABF45B9ED3847C9CE672B539B640FC70D83A - 6D8B3BCDA738B5DA4993CFF5DBA56FEC25FFBBCEEFC500000033D6CB45567292 - 4AAE323CB7492DE471AE36C794C40F83AD376C61A7855FB6FC84596D5F73DD55 - 1EFC0700006CABC8492237A9E52CFD56CB71A285D4E76A734C59FC60D81A6D8B - 3A5FF4659C5A7ED2A4B8DF2EFE060FFE030000B65F3F37599BAFACCF67F216DA - E25C6D8E29881F0A5B6BD8824E0B3E6FF989924E9C7EBBF2E637377BF67E6B2F - 060000D85E919B448E52E62DF5DC266F21F5B9DA1C53143F10A6AF6D31E78BBD - 8CF3569E3CFDF815AFFE9F7A3D0000C07CE8E728EB7397D571D9425B9CABCDB1 - 49F14361EB0C5BC869A1E7AD3C49564F9ED7DDF25DCDEE3DD7F662000080F910 - 394AE42A79EEB23EA7C9C7A985D4E76A734C49FC3098AEB6459C2FF2328E964E - 8C74D2AC6DFB2EF6DA3F000060FEF473957A1EB336D7492DB4C5B9DA1C9B103F - 08B6C6B0059C16786AF989B1BEBDEE96EF6C76ECBCAC17030000CC97C8552267 - A9E532FD96E73C790BA9CFD5E69882F821303D6D8B375FDC65DCD6564F1857FF - 01008079B67E17402DC7C95B688B73B53936287E304CDFB0859B16766AE9E4C8 - 4F96D5E6EA3F000030EFEC025808F103603ADA166DBEA8CBB8ADAD9E24AEFE03 - 00008BA09FBBACCD6786B7D016E76A736C8002C0F40D5BB06941A7964E8A7482 - AC6DAEFE0300008BC22E80B917DF7C36AF6DB1E68BB98CDBDAEA09E2EA3F0000 - B0483C0B60AEC50F84AD552EE4B2E527C76ABBF2A637B9FA0F00002C94C86122 - 97A9E538FD56CB89A285D4B345E207C0F4E40B7758DCD6564F8CF35EF53FF47A - 000080C5D2CF6556739B7AEE93B7302C664AE287C1E60C5B90F9B1B488534B27 - 427E62F4DB15DF7A5DB367EFB7F662000080C512B94CE434B55C676D2E94B724 - 8F4BC38E3186F8C6331DA3166AADE50B7F357EC5957FAFD70300002CA67E4E33 - 3CEF59DFDA0C3BC604140036A7B610F3059CB790E272D1A7F1CEE6822B2E6CF6 - ECFB3BBD1800006031454E13B94D9EEBD473A068213F96B7526D8E31C5379DAD - 95166EDB82CFFB9DCDAB0EC56B33000000165B3FB7E9E739F51C28B57CCC168A - 6F349B97166ABE686B0B38CDA5969F00FDB6F782EFEFF50000008BAD9FDBACE6 - 3A6B73A0BCE5F2B9326693E29BCFC60C5B80E5826D6BF989B0A3B9F2A66FF3EA - 3F00006029F45F09F86D110DDADAFCA7BD85D4D70C3BC6100A009B575B7CE5C2 - AD8DF385DF3F11CEBBE4EFF67A000080E5D0CF71CAC43F8F438ACB71A936C704 - E21BCF74A4459A2FCA7C2E5A5AE8E5E2DFD99C7FB987FF010000CB25729CC875 - 52DE333C374A2DA9CDB109F1CD6672E32CC07CB1E6AD5CF4FDF635DFF0377A3D - 0000C072E9E73AABB94F3D372ADB28E37C86427CC3D9B8B4E8F2459AC7499ACB - DBDAC5BEF7951EFE0700002C9F7EAED39E0BADB65C3E57C66C9002C074950BB4 - ADA5051FFDCEE6926FB8B2D9B5FBF5BD18000060B944AE13394FCA7FD6E644C3 - 5A483D5310DF742633EE02AC2DDC7ABBE8AABFDEEB01000096533FE7A9E743FD - 16CAF128E37E8E0105808D2B1769C8E324CD952D55BF76367B2EF88E5E0F0000 - B09CFA39CF6A0E54CF91A2E5F2B9326603E21BCF74940BB3ADAD5DF0977CC315 - B6FF0300004BAD7F1BC015BDA89E17B5B7907A3649016032E32EBCDA828D962F - F0FE82BFE8EAE3BD1E000060B9F5739F32F1CFE390E2341E65DCCFD113DF6C26 - 572ECE90C7498CD382CE17F66ADB73BE77FF030000CBAF9FFBACCF89D6E74CB9 - F49950C64C4801603ACA0599B790F7F13DEF2FEC8BAFB5FD1F0000E886C87D22 - 072AF3A2BEBC2F5B483D9BA00030BE71175C6DA1464B8B7B757CE0B5B6FF0300 - 00DDD1CF81D6E746AB71C88F8D63DCCF759E02C0E46A8BABB638D35C7BDBBDFF - 5B7B3D00004037F473A07A7EB4B6E56A73A136C7100A001B971661BEE8F2B95A - 5B5BE9DABDF7AFF57A0000806EE8E740ED3952BD25B53926A000303DF9624C0B - B27DEE35FF95EDFF000040F7F473A1F539D2E839364901603C1B5970E5828D16 - DFEF7EDB73E1B7F57A0000806EE9E742ABB9513D779AD446BEA673E29BCDF8D2 - A2CA17658A6BE3F6B6E7DC37F67A0000806EE9E742F53C697D0B6DE3907AC6A0 - 00B039E5A2ABF5EBDBF9975DE0F57F00004027452E1439512D57EAB730AA6703 - 1400A62716626A21EFD7B603D7DAFE0F000074573F275A9F2BF5E57D3ECF2629 - 008C366CB1B52DC6345F6F7BCEF7FA3F0000A0BBFA39513D5F5A6DA5B6F964D8 - 317A1400C69716536DD1A5B971DA4EF7FF0300009DD6CF89221FADE54C6D2D97 - CF95C768A100B071B5C5961661DEC2DAB1FBFF0100802E5BCD89D6E64A6BC7F9 - 7C48713EC7041400A6A35C9849CCE555AD9DCD15C7DCFF0F0000D0CF8DD6E64B - FDBE948EB3490A00D3971667BE4857E3FD17BBFF1F0000603537AAE54EF91C53 - A20030DCB005572EC8341ED67636BBF6DAFE0F0000D0CF8DF21D00C35A528E4B - C38E759E02C078D222AA2DB67CAEF6B914F7C7BBF62800000000ACE6466B73A6 - F571EA539CD43EC7100A001B535B64E55CF46BDB2B2EBDB0D9B1F3B25E0C0000 - D06D911B458E54E64DFD16CA3ED4E6189302C0E6C5C2CB1761DB784773D16B5D - FD07000048FA39D2DABCA9AF6DCC2628006C5CB9F86A8B736DDB7BC1B5BD1E00 - 0080D0CF91EAF9535F1E27E598312900B41BB6A8CAC5987FB676ACDFF6ECB303 - 00000020D9794EDC22BD3E77EA4B7D1876AC34EC58A729008C962FB0711659DB - E776343B775F3E88010000D8B337ED0028E57955ED7832EEE7E85100985C6D71 - 9573D1AF6F3B775ED3EB01000008FD1CA99E3FF5957DA8CD31060580CD890597 - 2FBEB671BC01E0FC66C7AEF3E3000000003D912345AE54E64F7D6D6336480160 - FAEA8BF4A2D77A0020000040A99F2BADCFA156C74C8902C0C6940BB15CA0EBFB - 5DBB2F18C400000024FD5CA93D975A6DB972CC181400EA862DA6742C2DC2B6CF - AE3DBEF7026F0000000028ADE64A6B73A8F5CAE36D9F0BC38E759602C070F9C2 - 1A6771A5CFE59FED8F77EE8ED75B000000B056FE0C80248DD35C7EAC34EEE73A - 4F016032B54555CEE5FD6AAC00000000B0DEEE736307403D8FAAF7A136C7080A - 001B170BAD6DB1A563AB9FD9F1B23700000000B45B9F47AD37EC182328004CC7 - E845BAF3DC78BF25000000B95DE77C4BEF7FB6E752C3732D26A000305DF9E2CC - 1B000000C3D572A9684C8902C0E4CA05582ECCF5C70F7EFDE58318000080523F - 67AAE55AA94F2D578E1941016073DA16DCDA057AEE251E00080000D06635675A - 9B4BADD736CF181400D61BB6A0D2B1B60559FFDAB343FF4D0000806E6BCF99DA - F2AE343F2CD71A76AC931400366FD8C28BB91DCDEE3DAFE80F01000058A79F33 - F5F3A7F586E55C4C400160B4B64598CB8FA7CFA7B91DCDDEF3AF1DC400000094 - FA39D36A0EB536A70A795C537E9E0A058076E5E2A92DA6519FB100010000C6B7 - 911C4B1E36260580C9A5C5D4B6A8623E3500000026332AA74AF372AE0929006C - 4CB9D0862D4E00000036AE966FC9BF36400160F3462D3C0B1300006034B9D516 - 5300D85AFD05BAEB9CD7AFF400000054ECB96C1048F2B79002C074E58B7535DE - B1CB6B00010000DAECDE7DE9200AF5BC8A4D5300989EB430A3B7600100002653 - E651692CA79A120500000000E8000580CDC9AB52352A55000000E31B955FC9B1 - 364101000000003A400160326DD5A6349F1F5799020000985C2DAF6ACBAFE45D - 13500098BE5880C5223C6B51020000B45A973355F22A364B01000000003A4001 - 000000003A4001000000003A4001000000003A400160E3C67D20850757000000 - 8C26C7DA620A00000000D0010A00000000D0010A00000000D0010A00000000D0 - 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 - 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 - 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 - 00D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A - 00000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000 - D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A00 - 000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0 - 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 - 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 - 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 - 00D0010A00000000D0010A00000000D0010A00000000D0013B063DABD2F724EF - 538B8249EA77657D6ABB2B6D4FF386B7FC5AB36BEFF5BD18A0D5D11B6F6E0E1E - 3C3818310BCF3EFB6C73FFBD1F6F1E7AF081C10C00B02DCEBC706773CFBB7FA8 - 179DEEB5972AED4CD65ECEFAB38371F4A985B2A72725B9AC4ADF93BC4F4D0100 - 98BAFDFBF7373FFE536F6FAEBCEAEAC10CB31645805FFEA55F5829080000DB40 - 016026228105601B7DCFF77EBFE47F9B5D73ED75CDDF7BEB8F0C460000CB4901 - 00609B1DBAFE5B0611DBE970EFE710BB31000096950200C0369374CE8F43D7BF - 711001002C1F05000018387CC46E0C006079290000C040DC0670E0E025831100 - C072510000804C140100009691020000648E1EBB691001002C17050000C8C42B - 19DD0600002C23050000281C3F71CB200200581E0A00005038EC758000C01252 - 0000D846B1DD9CF973E0E0413F1B0060E92800006CA37DFBF70F22E6CDF113B7 - 0E220080E5A00000001587BC0E100058320A0000DBC8D3E6E7D7FEFDFB9BC38A - 0000C012510000D846070F1E1C44CCA3C3473C0C1000581E0A0000D0E2E88D37 - ADEC04000058060A0000DBE89AD75F3788985787BC12100058120A000030C4E1 - 239E0300002C070500806D748577CDCFBD7810A087350200CB400100601BB9BF - 7C31781B0000B00C140000B6C935D7BAFF7F511C3D76D3200200585C0A0000DB - C4D5FFC571E55557BB0D000058780A0000DB24924A16C70D37DA0500002C3605 - 00806D72C5950A008BE4E8B19B071100C062520000D826070E1E1C442C82F879 - D9B501002C320500806D10F7FF4B26178F870102008B4C0100601B1CBAFE8D83 - 884572F446B70100008B4B0100601B1C3EE2BDF28B28766E1CBEDECF0E00584C - 0A00003326895C6C878FD8BD01002C2605008019B3FD7FB11DBAFE5B568A3800 - 008B46010060C66CFF5F6C91FC2BE200008B48010060866CFF5F0E8A3800C022 - 5200009821578E97431471DC0600002C1A0500801972E5787978252000B06814 - 000066C8F6FFE571F4D84D8308006031280000CC88E47FB95C79D5D5CD818397 - 0C460000F34F01006046BC3F7EF928EA00008B4401006046E2FDF12C97E3276E - 1D440000F34F010060063C357E391D387870E55600008045A000003003B6FF2F - 2F0F03040016850200C0168B2BFF476F94242EABC3D72BEE00008B410100608B - 1D92202EB5B80DC0C300018045A00000B0C50E1F911C2E3BB77800008B400100 - 600BC5F67F5787979F373C00008B400100600BD9FEDF0DFDE73CDC3C180100CC - 270500802D74FCC42D838865E7560F0060DE2900006C9103072FF18EF80E895B - 3D62270000C0BC520000D822EEFDEF1EB77C0000F34C0100608B1C3DE6DDFF5D - E3960F00609E2900006C01DBFFBB297EE6F1B3070098470A00005BE0861B5DFD - EF2AB77E0000F34A0100600B1C3DE695705D75FCC4AD83080060BE2800004C59 - 7F1BF8C1C188AE899FBDDB3F008079A4000030651EFE87350000CC2305008029 - 3BEC55709D670D0000F3480100608A6CFF27C41AB8E6DAEB06230080F9A00000 - 30451E004772830741020073460100608A0E79051C03D60200306F140000A624 - DEFFBE7FFFFEC188AE8BB5106B0200605E2800004CC9E1231EFCC65A47DD0600 - 00CC1105008029B1E59B925D2100C03C5100009882A337DE2CD1A3EA90570202 - 0073420100600A0E1F71F59FBA1B8EDD34880000B6970200C02675FD616FCF3E - FB6C73C7876E1B8C285D73ED75CD8183970C460000DB4701006093BABEC5FBFE - 7B3FDE7CE0FDEF1D8CA8F1360000601E2800006C52D7B7FF3FFCD003CD430F3E - B0B21380BAA36E030000E6800200C02678D77BD3DC77EFC757FABBEFFCE84ACF - 7A575E75F54A0300D84E0A00009B104FFFEFBAB80520DC775FBFA7CE2E000060 - BB2900006C42D793BAD8FA9FDC7DE74706113587BD0E1000D8660A00001B144F - 76EFFAB6EE871F7C7010F5DF0690170458EBC0C1832B6F040000D82E0A00001B - E4C9EEEBB7FDDF7D97E7000C73C331B78C0000DB4701006083DCD31D3B00D65E - F13FE94180431D52340200B6910200C006D8FE5FDFF2EF7580C3796B0400B09D - 14000036E0F8895B065177A5A7FF97BC0E70B8C3473C0C1000D81E0A00001BE0 - 89EE4DF3F043F507FE791DE070476FBC6965270000C0AC2900004C28B6FEC713 - DDBBEEBE961D006D3B03587548010900D8060A000013F2F0BFBEB644FFB1538F - 7A1DE008878F780E0000307B0A000013B2FD7FF4557EBB00868B0701C6832401 - 00664901006002FDC4CDF6FFFB47DCE77FF22E0F021CC5DB0000805953000098 - 8027B8F7B5DDFF9FC40E00AF031CCEAD2400C0AC2900004CE090ABB62BC6D9E2 - EF3680E1FA0F93741B0000303BBB063DAB7654FA5A8BE249EA87B55DCD256FF8 - 6F9A9DBB2FEDC5C0028B2DDB37DC78F360D45D91D8DF71FB6D8351BB0B2FBAA8 - F9866FFAE6C188367FF5971F1B4400B317AF25FDDAD77DDD4A4132B528507EEB - 9B8E36AFBFF6BA352DE65F3A7DBA79EAC927075F0D5374F6CC23CDA3F7FCBB5E - F4724B3BDBD242EA19211258D64ADF93BC4F2D12FAD447F124F5A9EDAEB43DCD - 1BDEF26BCDAEBDD7F7626081FDC05B7F64E51DEE5DF7EF7FFF3DCD1FFCDE7B06 - A376F147E4CFBEF31706236A1E3B75AAF9E99FFCB1C10860FA2269DFD74BF223 - 81DFB76FFFCA385CD31B6FD4C93B3FDAFCD6BB7EC5AD5E4CD79917EE6CEE79F7 - 0FF5A2D3BDF652A59DC95A1404521FC97F592008654F4F4A725995BE27799F9A - 020074545C2179C73B7F71A5EFBA9FFFB9778CBDBDFF677BDF330F4D1CEE9FFC - CCDBBD3611988A48EA23C1BFF2CAAB9B2BAEBAEAABC9FE568822C02FFF92222F - 53A400301391C00230C2A1EBDF28F91F98E4DEFE93777E6410D1E6F8895B0711 - C064E2D6B4EFF9DEEF6B7EE2A7DEDEFCCA6FFCF64A1FE3D8ADB695C97F88FFF6 - 56FF3780E953000018C3E1231EFE17267DB0DFA8D705E2C192C0F8E2D6AAE3DF - 7EEB5713FEBFFFA36F5B196F663BFF666CD77F17D8B8B4CD9D55E97B92F7A9B9 - 05003A28AEFCFFC2BFF8D5C1A8DBC6BDFF3F177FA4325C6CA38DEDB4901CBDF1 - E6E606AF8A5C794EC6C9BB3ED2E9F323AEB2C76B430F5FFFC6B9BBA56A23FF3F - 015AB90560265292CBAAF43DC9FBD41400A083E20FF11F78EB0F0F46DDB691FB - D5E34A95AB44C3DDF1A1DB9ADF7CD7AF0C46745D5CD18D6DDCAC8ADF3BBFF5AE - 5FEDCCF332E24A7F6CB18F5B84E6F9392A0A004C9502C04C44020BC010B6FFF7 - C5D39E37F2C7F7C9BB5CD91E256E03F08C0912CF85582FAE82FFF84FBD7DE9EF - 398FA43FB6F5C71B54A208E421AAC0B42900000C91AEC230F9FDFFC946BFAE4B - 22F98F074D4290F4D5C579124580652B96C5FF3D7FFB3BBE73E5AD2991FCFBFF - 39C05652000018C21F62AB367A253F760DC47DBC0C67A7098C16C9F2F77CEFF7 - 0F468B2D0ACC3FF0D61F5979C6CCDFFA3BDFA9F003CC840200C010F1E025FA36 - 7325DF2E80D1A2D8B46C5736D918E7CB70F18ABB453E5752E21FDBFCE3FF1680 - 5952000068117FA479C7715F5CC17FECD4A383D1E4E229DE8C160F9C04468B07 - 252E1A893F300F1400005AD8FEBFEAE49D9B4BE05DD11C8F1D2784FBEF73BE8C - F2D717E84189B15B41E20FCC0B050080169EC4BD6AB30949BC41401160B4D871 - 12570981E122A99EF7226DFCEF180FF77BC73B7F51E20FCC0D0500808A7E22E6 - 814CC9C93B37FF2A3FAF031CCF0D1285CEBB4FB16C2C878FCCEF9B33E2769E48 - FCE3E17E9EED01CC130500800A5BB1574D23F90F76008CE7E831CF0180711C9A - C31D00D75C7B5DF30FFFF13B9A1F78EB0F4BFC81B9A400005071D83BD9BF6A5A - F7237B1DE07862E789874F769BF3643C9160CFCBB912FFBBC47DFE3FF1536F77 - FE02734D0100A060FBFF5AD3DA0110EC02188F1D28DDB699376E744D5C71DF6E - F14602F7F9038B420100A020F95AB5D9D7FF95BC0E703C5E0708E3B9E6F5DB57 - 008862716CF7FF9EEFFD3EDBFD8185A1000050907CADDAECEBFF4A76008C2792 - 09AFA1EC36E7CA78B66BBB7D3CDD3F927FDBFD8145A300009089A4CB959C5577 - DC7EDB209A8E781DE0346F295866F3FC8473981771BBD62C5F9D99AEFAC7D3FD - 01169102004046D2B52A92F57870DFB44DEBA182CB2E9E70AE18D55D71FE319E - 2BAFBA6A106DADB8D7DF557F60D129000064E6F1B552DBE5EE2DBA526F07C078 - 22F93FE46D149DF5F043D32FBE2DABAD4EC8E35C8CA7FBC7BDFE008B4E010060 - C0F6FFB5B6EA817DF150C1ADD859B08C0E1F51908251AEB872EB0A00F1FF17E2 - 09FFF3F0B601806950000018B0FD7FD556DFABEF0167E35194EA2EB7008C6FAB - 7600C415FFBFFFA36F730E024B450100A027FEC0F30EE7555B9DA04FFBE182CB - CC6D00DD6497CCF8E24180D394B6FCC73DFF00CB460100A04792B5D6C9BBB6F6 - 3EFD486E1E3B756A306298E3276E1944409B696DD18FDD04B6FC03CB4C0100A0 - C7BDD66BDD7DE7D6DCFF9F731BC078222199E56BCE60114D639BFED11B6F5E79 - CABF2DFFC0325300003A2FFED88B7BADE98B7BFF6771FFF1563D647019599FDD - 6387CC6436FB1C80B8DFFF07DEFAC38311C0F25200003ACFF6FFB5B67AFB7F32 - AB42C332387EC2BDC85D136FCB607C070E6C6C974C1480E3417FEEF707BA4201 - 00E83CF758AF35CBADF96E03184F3CE46CABDF750E8B6C230F028CE4FFC77FEA - ED76D8009DA20000745ADC5B2DB15AD57F38DFECAE3CCE6AB7C132387ACC5B2A - 605AE2F77E24FF7EFF035DA30000749A2B3F6BCDFAF57CB378D8E0B238EC5615 - 6835C953FB25FF40972900009DE6AAEA5A715FFE2CC5330066FDDF5C54B1C559 - C1AA5B62470ED395927F4FFA07BA4A0100E82CDBFFD78AA78E6FC783C7DC0630 - BEC347EC02E892E73C2473AA24FF000A004087DD70A3ABFFB993DBB41DDF8300 - C777C80E006835ACA01BBB6724FF000A0040871D3D76F32022CCFAFEFF24761D - D8EA3C9E485E8EDE68DD42CDBE96E43E92FF78D59FE41F400100E8A8B852B491 - D7462DABB8177F3B93F0ED2A3E2CA2C347EC028071C5EFFABFF7D61F198C0050 - 00003AC9C3FFD6BA7B9B1FC4E74180E38BAB99AE64C268EEF907584F0100E824 - AF545BEBE45DDBFB3A3EB7014CE690F50BEBE4CF0090FC03D42900009D63FBFF - 7AF37005DE6D00E33B7EE29641042429D997FC03B45300003AE7F8895B071161 - 5EB6DF7B1BC0F8FA45AC4B062396D5FDF73927261549FFDF7BEB0F4BFE015A28 - 00009DE3556A6BCDCB7BF8E31680C74E9D1A8C18259E0500ACDAB76FFFCA95FF - FC560000D65200003AC503D4D6BBFBCEEDBDFF3F77728EFE7799771E64096B1D - FFF65B25FF00232800009D72F88887A7E5E2AA7BBC02705E780EC0F822D191EC - 0000935000003AC5F6FFB5E62DE1761BC064EC02000026A1000074C6D11B6FB6 - FDBF308FEFDF771BC0F8BCCE120098840200D019878FB8FA9F8B2BEDF1FEFD79 - E3C9E7E38BD7595E73ED75831100C0700A004027C4957F4F4D5F6B5EAFB4C7AE - 84797A2EC1BCBBE1D8CD83080060380500A0130ED92ABDCE3C3F70EFEE39BC35 - 615E79AE0500302E0500A0136CFF5F2BAEB0C703F7E6D5C9BB3C07605C76B700 - 00E3520000969E0469BD79BFC23E8F0F279C6747DD0600008C410100587AF1F4 - 7FD65A842BEC8A00E38B0297375C0000A32800004BCFBBD2D75B84E4FAE45D0A - 0093F09C8BE533CFB7E900B098140080A576E0E025CD95575D3D181116E5CAFA - DD73FA968279758342D7D2F1360C00A64D0100586AEEFD5F6F51AEAC47F273FF - BD1F1F8C18E59A6BAF5B29780100B4510000969AEDFFEB2DD29575B7014C46C1 - 0B0018460100585AB6FFAF17F7142FD2B6620F029C8C821700308C0200B0B48E - 9FB8651091DC71FB6D8368313C76EA510F429B4014BCDC060000B451000096D6 - 614F455F6711AFA8DFED368089287C01006D140080A5D4BF127A7030223C76EA - D4CA15F545E33680C9287C01006D140080A5E45EE8F54E2EE86BF5E21680285E - 309E287C79F6C57278CE6B0001983205006029B90ABADEA2DDFF9F5BD4E2C576 - 397EE2D641C422F3FC0B00A64D0100583AF12A34DBFFD78A2BE88B9C4C781DE0 - 640E791D200050A100002C9DC3475CFD2FDD7FEFC707D1628AFFFD17E9F585DB - 6DFFFEFD2B853000809C0200B0745CFD5CEFE45D8BBF85FE6E0F039C88421800 - 50520000964A5CF58CAB9FAC8A2BE7CBF024FD652862CCD2D11B6F722E00006B - 2800004BC555CFF596E5CAB9D7014EEE90876102001905006069C4D54EDBFFD7 - BBEFBEC5BEFF3FA7083099C3479C0F00C02A05006069C4D54E5B9ED7BB7B895E - A1E76D0093E9BF11E392C10800E83A05006069B8DAB95E5C315FA6A7E72F5331 - 6356BC0D000048140080A5E0B56775CB76C57C591E68384B478FDD348858440F - 3DF8C0200280CD5300009682879DD5C5FBF3978DDB002673E55557BB0D60813D - B7443B7800D87E0A00C052B0FD7FBDB872F8D8A94707A3E5E13680C91D3F71CB - 200200BA4C010058787175D3F6FFF5EEB8FDB641B45CE23600DBA22773D80E19 - 00A0470100587892FFBA65BE577E598B1B5BE5C0C1832BB702004CD3323D6416 - BA42010058781E72B6DEB26EFF4F96F1D9065BCD79024C9B87B2C2E251000016 - 5A6CFF776573BD654F90FB058E538311E3387AE3CD830860F37EF35DBFBAD485 - 6658563B063DABD2F724EF538B8249EA77657D6ABB2B6D4FF386B7FC5AB36BEF - F5BD1898B2E3DF7E6BF33DDFFB7D8311C93FF999B72FFD7DF2F1738F9F3FE3FB - E55FFA0557EC16CC4FFCD4DB9B6BAEBD6E3082F1C5FF0FC8DF2271FF7D1B2B0C - 1F3870C9CA6D4461A5F8FAD8A995DF23927FA6EECC0B7736F7BCFB877AD1E95E - 7BA9D2CE64EDE5AC3F9BF5A985B2A72725B9AC4ADF93BC4F4D0100E6CCCFBEF3 - 17BFFA87097D7165FCA77FF2C706A3E515CF7EF8FB3FFAB6C18871DCF1A1DB9A - DF7CD7AF0C462C0205006AE2DEFB877BC9F84A92FF5CFFC1A83117BFFF25E62C - 2C05809948492EABD2F724EF5353008039125BFFFFE13F7EC76044F281F7BDB7 - F9DDDFF9EDC168B9FDC2BFF8D566FFFEFD8311A34482F0F69FFC310FEE5A200A - 00C42D5D91E03FF4D0832BC9BD67A0B0B41400662212588085E4A166751BDDE6 - B988FC213C9928961CF24A40985B91E8F777EAFCEACAAD5C3FF283DFD7FCFCCF - BD63A5A87BC7873EE8771EB0690A00C0C2F26EF3BA2EFD8178F22EF7B34FEAF0 - 11AFCD847911097FECDA8AE773BCED7FF8E195A43F6ED389643F8E014C9B0200 - B09062FBBF7BFFD78BE4BF4BDBBBEFBEF323838871C5B313DC3601DB23EED18F - 2BFC79C21F57F7E3A17A6ECD01664101005848B6FFD775ED8A78FCC16C4BECE4 - BC12106627AEE4FFFBDF7FCF4AB21F0F688D2BFC127E60BB2800000B490253D7 - C564D86D0093534083AD15497F5CD9FFE99F7CDB4AE2FF07BFF71E5BFA81B9A0 - 00002C1C5B98EB626B6917FFC0F45EFBC9F56FA1B9643002A6217E07E7497FDC - DBEF957CC0BC51000016CEE1231EFE57D3D5ADF0F107B62B6B93BBE146BB0060 - B3621B7F24FA697BBFA41F98770A00C0C23974BDA798D79CBCABBB0FC4BBDB6D - 00133B7ACC6D34B05151708D57F5C583FCE2AABF2224B0281400808562FB7FBB - 2E3F0CCF6D00938BB768C4AD00C078E26A7F3CC13FB6F8C7BBF9E3557D008B46 - 01005828B6FFD745F2DFE5274AC7D5B7B8FF96C97818208C96EEED7FFBE009FE - B6F8038B4C0100581871E5FFA8FB96AB3C093F760174F716888DF2360D681789 - 7F6CF34FF7F67B6D1FB00C1400808571E87A57FFDB7479FB7F72C7EDB70D22C6 - 1545B5B8AD06589527FEB6F903CB4601005818878F48546AE28F550FA0EADF06 - E00ADDE4DC56037D127FA00B14008085E04A653B5BDF57DDED618013F3560DBA - 4EE20F74890200B0106CFF6F77FF7DB6FF275D7E15E246F59FADE15900748FC4 - 1FE822050060211C3F71CB2022175BDEBD026F557C2FDC063039B7D7D025F13B - E2DFFFFE7B9A7FF2333F2DF1073A470100987B070E5EE27DE52D3CFC6F3DB701 - 4C2E6EAF899D00B0ECA248F84F7EE6EDCD1FFCDE7B140B814E520000E69E7BFF - DB79FDDF7A6E03D818B7D9B0CC62BBFFCFFFDC3B9A5FFEA55FE8C5DEE30F7497 - 020030F78E1EF3EEFF36777B00E03A6E03D818B7D9B0ACEEF8D06D2BDBFDED98 - 02500000E69CEDFFEDBCF6AE9DDB002617E7599C6FB02CE2F7633CE4EF37DFF5 - 2B7E57020C28000073ED861B5DFD6F73C7EDB70D224A6E03D818B7DBB02C22E1 - FFDF7FEE1D1EF20750500000E6DAD1635E4FD6C6D3FFDBD9EABB31C74FDC3A88 - 6071C5EEA878D05FF400ACA50000CCADFE96E4838311B9F8C3D683ACDAC5D53F - 0592C9C5F9E6961B16DD6FBDEB57FD7E0468A10000CC2D0FFF6BE70AF76877DC - 6EEBEF4638EF5874AEFC03B4530000E6D661AF256BE5FEFFD1BC0D60639C7700 - B0BC140080B964FB7FBB789FB52B5CE3F13680C9C579E7618000B09C140080B9 - E46164ED4E7AF7FFD8BC0D60630E1FB10B00009691020030970EB902D9EAE45D - AE6A8FCB6D001BE3FC0380E5A40000CC9DD87EBC7FFFFEC1885C24B31E003819 - B7014C2ECE3FB70100C0F2510000E68EEDC7ED24B393731BC0C61C3D76F32002 - 009685020030776C3F6E27999D9CDB0036C64E1C00583E0A00C05C397AE3CD92 - 8E1691C44632CBE4EC9CD898435E0908004B450100982B878FB8FADF4612BB71 - 764E6CCC0DC76E1A4400C032500000E686078F0D2789DD38B7016CCC35D75ED7 - 1C3878C96004002C3A0500606ED86EDCCEF6FFCDB383626314E5006079280000 - 73C3F6FF7692D7CDB38362638EBA0D00009686020030176CFF1F4EF2BA79F7DF - FBF141C424AEBCEAEA9506002C3E0500602EC4D3FFA9B3FD7F3A7C1F37CE2E00 - 00580E0A00C05C9060B4B3FD7F7A4EDEE57BB911873D9F030096820200B0EDE2 - 29E3B618B7B3FD7F7AEEBED3F772230E1C3CB8F246000060B1290000DBCEBDFF - ED6C5B9FAEF87E7A16C0C6DC70CC6D3A00B0E81400806D67FB7F3BDBFFA7CF6D - 001B7348A10E00169E0200B0AD6CFF1FEE4F6FFFE020625AECA8D8186FEA0080 - C5A700006CABE3276E1944941E3B75CA76F52DF0D8A94757BEB74CEEA8DB0000 - 60A1290000DBCAD3C5DB9DF4C0BA2DE37BBB31B10320760200008B490100D836 - B1F53F9E2E4EDD1DB7DF36889836CF01D8B8438A7600B0B01400806DE3E17FED - 628BFA430F3E3018316D716B45BC1180C91D3EE2390000B0A8760C7A56A5EF49 - DEA7160593D4EFCAFAD47657DA9EE60D6FF9B566D7DEEB7B3190F9D977FEA21D - 002DEEF8D06D1E00B8C5BEE77BBFCF032837E8A77FF26D2BCF5260EBFDC44FBD - BDB9E6DAEB0623C6F1233FF87D83085828675EB8B3B9E7DD3FD48B4EF7DA4B95 - 76266B2F67FDD9AC4F2D943D3D29C96555FA9EE47D6A0A003025712FF1DFFFD1 - B70D46C022F9DDDFF9EDE603EF7BEF60C4565200989C02002C28058099880416 - 60E60E1F711F312C2AB7EF00C062520000B6C521EF138785D57F80E725831100 - B02814008099F32A31587CC74FDC3288008045A10000CC9CEDFFB0F80E7B1D20 - 002C1C050060A6E2CABFEDFFB0F8E20D1EDEA200008B45010098A943D7BFD1F6 - 7F5812C74FDC3A88008045A00000CCD4E123AEFEC3B2B09B0700168B02003033 - 71E53F1E00082C07E734002C160500606662FB3FB05C3CD41300168702003033 - B6FFC3F2397AE34D9EEB01000B420100988903072FB155189694DD3D00B01814 - 00809990FCC3F2B2BB0700168302003013478FDD348880651305BED8E50300CC - 37050060CB456270E555570F46C032B2CB0700E69F0200B0E52406B0FCECF201 - 80F9A700006CB9E3276E1D44C0B28A5D3E6E030080F9A600006CA97E52707030 - 0296D90D37DA050000F34C0100D852B60543771C3D76F3200200E6910200B0A5 - 0E7B3F387446ECF6F1C04F00985F0A00C096B1FD1FBAC7AE1F00985F0A00C096 - 910840F71CBDD16D000030AF1400802D231180EED9BF7FBF577F02C09C520000 - B6442400910800DD73F888677F00C03C520000B6840400BAEB90022000CC2505 - 00604B440200745324FF87BC010400E68E02003075B6FF03878F280202C0BC51 - 0000A6CEF67F40211000E68F02003055F107FFD11BBDFE0FF026100098370A00 - C054B9EF17488E1E530C048079A200004C95FB7E81E4CAABAE6E0E1CBC643002 - 00B69B02003035B1FD3FEEFB0548FC4E0080F9A100004C8DEDFF40E9F8895B07 - 1100B0DD140080A9397EE2964104D077E0E0C1955B010080EDA700004C45DCE7 - EB8F7CA0C6C30001603E28000053E13E5FA0CD61B70701C05C500000A6C2153E - A04DDC06A0480800DB4F0100D834DBFF81510E1FB10B0000B69B0200B06937DC - E8EA3F30DC213B000060DB2900009B76F4D8CD8308A06EFFFEFDCDD11BFDAE00 - 80EDA400006C4A6CFD8FFB7B0146397CC42E0000D84E0A00C0A678F81F30AE78 - 1060EC040000B6870200B0295EEF054CE290DF1900B06D1400800DB3FD1F98D4 - F113B70C220060D61400800D3B7EE2D64104309E7EE1F092C108009825050060 - C3BCD60BD88878160000307B0A00C086789817B051760F01C0F650000036E4F0 - 110FF20236269E1D12B7020000B3A500006C88EDFFC06678852800CC9E020030 - B1A337DE6CFB3FB0295E210A00B3A700004CECF01157FF81CD89DB00AEB9F6BA - C1080098050500602271E5DF13BC8169B8E1D8CD830800980505006022876CDB - 05A6C4B3440060B614008089D8FE0F4C8B1D4500305B0A00C0D8FCB10E4CDB51 - B70100C0CC280000638BA7FF034C531415BD55040066430100189BF776035BC1 - B345006036140080B11C38784973E555570F4600D37383E22200CC8402003016 - F7FE035BE59A6BAF5B293202005B4B0100188BEDFFC05652640480ADA700008C - 64FB3FB0D514190160EB290000231D3F71CB2002D81A516454680480ADA50000 - 8C74D813BA8119B00B0000B696020030545C913B70F0E06004B075141B01606B - 29000043B92207CC4A141BE38D0000C0D65000008672450E98A51B8EDD3C8800 - 80695300005AC56BB96CFF0766E990D70102C0965100005A1D3EE2EA3F305BFB - F7EF5F293E0200D3A70000B472250ED80E8A8F00B035140080AAB8021757E200 - 66EDE88D37F9FD03005B60C7A06755FA9EE47D6A513049FDAEAC4F6D77A5ED69 - DEF0965F6B76EDBDBE17C3C2F881B7FEC8CA1FE18C76FFBD1F6F7EFEE7DE3118 - D165F104FB9FF8A9B70F466CC66FBEEB579B3B3EF4C1C1A8BB623D7933C2647E - E407BF6F10010BE5CC0B7736F7BCFB877AD1E95E7BA9D2CE64EDE5AC3F9BF5A9 - 85B2A7C70E00609DB8F266FBFFF84EDEF5D14144D74531E8B153A7062336E3F0 - 11BF830060DA140080750E5DFF46DB6F2770F24E0500569DBCF3238388CDE8BF - 85E492C1080098060500601D57DEC6F7D0830F348F9D7A743082A6B9E3F6DB06 - 119BE56D0000305D0A00C01A5EC13519C91EA57E51C86D00D370F498E79000C0 - 342900006BC4F67FC667FB3F356E03988E2BAFBADA6D000030450A00C01AB6FF - 8FCFF67FDAD819323DC74FDC32880080CD520000BE2AAEB4D9FE3FBEBB3DFD9F - 166E03989EC3762501C0D42800005F25F99F8CEDFF0CE33680E93870F0E0CAAD - 0000C0E62900005FE5815BE38BABBB719517DA7CE0FD7F3C88D8ACE3276E1D44 - 00C0662800002B62FBBFAB6CE373759751E2F9108A44D371C8EE2400980A0500 - 6085EDFF93F19037C6619D4C87D79302C0742800002B6CB11D9FEDFF8CCB7322 - A6E7F0110F030480CD52000006EFDA3E3818318AEDFF8CCB6D00D313B701C44E - 000060E31400000FFF9B906DDD4CC27A998E48FE0F792520006C8A0200E03DDB - 1378F6D9675DD165226E03989EC3473C070000364301003ACEF6FFC9DC2D9963 - 426E03989E7810A0DB000060E31400A0E36CFF9FCCC9BBDCFFCFE43EF0FE3F1E - 446CD6D11B6F1E4400C0A41400A0E3FC313DBED8FE6F3B371B71B707474E8DA2 - 25006C9C02007498EDB493B1FD9F8D523C9A9EFE6D4B970C4600C0241400A0C3 - BC577B32B6FFB31927EF520098961B6EB40B0000364201003A2CDEABCD785CC1 - 65B3DC06303D478FB9750900364201003ACAF6FFC9DC7FEFC707116C8C22D2F4 - C49B4BE256000060320A00D051B6FF4FC6F66DA6C13A9A1E0F030480C9290040 - 07C595FFA3EEA19D88EDDB4C8375343DDE600200935300800E3A74BDABFF9388 - 6DDBB17D1B36CB6D00D31385CCB8950900189F020074D0E123FE689E846DDB4C - D31DB77F7010B1596E650280C9280040C7B86A3639DBB699263B4AA627DE64E2 - 61A600303E0500E818DBFF272359632BDCED3680A988E4DFEF3400189F020074 - CCF113B70C22C661FB3F5BE1E45D76954C8B5B9A00607C0A00D021070E5EE2DD - D913BAFFDE8F0F22981E3B4BA6276E69721B00008C4701003AC4BDFF9379E8C1 - 079AC74E3D3A18C174B90D607ADC060000E35100800E397ACCBBFF2771C7EDB7 - 0D22983EB7014C8F5B9B00603C0A00D011B6FF4FCEFBDAD94A6E03989EF8DD16 - BFE30080E11400A0236EB8D1D5FF49D8FECF2CB80D607ADCE20400A329004047 - 1C3D76F320621CB6FF330B1F78FF7B07119B75FCC4AD83080068A300001DD0DF - 1E7B7030621CB6FF330BFD9D26A7062336237EC7B9CD0900865300800EF0F0BF - C9444266FB3FB372F24E0F039C16BFEB0060380500E880C35E9135110919B3E4 - 7693E9F1BB0E00865300802567FBFFE42464CC92DB00A6277ED779182000B453 - 008025E7C1589389442C12329825BB4EA6E7F011BB0000A08D02002CB943AE86 - 4D4422C676B0EB647AFCCE0380760A00B0C4622BECFEFDFB0723C62111633BB8 - 0D607AE277DED11BBDF614006A14006089D90A3B19DBFFD94E1F78FF7B07119B - 75F8885D000050A300004BCC56D8C9D8FECF763A79E74707119B65F71300D429 - 00C0928A2DB0FE009ECCFDF77D7C10C1EC3D76EA513B50A6E890570202C03A0A - 00B0A46C819DCCB3CF3EEB0A2CDBCE3328A6E7F8895B061100902800C0128A2B - FFDE853D99BB25FFCC0145A8E9B9F2AAAB9B03072F198C0080A000004BC8D6D7 - C99DBCCBFDFF6C3FB7014C97422800ACA500004BC8F6FFC9D8FECF3C711BC0F4 - 1C3D76D32002008202002C19DBFF2767FB3FF344316A7AE236806800409F0200 - 2C9978FA3F93B1FD9F7912B701DC7FAF37524C8B5D0000B04A0100968C3F7627 - 27D962DEFCA9DB00A6E6B067A200C0572900C01289275EDBEE3A99D86E1DCF00 - 807972F79D76A54CCB8183079B6BAEBD6E3002806E53008025E2DEFFC99DBCCB - FDD6CC1F0FA69CAE1B8EB9350A008202002C11DBFF27E74A2BF34A716A7A0E29 - 8E02C00A05005812B6FF4FCEF67FE699E2D4F4783B0A00F42900C092387EE296 - 41C4B85C61659EB90D60BA8EBA0D00001400605978D2F5E45C6165DE29524D4F - EC00889D0000D0650A00B00462EB7F3CE99AF1C5ABFF6CFF67DE29524DD72185 - 52003A4E0100968087FF4DCE9555164114A9EEF8D06D83119B7583DF9500749C - 02002C01DBFF27E7DE6A16C5C9BBEC0298966BAEBD6EE581A900D0550A00B0E0 - E2BE56DBFF27F3D0830F348F9D7A743082F9E66D15D3E56D0000749902002CB8 - C3475CFD9FD41DB7DB52CD62B9DB8E95A971CB14005DA600000BEE90AB5913B3 - FD9F45E33680E9E93F34D56D0000749302002C30AFB59A9CEDFF2C22B7014CD7 - F113B70C2200E81605005860B6FF4FEE6E4FFF6741B90D607A3C381580AE5200 - 80051557FE6DFF9F9CEDFF2C2AB7014C4F3C38356E050080AE5100800575E8FA - 37DAFE3FA1C74E9D5AB905001691DB00A6EBF8895B071100748702002CA8C347 - 5CFD9FD4C93B5D4165B1DDF1A10F0E2236CB0E2A00BA48010016505CF9F72EEB - C979FD1F8BCE1A9E1EBF4701E82205005840B1FD9FC9D8FECF32E8BFC5E2D460 - C46679902A005DA300000BC8F6FFC9D9FECFB2B096A7E7E88D3779960A009DA2 - 00000BE6C0C14B6C5BDD005BA75916D6F274D9510540972800C08291FC4F2E9E - 9C6EFB3FCBC26D00D3654715005DA200000BE6E8B19B0611E3BADBBBFF59326E - 03989E28AAC6CE2A00E80205005820F147EA95575D3D1831AE93774996582E6E - 03982E3BAB00E80A05005820FE489D5C6CFF3F6907004B266E03705BCBF4D859 - 0540572800C002397EE2D641C4B86CFF6759D905303DB1B3CA6D000074810200 - 2C88FE1FA8070723C665FB3FCBCACE96E93A7EE296410400CB4B010016842DAA - 93B3FD9F65F6D8A947DD06304587BD0E10800E50008005E18FD3C9DD7FEFC707 - 112C27B7014C4FECB0F2905500969D02002C80B837D5F6FFC99DBCCBD57F969B - 1D2ED365A71500CB4E01001680E47F63EEF6AE74969CDB00A6CB0E80C5F7D8A9 - 538308801A05006029C595D17806002C3BB7014CCF3CBE09C0EFB1C944510C80 - 760A00B0009EF307E044E20FE6DFFD9DDF1E8C60B9DDF1A10F4A12A7E4D9679F - 1944F3E38EDB3F388818871D0000C32900C002882DBEB6F98E2725FFAE02D115 - B1E6FFF79F7B8722C0143CFCE08383687EC46EA63B3E6497C7B8FEE0F7DF3388 - 00A8D935E859B5A3D2D75A144F523FACED6A2E79C37FD3ECDC7D692F860DFBAB - BFFC8B95EDA9AFBEF4B2C10CA5F843F9B7DEF5ABCD5FFDC5C70633D00D4F3DF9 - 6473CF5F7E6CE5F7C33C6E635F049164FFEEEFFCABE6F4E9D38399F9110F34DD - D1FB8BE38AABAE6EF6ECD93398251745F25FFB3FFF45F3B062392CAEB3671E69 - 1EBDE7DFF5A2975BDAD9961652CF0891C0B256FA9EE47D6A91D0A73E8A27A94F - 6D77A5ED69DEF0965F6B76EDBDBE17C354C483AAF6EDDF3F1811BCF20FFAF6F7 - 7E3744A2C878E216AB45DA61E5F7FF7A7EFFC39238F3C29DCD3DEFFEA15E1495 - D8972AED4CD6A22090FA48FECB0241287B7A5292CBAAF43DC9FBD41400000000 - A64D016026228105000000969C02000000007480020000000074800200000000 - 7480020000000074800200000000748002000000007480020000000074800200 - 0000007480020000000074800200000000748002000000007480020000000074 - 8002000000007480020000000074800200000000748002000000007480020000 - 0000748002000000007480020000000074800200000000748002000000007480 - 0200000000748002000000007480020000000074800200000000748002000000 - 0074800200000000748002000000007480020000000074800200000000748002 - 0000000074800200000000748002000000007480020000000074800200000000 - 7480020000000074800200000000748002000000007480020000000074800200 - 0000007480020000000074800200000000748002000000007480020000000074 - 8002000000007480020000000074800200000000748002000000007480020000 - 0000748002000000007480020000000074800200000000748002000000007480 - 0200000000748002000000007480020000000074800200000000748002000000 - 0074800200000000748002000000007480020000000074800200000000748002 - 0000000074800200000000748002000000007480020000000074800200000000 - 7480020000000074800200000000748002000000007480020000000074800200 - 0000007480020000000074800200000000748002000000007480020000000074 - 8002000000007480020000000074800200000000748002000000007480020000 - 0000748002000000007480020000000074800200000000748002000000007480 - 0200000000748002000000007480020000000074800200000000748002000000 - 00748002000000007480020000000074800200000000748002C0C69D1DF4A38C - FB390000802E93636D3105805938FBF2D38308000080929C6926140066E1F4F3 - F70F220000004A72A6995000000000800E5000000000800E500098BE782045F1 - 500ADF6600008076EB72A64A5EC566C94C27D3B600D37C7EDC62050000985C2D - AF6ACBAFE45D1350009885D34FDD378800000028C9996642016073A2DA34ACE2 - D43FF6D28B5F59E9010000586F35671A955F0D3BCE080A00000000D0010A00D3 - 932A516555EA6CF3FCA9CF0F620000004AFD9C696D1EB53ACEE7D9040580E92A - 176CDF639F7C6410010000505A9B33D5F32A364D01606BA5C56AD1020000B493 - 3BCD8002C0E68D5AA0FDE32F9FFEC44A0F0000C0AA332FDC3988C6CBADD83005 - 808D29175E8C872DC6B3CDD9979F1EC4000000AC353C9F5A7F7CD8E769A10030 - B9B4D0DA165C5A9C6B8F9F39ED3900000000A533CFDF3F88927A4EB52ACDB71D - A7850240BB7231D516D7A8CFAC8ECFBCA400000000503A73F62B83288C9F63AD - 1AE733F428008C168B67D402CA8FA7CFA7B97EFCE25365550B0000807EAEB43E - 875A1D873CAE293F4F8502C0E6A545565B6CAB8BF0A5D39E01000000505ACD95 - 56F3A7B5D25CED18135000586FD8A2CA175EED736D5F7BB679F2337600000000 - 94FAB9527B2EB55E9E8FB57D5D1876AC93140036A76D41A505B97AFC992F3ED5 - 9C5D736F0B000040B7458E14B9D2AAF5B9D45A6DF38C41016072E5822B1768DB - F1A679F945BB0000000092D51C29CFA992344EC7DA8E33260580E9CA1766DEC2 - 59AF02040000C8BCF8C2277AFF733567AA37A64401603A462DCEFEB1979E8FC5 - 0D00004038FB625C241D9D4BB51F67020A001B37EE225DFDCC734FDE37880000 - 00589B23D5F3A8B5861D63040580C9A485962FB8722EEFD7C64F7EDA0E000000 - 80A49F23ADCF9DFADAFA509B63040580E1F245356C61959FCB3FBB3AF7CC979E - 6ACE7A0E000000C04A6E1439529E33AD2AE7F263A5713FD7790A0075A31657EA - 53ABA91D3FDB9C3E6317000000403F375A9B2FADCFA172E5F1B6CF8561C73A4B - 016063CAC59416619AAFF5FDF8650F02040000C872A3D57CA9DEE7C79372CC18 - 1400A6AF5CA0F9F86CF3CCA98FC624000040A7F573A3B5F9525F39664A140036 - 67D822CDC7AB739FFF3305000000807E6E343C7FAA8FD9200580C9E58B2F29E7 - A26F6F2F9F761B000000D05DFD9CA89E2FADB650F6A136C718140046CB17D7B0 - 0536EA7369FE6CF3C27377AECC00000074513F275ACD91D6CBE76BC793713F47 - 8F0240BB518B2CF5A925B563796B9A17BFAC0000000074D76A4E54CB99A285D4 - 8761C74AC38E759A02C0C6958BAA5C8CEDEDB1FB1500000080EEEAE744F57C69 - B5853C4ECA31635200D8BCDAE2AC8D57E79EF9D2539E030000007452E4429113 - E539D2DA16DAC66C8202C0C6E48B3029E7A22FDBCB5F8D3D07000000E8A2B5F7 - FFAFE6486B5B28FB509B634C0A00E3C91759B9D0F2B9DAE752BC76EC39000000 - 4017F573A1F539D2FA71A8CD25B5CF318402C070C31651BED8421A0F6BABD5AD - 073FF49F7B3D000040B7F473A1F539D2F09694E3D2B0639DA700307D6941E60B - B3169F6D5E7CE6832B330000005DD0CF815673A2BE5A9CCF31250A00D3D1B638 - 632EAF6845BC3A7EE9D9BB7A3D00004037F473A07A7EB41A97D27136490160E3 - D202CC17625A98790BF5F1973FE936000000A03BFA39D0FADCA83ECEE7438AF3 - 3926A00030BE7CB1950B2ECD8DD356AB5C8F7FFAF35E070800007442E43E9103 - 9579D1F82D97CF95C768A10030DAB0C5942FBA5C9A1FDD9E7FE28F7A3D0000C0 - 72EBE73EF5BCA8DE4A6DF3C9B063F428004C4F5A8C69D1E57DADF5AB5D5FFEA4 - 0701020000CBAF9FFBACE642F516F23E9F6793140036A7B640CB7E587BD96D00 - 0000C0D25BDDFE3FCEB6FF30AA6703140026932FBA32AE8DC7692FBB0D000000 - 586AFD9C67D27BFEA385B671483D63500018CF4616555A94798B059FB7FEBCDB - 0000008065B6BAFDBF3D2F5ADB26B591AFE91C0580E9A92DD871E6BC0D000000 - 585E6B9FFE5FB630EE1C9BA400B071B5C598CFD55A59DD5AAD7A3DF3E8BFEEF5 - 000000CBA59FEBACE63EEB73A27C5C6B496D8E0928004CAEB6D86A8B30CD8DD7 - 1EFDAB3FE9F5000000CBA59FEBD4F3A0F696ABCD85DA1C4328008C6FDCC59516 - 67FA7C8A8757BA9EF9D2D3CD8B4FFF875E0C0000B01C22C7895C27CF7D86E746 - 213F368E713FD7790A00D3515BA8A985BC8FC59D16788AFBEDE92FFC61AF0700 - 00580EFD1C676DDEB33E2F0A795FB6907A3641016063F245588B9318E70B3C7D - A6DE3EFF5FEE6CCE9EF9422F060000586C91DB448E53E63DEB5B9933E5D26742 - 1933210580C98CBBC8D2C2CC1767B4BC081071DEFAF3CF3DFEBBBD1E000060B1 - F5739BE1F9CFDA38A4388D4719F773F428004C4F6DC1D65AB9E0D7CE3F7297DB - 00000080C5D7CF6D86E73FEBE7CB1652CF2629006C5CBE186B7192E6CA9616FC - DAF6ECA34F7918200000B0D022A789DCA696F3F45B2D478A96CBE7CA980D5000 - 98DCB88B2D2DD07C918ED71EFF8CDB00000080C5D5CF69EAF94EBD85723CCAB8 - 9F63400160BA6A0BB7D652C5ABAC82F5DBA37F715FF3E273277B310000C06289 - 5C26729A5AAED36F794E34AC85D433050A009B932FCA5A9CA4B9BC0D5FF04F3D - F4EBBD1E000060B1F473997A9ED36F6DB9502E9F2B633648016063C659746991 - 962D5FEC11D7DB237FFED1E665AF040400001648E43091CB94F9CDDA56CB8DCA - 36CA389FA1A000303DB5C59ACF454B0BBC5CF4F5F6CC17ED0200000016473F87 - A9E737FD362C374A2DA9CDB1090A009B575B8CF9224D71392E17FFFAF6D9FFF4 - 8776010000000B217297C861CABC66B5D572A190E2725CAACD310105808D1BB6 - F8CA85DBD6CA13617DB30B0000005804FDDCA59ED7F4DBE8FCA7DF42EA6B861D - 63080580E9C817692D4ED25C6A69F1A713617DFBEC7FFA23BB00000080B9D6BF - FAFF47110D69790E94B75C3E57C66C9202C0D64B8BB65CE8E509107DBD3DF385 - DFE8F5000000F3A99FB3D4F3997EABE540A9E563B69002C0E6D416685AB8650B - 296E5BF0D1AF6F9FFD13CF02000000E6D3CAD5FF5ECE52E631AB6D580E142DE4 - C7F256AACD31260580E919B610F3059CB77CD197F1DA6617000000308FDAAFFE - B7E53A292E5B9B61C7988002C0E68DBB50D3A24E2D2DFC7472E46DFDFCCA2E80 - D39FECC5000000F3217294FAD5FF51B94EF4794BF2B834EC1863500098AEB420 - F3455C8BDB5A7972AC6D8F7FE6977A3D0000C07CE8E728F5FC65B5D5729FBC85 - 613153A200B0F5CA455CB6DA09126DFDB147FEFCA3CD8BCF9DECC5000000DB2B - 7293C851CABC65749E536B21F56C110580E9A82DD4722197715BAB9D24ABEDD1 - BB7EB6D70300006CAF7E6E52CF5B565B2DE7C95B688B73B53926A400307DC316 - 6B5ACCA9A513A23C49DADBE39FF97CF3FC93EFEEC5000000DB237292C84D6A39 - 4B7BCB73A0BC85D4E76A736C8202C0F4B42DD87C4197715B2B4F90B5ED737FF6 - AEE6ECD9AFF462000080D98A5C2472925AAEB23E9F19D6425B9CABCDB1010A00 - 5B63D8A24D8B3AB5F22419DD9E7DF4A9E69947BD1610000098BDC8452227A9E5 - 2AED2DCF7DF216529FABCDB1490A00D3D5B670F3855DC66DAD3C61523BB3D27F - E6FDBFEBB5800000C04C450E12B9489E9BD45B2DC7C95B688B73B53936480160 - EB0C5BBC6971A7964E90F2A419DEBE78CF3FEDF5000000B3D1CF41EAF9497BCB - 739EBC85D4E76A734C8102C0F4B52DE07C819771B4FCC4686B6B2B6CA7FEF27E - 0F040400006622728FC841F29C64F82E806879AE935A688B73B539364101606B - 0D5BC46991E7AD3C31F213A77E627DEEC3BFDEBC7CE60BBD180000606B44CE11 - B947998FF45B99AB94394D3E4E2DA43E579B634A760D7AA66F47D127F938FF4C - DE428AA348931FCB5BD39C7EF674B3FBDC4F37FB0FDEBA3206000098B6C73EF1 - 0F9B2F7FF233BD2825FBD1E72D25FF791CC97CEA530B6D71AE36C72629006C9D - 7E82DE97E2D5C47DFDF1F25819972DF4E3AF7CFE0BCD85575FD0EC3EF70DFD69 - 0000802989ADFF0FFCC9BFED4529C14F497E8AF3A43FE248DED33825F8790BA9 - CFD5E69822B7006C9DB6059D2FF8324E2D3F59529CB7F2048B5B017EC3AD0000 - 00C054F5B7FEC72BC8EB79C8FA56E633790B6D71AE36C714D801B0B5D295FAB0 - F6AA7D5F793C6FA19C2BE7433F762B000000306DFDADFF9FED4591F0A716C97D - 19A7A43FB594DC972DA43E579B63CA1400B65E9EA8E7C619E75F5BB6B076FC95 - CF7FB1B9F0EAF3DD0A0000006C5A7FEBFFEFF5A232E92F13FFD4A7C43FC5F95C - DE421EE76A734C8902C0D64BC97A2813F75C3E571E4FE37CBE366E9AC7EFFF48 - 73F1353737BB765FBC3206000098D4E9E73FD5DCFFFB6FEF45B5643FB594E0E7 - 71B448E2531F52B29F5AA936C716F00C80ADD7B6C0CBF934975A7EF2E4E3BCE5 - 27DEEA49F7E57BFF6973F6E5AFF462000080C9442E1139C5DABCA3CC3FCAD696 - C7A496ABCD85DA1C536407C06CA4ABF421BF629FCF87F258FE99722E6F61357E - E6D12F37FB0E3CD1ECBDE0C695310000C0B89EFEDC2F349FFBF30FF7A25AE25F - F6798B043EF56DAD549B638B2800CC4E4AD44319AF26EF7DA3E6D27CDEAF9D7B - F2814F3517BEE6B266F7DEAF5B190300008CF2FC537FDC7CFA7DBFDE8B6A09FF - B0E43FB532E12F13FC7C2E3F567E8E2DA000303B29410F795CAA1DCB93FBBC85 - 5ADF8F9F7FFC63CDF957BCC9F30000008091E2BEFF873FF48F9BD3CF3ED71B45 - 329F92FE7192FF48E0CB7188BE6C6C130580D94A497A589FB0B71F2FFB5A0B6B - E3D3CFBED8ECDC796F73DED7FCF566C78E7306F30000006BC57DFFA7FEEA7F6E - 9E78E073BD5124F079C29F27FDB5024024F5A94F097E1997F2B9DA71B68002C0 - ECE5C97AAE1C8794D0E7C7F2B9DA7C58ED9F79F4F1E69CF31F6EF6BDF2AF0FE6 - 000000D67AE233FF6BF3C89D1FED4591C8E7C97FEA538B71ADA5843F5A390E79 - 9CABCDB145140066AF4CDAF33E573B96CFD55A928F77344F3DFC5073C165BB9A - 3DFB0F0DE6000000FA9E3BF52F9BCFAEBCEF3F12F7B6A4BF2DF98F043E8F5342 - 9FE27C2E29C7CC8802C0F62893F5D4E77152CEE57D3917EA9F7BFC53773717BF - F6EB9B5DE75CD59F0600003AEFF4576E6FEEFFC39FEF4591C0E7497F9EF8E771 - 4AF6A345229FFAB285D4876173CC8802C0F6A825EC49390EFD247EFDD7A57179 - BCDE3FFBD8473C1410000058110FFD7BF0B67F3878E85F2DD12F13FE721C2D92 - F8D4CA71C863B69902C0F649C979C813F57C3EE4C792DA5C8871DBE7FB0F053C - F36C14016EF550400000E8B078E8DF237FF6B6E6E9471EED8D22714F05805AF2 - 9FCFA716497D1E97097F1AE7F2B9DA71B69802C0F6AA25EBA12D89CFFB90CFD5 - E643FE99A679FEC9679A975FFE68F38A57FD3545000000E8A048FEBF70F78F37 - 8F7FF2B3BD514AEE5382DF16D75A9EECA716F23EC5B9DA1C33A000B0BDDA92F6 - 508E43CCE52D19369FA47847F3ECA38F37FB0E3CD1ECBDE0C6C11C0000D015F1 - C4FF2FDC75672F4A097EDE22B1CFE35A4B897D6AE55CC8E390C76C130580ED57 - 4FD2D7CE87729C1BF5F9F5F1930F7CAAD977F1A3CDDE0B8EAD8C010080E5F7D4 - C3FFAC79E843FFB117E5497F4AF66B711AB7B532E1AF25FAF95CED3833A20030 - 1F5282DE96C4471F274A3ECE5B288F25ED7114012EB86CA7D70302004007C4EB - FE3EF381DFED4591B8D792FD322E5B4AF0CB16C742C4A94F71AE36C70C2900CC - 87B6243DA4F1B0CF84FC73B5AF09EBE7E3F58017BEE6D266F7DEAF1BCC000000 - CBE6F9A7FEB8F9E41FFD522FAA25FB794BF329E96F6B29C94F497DDEA738E431 - DB4C01607EE4C97A5B029F8B63792B8D9A5B8D1FBFFF4F9B8BBEF6B266F7DED7 - 0D6600008065F1C2D3EF6B3EF107FF5B2FCA13FD978A71DE22C1CFE332E18F56 - 9B8B96CBC7E531B68102C07CA925E8D1E7F3A11C97F2AF29FBB03E7EECBEDB15 - 01000060C944F27FFFBFFBA7BDA896D89771DE0F6B29994F497F2DD1AFCDB1CD - 1400E64B5B921ED238FA3881F27129E6F2F9B6CF24FD581100000096C7DAE43F - 5A7ED5BFDC0110897DEADB5AE421A9C538A4E43ECD33C71400E6CFB0C43D8D6B - 9F893EB5248F73ED9F5104000080C5B73EF9CF93FC32CE5B9A2F13FEB285BC4F - 71688BD9660A00F3A996A0B725F3A1ED58FEB5792BAD9D5304000080C5554FFE - A3D5AEFA8FDB22914F7DD972F9B83CC6365300984F65929EC66D097CA81D6BFB - 6CAEFE1945000000583CEDC97F4AF86BF3A9E5097F6A29C9CFE3D49214E773CC - 210580F99527E6A312FBF2B3A9E56A73496D7E87220000002C90D5E43F92F55A - 825F7BF27F9EECA79627F9691CF2F990C7A5B679B69102C07CCB13F35A429FFA - 38B96A497C4DDBE7EAF38A00000030FF9E7DF23DCD27FFE0E77B5199E0A7D696 - FCE771ADA5243FE29012FB349FB4C5CC110580F99727E665929EC6D1C749564F - E2D7CBBF2EF5ED5F1F45807DAF7CB4D97BE1B1C10C0000302F9E7AE89DCD67DE - FFFFEB4579729FB748FE23818FB8EC535C6B9123448B38A4C43ECD276D317346 - 016031E4897999BC27A3C649F9F5D1C7499AF7EB3DF9C0A71401000060CE44F2 - FFC007FFA817A564BE6C29F96F2B02D45AE405790BE538C9C7E531E68C02C062 - 2893F23C791FA6ED78EDDF8B9335EFD78B22C0CB67EE685EF1AABFD6ECD871CE - 6016000098B5B32F7FA5F9C2C91F6D1EF9C8877BA33CE1CF5B2DF94F2D8D53D2 - 9F5AE403A9AFB550F62C080580C59127E5655C4FD857E76BC7CBB918C7099CF7 - EB3DFBE8979B975FFE4873CE2BBFADD9BDFB158359000060564E3FFFA9E64B7F - F9BF34A7EEF9446F9427F5799B34F98F1C60584BF238D736CF1C5100582C7952 - 5E4BE06BD27CED78EDDFC84FDC345EDB4711E0D92FBDBF39FF8A6F6B76EDBEB8 - 37070000CC4224FF0FFCC98F374F3DF8F9DE2825F165B21F7D99EC97E3E8538B - BFF5CB3E6F218F435BCC1C5300583C79D29EC7A11C2769BE767CDC7F63AD979E - 7BB139F5F13F6C2EFADA4BBD2100000066205EF377DFEFFDBF7A7F8B3FD71BE5 - 497D5B8B64BE368E3EB548DECB3E6F218F435BCC9C5300584C79923E6E029FE6 - 6BC7F3B9C94EE0C7EEFBD366DF2BBFE4E1800000B085E2617F9F7EDF6FF5A23C - A11FA745525FF6A9C5DFFE659FB790C7A12D660128002CAE3C692F93FA5A921F - D27CEDF8B063B938C9E333AB277B3C1CF0CCCAC301FF2B0F07040080298A87FD - 3D72F27F6C1EF9C89FF54665625FBBBF3F6FE958DEA7167FCF977DDE421E87B6 - 9805A100B0B8CA447DD43849F3B5E36DC7E2E48EB9F693FCB9471F6F9E7EE48F - 9A0B2E7D43B3F39C570D660100808D7AE9998F359FF94F3FDA3CF5E0E77AA348 - D2F3E43E6F71AC2C06A438EF538BBFEBCB3E6F218F431EB3A01400165B99A88F - 1A2769BEED78C88F455C3BE1636EF5D8CA7301EE7D5FF38ACB7736E7EC3FB432 - 0700004CEE99C7FE55F3897FFF73BDBFB19FEF8DF2A4BEEDAA7F3E57C6798BBF - DDCB3E6F218F431E8772CC825000587C65123F6A9CA4F9B6E3B9DA09DE3EF7E5 - 4F7EACD9B9E72F9ADDE71FF2AA40000098C00BCF7FB1F9F227FE51F3D06DEFED - 8D6A09FD3873799FB7F87BBDECF316F238E47128C72C100580E5B0D54580F278 - EDA45FFB4BE22B8F7CB179F64BFFB139FFB2AB9A5D7BAE1CCC0300006D4E3FFB - A7CD83FFF9A79B273EFDD9DE284FE4CBB83657C6658BBFD7CB3E6F218F431E87 - 72CC825100581EA392FEB6247F54F25F1AF60B21ACCEBDF4DC0BCDA97BFFF3CA - 5B029ABDB11BC003020100A0F4C2F3CF34CF3EF27F349FFAE3FFEFE0157F91A0 - D712FBDA5C8AF3BED6E2EFF468799C5AC8E390C7A11CB380140096CBAC8A0061 - D82F8790E6CEF6DF12F0CC9F34E71DFC3A0F080400804C3CE8EF8B1FFD9F9A2F - 7EECAEDEA896D0E72D9F2B3F177D5B8BBFCDA3E5716A218F431E8772CC825200 - 583E1B2D0284F2583AD1877D4DDB2F8AB5F1F34F3EB3F280C0F3BEE6D9E6ECEE - EBEC060000A0D3E2AAFF738FBEABF9E47FF8C5DEDFCA4FF566CA043F6FF97C8A - F33EB5348EBFC5D35C8AA32F5BC8E390C7A11CB3C0140096D3668A00A3B47D6D - DB2F8D14F7FB273EF371BB010000E8B474D5FF0B27FF4B6F9427EE793F2A4EAD - 1C478BBFBDF3B8D6421E873C0EE59805B7994490F9362CE98F388D535CB69D59 - DFD6A28094C7695CC6B57E6773F9D19B9AF32EFB07CDDE73CFEB8D010060B9C5 - 55FF673EFFCF9BCFDD715B6F9412F4B6E43E1FD78EA5B8D622714F7DAD853C0E - 791CCA314B209231965724F0B951E3527EBCF60BA0ED9744D987F5734F3FFC60 - F3EC97FEB0D977F1DE66CFBEEB06B30000B07C9E7BFCDF360FDFFE33CDE3F7DF - DF1BA5443D25F629A1CFC7F95CAD2F5BFC9D5DF6B516F238E47128C72C090580 - E5B7D922C0B8F25F26791F22AE8F5F7AEEC5E6F14F7EA417DCD19C7BC1556E0B - 000060A9C476FF47FFF21F350FDDF1DEDEDFBECFF76652729F5A24EBB571AD1F - D6E2EFEBD4B7B590C7218F433966894C2BF963BE0D4BFA234EE33C8E6DFAA94F - F3FDADFB6BE3D456B7F6AF1D8FEAD7C657DF7C4BB3F792EF6FF69EAB100000C0 - E27AE1F92F362F3CFAAF9A073EF8C7BD514AD26B097D5BB29F7FA6368E16C97A - 1EA771487D9A0F791CF2389463964C4AF6587EE5CF3A1FA738FAD4428A23392F - E394BCA7384FE8CBF1B0A4BFFCBA9DCDBE031734977ECB7735BBCFFFBB9E0F00 - 00C04289FBFC5F7AFADF368F7CF4DF34CF3D164FF74F097A6AB5047FD85C1947 - 925EC6D1977148713E4EF23894639650246F7447F9F3CEC729CEFB5A8B24BDEC - 87B54992FFB5E37D175FD05CFEE6FFBED9F7CAEFE88D010060BE3DF7E5DF6B3E - F7E17FD93CF7789EF8E7C97B39AEC5E5E76B2D92F5B2AFB550F6218F43396649 - 450247B7943FF37C9CE2BC6F6B91A4A7BE8CF3D696E40F4FFEF3F1F9575DDA5C - 7AF8FB9BBDE79FE88D010060BEBCF0F4FB9B2F9DFC97CD130F7EA1378A847C58 - D29F8F477D2E6F91A49771F46D2D947DC8E3508E596291B4D14DF9CFBE5C0731 - 4E73791C0979EAD37C8AFBC9FADA386F79823F7EF29F3785000000E64924FE8F - 9CFC57CDD30F3ED21BA5E43C6F79423F2CD91F96F8478B24BDEC531C529FE643 - 1E27F9B83C4607A4C48E6E2A7FFEF938E234AEC5A945725EF6659C5A2DB11F2F - F9CF9B42000000DB6974E29FDAB0A47FD85CB448D0CB719A4B716AA12D0E791C - CA311D11491ADD56AE817C9CE2BC6F6B919CB7F56D6DF2E43F6FF18C804BDFF8 - 773D2C1000802DF7D587FB7DE4DF16F7F88F6AE31401CA16097ADEA778580B65 - 1FF23894633A24123428D7413E4E71DEE72D44429EC6659C5A39CEDB64897FD9 - A21070F00D3734FB5EF57D5E1F0800C054C5EBFC9EFBE26F37A7EEF9D30913FF - BC8D93F4478BE43C8FD3388F431AA716CA3EE47128C7744C246510CAB5501BA7 - B95A9C5A24E5659CF71B696581A0EDDFDAD15CFEA61B9BF32E3BD1ECDD7FB437 - 0600808D79E1D93B9A673EFFFEE6737FF6A1DE2812E794986F554BFF8DBC2FE3 - D4425B9C8C1AD341914841525B0FF95C8AF37E58EB27E5AB711AD7E2B6D6B63B - A0F6B5AB73E75FF5EAE655DFF89DCDCE7D47ED0A0000602C71B5FFE5E7EE68BE - F897EF699EFEEA13FDF3A47C9A2DFF37531C7D19B7B550F6218F93DA1C1D1409 - 1394CA75918F539CF7659C5A4ACA6B716AE578DCD6F675F97FAB3F77F99B8ED9 - 15000040ABD5ABFDB7F746B5A43CCD0D6BE37E2E5AFED9FCBF935A398E16CA38 - EF431E87724CC745920435E5DAA88DD35CDEB7B59494E7F1DA44BD3E6E6B6D9F - CBE7D7FE37F65D7C7E73C9371C6BCE7BF57734BBCF796D6F0E0080AE7AE9C54F - 37CF7CE1F79A47FFEAF6E6B9C79FEECD94C978F4655C6B1B391E73E57F63540B - 799FE264D4185612236853AE8FB671DE97716A29112FC7B53E6FB5B971E7CB38 - 8D77ACDC2270F0EB8F35E75E7C42310000A02322E97FFEF1F737A73E71FB608B - 7F24C92901AFF5655CB6B663E57CDBBF9BCFD75A28E3BC4F468D61452444304A - B94EF2718A6BFDA85626E6699CF7E57CDBB89CAF7DBE3CD69FBBE8CA4B9B575E - 7343B3E7826F769B0000C09289EDFDA79FFA58F3E5FBFFB479E2A1786F7F24C7 - D16A8979EA87C56D73C33E93F7B538A43ECD470B6D7DC8E3508E618D4880601C - E55A691BE77D19B7B53229AFF5A9E5E3F2583E57FBDCB0BEDFE236818BBFFE50 - 73DEAB8E36CD9E6FF60041008005130FF26B4E7FAC79E68B77348F7FE2EEC1F6 - FE488C532B13F25A3F2C1EF758F9997C7E580B659CF7C9A831AC13490F8CABB6 - 5EF2B914D7FAD4423E8E9627E1B538EF87C5F9B8F699617DDE56E72EBAF2D5CD - 05AF39D49C7BE13737CDDE6F5210000098332B09FF0B7FD13CFFE4C79AA73E7B - 77F3C443696B7FB45AC29D27E76DFDB0381FD73E53EB532BC7D1426D2EE4C793 - 3C4E6A73B04E243930A972DDB48DF3BE8CF3B9E149F8FA643DFACDCC453F6EBC - B6A582C039E7BFB6D973DE377B7E0000C08CC57DFCA79FF958F3E2D39FAE24FC - 65CB13EE5171DEB7CDD5E66B7D19E77321F5693E9471DE27A3C630542435B011 - B5B553CEA5C439C9C7291ED56A89F9247D8ADBC6A3E251AD695E75FDA166FF2B - 5FD7ECD9F7BA66D739AF6A76EFFBA69579000036E7A5E7FEA239F3E2179BD3CF - 7DAA79F6CB9F6ABE78E7DD832391F88ED3DA12F2326E1BE77DDB67F2CF95F1A8 - 16F23894E3508E436D0E86EA2730B071E51A6A1B0FEBC769E326EEA3C6B5BE8C - 87CD952DAC9F8B9D027B0FBEBA79C5D77C73B363D779CD9E735FD79CD9F1356E - 21000028C416FE5D67BFD49C7EFE53CDD933CF345FF9D2C79A174E7D6170653F - A48438B550CE95AD9684D792F4B24FF1A871DE97F3E3B490C7219FCF8D1AC3D8 - 5202039B515B47E55C1AD7FAD4423E6E6B65625E4BE4CB7ED4B1D4CACF87DAE7 - 423A5E3B56C6ABFD4A71E09257F57E77EF58291084952241DC4EB0B3FF99333B - 5EDBEC3DF7BC95180060D1A4A47EC5CB679BD32F7E7A25B90F91E0373BCE362F - 3CFAC522C92FFB32CEE722D90EE5B1349F27E3B5C43CCD95FDB8C7CA789C16CA - B8D627E538D4E6606C2931816928D7536D7DC55C3E9F8F6BF1A85626E76DE37C - BE2DAE8DF316C742EA6B9F8916CA78589F94E3509B03009867E324AE693CAC2F - E3B28548C2535FFB4CB4F2585B129FE2B6E3C3E6DA5A1816E77D528E436D0E26 - 26B960DAC64962D3389F8F389F2FE37C6E54923E6CAE3C3E6A3C490BB571EA53 - 1CCA7152CED53E030030CFC64D68F3F97C9CF7E5FC465A99B00F1B8FFA6CD9E2 - 7828E7435B1CF2F9DCA8316C8AE482AD3249729BCF479CCFD7E248D2439A4B6D - 58F25E3BD6361786FD5B650BC3E6C2A83E37EE1C00C03CA925ABC3E686F5653C - 6CAEADA5E4BC96C44F32176AC7423A9ECFB5C5219FCF95E3509B834D9154B0D5 - C64966D3389F8FB89C4F73B5F1386D9CE47E920240183517CAF9A43C9EABCDE5 - 461D0700D86AA312D461496D7E2CE2723ECDD5C66D73651B96BCA736CE67DA5A - A88D539FE2501E4FCA71A8CDC1544822989572AD0D4B7AF36311D7C669AE1CA7 - 043E9FAFB53CD14F7DED73B5166AF3D1C2B038EF436D2ED7360F0030AFDA12D8 - 5A125CCE453F2C2E5BA8CDD75A9EECA7BEF6B9BC85F4F972BE1C87DA38EF73E5 - 5CED333055920B66A9B6DE86CDE5C7CAB9E887C5650BE3160746B530C9DCB03E - B4C56DC6F90C00C02C8C93B4E69FA9C5C3FABC8571E6266DA196E4E72D0C8BF3 - 3ED4E69271E760EA24126C87DABA1B36971F2BE7A26F9BAB8DD3DCA86240A8CD - 470BC3E6425B1CF2F9A42D06005864B5A438A4B89CCBE787C5C3E6520BB5F968 - A12DE90F6DE3D0D687DA5C32EE1C6C198906DBA9B6FE86CD95C7629CCFE5E351 - F1B4E7C23871C8E773A3C600008BA24C6CDBC6F97CC4F9FCB8F1B4E7425B1C6A - E3248F9371E760CB49309807B575386AAE160FEBC78D6B73213F56CE85322EFB - 1487F2786EDC390080793469029C1F8BB89CCFFB61716D2EE4C7CAB9302C1ED6 - 87DA5CAE36DFF65998098905F3A46D3D0E4B8ACB6331CEE7868DA719977DDBB1 - 509B4BC69D03009847E326BD692E3F56CE455F9B4BFDB4E3306A1CD2B89C0FB5 - B9D0360F3325B1601EB5ADCB51C9712D2EE7DAC6B5BE2D2EFB61C7F23ED4E692 - 72AEF619008045D09634E7D25C7EAC9CABF5E31EAB1D4F7D8A436D9CF7A12D4E - 6A73A16D1EB685048379D6B63EC799AFC5C3E66A7D8A433E1ED58788CB71DE27 - A3C600008BAE4C82DBC6F97CC4E578549FE2908F47F561D85CC8E3DCA4F3B0AD - 241B2C8AB6B53A6ABE3C5E9B1F676E541FC6F94CA87D4DCDB0630000F36C5802 - 3C2CB14EE3B63E8CFA4CD98771E742DB7C32E93CCC0D09068BA66DCD8E335F7E - 268DC7999FC65CC8E364DC39008045524B8847CDD5E269CD8551F3A13C964C3A - 0F734792C1226B5BBFE3CEB78D3733DF168761C772C38E01002C9261C9F1B0A4 - BBED588ADB3E3FE97C528E9349E761AE493458061B4DA6F363B5CFA5B9498EE5 - E3615F176AC7C7B1D1AF030098B68D26C2F9D7D5FE8D61C7D378D8D70D3B166A - C7938D1E83B9279160D90C5BD3931CAB7D369FDBECF1A4360700B0CC4625E749 - 3EB7D9E3A1F69964A3C760A1483E5866C3D6F7A8B55F1E6FFBFC463F17DA3E0B - 00B0ECC649D893727EB39F4B861D1FF5B5B090242074C5A8B5BE91E3C3BE66D2 - CFB7D9C8D700006CA78D24CFB5AF9934411FF5DFDDEC715878920BBA689C75BF - 99CF4CEBDF07005866E324DC6D9FD9CCD7E624FD74CAAE410F5D36EB845DF20F - 00D0372A019F244197F0C3080A00B0DEB809BA441E006073369A908FFB75127E - C8486060B449CF13E71500C0744C9AC04BF86108890A6CCC66CE1DE71D0040DF - 661276C93E4C482202D3E59C0200982E893E4C89640566CB390700B096041F00 - 0000000000000000000000000000000000000000000000000000000000000000 + 7DEA53A25FB6DD2B7D3CE5FFFCCB7F7D65BB1200003045BDBFB1CF7DD57FD75C + 74D5E79A273EFEB1DE44FC8D1EF2BFDDD35C528E4BA33E3FEAEB595091C4B17C + 869DC011A7718ACB9692FE5A5B5B04B8FE2D3FD79C73FEFFD88B010080ADB27B + DF89E6C0EBAF6E4EDDFB1F0733E96FF79AB6F95CF999516396801FEAF21976E2 + 469CC629CE5B24F8A9CFE348F6D35C7F7CF1575FDC5CF9E6DF6E76ECBABE3706 + 000066E1EC998F358F7CE87B9A273F13AF0A2C6F0718E74D01790B791CF23894 + 6316981D00CB2512F65C3E8E388D539C5A4AECF3B89FE8AF4DFEFBE3B8DFFFC0 + 37FE76B373D76B7B630000605676ECBCB439FFCABFDDECBBE0BF344F3D722A66 + FA0756A4BFEF4B6DF3A19C1F35668129002C8F61276AC4699CE2D422B1CFE35A + 4B85807EF21F0FFBDBB9E7D2DE18000098B578DDF6B9FBFE5673EEC5B70F8A00 + 21FE9E1FA5ED33E5FCA8310B4A0160390C3B41234EE314A716C97DEADBDA6AF2 + FFB57FD3C3FE0000602E0C1E0E78E1958F364F7C227F38609B74BCED73E5FCA8 + 310B480160F10D3B31234EE314A716C97DD9E76D35F18F7124FFFB2EF9D95E0C + 0000CC8B3DFB4E0C8A00F7F646F1777D487D69DCE3C9A8310B460160B10D3B21 + 234EE314A79627FDA9CF5B9EFCF79FF4BFF7024FFA07008079144580F56F0868 + 938EB57DA69C1F35668128002CAE612762C4699CE2D4F2A43FF5B5C4BF3FBEFE + 2DFFBCD9BDF73B7A31000030AF76EEBEBE39F0FAAB2A4580D4E7861D0BE5FCA8 + 310B42016071E5275D19A7718A53CB93FED4A7B69AF4A75EF20F00008B63B645 + 00169002C062CA4FBE324EE314A716497DD9A726F90700806530BB2240DBD730 + C71400164FDB4917711AA738B548EACB3EB53CF98FB65BF20F00000B6CB508F0 + BEC14C12B94029CDD58E85723E1FB77D0D734A0160B1B49D6C11A7718A53CB93 + FED4A75626FF71E5FF9D927F00005870EB770224911394D25CED5828E7F371DB + D7308714001647DB4916711AA738B53CE94F7D6A927F000058668A0014140016 + 43DBC996F7B5564BFC53D29F7AC93F00002CABC98A00E368FBBA8DFE7BCC9002 + C062C84FA614E77DAD45829FFABC49FE0100A04B262F02B4CD27E9F8A8CF3167 + 1400E65F7E529571DE4224F6699C27FD794B897FC4BB9B6BBFFD479B73F67D7F + 2F060000965514012E7EDDCEE6F1FBFE4B6F74B6D7520E318E619FCFE727F937 + D9060A00F3ADED648A388D23914F7D9A4FC97ED9F2E47F57F3B57FF3BB9A732F + 7A7B2F06000096DDEE73DED45C78E5E79A273EF1B1C14C9E630C139F4B45805A + 31201F8FFB6FB20D1400E657DB4914711AA73812FA3CAEB5F5C9FFBE4B7EB617 + 0300005DB167DF894D160192F2EBF2F1B8FF2633A600309FDA4EA6E8CB38B594 + E8E7714AF853DC6F97BFF91B9A0B5FF3FFE94DEFED8D0100802ED973CE9B9BDD + E77FA079E691538399522DD1CFE79274AC66D831B68902C07CCA4F9614E77DD9 + CAC43F4FFA53DF6FAFF986AB9B83D7FE6E2FBCA0370600003A67E7DE66FF457F + AB9729FC71F3E52F3E33981C25F28D36E9D8B0CF30071400E64F7ED29471AD45 + 829FFAB2AD2D005C74CDAB9ACBBEF9D79A1DBBAEE88D010080CE8A22C0A56F6A + 5E7CE68F9B179F7A7130394AE41DA3E49F19E7F3CC502487CC8FB69325E234CE + FBB6B63EF98F76C5B7FCB35EF27F7D2F060000BA2E7283C811F29C616D2E51CB + 35520B799FE2D016B3CDE207CBFCA89D28D197717E32465CB6FCE4DDBDD25FFB + 77DED6ECD9FFDFF662000080BE9DBB5FDB5CFCDA9DCDE3F7FF596F14F945ED5E + FF9AF2B33166CE2900CC8FFC844971DE97AD4CFAF3960A00FDF635C76F6DF65F + F28F7B310000C05ABBCFF9D6E6BCAFBABF79F2D39F1ACC8CA3AD5010B94ADE87 + 3C661B2900CC87B69323E25A8B243FF579D29F27FF11EF6EAE7AD33734175EF1 + 4BBDA127FE03000075E7ECBBA5D97BDE079AA73F1B6F0688E43EF28D5C99F097 + C76BF2CF8CF379B69802C07C4827437982A47124F3A98FB9E8CB561600763517 + 5DFDAAE6C037FC52B373B787FE01000043ECDCDBECBEE048737AA2870226A960 + 502B1C9463B69102C0F6CB4F8814475FC691DCE771DE52D29FC7BB9BD7FE8DFF + B5D9BDF7E65E0C000030DCCE5D079BF35EFD55CDA98FBDAF37AA6DF1AFCD85C8 + 51F26331AE699B67461400B6577E029471AD95897F6A29E95F6D5F7BDB5B9ABD + 17FE482F06000018CFCEDDD737175EF1B9E6894FDC379819475B6120895C26C9 + 63664C01607BA5C55F9E10691CC97D1AA7B84CFC53BFDA2EFBD66F6C2EBAECE7 + 7B87DCF70F00004C66CFDE3735BBF6DFD17CF9B38F0D664A65C29FF297248E97 + 73E5986D10C923DBA37602C45C9ACFFBB2E54580BCF50B00177FF5FFD6EB2EE8 + C500000013EAE5122B39C5572E32D6728F68B55C25E47D8A73B53966207E98CC + 5EBEE0CBB8D66A275B7E32C6BBFEFBE3D77FFBFFDCEC39F7782F060000D89878 + 1EC0AB5E7751F3F87DB70F66427EE5BFB6EDDFAD00734E01607BD4167EF4298E + A43E8D539C27FEA95F1B5FFD7F3BDA9C77D0FBFE010080CDDB75CEA1E6DC4BFE + BC79EAC1CF0E664625FD299F49E25839C7368AE491D9CA4F8014B7CD952D7E5E + A94FAD5F04B8F0AA5735E75F1EDB74000000A623728CC835F2DC63B5E5394AD9 + 42EAC3B03966247E586C8F72B1C7386F21C5E509B6BE5DF6CD3FD2ECDAE97DFF + 0000C0F4448E11B9462D07E9B7325F8916529CCF25E59819890A0EB3932FF414 + E727447ED29427D3DAEDFEAB6DF760EBFF3FEAC5000000D3D5BF15E0C3835B01 + DAEEF3DFE8AD006DF36C814828998D7C61D716799A8BBE8CCB62C06ABBF0AA8B + 9BF32FFFA7BD180000606B44CE11B9472D27599BB3440B655CCAE76AC7D902F1 + 4362FBA493226F21FADA0955B65DB6FE0300005B6EF55680B433B96CB51C2644 + 5F36B649FC60D87AF9224F716DF1A7B9BCE52751DE7AC9FFB77E7D73CE79FF7D + 2F060000D85A917B440ED25E048856CB6972F95C7EACFC1C5B207E40CC4E6D51 + A71360584B27527E62ED6C2EFE6A5BFF010080D9B9E8EA9FEAFDCFB579C9DA9C + 65542BD5E6D82251B9616BE50B3AC5F9E24F7179F29455B518AFB6AFFD5B3FD0 + ECDDFF777B310000C06CECDA7D4573E1355F6E9E78E0E46026C443FE524BF238 + E4E3940B95DAE69992482C998DDA628EB9BC857C9C170056DB8557BEAAD977FE + FFB317030000CC56E4229193D472957ECB739A908FD35CAE36C716881F0E5BA7 + 6D71A7F914A7563B69F2B97EBBEC8DBDE47FD705BD18000060C67AB9C84A4E52 + C95586E736A9853CCED5E69892F861B0F5862DECB4F0CB969F30ABEDABAEBFDA + 83FF0000806D153949E426B59CA5DF6A394EB490FA5C6D8E298B1F0C5BA36D51 + E78BBE8C53CB4F9A14F7DB255FEFC17F0000C0F6EBE7266BF395F5F94CDE425B + 9CABCD3105F143616B0D5BD069C1E72D3F51D289D36F57DDF2E666CFDE6FE9C5 + 000000DB2B7293C851CABCA59EDBE42DA43E579B638AE207C2F4B52DE67CB197 + 71DECA93A71F9FFF9AFFA9D7030000CC877E8EB23E77591D972DB4C5B9DA1C9B + 143F14B6CEB0859C167ADECA9364F5E479DDADDFD9ECDE735D2F060000980F91 + A344AE92E72EEB739A7C9C5A487DAE36C794C40F83E96A5BC4F9222FE368E9C4 + 4827CDDAB6EF12AFFD030000E64F3F57A9E7316B739DD4425B9CABCDB109F183 + 606B0C5BC06981A7969F18EBDBEB6EFD8E66C7CECB7B310000C07C895C257296 + 5A2ED36F79CE93B790FA5C6D8E29881F02D3D3B678F3C55DC66D6DF58471F51F + 00009867EB7701D4729CBC85B638579B6383E207C3F40D5BB86961A7964E8EFC + 64596DAEFE030000F3CE2E8085103F00A6A36DD1E68BBA8CDBDAEA49E2EA3F00 + 00B008FAB9CBDA7C66780B6D71AE36C70628004CDFB0059B16746AE9A44827C8 + DAE6EA3F0000B028EC02987BF1CD67F3DA166BBE98CBB8ADAD9E20AEFE030000 + 8BC4B300E65AFC40D85AE5422E5B7E72ACB6AB6E7E93ABFF0000C042891C2672 + 995A8ED36FB59C285A483D5B247E004C4FBE7087C56D6DF5C438EFD5FF43AF07 + 0000582CFD5C6635B7A9E73E790BC362A6247E186CCEB005991F4B8B38B57422 + E42746BF5DF92DD7377BF67E4B2F060000582C91CB444E53CB75D6E642794BF2 + B834EC1863886F3CD3316AA1D65ABEF057E3F3AFFA7BBD1E00006031F5739AE1 + 79CFFAD666D83126A000B039B585982FE0BC8514978B3E8D7736175E7951B367 + DFDFE9C50000008B29729AC86DF25CA79E03450BF9B1BC956A738C29BEE96CAD + B470DB167CDEEF6C5E7D285E9B010000B0D8FAB94D3FCFA9E740A9E563B6507C + A3D9BCB450F3455B5BC0692EB5FC04E8B7BD177E5FAF070000586CFDDC6635D7 + 599B03E52D97CF95319B14DF7C3666D8022C176C5BCB4F841DCD55377FAB57FF + 0100004BA1FF4AC06F8D68D0D6E63FED2DA4BE66D831865000D8BCDAE22B176E + 6D9C2FFCFE8970DEA57FB7D70300002C877E8E5326FE791C525C8E4BB5392610 + DF78A6232DD27C51E673D1D2422F17FFCEE6822B3CFC0F0000582E91E344AE93 + F29EE1B9516A496D8E4D886F36931B6701E68B356FE5A2EFB7AFFAFABFD1EB01 + 0000964B3FD759CD7DEAB951D94619E73314E21BCEC6A545972FD23C4ED25CDE + D62EF6BDAFF2F03F000060F9F4739DF65C68B5E5F2B93266831400A6AB5CA06D + 2D2DF8E87736977EFD55CDAEDDAFEFC5000000CB25729DC87952FEB336271AD6 + 42EA9982F8A633997117606DE1D6DBC557FFF55E0F0000B09CFA394F3D1FEAB7 + 508E4719F7730C28006C5CB948431E2769AE6CA9FAB5B3D973E1B7F77A000080 + E5D4CF795673A07A8E142D97CF95311B10DF78A6A35C986D6DED82BFF4EBAFB4 + FD1F0000586AFDDB00AEEC45F5BCA8BD85D4B3490A00931977E1D5166CB47C81 + F717FCC5D71CEFF5000000CBAD9FFB94897F1E8714A7F128E37E8E9EF86633B9 + 7271863C4E629C1674BEB057DB9E0BBCFB1F0000587EFDDC677D4EB43E67CAA5 + CF843266420A00D3512EC8BC85BC8FEF797F615F729DEDFF0000403744EE1339 + 509917F5E57DD942EAD9040580F18DBBE06A0B355A5ADCABE303AFB5FD1F0000 + E88E7E0EB43E375A8D437E6C1CE37EAEF3140026575B5CB5C599E6DADBEEFDDF + D2EB010000BAA19F03D5F3A3B52D579B0BB539865000D8B8B408F34597CFD5DA + DA4AD7EEBD7FADD703000074433F076ACF91EA2DA9CD31010580E9C917635A90 + ED735FFD5FD9FE0F0000744F3F175A9F238D9E63931400C6B39105572ED868F1 + FDEEB73D177D6BAF070000E8967E2EB49A1BD573A7496DE46B3A27BED98C2F2D + AA7C51A6B8366E6F7BCE7D63AF070000E8967E2E54CF93D6B7D0360EA9670C0A + 009B532EBA5ABFBE5D70F9855EFF0700007452E4429113D572A57E0BA37A3640 + 01607A6221A616F27E6D3B709DEDFF00004077F573A2F5B9525FDEE7F36C9202 + C068C3165BDB624CF3F5B6E702AFFF030000BAAB9F13D5F3A5D5566A9B4F861D + A34701607C6931D5165D9A1BA7ED74FF3F0000D069FD9C28F2D15ACED4D672F9 + 5C798C160A001B575B6C6911E62DAC1DBBFF1F0000E8B2D59C686DAEB4769CCF + 8714E7734C4001603ACA8599C45C5ED5DAD95C79CCFDFF000000FDDC686DBED4 + EF4BE9389BA400307D6971E68B7435DE7F89FBFF0100005673A35AEE94CF3125 + 0A00C30D5B70E5824CE3616D67B36BAFEDFF000000FDDC28DF0130AC25E5B834 + EC58E729008C272DA2DA62CBE76A9F4B717FBC6B8F02000000C06A6EB436675A + 1FA73EC549ED730CA100B031B54556CE45BFB69D7FD945CD8E9D97F762000080 + 6E8BDC2872A4326FEAB750F6A136C7981400362F165EBE08DBC63B9A8B5FEBEA + 3F000040D2CF91D6E64D7D6D6336410160E3CAC5575B9C6BDBDE0BAFEBF50000 + 00847E8E54CF9FFAF23829C78C4901A0DDB045552EC6FCB3B563FDB6679F1D00 + 000000C9CE73E216E9F5B9535FEAC3B063A561C73A4D0160B47C818DB3C8DA3E + B7A3D9B9FB8A410C0000C09EBD69074029CFAB6AC793713F478F02C0E46A8BAB + 9C8B7E7DDBB9F3DA5E0F000040E8E748F5FCA9AFEC436D8E3128006C4E2CB87C + F1B58DE30D0017343B765D1007000000E8891C2972A5327FEA6B1BB3410A00D3 + 575FA417BFD603000100004AFD5C697D0EB53A664A140036A65C88E5025DDFEF + DA7DE12006000020E9E74AEDB9D46ACB9563C6A00050376C31A5636911B67D76 + EDF1BD177A03000000406935575A9B43AD571E6FFB5C1876ACB3140086CB17D6 + 388B2B7D2EFF6C7FBC7377BCDE02000080B5F2670024699CE6F263A5713FD779 + 0A0093A92DAA722EEF57630500000080F5769F1B3B00EA7954BD0FB539465000 + D8B858686D8B2D1D5BFDCC8E57BC01000000A0DDFA3C6ABD61C7184101603A46 + 2FD29DE7C6FB2D010000C8ED3AE79B7BFFB33D971A9E6B31010580E9CA1767DE + 00000018AE964B45634A140026572EC07261AE3F7EF0EBAE18C400000094FA39 + 532DD74A7D6AB972CC080A009BD3B6E0D62ED0732FF5004000008036AB39D3DA + 5C6ABDB679C6A000B0DEB005958EB52DC8FAD79E1DFA6F020000745B7BCED496 + 77A5F961B9D6B0639DA400B079C3165ECCED6876EF39BF3F040000609D7ECED4 + CF9FD61B967331010580D1DA16612E3F9E3E9FE676347B2FB86E1003000050EA + E74CAB39D4DA9C2AE4714DF9792A1400DA958BA7B698467DC60204000018DF46 + 722C79D898140026971653DBA28AF9D400000098CCA89C2ACDCBB926A400B031 + E5421BB638010000D8B85ABE25FFDA000580CD1BB5F02C4C000080D1E4565B4C + 01606BF517E8AE735EBFD203000050B1E7F24120C9DF420A00D3952FD6D578C7 + 2EAF0104000068B37BF7658328D4F32A364D01607AD2C28CDE82050000984C99 + 47A5B19C6A4A1400000000A00314003627AF4AD5A8540100008C6F547E25C7DA + 040500000000E8000580C9B4559BD27C7E5C650A00006072B5BCAA2DBF92774D + 400160FA6201168BF0AC45090000D06A5DCE54C9ABD82C0500000000E8000500 + 000000E8000500000000E8000500000000E80005808D1BF781141E5C01000030 + 9A1C6B8B29000000004007280000000040072800000000400728000000004007 + 2800000000400728000000004007280000000040072800000000400728000000 + 0040072800000000400728000000004007280000000040072800000000400728 + 0000000040072800000000400728000000004007280000000040072800000000 + 4007280000000040072800000000400728000000004007280000000040072800 + 0000004007280000000040072800000000400728000000004007280000000040 + 0728000000004007280000000040072800000000400728000000004007280000 + 0000400728000000004007280000000040072800000000400728000000004007 + 2800000000400728000000004007280000000040072800000000400728000000 + 0040072800000000400728000000004007280000000040072800000000400728 + 0000000040072800000000400728000000004007280000000040072800000000 + 4007280000000040072800000000400728000000004007EC18F4AC4ADF93BC4F + 2D0A26A9DF95F5A9EDAEB43DCD1BDEF2ABCDAEBD37F4628056476FBAA53978F0 + E060C42C3CF7DC73CD03F77DAC79F8A107073300C0B638F3E25DCDBDBFFB83BD + E874AFBD5C6967B2F64AD69F1D8CA34F2D943D3D29C96555FA9EE47D6A0A00C0 + D4EDDFBFBFF9B19F7C7B73D5D5D70C6698B52802FCD22FFEFC4A410000D8060A + 003311092C00DBE8BBBFE7FB24FFDBECDAEBAE6FFEDE5B7F78300200584E0A00 + 00DBECD00DDF3C88D84E877B3F87D88D0100B0AC140000B699A4737E1CBAE18D + 83080060F9280000C0C0E12376630000CB4B01000006E2368003072F1D8C0000 + 968B02000064A2080000B08C1400002073F4D8CD83080060B928000040265EC9 + E8360000601929000040E1F8895B071100C0F250000080C261AF030400969002 + 00C0368AEDE6CC9F03070FFAD900004B470100601BEDDBBF7F10316F8E9FB86D + 1001002C07050000A838E4758000C092510000D8469E363FBFF6EFDFDF1C5604 + 000096880200C0363A78F0E020621E1D3EE2618000C0F25000008016476FBA79 + 65270000C032500000D846D7BEFEFA41C4BC3AE4958000C09250000080210E1F + F11C000060392800006CA32BBD6B7EEEC583003DAC110058060A0000DBC8FDE5 + 8BC1DB00008065A00000B04DAEBDCEFDFF8BE2E8B19B071100C0E2520000D826 + AEFE2F8EABAEBEC66D0000C0C2530000D8269154B2386EBCC92E000060B12900 + 006C932BAF52005824478FDD3288000016930200C0363970F0E0206211C4CFCB + AE0D0060912900006C83B8FF5F32B9783C0C100058640A0000DBE0D00D6F1C44 + 2C92A337B90D0000585C0A0000DBE0F011EF955F44B173E3F00D7E7600C06252 + 0000983149E4623B7CC4EE0D006031290000CC98EDFF8BEDD00DDFBC52C40100 + 58340A00003366FBFF628BE45F11070058440A00003364FBFF7250C401001691 + 0200C00CB972BC1CA288E336000060D1280000CC902BC7CBC32B01018045A300 + 003043B6FF2F8FA3C76E1E4400008B410100604624FFCBE5AAABAF690E1CBC74 + 300200987F0A000033E2FDF1CB4751070058240A00003312EF8F67B91C3F71DB + 200200987F0A000033E0A9F1CBE9C0C1832BB70200002C0205008019B0FD7F79 + 79182000B028140000B6585CF93F7A932471591DBE41710700580C0A00005BEC + 900471A9C56D001E0608002C020500802D76F888E470D9B9C5030058040A0000 + 5B28B6FFBB3ABCFCBCE1010058040A00005BC8F6FF6EE83FE7E196C10800603E + 2900006CA1E3276E1D442C3BB77A0000F34E0100608B1C3878A977C47748DCEA + 113B010000E6950200C01671EF7FF7B8E5030098670A00005BE4E831EFFEEF1A + B77C0000F34C0100600BD8FEDF4DF1338F9F3D00C03C520000D80237DEE4EA7F + 57B9F5030098570A00005BE0E831AF84EBAAE3276E1B440000F345010060CAFA + DBC00F0E46744DFCECDDFE0100CC2305008029F3F03FAC0100601E2900004CD9 + 61AF82EB3C6B000098470A00005364FB3F21D6C0B5D75D3F180100CC07050080 + 29F20038921B3D08120098330A00005374C82BE018B016008079A300003025F1 + FEF7FDFBF70F46745DAC8558130000F3420100604A0E1FF1E037D63AEA360000 + 608E2800004C892DDF94EC0A0100E6890200C0141CBDE916891E5587BC121000 + 98130A00005370F888ABFFD4DD78ECE6410400B0BD14000036A9EB0F7B7BEEB9 + E79A3B3F70FB6044E9DAEBAE6F0E1CBC74300200D83E0A00009BD4F52DDE0FDC + F7B1E67DEF7DF760448DB7010000F34001006093BABEFDFF91871F6C1E7EE8C1 + 959D00D41D751B0000300714000036C1BBDE9BE6FEFB3EB6D2DF73D747567AD6 + BBEAEA6B561A00C076520000D88478FA7FD7C52D00E1FEFBFB3D7576010000DB + 4D01006013BA9ED4C5D6FFE49EBB3E3C88A839EC758000C036530000D8A078B2 + 7BD7B7753FF2D04383A8FF3680BC20C05A070E1E5C79230000C076510000D820 + 4F765FBFEDFF9EBB3D0760981B8FB9650400D83E0A00001BE49EEED801B0F68A + FF490F021CEA90A21100B08D14000036C0F6FFFA967FAF031CCE5B230080EDA4 + 0000B001C74FDC3A88BA2B3DFDBFE47580C31D3EE2618000C0F6500000D8004F + 746F9A471EAE3FF0CFEB00873B7AD3CD2B3B010000664D01006042B1F53F9EE8 + DE75F7B7EC0068DB19C0AA430A4800C036500000989087FFF5B525FA8F9F7ACC + EB0047387CC473000080D95300009890EDFFA3AFF2DB05305C3C08301E240900 + 304B0A000013E8276EB6FF3F30E23EFF93777B10E028DE060000CC9A0200C004 + 3CC1BDAFEDFEFF247600781DE0706E250100664D01006002875CB55D31CE167F + B7010CD77F98A4DB000080D9D935E859B5A3D2D75A144F523FACED6A2E7DC37F + D3ECDC7D592F0616586CD9BEF1A65B06A3EE8AC4FECE3B6E1F8CDA5D74F1C5CD + D77FE3370D46B4F9ABBFFCE8200298BD782DE9D7BCEE6B570A92A94581F25BDE + 74B479FD75D7AF6931FFF2E9D3CDD34F3D35F86A98A2B3671E6D1EBBF7DFF5A2 + 575ADAD9961652CF0891C0B256FA9EE47D6A91D0A73E8A27A94F6D77A5ED69DE + F0965F6D76EDBDA117030BECFBDFFAC32BEF70EFBA7FFF07BFD7FCE1EFFFDE60 + D42EFE88FC9977FEFC6044CDE3A74E353FF5133F3A18014C5F24EDFB7A497E24 + F0FBF6ED5F19876B7BE38D3A79D7479ADF7CD72FBBD58BE93AF3E25DCDBDBFFB + 83BDE874AFBD5C6967B2160581D447F25F160842D9D393925C56A5EF49DEA7A6 + 00001D155748DEF1CE5F58E9BBEEE77EF61D636FEFFF99DEF7CC431387FB273F + FD76AF4D04A62292FA48F0AFBAEA9AE6CAABAFFE4AB2BF15A208F04BBFA8C8CB + 142900CC4424B0008C70E886374AFE0726B9B7FFE45D1F1E44B4397EE2B64104 + 3099B835EDBBBFE77B9B1FFFC9B737BFFCEBBFB5D2C73876AB6D65F21FE2BFBD + D5FF0D60FA140000C670F88887FF85491FEC37EA758178B02430BEB8B5EAF8B7 + DDF69584FFEFFFC8DB56C69BD9CEBF19DBF5DF05362E6D736755FA9EE47D6A6E + 01800E8A2BFF3FFF2F7E6530EAB671EFFFCFC51FA90C17DB68633B2D24476FBA + A5B9D1AB22579E9371F2EE0F77FAFC88ABECF1DAD0C337BC71EE6EA9DAC8FF4F + 80566E01988994E4B22A7D4FF23E350500E8A0F843FCFBDFFA438351B76DE47E + F5B852E52AD170777EE0F6E637DEF5CB83115D175774631B37ABE2F7CE6FBEEB + 573AF3BC8CB8D21F5BECE316A1797E8E8A020053A500301391C0023084EDFF7D + F1B4E78DFCF17DF26E57B64789DB003C6382C47321D68BABE03FF6936F5FFA7B + CE23E98F6DFDF10695280279882A306D0A000043A4AB304C7EFF7FB2D1AFEB92 + 48FEE3419310247D75719E441160D98A65F17FCFDFFEF6EF58796B4A24FFFE7F + 0EB09514000086F087D8AA8D5EC98F5D03711F2FC3D96902A345B2FCDDDFF37D + 83D1628B02F3F7BFF587579E31F3B7FECE7728FC0033A1000030443C7889BECD + 5CC9B70B60B428362DDB954D36C6F9325CBCE26E91CF9594F8C736FFF8BF0560 + 961400005AC41F69DE71DC1757F01F3FF5D86034B9788A37A3C5032781D1E241 + 898B46E20FCC0305008016B6FFAF3A79D7E612785734C763C709E181FB9D2FA3 + FCF5057A5062EC5690F803F3420100A0852771AFDA6C42126F105004182D769C + C4554260B848AAE7BD481BFF3BC6C3FDDEF1CE5F90F80373430100A0A29F8879 + 205372F2AECDBFCACFEB00C773A344A1F3EE572C1BCBE123F3FBE68CB89D2712 + FF78B89F677B00F3440100A0C256EC55D348FE831D00E3397ACC7300601C87E6 + 7007C0B5D75DDFFCC37FFC8EE6FBDFFA43127F602E290000541CF64EF6AF98D6 + FDC85E07389ED879E2E193DDE63C194F24D8F372AEC4FF2E719FFF8FFFE4DB9D + BFC05C53000028D8FEBFD6B4760004BB00C663074AB76DE68D1B5D1357DCB75B + BC91C07DFEC0A25000002848BE566DF6F57F25AF031C8FD701C278AE7DFDF615 + 00A2581CDBFDBFFB7BBED7767F606128000014245FAB36FBFABF921D00E38964 + C26B28BBCDB9329EEDDA6E1F4FF78FE4DF767F60D12800006422E9722567D59D + 77DC3E88A6235E0738CD5B0A96D93C3FE11CE645DCAE35CB5767A6ABFEF1747F + 8045A40000909174AD8A643D1EDC376DD37AA8E0B28B279C2B4675579C7F8CE7 + AAABAF1E445B2BEEF577D51F58740A000099797CADD476B9678BAED4DB01309E + 48FE0F791B45673DF2F0F48B6FCB6AAB13F23817E3E9FE71AF3FC0A253000018 + B0FD7FADAD7A605F3C54702B76162CA3C34714A460942BAFDABA0240FCFF8578 + C2FF3CBC6D00601A140000066CFF5FB5D5F7EA7BC0D97814A5BACB2D00E3DBAA + 1D0071C5FFEFFFC8DB9C83C052510000E8893FF0BCC379D55627E8D37EB8E032 + 731B4037D92533BE7810E034A52DFF71CF3FC0B2510000E89164AD75F2EEADBD + 4F3F929BC74F9D1A8C18E6F8895B0711D0665A5BF46337812DFFC032530000E8 + 71AFF55AF7DCB535F7FFE7DC06309E484866F99A335844D3D8A67FF4A65B569E + F26FCB3FB0CC140080CE8B3FF6E25E6BFAE2DEFF59DC7FBC550F195C46D667F7 + D8213399CD3E0720EEF7FFFEB7FED06004B0BC140080CEB3FD7FADADDEFE9FCC + AAD0B00C8E9F702F72D7C4DB3218DF81031BDB251305E078D09FFBFD81AE5000 + 003ACF3DD66BCD726BBEDB00C6130F39DBEA779DC322DBC8830023F9FFB19F7C + BB1D3640A72800009D16F7564BAC56F51FCE37BB2B8FB3DA6DB00C8E1EF3960A + 9896F8BD1FC9BFDFFF40D72800009DE6CACF5AB37E3DDF2C1E36B82C0EBB5505 + 5A4DF2D47EC93FD0650A0040A7B9AABA56DC973F4BF10C8059FF3717556C7156 + B0EA96D891C374A5E4DF93FE81AE5200003ACBF6FFB5E2A9E3DBF1E031B7018C + EFF011BB00BAE4790FC99C2AC93F800200D06137DEE4EA7FEEE4366DC7F720C0 + F11DB203005A0D2BE8C6EE19C93F800200D061478FDD328808B3BEFF3F895D07 + B63A8F279297A33759B750B3AF25B98FE43F5EF527F9075000003A2AAE146DE4 + B551CB2AEEC5DFCE247CBB8A0F8BE8F011BB00605CF1BBFEEFBDF58707230014 + 00804EF2F0BFB5EED9E607F17910E0F8E26AA62B99309A7BFE01D65300003AC9 + 2BD5D63A79F7F6BE8ECF6D00933964FDC23AF9330024FF00750A0040E7D8FEBF + DE3C5C81771BC0F88E9FB8751001494AF625FF00ED140080CE397EE2B6414498 + 97EDF7DE0630BE7E11EBD2C18865F5C0FDCE894945D2FFF7DEFA43927F80160A + 0040E77895DA5AF3F21EFEB805E0F153A706234689670100ABF6EDDBBF72E53F + BF150080B51400804EF100B5F5EEB96B7BEFFFCF9D9CA3FF5DE69D0759C25AC7 + BFED36C93FC0080A0040A71C3EE2E169B9B8EA1EAF009C179E0330BE4874243B + 00C0241400804EB1FD7FAD794BB8DD063019BB000080492800009D71F4A65B6C + FF2FCCE3FBF7DD06303EAFB3040026A1000074C6E123AEFEE7E24A7BBC7F7FDE + 78F2F9F8E27596D75E77FD600400309C0200D00971E5DF53D3D79AD72BEDB12B + 619E9E4B30EF6E3C76CB200200184E0100E88443B64AAF33CF0FDCBB670E6F4D + 98579E6B01008C4B0100E804DBFFD78A2BECF1C0BD7975F26ECF011897DD2D00 + C0B8140080A527415A6FDEAFB0CFE3C309E7D951B701000063500000965E3CFD + 9FB516E10ABB22C0F8A2C0E50D1700C0280A00C0D2F3AEF4F51621B93E79B702 + C0243CE762F9CCF36D3A002C26050060A91D38786973D5D5D70C468445B9B27E + CF9CBEA5605EDDA8D0B574BC0D038069530000969A7BFFD75B942BEB91FC3C70 + DFC7062346B9F6BAEB570A5E00006D140080A566FBFF7A8B7465DD6D009351F0 + 0200865100009696EDFFEBC53DC58BB4ADD8830027A3E005000CA300002CADE3 + 276E1D442477DE71FB205A0C8F9F7ACC83D02610052FB70100006D140080A575 + D853D1D759C42BEAF7B80D60220A5F00401B05006029F5AF841E1C8C088F9F3A + B572457DD1B80D60320A5F00401B05006029B9177ABD930BFA5ABDB805208A17 + 8C270A5F9E7DB11C9EF71A4000A64C0100584AAE82AEB768F7FFE716B578B15D + 8E9FB86D10B1C83CFF028069530000964EBC0ACDF6FFB5E20AFA2227135E0738 + 99435E070800542800004BE7F01157FF4B0FDCF7B141B498E27FFF457A7DE176 + DBBF7FFF4A210C0020A700002C1D573FD73B79F7E26FA1BFC7C30027A2100600 + 94140080A512573DE3EA27ABE2CAF9323C497F198A18B374F4A69B9D0B00C01A + 0A00C05271D573BD65B972EE7580933BE461980040460100581A71B5D3F6FFF5 + EEBF7FB1EFFFCF29024CE6F011E70300B04A0100581A71B5D396E7F5EE59A257 + E8791BC064FA6FC4B874300200BA4E0100581AAE76AE1757CC97E9E9F9CB54CC + 98156F030000120500602978ED59DDB25D315F96071ACED2D163370F2216D1C3 + 0F3D38880060F3140080A5E0616775F1FEFC65E33680C95C75F5356E035860CF + 2FD10E1E00B69F0200B0146CFF5F2FAE1C3E7EEAB1C16879B80D6072C74FDC3A + 8800802E530000165E5CDDB4FD7FBD3BEFB87D102D97B80DC0B6E8C91CB64306 + 00E8510000169EE4BF6E99EF955FD6E2C6563970F0E0CAAD0000D3B44C0F9985 + AE500000169E879CADB7ACDBFF93657CB6C156739E00D3E6A1ACB07814008085 + 16DBFF5DD95C6FD913E47E81E3D460C4388EDE74CB2002D8BCDF78D7AF2C75A1 + 1996D58E41CFAAF43DC9FBD4A26092FA5D599FDAEE4ADBD3BCE12DBFDAECDA7B + 432F06A6ECF8B7DDD67CF7F77CEF6044F24F7EFAED4B7F9F7CFCDCE3E7CFF87E + E9177FDE15BB05F3E33FF9F6E6DAEBAE1F8C607CF1FF03F2B7483C70FFC60AC3 + 070E5CBA721B515829BE3E7E6AE5F788E49FA93BF3E25DCDBDBFFB83BDE874AF + BD5C6967B2F64AD69FCDFAD442D9D393925C56A5EF49DEA7A6000073E667DEF9 + 0B5FF9C384BEB832FE533FF1A383D1F28A673FFCFD1F79DB60C438EEFCC0EDCD + 6FBCEB970723168102003571EFFD23BD647C25C97FBEFF60D4988BDFFF127316 + 9602C04CA4249755E97B92F7A92900C01C89ADFFFFF01FBF63302279DF7BDEDD + FCCE6FFFD660B4DC7EFE5FFC4AB37FFFFEC18851224178FB4FFCA807772D1005 + 00E296AE48F01F7EF8A195E4DE3350585A0A003311092CC042F250B3BA8D6EF3 + 5C44FE109E4C144B0E792520CCAD48F4FB3B757E65E556AE1FFE81EF6D7EEE67 + DFB152D4BDF303EFF73B0FD8340500606179B7795D97FE403C79B7FBD92775F8 + 88D766C2BC88843F766DC5F339DEF63FFCD04AD21FB7E944B21FC700A64D0100 + 5848B1FDDFBDFFEB45F2DFA5EDDDF7DCF5E141C4B8E2D9096E9B80ED11F7E8C7 + 15FE3CE18FABFBF1503DB7E600B3A000002C24DBFFEBBA76453CFE60B6257672 + 5E0908B31357F2FFFD1FFCDE4AB21F0F688D2BFC127E60BB2800000B490253D7 + C564D86D0093534083AD15497F5CD9FFA99F78DB4AE2FF87BFFF7BB6F4037341 + 01005838B630D7C5D6D22EFE81E9BDF693EBDF4273E960044C43FC0ECE93FEB8 + B7DF2BF98079A300002C9CC3473CFCAFA6AB5BE1E30F6C57D62677E34D7601C0 + 66C536FE48F4D3F67E493F30EF1400808573E8064F31AF397977771F88778FDB + 002676F498DB6860A3A2E01AAFEA8B07F9C5557F454860512800000BC5F6FF76 + 5D7E189EDB0026176FD1885B0180F1C4D5FE78827F6CF18F77F3C7ABFA00168D + 0200B0506CFFAF8BE4BFCB4F948EAB6F71FF2D93F13040182DDDDBFFF6C113FC + 6DF10716990200B030E2CAFF51F72D5779127EEC02E8EE2D101BE56D1AD02E12 + FFD8E69FEEEDF7DA3E60192800000BE3D00DAEFEB7E9F2F6FFE4CE3B6E1F448C + 2B8A6A715B0DB02A4FFC6DF307968D0200B0300E1F91A8D4C41FAB1E40D5BF0D + C015BAC9B9AD06FA24FE40172800000BC195CA76B6BEAFBAC7C30027E6AD1A74 + 9DC41FE81205006021D8FEDFEE81FB6DFF4FBAFC2AC48DEA3F5BC3B300E81E89 + 3FD0450A00C042387EE2D641442EB6BC7B05DEAAF85EB80D60726EAFA14BE277 + C4BFFF83DF6BFEC94FFF94C41FE81C050060EE1D3878A9F795B7F0F0BFF5DC06 + 30B9B8BD267602C0B28B22E13FF9E9B7377FF8FBBFA758087492020030F7DCFB + DFCEEBFFD6731BC0C6B8CD866516DBFD7FEE67DFD1FCD22FFE7C2FF61E7FA0BB + 140080B977F49877FFB7B9C70300D7711BC0C6B8CD866575E7076E5FD9EE6FC7 + 1480020030E76CFF6FE7B577EDDC0630B938CFE27C836511BF1FE3217FBFF1AE + 5FF6BB1260400100986B37DEE4EA7F9B3BEFB87D1051721BC0C6B8DD86651109 + FFFFFEB3EFF0903F8082020030D78E1EF37AB2369EFEDFCE56DF8D397EE2B641 + 048B2B7647C583FEA207602D0500606EF5B7241F1C8CC8C51FB61E64D52EAEFE + 29904C2ECE37B7DCB0E87EF35DBFE2F723400B0500606E79F85F3B57B847BBF3 + 0E5B7F37C279C7A273E51FA09D020030B70E7B2D592BF7FF8FE66D001BE3BC03 + 80E5A50000CC25DBFFDBC5FBAC5DE11A8FB7014C2ECE3B0F030480E5A40000CC + 250F236B77D2BBFFC7E66D001B73F8885D0000B08C140080B974C815C85627EF + 76557B5C6E03D818E71F002C27050060EEC4F6E3FDFBF70F46E42299F500C0C9 + B80D607271FEB90D0000968F020030776C3F6E27999D9CDB0036E6E8B15B0611 + 00B02C140080B963FB713BC9ECE4DC06B03176E200C0F2510000E6CAD19B6E91 + 74B488243692592667E7C4C61CF24A4000582A0A00C05C397CC4D5FF3692D88D + B37362636E3C76F32002009681020030373C786C3849ECC6B90D6063AEBDEEFA + E6C0C14B07230060D129000073C376E376B6FF6F9E1D141BA3280700CB430100 + 981BB6FFB793BC6E9E1D141B73D46D0000B034140080B960FBFF7092D7CD7BE0 + BE8F0D222671D5D5D7AC340060F129000073219EFE4F9DEDFFD3E1FBB8717601 + 00C072500000E68204A39DEDFFD373F26EDFCB8D38ECF91C00B0141400806D17 + 4F19B7C5B89DEDFFD373CF5DBE971B71E0E0C195370200008B4D0100D876EEFD + 6F67DBFA74C5F7D3B30036E6C6636ED3018045A700006C3BDBFFDBD9FE3F7D6E + 03D898430A7500B0F01400806D65FBFF701FBCE3FD838869B1A36263BCA90300 + 169F0200B0AD8E9FB87510517AFCD429DBD5B7C0E3A71E5BF9DE32B9A36E0300 + 8085A600006C2B4F176F77D203EBB68CEFEDC6C40E80D80900002C26050060DB + C4D6FF78BA387577DE71FB2062DA3C0760E30E29DA01C0C2520000B68D87FFB5 + 8B2DEA0F3FF4E060C4B4C5AD15F146002677F888E70000C0A2DA31E85995BE27 + 799F5A144C52BF2BEB53DB5D697B9A37BCE5579B5D7B6FE8C540E667DEF90B76 + 00B4B8F303B77B00E016FBEEEFF95E0FA0DCA09FFA89B7AD3C4B81ADF7E33FF9 + F6E6DAEBAE1F8C18C70FFFC0F70E2260A19C79F1AEE6DEDFFDC15E74BAD75EAE + B433597B25EBCF667D6AA1ECE949492EABD2F724EF5353008029897B89FFFE8F + BC6D300216C9EFFCF66F35EF7BCFBB0723B69202C0E4140060412900CC4424B0 + 003377F888FB886151B97D070016930200B02D0E799F382CACFE033C2F1D8C00 + 8045A10000CC9C5789C1E23B7EE2D64104002C0A050060E66CFF87C577D8EB00 + 0160E1280000331557FE6DFF87C5176FF0F0160500582C0A00C04C1DBAE18DB6 + FFC392387EE2B64104002C02050060A60E1F71F51F9685DD3C00B05814008099 + 892BFFF10040603938A70160B12800003313DBFF81E5E2A19E00B03814008099 + B1FD1F96CFD19B6EF65C0F0058100A00C04C1C3878A9ADC2B0A4ECEE0180C5A0 + 0000CC84E41F9697DD3D00B01814008099387AECE641042C9B28F0C52E1F0060 + BE2900005B2E1283ABAEBE66300296915D3E0030FF1400802D273180E567970F + 00CC3F050060CB1D3F71DB20029655ECF2711B0000CC370500604BF593828383 + 11B0CC6EBCC92E000098670A00C096B22D18BAE3E8B15B061100308F1400802D + 75D8FBC1A13362B78F077E02C0FC520000B68CEDFFD03D76FD00C0FC520000B6 + 8C4400BAE7E84D6E03008079A500006C19890074CFFEFDFBBDFA1300E6940200 + B0252201884400E89EC3473CFB0300E6910200B0252400D05D87140001602E29 + 00005B221200A09B22F93FE40D20003077140080A9B3FD1F387C44111000E68D + 02003075B6FF030A8100307F140080A98A3FF88FDEE4F57F80378100C0BC5100 + 00A6CA7DBF4072F498622000CC13050060AADCF70B24575D7D4D73E0E0A58311 + 00B0DD140080A989EDFF71DF2F40E2770200CC0F0500606A6CFF074AC74FDC36 + 880080EDA600004CCDF113B70E2280BE03070FAEDC0A00006C3F0500602AE23E + 5F7FE403351E060800F3410100980AF7F9026D0EBB3D0800E68202003015AEF0 + 016DE23600454200D87E0A00C0A6D9FE0F8C72F8885D0000B0DD1400804DBBF1 + 2657FF81E10ED9010000DB4E0100D8B4A3C76E19440075FBF7EF6F8EDEE47705 + 006C270500605362EB7FDCDF0B30CAE123760100C07652000036C5C3FF8071C5 + 830063270000B03D1400804DF17A2F601287FCCE00806DA300006C98EDFFC0A4 + 8E9FB875100100B3A600006CD8F113B70D2280F1F40B87970E4600C02C290000 + 1BE6B55EC046C4B3000080D953000036C4C3BC808DB27B0800B6870200B02187 + 8F789017B031F1EC90B8150000982D050060436CFF0736C32B440160F6140080 + 891DBDE916DBFF814DF10A5100983D05006062878FB8FA0F6C4EDC0670ED75D7 + 0F4600C02C28000013892BFF9EE00D4CC38DC76E194400C02C280000133964DB + 2E30259E250200B3A500004CC4F67F605AEC280280D9520000C6E68F7560DA8E + BA0D000066460100185B3CFD1F609AA2A8E8AD2200301B0A00C0D8BCB71BD80A + 9E2D0200B3A100008CE5C0C14B9BABAEBE663002989E1B1517016026140080B1 + B8F71FD82AD75E77FD4A911100D85A0A00C0586CFF07B6922223006C3D050060 + 24DBFF81ADA6C808005B4F010018E9F8895B0711C0D68822A34223006C2D0500 + 60A4C39ED00DCC805D0000B0B5140080A1E28ADC818307072380ADA3D808005B + 4B010018CA15396056A2D8186F040000B686020030942B72C02CDD78EC964104 + 004C9B0200D02A5ECB65FB3F304B87BC0E1000B68C0200D0EAF01157FF81D9DA + BF7FFF4AF11100983E0500A0952B71C076507C0480ADA1000054C515B8B81207 + 306B476FBAD9EF1F00D8023B063DABD2F724EF538B8249EA77657D6ABB2B6D4F + F386B7FC6AB36BEF0DBD1816C6F7BFF58757FE0867B407EEFB58F3733FFB8EC1 + 882E8B27D8FFF84FBE7D3062337EE35DBFD2DCF981F70F46DD15EBC99B1126F3 + C33FF0BD83085828675EBCABB9F7777FB0179DEEB5972BED4CD65EC9FAB3599F + 5A287B7AEC0000D6892B6FB6FF8FEFE4DD1F1944745D14831E3F756A3062330E + 1FF13B0800A64D010058E7D00D6FB4FD760227EF520060D5C9BB3E3C88D88CFE + 5B482E1D8C008069500000D671E56D7C0F3FF460F3F8A9C70623689A3BEFB87D + 10B159DE060000D3A50000ACE1155C9391EC51EA1785DC06300D478F790E0900 + 4C930200B0466CFF677CB6FF53E33680E9B8EAEA6BDC06000053A40000AC61FB + FFF86CFFA78D9D21D373FCC4AD830800D82C0500E02BE24A9BEDFFE3BBC7D3FF + 69E13680E9396C5712004C8D0200F01592FFC9D8FECF306E03988E03070FAEDC + 0A00006C9E0200F0151EB835BEB8BA1B5779A1CDFBDEFB278388CD3A7EE2B641 + 04006C860200B022B6FFBBCA363E577719259E0FA148341D87EC4E0280A95000 + 0056D8FE3F190F79631CD6C974783D29004C870200B0C216DBF1D9FECFB83C27 + 627A0E1FF1304000D82C050060F0AEED838311A3D8FECFB8DC06303D711B40EC + 040000364E0100F0F0BF09D9D6CD24AC97E988E4FF90570202C0A6280000DEB3 + 3D81E79E7BCE155D26E23680E9397CC473000060331400A0E36CFF9FCC3D9239 + 26E43680E9890701BA0D0000364E01003ACEF6FFC99CBCDBFDFF4CEE7DEFFD93 + 41C4661DBDE9964104004C4A01003ACE1FD3E38BEDFFB673B311F77870E4D428 + 5A02C0C629004087D94E3B19DBFFD928C5A3E9E9DFB674E96004004C4201003A + CC7BB52763FB3F9B71F26E058069B9F126BB000060231400A0C3E2BDDA8CC715 + 5C36CB6D00D373F4985B970060231400A0A36CFF9FCC03F77D6C10C1C628224D + 4FBCB9246E05000026A300001D65FBFF646CDF661AACA3E9F1304000989C0200 + 74505CF93FEA1EDA89D8BECD345847D3E30D260030390500E8A04337B8FA3F89 + D8B61DDBB761B3DC06303D51C88C5B990080F1290040071D3EE28FE649D8B6CD + 34DD79C7FB07119BE5562600988C0200748CAB6693B36D9B69B2A3647AE24D26 + 1E660A00E35300808EB1FD7F329235B6C23D6E03988A48FEFD4E0380F1290040 + C71C3F71EB20621CB6FFB3154EDE6D57C9B4B8A50900C6A700001D72E0E0A5DE + 9D3DA107EEFBD82082E9B1B3647AE29626B70100C0781400A043DCFB3F99871F + 7AB079FCD46383114C97DB00A6C76D0000301E0500E890A3C7BCFB7F1277DE71 + FB2082E9731BC0F4B8B50900C6A300001D61FBFFE4BCAF9DADE43680E989DF6D + F13B0E00184E01003AE2C69B5CFD9F84EDFFCC82DB00A6C72D4E00309A020074 + C4D163B70C22C661FB3FB3F0BEF7BE7B10B159C74FDC36880080360A00D001FD + EDB1070723C661FB3FB3D0DF69726A306233E2779CDB9C0060380500E8000FFF + 9B4C2464B6FF332B27EFF230C069F1BB0E00865300800E38EC1559139190314B + 6E37991EBFEB00603805005872B6FF4F4E42C62CB90D607AE2779D870102403B + 050058721E8C359948C422218359B2EB647A0E1FB10B0000DA2800C0923BE46A + D84424626C07BB4EA6C7EF3C0068A700004B2CB6C2EEDFBF7F30621C1231B683 + DB00A6277EE71DBDC96B4F01A04601009698ADB093B1FD9FEDF4BEF7BE7B10B1 + 59878FD8050000350A00B0C46C859D8CEDFF6CA793777D6410B159763F01409D + 02002CA9D802EB0FE0C93C70FFC70611CCDEE3A71EB303658A0E79252000ACA3 + 00004BCA16D8C93CF7DC73AEC0B2ED3C83627A8E9FB8751001008902002CA1B8 + F2EF5DD893B947F2CF1C50849A9EABAEBEA63970F0D2C10800080A00B0846C7D + 9DDCC9BBDDFFCFF6731BC074298402C05A0A00B0846CFF9F8CEDFFCC13B7014C + CFD163370F2200202800C092B1FD7F72B6FF334F14A3A6276E03880600F42900 + C09289A7FF3319DBFF9927711BC003F77923C5B4D8050000AB140060C9F86377 + 72922DE6CD07DD063035873D130500BE42010096483CF1DA76D7C9C476EB7806 + 00CC937BEEB22B655A0E1C3CD85C7BDDF5831100749B02002C11F7FE4FEEE4DD + EEB766FE7830E574DD78CCAD51001014006089D8FE3F39575A99578A53D37348 + 711400562800C092B0FD7F72B6FF33CF14A7A6C7DB5100A04F010096C4F113B7 + 0E22C6E50A2BF3CC6D00D375D46D0000A00000CBC293AE27E70A2BF34E916A7A + 620740EC0400802E53008025105BFFE349D78C2F5EFD67FB3FF34E916ABA0E29 + 9402D0710A00B0043CFC6F72AEACB208A24875E7076E1F8CD8AC1BFDAE04A0E3 + 14006009D8FE3F39F756B3284EDE6D17C0B45C7BDDF52B0F4C0580AE52008005 + 17F7B5DAFE3F99871F7AB079FCD4638311CC376FAB982E6F0300A0CB140060C1 + 1D3EE2EAFFA4EEBCC3966A16CB3D76AC4C8D5BA600E83205005870875CCD9A98 + EDFF2C1AB7014C4FFFA1A96E0300A09B1400608179ADD5E46CFF6711B90D60BA + 8E9FB875100140B72800C002B3FD7F72F778FA3F0BCA6D00D3E3C1A900749502 + 002CA8B8F26FFBFFE46CFF6751B90D607AE2C1A9712B0000748D02002CA84337 + BCD1F6FF093D7EEAD4CA2D00B088DC06305DC74FDC368800A03B140060411D3E + E2EAFFA44EDEE50A2A8BEDCE0FBC7F10B159765001D0450A00B080E2CABF7759 + 4FCEEBFF5874D6F0F4F83D0A40172900C0028AEDFF4CC6F67F9641FF2D16A706 + 2336CB835401E81A05005840B6FF4FCEF67F9685B53C3D476FBAD9B35400E814 + 05005830070E5E6ADBEA06D83ACDB2B096A7CB8E2A00BA440100168CE47F72F1 + E474DBFF59166E03982E3BAA00E81205005830478FDD3C8818D73DDEFDCF9271 + 1BC0F444513576560140172800C002893F52AFBAFA9AC188719DBC5BB2C47271 + 1BC074D9590540572800C002F147EAE462FBFF493B005832711B80DB5AA6C7CE + 2A00BA42010016C8F113B70D22C665FB3FCBCA2E80E9899D556E0300A00B1400 + 6041F4FF403D3818312EDBFF595676B64CD7F113B70E2200585E0A00B0206C51 + 9D9CEDFF2CB3C74F3DE63680293AEC758000748002002C087F9C4EEE81FB3E36 + 886039B90D607A62879587AC02B0EC14006001C4BDA9B6FF4FEEE4DDAEFEB3DC + EC70992E3BAD0058760A00B00024FF1B738F77A5B3E4DC06305D76002CBEC74F + 9D1A4400D42800004B29AE8CC6330060D9B90D607AE6F14D007E8F4D268A6200 + B453008005F0BC3F0027127F30FFCE6FFFD66004CBEDCE0FBC5F923825CF3DF7 + EC209A1F77DEF1FE41C438EC0000184E010016406CF1B5CD773C29F9771588AE + 8835FFBFFFEC3B1401A6E091871E1A44F3237633DDF901BB3CC6F5877FF07B83 + 08809A5D839E553B2A7DAD45F124F5C3DAAEE6D237FC37CDCEDD97F562D8B0BF + FACBBF58D99EFA9ACB2E1FCC508A3F947FF35DBFD2FCD55F7C743003DDF0F453 + 4F35F7FEE547577E3FCCE336F6451049F6EFFCF6BF6A4E9F3E3D98991FF140D3 + 1DBDBF38AEBCFA9A66CF9E3D8359725124FFD5FFF35F348F2896C3E23A7BE6D1 + E6B17BFF5D2F7AA5A59D6D6921F58C10092C6BA5EF49DEA716097DEAA37892FA + D47657DA9EE60D6FF9D566D7DE1B7A314C453CA86ADFFEFD8311C12BFFA06F7F + EF7743248A8C276EB15AA41D567EFFAFE7F73F2C89332FDED5DCFBBB3FD88BA2 + 12FB72A59DC95A1404521FC97F592008654F4F4A725995BE27799F9A02000000 + C0B42900CC4424B0000000C0925300000000800E5000000000800E5000000000 + 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 + 000000800E5000000000800E5000000000800E5000000000800E500000000080 + 0E5000000000800E5000000000800E5000000000800E5000000000800E500000 + 0000800E5000000000800E5000000000800E5000000000800E5000000000800E + 5000000000800E5000000000800E5000000000800E5000000000800E50000000 + 00800E5000000000800E5000000000800E5000000000800E5000000000800E50 + 00000000800E5000000000800E5000000000800E5000000000800E5000000000 + 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 + 000000800E5000000000800E5000000000800E5000000000800E500000000080 + 0E5000000000800E5000000000800E5000000000800E5000000000800E500000 + 0000800E5000000000800E5000000000800E5000000000800E5000000000800E + 5000000000800E5000000000800E5000000000800E5000000000800E50000000 + 00800E5000000000800E5000000000800E5000000000800E5000000000800E50 + 00000000800E5000000000800E5000000000800E5000000000800E5000000000 + 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 + 000000800E5000000000800E5000000000800E5000000000800E500000000080 + 0E5000000000800E5000000000800E5000000000800E5000000000800E500000 + 0000800E5000000000800E5000000000800E5000000000800E5000000000800E + 5000000000800E5000000000800E5000000000800E5000000000800E50000000 + 00800E5000000000800E5000000000800E5000000000800E5000D8B8B3837E94 + 713F070000D06572AC2DA600300B675F796610010000509233CD8402C02C9C7E + E181410400004049CE34130A00000000D0010A00000000D0010A00D3170FA428 + 1E4AE1DB0C0000D06E5DCE54C9ABD82C99E964DA16609ACF8F5BAC00000093AB + E5556DF995BC6B020A00B370FAE9FB07110000002539D34C28006C4E549B8655 + 9CFAC75E7EE9CB2B3D000000EBADE64CA3F2AB61C7194101000000003A400160 + 7A5225AAAC4A9D6D5E38F5B9410C000040A99F33ADCDA356C7F93C9BA000305D + E582ED7BFC138F0E220000004A6B73A67A5EC5A629006CADB4582D5A00008076 + 72A7195000D8BC510BB47FFC95D31F5FE90100005875E6C5BB06D178B9151BA6 + 00B031E5C28BF1B0C578B639FBCA338318000080B586E753EB8F0FFB3C2D1400 + 2697165ADB824B8B73EDF133A73D07000000A074E68507065152CFA956A5F9B6 + E3B4500068572EA6DAE21AF599D5F1999715000000004A67CE7E791085F173AC + 55E37C861E0580D162F18C5A40F9F1F4F934D78F5F7ABAAC6A010000D0CF95D6 + E750ABE390C735E5E7A95000D8BCB4C86A8B6D7511BE7CDA33000000004AABB9 + D26AFEB4569AAB1D63020A00EB0D5B54F9C2AB7DAEED6BCF364F7DDA0E000000 + 80523F576ACFA5D6CBF3B1B6AF0BC38E759202C0E6B42DA8B420578F3FFB85A7 + 9BB36BEE6D010000E8B6C89122575AB53E975AAB6D9E3128004CAE5C70E5026D + 3BDE34AFBC641700000040B29A23E5395592C6E958DB71C6A400305DF9C2CC5B + 38EB558000000099975EFC78EF7FAEE64CF5C69428004CC7A8C5D93FF6F20BB1 + B801000008675F8A8BA4A373A9F6E34C400160E3C65DA4AB9F79FEA9FB071100 + 00006B73A47A1EB5D6B0638CA0003099B4D0F20557CEE5FDDAF8A94FD9010000 + 0090F473A4F5B9535F5B1F6A738CA000305CBEA8862DACF273F96757E79EFDE2 + D3CD59CF0100000058C98D2247CA73A655E55C7EAC34EEE73A4F01A06ED4E24A + 7D6A35B5E3679BD367EC02000000E8E7466BF3A5F53954AE3CDEF6B930EC5867 + 29006C4CB998D2224CF3B5BE1FBFE24180000000596EB49A2FD5FBFC78528E19 + 8302C0F4950B341F9F6D9E3DF59198040000E8B47E6EB4365FEA2BC74C8902C0 + E60C5BA4F97875EE737FA600000000D0CF8D86E74FF5311BA40030B97CF125E5 + 5CF4EDED95D36E03000000BAAB9F13D5F3A5D516CA3ED4E6188302C068F9E21A + B6C0467D2ECD9F6D5E7CFEAE95190000802EEAE744AB39D27AF97CED7832EEE7 + E8510068376A91A53EB5A4762C6F4DF3D2971400000080EE5ACD896A3953B490 + FA30EC5869D8B14E5300D8B87251958BB1BD3DFE8002000000D05DFD9CA89E2F + ADB690C74939664C0A009B575B9CB5F1EADCB35F7CDA73000000804E8A5C2872 + A23C475ADB42DB984D5000D8987C1126E55CF4657BE52BB1E7000000005DB4F6 + FEFFD51C696D0B651F6A738C4901603CF9222B175A3E57FB5C8AD78E3D070000 + 00E8A27E2EB43E475A3F0EB5B9A4F639865000186ED822CA175B48E3616DB5BA + F5D007FE73AF070000E8967E2EB43E471ADE92725C1A76ACF31400A62F2DC87C + 61D6E2B3CD4BCFBE7F65060000A00BFA39D06A4ED4578BF339A64401603ADA16 + 67CCE515AD8857C72F3F7777AF070000E8867E0E54CF8F56E3523ACE2629006C + 5C5A80F9424C0B336FA13EFED227DC0600000074473F075A9F1BD5C7F97C4871 + 3EC7041400C6972FB672C1A5B971DA6A95EB894F7DCEEB000100804E88DC2772 + A0322F1ABFE5F2B9F2182D1400461BB698F245974BF3A3DB0B4FFE71AF070000 + 586EFDDCA79E17D55BA96D3E19768C1E0580E9498B312DBABCAFB57EB5EB4B9F + F02040000060F9F5739FD55CA8DE42DEE7F36C9202C0E6D41668D90F6BAFB80D + 000000587AABDBFFC7D9F61F46F56C8002C064F24557C6B5F138ED15B7010000 + 004BAD9FF34C7ACF7FB4D0360EA9670C0A00E3D9C8A24A8B326FB1E0F3D69F77 + 1B000000B0CC56B7FFB7E7456BDBA436F2359DA300303DB5053BCE9CB7010000 + 00CB6BEDD3FFCB16C69D6393140036AEB618F3B95A2BAB5BAB55AF671FFBD7BD + 1E000060B9F4739DD5DC677D4E948F6B2DA9CD31010580C9D5165B6D11A6B9F1 + DA637FF5A7BD1E000060B9F4739D7A1ED4DE72B5B9509B63080580F18DBBB8D2 + E24C9F4FF1F04AD7B35F7CA679E999FFD08B0100009643E43891EBE4B9CFF0DC + 28E4C7C631EEE73A4F01603A6A0B35B590F7B1B8D3024F71BF3DF3F93FEAF500 + 0000CBA19FE3ACCD7BD6E74521EFCB1652CF2628006C4CBE086B7112E37C81A7 + CFD4DBE7FECB5DCDD9339FEFC50000008B2D729BC871CABC677D2B73A65CFA4C + 286326A40030997117595A98F9E28C96170122CE5B7FFEF9277EA7D70300002C + B67E6E333CFF591B8714A7F128E37E8E1E0580E9A92DD85A2B17FCDAF947EF76 + 1B000000B0F8FAB9CDF0FC67FD7CD942EAD92405808DCB17632D4ED25CD9D282 + 5FDB9E7BEC690F03040000165AE43491DBD4729E7EABE548D172F95C19B3010A + 00931B77B1A5059A2FD2F1DA139F761B000000B0B8FA394D3DDFA9B7508E4719 + F7730C28004C576DE1D65AAA789555B07E7BEC2FEE6F5E7AFE642F060000582C + 91CB444E53CB75FA2DCF8986B5907AA640016073F245598B933497B7E10BFEE9 + 877FADD70300002C967E2E53CF73FAAD2D17CAE57365CC0629006CCC388B2E2D + D2B2E58B3DE27A7BF4CF3FD2BCE295800000C002891C26729932BF59DB6AB951 + D94619E733141400A6A7B658F3B9686981978BBEDE9EFD825D000000C0E2E8E7 + 30F5FCA6DF86E546A925B53936410160F36A8B315FA4292EC7E5E25FDF3EF39F + FEC82E000000602144EE12394C99D7ACB65A2E14525C8E4BB53926A000B071C3 + 165FB970DB5A7922AC6F76010000008BA09FBBD4F39A7E1B9DFFF45B487DCDB0 + 630CA100301DF922ADC5499A4B2D2DFE7422AC6F9FF94F7F6C1700000030D7FA + 57FFFF38A2212DCF81F296CBE7CA984D5200D87A69D1960BBD3C01A2AFB7673F + FFEBBD1E0000603EF573967A3ED36FB51C28B57CCC165200D89CDA024D0BB76C + 21C56D0B3EFAF5ED337FEA59000000C07C5AB9FADFCB59CA3C66B50DCB81A285 + FC58DE4AB539C6A400303DC31662BE80F3962FFA325EDBEC02000000E651FBD5 + FFB65C27C5656B33EC18135000D8BC71176A5AD4A9A5859F4E8EBCAD9F5FD905 + 70FA13BD180000603E448E52BFFA3F2AD7893E6F491E97861D630C0A00D39516 + 64BE886B715B2B4F8EB5ED894FFF62AF070000980FFD1CA59EBFACB65AEE93B7 + 302C664A1400B65EB988CB563B41A2AD3FF6E89F7FA479E9F993BD180000607B + 456E12394A99B78CCE736A2DA49E2DA200301DB5855A2EE4326E6BB59364B53D + 76F7CFF47A000080EDD5CF4DEA79CB6AABE53C790B6D71AE36C7841400A66FD8 + 624D8B39B574429427497B7BE2D39F6B5E78EA777B310000C0F6889C2472935A + CED2DEF21C286F21F5B9DA1C9BA000303D6D0B365FD065DCD6CA13646DFBEC9F + BDAB397BF6CBBD18000060B62217899CA496ABACCF6786B5D016E76A736C8002 + C0D618B668D3A24EAD3C4946B7E71E7BBA79F631AF05040000662F7291C8496A + B94A7BCB739FBC85D4E76A736C9202C074B52DDC7C6197715B2B4F98D4CEACF4 + 9F7EEFEF782D20000030539183442E92E726F556CB71F216DAE25C6D8E0D5200 + D83AC3166F5ADCA9A513A43C6986B72FDCFB4F7B3D0000C06CF473907A7ED2DE + F29C276F21F5B9DA1C53A000307D6D0B385FE0651C2D3F31DADADA0ADBA9BF7C + C003010100809988DC2372903C2719BE0B205A9EEBA416DAE25C6D8E4D5000D8 + 5AC316715AE4792B4F8CFCC4A99F589FFDD0AF35AF9CF97C2F060000D81A9173 + 44EE51E623FD56E62A654E938F530BA9CFD5E698925D839EE9DB51F4493ECE3F + 93B790E228D2E4C7F2D634A79F3BDDEC3EF753CDFE83B7AD8C010000A6EDF18F + FFC3E64B9FF8742F4AC97EF4794BC97F1E47329FFAD4425B9CABCDB1490A005B + A79FA0F7A57835715F7FBC3C56C6650BFDF8CB9FFB7C73D1351736BBCF7D437F + 1A0000604A62EBFF837FFA6F7B514AF053929FE23CE98F3892F7344E097EDE42 + EA73B539A6C82D005BA76D41E70BBE8C53CB4F9614E7AD3CC1E256805F772B00 + 00003055FDADFFF10AF27A1EB2BE95F94CDE425B9CABCD310576006CAD74A53E + ACBD6ADF571ECF5B28E7CAF9D08FDD0A0000004C5B7FEBFF677A5124FCA94572 + 5FC629E94F2D25F7650BA9CFD5E698320580AD9727EAB971C6F9D7962DAC1D7F + F9735F682EBAE602B7020000009BD6DFFAFFFBBDA84CFACBC43FF529F14F713E + 97B790C7B9DA1C53A200B0F552B21ECAC43D97CF95C7D3389FAF8D9BE689073E + DC5C72ED2DCDAEDD97AC8C0100002675FA854F360FFCC1DB7B512DD94F2D25F8 + 791C2D92F8D48794ECA756AACDB1053C0360EBB52DF0723ECDA5969F3CF9386F + F989B77AD27DE9BE7FDA9C7DE5CBBD1800006032914B444EB136EF28F38FB2B5 + E531A9E56A73A136C714D901301BE92A7DC8AFD8E7F3A13C967FA69CCB5B588D + 9F7DEC4BCDBE034F367B2FBC69650C000030AE673EFBF3CD67FFFC43BDA896F8 + 977DDE22814F7D5B2BD5E6D8220A00B39312F550C6ABC97BDFA8B9349FF76BE7 + 9E7AF093CD455F7D79B37BEFD7AE8C0100004679E1E93F693EF59E5FEB45B584 + 7F58F29F5A99F097097E3E971F2B3FC7165000989D94A0873C2ED58EE5C97DDE + 42ADEFC72F3CF1D1E6822BDFE479000000C04871DFFF231FF8C7CDE9E79EEF8D + 22994F49FF38C97F24F0E538445F36B68902C06CA5243DAC4FD8DB8F977DAD85 + B5F1E9E75E6A76EEBCAF39EFABFE7AB363C7398379000080B5E2BEFF537FF53F + 374F3EF8D9DE2812F83CE1CF93FE5A012092FAD4A704BF8C4BF95CED385B4001 + 60F6F2643D578E434AE8F363F95C6D3EACF6CF3EF64473CE058F34FB5EF5D707 + 730000006B3DF9E9FFB579F4AE8FF4A248E4F3E43FF5A9C5B8D652C21FAD1C87 + 3CCED5E6D8220A00B35726ED799FAB1DCBE76A2DC9C73B9AA71F79B8B9F0F25D + CD9EFD8706730000007DCF9FFA97CD6756DEF71F897B5BD2DF96FC47029FC729 + A14F713E979463664401607B94C97AEAF33829E7F2BE9C0BF5CF3DF1C97B9A4B + 5EFB75CDAE73AEEE4F0300009D77FACB77340FFCD1CFF5A248E0F3A43F4FFCF3 + 3825FBD122914F7DD942EAC3B039664401607BD412F6A41C877E12BFFEEBD2B8 + 3C5EEF9F7BFCC31E0A080000AC8887FE3D74FB3F1C3CF4AF96E897097F398E16 + 497C6AE538E431DB4C0160FBA4E43CE4897A3E1FF263496D2EC4B8EDF3FD8702 + 9E792E8A00B7792820000074583CF4EFD13F7B5BF3CCA38FF54691B8A702402D + F9CFE7538BA43E8FCB843F8D73F95CED385B4C01607BD592F5D096C4E77DC8E7 + 6AF321FF4CD3BCF0D4B3CD2BAF7CA439FFD57F4D110000003A2892FFCFDFF363 + CD139FF84C6F9492FB94E0B7C5B59627FBA985BC4F71AE36C70C28006CAFB6A4 + 3D94E31073794B86CD2729DED13CF7D813CDBE034F367B2FBC69300700007445 + 3CF1FFF377DFD58B52829FB748ECF3B8D652629F5A3917F238E431DB440160FB + D593F4B5F3A11CE7467D7E7DFCD4839F6CF65DF258B3F7C2632B63000060F93D + FDC83F6B1EFEC07FEC4579D29F92FD5A9CC66DAD4CF86B897E3E573BCE8C2800 + CC8794A0B725F1D1C789928FF316CA63497B1C45800B2FDFE9F5800000D001F1 + BABF4FBFEF777A5124EEB564BF8CCB9612FCB2C5B11071EA539CABCD31430A00 + F3A12D490F693CEC3321FF5CED6BC2FAF9783DE0455F7D59B37BEFD70E660000 + 8065F3C2D37FD27CE28F7FB117D592FDBCA5F994F4B7B594E4A7A43EEF531CF2 + 986DA600303FF264BD2D81CFC5B1BC9546CDADC64F3CF0C1E6E2AFB9BCD9BDF7 + 75831900006059BCF8CC7B9A8FFFE1FFD68BF244FFE5629CB748F0F3B84CF8A3 + D5E6A2E5F271798C6DA000305F6A097AF4F97C28C7A5FC6BCA3EAC8F1FBFFF0E + 45000000583291FC3FF0EFFE692FAA25F6659CF7C35A4AE653D25F4BF46B736C + 330580F9D296A487348E3E4EA07C5C8AB97CBEED33493F5604000080E5B136F9 + 8F965FF52F770044629FFAB61679486A310E29B94FF3CC310580F9332C714FE3 + DA67A24F2DC9E35CFB671401000060F1AD4FFEF324BF8CF396E6CB84BF6C21EF + 531CDA62B69902C07CAA25E86DC97C683B967F6DDE4A6BE7140100006071D593 + FF68B5ABFEE3B648E4535FB65C3E2E8FB1CD1400E65399A4A7715B021F6AC7DA + 3E9BAB7F4611000000164F7BF29F12FEDA7C6A79C29F5A4AF2F338B524C5F91C + 734801607EE589F9A8C4BEFC6C6AB9DA5C529BDFA1080000000B6435F98F64BD + 96E0D79EFC9F27FBA9E5497E1A877C3EE471A96D9E6DA40030DFF2C4BC96D0A7 + 3E4EAE5A125FD3F6B9FABC22000000CCBFE79EFABDE6137FF873BDA84CF0536B + 4BFEF3B8D652921F7148897D9A4FDA62E68802C0FCCB13F332494FE3E8E324AB + 27F1EBE55F97FAF6AF8F22C0BE573DD6ECBDE8D86006000098174F3FFCCEE6D3 + EFFDFFF5A23CB9CF5B24FF91C0475CF629AEB5C811A2451C52629FE693B69839 + A300B018F2C4BC4CDE9351E3A4FCFAE8E324CDFBF59E7AF0938A000000306722 + F97FF0FD7FDC8B52325FB694FCB715016A2DF282BC85729CE4E3F21873460160 + 319449799EBC0FD376BCF6EFC5C99AF7EB4511E095337736E7BFFAAF353B769C + 339805000066EDEC2B5F6E3E7FF2479A473FFCA1DE284FF8F3564BFE534BE394 + F4A716F940EA6B2D943D0B42016071E4497919D713F6D5F9DAF1722EC67102E7 + FD7ACF3DF6A5E695573EDC9CF3AA6F6D76EF3E7F300B0000CCCAE9173ED97CF1 + 2FFF97E6D4BD1FEF8DF2A43E6F9326FF91030C6B491EE7DAE699230A008B254F + CA6B097C4D9AAF1DAFFD1BF9899BC66BFB28023CF7C5F736175CF9ADCDAEDD97 + F4E60000805988E4FFC13FFDB1E6E9873ED71BA524BE4CF6A32F93FD721C7D6A + F1B77ED9E72DE471688B99630A008B274FDAF33894E324CDD78E8FFB6FACF5F2 + F32F35A73EF647CDC55F739937040000C00CC46BFEEEFFFDFF57EF6FF1E77BA3 + 3CA96F6B91CCD7C6D1A716C97BD9E72DE471688B99730A008B294FD2C74DE0D3 + 7CED783E37D909FCF8FD1F6CF6BDEA8B1E0E0800005B281EF6F7A9F7FC662FCA + 13FA715A24F5659F5AFCED5FF6790B791CDA62168002C0E2CA93F632A9AF25F9 + 21CDD78E0F3B968B933C3EB37AB2C7C301CFAC3C1CF0BFF27040000098A278D8 + DFA327FFC7E6D10FFF596F5426F6B5FBFBF3968EE57D6AF1F77CD9E72DE47168 + 8B59100A008BAB4CD4478D93345F3BDE762C4EEE986B3FC99F7FEC89E69947FF + B8B9F0B237343BCF79F560160000D8A8979FFD68F3E9FFF423CDD30F7DB6378A + 243D4FEEF316C7CA62408AF33EB5F8BBBEECF316F238E4310B4A0160B19589FA + A87192E6DB8E87FC58C4B5133EE6568FAD3C17E0BEF734E75FB1B33967FFA195 + 3900006072CF3EFEAF9A8FFFFB9FEDFD8DFD426F9427F56D57FDF3B932CE5BFC + ED5EF6790B791CF2389463168402C0E22B93F851E324CDB71DCFD54EF0F6B92F + 7DE2A3CDCE3D7FD1ECBEE09057050200C0045E7CE10BCD973EFE8F9A876F7F77 + 6F544BE8C799CBFBBCC5DFEB659FB790C7218F4339668128002C87AD2E0294C7 + 6B27FDDA5F125F7EF40BCD735FFC8FCD05975FDDECDA73D5601E00006873FAB9 + 0F360FFDE79F6A9EFCD4677AA33C912FE3DA5C19972DFE5E2FFBBC853C0E791C + CA310B460160798C4AFADB92FC51C97F69D82F84B03AF7F2F32F36A7EEFBCF2B + 6F09387BCEA166F71E0F08040080D20BCF3FDB3CF7F9FFA3F9E49FFC7F07AFF8 + 8B04BD96D8D7E6529CF7B5167FA747CBE3D4421E873C0EE59805A400B05C6655 + 0408C37E3984347776E52D01AF3CFBA7CD7907BFD60302010020130FFAFBC247 + FEA7E60B1FBDBB37AA25F479CBE7CACF45DFD6E26FF368799C5AC8E390C7A11C + B3A0140096CF468B00A13C964EF4615FD3F68B626DFCC253CFAE3C20F0BCAF7A + AE7965D7F576030000D06971D5FFF953EF6A3EF11F7EA1F7B7F2D3BD9932C1CF + 5B3E9FE2BC4F2D8DE36FF13497E2E8CB16F238E47128C72C300580E5B49922C0 + 286D5FDBF64B23C5FDFEC94F7FCC6E0000003A2D5DF5FFFCC9FFD21BE5897BDE + 8F8A532BC7D1E26FEF3CAEB590C7218F433966C16D261164BE0D4BFA234EE314 + 976D67D6B7B52820E5711A9771ADDFD95C71F4E666FF65FFA03977DF79BD3100 + 002CB7957BFD1FFDE7CD67EFBCBD374A097A5B729F8F6BC7525C6B91B8A7BED6 + 421E873C0EE5982510C918CB2B12F8DCA871293F5EFB05D0F64BA2ECC3FAB967 + 1E79A879FE8B7FD4ECBB646FB367DFF583590000583ECF3FF16F9BCF7EF0A79B + 271E78A0374A897A4AEC53429F8FF3B95A5FB6F83BBBEC6B2DE471C8E3508E59 + 120A00CB6FB3458071E5BF4CF23E445C1FBFFCFC4BCD139FF8702FB8B339F7C2 + ABDD160000C05289EDFE8FFDE53F6A1EBEF3DDBDBF7D5FE8CDA4E43EB548D66B + E35A3FACC5DFD7A96F6B218F431E8772CC129956F2C77C1B96F4479CC6791CDB + F4539FE6FB5BF7D7C6A9AD6EED5F3B1ED5AF8DAFB9E5D666EFA5DFD7EC3D5721 + 000080C5F5E20B5F685E7CEC5F350FBEFF4F7AA394A4D712FAB6643FFF4C6D1C + 2D92F53C4EE390FA341FF238E47128C72C9994ECB1FCCA9F753E4E71F4A98514 + 47725EC629794F719ED097E361497FF9753B9B7D072E6C2EFBE6EF6C769DFF77 + 3D1F0000808512F7F99FF9F2BF6D1EFDC8BF699E7F3C9EEE9F12F4D46A09FEB0 + B9328E24BD8CA32FE390E27C9CE47128C72CA148DEE88EF2E79D8F539CF7B516 + 497AD90F6B9324FF6BC7FB2EB9B0B9E2CDFF7DB3EF55DFDE1B0300C07C7BFE4B + BFDF7CF643FFB279FE893CF1CF93F7725C8BCBCFD75A24EB655F6BA1EC431E87 + 72CC928A048E6E297FE6F938C579DFD622494F7D19E7AD2DC91F9EFCE7E30BAE + BEACB9ECF0F7357B2F38D11B0300C07C79F199F7365F3CF92F9B271FFA7C6F14 + 09F9B0A43F1F8FFA5CDE22492FE3E8DB5A28FB90C7A11CB3C42269A39BF29F7D + B90E629CE6F23812F2D4A7F914F793F5B571DEF2047FFCE43F6F0A010000CC93 + 48FC1F3DF9AF9A671E7AB4374AC979DEF2847E58B23F2CF18F16497AD9A738A4 + 3ECD873C4EF271798C0E48891DDD54FEFCF371C4695C8B538BE4BCECCB38B55A + 623F5EF29F3785000000B6D3E8C43FB56149FFB0B96891A097E33497E2D4425B + 1CF23894633A229234BAAD5C03F938C579DFD622396FEBDBDAE4C97FDEE21901 + 97BDF1EF7A582000005BEE2B0FF7FBF0BF2DEEF11FD5C62902942D12F4BC4FF1 + B016CA3EE47128C77448246850AE837C9CE2BCCF5B88843C8DCB38B5729CB7C9 + 12FFB24521E0E01B6E6CF6BDFA7BBD3E100080A98AD7F93DFF85DF6A4EDDFBC1 + 0913FFBC8D93F4478BE43C8FD3388F431AA716CA3EE47128C7744C246510CAB5 + 501BA7B95A9C5A24E5659CF71B696581A0EDDFDAD15CF1A69B9AF32E3FD1ECDD + 7FB4370600808D79F1B93B9B673FF7DEE6B37FF681DE2812E794986F554BFF8D + BC2FE3D4425B9C8C1AD341914841525B0FF95C8AF37E58EB27E5AB711AD7E2B6 + D6B63BA0F6B5AB73175CFD9AE6D5DFF01DCDCE7D47ED0A0000602C71B5FF95E7 + EF6CBEF097BFD73CF39527FAE749F9345BFE6FA638FA326E6BA1EC431E27B539 + 3A2812262895EB221FA738EFCB38B59494D7E2D4CAF1B8ADEDEBF2FF567FEE8A + 371DB32B00008056AB57FBEFE88D6A49799A1BD6C6FD5CB4FCB3F97F27B5721C + 2D9471DE873C0EE5988E8B24096ACAB5511BA7B9BC6F6B2929CFE3B5897A7DDC + D6DA3E97CFAFFD6FECBBE482E6D2AF3FD69CF79A6F6F769FF3DADE1C00005DF5 + F24B9F6A9EFDFCEF378FFDD51DCDF34F3CD39B2993F1E8CBB8D636723CE6CAFF + C6A816F23EC5C9A831AC2446D0A65C1F6DE3BC2FE3D452225E8E6B7DDE6A73E3 + CE97711AEF58B945E0E0D71D6BCEBDE484620000404744D2FFC213EF6D4E7DFC + 8EC116FF489253025EEBCBB86C6DC7CAF9B67F379FAFB550C6799F8C1AC38A48 + 886094729DE4E314D7FA51AD4CCCD338EFCBF9B671395FFB7C79AC3F77F15597 + 35AFBAF6C666CF85DFE4360100802513DBFB4F3FFDD1E64B0F7CB079F2E1786F + 7F24C7D16A8979EA87C56D73C33E93F7B538A43ECD470B6D7DC8E3508E618D48 + 80601CE55A691BE77D19B7B53229AFF5A9E5E3F2583E57FBDCB0BEDFE236814B + BEEE5073DEAB8F36CD9E6FF20041008005130FF26B4E7FB479F60B77364F7CFC + 9EC1F6FE488C532B13F25A3F2C1EF758F9997C7E580B659CF7C9A831AC13490F + 8CABB65EF2B914D7FAD4423E8E9627E1B538EF87C5F9B8F699617DDE56E72EBE + EA35CD855F7DA839F7A26F6A9ABDDFA820000030675612FE17FFA279E1A98F36 + 4F7FE69EE6C987D3D6FE68B5843B4FCEDBFA61713EAE7DA6D6A7568EA385DA5C + C88F27799CD4E6609D48726052E5BA691BE77D19E773C393F0F5C97AF49B998B + 7EDC786D4B0581732E786DB3E7BC6FF2FC000080198BFBF84F3FFBD1E6A5673E + 5549F8CB9627DCA3E2BC6F9BABCDD7FA32CEE742EAD37C28E3BC4F468D61A848 + 6A60236A6BA79C4B8973928F533CAAD512F349FA14B78D47C5A35AD3BCFA8643 + CDFE57BDAED9B3EF75CDAE735EDDECDEF78D2BF300006CCECBCFFF4573E6A52F + 34A79FFF64F3DC973ED97CE1AE7B064722F11DA7B525E465DC36CEFBB6CFE49F + 2BE3512DE47128C7A11C87DA1C0CD54F6060E3CA35D4361ED68FD3C64DDC478D + 6B7D190F9B2B5B583F173B05F61E7C4D73FE577D53B363D779CD9E735FD79CD9 + F1556E21000028C416FE5D67BFD89C7EE193CDD933CF365FFEE2479B174F7D7E + 70653FA48438B550CE95AD9684D792F4B24FF1A871DE97F3E3B490C7219FCF8D + 1AC3D85202039B515B47E55C1AD7FAD4423E6E6B65625E4BE4CB7ED4B1D4CACF + 87DAE7423A5E3B56C6ABFD4A71E0D257F77E77EF58291084952241DC4EB0B3FF + 99979BD736E7EE3B6F250600583429A95FF1CAD9E6F44B9F5A49EE4324F8CD8E + B3CD8B8F7DA148F2CBBE8CF3B948B643792CCDE7C9782D314F73653FEEB1321E + A78532AEF549390EB539185B4A4C601ACAF5545B5F3197CFE7E35A3CAA95C979 + DB389F6F8B6BE3BCC5B190FADA67A285321ED627E538D4E60000E6D938896B1A + 0FEBCBB86C2192F0D4D73E13AD3CD696C4A7B8EDF8B0B9B61686C5799F94E350 + 9B8389492E98B67192D834CEE723CEE7CB389F1B95A40F9B2B8F8F1A4FD2426D + 9CFA1487729C9473B5CF0000CCB37113DA7C3E1FE77D39BF915626ECC3C6A33E + 5BB6381ECAF9D016877C3E376A0C9B22B960AB4C92DCE6F311E7F3B53892F490 + E6521B96BCD78EB5CD8561FF56D9C2B0B930AACF8D3B0700304F6AC9EAB0B961 + 7D190F9B6B6B2939AF25F193CC85DAB1908EE7736D71C8E773E538D4E6605324 + 156CB57192D934CEE7232EE7D35C6D3C4E1B27B99FA4001046CD85723E298FE7 + 6A73B951C70100B6DAA8047558529B1F8BB89C4F73B571DB5CD98625EFA98DF3 + 99B6166AE3D4A73894C793721C6A733015920866A55C6BC392DEFC58C4B5719A + 2BC72981CFE76B2D4FF4535FFB5CAD85DA7CB4302CCEFB509BCBB5CD0300CCAB + B604B696049773D10F8BCB166AF3B59627FBA9AF7D2E6F217DBE9C2FC7A136CE + FB5C3957FB0C4C95E48259AAADB76173F9B1722EFA6171D9C2B8C581512D4C32 + 37AC0F6D719B713E0300300BE324ADF9676AF1B03E6F619CB9495BA825F9790B + C3E2BC0FB5B964DC39983A8904DBA1B6EE86CDE5C7CAB9E8DBE66AE33437AA18 + 106AF3D1C2B0B9D016877C3E698B010016592D290E292EE7F2F961F1B0B9D442 + 6D3E5A684BFA43DB38B4F5A136978C3B075B46A2C176AAADBF6173E5B118E773 + F978543CEDB9304E1CF2F9DCA83100C0A22813DBB6713E1F713E3F6E3CEDB9D0 + 1687DA38C9E364DC39D872120CE6416D1D8E9AABC5C3FA71E3DA5CC88F9573A1 + 8CCB3EC5A13C9E1B770E00601E4D9A00E7C7222EE7F37E585C9B0BF9B1722E0C + 8B87F5A13697ABCDB77D16664262C13C695B8FC392E2F2588CF3B961E369C665 + DF762CD4E69271E70000E6D1B8496F9ACB8F9573D1D7E6523FED388C1A87342E + E7436D2EB4CDC34C492C98476DEB7254725C8BCBB9B671AD6F8BCB7ED8B1BC0F + B5B9A49CAB7D06006011B425CDB934971F2BE76AFDB8C76AC7539FE2501BE77D + 688B93DA5C689B876D21C1609EB5ADCF71E66BF1B0B95A9FE2908F47F521E272 + 9CF7C9A83100C0A22B93E0B6713E1F71391ED5A738E4E3517D183617F23837E9 + 3C6C2BC9068BA26DAD8E9A2F8FD7E6C7991BD587713E136A5F5333EC1800C03C + 1B96000F4BACD3B8AD0FA33E53F661DCB9D0369F4C3A0F734382C1A2695BB3E3 + CC979F49E371E6A73117F23819770E006091D412E25173B5785A7361D47C288F + 2593CEC3DC9164B0C8DAD6EFB8F36DE3CDCCB7C561D8B1DCB06300008B645872 + 3C2CE96E3B96E2B6CF4F3A9F94E364D279986B120D96C14693E9FC58ED73696E + 9263F978D8D785DAF1716CF4EB0000A66DA38970FE75B57F63D8F1341EF675C3 + 8E85DAF164A3C760EE49245836C3D6F424C76A9FCDE7367B3CA9CD01002CB351 + C97992CF6DF678A87D26D9E8315828920F96D9B0F53D6AED97C7DB3EBFD1CF85 + B6CF02002CBB7112F6A49CDFECE79261C7477D2D2C2409085D316AAD6FE4F8B0 + AF99F4F36D36F2350000DB6923C973ED6B264DD047FD77377B1C169EE4822E1A + 67DD6FE633D3FAF7010096D9380977DB6736F3B539493F9DB26BD04397CD3A61 + 97FC0300F48D4AC02749D025FC30820200AC376E822E910700D89C8D26E4E37E + 9D841F321218186DD2F3C4790500301D9326F0127E1842A2021BB39973C77907 + 00D0B799845DB20F139288C07439A70000A64BA20F53225981D972CE0100AC25 + C107000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1777,7 +1777,8 @@ object AboutForm: TAboutForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000806DD734FF7F4F2A7E33C72A40270000000049454E44AE426082} + 0000000000000060DB35CDFF1FEBD97F311E8C0D150000000049454E44AE4260 + 82} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512@2x.png' diff --git a/src/AboutUnit.pas b/src/AboutUnit.pas index 74082c5..fb5a3d9 100644 --- a/src/AboutUnit.pas +++ b/src/AboutUnit.pas @@ -76,9 +76,9 @@ TAboutForm = class(TForm) procedure SetLanguage(LanguageCode: Integer); private { Private declarations } - {$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} public { Public declarations } + {$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} end; var diff --git a/src/ImportUnit.pas b/src/ImportUnit.pas index b2569b7..46996d7 100644 --- a/src/ImportUnit.pas +++ b/src/ImportUnit.pas @@ -116,10 +116,10 @@ TImportForm = class(TForm) RootNode: IXMLNode; Project: TJSONValue; - {$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} public { Public declarations } FormSender: TFormSender; + {$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} end; var diff --git a/src/MainUnit.pas b/src/MainUnit.pas index 57b08c6..b60345f 100644 --- a/src/MainUnit.pas +++ b/src/MainUnit.pas @@ -100,11 +100,13 @@ interface {$ENDREGION} {$REGION ' Additional Liraries '} + AErenderLauncher.Types, AErenderLauncher.Localization, AErenderLauncher.IO, AErenderLauncher.Rendering, AErenderLauncher.Math, AErenderLauncher.Math.ExpParser, + AErenderLauncher.SysUtils, {$ENDREGION} {$REGION ' Windows Only Libraries '}{$IFDEF MSWINDOWS} @@ -118,26 +120,16 @@ interface {$ENDIF MACOS}{$ENDREGION} type - {TSettings = record - Language: Integer; - Style: Integer; - AErenderPath: String; - OnRenderStart: Integer; - DefaultProjectPath: String; - DefaultOutputPath: String; - AErenderHandle: Boolean; - DeleteTemporary: Boolean; - //RenderTasks: TList; - end; } - MainFormSizeConstraints = record - const - MIN_WIDTH = 600; - - MIN_HEIGHT_NO_UPD = {$IFDEF MSWINDOWS}470{$ELSE MACOS}430{$ENDIF}; - EXP_HEIGHT_NO_UPD = {$IFDEF MSWINDOWS}630{$ELSE MACOS}600{$ENDIF}; - - MIN_HEIGHT_UPD = {$IFDEF MSWINDOWS}500{$ELSE MACOS}470{$ENDIF}; - EXP_HEIGHT_UPD = {$IFDEF MSWINDOWS}665{$ELSE MACOS}635{$ENDIF}; + SizeConstraints = record + private + const + MIN_WIDTH = 640; + + MIN_HEIGHT_NO_UPD = 540; + //EXP_HEIGHT_NO_UPD = 540; + + MIN_HEIGHT_UPD = 576; // 540 + 36 + //EXP_HEIGHT_UPD = 576; end; TMainForm = class(TForm) _projectPathLabel: TLabel; @@ -200,8 +192,6 @@ TMainForm = class(TForm) LinkControlToPropertyEnabled9: TLinkControlToProperty; OnyxBlueStyle: TStyleBook; infoButton: TButton; - Image1: TImage; - Image2: TImage; launcherLayout: TLayout; outputModuleBox: TComboBox; outputModuleLabel: TLabel; @@ -233,8 +223,6 @@ TMainForm = class(TForm) memUsageInfoEdit: TEdit; cacheUsageInfoEdit: TEdit; AERModernStyle: TStyleBook; - settingsIconFill: TFillRGBEffect; - infoIconFill: TFillRGBEffect; AERModernAnimatedStyle: TStyleBook; UpdateLabel: TLabel; downloadButton: TButton; @@ -260,7 +248,6 @@ TMainForm = class(TForm) LinkControlToPropertyVisible7: TLinkControlToProperty; LinkControlToPropertyEnabled10: TLinkControlToProperty; UpdateNetHTTPClient: TNetHTTPClient; - Button1: TButton; recentItem: TMenuItem; separatorItem3: TMenuItem; TasksToolbar: TToolBar; @@ -330,6 +317,7 @@ TMainForm = class(TForm) ProjectAwait: TLayout; ProjectAwaitStatusLabel: TLabel; Label6: TLabel; + launchPopupBox: TPopupBox; procedure FormResize(Sender: TObject); procedure compSwitchSwitch(Sender: TObject); procedure FormCreate(Sender: TObject); @@ -442,18 +430,9 @@ TMainForm = class(TForm) procedure DragOver(const Data: TDragObject; const Point: TPointF; var Operation: TDragOperation); override; procedure DragDrop(const Data: TDragObject; const Point: TPointF); override; end; - OutputModule = record - Module, - Mask: String; - Imported: Boolean; - end; - RenderSetting = record - Setting: String; - Imported: Boolean; - end; + function GetPlatformMemorySize: Int64; function GetFFMPEGPath: WideString; - function GetDirectoryFiles(Directory: String): TArray; function KillProcess(ProcessName: String): Integer; procedure InitOutputModules; procedure InitRenderSettings; @@ -465,12 +444,12 @@ RenderSetting = record procedure InitLanguage(PATH: String); const - APPVERSION = 'v0.8.6-beta'; + APPVERSION = 'v0.8.9-beta'; AERL_REPO_RELEASES = 'https://api.github.com/repos/lilystilson/aerender-launcher/releases'; PLATFORMPATHSEPARATOR = {$IFDEF MSWINDOWS}'\'{$ENDIF MSWINDOWS} {$IFDEF MACOS}'/'{$ENDIF MACOS}; AWAIT_TIMEOUT = 10000; - MAX_SIMULTANEOUS_THREADS = 8; + //MAX_SIMULTANEOUS_THREADS = 8; var @@ -525,20 +504,9 @@ implementation {$R *.fmx} -//{$REGION ' Custom TComboEdit '} -//procedure TComboEdit.OnValidateEvent(Sender: TObject; var Text: string); -//begin -// TempThreadsStr := Text; -//end; -// -//procedure TComboEdit.OnValidatingEvent(Sender: TObject; var Text: string); -//begin -// if (TempThreadsStr <> '') then begin -// Text := TempThreadsStr; -// TempThreadsStr := ''; -// end; -//end; -//{$ENDREGION} + + + {$REGION ' Routines '} @@ -551,7 +519,7 @@ procedure TMainForm.WMNCPaint(var AMessage: TMessage); begin var hWnd: HWND := FormToHWND(Self); - //SetClassLong(hWnd, GCL_STYLE, GetClassLong(hWnd, GCL_STYLE) or CS_DROPSHADOW); + SetClassLong(hWnd, GCL_STYLE, GetClassLong(hWnd, GCL_STYLE) or CS_DROPSHADOW); SystemParametersInfo(SPI_SETDROPSHADOW, 0, PVOID(True), 0); @@ -594,7 +562,7 @@ function GetFFMPEGPath: WideString; {$IFDEF MSWINDOWS}AERenderDirectory := 'C:\ProgramData\AErender';{$ENDIF MSWINDOWS} {$IFDEF MACOS}AERenderDirectory := GetEnvironmentVariable('HOME') + '/Documents/AErender/';{$ENDIF} - Folders := TDirectory.GetDirectories(AErenderDirectory); + Folders := TDirectory.GetDirectories(APPFOLDER); for var i := 0 to High(Folders) do if Folders[i].Contains('ffmpeg') then begin Result := Folders[i]; @@ -603,18 +571,6 @@ function GetFFMPEGPath: WideString; Result := ''; end; -function GetDirectoryFiles(Directory: String): TArray; -var - Files: System.TArray; -begin - Files := TDirectory.GetFiles(Directory); - for var i := 0 to High(Files) do - begin - SetLength(Result, i+1); - Result[i] := Files[i]; - end; -end; - function KillProcess(ProcessName: String): Integer; {$IFDEF MSWINDOWS} const @@ -1124,7 +1080,7 @@ procedure TMainForm.RenderTasksOnNotify(Sender: TObject; const Item: TRenderTask CompLabel.InFrame := Comp.Frames.StartFrame; CompLabel.OutFrame := Comp.Frames.EndFrame; CompLabel.Split := IntToStr(Comp.Split); - CompLabel.Value := Comp.Frames.StartFrame; + CompLabel.Value := -1;//Comp.Frames.StartFrame; end; end; TasksTreeView.EndUpdate; @@ -1415,7 +1371,6 @@ procedure TMainForm.TaskEditorSaveButtonClick(Sender: TObject); {$IFDEF DEBUG_MODE} ShowMessage(RenderTasks.Items[TaskIndex].ToString); - //ShowMessage(IntToStr(RenderTasks.Items[0].Count)); {$ENDIF} Compositions.Free; @@ -1731,32 +1686,32 @@ procedure TMainForm.compNameTyping(Sender: TObject); procedure TMainForm.compSwitchSwitch(Sender: TObject); begin - if compSwitch.IsChecked then begin - if UpdateAvailable = True then - begin - if MainForm.Height <= 490 then - MainForm.Height := 630;//MainForm.Height + 130; - end - else - if MainForm.Height <= 450 then - MainForm.Height := 580;//MainForm.Height + 130; - - compSwitchLabel.Text := Language[LANG].MainForm.MultiComp; - - compGrid.RowCount := Round(compCount.Value); - compGrid.Cells[0, 0] := compName.Text; - compGrid.Model.ScrollDirections := TScrollDirections.Vertical; - end else begin - if UpdateAvailable = True then begin - if MainForm.WindowState <> TWindowState.wsMaximized then - MainForm.Height := 490//MainForm.Height - 130 - end else - if MainForm.WindowState <> TWindowState.wsMaximized then - MainForm.Height := 450;//MainForm.Height - 130; - - compSwitchLabel.Text := Language[LANG].MainForm.SingleComp; - compName.Text := compGrid.Cells[0, 0]; - end; +// if compSwitch.IsChecked then begin +// if UpdateAvailable = True then +// begin +// if MainForm.Height <= 490 then +// MainForm.Height := 630;//MainForm.Height + 130; +// end +// else +// if MainForm.Height <= 450 then +// MainForm.Height := 580;//MainForm.Height + 130; +// +// compSwitchLabel.Text := Language[LANG].MainForm.MultiComp; +// +// compGrid.RowCount := Round(compCount.Value); +// compGrid.Cells[0, 0] := compName.Text; +// compGrid.Model.ScrollDirections := TScrollDirections.Vertical; +// end else begin +// if UpdateAvailable = True then begin +// if MainForm.WindowState <> TWindowState.wsMaximized then +// MainForm.Height := 490//MainForm.Height - 130 +// end else +// if MainForm.WindowState <> TWindowState.wsMaximized then +// MainForm.Height := 450;//MainForm.Height - 130; +// +// compSwitchLabel.Text := Language[LANG].MainForm.SingleComp; +// compName.Text := compGrid.Cells[0, 0]; +// end; end; procedure TMainForm.docsItemClick(Sender: TObject); @@ -1767,7 +1722,7 @@ procedure TMainForm.docsItemClick(Sender: TObject); procedure TMainForm.downloadButtonClick(Sender: TObject); begin - Open(gitDownload, []); + Open(gitDownload); end; procedure TMainForm.exitItemClick(Sender: TObject); @@ -1813,8 +1768,8 @@ procedure TMainForm.FormCreate(Sender: TObject); begin {$IFDEF MSWINDOWS}DwmCompositionEnabled();{$ENDIF} FormatSettings := TFormatSettings.Invariant; - MainForm.Width := 768; - MainForm.Height := {$IFDEF MSWINDOWS}450{$ELSE MACOS}430{$ENDIF}; + MainForm.Width := 960; + MainForm.Height := 540; MainForm.Caption := 'AErender Launcher (' + APPVERSION + ')'; APPFOLDER := {$IFDEF MSWINDOWS}'C:\ProgramData\AErender\' {$ELSE MACOS}GetEnvironmentVariable('HOME') + '/Documents/AErender/'{$ENDIF}; @@ -1900,24 +1855,24 @@ procedure TMainForm.FormCreate(Sender: TObject); procedure TMainForm.FormResize(Sender: TObject); begin - // RU: Установка размеров для колонн в таблицах - StringColumn1.Width := compGrid.Width; - StringColumn2.Width := threadsGrid.Width * 0.5; - StringColumn3.Width := threadsGrid.Width * 0.5; + /// Composition grid collumns width +// StringColumn1.Width := compGrid.Width; +// StringColumn2.Width := threadsGrid.Width * 0.5; +// StringColumn3.Width := threadsGrid.Width * 0.5; - // RU: Ограничение ширины формы - if MainForm.Width < 600 then - MainForm.Width := 600; + /// Limit form's width + if MainForm.Width < SizeConstraints.MIN_WIDTH then + MainForm.Width := SizeConstraints.MIN_WIDTH; - // RU: Ограничение высоты формы в зависимости от платформы и видимости панели с обновлением + /// RU: Ограничение высоты формы в зависимости от платформы и видимости панели с обновлением if UpdateAvailable then begin - if MainForm.Height < {$IFDEF MSWINDOWS}490{$ENDIF MSWINDOWS} {$IFDEF MACOS}470{$ENDIF MACOS} then begin - MainForm.Height := {$IFDEF MSWINDOWS}490{$ENDIF MSWINDOWS} {$IFDEF MACOS}470{$ENDIF MACOS}; + if MainForm.Height < SizeConstraints.MIN_HEIGHT_UPD then begin + MainForm.Height := SizeConstraints.MIN_HEIGHT_UPD; {$IFDEF MSWINDOWS}Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);{$ENDIF MSWINDOWS} end; end else begin - if MainForm.Height < {$IFDEF MSWINDOWS}450{$ENDIF MSWINDOWS} {$IFDEF MACOS}430{$ENDIF MACOS} then begin - MainForm.Height := {$IFDEF MSWINDOWS}450{$ENDIF MSWINDOWS} {$IFDEF MACOS}430{$ENDIF MACOS}; + if MainForm.Height < SizeConstraints.MIN_HEIGHT_NO_UPD then begin + MainForm.Height := SizeConstraints.MIN_HEIGHT_NO_UPD; {$IFDEF MSWINDOWS}Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);{$ENDIF MSWINDOWS} end; end; @@ -2075,6 +2030,12 @@ procedure TMainForm.inFrameValidate(Sender: TObject; var Text: string); end; procedure TMainForm.launchButtonClick(Sender: TObject); +/// So, we need some rendering modes +/// NORMAL MODE: It's the old Launcher's behaviour +/// Will render all the compositions one-by-one and render them +/// if Composition.Split > 1, then all the splits will be rendered with default method in settings +/// + type exec = record script: String; @@ -2117,257 +2078,18 @@ exec = record end else } begin - {var Compositions: TList; - if compSwitch.IsChecked then - SetLength(Compositions, StrToInt(compCount.Value.ToString)) - else - SetLength(Compositions, 1); - for var i := 0 to StrToInt(compCount.Value.ToString) High(Compositions) do begin - var TempCompName: String; - - if compSwitch.IsChecked then - Compositions[i].CompName := compGrid.Cells[0, i] - else - Compositions[i].CompName := compName.Text; - //ShowMessage(IfThenElse(inFrame.Text = '', -1, StrToInt(inFrame.Text)).ToString); - //ShowMessage(IfThenElse(threadsSwitch.IsChecked = True, -1, 0).ToString()); - - if inFrame.Text = '' then - ShowMessage('Empty'); - - var TempInFrame: Integer; var tempOutFrame: Integer; - if inFrame.Text = '' then TempInFrame := -1 else TempInFrame := StrToInt(inFrame.Text); - if inFrame.Text = '' then TempInFrame := -1 else TempInFrame := StrToInt(outFrame.Text); + AbortRender := False; + ShowMessage(RenderTasks.Items[0].ToString); - Compositions[i].Frames := TFrameSpan.Create(TempInFrame, tempOutFrame); + /// It would be really nice to have an await keyword here, but... + RenderTasks[0].Render(); - Compositions[i].Split := IfThenElse(threadsSwitch.IsChecked = True, StrToInt(threadsCount.Text), 0); // yeet - end; - - var Task: TRenderTask := TRenderTask.Create( - projectPath.Text, - outputPath.Text, - outputModuleBox.Items[outputModuleBox.ItemIndex], - renderSettingsBox.Items[renderSettingsBox.ItemIndex], - missingFilesCheckbox.IsChecked, - soundCheckbox.IsChecked, - threadedRender.IsChecked, - IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''), // double yeet - cacheUsageTrackBar.Value, - memUsageTrackBar.Value, - Compositions - ); - } - //RenderTasks.Add(Task); - {$IFDEF DEBUG_MODE} - ShowMessage(RenderTasks.Items[0].ToString); - //ShowMessage(IntToStr(RenderTasks.Items[0].Count)); - for var Task: TRenderTask in RenderTasks do begin - Task.Render(); - ShowMessage(Format('RenderQueue.Count = %d; Task.Count = %d', [RenderQueue.Count, Task.Count])); - end; +// for var Task: TRenderTask in RenderTasks do begin +// Task.Render(4); +// end; - {$ENDIF} - //RenderTasks.Remove(Task); -// if threadsSwitch.IsChecked then -// begin -// threads := threadsCount.Text.ToInteger; -// SetLength (LogFiles, threads); -// end -// else -// begin -// threads := 1; -// if Length(LogFiles) = 0 then -// SetLength (LogFiles, threads); -// end; -// if compSwitch.IsChecked then -// begin -// comps := StrToInt(compCount.Value.ToString); -// SetLength (LogFiles, comps); -// end -// else -// begin -// comps := 1; -// if Length(LogFiles) = 0 then -// SetLength (LogFiles, comps); -// end; -// -// for var j := 0 to comps-1 do -// for var i := 1 to threads do -// begin -// /// Script compiling section -// -// // Clear the string -// execFile[i].script := ''; -// -// // Add encoding header to ensure that our CMD on Windows will use UTF-8 -// {$IFDEF MSWINDOWS} -// execFile[i].script := 'chcp 65001' + #13#10; -// {$ENDIF MSWINDOWS} -// -// // Make console output data from it if progress display is enabled -// // Made by using default in Shell and Bash ( command ) > data/output/path.log -// // Open bracket here -// if SettingsForm.HandleCheckBox.IsChecked then -// execFile[i].script := execFile[i].script + '('; -// -// // Ensure that logs paths won't comflict with each other -// if comps = 1 then -// logPath := APPFOLDER + compName.Text + '_' + i.ToString -// else -// logPath := APPFOLDER + compGrid.Cells[0, j] + '_' + i.ToString; -// -// // Add Pass output path to temporary wariable -// PATH := outputPath.Text; -// -// // Create folder if '[projectName]/' or '[projectName]\' is used -// // Because aerender won't do it for you -// if outputPath.Text.Contains('[projectName]' + PLATFORMPATHSEPARATOR) then -// begin -// PATH := StringReplace(PATH, '[projectName]', ExtractFileName(projectPath.Text), [rfReplaceAll, rfIgnoreCase]); -// if not DirectoryExists(ExtractFilePath(PATH)) then -// CreateDir(ExtractFilePath(PATH)); -// end; -// -// // Adjust file output path if split render is enabled -// // because they can conflict -// if threadsSwitch.IsChecked then -// begin -// var FilePath: String := ExtractFilePath(PATH); -// var FileName: String := StringReplace(ExtractFileName(PATH), ExtractFileExt(PATH), '', [rfReplaceAll, rfIgnoreCase]); -// var FileExt: String := ExtractFileExt(PATH); -// PATH := FilePath + FileName + '_' + i.ToString + FileExt; -// end; -// -// // Adjust file output path if multi comp render is enabled -// // because they can conflict -// if compSwitch.IsChecked then -// if not outputPath.Text.Contains('[compName]') then -// begin -// var FilePath: String := ExtractFilePath(PATH); -// var FileName: String := StringReplace(ExtractFileName(PATH), ExtractFileExt(PATH), '', [rfReplaceAll, rfIgnoreCase]); -// var FileExt: String := ExtractFileExt(PATH); -// PATH := FilePath + FileName + '_' + compGrid.Cells[0, j] + FileExt; -// end; -// -// /// Begin executable compiling section -// // Add aerender path to script -// execFile[i].script := execFile[i].script + '"' + AErenderPath + '" ' + '-project "' + projectPath.Text + '" -output "' + PATH + '" '; -// -// // Add comp name to script -// if compSwitch.IsChecked then -// execFile[i].script := execFile[i].script + '-comp "' + compGrid.Cells[0, j] + '" ' -// else -// execFile[i].script := execFile[i].script + '-comp "' + compName.Text + '" '; -// -// // Add start and end ranges to script -// if threadsSwitch.IsChecked then -// begin -// execFile[i].script := execFile[i].script + '-s "' + threadsGrid.Cells[0, i-1] + '" '; -// execFile[i].script := execFile[i].script + '-e "' + threadsGrid.Cells[1, i-1] + '" '; -// end -// else -// begin -// if not inFrame.Text.IsEmpty then -// execFile[i].script := execFile[i].script + '-s "' + inFrame.Text + '" '; -// if not outFrame.Text.IsEmpty then -// execFile[i].script := execFile[i].script + '-e "' + outFrame.Text + '" '; -// end; -// -// // Add sound flag to script -// if soundCheckbox.IsChecked then -// execFile[i].script := execFile[i].script + '-sound ON '; -// -// // Add multiprocessing flag to script -// if threadedRender.IsChecked then -// execFile[i].script := execFile[i].script + '-mp '; -// -// // Add missing footage flag to script -// if missingFilesCheckbox.IsChecked then -// execFile[i].script := execFile[i].script + '-continueOnMissingFootage '; -// -// // Add output module flag to script -// if outputModuleBox.ItemIndex <> -1 then -// execFile[i].script := execFile[i].script + '-OMtemplate "' + OutputModules[outputModuleBox.ItemIndex].Module + '" '; -// -// if renderSettingsBox.ItemIndex <> -1 then -// execFile[i].script := execFile[i].script + '-RStemplate "' + RenderSettings[renderSettingsBox.ItemIndex].Setting + '" '; -// -// // Add memory usage flags to script -// execFile[i].script := execFile[i].script + '-mem_usage "' + Trunc(memUsageTrackBar.Value).ToString + '" "' + Trunc(cacheUsageTrackBar.Value).ToString + '" '; -// -// // Add whatever user typed parameters to script -// if customCheckbox.IsChecked then -// execFile[i].script := execFile[i].script + customProp.Text; -// -// if SettingsForm.HandleCheckBox.IsChecked then -// begin -// execFile[i].script := execFile[i].script + ') > "' + logPath + '.log"'; -// -// if threadsSwitch.IsChecked then -// LogFiles[i-1] := logPath + '.log' -// else -// LogFiles[j] := logPath + '.log'; -// end; -// -// //File section -// {$IFDEF MSWINDOWS} -// if compSwitch.IsChecked then -// AssignFile (execFile[i].F, 'C:\ProgramData\AErender\aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.bat', CP_UTF8) -// else -// AssignFile (execFile[i].F, 'C:\ProgramData\AErender\aerender' + i.ToString + '.bat', CP_UTF8); -// Rewrite (execFile[i].F); -// Writeln (execFile[i].F, execFile[i].script); -// //Writeln (execFile[i].F, '@PAUSE'); -// CloseFile (execFile[i].F); -// if SettingsForm.HandleCheckBox.IsChecked then -// if compSwitch.IsChecked then -// ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.bat'), '', '', SW_HIDE) -// else -// ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'), '', '', SW_HIDE) -// else -// if compSwitch.IsChecked then -// ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.bat'), '', '', SW_SHOWNORMAL) -// else -// ShellExecute(0, 'OPEN', PChar('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'), '', '', SW_SHOWNORMAL) -// //Execute('C:\ProgramData\AErender\aerender' + i.ToString + '.bat'); -// {$ENDIF MSWINOWS} -// {$IFDEF MACOS} -// if compSwitch.IsChecked then -// AssignFile (execFile[i].F, GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command', CP_UTF8) -// else -// AssignFile (execFile[i].F, GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command', CP_UTF8); -// Rewrite (execFile[i].F); -// Writeln (execFile[i].F, execFile[i].script); -// //Writeln (execFile[i].F, 'read -p "Press any key to continue..."'); -// CloseFile (execFile[i].F); -// if SettingsForm.HandleCheckBox.IsChecked then -// if compSwitch.IsChecked then -// begin -// _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command"'))); -// _system(PAnsiChar('command "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command" & disown'))); -// end -// else -// begin -// _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'))); -// _system(PAnsiChar('command "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command" & disown'))); -// end -// else -// if compSwitch.IsChecked then -// begin -// _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command"'))); -// _system(PAnsiChar('open "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '_' + compGrid.Cells[0, j] + '.command"'))); -// end -// else -// begin -// _system(PAnsiChar('chmod +x "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'))); -// _system(PAnsiChar('open "' + AnsiString(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'))); -// //Execute(GetEnvironmentVariable('HOME') + '/Documents/AErender/aerender' + i.ToString + '.command"'); -// end -// {$ENDIF MACOS} -// end; // Wait untill aerender launches - //Sleep (200); + Sleep (200); if SettingsForm.HandleCheckBox.IsChecked then begin if RenderingUnit.VISIBLE then @@ -2730,7 +2452,7 @@ procedure TMainForm.TasksTreeViewItemDblClick(Sender: TObject); TaskEditorSaveButton.Visible := True; TaskEditorCreateTaskButton.Visible := False; - TaskEditorPopup.IsOpen := True;//PopupModal; + TaskEditorPopup.PopupModal; //IsOpen := True;//PopupModal; end; procedure TMainForm.TasksTreeViewDragChange(SourceItem, DestItem: TTreeViewItem; var Allow: Boolean); @@ -2898,36 +2620,36 @@ procedure TMainForm.threadsCountTyping(Sender: TObject); procedure TMainForm.threadsSwitchSwitch(Sender: TObject); begin - if threadsSwitch.IsChecked then - begin - if UpdateAvailable = True then - begin - if MainForm.Height <= 490 then - MainForm.Height := 630; - end - else - if MainForm.Height <= 450 then - MainForm.Height := 580; - - threadsSwitchLabel.Text := Language[LANG].MainForm.SplitRender; - outFrame.TextPrompt := Language[LANG].MainForm.EndFrameHint; - threadsGrid.AniCalculations.AutoShowing := False; - threadsGrid.Model.ScrollDirections := TScrollDirections.Vertical; - end - else - begin - if UpdateAvailable = True then - begin - if MainForm.WindowState <> TWindowState.wsMaximized then - MainForm.Height := 490 - end - else - if MainForm.WindowState <> TWindowState.wsMaximized then - MainForm.Height := 450; - - threadsSwitchLabel.Text := Language[LANG].MainForm.SingleRener; - outFrame.TextPrompt := ''; - end; +// if threadsSwitch.IsChecked then +// begin +// if UpdateAvailable = True then +// begin +// if MainForm.Height <= 490 then +// MainForm.Height := 630; +// end +// else +// if MainForm.Height <= 450 then +// MainForm.Height := 580; +// +// threadsSwitchLabel.Text := Language[LANG].MainForm.SplitRender; +// outFrame.TextPrompt := Language[LANG].MainForm.EndFrameHint; +// threadsGrid.AniCalculations.AutoShowing := False; +// threadsGrid.Model.ScrollDirections := TScrollDirections.Vertical; +// end +// else +// begin +// if UpdateAvailable = True then +// begin +// if MainForm.WindowState <> TWindowState.wsMaximized then +// MainForm.Height := 490 +// end +// else +// if MainForm.WindowState <> TWindowState.wsMaximized then +// MainForm.Height := 450; +// +// threadsSwitchLabel.Text := Language[LANG].MainForm.SingleRener; +// outFrame.TextPrompt := ''; +// end; end; procedure TMainForm.UpdateNetHTTPClientRequestCompleted(const Sender: TObject; const AResponse: IHTTPResponse); @@ -2941,17 +2663,14 @@ procedure TMainForm.UpdateNetHTTPClientRequestCompleted(const Sender: TObject; c UpdateAvailable := True; if UpdateAvailable then begin - if threadsSwitch.IsChecked or compSwitch.IsChecked then - MainForm.Height := 630 - else - MainForm.Height := {$IFDEF MSWINDOWS}490{$ENDIF MSWINDOWS} {$IFDEF MACOS}470{$ENDIF MACOS}; + MainForm.Height := SizeConstraints.MIN_HEIGHT_UPD; MainForm.UpdateInfo.Visible := True; MainForm.UpdateInfo.Enabled := True; MainForm.downloadButton.Text := Language[LANG].MainForm.Download + ' (' + gitVersion + ')'; {$IFDEF MSWINDOWS}gitDownload := gitRelease.A[0].P['assets'].A[1].P['browser_download_url'].Value;{$ENDIF MSWINDOWS} {$IFDEF MACOS}gitDownload := gitRelease.A[0].P['assets'].A[0].P['browser_download_url'].Value;{$ENDIF MACOS} end else begin - MainForm.Height := {$IFDEF MSWINDOWS}450{$ENDIF MSWINDOWS} {$IFDEF MACOS}430{$ENDIF MACOS}; + MainForm.Height := SizeConstraints.MIN_HEIGHT_NO_UPD; MainForm.UpdateInfo.Visible := False; MainForm.UpdateInfo.Enabled := False; end; @@ -3093,7 +2812,6 @@ procedure TMainForm.TaskEditorCreateTaskButtonClick(Sender: TObject); RenderTasks.Add(Task); {$IFDEF DEBUG_MODE} ShowMessage(RenderTasks.Items[0].ToString); - //ShowMessage(IntToStr(RenderTasks.Items[0].Count)); {$ENDIF} Compositions.Free; diff --git a/src/MainUnit.vlb b/src/MainUnit.vlb index 429514c..48748ef 100644 --- a/src/MainUnit.vlb +++ b/src/MainUnit.vlb @@ -58,9 +58,6 @@ Coordinates=1812,1266,102,33 [soundCheckbox] Coordinates=1047,1036,94,51 -[Image1] -Coordinates=372,1036,49,51 - [customProp] Coordinates=881,10,74,69 @@ -98,9 +95,6 @@ Coordinates=638,1266,74,33 [compLayout] Coordinates=528,1266,75,33 -[infoIconFill] -Coordinates=422,928,69,33 - [threadsLayout] Coordinates=406,1266,85,33 @@ -119,9 +113,6 @@ Coordinates=2493,1204,81,33 [StringColumn3] Coordinates=2256,1204,88,33 -[Image2] -Coordinates=797,1036,49,51 - [mainLayout] Coordinates=2149,1204,72,33 @@ -225,9 +216,6 @@ Coordinates=481,1002,97,33 [launcherLayout] Coordinates=2292,1120,91,33 -[settingsIconFill] -Coordinates=263,1002,89,33 - [cacheUsageTrackBar] Coordinates=2234,10,119,51 @@ -286,7 +274,7 @@ Coordinates=1179,1036,94,51 Coordinates=968,1036,90,51 [] -Coordinates=2124,1120,123,33 +Coordinates=797,1036,49,51 [threadsCount] Coordinates=400,580,81,123 diff --git a/src/OutputModuleEditorUnit.fmx b/src/OutputModuleEditorUnit.fmx index f02c093..423742c 100644 --- a/src/OutputModuleEditorUnit.fmx +++ b/src/OutputModuleEditorUnit.fmx @@ -297,8 +297,8 @@ object OutputModuleEditorForm: TOutputModuleEditorForm DefaultItemStyles.GroupHeaderStyle = '' DefaultItemStyles.GroupFooterStyle = '' OnChange = outputModulesBoxChange - Viewport.Width = 200.000000000000000000 - Viewport.Height = 342.000000000000000000 + Viewport.Width = 196.000000000000000000 + Viewport.Height = 338.000000000000000000 end object Splitter1: TSplitter Align = Left diff --git a/src/OutputModuleEditorUnit.pas b/src/OutputModuleEditorUnit.pas index 557dad8..4ce0805 100644 --- a/src/OutputModuleEditorUnit.pas +++ b/src/OutputModuleEditorUnit.pas @@ -52,6 +52,8 @@ interface FMX.Objects, FMX.Platform, + AErenderLauncher.Types, + MainUnit, {$IFDEF MSWINDOWS} @@ -109,9 +111,9 @@ TOutputModuleEditorForm = class(TForm) procedure SetLanguage(LanguageCode: Integer); private { Private declarations } - {$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} public { Public declarations } + {$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} end; //{$IFDEF MACOS}TOCLocalAccess = class(TOCLocal);{$ENDIF MACOS} {$IFDEF MACOS}procedure NSWindowEditStateChange (State: Boolean);{$ENDIF MACOS} @@ -128,7 +130,7 @@ //{$IFDEF MACOS}TOCLocalAccess = class(TOCLocal);{$ENDIF MACOS} var OutputModuleEditorForm: TOutputModuleEditorForm; FlagButton: TArray; - TempOutputModules: TArray; + TempOutputModules: TArray; implementation @@ -141,7 +143,7 @@ procedure TOutputModuleEditorForm.CreateHandle; var hWnd: HWND := FormToHWND(Self); SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) or WS_EX_APPWINDOW); - SetClassLong(hWnd, GCL_STYLE, GetClassLong(hWnd, GCL_STYLE) or CS_DROPSHADOW); + //SetClassLong(hWnd, GCL_STYLE, GetClassLong(hWnd, GCL_STYLE) or CS_DROPSHADOW); end; {$ENDIF MSWINDOWS} @@ -157,7 +159,7 @@ procedure NSWindowEditStateChange (State: Boolean); end; {$ENDIF MACOS} -function CompareOutputModules(a, b: TArray): Boolean; +function CompareOutputModules(a, b: TArray): Boolean; begin Result := False; if Length(a) = Length(b) then diff --git a/src/RenderingUnit.fmx b/src/RenderingUnit.fmx index 800a920..b7c7a80 100644 --- a/src/RenderingUnit.fmx +++ b/src/RenderingUnit.fmx @@ -3,8 +3,8 @@ object RenderingForm: TRenderingForm Left = 0 Top = 0 Caption = 'Rendering Progress' - ClientHeight = 448 - ClientWidth = 512 + ClientHeight = 460 + ClientWidth = 480 Position = MainFormCenter Quality = HighQuality StyleBook = MainForm.AERModernStyle @@ -24,15 +24,15 @@ object RenderingForm: TRenderingForm end object AErenderLayout: TLayout Align = Contents - Size.Width = 512.000000000000000000 - Size.Height = 448.000000000000000000 + Size.Width = 480.000000000000000000 + Size.Height = 460.000000000000000000 Size.PlatformDefault = False TabOrder = 4 object RenderingStatusBar: TStatusBar Align = MostBottom - Position.Y = 320.000000000000000000 + Position.Y = 332.000000000000000000 ShowSizeGrip = True - Size.Width = 512.000000000000000000 + Size.Width = 480.000000000000000000 Size.Height = 128.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -44,7 +44,7 @@ object RenderingForm: TRenderingForm Margins.Right = 10.000000000000000000 Position.X = 5.000000000000000000 Position.Y = 86.000000000000000000 - Size.Width = 98.000000000000000000 + Size.Width = 97.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False TextSettings.WordWrap = False @@ -55,7 +55,7 @@ object RenderingForm: TRenderingForm object statusBarSeparator1: TLine Align = Right LineType = Left - Position.X = 318.000000000000000000 + Position.X = 286.000000000000000000 Position.Y = 97.000000000000000000 Size.Width = 10.000000000000000000 Size.Height = 31.000000000000000000 @@ -67,7 +67,7 @@ object RenderingForm: TRenderingForm Margins.Top = 4.000000000000000000 Margins.Right = 24.000000000000000000 Margins.Bottom = 4.000000000000000000 - Position.X = 328.000000000000000000 + Position.X = 296.000000000000000000 Position.Y = 101.000000000000000000 Size.Width = 160.000000000000000000 Size.Height = 23.000000000000000000 @@ -78,7 +78,7 @@ object RenderingForm: TRenderingForm end object statusBarTopLayout: TLayout Align = Top - Size.Width = 512.000000000000000000 + Size.Width = 480.000000000000000000 Size.Height = 96.000000000000000000 Size.PlatformDefault = False TabOrder = 3 @@ -90,7 +90,7 @@ object RenderingForm: TRenderingForm Margins.Top = 8.000000000000000000 Margins.Right = 16.000000000000000000 Margins.Bottom = 8.000000000000000000 - Size.Width = 480.000000000000000000 + Size.Width = 448.000000000000000000 Size.Height = 23.000000000000000000 Size.PlatformDefault = False end @@ -102,7 +102,7 @@ object RenderingForm: TRenderingForm Margins.Bottom = 5.000000000000000000 Position.X = 15.000000000000000000 Position.Y = 69.000000000000000000 - Size.Width = 482.000000000000000000 + Size.Width = 450.000000000000000000 Size.Height = 22.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 16.000000000000000000 @@ -118,7 +118,7 @@ object RenderingForm: TRenderingForm Margins.Right = 16.000000000000000000 Position.X = 16.000000000000000000 Position.Y = 8.000000000000000000 - Size.Width = 480.000000000000000000 + Size.Width = 448.000000000000000000 Size.Height = 22.000000000000000000 Size.PlatformDefault = False TabOrder = 2 @@ -139,7 +139,7 @@ object RenderingForm: TRenderingForm Align = Right AutoSize = True StyledSettings = [Family, FontColor] - Position.X = 456.000000000000000000 + Position.X = 424.000000000000000000 Size.Width = 24.000000000000000000 Size.Height = 22.000000000000000000 Size.PlatformDefault = False @@ -157,7 +157,7 @@ object RenderingForm: TRenderingForm Align = Top LineType = Bottom Position.Y = 96.000000000000000000 - Size.Width = 512.000000000000000000 + Size.Width = 480.000000000000000000 Size.Height = 1.000000000000000000 Size.PlatformDefault = False Stroke.Color = xFF151515 @@ -188,7 +188,7 @@ object RenderingForm: TRenderingForm end end object RenderingToolBar: TToolBar - Size.Width = 512.000000000000000000 + Size.Width = 480.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 1 @@ -198,7 +198,7 @@ object RenderingForm: TRenderingForm StyledSettings = [Family, FontColor] Margins.Left = 20.000000000000000000 Position.X = 20.000000000000000000 - Size.Width = 148.000000000000000000 + Size.Width = 147.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 16.000000000000000000 @@ -214,7 +214,7 @@ object RenderingForm: TRenderingForm AutoSize = True StyledSettings = [Family, FontColor] Margins.Right = 20.000000000000000000 - Position.X = 492.000000000000000000 + Position.X = 460.000000000000000000 Size.Width = 0.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False @@ -232,16 +232,16 @@ object RenderingForm: TRenderingForm end object ProgressScrollBox: TVertScrollBox Align = Client - Size.Width = 512.000000000000000000 - Size.Height = 288.000000000000000000 + Size.Width = 480.000000000000000000 + Size.Height = 300.000000000000000000 Size.PlatformDefault = False - Viewport.Width = 512.000000000000000000 - Viewport.Height = 288.000000000000000000 + Viewport.Width = 480.000000000000000000 + Viewport.Height = 300.000000000000000000 object emptyLabel: TLabel Align = Client StyledSettings = [Family, FontColor] - Size.Width = 512.000000000000000000 - Size.Height = 288.000000000000000000 + Size.Width = 480.000000000000000000 + Size.Height = 300.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 20.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} diff --git a/src/RenderingUnit.pas b/src/RenderingUnit.pas index 6f15d1d..6f63685 100644 --- a/src/RenderingUnit.pas +++ b/src/RenderingUnit.pas @@ -35,6 +35,7 @@ interface System.Variants, System.Diagnostics, System.Generics.Collections, + System.RegularExpressions, FMX.Types, FMX.Controls, @@ -50,9 +51,11 @@ interface FMX.Effects, FMX.BufferedLayout, FMX.BehaviorManager, + FMX.RenderProgress, AErenderLauncher.AerenderParser, AErenderLauncher.Rendering, + AErenderLauncher.Math, {$IFDEF MSWINDOWS} System.Notification, FMX.TaskBar, FMX.Platform.Win, Winapi.Windows, Winapi.TlHelp32; @@ -92,7 +95,6 @@ TRenderingForm = class(TForm) StopwatchTimer: TTimer; projectNameLabel: TLabel; totalFramesLabel: TLabel; - procedure ShowLogButtonClick (Sender: TObject); procedure renderingTimerTimer(Sender: TObject); procedure FormShow(Sender: TObject); procedure abortRenderingButtonClick(Sender: TObject); @@ -101,8 +103,7 @@ TRenderingForm = class(TForm) procedure FormCreate(Sender: TObject); procedure SetLanguage(LanguageCode: Integer); - procedure RenderQueueNotify(Sender: TObject; const Item: TRenderObject; Action: TCollectionNotification); - + procedure RenderQueueNotify(Sender: TObject; const Item: String; Action: TCollectionNotification); private { Private declarations } public @@ -129,15 +130,12 @@ TRenderGroup = record RenderingForm: TRenderingForm; VISIBLE: Boolean = False; - /// We are using TArray<> here, because TList<> generates Access Violation error - /// when populated with non-existent items. We need a constructor for that, but duh... - /// Also, we can't use TObjectList<>, since TRenderGroup is a record, - /// not a class - also no constructor, duh... - /// So, it's easier to use simple TArray<>, that we'll have to reset when render finishes - RenderGroups: TArray; + RenderProgresses: TObjectList; CurrentTime: TDateTime; - { TODO -oLily Stilson -cRendering Unit - macOS : Add NSApplication.requestUserAttention for macOS when Rendering is finished } + CurrentlyRendering: Integer = 0; + + { DONE -oLily Stilson -cRendering Unit - macOS : Add NSApplication.requestUserAttention for macOS when Rendering is finished } implementation @@ -160,29 +158,51 @@ procedure TRenderingForm.CreateHandle; end; {$ENDIF MSWINDOWS} -function IntToCardinal(I: Integer): Cardinal; -begin - if I < 0 then - Result := 0 - else - Result := I; -end; - -procedure TRenderingForm.RenderQueueNotify(Sender: TObject; const Item: TRenderObject; Action: TCollectionNotification); +procedure TRenderingForm.RenderQueueNotify(Sender: TObject; const Item: String; Action: TCollectionNotification); begin - // Stop the timer temporarely + /// Stop the timer temporarely renderingTimer.Enabled := False; - // - ProgressScrollBox.DeleteChildren; - emptyLabel.Visible := RenderQueue.Count = 0; + var RegExMatch := TRegEx.Match(Item, '\[(.*?)\]\_\[(.*?)\]\_\[(.*?)\]\_\[(.*?)\]'); + + //ProgressScrollBox.BeginUpdate; + + case Action of + cnAdded: begin + var Progress: TRenderProgress := TRenderProgress.Create(nil); + Progress.Parent := ProgressScrollBox; + Progress.Align := TAlignLayout.Top; + Progress.Margins := TBounds.Create(TRectF.Create(8, 8, 8, 0)); + Progress.Composition := Format('%s[%s]', [RegExmatch.Groups[2].Value, (RenderQueue.IndexOf(Item) + 1).ToString]); + Progress.ST_WaitingForAErender := Language[LANG].RenderingForm.WaitingForAerender; + Progress.ST_Rendering := Language[LANG].RenderingForm.Rendering; + Progress.ST_FinishedRender := Language[LANG].RenderingForm.RenderingFinished; + Progress.ST_RenderError := Language[LANG].RenderingForm.RenderingError; + Progress.InFrame := -1; + Progress.OutFrame := 1; + Progress.Value := -1; + Progress.Log.Add('Launched ' + Item + #13#10); + + RenderProgresses.Add(Progress); + end; + cnRemoved: begin + var index: Integer := 0; + for var i := 0 to RenderProgresses.Count - 1 do + if (RenderProgresses[i].Composition = RegExmatch.Groups[2].Value) and (RenderProgresses[i].Value = RenderProgresses[i].OutFrame) then + index := i; + RenderProgresses.Delete(index); + end; + end; - ProgressScrollBox.BeginUpdate; + /// Clear scrollbox for progresses + //ProgressScrollBox.DeleteChildren; + //Finalize(RenderProgresses); + emptyLabel.Visible := RenderQueue.Count = 0; - for var RenderObject: TRenderObject in RenderQueue do begin - // - end; + //ProgressScrollBox.EndUpdate; + /// Enable timer back + renderingTimer.Enabled := True; end; procedure TRenderingForm.SetLanguage(LanguageCode: Integer); @@ -201,28 +221,23 @@ procedure TRenderingForm.abortRenderingButtonClick(Sender: TObject); begin try begin - // RU: Уничтожаем процесс After Effects'а + AbortRender := True; + if (TiledRenderThread <> nil) and (TiledRenderThread.Started) then + TiledRenderThread.Terminate; + /// Kill After Effects rendering process {$IFDEF MSWINDOWS}KillProcess('AfterFX.com');{$ENDIF MSWINDOWS} {$IFDEF MACOS}KillProcess('aerendercore');{$ENDIF MACOS} - // RU: Сброс состояния на панели задач + /// Reset taskbar's progress {$IFDEF MSWINDOWS}MainTaskBar.TaskBarState := 0;{$ENDIF MSWINDOWS} - // RU: Очищаем массив с путями к логам - Finalize(LogFiles); + /// Clear RenderQueue + RenderQueue.Clear; - // RU: Уничтожаем созданные в рантайме компоненты - for var i := 0 to High(RenderGroups) do begin - FreeAndNil(RenderGroups[i].RenderPanel); - end; - - // RU: Сбрасываем массив с группами прогресса - Finalize(RenderGroups); - - // RU: Отключаем ограничение на запуск рендеринга + /// Disable rendering start limitation isRendering := False; - // RU: Отключаем таймер и вовзращаем первые значения + /// Stop timer and reset progress values emptyLabel.Visible := True; emptyLabel.Enabled := True; renderingTimer.Enabled := False; @@ -243,8 +258,8 @@ procedure TRenderingForm.FormClose(Sender: TObject; var Action: TCloseAction); begin VISIBLE := False; - // RU: При закрытии формы, если рендеринг закончен - // очистить окно + /// If rendering is finished and there is still + /// something on the form while closing - clear it if TotalProgressBar.Value = TotalProgressBar.Max then begin abortRenderingButtonClick(Sender); @@ -255,14 +270,18 @@ procedure TRenderingForm.FormClose(Sender: TObject; var Action: TCloseAction); procedure TRenderingForm.FormCreate(Sender: TObject); begin - // RU: Сброс главного прогрессбара до нуля + /// Reset Total progressbar TotalProgressBar.Min := 0; TotalProgressBar.Max := 1; TotalProgressBar.Value := 0; - // RU: Активация плавного скроллинга списка потоков + /// Activate smooth scrolling of ScrollBox ProgressScrollBox.AniCalculations.Animation := True; + /// Create list for storing out progress components + RenderProgresses := TObjectList.Create; + + /// Assign event for RenderQueue RenderQueue.OnNotify := RenderQueueNotify; end; @@ -272,116 +291,8 @@ procedure TRenderingForm.FormShow(Sender: TObject); if MainUnit.RenderWindowSender = MainForm.launchButton then begin isRendering := True; - if Length(LogFiles) = 0 then - begin - emptyLabel.Visible := True; - emptyLabel.Enabled := True; - end - else - begin - emptyLabel.Visible := False; - emptyLabel.Enabled := False; - - projectNameLabel.Text := ExtractFileName(MainForm.projectPath.Text); - - // RU: Этот момент необходимо держать в голове - // Поскольку мы используем тут динамический массив TArray, - // то когда мы задаём ему какой-то размер, он будет сохранять - // все элементы внутри, даже если каждый из них будет FreeAndNil() - SetLength(RenderGroups, Length(MainUnit.LogFiles)); - - /// RU: Создание компонентов, демонстрирующих прогресс - for var i := 0 to High(RenderGroups) do begin - // RU: Создание фоновой TPanel - RenderGroups[i].RenderPanel := TPanel.Create(Self); - RenderGroups[i].RenderPanel.Parent := ProgressScrollBox; - RenderGroups[i].RenderPanel.Margins := TBounds.Create(TRectF.Create(8, 8, 8, 0)); - RenderGroups[i].RenderPanel.Align := TAlignLayout.Top; - RenderGroups[i].RenderPanel.Height := 48; - RenderGroups[i].RenderPanel.EnableDragHighlight := True; - - // RU: Создание названия композиции - RenderGroups[i].CompNameLabel := TLabel.Create(Self); - RenderGroups[i].CompNameLabel.Parent := RenderGroups[i].RenderPanel; - RenderGroups[i].CompNameLabel.Align := TAlignLayout.MostLeft; - RenderGroups[i].CompNameLabel.Margins := TBounds.Create(TRectF.Create(16, 8, 0, 8)); - RenderGroups[i].CompNameLabel.Text := ExtractFileName(MainUnit.LogFiles[i]).Replace(ExtractFileExt(MainUnit.LogFiles[i]), ''); - RenderGroups[i].CompNameLabel.Font.Size := 16; - RenderGroups[i].CompNameLabel.StyledSettings := [TStyledSetting.Family, TStyledSetting.Style, TStyledSetting.FontColor]; - RenderGroups[i].CompNameLabel.WordWrap := False; - RenderGroups[i].CompNameLabel.AutoSize := True; - RenderGroups[i].CompNameLabel.HitTest := False; - - // RU: Создание лейбла с кол-вом кадров - RenderGroups[i].FramesLabel := TLabel.Create(Self); - RenderGroups[i].FramesLabel.Parent := RenderGroups[i].RenderPanel; - RenderGroups[i].FramesLabel.Margins := TBounds.Create(TRectF.Create(8, 0, 16, 0)); - RenderGroups[i].FramesLabel.AutoSize := True; - RenderGroups[i].FramesLabel.WordWrap := False; - RenderGroups[i].FramesLabel.Align := TAlignLayout.MostRight; - RenderGroups[i].FramesLabel.StyledSettings := [TStyledSetting.Family, TStyledSetting.FontColor]; - RenderGroups[i].FramesLabel.Font.Size := 16; - //RenderGroups[i].FramesLabel.Font.Style := [TFontStyle.fsBold]; - RenderGroups[i].FramesLabel.TextAlign := TTextAlign.Trailing; - RenderGroups[i].FramesLabel.Text := '...'; - RenderGroups[i].FramesLabel.HitTest := False; - - // RU: Создание кнопки отображения логов - RenderGroups[i].LogButton := TButton.Create(Self); - RenderGroups[i].LogButton.Parent := RenderGroups[i].RenderPanel; - RenderGroups[i].LogButton.Align := TAlignLayout.MostRight; - RenderGroups[i].LogButton.StyleLookup := 'logbuttonstyle'; - RenderGroups[i].LogButton.Width := 48; - RenderGroups[i].LogButton.Position.X := 9999; - RenderGroups[i].LogButton.Tag := i; - RenderGroups[i].LogButton.OnClick := ShowLogButtonClick; - - // RU: Создание надписи над прогрессбаром - RenderGroups[i].StatusLabel := TLabel.Create(Self); - RenderGroups[i].StatusLabel.Parent := RenderGroups[i].RenderPanel; - RenderGroups[i].StatusLabel.Align := TAlignLayout.Top; - RenderGroups[i].StatusLabel.Margins := TBounds.Create(TRectF.Create(16, 8, 0, 0)); - RenderGroups[i].StatusLabel.StyledSettings := [TStyledSetting.Family, TStyledSetting.FontColor]; - RenderGroups[i].StatusLabel.Font.Style := [TFontStyle.fsBold]; - RenderGroups[i].StatusLabel.Text := Language[LANG].RenderingForm.WaitingForAerender; - RenderGroups[i].StatusLabel.HitTest := False; - - // RU: Создание прогрессбара - RenderGroups[i].RenderingProgress := TProgressBar.Create(Self); - RenderGroups[i].RenderingProgress.Align := TAlignLayout.Client; - RenderGroups[i].RenderingProgress.Parent := RenderGroups[i].RenderPanel; - RenderGroups[i].RenderingProgress.Margins := TBounds.Create(TRectF.Create(16, 4, 0, 16)); - RenderGroups[i].RenderingProgress.Height := 4; - RenderGroups[i].RenderingProgress.Value := 0; - RenderGroups[i].RenderingProgress.Max := 1; - RenderGroups[i].RenderingProgress.StyleLookup := 'progressbarministyle'; - RenderGroups[i].RenderingProgress.HitTest := False; - - // RU: Создание "заглушки" - RenderGroups[i].WaitProgress := TAniIndicator.Create(Self); - RenderGroups[i].WaitProgress.Align := TAlignLayout.Client; - RenderGroups[i].WaitProgress.Parent := RenderGroups[i].RenderPanel; - RenderGroups[i].WaitProgress.Margins := TBounds.Create(TRectF.Create(16, 4, 0, 16)); - RenderGroups[i].WaitProgress.Height := 4; - RenderGroups[i].WaitProgress.StyleLookup := 'aniindicatorhorzstyle'; - RenderGroups[i].WaitProgress.Enabled := True; - RenderGroups[i].WaitProgress.HitTest := False; - - // RU: Создание Memo для отображения логов - RenderGroups[i].LogMemo := TMemo.Create(Self); - RenderGroups[i].LogMemo.Parent := RenderGroups[i].RenderPanel; - RenderGroups[i].LogMemo.Align := TAlignLayout.MostBottom; - RenderGroups[i].LogMemo.Height := 192; - RenderGroups[i].LogMemo.Visible := False; - RenderGroups[i].LogMemo.StyledSettings := [TStyledSetting.Style, TStyledSetting.FontColor]; - RenderGroups[i].LogMemo.Font.Family := 'Consolas'; - RenderGroups[i].LogMemo.Font.Size := 12; - RenderGroups[i].LogMemo.ScrollAnimation := TBehaviorBoolean.True; - RenderGroups[i].LogMemo.WordWrap := True; - end; - end; - // RU: Запуск таймера рендеринга и секундомера + /// Start timer, stopwatch and enable Windows's taskbar progress renderingTimer.Enabled := True; CurrentTime := Now; StopwatchTimer.Enabled := True; @@ -390,29 +301,26 @@ procedure TRenderingForm.FormShow(Sender: TObject); end; procedure TRenderingForm.renderingTimerTimer(Sender: TObject); -// RU: Нам нужно создать какой-то тип данных, где для -// каждого потока мы будем читать, хранить и отображать -// то, что творится в логах. -// TStringList является тем, где TMemo хранит весь текст, -// посему он и будет использоваться для хранилища логов внутри программы. +/// We need some data type for a thread to store, +/// read and display whatever is happening in logs type - TRenderData = record // Непосредственно тип - LogFile: TStringList; // Сюда считываем лог - //Data: TStringList; // Не ебу, нахуй это нужно, но почему-то я его тут обозначил. Далее в коде оно нигде не использовалось. - Stream: TStream; // Поток, данные из котрого будут передаваться в переменную LogFile - State: Integer; // Обозначим для состояния рендеринга три цифры: -1 (ошибка), 0 (завершён), 1 (рендерится) + TRenderData = record /// The type itself + LogFile: TStringList; /// Logs will be stored here + //Data: TStringList; /// Have no fucking clue what it's doing here, but for whatever reason I put it here. And never used it anywhere in the code... + Stream: TStream; /// Reading thread. Data from here will be put in variable + State: Integer; /// Three states for rendering status: -1 (error), 0 (finished), 1 (rendering) end; var Render: TArray; begin - var Finished: Integer := 0; - var Error: Integer := 0; + //var Finished: Integer := 0; + //var Error: Integer := 0; var Completed: Integer := 0; - // RU: Создаём элементы в массиве с данными логов - SetLength(Render, Length(LogFiles)); + /// Create an array for logs + SetLength(Render, RenderQueue.Count); -// RU: Пока оставлю это в комментарии. Когда пойму, зачем это - восстановлю +/// Will be left commented, until I rememeber why I did this // for var j := 0 to High(Render) do // begin // Render[j].Data := TStringList.Create; @@ -420,118 +328,114 @@ TRenderData = record // Непосредственно тип // end; for var i := 0 to High(Render) do begin - // RU: Создаём хранилище для содержимого логов и устанавливаем ему кодировку + /// Create LogFile field and set it's encoding Render[i].LogFile := TStringList.Create; Render[i].LogFile.DefaultEncoding := TEncoding.UTF8; - try - // RU: Создаём поток, из которого потом перенесём данные в хранилище содержимого логов - // То есть, фактически, каждый раз файл лога считывается заново, - // держать в памяти всегда его не получится, да и смысла нет - он постоянно обновляется - Render[i].Stream := TFileStream.Create(LogFiles[i], fmOpenRead or fmShareDenyNone); + if FileExists(RenderQueue[i].Replace('.ext', '.log')) then try - Render[i].LogFile.LoadFromStream(Render[i].Stream); - finally - Render[i].Stream.Free; - end; + /// Create a stream here, from which we'll be copying data into + /// In fact, each time the log is read anew, we won't be able to hold it in memory + /// and we don't need to, since it's constantly updating - // RU: Если количество строк в файле лога оказалось больше, чем в LogMemo у конкретного - // потока, то нужно добавить эту строку в LogMemo и произвести её парсинг - if Render[i].LogFile.Count > RenderGroups[i].LogMemo.Lines.Count then begin - // RU: Добавляем строку и иттератор LogMemo посылаем в самый низ - RenderGroups[i].LogMemo.Lines.Add(Render[i].LogFile[RenderGroups[i].LogMemo.Lines.Count]); - RenderGroups[i].LogMemo.GoToTextEnd; - - // RU: При создании прогрессбара, мы обозначили его максимум как 1 - // Это поможет нам определить, какой поток уже узнал своё максимальное - // количество кадров, а какой ещё нет - // Тут, мы пытаемся получить какую-то базовую информацию о том, - // что мы сейчас будем рендерить - if RenderGroups[i].RenderingProgress.Max = 1 then begin - // RU: Если строка в конце лога содержит 'Duration: ', - // то мы пытаемся вытащить из неё длительность области рендеринга - if RenderGroups[i].LogMemo.Lines[RenderGroups[i].LogMemo.Lines.Count - 1].Contains('Duration: ') then - RenderGroups[i].Duration := ParseAErenderDurationLogString(RenderGroups[i].LogMemo.Lines[RenderGroups[i].LogMemo.Lines.Count - 1]); - - // RU: Если строка в конце лога содержит 'Frame Rate: ', - // то мы пытаемся вытащить из неё частоту кадров композиции - if RenderGroups[i].LogMemo.Lines[RenderGroups[i].LogMemo.Lines.Count - 1].Contains('Frame Rate: ') then - RenderGroups[i].FrameRate := ParseAErenderFrameRateLogString (RenderGroups[i].LogMemo.Lines[RenderGroups[i].LogMemo.Lines.Count - 1]); - - // RU: Если у нас есть длительность и частота кадров, - // То нам нужно вычислить конечное значение кадров для прогрессбара - // И ещё, нужно скрыть WaitProgress - if (RenderGroups[i].Duration.ToSingleString <> '0:00:00:00') and (RenderGroups[i].FrameRate <> 0) then begin - RenderGroups[i].RenderingProgress.Max := TimecodeToFrames(RenderGroups[i].Duration, RenderGroups[i].FrameRate); - RenderGroups[i].WaitProgress.Visible := False; - RenderGroups[i].WaitProgress.Enabled := False; - end; + Render[i].Stream := TFileStream.Create(RenderQueue[i].Replace('.ext', '.log'), fmOpenRead or fmShareDenyNone); + try + Render[i].LogFile.LoadFromStream(Render[i].Stream); + finally + Render[i].Stream.Free; end; - end; - // RU: Подсчитываем общее количество кадров - // Тип Single, потому что у прогрессбаров значения этого типа - var TotalFrames: Single := 1; - for var j := 0 to High(RenderGroups) do - if RenderGroups[j].RenderingProgress.Max <> 1 then - TotalFrames := TotalFrames + RenderGroups[j].RenderingProgress.Max; - - // RU: Начинаем отображение прогресса, только если у нас известно конечное значение кадров - if RenderGroups[i].RenderingProgress.Max <> 1 then begin - // RU: Пробуем парсить последнюю строку лога - // Пока в строке не появятся нужные данные, функция ParseAErenderFrameLogString - // будет выплёвывать исключения. Если мы ловим это исключение, - // то прогрессбару присваиваем ЕГО ЖЕ значение. Потому что, при окончании рендеринга, может быть - // выкинуто исключение и из-за этого общий прогрессбар обосрётся - // Таким образом, мы отсеиваем все строки, до момента как aerender начинает показывать прогресс - try - var AERP: TAErenderFrameData := ParseAErenderFrameLogString(RenderGroups[i].LogMemo.Lines[RenderGroups[i].LogMemo.Lines.Count - 1]); - RenderGroups[i].RenderingProgress.Value := AERP.Frame; - RenderGroups[i].StatusLabel.Text := Language[LANG].RenderingForm.Rendering; - RenderGroups[i].FramesLabel.Text := Format('%s / %s', [RenderGroups[i].RenderingProgress.Value.ToString, RenderGroups[i].RenderingProgress.Max.ToString]); - except - on Exception do - RenderGroups[i].RenderingProgress.Value := RenderGroups[i].RenderingProgress.Value; + /// If the ammount of lines in log file is more than out Memo has, then we + /// just need to append this line and parse it + if Render[i].LogFile.Count > RenderProgresses[i].Log.Count then begin + /// Append the last line to the log and scroll to Memo bottom + RenderProgresses[i].Log.Add(Render[i].LogFile[RenderProgresses[i].Log.Count]); + RenderProgresses[i].GoToTextEnd; + + /// The TRenderProgress component has it's default max value at 1 + /// This will help us to determine, which thread already has it's max + /// ammount of frames and which not yet. + /// Here we will read some basic information of what we're going to render + if RenderProgresses[i].OutFrame = 1 then begin + /// If log's last line contains 'Duration: ', then we're going to + /// parce that string and extract that information into a temporary variable + if RenderProgresses[i].Log[RenderProgresses[i].Log.Count - 1].Contains('Duration: ') then + RenderProgresses[i].Duration := ParseAErenderDurationLogString(RenderProgresses[i].Log[RenderProgresses[i].Log.Count - 1]); + + /// If log's last line contains 'Frame Rate: ', then we're going to + /// parce that string and extract that information into a temporary variable + if RenderProgresses[i].Log[RenderProgresses[i].Log.Count - 1].Contains('Frame Rate: ') then + RenderProgresses[i].FrameRate := ParseAErenderFrameRateLogString(RenderProgresses[i].Log[RenderProgresses[i].Log.Count - 1]); + + /// if we successfully got Duration and Framerate, + /// then we need to calculate max value for our progress bar. + /// + /// Doing it this way is much more accurate then extracting it with + /// RegEx from executable's file name + if (RenderProgresses[i].Duration.ToSingleString <> '0:00:00:00') and (RenderProgresses[i].FrameRate <> 0) then begin + RenderProgresses[i].OutFrame := TimecodeToFrames(RenderProgresses[i].Duration, RenderProgresses[i].FrameRate); + end; + end; end; - end; - // RU: Проверяем, закончен рендеринг или нет - if RenderGroups[i].LogMemo.Text.Contains('Finished composition') then begin - Render[i].State := 0; - RenderGroups[i].StatusLabel.Text := Language[LANG].RenderingForm.RenderingFinished; - RenderGroups[i].RenderingProgress.Value := RenderGroups[i].RenderingProgress.Max; - end; - // RU: Проверяем, была ошибка или нет - if RenderGroups[i].LogMemo.Text.Contains('ERROR:') or RenderGroups[i].LogMemo.Text.Contains('USAGE:') then begin - Render[i].State := -1; - RenderGroups[i].WaitProgress.Visible := False; - RenderGroups[i].WaitProgress.Enabled := False; - RenderGroups[i].StatusLabel.Text := Language[LANG].RenderingForm.RenderingError; - RenderGroups[i].RenderingProgress.Value := RenderGroups[i].RenderingProgress.Max; - RenderGroups[i].RenderingProgress.StyleLookup := 'progressbarminierrorstyle' - end; + /// Count total frames from all progresses + var TotalFrames: Single := 1; + for var j := 0 to RenderProgresses.Count - 1 do + if RenderProgresses[j].OutFrame <> 1 then + TotalFrames := TotalFrames + RenderProgresses[j].OutFrame; + + /// Start displaying progress only if we know the total ammount of frames + if RenderProgresses[i].OutFrame <> 1 then begin + /// Try to parce log's last line + /// Until we will get some data, the function + /// will be throwing exceptions. If we catch this exception, we'll just leave + /// progress' value unchanged. This saves us from exceptions at the end of rendering + /// Here we just ignoring all the useless for Parser lines + try + var AERP: TAErenderFrameData := ParseAErenderFrameLogString(RenderProgresses[i].Log[RenderProgresses[i].Log.Count - 1]); + RenderProgresses[i].Value := AERP.Frame; + //RenderProgresses[i].StatusLabel.Text := Language[LANG].RenderingForm.Rendering; + //RenderProgresses[i].FramesLabel.Text := Format('%s / %s', [RenderGroups[i].RenderingProgress.Value.ToString, RenderGroups[i].RenderingProgress.Max.ToString]); + except + on Exception do + RenderProgresses[i].Value := RenderProgresses[i].Value; + end; + end; + + /// Check if the rendering is finished yet or not + if RenderProgresses[i].Log.Text.Contains('Finished composition') then begin + Render[i].State := 0; + //RenderProgresses[i]..Text := Language[LANG].RenderingForm.RenderingFinished; + RenderProgresses[i].Value := RenderProgresses[i].OutFrame; + end; + /// Check if the rendering finished with an error + if RenderProgresses[i].Log.Text.Contains('ERROR:') or RenderProgresses[i].Log.Text.Contains('USAGE:') then begin + Render[i].State := -1; + RenderProgresses[i].Value := RenderProgresses[i].OutFrame; + RenderProgresses[i].IsError := True; + end; - // RU: Общему прогрессбару устанавливаем текущее значение - if TotalProgressBar.Max <> TotalFrames then begin - TotalProgressBar.Max := TotalFrames; - end else begin - // RU: Подсчитываем общее текущее значение и присваиваем его - var sum: Single := 0; - for var j := 0 to High(RenderGroups) do - if Render[j].State <> -1 then - sum := sum + RenderGroups[j].RenderingProgress.Value; - - TotalProgressBar.Value := sum; - totalProgressPercentage.Text := Trunc((TotalProgressBar.Value / TotalProgressBar.Max) * 100).ToString + '%'; - {$IFDEF MSWINDOWS}MainTaskBar.TaskBarProgress := Trunc((TotalProgressBar.Value / TotalProgressBar.Max) * 100);{$ENDIF MSWINDOWS} - if (TotalProgressBar.Max = 0) or (TotalProgressBar.Max = 1) then - framesLabel.Text := Language[LANG].RenderingForm.WaitingForAerender - else - framesLabel.Text := TotalProgressBar.Value.ToString + ' / ' + (TotalProgressBar.Max - 1).ToString; + /// Set TotalProgressBar's max value, if it's not updated + if TotalProgressBar.Max <> TotalFrames then begin + TotalProgressBar.Max := TotalFrames; + end else begin + /// Count total rendered frames + var sum: Single := 0; + for var j := 0 to RenderProgresses.Count - 1 do + if Render[j].State <> -1 then + sum := sum + RenderProgresses[j].Value; + + TotalProgressBar.Value := sum; + totalProgressPercentage.Text := Trunc((TotalProgressBar.Value / TotalProgressBar.Max) * 100).ToString + '%'; + {$IFDEF MSWINDOWS}MainTaskBar.TaskBarProgress := Trunc((TotalProgressBar.Value / TotalProgressBar.Max) * 100);{$ENDIF MSWINDOWS} + if (TotalProgressBar.Max = 0) or (TotalProgressBar.Max = 1) then + framesLabel.Text := Language[LANG].RenderingForm.WaitingForAerender + else + framesLabel.Text := TotalProgressBar.Value.ToString + ' / ' + (TotalProgressBar.Max - 1).ToString; + end; + finally + FreeAndNil(Render[i].LogFile); // RU: Уничтожаем контейнер с логом, чтобы не было проблем end; - finally - FreeAndNil(Render[i].LogFile); // RU: Уничтожаем контейнер с логом, чтобы не было проблем - end; end; {for var i := 0 to High(Render) do @@ -542,57 +446,42 @@ TRenderData = record // Непосредственно тип if Render[i].State = -1 then inc (Error);} - // RU: Подсчитываем, сколько потоков завершили рендеринг - // Если рендеринг завершился с ошибкой, всё равно учитываем - // иначе таймер никогда не остановится - for var i := 0 to High(RenderGroups) do - if RenderGroups[i].RenderingProgress.Value = RenderGroups[i].RenderingProgress.Max then - inc (Completed); - - // RU: Если количество потоков, завершивших рендеринг совпадает - // с общим количеством потоков - всё окей, можно останавливать таймер - if (Completed = Length(LogFiles)) then - begin - // RU: Останавливаем секундомер - StopwatchTimer.Enabled := False; - - for var i := 0 to High(RenderGroups) do - if Render[i].State <> -1 then - RenderGroups[i].StatusLabel.Text := Language[LANG].RenderingForm.RenderingFinished; - - // RU: Полностью очищаем массив с данными логов - Finalize(Render); - - TotalProgressBar.Value := TotalProgressBar.Max; - totalProgressPercentage.Text := '100%'; - - {$IFDEF MSWINDOWS} - FlashWindow(ApplicationHWND, True); - //if Error = 0 then - MainTaskBar.TaskBarState := 0; - {if (Error > 0) and (Error <> Length(LogFiles)) then - MainTaskBar.TaskBarState := 4; - if Error = Length(LogFiles) then - MainTaskBar.TaskBarState := 3;} - {$ENDIF MSWINDOWS} - - {$IFDEF MACOS} - var Application: NSApplication := TNSApplication.Wrap(TNSApplication.OCClass.sharedApplication); - Application.requestUserAttention(NSCriticalRequest); - {$ENDIF MACOS} - - renderingTimer.Enabled := False; - end; -end; - -procedure TRenderingForm.ShowLogButtonClick (Sender: TObject); -begin - if RenderGroups[TButton(Sender).Tag].LogMemo.Visible = False then begin - RenderGroups[TButton(Sender).Tag].LogMemo.Visible := True; - RenderGroups[TButton(Sender).Tag].RenderPanel.Height := RenderGroups[TButton(Sender).Tag].RenderPanel.Height + 192; - end else begin - RenderGroups[TButton(Sender).Tag].LogMemo.Visible := False; - RenderGroups[TButton(Sender).Tag].RenderPanel.Height := RenderGroups[TButton(Sender).Tag].RenderPanel.Height - 192; + /// Count how many threads have already finished + /// Count even if it's errored, otherwise timer + /// will never stop + for var i := 0 to RenderProgresses.Count - 1 do + if RenderProgresses[i].Value = RenderProgresses[i].OutFrame then + inc(Completed); + + /// If completed threads count == total threads count + /// we can safely stop the timer + if (Completed = RenderQueue.Count) then begin + /// Stop the timer + StopwatchTimer.Enabled := False; + + {for var i := 0 to High(RenderGroups) do + if Render[i].State <> -1 then + RenderGroups[i].StatusLabel.Text := Language[LANG].RenderingForm.RenderingFinished;} + + /// Completely erase our array with logs' data + Finalize(Render); + + TotalProgressBar.Value := TotalProgressBar.Max; + totalProgressPercentage.Text := '100%'; + + {$IFDEF MSWINDOWS} + FlashWindow(ApplicationHWND, True); + MainTaskBar.TaskBarState := 0; + {if (Error > 0) and (Error <> Length(LogFiles)) then + MainTaskBar.TaskBarState := 4; + if Error = Length(LogFiles) then + MainTaskBar.TaskBarState := 3;} + {$ELSE MACOS} + var Application: NSApplication := TNSApplication.Wrap(TNSApplication.OCClass.sharedApplication); + Application.requestUserAttention(NSCriticalRequest); + {$ENDIF} + + renderingTimer.Enabled := False; end; end; diff --git a/src/SettingsUnit.fmx b/src/SettingsUnit.fmx index 1a1cd9d..491032f 100644 --- a/src/SettingsUnit.fmx +++ b/src/SettingsUnit.fmx @@ -90,7 +90,6 @@ object SettingsForm: TSettingsForm TabOrder = 0 object HandleCheckBox: TCheckBox Align = Client - Hint = 'Not available on macOS now!' IsChecked = True Margins.Left = 8.000000000000000000 Margins.Right = 8.000000000000000000 @@ -114,7 +113,7 @@ object SettingsForm: TSettingsForm IsChecked = True Margins.Left = 8.000000000000000000 Margins.Right = 8.000000000000000000 - Size.Width = 412.000000000000000000 + Size.Width = 414.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TabOrder = 0 @@ -126,8 +125,8 @@ object SettingsForm: TSettingsForm AutoSize = True Enabled = False Margins.Right = 16.000000000000000000 - Position.X = 428.000000000000000000 - Size.Width = 114.000000000000000000 + Position.X = 430.000000000000000000 + Size.Width = 112.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False TextSettings.WordWrap = False @@ -593,7 +592,7 @@ object SettingsForm: TSettingsForm Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False - TabOrder = 2 + TabOrder = 3 object defOutPathLabel: TLabel Align = Left Margins.Left = 8.000000000000000000 @@ -629,11 +628,13 @@ object SettingsForm: TSettingsForm end object GridPanelLayout2: TGridPanelLayout Align = Top + Enabled = False Position.Y = 128.000000000000000000 Size.Width = 558.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False - TabOrder = 3 + Visible = False + TabOrder = 4 ColumnCollection = < item Value = 64.999999999999960000 @@ -742,7 +743,7 @@ object SettingsForm: TSettingsForm TextSettings.WordWrap = False Text = 'Limit to' end - object Edit1: TEdit + object MaxThreadsCountEdit: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Left KeyboardType = DecimalNumberPad @@ -766,6 +767,51 @@ object SettingsForm: TSettingsForm end end end + object limitRenderLayout: TLayout + Align = Top + Position.Y = 128.000000000000000000 + Size.Width = 558.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TabOrder = 2 + object limitRenderCheckbox: TCheckBox + Align = Left + IsChecked = True + Margins.Left = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Position.X = 8.000000000000000000 + Size.Width = 209.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + TabOrder = 0 + Text = 'Limit render threads amount to' + OnChange = limitRenderCheckboxChange + end + object limitRenderEdit: TEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] + Align = Client + TabOrder = 1 + KeyboardType = NumberPad + FilterChar = '1234567890' + Margins.Top = 4.000000000000000000 + Margins.Right = 4.000000000000000000 + Margins.Bottom = 4.000000000000000000 + Size.Width = 91.000000000000000000 + Size.Height = 24.000000000000000000 + Size.PlatformDefault = False + KillFocusByReturn = True + end + object limitRenderSubLabel: TLabel + Align = Right + Margins.Left = 8.000000000000000000 + Position.X = 328.000000000000000000 + Size.Width = 230.000000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + Text = 'simultaneous renders' + TabOrder = 2 + end + end end end object hiddenS: TPopupMenu diff --git a/src/SettingsUnit.pas b/src/SettingsUnit.pas index b8a9986..aac98ce 100644 --- a/src/SettingsUnit.pas +++ b/src/SettingsUnit.pas @@ -55,6 +55,8 @@ interface FMX.Menus, {$ENDREGION} + AErenderLauncher.SysUtils, + {$REGION ' Windows Only Libraries '}{$IFDEF MSWINDOWS} Winapi.ShellAPI, Winapi.Windows, FMX.Platform.Win, Winapi.TlHelp32; {$ENDIF MSWINDOWS}{$ENDREGION} @@ -125,9 +127,13 @@ TSettingsForm = class(TForm) SpeedButton2: TSpeedButton; Layout4: TLayout; Label1: TLabel; - Edit1: TEdit; + MaxThreadsCountEdit: TEdit; Label2: TLabel; TempFilesLabel: TLabel; + limitRenderLayout: TLayout; + limitRenderCheckbox: TCheckBox; + limitRenderEdit: TEdit; + limitRenderSubLabel: TLabel; procedure langBoxChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure aerenderPathSelectClick(Sender: TObject); @@ -150,11 +156,13 @@ TSettingsForm = class(TForm) procedure SetLanguage(LanguageCode: Integer); procedure openConfigClick(Sender: TObject); procedure resetLanucherClick(Sender: TObject); + procedure limitRenderCheckboxChange(Sender: TObject); private { Private declarations } - {$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} + public { Public declarations } + {$IFDEF MSWINDOWS}procedure CreateHandle; override;{$ENDIF MSWINDOWS} end; procedure ChangeDPI(DPI: Single); @@ -252,16 +260,6 @@ function DetectAerender: String; Result := maxVerStr; end; -function GetTempFilesCount: Integer; -begin - var LauncherDirectory: TArray := GetDirectoryFiles(APPFOLDER); - var Res: Integer := 0; - for var i := 0 to High(LauncherDirectory) do - if (LauncherDirectory[i].Contains('.bat')) or (LauncherDirectory[i].Contains('.command')) or (LauncherDirectory[i].Contains('.log')) then - inc(Res); - Result := Res; -end; - procedure TSettingsForm.SetLanguage(LanguageCode: Integer); begin SettingsForm.Caption := Language[LanguageCode].SettingsForm.LauncherSettings; @@ -463,6 +461,7 @@ procedure TSettingsForm.FormCreate(Sender: TObject); AERPATH := ''; end; {$IFDEF MSWINDOWS}OpenDialog1.InitialDir := 'C:\Program Files\Adobe';{$ENDIF MSWINDOWS} + limitRenderEdit.Text := (GetPlatformThreadsCount / 2).ToString; end); AErenderDetectionThread.Start; @@ -525,6 +524,11 @@ procedure TSettingsForm.langBoxChange(Sender: TObject); //MainUnit.ChangeLanguage(langBox.ItemIndex); end; +procedure TSettingsForm.limitRenderCheckboxChange(Sender: TObject); +begin + limitRenderEdit.Enabled := limitRenderCheckbox.IsChecked; +end; + procedure TSettingsForm.onRenderStartBoxChange(Sender: TObject); begin //ONRENDERSTART := onRenderStartBox.ItemIndex; diff --git a/src/lib/AErenderLauncher.AerenderParser.pas b/src/lib/AErenderLauncher.AerenderParser.pas index 0f7dac6..f36c4db 100644 --- a/src/lib/AErenderLauncher.AerenderParser.pas +++ b/src/lib/AErenderLauncher.AerenderParser.pas @@ -72,6 +72,11 @@ TTimecode = record /// Calculates total ammount of seconds from timecode /// function ToSeconds(): Cardinal; + + /// + /// Calculates total ammount of frames from timecode + /// + function ToFrames(): Cardinal; end; /// @@ -170,6 +175,12 @@ function TTimecode.ToSeconds(): Cardinal; Result := (Self.H * 60 * 60) + (Self.MM * 60) + Self.SS; end; +function TTimecode.ToFrames(): Cardinal; +begin + // {H -> MM} + {MM -> SS} + SS + Result := (Self.H * 60 * 60) + (Self.MM * 60) + Self.SS + Self.FR; +end; + function StrToTimecode (const ITimecodeString: String; var ATimecode: TTimecode): String; var ATimecodeString: String; diff --git a/src/lib/AErenderLauncher.IO.pas b/src/lib/AErenderLauncher.IO.pas index dd46843..d851cf7 100644 --- a/src/lib/AErenderLauncher.IO.pas +++ b/src/lib/AErenderLauncher.IO.pas @@ -10,7 +10,7 @@ interface Posix.Stdlib, Posix.Unistd; {$ENDIF} - function Open(Path: String; Args: TArray): Integer; + function Open(Path: String; Args: TArray = []): Integer; function Execute(Path: String): Integer; function BackgroundExecute(Path: String): Integer; @@ -19,12 +19,12 @@ interface implementation -function Open(Path: String; Args: TArray): Integer; +function Open(Path: String; Args: TArray = []): Integer; begin {$IFDEF MSWINDOWS} var TempPath: String := Path; for var i := 0 to High(Args) do - Path := Path + Args[i]; + TempPath := TempPath + Args[i]; Result := ShellExecute(0, 'open', PWideChar(TempPath), nil, nil, SW_SHOW); {$ELSE MACOS} @@ -41,7 +41,7 @@ function Execute(Path: String): Integer; {$IFDEF MSWINDOWS} Result := ShellExecute(0, 'OPEN', PWideChar(Path), '', '', SW_SHOWNORMAL) {$ELSE MACOS} - _system(PAnsiChar(Format('chmox +x "%s"', [AnsiString(Path)]))); + _system(PAnsiChar(Format('chmod +x "%s"', [AnsiString(Path)]))); Result := _system(PAnsiChar(Format('command "%s"', [AnsiString(Path)]))); {$ENDIF} end; @@ -49,10 +49,16 @@ function Execute(Path: String): Integer; function BackgroundExecute(Path: String): Integer; begin {$IFDEF MSWINDOWS} - Result := ShellExecute(0, 'OPEN', PWideChar(Path), '', '', SW_HIDE) + Result := ShellExecute(0, 'OPEN', PWideChar(Path), '', '', SW_HIDE); +// var exInfo: SHELLEXECUTEINFO; +// exInfo.lpVerb := 'open'; +// exInfo.lpFile := PWideChar(Path); +// exInfo.nShow := SW_HIDE; +// exInfo.fMask := SEE_MASK_NOCLOSEPROCESS; +// Result := ShellExecuteExA(@exInfo).ToInteger; {$ELSE MACOS} - _system(PAnsiChar('chmox +x ' + AnsiString('"' + Path + '"'))); - Result := _system(PAnsiChar('command ' + AnsiString('"' + Path + '" & disown'))); + _system(PAnsiChar(Format('chmod +x "%s"', [AnsiString(Path)]))); + Result := _system(PAnsiChar(Format('command "%s" & disown', [AnsiString(Path)]))); {$ENDIF} end; diff --git a/src/lib/AErenderLauncher.Math.pas b/src/lib/AErenderLauncher.Math.pas index 66bd2ad..19d8cee 100644 --- a/src/lib/AErenderLauncher.Math.pas +++ b/src/lib/AErenderLauncher.Math.pas @@ -8,6 +8,8 @@ interface function IfThenElse(const AValue: Boolean; const ATrue: Integer; const AFalse: Integer): Integer; overload; function IfThenElse(const AValue: Boolean; const ATrue: Variant; const AFalse: Variant): Variant; overload; + function IntToCardinal(I: Integer): Cardinal; + implementation {function IfThen(const AValue: Boolean; const ATrue: Variant): Variant; @@ -39,4 +41,12 @@ function IfThenElse(const AValue: Boolean; const ATrue: Variant; const AFalse: V Result := AFalse; end; +function IntToCardinal(I: Integer): Cardinal; +begin + if I < 0 then + Result := 0 + else + Result := I; +end; + end. diff --git a/src/lib/AErenderLauncher.Rendering.pas b/src/lib/AErenderLauncher.Rendering.pas index 6ef33ec..d0bd1df 100644 --- a/src/lib/AErenderLauncher.Rendering.pas +++ b/src/lib/AErenderLauncher.Rendering.pas @@ -8,9 +8,6 @@ interface System.SysUtils, System.Classes, System.Generics.Collections, System.JSON, AErenderLauncher.Math, AErenderLauncher.IO, AErenderLauncher.AerenderParser; -//const -// RM_NORMAL = 0; RM_TILED = 1; RM_ALL_AT_ONCE = 2; - type AERParamException = class(Exception); AERFrameSpanException = class(Exception); @@ -18,22 +15,22 @@ AERCompositionException = class(Exception); TRenderState = (RS_WAITING, RS_RENDERING, RS_FINISHED, RS_STOPPED, RS_ERROR); TRenderMode = (RM_NORMAL, RM_TILED, RM_ALL_AT_ONCE); - //TRenderMode = Cardinal; - // TExecutable = record Contents: WideString; Exec: TextFile; + /// Add procedure to start executable end; - // + /// TFrameSpan = record StartFrame, EndFrame: Integer; constructor Create(const StartFrame, EndFrame: Integer); overload; constructor Create(const StartFrame, EndFrame: String); overload; function Split(const Division: Integer): TArray; end; - // + + /// TComposition = record CompName: String; Frames: TFrameSpan; @@ -43,24 +40,23 @@ TComposition = record constructor Create(const CompName: String; const Frames: TFrameSpan; const Split: Integer = 1); end; - TRenderObject = record - LogFile: String; - Duration: TTimecode; - Framerate: TFrameRate; - constructor Create(const ALogFile: String; const ADuration: TTimecode; const AFramerate: TFrameRate); - end; + /// Rendering Events +// TRenderStartEvent = procedure (Task: TObject) of object; +// TRenderFinishEvent = procedure (Task: TObject) of object; - TRenderThread = class(TThread) - private - IsRendering: Boolean; - published - procedure Execute; override; + /// + /// Structure that contains basic required + /// data for displaying rendering progress + /// ; const ARenderMode: TRenderMode); overload; + //constructor Create(const ALogFile: String; const ATask: TRenderTask); overload; deprecated 'Use non-overloaded constructor'; end; - // Rendering Envents - TRenderStartEvent = procedure (Task: TObject) of object; - TRenderFinishEvent = procedure (Task: TObject) of object; - /// /// Class for storing rendering tasks data /// @@ -83,8 +79,8 @@ TRenderTask = class(TObject) //FRenderThread: TRenderThread; - FRenderStartEvent: TRenderStartEvent; - FRenderFinishEvent: TRenderFinishEvent; +// FRenderStartEvent: TRenderStartEvent; +// FRenderFinishEvent: TRenderFinishEvent; //procedure TaskTerminate(Sender: TObject); function ToExec: TList; @@ -110,8 +106,8 @@ TRenderTask = class(TObject) property LogFilePaths: TList read FLogFilePaths write FLogFilePaths; property State: TRenderState read FState write FState default TRenderState.RS_WAITING; - property OnRenderStart: TRenderStartEvent read FRenderStartEvent write FRenderStartEvent; - property OnRenderFinish: TRenderFinishEvent read FRenderFinishEvent write FRenderFinishEvent; +// property OnRenderStart: TRenderStartEvent read FRenderStartEvent write FRenderStartEvent; +// property OnRenderFinish: TRenderFinishEvent read FRenderFinishEvent write FRenderFinishEvent; constructor Create (const Project, Output, OutputModule, RenderSettings: String; const MissingFiles, Sound, Multiprocessing: Boolean; @@ -125,68 +121,34 @@ TRenderTask = class(TObject) const CacheLimit, MemoryLimit: Single; const ProjectJSON: String); - procedure Render(Mode: TRenderMode = RM_NORMAL); + procedure Render(const ThreadsLimit: Integer = 4{; const Mode: TRenderMode = RM_NORMAL}); function ToString: String; override; function Count: Integer; end; - // - TAErender = class(TObject) - private - FPath: String; - - FRenderThreads: TArray; - function TaskToExec(Task: TRenderTask): TArray; - published - property Path: String read FPath write FPath; - - - - procedure Run(Task: TRenderTask); - procedure BackgroundRun(Task: TRenderTask); - procedure RenderTasks(Tasks: TArray; Mode: TRenderMode); - - constructor Create; - end; - function GetTaskByProject(const AProject: String): TRenderTask; - function GetTaskByCompName(const ACompName: String): TRenderTask; deprecated 'Useless in this context, we CAN get Project without browsing through compositions'; + function GetTaskByCompName(const ACompName: String): TRenderTask; deprecated 'Useless in this context, we can get Project without browsing through compositions'; function GetCompByName(const ATask: TRenderTask; const ACompName: String): TComposition; function GetCompIndexInTask(const ATask: TRenderTask; const ACompName: String): Integer; var AErenderPath, Errors: String; RenderTasks: TObjectList; - RenderQueue: TList; + RenderQueue: TList; + AbortRender: Boolean = False; + TiledRenderThread: TThread; implementation uses MainUnit; -(*******************) -(* TRenderThread *) -(*******************) -procedure TRenderThread.Execute; -begin -// var i: Integer := 0; -// while IsRendering do begin -// inc (i); -// Writeln(i); -// if i >= 5 then begin -// IsRendering := False; -// end; -// end; -// Self.DoTerminate; -end; - (****************) (* TFrameSpan *) (****************) function TFrameSpan.Split(const Division: Integer): TArray; var - I, J, K, Start, Stop: Integer; - Tm: String; + I, J, K: Integer; begin SetLength(Result, Division); Result[0].StartFrame := StartFrame; @@ -234,13 +196,42 @@ constructor TComposition.Create(const CompName: String; const Frames: TFrameSpan Self.Split := Split; end; -constructor TRenderObject.Create(const ALogFile: String; const ADuration: TTimecode; const AFramerate: TFrameRate); +(***********************) +(* TRenderQueueObject *) +(***********************) +//function TRenderQueueObject.GetDuration: TTimecode; +//begin +// Result := FDuration; +//end; +// +//procedure TRenderQueueObject.SetDuration(Value: TTimecode); +//begin +// FDuration := Value; +//end; +// +//function TRenderQueueObject.GetFrameRate: TFrameRate; +//begin +// Result := FFrameRate; +//end; +// +//procedure TRenderQueueObject.SetFrameRate(Value: TFrameRate); +//begin +// FFrameRate := Value; +//end; + +constructor TRenderQueueObject.Create(const ATempFilePath: String; const ADuration: TTimecode; const AFrameRate: TFrameRate); begin - Self.LogFile := ALogFile; + Self.TempFilePath := ATempFilePath; Self.Duration := ADuration; - Self.Framerate := AFramerate; + Self.FrameRate := AFrameRate; end; +//constructor TRenderQueueObject.Create(const ALogFile: String; const ATask: TRenderTask); +//begin +// Self.LogFile := ALogFile; +// Self.Compositions := ATask.Compositions; +// Self.RenderMode := RM_NORMAL; +//end; (*****************) (* TRenderTask *) @@ -272,6 +263,16 @@ function TRenderTask.Count: Integer; Result := Res; end; +/// +/// Creates executable files for Launcher to start and provides a list of +/// paths to them in *.ext format. +/// +/// +/// "ext" must be replaced with a special format!!! +/// +/// +/// A list of paths to executable files +/// ; begin // Start with empty string @@ -287,11 +288,33 @@ function TRenderTask.ToExec: TList; // should match \[(.*?)\]\_\[(.*?)\]\_\[(.*?)\]\_\[(.*?)\]\.bat var FilePath: String := APPFOLDER + Format('[%s]_[%s]_[%d]_[%d].ext', [ExtractFileName(Project).Replace('.aep', ''), Composition.CompName, SplitFrameSpans[i].StartFrame, SplitFrameSpans[i].EndFrame]); + // Add Pass output path to temporary wariable + var AdjustedOutput: String := Output; + + // Create folder if '[projectName]/' or '[projectName]\' is used + // Because aerender won't do it for you + if Output.Contains('[projectName]' + PLATFORMPATHSEPARATOR) then + begin + AdjustedOutput := StringReplace(AdjustedOutput, '[projectName]', ExtractFileName(Project), [rfReplaceAll, rfIgnoreCase]); + if not DirectoryExists(ExtractFilePath(AdjustedOutput)) then + CreateDir(ExtractFilePath(AdjustedOutput)); + end; + + // Adjust file output path if split render is enabled + // because they can conflict + if Composition.Split > 1 then + begin + var OutFilePath: String := ExtractFilePath(AdjustedOutput); + var OutFileName: String := StringReplace(ExtractFileName(AdjustedOutput), ExtractFileExt(AdjustedOutput), '', [rfReplaceAll, rfIgnoreCase]); + var OutFileExt: String := ExtractFileExt(AdjustedOutput); + AdjustedOutput := OutFilePath + OutFileName + '_' + i.ToString + OutFileExt; + end; + // Append all the nesesary information in the beginning TempStr := Format('"%s" -project "%s" -output "%s" %s %s %s -OMtemplate "%s" -RStemplate "%s" -mem_usage "%d" "%d" %s -comp "%s" -s "%d" -e "%d"', [ AErenderPath, Project, - Output, + AdjustedOutput, IfThenElse(Sound, '-sound ON', ''), // yeet IfThenElse(Multiprocessing, '-mp', ''), // double yeet IfThenElse(MissingFiles, '-continueOnMissingFootage', ''), // tripple yeet @@ -328,32 +351,42 @@ function TRenderTask.ToExec: TList; end; } end; -procedure TRenderTask.Render(Mode: TRenderMode = RM_NORMAL); -var - Executables: TList; +procedure TRenderTask.Render(const ThreadsLimit: Integer = 4{; const Mode: TRenderMode = RM_NORMAL}); begin - case Mode of - RM_NORMAL: begin - Executables := ToExec; - for var Exec: String in Executables do begin - RenderQueue.Add(TRenderObject.Create(Exec, TTimecode.Create(0, 0, 0, 0), 0.00)); + var Executables: TList := ToExec; + //var i: Integer := 0; + + /// If files to render count is less than ThreadsLimit + /// then render them all at once, no need for continous execution here + if Executables.Count <= ThreadsLimit then + for var i := 0 to Executables.Count - 1 do begin + BackgroundExecute(Executables[i].Replace('.ext', {$IFDEF MSWINDOWS}'.bat'{$ELSE MACOS}'.command'{$ENDIF})); + RenderQueue.Add(Executables[i]); + end + else begin + /// This thread will launch new renders when the existing ones will finish + /// + /// Will be started only if the ammount of things to render is more than ThreadsLimit const + /// If otherwise, it has a problem of not starting some of the renders, which bothers me... + TiledRenderThread := TThread.CreateAnonymousThread(procedure begin + var i: Integer := 0; /// Counter + + while Executables.Count > 0 do begin + while RenderQueue.Count <> ThreadsLimit do begin + BackgroundExecute(Executables[i].Replace('.ext', {$IFDEF MSWINDOWS}'.bat'{$ELSE MACOS}'.command'{$ENDIF})); + RenderQueue.Add(Executables[i]); + Executables.Delete(i); + inc(i); + + if AbortRender then + exit; + end; + i := 0; end; - end; - RM_TILED: begin - - end; - RM_ALL_AT_ONCE: begin + end); - end; + TiledRenderThread.Start; end; - - {if Assigned(FRenderStartEvent) then FRenderStartEvent(Self); - - FRenderThread := TRenderThread.Create(True); - - FRenderThread.OnTerminate := Self.TaskTerminate; - FRenderThread.IsRendering := True; - FRenderThread.Start;} end; constructor TRenderTask.Create(const Project, Output, OutputModule, RenderSettings: String; @@ -378,7 +411,7 @@ constructor TRenderTask.Create(const Project, Output, OutputModule, RenderSettin Self.MemoryLimit := MemoryLimit; Self.Compositions := Compositions; -end; +end; constructor TRenderTask.CreateFromJSON(const Project, Output, OutputModule, RenderSettings: String; const MissingFiles, Sound, Multiprocessing: Boolean; @@ -414,62 +447,6 @@ constructor TRenderTask.CreateFromJSON(const Project, Output, OutputModule, Rend Self.Compositions := Compositions; end; - -(***************) -(* TAErender *) // but do I really need it, though? -(***************) -constructor TAErender.Create; -begin - inherited; -end; - -function TAErender.TaskToExec(Task: TRenderTask): TArray; -var - TempStr: String; -begin - TempStr := ''; - with Task do begin - for var Comp in Compositions do begin - if Comp.Split = 0 then - // yeet - else - for var FrameSpan in Comp.Frames.Split(Comp.Split) do - TempStr := TempStr + Format('-s %d -e %d ', [FrameSpan.StartFrame, FrameSpan.EndFrame]); - end; - end; -end; - -procedure TAErender.Run(Task: TRenderTask); -begin - // - TaskToExec(Task); - // Fire event - //if Assigned(FRenderStartEvent) then FRenderStartEvent(Task as TObject); -end; - -procedure TAErender.BackgroundRun(Task: TRenderTask); -begin - // -end; - -procedure TAErender.RenderTasks(Tasks: TArray; Mode: TRenderMode); -begin - case Mode of - RM_NORMAL: begin - - end; - RM_TILED: begin - - end; - RM_ALL_AT_ONCE: begin - - end; - end; - // Fire event - //if Assigned(FRenderStartEvent) then FRenderStartEvent(Tasks[0]); -end; - - (*************) (* Helpers *) (*************) @@ -519,7 +496,7 @@ function GetCompIndexInTask(const ATask: TRenderTask; const ACompName: String): (********************) initialization RenderTasks := TObjectList.Create; - RenderQueue := TList.Create; + RenderQueue := TList.Create; Errors := ''; @@ -527,8 +504,14 @@ initialization (* Finalization *) (******************) finalization - if Assigned(RenderTasks) then FreeAndNil(RenderTasks); - if Assigned(RenderQueue) then FreeAndNil(RenderQueue); + if Assigned(RenderTasks) then begin + RenderTasks.OnNotify := nil; + FreeAndNil(RenderTasks); + end; + if Assigned(RenderQueue) then begin + RenderQueue.OnNotify := nil; + FreeAndNil(RenderQueue); + end; end. diff --git a/src/lib/AErenderLauncher.SysUtils.pas b/src/lib/AErenderLauncher.SysUtils.pas new file mode 100644 index 0000000..9617079 --- /dev/null +++ b/src/lib/AErenderLauncher.SysUtils.pas @@ -0,0 +1,97 @@ +unit AErenderLauncher.SysUtils; + +interface + +uses + System.SysUtils, System.IOUtils, + + {$IFDEF MSWINDOWS} + FMX.Platform.Win, Winapi.ShellAPI, Winapi.Windows, Winapi.TlHelp32; + {$ELSE MACOS} + FMX.Platform.Mac, Posix.Stdlib, Posix.Unistd, Posix.SysSysctl, Posix.SysTypes; + {$ENDIF} + + /// + /// Gets system's memory size + /// + /// System's RAM size in bytes + function GetPlatformMemorySize: Int64; + + /// + /// Gets system's CPU threads count + /// + /// System's CPU threads count + /// + /// This function is actually defined in RTL + /// but inaccessable for some reason + /// + function GetPlatformThreadsCount: Integer; + + /// + /// Reads directory contents + /// + /// Path to directory contents of which need to be returned + /// An array of all filepaths in profidd + function GetDirectoryFiles(Directory: String): TArray; + + /// + /// Gets the count of all Launcher's temporary files + /// + /// Count of all Launcher's temporary files + function GetTempFilesCount: Integer; + +implementation + +uses + MainUnit; + +function GetPlatformMemorySize: Int64; +begin + {$IFDEF MSWINDOWS} + var MS_Ex: MemoryStatusEx; + FillChar(MS_Ex, SizeOf(MemoryStatusEx), #0); + MS_Ex.dwLength := SizeOf(MemoryStatusEx); + GlobalMemoryStatusEx(MS_Ex); + Result := MS_Ex.ullTotalPhys; + {$ELSE MACOS} + var len: size_t := SizeOf(Result); + var res: Int64 := SysCtlByName('hw.memsize', @Result, @len, nil, 0); + if res <> 0 then + RaiseLastOSError; + {$ENDIF MACOS} +end; + +function GetPlatformThreadsCount: Integer; +begin + {$IFDEF MSWINDOWS} + var SysInfo: TSystemInfo; + GetSystemInfo(SysInfo); + Result := SysInfo.dwNumberOfProcessors; + {$ELSE MACOS} + Result := sysconf(_SC_NPROCESSORS_ONLN); + {$ENDIF} +end; + +function GetDirectoryFiles(Directory: String): TArray; +var + Files: System.TArray; +begin + Files := TDirectory.GetFiles(Directory); + for var i := 0 to High(Files) do + begin + SetLength(Result, i + 1); + Result[i] := Files[i]; + end; +end; + +function GetTempFilesCount: Integer; +begin + var LauncherDirectory: TArray := GetDirectoryFiles(APPFOLDER); + var Res: Integer := 0; + for var i := 0 to High(LauncherDirectory) do + if (LauncherDirectory[i].Contains('.bat')) or (LauncherDirectory[i].Contains('.command')) or (LauncherDirectory[i].Contains('.log')) then + inc(Res); + Result := Res; +end; + +end. diff --git a/src/lib/AErenderLauncher.Types.pas b/src/lib/AErenderLauncher.Types.pas new file mode 100644 index 0000000..bb0bc38 --- /dev/null +++ b/src/lib/AErenderLauncher.Types.pas @@ -0,0 +1,66 @@ +unit AErenderLauncher.Types; + +interface + +uses + System.Generics.Collections, AErenderLauncher.Rendering; + +type + OutputModule = record + Module, + Mask: String; + Imported: Boolean; + end; + + RenderSetting = record + Setting: String; + Imported: Boolean; + end; + + TSettings = record + Language: Integer; + Style: Integer; + AErenderPath: String; + OnRenderStart: Integer; + DefaultProjectPath: String; + DefaultOutputPath: String; + AErenderHandle: Boolean; + DeleteTemporary: Boolean; + + RenderTasks: TList; + + LastProjectPath: String; + LastOutputPath: String; + TemporarySavePath: String; + + MissingFiles: Boolean; + Sound: Boolean; + Multithreaded: Boolean; + CustomProperties: String; + MemoryLimit: Single; + CacheLimit: Single; + + OutputModules: TArray; + RenderSettings: TArray; + + RecentProjects: TArray; + + constructor LoadFromXMLFile(const APath: String; const Skip: Boolean); + function SaveToFile(const APath: String): Boolean; + end; + + + +implementation + +constructor TSettings.LoadFromXMLFile(const APath: string; const Skip: Boolean); +begin + // +end; + +function TSettings.SaveToFile(const APath: string): Boolean; +begin + +end; + +end. diff --git a/src/lib/AErenderLauncher.Values.pas b/src/lib/AErenderLauncher.Values.pas new file mode 100644 index 0000000..b23ed65 --- /dev/null +++ b/src/lib/AErenderLauncher.Values.pas @@ -0,0 +1,7 @@ +unit AErenderLauncher.Values; + +interface + +implementation + +end. diff --git a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx index 57b324d..e3560bc 100644 --- a/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx +++ b/src/lib/Components/TCompLabel/Test Project/CompLabelUnit.fmx @@ -26,7 +26,6 @@ object Form1: TForm1 Size.Height = 24.000000000000000000 Size.PlatformDefault = False Composition = 'Composition' - Value = 50.000000000000000000 OutFrame = 150.000000000000000000 Split = '0' end diff --git a/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas index 48a4346..24871c9 100644 --- a/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas +++ b/src/lib/Components/TRenderProgress/Package/FMX.RenderProgress.pas @@ -4,7 +4,8 @@ interface uses System.Types, System.SysUtils, System.Classes, - FMX.Types, FMX.Controls, FMX.Styles, FMX.StdCtrls, FMX.Objects, FMX.ActnList, FMX.Memo; + FMX.Types, FMX.Controls, FMX.Styles, FMX.StdCtrls, FMX.Objects, FMX.ActnList, FMX.Memo, + AErenderLauncher.AerenderParser; type TRenderProgress = class(TStyledControl) @@ -14,6 +15,8 @@ TRenderProgress = class(TStyledControl) FLog: TStrings; FInFrame, FOutFrame, FValue: Single; FMemoVisible, FIsError: Boolean; + FDuration: TTimecode; + FFrameRate: Real; function GetComposition: String; procedure SetComposition(Value: String); @@ -44,6 +47,7 @@ TRenderProgress = class(TStyledControl) function GetStyleObject: TFmxObject; override; procedure ApplyStyle; override; public + procedure GoToTextEnd; constructor Create(AOwner: TComponent); override; published property Align default TAlignLayout.None; @@ -65,6 +69,9 @@ TRenderProgress = class(TStyledControl) property IsError: Boolean read GetIsError write SetIsError; property Log: TStrings read GetLog write SetLog; + + property Duration: TTimecode read FDuration write FDuration; + property FrameRate: Real read FFrameRate write FFrameRate; end; procedure Register; @@ -89,7 +96,7 @@ procedure TRenderProgress.SetComposition(Value: String); {$ENDREGION} -//{$REGION 'Status'} +{$REGION '[DEPRECATED] Status'} // //function TRenderProgress.GetStatus: String; //begin @@ -103,7 +110,7 @@ procedure TRenderProgress.SetComposition(Value: String); // FStatus := Value; //end; // -//{$ENDREGION} +{$ENDREGION} {$REGION 'InFrame'} @@ -187,13 +194,17 @@ procedure TRenderProgress.SetValue(Value: Single); function TRenderProgress.GetLog: TStrings; begin FLog := StylesData['log.lines'].AsType; - Result := FLog + Result := FLog; end; procedure TRenderProgress.SetLog(Value: TStrings); begin StylesData['log.lines'] := Value; FLog := Value; + + var memo: TMemo := StylesData['log'].AsType; + if memo <> nil then + memo.GoToTextEnd; end; {$ENDREGION} @@ -226,6 +237,7 @@ procedure TRenderProgress.SetIsError(Value: Boolean); if Value then begin StylesData['status.text'] := FST_RenderError; StylesData['progressbar.stylelookup'] := 'progressbarminierrorstyle'; + //StylesData['frames.text'] := '...'; end else if (FValue >= 0) and (FValue < FOutFrame) then begin StylesData['status.text'] := FST_Rendering; @@ -269,6 +281,14 @@ procedure TRenderProgress.LogButtonClick(Sender: TObject); MemoVisible := True; end; +procedure TRenderProgress.GoToTextEnd; +var + Memo: TMemo; +begin + if FindStyleResource('log', Memo) then + Memo.GoToTextEnd; +end; + constructor TRenderProgress.Create(AOwner: TComponent); begin inherited; @@ -279,10 +299,14 @@ constructor TRenderProgress.Create(AOwner: TComponent); ST_Rendering := 'Rendering'; ST_FinishedRender := 'Rendering finished'; ST_RenderError := 'ERROR: See log for more info'; - InFrame := 0; + InFrame := -1; OutFrame := 100; Value := -1; + Log := TStringList.Create; MemoVisible := False; + + Duration := TTimecode.Create(0, 0, 0, 0); + FrameRate := 0.00; //Log := TStrings.Create; end; diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.fmx b/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.fmx index 64abb6e..4a948eb 100644 --- a/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.fmx +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.fmx @@ -3534,27 +3534,33 @@ object Form1: TForm1 Value = -1.000000000000000000 OnChange = TrackBar1Change end + object CheckBox1: TCheckBox + Position.X = 24.000000000000000000 + Position.Y = 296.000000000000000000 + Text = 'IsError' + OnChange = CheckBox1Change + end object RenderProgress1: TRenderProgress - Size.Width = 649.000000000000000000 + Size.Width = 633.000000000000000000 Size.Height = 48.000000000000000000 Size.PlatformDefault = False - Position.X = 240.000000000000000000 - Position.Y = 24.000000000000000000 - Composition = 'comptext' + Position.X = 248.000000000000000000 + Position.Y = 40.000000000000000000 + Composition = 'Web Icons' ST_WaitingForAErender = 'Waiting for aerender...' ST_Rendering = 'Rendering' ST_FinishedRender = 'Rendering finished' ST_RenderError = 'ERROR: See log for more info' + InFrame = -1.000000000000000000 OutFrame = 100.000000000000000000 MemoVisible = False IsError = False - Log.Strings = ( - '') end - object CheckBox1: TCheckBox - Position.X = 24.000000000000000000 + object Button1: TButton + Position.X = 904.000000000000000000 Position.Y = 296.000000000000000000 - Text = 'IsError' - OnChange = CheckBox1Change + TabOrder = 2 + Text = 'Button1' + OnClick = Button1Click end end diff --git a/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.pas b/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.pas index c549ea5..3145068 100644 --- a/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.pas +++ b/src/lib/Components/TRenderProgress/Test Project/RenderProgressUnit.pas @@ -12,10 +12,12 @@ TForm1 = class(TForm) StyleBook1: TStyleBook; StyleBook2: TStyleBook; TrackBar1: TTrackBar; - RenderProgress1: TRenderProgress; CheckBox1: TCheckBox; + RenderProgress1: TRenderProgress; + Button1: TButton; procedure TrackBar1Change(Sender: TObject); procedure CheckBox1Change(Sender: TObject); + procedure Button1Click(Sender: TObject); private { Private declarations } public @@ -29,6 +31,11 @@ implementation {$R *.fmx} +procedure TForm1.Button1Click(Sender: TObject); +begin + RenderProgress1.Log.Add('String ' + Random(9999).ToString); +end; + procedure TForm1.CheckBox1Change(Sender: TObject); begin RenderProgress1.IsError := CheckBox1.IsChecked; diff --git a/src/lib/plugins/AEP Parser/build.bat b/src/lib/plugins/AEP Parser/build.bat new file mode 100644 index 0000000..b447d4b --- /dev/null +++ b/src/lib/plugins/AEP Parser/build.bat @@ -0,0 +1,12 @@ +@ECHO off +echo "Building aeparser_win.exe..." +set GOOS=windows +set GOARCH=amd64 +go build -o "aeparser_win.exe" + +echo "Building aeparser_mac..." +set GOOS=darwin +set GOARCH=amd64 +go build -o "aeparser_mac" + + diff --git a/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style b/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style index 4df3174..77d94fc 100644 --- a/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style +++ b/styles/AErender Modern Animated/AERFMXStyleMacOSAnimated.style @@ -16,7 +16,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 2 + TabOrder = 3 object TRectangle StyleName = 'background' Align = Client @@ -75,7 +75,7 @@ object TStyleContainer Size.Height = 38.333343505859380000 Size.PlatformDefault = False Visible = False - TabOrder = 3 + TabOrder = 4 object TLayout Align = Left Size.Width = 18.000000000000000000 @@ -156,7 +156,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 4 + TabOrder = 5 object TBrushObject StyleName = 'foreground' end @@ -239,7 +239,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 5 + TabOrder = 6 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x32787878 @@ -365,7 +365,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 6 + TabOrder = 7 object TRectangle StyleName = 'background' Align = Contents @@ -404,7 +404,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 7 + TabOrder = 8 object TRectangle StyleName = 'background' Align = Contents @@ -455,7 +455,7 @@ object TStyleContainer StyleName = 'imagecellstyle' Align = Center Visible = False - TabOrder = 8 + TabOrder = 9 object TImage StyleName = 'image' MultiResBitmap = < @@ -480,7 +480,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 9 + TabOrder = 10 object TText StyleName = 'text' Align = Contents @@ -498,7 +498,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 10 + TabOrder = 11 object TText StyleName = 'text' Align = Client @@ -521,7 +521,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 11 + TabOrder = 12 object TGlyph StyleName = 'glyphstyle' Margins.Left = 2.000000000000000000 @@ -568,7 +568,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 12 + TabOrder = 13 object TRectangle StyleName = 'background' Align = Contents @@ -604,7 +604,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 13 + TabOrder = 14 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = xFF2C2C2C @@ -710,7 +710,7 @@ object TStyleContainer StyleName = 'popupcellstyle' Align = Center Visible = False - TabOrder = 14 + TabOrder = 15 object TLayout Align = Right Position.X = 35.000000000000000000 @@ -766,7 +766,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 15 + TabOrder = 16 object TRectangle StyleName = 'htrack' Align = Contents @@ -839,7 +839,7 @@ object TStyleContainer Size.Height = 126.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 16 + TabOrder = 17 object TLayout StyleName = 'htrack' Align = Contents @@ -876,7 +876,7 @@ object TStyleContainer StyleName = 'scrollbarbottombutton' Align = Center Visible = False - TabOrder = 17 + TabOrder = 18 object TRectangle StyleName = 'background' Align = Client @@ -954,7 +954,7 @@ object TStyleContainer StyleName = 'scrollbarleftbutton' Align = Center Visible = False - TabOrder = 18 + TabOrder = 19 object TRectangle StyleName = 'background' Align = Client @@ -1014,7 +1014,7 @@ object TStyleContainer StyleName = 'scrollbarrightbutton' Align = Center Visible = False - TabOrder = 19 + TabOrder = 20 object TRectangle StyleName = 'background' Align = Client @@ -1074,7 +1074,7 @@ object TStyleContainer StyleName = 'scrollbarstyle' Align = Center Visible = False - TabOrder = 20 + TabOrder = 21 object TButton StyleName = 'leftbutton' Align = Left @@ -1139,7 +1139,7 @@ object TStyleContainer StyleName = 'scrollbartopbutton' Align = Center Visible = False - TabOrder = 21 + TabOrder = 22 object TRectangle StyleName = 'background' Align = Client @@ -1221,7 +1221,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 22 + TabOrder = 23 object TRectangle StyleName = 'background' Align = Contents @@ -1327,7 +1327,7 @@ object TStyleContainer Size.Width = 100.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False - TabOrder = 23 + TabOrder = 24 TrackingThumbScale = 1.000000000000000000 Visible = False Fill.Color = xFF202020 @@ -1351,7 +1351,7 @@ object TStyleContainer Size.Height = 100.999992370605500000 Size.PlatformDefault = False Visible = False - TabOrder = 24 + TabOrder = 25 object TRectangle StyleName = 'background' Align = Contents @@ -1399,7 +1399,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 25 + TabOrder = 26 object TRectangle StyleName = 'top' Align = Contents @@ -1465,7 +1465,7 @@ object TStyleContainer StyleName = 'textcellstyle' Align = Center Visible = False - TabOrder = 26 + TabOrder = 27 object TLayout StyleName = 'content' Align = Contents @@ -1564,7 +1564,7 @@ object TStyleContainer Size.Height = 100.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 27 + TabOrder = 28 FixedHeight = 17 object TRectangle StyleName = 'htrack' @@ -1689,7 +1689,7 @@ object TStyleContainer Size.Height = 122.199996948242200000 Size.PlatformDefault = False Visible = False - TabOrder = 28 + TabOrder = 29 object TGlowEffect Softness = 0.200000002980232200 GlowColor = xFF4879A3 @@ -1808,7 +1808,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 29 + TabOrder = 30 object TRectangle StyleName = 'Rectangle1' Align = Center @@ -1919,7 +1919,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 30 + TabOrder = 31 object TRectangle StyleName = 'htrack' Align = Contents @@ -1992,7 +1992,7 @@ object TStyleContainer Size.Height = 32.400001525878910000 Size.PlatformDefault = False Visible = False - TabOrder = 31 + TabOrder = 32 object TText StyleName = 'text' Align = Contents @@ -2027,7 +2027,7 @@ object TStyleContainer StyleName = 'smallscrollbarstyle' Align = Center Visible = False - TabOrder = 32 + TabOrder = 33 object TTrack StyleName = 'htrack' Align = Client @@ -2056,7 +2056,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 33 + TabOrder = 34 object TBrushObject StyleName = 'foreground' end @@ -2162,7 +2162,7 @@ object TStyleContainer Size.Height = 96.750000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 34 + TabOrder = 35 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -2218,7 +2218,7 @@ object TStyleContainer Size.Height = 21.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 35 + TabOrder = 36 object TLayout Align = Left Size.Width = 21.000000000000000000 @@ -2299,7 +2299,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 40 + TabOrder = 41 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -2530,7 +2530,7 @@ object TStyleContainer Size.Height = 2.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 59 + TabOrder = 58 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -2573,7 +2573,7 @@ object TStyleContainer Size.Height = 96.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 1 + TabOrder = 2 object TRectangle StyleName = 'background' Align = Client @@ -2659,7 +2659,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 52 + TabOrder = 53 object TPath StyleName = 'Path1' Align = Center @@ -2844,7 +2844,7 @@ object TStyleContainer HitTest = False Margins.Left = 10.000000000000000000 Position.X = 10.000000000000000000 - Size.Width = 26.136718750000000000 + Size.Width = 24.964843750000000000 Size.Height = 15.960937500000000000 Size.PlatformDefault = False Text = 'Text' @@ -3015,7 +3015,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 51 + TabOrder = 52 object TBrushObject StyleName = 'foreground' end @@ -3584,7 +3584,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 61 + TabOrder = 60 object TPath StyleName = 'Path1' Align = Center @@ -3692,7 +3692,7 @@ object TStyleContainer Size.Height = 259.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 64 + TabOrder = 65 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x0FFFFFFF @@ -3799,7 +3799,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 63 + TabOrder = 64 object TRectangle StyleName = 'htrack' Align = Contents @@ -3872,7 +3872,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 74 + TabOrder = 75 object TRectangle StyleName = 'htrack' Align = Contents @@ -3927,4 +3927,163 @@ object TStyleContainer end end end + object TLayout + StyleName = 'arrowdowntoolbutton' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 1 + object TRectangle + StyleName = 'background' + Align = Client + ClipChildren = True + ClipParent = True + Corners = [TopLeft, BottomLeft] + Fill.Color = x00202020 + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = x00202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation2' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = xFF404040 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' + end + end + object TPath + StyleName = 'path' + Align = Center + Data.Path = { + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C842} + Fill.Color = claWhite + HitTest = False + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + Visible = False + end + end + object TLayout + StyleName = 'popupboxstyle' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + TabOrder = 49 + object TRectangle + StyleName = 'background' + Align = Contents + Fill.Color = xFF202020 + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TColorAnimation + StyleName = 'ColorAnimation1Style' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false' + end + object TColorAnimation + StyleName = 'ColorAnimation2Style' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = xFF404040 + StopValue = xFF2A82E2 + Trigger = 'IsMouseOver=true;IsPressed=true;' + TriggerInverse = 'IsMouseOver=true;IsPressed=false' + end + end + object TLayout + Align = FitRight + Position.X = 75.000000000000000000 + Size.Width = 25.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + object TPath + Align = Center + Data.Path = { + 0500000000000000000000000000803F010000000000803F0000803F01000000 + 0000003F0000000001000000000000000000803F030000000000000000000000} + Fill.Color = claWhite + HitTest = False + Margins.Top = -7.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + object TPath + Align = Center + Data.Path = { + 04000000000000000000000000000000010000000000803F0000000001000000 + 0000003F0000803F030000000000000000000000} + Fill.Color = claWhite + HitTest = False + Margins.Top = 6.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 4.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 73.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + end + end end diff --git a/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style b/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style index 55bb9c3..420732c 100644 --- a/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style +++ b/styles/AErender Modern Animated/AERFMXStyleWindowsAnimated.style @@ -16,7 +16,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 1 + TabOrder = 2 object TRectangle StyleName = 'background' Align = Client @@ -73,7 +73,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 2 + TabOrder = 3 object TBrushObject StyleName = 'foreground' end @@ -154,7 +154,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 3 + TabOrder = 4 object TText StyleName = 'text' Align = Contents @@ -172,7 +172,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 4 + TabOrder = 5 object TRectangle StyleName = 'background' Align = Contents @@ -209,7 +209,7 @@ object TStyleContainer Size.Height = 100.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 5 + TabOrder = 6 FixedHeight = 17 object TRectangle StyleName = 'htrack' @@ -324,7 +324,7 @@ object TStyleContainer Size.Height = 38.333343505859380000 Size.PlatformDefault = False Visible = False - TabOrder = 6 + TabOrder = 7 object TLayout Align = Left Size.Width = 18.000000000000000000 @@ -435,7 +435,7 @@ object TStyleContainer StyleName = 'scrollbarbottombutton' Align = Center Visible = False - TabOrder = 7 + TabOrder = 8 object TRectangle StyleName = 'background' Align = Client @@ -491,7 +491,7 @@ object TStyleContainer StyleName = 'scrollbarleftbutton' Align = Center Visible = False - TabOrder = 8 + TabOrder = 9 object TRectangle StyleName = 'background' Align = Client @@ -548,7 +548,7 @@ object TStyleContainer StyleName = 'scrollbarrightbutton' Align = Center Visible = False - TabOrder = 9 + TabOrder = 10 object TRectangle StyleName = 'background' Align = Client @@ -605,7 +605,7 @@ object TStyleContainer StyleName = 'scrollbartopbutton' Align = Center Visible = False - TabOrder = 10 + TabOrder = 11 object TRectangle StyleName = 'background' Align = Client @@ -662,7 +662,7 @@ object TStyleContainer StyleName = 'scrollbarstyle' Align = Center Visible = False - TabOrder = 11 + TabOrder = 12 object TButton StyleName = 'leftbutton' Align = Left @@ -760,7 +760,7 @@ object TStyleContainer Size.Width = 100.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False - TabOrder = 12 + TabOrder = 13 TrackingThumbScale = 1.000000000000000000 Visible = False Fill.Color = xFF202020 @@ -783,7 +783,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 13 + TabOrder = 14 object TRectangle StyleName = 'background' Align = Contents @@ -887,7 +887,7 @@ object TStyleContainer Size.Height = 100.999992370605500000 Size.PlatformDefault = False Visible = False - TabOrder = 14 + TabOrder = 15 object TRectangle StyleName = 'background' Align = Contents @@ -930,7 +930,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 15 + TabOrder = 16 object TRectangle StyleName = 'top' Align = Contents @@ -1034,7 +1034,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 16 + TabOrder = 17 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = xFF2C2C2C @@ -1144,7 +1144,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 17 + TabOrder = 18 object TText StyleName = 'text' Align = Client @@ -1167,7 +1167,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 18 + TabOrder = 19 object TGlyph StyleName = 'glyphstyle' Margins.Left = 2.000000000000000000 @@ -1212,7 +1212,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 19 + TabOrder = 20 object TRectangle StyleName = 'background' Align = Contents @@ -1246,7 +1246,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 20 + TabOrder = 21 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x32787878 @@ -1367,7 +1367,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 21 + TabOrder = 22 object TRectangle StyleName = 'background' Align = Contents @@ -1419,7 +1419,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 22 + TabOrder = 23 object TRectangle StyleName = 'htrack' Align = Contents @@ -1484,7 +1484,7 @@ object TStyleContainer Size.Height = 126.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 23 + TabOrder = 24 object TLayout StyleName = 'htrack' Align = Contents @@ -1526,7 +1526,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 24 + TabOrder = 25 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -1721,7 +1721,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 37 + TabOrder = 39 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -1884,7 +1884,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 39 + TabOrder = 41 object TLine Align = Top LineType = Top @@ -1940,7 +1940,7 @@ object TStyleContainer StyleName = 'imagecellstyle' Align = Center Visible = False - TabOrder = 40 + TabOrder = 42 object TImage StyleName = 'image' MultiResBitmap = < @@ -1962,7 +1962,7 @@ object TStyleContainer StyleName = 'popupcellstyle' Align = Center Visible = False - TabOrder = 41 + TabOrder = 43 object TLayout Align = Right Position.X = 35.000000000000000000 @@ -2015,7 +2015,7 @@ object TStyleContainer StyleName = 'textcellstyle' Align = Center Visible = False - TabOrder = 42 + TabOrder = 44 object TLayout StyleName = 'content' Align = Contents @@ -2046,7 +2046,7 @@ object TStyleContainer Size.Height = 122.199996948242200000 Size.PlatformDefault = False Visible = False - TabOrder = 43 + TabOrder = 45 object TBrushObject StyleName = 'foreground' end @@ -2156,7 +2156,7 @@ object TStyleContainer Size.Height = 32.400001525878910000 Size.PlatformDefault = False Visible = False - TabOrder = 44 + TabOrder = 46 object TText StyleName = 'text' Align = Contents @@ -2194,7 +2194,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 45 + TabOrder = 47 object TRectangle StyleName = 'Rectangle1' Align = Center @@ -2305,7 +2305,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 46 + TabOrder = 48 object TRectangle StyleName = 'htrack' Align = Contents @@ -2367,7 +2367,7 @@ object TStyleContainer StyleName = 'smallscrollbarstyle' Align = Center Visible = False - TabOrder = 47 + TabOrder = 50 object TTrack StyleName = 'htrack' Align = Client @@ -2396,7 +2396,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 48 + TabOrder = 51 object TBrushObject StyleName = 'foreground' end @@ -2493,6 +2493,62 @@ object TStyleContainer Size.PlatformDefault = False end end + object TLayout + StyleName = 'splitterstyle' + Align = Center + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 52 + object TRectangle + StyleName = 'Rectangle1' + Align = Client + Fill.Color = xFF303030 + HitTest = False + Sides = [Left, Right] + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TLayout + StyleName = 'grip' + Align = Client + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + object TCircle + StyleName = 'Circle1' + Align = Center + Fill.Color = xFF404040 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TCircle + StyleName = 'Circle2' + Align = Center + Fill.Color = xFF404040 + Margins.Top = 20.000000000000000000 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TCircle + StyleName = 'Circle3' + Align = Center + Fill.Color = xFF404040 + Margins.Bottom = 20.000000000000000000 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + end + end object TLayout StyleName = 'closebuttonstyle' Align = Center @@ -2500,7 +2556,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 49 + TabOrder = 53 object TRectangle StyleName = 'closebutton' Align = Client @@ -2556,7 +2612,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 50 + TabOrder = 54 object TRectangle StyleName = 'maxbutton' Align = Client @@ -2607,7 +2663,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 52 + TabOrder = 56 object TRectangle StyleName = 'minbutton' Align = Client @@ -2659,7 +2715,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 53 + TabOrder = 57 object TRectangle StyleName = 'resbutton' Align = Client @@ -2711,7 +2767,7 @@ object TStyleContainer Size.Height = 179.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 56 + TabOrder = 62 object TRectangle StyleName = 'mask' Align = Contents @@ -2925,7 +2981,7 @@ object TStyleContainer Size.Height = 21.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 58 + TabOrder = 64 object TLayout Align = Left Size.Width = 21.000000000000000000 @@ -3006,7 +3062,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 61 + TabOrder = 66 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3081,7 +3137,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 64 + TabOrder = 70 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3155,7 +3211,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 66 + TabOrder = 74 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3229,7 +3285,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 67 + TabOrder = 77 object TBrushObject StyleName = 'foreground' end @@ -3355,7 +3411,7 @@ object TStyleContainer StyleName = 'aniindicatorstyle' Align = Center Visible = False - TabOrder = 70 + TabOrder = 81 object TArc StyleName = 'Arc' Align = Contents @@ -3388,7 +3444,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 73 + TabOrder = 84 object TPath StyleName = 'Path1' Align = Center @@ -3421,7 +3477,7 @@ object TStyleContainer Size.Height = 33.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 78 + TabOrder = 90 object TLayout Align = Left Size.Width = 24.000000000000000000 @@ -3494,7 +3550,7 @@ object TStyleContainer Size.Height = 164.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 84 + TabOrder = 96 object TRectangle StyleName = 'background' Align = Contents @@ -3512,7 +3568,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 38 + TabOrder = 40 object TRectangle StyleName = 'htrack' Align = Contents @@ -3566,7 +3622,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 25 + TabOrder = 26 object TRectangle StyleName = 'htrack' Align = Contents @@ -3620,7 +3676,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 60 + TabOrder = 63 object TRectangle StyleName = 'bgrectangle' Align = Contents @@ -3692,7 +3748,7 @@ object TStyleContainer HitTest = False Margins.Left = 10.000000000000000000 Position.X = 10.000000000000000000 - Size.Width = 26.136718750000000000 + Size.Width = 24.964843750000000000 Size.Height = 15.960937500000000000 Size.PlatformDefault = False Text = 'Text' @@ -3719,7 +3775,7 @@ object TStyleContainer Size.Height = 2.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 62 + TabOrder = 65 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -3758,7 +3814,7 @@ object TStyleContainer Size.Height = 96.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 68 + TabOrder = 73 object TRectangle StyleName = 'background' Align = Client @@ -3841,7 +3897,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 71 + TabOrder = 76 object TPath StyleName = 'Path1' Align = Center @@ -3948,7 +4004,7 @@ object TStyleContainer Size.Height = 259.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 77 + TabOrder = 83 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x0FFFFFFF @@ -4051,7 +4107,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 65 + TabOrder = 69 object TRectangle StyleName = 'htrack' Align = Contents @@ -4116,7 +4172,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 76 + TabOrder = 80 object TRectangle StyleName = 'htrack' Align = Contents @@ -4170,7 +4226,7 @@ object TStyleContainer Size.Height = 179.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 57 + TabOrder = 59 object TRectangle StyleName = 'mask' Align = Contents @@ -4421,47 +4477,157 @@ object TStyleContainer end end object TLayout - StyleName = 'splitterstyle' + StyleName = 'arrowdowntoolbutton' Align = Center - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False - TabOrder = 36 - object TLayout - StyleName = 'grip' + Visible = False + TabOrder = 1 + object TRectangle + StyleName = 'background' Align = Client - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 + ClipChildren = True + ClipParent = True + Fill.Color = x00202020 + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False - object TCircle - StyleName = 'Circle1' - Align = Center - Fill.Color = xFF404040 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 + Stroke.Kind = None + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = x00202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' end - object TCircle - StyleName = 'Circle2' + object TColorAnimation + StyleName = 'buttonColorAnimation2' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = xFF404040 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' + end + end + object TPath + StyleName = 'path' + Align = Center + Data.Path = { + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C842} + Fill.Color = claWhite + HitTest = False + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + Visible = False + end + end + object TLayout + StyleName = 'popupboxstyle' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + TabOrder = 49 + object TRectangle + StyleName = 'background' + Align = Contents + Fill.Color = xFF202020 + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + object TColorAnimation + StyleName = 'ColorAnimation1Style' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = xFF202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false' + end + object TColorAnimation + StyleName = 'ColorAnimation2Style' + Duration = 0.100000001490116100 + PropertyName = 'Fill.Color' + StartValue = xFF404040 + StopValue = xFF2A82E2 + Trigger = 'IsMouseOver=true;IsPressed=true;' + TriggerInverse = 'IsMouseOver=true;IsPressed=false' + end + end + object TLayout + Align = FitRight + Position.X = 75.000000000000000000 + Size.Width = 25.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + object TPath Align = Center - Fill.Color = xFF404040 - Margins.Top = 20.000000000000000000 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 + Data.Path = { + 0500000000000000000000000000803F010000000000803F0000803F01000000 + 0000003F0000000001000000000000000000803F030000000000000000000000} + Fill.Color = claWhite + HitTest = False + Margins.Top = -7.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 4.000000000000000000 Size.PlatformDefault = False - Stroke.Color = xFF151515 + Stroke.Kind = None end - object TCircle - StyleName = 'Circle3' + object TPath Align = Center - Fill.Color = xFF404040 - Margins.Bottom = 20.000000000000000000 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 + Data.Path = { + 04000000000000000000000000000000010000000000803F0000000001000000 + 0000003F0000803F030000000000000000000000} + Fill.Color = claWhite + HitTest = False + Margins.Top = 6.000000000000000000 + Size.Width = 8.000000000000000000 + Size.Height = 4.000000000000000000 Size.PlatformDefault = False - Stroke.Color = xFF151515 + Stroke.Kind = None end end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Margins.Left = 1.000000000000000000 + Margins.Top = 1.000000000000000000 + Margins.Right = 1.000000000000000000 + Margins.Bottom = 1.000000000000000000 + Size.Width = 73.000000000000000000 + Size.Height = 23.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + end end end diff --git a/styles/AErender Modern/AERFMXStyleMacOS.style b/styles/AErender Modern/AERFMXStyleMacOS.style index 417c3dd..c33b931 100644 --- a/styles/AErender Modern/AERFMXStyleMacOS.style +++ b/styles/AErender Modern/AERFMXStyleMacOS.style @@ -16,7 +16,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 2 + TabOrder = 3 object TRectangle StyleName = 'background' Align = Client @@ -75,7 +75,7 @@ object TStyleContainer Size.Height = 38.333343505859380000 Size.PlatformDefault = False Visible = False - TabOrder = 3 + TabOrder = 4 object TLayout Align = Left Size.Width = 18.000000000000000000 @@ -155,7 +155,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 4 + TabOrder = 5 object TBrushObject StyleName = 'foreground' end @@ -238,7 +238,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 5 + TabOrder = 6 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x32787878 @@ -364,7 +364,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 6 + TabOrder = 7 object TRectangle StyleName = 'background' Align = Contents @@ -403,7 +403,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 7 + TabOrder = 8 object TRectangle StyleName = 'background' Align = Contents @@ -454,7 +454,7 @@ object TStyleContainer StyleName = 'imagecellstyle' Align = Center Visible = False - TabOrder = 8 + TabOrder = 9 object TImage StyleName = 'image' MultiResBitmap = < @@ -479,7 +479,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 9 + TabOrder = 10 object TText StyleName = 'text' Align = Contents @@ -497,7 +497,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 10 + TabOrder = 11 object TText StyleName = 'text' Align = Client @@ -520,7 +520,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 11 + TabOrder = 12 object TGlyph StyleName = 'glyphstyle' Margins.Left = 2.000000000000000000 @@ -567,7 +567,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 12 + TabOrder = 13 object TRectangle StyleName = 'background' Align = Contents @@ -603,7 +603,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 13 + TabOrder = 14 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = xFF2C2C2C @@ -709,7 +709,7 @@ object TStyleContainer StyleName = 'popupcellstyle' Align = Center Visible = False - TabOrder = 14 + TabOrder = 15 object TLayout Align = Right Position.X = 35.000000000000000000 @@ -765,7 +765,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 15 + TabOrder = 16 object TRectangle StyleName = 'htrack' Align = Contents @@ -838,7 +838,7 @@ object TStyleContainer Size.Height = 126.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 16 + TabOrder = 17 object TLayout StyleName = 'htrack' Align = Contents @@ -894,7 +894,7 @@ object TStyleContainer StyleName = 'scrollbarstyle' Align = Center Visible = False - TabOrder = 17 + TabOrder = 18 object TButton StyleName = 'leftbutton' Align = Left @@ -981,7 +981,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 18 + TabOrder = 19 object TRectangle StyleName = 'background' Align = Contents @@ -1087,7 +1087,7 @@ object TStyleContainer Size.Width = 100.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False - TabOrder = 19 + TabOrder = 20 TrackingThumbScale = 1.000000000000000000 Visible = False Fill.Color = xFF202020 @@ -1111,7 +1111,7 @@ object TStyleContainer Size.Height = 100.999992370605500000 Size.PlatformDefault = False Visible = False - TabOrder = 20 + TabOrder = 21 object TRectangle StyleName = 'background' Align = Contents @@ -1159,7 +1159,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 21 + TabOrder = 22 object TRectangle StyleName = 'top' Align = Contents @@ -1225,7 +1225,7 @@ object TStyleContainer StyleName = 'textcellstyle' Align = Center Visible = False - TabOrder = 22 + TabOrder = 23 object TLayout StyleName = 'content' Align = Contents @@ -1323,7 +1323,7 @@ object TStyleContainer Size.Height = 100.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 23 + TabOrder = 24 FixedHeight = 17 object TRectangle StyleName = 'htrack' @@ -1448,7 +1448,7 @@ object TStyleContainer Size.Height = 122.199996948242200000 Size.PlatformDefault = False Visible = False - TabOrder = 24 + TabOrder = 25 object TBrushObject StyleName = 'foreground' end @@ -1561,7 +1561,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 25 + TabOrder = 26 object TRectangle StyleName = 'Rectangle1' Align = Center @@ -1672,7 +1672,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 26 + TabOrder = 27 object TRectangle StyleName = 'htrack' Align = Contents @@ -1745,7 +1745,7 @@ object TStyleContainer Size.Height = 32.400001525878910000 Size.PlatformDefault = False Visible = False - TabOrder = 27 + TabOrder = 28 object TText StyleName = 'text' Align = Contents @@ -1779,7 +1779,7 @@ object TStyleContainer StyleName = 'popoverstyle' Align = Center Visible = False - TabOrder = 28 + TabOrder = 29 object TRectangle StyleName = 'bg' Align = Client @@ -1814,18 +1814,17 @@ object TStyleContainer object TLayout StyleName = 'popupboxstyle' Align = Center - Size.Width = 196.500000000000000000 - Size.Height = 53.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False - Visible = False - TabOrder = 29 + TabOrder = 30 object TRectangle StyleName = 'background' Align = Contents Fill.Color = xFF202020 HitTest = False - Size.Width = 196.500000000000000000 - Size.Height = 53.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None XRadius = 3.000000000000000000 @@ -1850,10 +1849,10 @@ object TStyleContainer end end object TLayout - Align = Right - Position.X = 181.500000000000000000 - Size.Width = 15.000000000000000000 - Size.Height = 53.000000000000000000 + Align = FitRight + Position.X = 75.000000000000000000 + Size.Width = 25.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False object TPath Align = Center @@ -1890,9 +1889,10 @@ object TStyleContainer Margins.Top = 1.000000000000000000 Margins.Right = 1.000000000000000000 Margins.Bottom = 1.000000000000000000 - Size.Width = 179.500000000000000000 - Size.Height = 51.000000000000000000 + Size.Width = 73.000000000000000000 + Size.Height = 23.000000000000000000 Size.PlatformDefault = False + Text = 'Text' TextSettings.FontColor = claWhite end end @@ -1900,7 +1900,7 @@ object TStyleContainer StyleName = 'scrollbarbottombutton' Align = Center Visible = False - TabOrder = 30 + TabOrder = 31 object TRectangle StyleName = 'background' Align = Client @@ -1959,7 +1959,7 @@ object TStyleContainer StyleName = 'scrollbarleftbutton' Align = Center Visible = False - TabOrder = 31 + TabOrder = 32 object TRectangle StyleName = 'background' Align = Client @@ -2019,7 +2019,7 @@ object TStyleContainer StyleName = 'scrollbarrightbutton' Align = Center Visible = False - TabOrder = 32 + TabOrder = 33 object TRectangle StyleName = 'background' Align = Client @@ -2079,7 +2079,7 @@ object TStyleContainer StyleName = 'scrollbartopbutton' Align = Center Visible = False - TabOrder = 33 + TabOrder = 34 object TRectangle StyleName = 'background' Align = Client @@ -2142,7 +2142,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 34 + TabOrder = 35 object TBrushObject StyleName = 'foreground' end @@ -2249,7 +2249,7 @@ object TStyleContainer StyleName = 'smallscrollbarstyle' Align = Center Visible = False - TabOrder = 35 + TabOrder = 36 object TTrack StyleName = 'htrack' Align = Client @@ -2278,7 +2278,7 @@ object TStyleContainer Size.Height = 96.750000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 36 + TabOrder = 37 object TLayout StyleName = 'grip' Align = Client @@ -2327,7 +2327,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 37 + TabOrder = 38 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -2528,7 +2528,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 38 + TabOrder = 39 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -2693,7 +2693,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 39 + TabOrder = 40 object TLine Align = Top LineType = Top @@ -2754,7 +2754,7 @@ object TStyleContainer Size.Height = 21.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 40 + TabOrder = 41 object TLayout Align = Left Size.Width = 21.000000000000000000 @@ -2835,7 +2835,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 41 + TabOrder = 42 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -2909,7 +2909,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 42 + TabOrder = 43 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3448,7 +3448,7 @@ object TStyleContainer HitTest = False Margins.Left = 10.000000000000000000 Position.X = 10.000000000000000000 - Size.Width = 26.136718750000000000 + Size.Width = 24.964843750000000000 Size.Height = 15.960937500000000000 Size.PlatformDefault = False Text = 'Text' @@ -3629,7 +3629,7 @@ object TStyleContainer Size.Height = 96.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 1 + TabOrder = 2 object TRectangle StyleName = 'background' Align = Client @@ -3715,7 +3715,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 64 + TabOrder = 65 object TPath StyleName = 'Path1' Align = Center @@ -3748,7 +3748,7 @@ object TStyleContainer Size.Height = 259.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 65 + TabOrder = 66 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x0FFFFFFF @@ -4058,4 +4058,78 @@ object TStyleContainer end end end + object TLayout + StyleName = 'arrowdowntoolbutton' + Align = Center + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 1 + object TRectangle + StyleName = 'background' + Align = Client + ClipChildren = True + ClipParent = True + Corners = [TopLeft, BottomLeft] + Fill.Color = x00202020 + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + XRadius = 3.000000000000000000 + YRadius = 3.000000000000000000 + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = x00202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation2' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF404040 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=false' + end + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' + end + end + object TPath + StyleName = 'path' + Align = Center + Data.Path = { + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C842} + Fill.Color = claWhite + HitTest = False + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + Visible = False + end + end end diff --git a/styles/AErender Modern/AERFMXStyleWindows.style b/styles/AErender Modern/AERFMXStyleWindows.style index 7832ec4..e4172b2 100644 --- a/styles/AErender Modern/AERFMXStyleWindows.style +++ b/styles/AErender Modern/AERFMXStyleWindows.style @@ -16,7 +16,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 1 + TabOrder = 2 object TRectangle StyleName = 'background' Align = Client @@ -63,6 +63,7 @@ object TStyleContainer Size.Width = 100.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False + Text = 'Text' TextSettings.FontColor = claWhite end end @@ -73,7 +74,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 2 + TabOrder = 3 object TBrushObject StyleName = 'foreground' end @@ -154,7 +155,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 3 + TabOrder = 4 object TText StyleName = 'text' Align = Contents @@ -172,7 +173,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 4 + TabOrder = 5 object TRectangle StyleName = 'background' Align = Contents @@ -209,7 +210,7 @@ object TStyleContainer Size.Height = 100.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 5 + TabOrder = 6 FixedHeight = 17 object TRectangle StyleName = 'htrack' @@ -324,7 +325,7 @@ object TStyleContainer Size.Height = 38.333343505859380000 Size.PlatformDefault = False Visible = False - TabOrder = 6 + TabOrder = 7 object TLayout Align = Left Size.Width = 18.000000000000000000 @@ -434,7 +435,7 @@ object TStyleContainer StyleName = 'scrollbarbottombutton' Align = Center Visible = False - TabOrder = 9 + TabOrder = 10 object TRectangle StyleName = 'background' Align = Client @@ -490,7 +491,7 @@ object TStyleContainer StyleName = 'scrollbarleftbutton' Align = Center Visible = False - TabOrder = 10 + TabOrder = 11 object TRectangle StyleName = 'background' Align = Client @@ -547,7 +548,7 @@ object TStyleContainer StyleName = 'scrollbarrightbutton' Align = Center Visible = False - TabOrder = 11 + TabOrder = 12 object TRectangle StyleName = 'background' Align = Client @@ -604,7 +605,7 @@ object TStyleContainer StyleName = 'scrollbartopbutton' Align = Center Visible = False - TabOrder = 12 + TabOrder = 13 object TRectangle StyleName = 'background' Align = Client @@ -661,7 +662,7 @@ object TStyleContainer StyleName = 'scrollbarstyle' Align = Center Visible = False - TabOrder = 13 + TabOrder = 14 object TButton StyleName = 'leftbutton' Align = Left @@ -758,7 +759,7 @@ object TStyleContainer Size.Width = 100.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False - TabOrder = 15 + TabOrder = 16 TrackingThumbScale = 1.000000000000000000 Visible = False Fill.Color = xFF202020 @@ -781,7 +782,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 16 + TabOrder = 17 object TBrushObject StyleName = 'foreground' end @@ -885,7 +886,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 17 + TabOrder = 18 object TBrushObject StyleName = 'foreground' end @@ -1014,7 +1015,7 @@ object TStyleContainer Size.Height = 100.999992370605500000 Size.PlatformDefault = False Visible = False - TabOrder = 18 + TabOrder = 19 object TRectangle StyleName = 'background' Align = Contents @@ -1057,7 +1058,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 20 + TabOrder = 21 object TRectangle StyleName = 'top' Align = Contents @@ -1161,7 +1162,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 22 + TabOrder = 23 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = xFF2C2C2C @@ -1271,7 +1272,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 23 + TabOrder = 24 object TText StyleName = 'text' Align = Client @@ -1294,7 +1295,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 24 + TabOrder = 25 object TGlyph StyleName = 'glyphstyle' Margins.Left = 2.000000000000000000 @@ -1339,7 +1340,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 25 + TabOrder = 26 object TRectangle StyleName = 'background' Align = Contents @@ -1373,7 +1374,7 @@ object TStyleContainer Size.Height = 131.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 26 + TabOrder = 27 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x32787878 @@ -1496,7 +1497,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 27 + TabOrder = 28 object TRectangle StyleName = 'background' Align = Contents @@ -1548,7 +1549,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 28 + TabOrder = 29 object TRectangle StyleName = 'htrack' Align = Contents @@ -1602,7 +1603,7 @@ object TStyleContainer Size.Height = 126.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 29 + TabOrder = 30 object TLayout StyleName = 'htrack' Align = Contents @@ -1644,7 +1645,7 @@ object TStyleContainer Size.Height = 26.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 30 + TabOrder = 31 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -1839,7 +1840,7 @@ object TStyleContainer Size.Height = 30.111110687255860000 Size.PlatformDefault = False Visible = False - TabOrder = 32 + TabOrder = 33 object TRectangle Align = Contents Fill.Color = xFF2A82E2 @@ -1998,7 +1999,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 33 + TabOrder = 34 object TLine Align = Top LineType = Top @@ -2054,7 +2055,7 @@ object TStyleContainer StyleName = 'imagecellstyle' Align = Center Visible = False - TabOrder = 35 + TabOrder = 36 object TImage StyleName = 'image' MultiResBitmap = < @@ -2873,8 +2874,8 @@ object TStyleContainer object TLayout StyleName = 'popupboxstyle' Align = Center - Size.Width = 196.500000000000000000 - Size.Height = 53.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False TabOrder = 49 @@ -2883,8 +2884,8 @@ object TStyleContainer Align = Contents Fill.Color = xFF202020 HitTest = False - Size.Width = 196.500000000000000000 - Size.Height = 53.000000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None object TColorAnimation @@ -2907,10 +2908,10 @@ object TStyleContainer end end object TLayout - Align = Right - Position.X = 181.500000000000000000 - Size.Width = 15.000000000000000000 - Size.Height = 53.000000000000000000 + Align = FitRight + Position.X = 75.000000000000000000 + Size.Width = 25.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False object TPath Align = Center @@ -2947,9 +2948,10 @@ object TStyleContainer Margins.Top = 1.000000000000000000 Margins.Right = 1.000000000000000000 Margins.Bottom = 1.000000000000000000 - Size.Width = 179.500000000000000000 - Size.Height = 51.000000000000000000 + Size.Width = 73.000000000000000000 + Size.Height = 23.000000000000000000 Size.PlatformDefault = False + Text = 'Text' TextSettings.FontColor = claWhite end end @@ -2991,6 +2993,74 @@ object TStyleContainer StyleLookup = 'scrollbarvtrackstyle' end end + object TLayout + StyleName = 'splitterstyle' + Align = Center + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + Visible = False + TabOrder = 52 + object TRectangle + StyleName = 'Rectangle1' + Align = Client + Fill.Color = xFF303030 + HitTest = False + Sides = [Left, Right] + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TLayout + StyleName = 'Layout' + Align = Client + Size.Width = 42.250000000000000000 + Size.Height = 96.750000000000000000 + Size.PlatformDefault = False + object TLayout + StyleName = 'grip' + Align = VertCenter + Locked = True + Position.Y = 32.000000000000000000 + Size.Width = 42.250000000000000000 + Size.Height = 32.000000000000000000 + Size.PlatformDefault = False + object TCircle + StyleName = 'Circle3' + Align = Center + Fill.Color = xFF404040 + HitTest = False + Margins.Bottom = 20.000000000000000000 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TCircle + StyleName = 'Circle2' + Align = Center + Fill.Color = xFF404040 + HitTest = False + Margins.Top = 20.000000000000000000 + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + object TCircle + StyleName = 'Circle1' + Align = Center + Fill.Color = xFF404040 + HitTest = False + Size.Width = 7.000000000000000000 + Size.Height = 7.000000000000000000 + Size.PlatformDefault = False + Stroke.Color = xFF151515 + end + end + end + end object TLayout StyleName = 'closebuttonstyle' Align = Center @@ -2998,7 +3068,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 52 + TabOrder = 53 object TRectangle StyleName = 'closebutton' Align = Client @@ -3053,7 +3123,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 53 + TabOrder = 54 object TRectangle StyleName = 'maxbutton' Align = Client @@ -3104,7 +3174,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 54 + TabOrder = 55 object TRectangle StyleName = 'resbutton' Align = Client @@ -3156,7 +3226,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 55 + TabOrder = 56 object TRectangle StyleName = 'minbutton' Align = Client @@ -3208,7 +3278,7 @@ object TStyleContainer Size.Height = 179.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 56 + TabOrder = 57 object TRectangle StyleName = 'mask' Align = Contents @@ -3422,7 +3492,7 @@ object TStyleContainer Size.Height = 21.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 58 + TabOrder = 59 object TLayout Align = Left Size.Width = 21.000000000000000000 @@ -3502,7 +3572,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 59 + TabOrder = 60 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3576,7 +3646,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 60 + TabOrder = 61 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3650,7 +3720,7 @@ object TStyleContainer Size.Height = 40.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 61 + TabOrder = 62 object TLayout Align = Bottom Position.Y = 34.000000000000000000 @@ -3724,7 +3794,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 63 + TabOrder = 64 object TRectangle StyleName = 'htrack' Align = Contents @@ -3789,7 +3859,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 64 + TabOrder = 65 object TRectangle StyleName = 'bgrectangle' Align = Contents @@ -3888,7 +3958,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 65 + TabOrder = 66 object TPath StyleName = 'Path1' Align = Center @@ -3921,7 +3991,7 @@ object TStyleContainer Size.Height = 33.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 66 + TabOrder = 67 object TLayout Align = Left Size.Width = 24.000000000000000000 @@ -3994,7 +4064,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 67 + TabOrder = 68 object TRectangle StyleName = 'Rectangle1' Align = Contents @@ -4021,7 +4091,7 @@ object TStyleContainer Size.Height = 25.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 68 + TabOrder = 69 object TBrushObject StyleName = 'foreground' end @@ -4150,7 +4220,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 69 + TabOrder = 70 object TRectangle StyleName = 'vtrack' Align = Contents @@ -4215,7 +4285,7 @@ object TStyleContainer StyleName = 'aniindicatorstyle' Align = Center Visible = False - TabOrder = 70 + TabOrder = 71 object TArc StyleName = 'Arc' Align = Contents @@ -4248,7 +4318,7 @@ object TStyleContainer Size.Height = 2.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 71 + TabOrder = 72 object TRectangle StyleName = 'Rectangle1' Align = Client @@ -4287,7 +4357,7 @@ object TStyleContainer Size.Height = 164.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 72 + TabOrder = 73 object TRectangle StyleName = 'background' Align = Contents @@ -4305,7 +4375,7 @@ object TStyleContainer Size.Height = 96.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 73 + TabOrder = 74 object TRectangle StyleName = 'background' Align = Client @@ -4387,7 +4457,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 75 + TabOrder = 76 object TRectangle StyleName = 'htrack' Align = Contents @@ -4442,7 +4512,7 @@ object TStyleContainer Size.Height = 22.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 76 + TabOrder = 77 object TPath StyleName = 'Path1' Align = Center @@ -4548,7 +4618,7 @@ object TStyleContainer Size.Height = 259.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 77 + TabOrder = 78 object TBrushObject StyleName = 'AlternatingRowBackground' Brush.Color = x0FFFFFFF @@ -4651,7 +4721,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 119 + TabOrder = 120 FixedHeight = 50 object TGlyph StyleName = 'glyphstyle' @@ -4742,7 +4812,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 123 + TabOrder = 124 FixedHeight = 24 object TGlyph StyleName = 'glyphstyle' @@ -4794,7 +4864,6 @@ object TStyleContainer Size.Width = 76.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False - Text = 'Text' TextSettings.FontColor = claWhite end object TLayout @@ -4834,7 +4903,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 122 + TabOrder = 123 FixedHeight = 50 object TGlyph StyleName = 'glyphstyle' @@ -4977,7 +5046,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 118 + TabOrder = 119 FixedHeight = 50 object TGlyph StyleName = 'glyphstyle' @@ -5065,7 +5134,7 @@ object TStyleContainer Size.Height = 50.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 121 + TabOrder = 122 FixedHeight = 50 object TGlyph StyleName = 'glyphstyle' @@ -5254,7 +5323,7 @@ object TStyleContainer Size.Height = 24.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 125 + TabOrder = 126 FixedHeight = 24 object TGlyph StyleName = 'glyphstyle' @@ -5353,7 +5422,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 74 + TabOrder = 75 object TRectangle StyleName = 'htrack' Align = Contents @@ -5407,7 +5476,7 @@ object TStyleContainer Size.Height = 56.399997711181640000 Size.PlatformDefault = False Visible = False - TabOrder = 62 + TabOrder = 63 object TRectangle StyleName = 'htrack' Align = Contents @@ -5472,7 +5541,7 @@ object TStyleContainer Size.Height = 179.000000000000000000 Size.PlatformDefault = False Visible = False - TabOrder = 57 + TabOrder = 58 object TRectangle StyleName = 'mask' Align = Contents @@ -5723,47 +5792,74 @@ object TStyleContainer end end object TLayout - StyleName = 'splitterstyle' + StyleName = 'arrowdowntoolbutton' Align = Center - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False - TabOrder = 36 - object TLayout - StyleName = 'grip' + Visible = False + TabOrder = 1 + object TRectangle + StyleName = 'background' Align = Client - Size.Width = 42.250000000000000000 - Size.Height = 96.750000000000000000 + ClipChildren = True + ClipParent = True + Fill.Color = x00202020 + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 Size.PlatformDefault = False - object TCircle - StyleName = 'Circle1' - Align = Center - Fill.Color = xFF404040 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 + Stroke.Kind = None + object TColorAnimation + StyleName = 'buttonColorAnimation1' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = x00202020 + StopValue = xFF404040 + Trigger = 'IsMouseOver=true;IsPressed=false;IsFocused=false' + TriggerInverse = 'IsMouseOver=false;IsPressed=false;IsFocused=false' end - object TCircle - StyleName = 'Circle2' - Align = Center - Fill.Color = xFF404040 - Margins.Top = 20.000000000000000000 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 + object TColorAnimation + StyleName = 'buttonColorAnimation2' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF404040 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=false' end - object TCircle - StyleName = 'Circle3' - Align = Center - Fill.Color = xFF404040 - Margins.Bottom = 20.000000000000000000 - Size.Width = 7.000000000000000000 - Size.Height = 7.000000000000000000 - Size.PlatformDefault = False - Stroke.Color = xFF151515 + object TColorAnimation + StyleName = 'buttonColorAnimation3' + Duration = 0.000000000000000000 + PropertyName = 'Fill.Color' + StartValue = xFF2A82E2 + StopValue = xFF17579C + Trigger = 'IsPressed=true;IsMouseOver=true;IsFocused=true' + TriggerInverse = 'IsPressed=false;IsMouseOver=true;IsFocused=true' end end + object TPath + StyleName = 'path' + Align = Center + Data.Path = { + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C842} + Fill.Color = claWhite + HitTest = False + Size.Width = 10.000000000000000000 + Size.Height = 6.000000000000000000 + Size.PlatformDefault = False + Stroke.Kind = None + end + object TText + StyleName = 'text' + Align = Client + HitTest = False + Size.Width = 100.000000000000000000 + Size.Height = 25.000000000000000000 + Size.PlatformDefault = False + Text = 'Text' + TextSettings.FontColor = claWhite + Visible = False + end end end From e1be65bfa848c54ddf2909841f033eb2e4dd7a7e Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Tue, 28 Sep 2021 18:59:03 +1000 Subject: [PATCH 23/29] Migrated fixes from v0.8.9-beta --- src/AErender_Launcher.deployproj | 36 +- src/AErender_Launcher.dproj | 1023 +- src/AErender_Launcher.res | Bin 135728 -> 135120 bytes src/ImportUnit.pas | 2 +- src/MainUnit.fmx | 21171 +++++++++++++++-------------- src/MainUnit.pas | 95 +- src/RenderingUnit.pas | 21 +- 7 files changed, 11602 insertions(+), 10746 deletions(-) diff --git a/src/AErender_Launcher.deployproj b/src/AErender_Launcher.deployproj index 5c38012..a088167 100644 --- a/src/AErender_Launcher.deployproj +++ b/src/AErender_Launcher.deployproj @@ -20,6 +20,15 @@ True + + AErender_Launcher\ + aeparser_win.exe + ProjectFile + 0 + + + True + AErender_Launcher\ ru-RU.aerlang @@ -38,6 +47,15 @@ True + + AErender_Launcher\ + aeparser_mac + ProjectFile + 0 + + + True + AErender_Launcher\ en-US.aerlang @@ -189,6 +207,15 @@ True + + AErender_Launcher.app\Contents\Resources\ + AErender_Launcher.icns + ProjectOSXResource + 1 + + + True + AErender_Launcher.app\Contents\Resources\StartUp\ ru-RU.aerlang @@ -208,15 +235,6 @@ True True - - AErender_Launcher.app\Contents\Resources\ - AErender_Launcher.icns - ProjectOSXResource - 1 - - - True - AErender_Launcher.app\Contents\Resources\StartUp\ ru-RU.aerlang diff --git a/src/AErender_Launcher.dproj b/src/AErender_Launcher.dproj index 58238e2..70910cb 100644 --- a/src/AErender_Launcher.dproj +++ b/src/AErender_Launcher.dproj @@ -5,27 +5,11 @@ Debug FMX AErender_Launcher.dpr - Win32 + Win64 {C2DB1030-533B-41FD-8468-632CB85028C7} 19.2 4099 - - true - Base - true - ..\icons\platform\Launcher2020.icns - true - 6 - 8 - 0 - (None) - true - Debug - CFBundleVersion=0.8.6;NSHighResolutionCapable=true;NSLocationUsageDescription=;CFBundleShortVersionString=0.8.6;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Not used;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used - ..\icons\platform\Launcher2020.ico - /usr/X11/bin/xterm -e "%debuggee%" - true @@ -156,6 +140,22 @@ $(BDS)\bin\delphi_PROJECTICNS.icns $(BDS)\bin\delphi_PROJECTICON.ico + + true + Base + true + ..\icons\platform\Launcher2020.icns + true + 9 + 8 + 0 + (None) + true + Debug + CFBundleVersion=0.8.9;NSHighResolutionCapable=true;NSLocationUsageDescription=;CFBundleShortVersionString=0.8.9;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Not used;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used + ..\icons\platform\Launcher2020.ico + /usr/X11/bin/xterm -e "%debuggee%" + PerMonitorV2 Debug @@ -172,17 +172,16 @@ ..\icons\png\resized_uwp\icon_uwp_44.png true true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.6.0;Comments= + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.9.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=org.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.9.0.0;Comments= 1033 0 - 8 + 9 true - 6 ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico - (None) + $(BDS)\bin\default_app.manifest ..\icons\png\resized_uwp\icon_uwp_150.png ..\icons\png\resized_uwp\icon_uwp_44.png true @@ -192,6 +191,7 @@ 0 9 true + PerMonitorV2 true @@ -219,10 +219,10 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico true - 1 + 3 true true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.1;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.5.0;Comments= + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.3;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.5.0;Comments= 1033 0 8 @@ -234,9 +234,9 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico true - 2 + 3 true - FileVersion=1.0.0.2;ProductVersion=1.0.0.0 + FileVersion=1.0.0.3;ProductVersion=1.0.0.0 1033 true @@ -306,9 +306,9 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico true - 25 + 26 true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.9.0.25;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.9.0;Comments=;PrivateBuild=v0.9.0-beta + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.9.0.26;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.9.0;Comments=;PrivateBuild=v0.9.0-beta 1033 0 9 @@ -324,12 +324,13 @@ $(BDS)\bin\default_app.manifest true true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.9.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.9.0;Comments=;PrivateBuild=v0.9.0-beta 1033 0 9 true true + 1 + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.9.0.1;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.9.0;Comments=;PrivateBuild=v0.9.0-beta ..\icons\platform\Launcher2020.icns @@ -369,6 +370,7 @@ +
    SplashScreenForm
    @@ -403,8 +405,11 @@ - - + +
    /System.Types.Nullable in 'lib\System.Types.Nullable.pas';
    +
    + + ResourceItem RCDATA @@ -428,20 +433,20 @@ Base - - Cfg_1 + + Cfg_4 Base Cfg_2 Base - - Cfg_3 + + Cfg_1 Base - - Cfg_4 + + Cfg_3 Base @@ -459,181 +464,156 @@ - - + + + C:\ProgramData\AErender\Docs + false true - - - AErender_Launcher.icns + + + C:\ProgramData\AErender\Docs + false true - + - AErender_Launcher.icns + Contents\Resources\StartUp\ true - - - Assets\ - Logo150x150.png + + + AErender_Launcher.icns true - - - Assets\ - Logo150x150.png + + + Contents\Resources\StartUp\ true - - - Assets\ - Logo44x44.png + + + AErender_Launcher true - + - Assets\ - Logo44x44.png - true - - - - .\ true - + .\ true - + Contents\Resources\StartUp\ true - + - .\ + C:\ProgramData\AErender\Docs + false true - + .\ true - + - Contents\Resources\StartUp\ + AErender_Launcher true - + .\ true - + - .\ + Assets\ + Logo150x150.png true - - - Contents\Resources\StartUp\ + + + .\ true - + - .\ + Assets\ + Logo44x44.png true - + .\ true - - - Contents\Resources\StartUp\ - true - - AErender_Launcher.icns true - - - C:\ProgramData\AErender\Docs - false - true - - - - - C:\ProgramData\AErender\Docs - false + + + AErender_Launcher.exe true - - - C:\ProgramData\AErender\Docs - false + + true - - - C:\ProgramData\AErender\Docs - false + + true - + - C:\ProgramData\AErender\Docs - false + .\ true - - - C:\ProgramData\AErender\Docs - false + + + Info.plist true - + - C:\ProgramData\AErender\Docs false true - + - AErender_Launcher + Contents\Resources\StartUp\ true @@ -643,20 +623,10 @@ true - - - true - - - - - Info.plist - true - - - - - AErender_Launcher + + + Assets\ + Logo150x150.png true @@ -666,25 +636,23 @@ true - - - true - - - - - Info.plist + + + Assets\ + Logo44x44.png true - + - AErender_Launcher.exe + .\ true - + + C:\ProgramData\AErender\Docs + false true @@ -702,21 +670,14 @@ true - - - false - true - - - - - AErender_Launcher.exe + + true - + - AErender_Launcher.exe + .\ true @@ -726,35 +687,409 @@ true - + Contents\Resources\StartUp\ true - + .\ true - + - Contents\Resources\StartUp\ + Info.plist true - + + + true + + + - 0 + .\ + true - - + + - 0 + AErender_Launcher.exe + true - + + + + Contents\Resources\StartUp\ + true + + + + + C:\ProgramData\AErender\Docs + false + true + + + + + AErender_Launcher.icns + true + + + + + true + + + + + true + + + + + C:\ProgramData\AErender\Docs + false + true + + + + + C:\ProgramData\AErender\Docs + false + true + + + + + AErender_Launcher.rsm + true + + + + + true + + + + + AErender_Launcher.exe + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + classes + 1 + + + classes + 1 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + Contents\MacOS + 1 + .framework + Contents\MacOS 1 @@ -765,6 +1100,23 @@ + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + Contents\MacOS 1 @@ -776,6 +1128,23 @@ + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + Contents\MacOS 1 @@ -787,6 +1156,25 @@ + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + Contents\Resources\StartUp\ 0 @@ -795,6 +1183,262 @@ 0 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF @@ -802,24 +1446,60 @@ + + ..\ + 1 + ..\ 1 + + Contents + 1 + Contents 1 + + Contents\Resources + 1 + Contents\Resources 1 + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + Contents\MacOS 1 @@ -828,6 +1508,12 @@ 0 + + + library\lib\armeabi-v7a + 1 + + 1 @@ -856,18 +1542,25 @@ 1 - - + + + + + + + + + False False + False + False True True True - False - False False diff --git a/src/AErender_Launcher.res b/src/AErender_Launcher.res index d3a44b9e7b26754baf44871d2cb1200d2d3f9722..0db0fdae2b6e6d6a4fc73ca0f757fe370bb835ab 100644 GIT binary patch delta 170 zcmdn6gyX_|jtL6f4vY*83JeSk|Nje2KhMP^%H+T}(MeB_fq{{M87K^*LBJk}nShuD zh#?|C1{5q{m^e>KvIh9eF*N{OE$cJF#$+k@DoN$rmT&DJ1 jCdTc#OibY%Ob=PNALC+TXWIUqm+2=nBg6Fff=rG8rz0Fw delta 797 zcmZWl%We}f6umR0G@%QiUoaXFNC>70WFjiHK$;e*qEtvAbv^Mo>8LaI$m5}%RTeDR zp+*R?gAE_R0x7@228mx`RgT>}Xs~td>*I6pIrh)5weR0*XP$rR5_v>)etrYtAR}r} z{fbSnoVug!AgCd8=qj0=Xqld3T|yYzMGcb4`0b3o_`@H79dv3THtfEOoM@YF0`HQf zjB<)dP(=sWGvc=XfD#(e5ox%3O~<%3yQY$2+(^sWr#19=j&q8t9YjHl6wW!Ah9&M; zVuyACbBM%P6s>GQ=0?6pstzm-#dW>iznkb9uHoCt8UBZd7-u9qk2D82cIG(z^ z@c6I8fEHyJMA2u*zQAgV#{v_4KwFAdD%-7_JUV$ - Left = 64 - Top = 144 - end - object AERModernAnimatedStyle: TStyleBook - StyleName = 'AER Modern Smooth Style' - Styles = < - item - ResourcesBin = { - 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 - AF00060B627574746F6E7374796C6503C5040609656469747374796C6503AC05 - 060A6C6162656C7374796C65032001060D67726F7570626F787374796C65038E - 02060D747261636B6261727374796C65038C07060D636865636B626F78737479 - 6C65039E0506147363726F6C6C62617268747261636B7374796C65033B010614 - 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 - 6172626F74746F6D627574746F6E032D0406137363726F6C6C6261726C656674 - 627574746F6E03440406147363726F6C6C6261727269676874627574746F6E03 - 450406127363726F6C6C626172746F70627574746F6E034304060E7363726F6C - 6C6261727374796C65036304060A7468756D627374796C65034402060B737769 - 7463687374796C6503DC01060C7370696E626F787374796C65035F07060F7461 - 62636F6E74726F6C7374796C6503A701060B746162646F747374796C65035901 - 060C7461626974656D7374796C6503EF04060D7468756D626261727374796C65 - 034F03060C6C697374626F787374796C6503AD07060D6C697374626F78666F6F - 746572038B0106106C697374626F786974656D7374796C6503260306126C6973 - 74626F78706C61696E6865616465720346020609677269647374796C65038708 - 060F6865616465726974656D7374796C6503CE03061070726F67726573736261 - 727374796C65036A04061170726F677265737363656C6C7374796C6503A50206 - 106D656E756261726974656D7374796C6503300B060C6D656E75626172737479 - 6C65036C02060D6D656E756974656D7374796C65035D0B06126D656E75736570 - 617261746F727374796C6503E501060D6D656E75766965777374796C65039102 - 060E696D61676563656C6C7374796C65033D01060E706F70757063656C6C7374 - 796C65038E03060D7465787463656C6C7374796C6503A60106096D656D6F7374 - 796C6503DE07060E6C696E6B6C6162656C7374796C65035B03060D73697A6567 - 7269707374796C6503FB04060E7374617475736261727374796C6503DB01060C - 746F6F6C6261727374796C6503CA00061570726F67726573736261726572726F - 727374796C65036F040613736D616C6C7363726F6C6C6261727374796C6503AE - 01060D636F6D626F626F787374796C65030108060D73706C6974746572737479 - 6C6503C0030610636C6F7365627574746F6E7374796C65038604060E6D617862 - 7574746F6E7374796C65030104060E6D696E627574746F6E7374796C65031904 - 060E726573627574746F6E7374796C65031A04060F746F6F6C77696E646F7773 - 74796C6503BD0D0610726164696F627574746F6E7374796C6503C4050618756C - 63656E746572726164696F627574746F6E7374796C650368050616756C6C6566 - 74726164696F627574746F6E7374796C65035B050617756C7269676874726164 - 696F627574746F6E7374796C65036005060E636F6D626F656469747374796C65 - 038D090611616E69696E64696361746F727374796C6503D7010613657870616E - 646572627574746F6E7374796C650381020615657870616E646572636865636B - 626F787374796C6503DB05060A70616E656C7374796C65032901061970726F67 - 726573736261726D696E696572726F727374796C65036103061470726F677265 - 73736261726D696E697374796C65035C03060D657870616E6465727374796C65 - 037C060615616E69696E64696361746F72686F727A7374796C65039502060E6C - 6F67627574746F6E7374796C65039507061B7472656576696577657870616E64 - 6572627574746F6E7374796C65038902061174726565766965776974656D7374 - 796C65031405060D74726565766965777374796C65034107061670726F677265 - 737362617266696E6973687374796C65037004061A70726F6772657373626172 - 6D696E6966696E6973687374796C65036203061177696E646F77626F72646572 - 7374796C6503941000545046300A5452656374616E676C6500095374796C654E - 616D65060F6261636B67726F756E647374796C6505416C69676E070643656E74 - 65720A46696C6C2E436F6C6F7207097846463244324432440A53697A652E5769 - 64746805000000000000009407400B53697A652E486569676874050000000000 - 0080D206401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E650756697369626C650800005450463007544C61 - 796F757400095374796C654E616D65060B627574746F6E7374796C6505416C69 - 676E070643656E7465720A53697A652E57696474680500000000000000C80540 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 01000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 - 6F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E09 - 0A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632303230 - 32300748697454657374080A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 - 74746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 - 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463230323032300953746F7056616C7565 - 07097846463430343034300754726967676572063049734D6F7573654F766572 - 3D747275653B4973507265737365643D66616C73653B4973466F63757365643D - 66616C73650E54726967676572496E7665727365063149734D6F7573654F7665 - 723D66616C73653B4973507265737365643D66616C73653B4973466F63757365 - 643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C65 - 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844757261 - 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 - 6C6C2E436F6C6F720A537461727456616C756507097846463430343034300953 - 746F7056616C756507097846463137353739430754726967676572062F497350 - 7265737365643D747275653B49734D6F7573654F7665723D747275653B497346 - 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E33 - 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646324138 - 3245320953746F7056616C756507097846463137353739430754726967676572 - 062E4973507265737365643D747275653B49734D6F7573654F7665723D747275 - 653B4973466F63757365643D747275650E54726967676572496E766572736506 - 2F4973507265737365643D66616C73653B49734D6F7573654F7665723D747275 - 653B4973466F63757365643D7472756500000005545465787400095374796C65 - 4E616D6506047465787405416C69676E0706436C69656E7413456E61626C6544 - 726167486967686C69676874080748697454657374080A53697A652E57696474 - 680500000000000000C805400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C740816546578745365 - 7474696E67732E466F6E74436F6C6F720708636C615768697465000000545046 - 3007544C61796F757400095374796C654E616D650609656469747374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000000000 - C805400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 - 65720202000C5442727573684F626A65637400095374796C654E616D65060A66 - 6F726567726F756E6400000C5442727573684F626A65637400095374796C654E - 616D65060973656C656374696F6E0B42727573682E436F6C6F72070978393632 - 413832453200000B54466F6E744F626A65637400095374796C654E616D650604 - 666F6E7409466F6E742E53697A650500000000000000D0024000000A54526563 - 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C - 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032 - 3032300748697454657374080A53697A652E57696474680500000000000000C8 - 05400B53697A652E4865696768740500000000000000C803401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 46313531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 - 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E - 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 - 463135313531350953746F7056616C7565070978464634303430343007547269 - 67676572062049734D6F7573654F7665723D747275653B4973466F6375736564 - 3D66616C73650E54726967676572496E7665727365062149734D6F7573654F76 - 65723D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D - 6174696F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C - 50726F70657274794E616D65060C5374726F6B652E436F6C6F720A5374617274 - 56616C756507097846463135313531350953746F7056616C7565070978464632 - 41383245320754726967676572060E4973466F63757365643D747275650E5472 - 6967676572496E7665727365060F4973466F63757365643D66616C7365000000 - 07544C61796F757400095374796C654E616D650607627574746F6E7305416C69 - 676E07055269676874064C6F636B6564090B4D617267696E732E546F70050000 - 00000000008000400D4D617267696E732E526967687405000000000000008000 - 400E4D617267696E732E426F74746F6D05000000000000008000400A506F7369 - 74696F6E2E580500000000000000C004400A506F736974696F6E2E5905000000 - 000000008000400A53697A652E57696474680500000000000000C804400B5369 - 7A652E4865696768740500000000000000A803401453697A652E506C6174666F - 726D44656661756C7408000007544C61796F757400095374796C654E616D6506 - 07636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D - 617267696E732E4C65667405000000000000008001400B4D617267696E732E54 - 6F7005000000000000008000400D4D617267696E732E52696768740500000000 - 0000008000400E4D617267696E732E426F74746F6D0500000000000000800040 - 0A53697A652E57696474680500000000000000A804400B53697A652E48656967 - 68740500000000000000A803401453697A652E506C6174666F726D4465666175 - 6C7408000006544C6162656C00095374796C654E616D65060670726F6D707406 - 4C6F636B656409074F706163697479050000000000000080FE3F165465787453 - 657474696E67732E466F6E74436F6C6F720708636C6157686974650454657874 - 0604546578740000005450463007544C61796F757400095374796C654E616D65 - 060A6C6162656C7374796C6505416C69676E070643656E7465720A53697A652E - 57696474680500000000000000C805400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F7264657202030005545465787400095374796C654E - 616D6506047465787405416C69676E0708436F6E74656E747307486974546573 - 74080A53697A652E57696474680500000000000000C805400B53697A652E4865 - 696768740500000000000000C803401453697A652E506C6174666F726D446566 - 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C - 6157686974650000005450463007544C61796F757400095374796C654E616D65 - 060D67726F7570626F787374796C6505416C69676E070643656E7465720A5369 - 7A652E57696474680500000000000000F004400B53697A652E48656967687405 + 6C74080C5374726F6B652E436F6C6F7207097846463135313531350756697369 + 626C650800005450463007544C61796F757400095374796C654E616D65061373 + 6D616C6C7363726F6C6C6261727374796C6505416C69676E070643656E746572 + 0756697369626C6508085461624F726465720224000654547261636B00095374 + 796C654E616D65060668747261636B05416C69676E0706436C69656E74064C6F + 636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F726465720204000A5452656374616E676C65 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 - 6F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869745465737408 - 0C4D617267696E732E4C6566740500000000000000C000400B4D617267696E73 - 2E546F7005000000000000009002400D4D617267696E732E5269676874050000 - 0000000000C000400E4D617267696E732E426F74746F6D0500000000000000C0 - 00400A53697A652E57696474680500000000000000D804400B53697A652E4865 - 6967687405000000000000009804401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000554 - 5465787400095374796C654E616D65060474657874084175746F53697A65090A - 436C6970506172656E74090748697454657374080C4D617267696E732E4C6566 - 740500000000000000A002400A506F736974696F6E2E58050000000000605595 - 02400A506F736974696F6E2E590500000000004055D501C00A53697A652E5769 - 64746805000000000000B8C703400B53697A652E486569676874050000000000 - 0060FF02401453697A652E506C6174666F726D44656661756C74081654657874 - 53657474696E67732E466F6E74436F6C6F720708636C61576869746515546578 - 7453657474696E67732E576F72645772617008000000005450463007544C6179 - 6F757400095374796C654E616D65060D747261636B6261727374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000C805 - 400B53697A652E4865696768740500000000000000C805401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 02050B46697865644865696768740211000A5452656374616E676C6500095374 - 796C654E616D65060668747261636B05416C69676E070A5665727443656E7465 - 720A46696C6C2E436F6C6F720709784646313531353135074869745465737408 - 0A506F736974696F6E2E590500000000000000BC04400A53697A652E57696474 - 680500000000000000C805400B53697A652E4865696768740500000000000000 - A001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E61 - 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730946 - 696C6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374080C - 4D617267696E732E4C6566740500000000000000C001400B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 00000000C001400E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A53697A652E57696474680500000000000000B005400B53697A652E486569 - 6768740500000000000000C000401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E - 676C6500095374796C654E616D650609686967686C6967687405416C69676E07 - 044C6566740A46696C6C2E436F6C6F7207097846463241383245320748697454 - 657374080C50616464696E672E4C6566740500000000000000A002400A53697A - 652E57696474680500000000000000F003400B53697A652E4865696768740500 - 000000000000A001401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E6500000B54476C6F7745666665637400 - 08536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F720709 - 784646324138324532074F706163697479050000000000000080FF3F07456E61 - 626C6564080000000A5452656374616E676C6500095374796C654E616D650606 - 76747261636B05416C69676E070A486F727A43656E7465720A46696C6C2E436F - 6C6F7207097846463135313531350748697454657374080A506F736974696F6E - 2E580500000000000000BC04400A53697A652E57696474680500000000000000 - A001400B53697A652E4865696768740500000000000000C805401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000A5452656374616E676C6500095374796C654E616D65060A6261636B67 - 726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407 - 044E6F6E65064C6F636B6564090748697454657374080C4D617267696E732E4C - 6566740500000000000000C001400B4D617267696E732E546F70050000000000 - 000080FF3F0D4D617267696E732E52696768740500000000000000C001400E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 - 64746805000000000000000000000B53697A652E486569676874050000000000 - 0000C405401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C - 654E616D650609686967686C6967687405416C69676E0703546F700A46696C6C - 2E436F6C6F7207097846463241383245320748697454657374080A53697A652E - 57696474680500000000000000A001400B53697A652E48656967687405000000 - 00000000F003401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000B54476C6F77456666656374000853 - 6F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846 - 46324138324532074F706163697479050000000000000080FF3F07456E61626C - 65640800000006545468756D6200095374796C654E616D650606687468756D62 - 064C6F636B6564090A506F736974696F6E2E580500000000003033AB03400A50 - 6F736974696F6E2E59050000000000FFFFA304400A53697A652E576964746805 - 00000000000000F002400B53697A652E4865696768740500000000000000F002 - 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F - 6B7570060D7468756D626261727374796C65000006545468756D620009537479 - 6C654E616D650606767468756D62064C6F636B6564090A506F736974696F6E2E - 58050000000000CBCCA804400A506F736974696F6E2E590500000000009899B1 - 03400A53697A652E57696474680500000000000000F002400B53697A652E4865 - 696768740500000000000000F002401453697A652E506C6174666F726D446566 - 61756C74080B5374796C654C6F6F6B7570060D7468756D626261727374796C65 - 0000005450463007544C61796F757400095374796C654E616D65060D63686563 - 6B626F787374796C6505416C69676E070643656E7465720A53697A652E576964 - 7468050000000000ACAA8006400B53697A652E48656967687405000000000058 - 559904401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C6508085461624F7264657202060007544C61796F75740005416C69676E0704 - 4C6566740A53697A652E576964746805000000000000009003400B53697A652E - 48656967687405000000000058559904401453697A652E506C6174666F726D44 - 656661756C7408000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080A53697A652E576964 - 74680500000000000000F002400B53697A652E48656967687405000000000000 - 00F002401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F720709784646313531353135000A5452656374616E676C650009 - 5374796C654E616D65060A52656374616E676C653105416C69676E0706436C69 - 656E740A46696C6C2E436F6C6F72070978464632413832453207486974546573 - 7408074F70616369747905000000000000000000000C4D617267696E732E4C65 - 667405000000000000008000400B4D617267696E732E546F7005000000000000 - 008000400D4D617267696E732E526967687405000000000000008000400E4D61 - 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 - 74680500000000000000B002400B53697A652E48656967687405000000000000 - 00B002401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000953 - 74796C654E616D65061B6368656368626F7856697362696C697479416E696D61 - 74696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 - 74794E616D6506074F7061636974790A537461727456616C7565050000000000 - 00000000000953746F7056616C75650500000000000000C80540075472696767 - 6572060E4973436865636B65643D747275650E54726967676572496E76657273 - 65060F4973436865636B65643D66616C73650000000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650618636865636B626F785374726F6B65 - 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 - 616C756507097846463135313531350953746F7056616C756507097846463241 - 383245320754726967676572060E4973436865636B65643D747275650E547269 - 67676572496E7665727365060F4973436865636B65643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650617636865636B - 626F78436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 - 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A - 537461727456616C756507097846463230323032300953746F7056616C756507 - 097846463430343034300754726967676572061049734D6F7573654F7665723D - 747275650E54726967676572496E7665727365061149734D6F7573654F766572 - 3D66616C73650000000005545465787400095374796C654E616D650604746578 - 7405416C69676E0706436C69656E740A53697A652E5769647468050000000000 - 5855DD05400B53697A652E48656967687405000000000058559904401453697A - 652E506C6174666F726D44656661756C74080454657874060454657874165465 - 787453657474696E67732E466F6E74436F6C6F720708636C6157686974650000 - 00545046300A5452656374616E676C6500095374796C654E616D650614736372 - 6F6C6C62617268747261636B7374796C6505416C69676E070643656E7465720A - 46696C6C2E436F6C6F7207097846463135313531350748697454657374080A53 - 697A652E57696474680500000000000000C804400B53697A652E486569676874 - 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E650756697369626C650800065454 - 68756D6200095374796C654E616D6506057468756D62064C6F636B6564090A53 - 697A652E576964746805000000000000008003400B53697A652E486569676874 - 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 - 080B5374796C654C6F6F6B7570060A7468756D627374796C6500000054504630 - 0A5452656374616E676C6500095374796C654E616D6506147363726F6C6C6261 - 7276747261636B7374796C6505416C69676E070643656E7465720A46696C6C2E - 436F6C6F7207097846463135313531350748697454657374080A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E650756697369626C65080006545468756D6200 - 095374796C654E616D6506057468756D62064C6F636B6564090A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 0000008003401453697A652E506C6174666F726D44656661756C74080B537479 - 6C654C6F6F6B7570060A7468756D627374796C650000005450463007544C6179 - 6F757400095374796C654E616D6506157363726F6C6C626172626F74746F6D62 - 7574746F6E05416C69676E070643656E7465720756697369626C650808546162 - 4F726465720207000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E0706436C69656E740C436C6970436869 - 6C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978 - 46463230323032300748697454657374080A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000C804401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572617469 - 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463230323032300953746F - 7056616C756507097846463430343034300754726967676572062049734D6F75 - 73654F7665723D747275653B4973507265737365643D66616C73650E54726967 - 676572496E7665727365062149734D6F7573654F7665723D66616C73653B4973 - 507265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E - 32084475726174696F6E05000000000000000000000C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463430 - 343034300953746F7056616C7565070978464631373537394307547269676765 - 72061F4973507265737365643D747275653B49734D6F7573654F7665723D7472 - 75650E54726967676572496E766572736506204973507265737365643D66616C - 73653B49734D6F7573654F7665723D7472756500000007544C61796F75740009 - 5374796C654E616D6506074C61796F75743105416C69676E070643656E746572 - 0A53697A652E57696474680500000000000000A002400B53697A652E48656967 - 68740500000000000000C001401453697A652E506C6174666F726D4465666175 - 6C74080005545061746800095374796C654E616D650605506174683105416C69 - 676E0706436C69656E7409446174612E506174680A3400000004000000000000 - 000000C8420000C84201000000000096430000C8420100000000004843000096 - 43030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869 - 74650748697454657374080A53697A652E57696474680500000000000000A002 - 400B53697A652E4865696768740500000000000000C001401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 000000005450463007544C61796F757400095374796C654E616D650613736372 - 6F6C6C6261726C656674627574746F6E05416C69676E070643656E7465720756 - 697369626C6508085461624F726465720208000A5452656374616E676C650009 - 5374796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69 - 656E740C436C69704368696C6472656E090A436C6970506172656E74090A4669 - 6C6C2E436F6C6F7207097846463230323032300748697454657374080A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463230323032300953746F7056616C7565070978464634303430343007547269 - 67676572062049734D6F7573654F7665723D747275653B497350726573736564 - 3D66616C73650E54726967676572496E7665727365062149734D6F7573654F76 - 65723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C - 6F72416E696D6174696F6E32084475726174696F6E0500000000000000000000 - 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 - 616C756507097846463430343034300953746F7056616C756507097846463137 - 353739430754726967676572061F4973507265737365643D747275653B49734D - 6F7573654F7665723D747275650E54726967676572496E766572736506204973 - 507265737365643D66616C73653B49734D6F7573654F7665723D747275650000 - 0007544C61796F757400095374796C654E616D6506074C61796F75743105416C - 69676E070643656E7465720A53697A652E57696474680500000000000000A002 - 400B53697A652E4865696768740500000000000000C001401453697A652E506C - 6174666F726D44656661756C74080005545061746800095374796C654E616D65 - 0605506174683105416C69676E0706436C69656E7409446174612E506174680A - 3400000004000000000000000000C8420000C84201000000000096430000C842 - 010000000000484300009643030000000000C8420000C8420A46696C6C2E436F - 6C6F720708636C6157686974650748697454657374080D526F746174696F6E41 - 6E676C650500000000000000B405400A53697A652E5769647468050000000000 - 0000A002400B53697A652E4865696768740500000000000000C001401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000000005450463007544C61796F757400095374796C654E616D6506 - 147363726F6C6C6261727269676874627574746F6E05416C69676E070643656E - 7465720756697369626C6508085461624F726465720209000A5452656374616E - 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E - 0706436C69656E740C436C69704368696C6472656E090A436C6970506172656E - 74090A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 - 6E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C5072 - 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463230323032300953746F7056616C756507097846463430343034 - 300754726967676572062049734D6F7573654F7665723D747275653B49735072 - 65737365643D66616C73650E54726967676572496E7665727365062149734D6F - 7573654F7665723D66616C73653B4973507265737365643D66616C736500000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 - 6F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000000000 - 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463430343034300953746F7056616C75650709 - 7846463137353739430754726967676572061F4973507265737365643D747275 - 653B49734D6F7573654F7665723D747275650E54726967676572496E76657273 - 6506204973507265737365643D66616C73653B49734D6F7573654F7665723D74 - 72756500000007544C61796F757400095374796C654E616D6506074C61796F75 - 743105416C69676E070643656E7465720A53697A652E57696474680500000000 - 000000A002400B53697A652E4865696768740500000000000000C00140145369 - 7A652E506C6174666F726D44656661756C74080005545061746800095374796C - 654E616D650605506174683105416C69676E0706436C69656E7409446174612E - 506174680A3400000004000000000000000000C8420000C84201000000000096 - 430000C842010000000000484300009643030000000000C8420000C8420A4669 - 6C6C2E436F6C6F720708636C6157686974650748697454657374080D526F7461 - 74696F6E416E676C650500000000000000B405C00A53697A652E576964746805 - 00000000000000A002400B53697A652E4865696768740500000000000000C001 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000000005450463007544C61796F757400095374796C65 - 4E616D6506127363726F6C6C626172746F70627574746F6E05416C69676E0706 - 43656E7465720756697369626C6508085461624F72646572020A000A54526563 - 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C - 69676E0706436C69656E740C436C69704368696C6472656E090A436C69705061 - 72656E74090A46696C6C2E436F6C6F7207097846463230323032300748697454 - 657374080A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C - 6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F - 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 - 616C756507097846463230323032300953746F7056616C756507097846463430 - 343034300754726967676572062049734D6F7573654F7665723D747275653B49 - 73507265737365643D66616C73650E54726967676572496E7665727365062149 - 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562 - 7574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000 - 00000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463430343034300953746F7056616C75 - 6507097846463137353739430754726967676572061F4973507265737365643D - 747275653B49734D6F7573654F7665723D747275650E54726967676572496E76 - 6572736506204973507265737365643D66616C73653B49734D6F7573654F7665 - 723D7472756500000007544C61796F757400095374796C654E616D6506074C61 - 796F75743105416C69676E070643656E7465720A53697A652E57696474680500 - 000000000000A002400B53697A652E4865696768740500000000000000C00140 - 1453697A652E506C6174666F726D44656661756C740800055450617468000953 - 74796C654E616D650605506174683105416C69676E0706436C69656E74094461 - 74612E506174680A3400000004000000000000000000C8420000C84201000000 - 000096430000C842010000000000484300009643030000000000C8420000C842 - 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080D52 - 6F746174696F6E416E676C650500000000000000B406400A53697A652E576964 - 74680500000000000000A002400B53697A652E48656967687405000000000000 - 00C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000000005450463007544C61796F757400095374 - 796C654E616D65060E7363726F6C6C6261727374796C6505416C69676E070643 - 656E7465720756697369626C6508085461624F72646572020B00075442757474 - 6F6E00095374796C654E616D65060A6C656674627574746F6E05416C69676E07 - 044C656674064C6F636B6564090A506F736974696F6E2E590500000000000000 - 8003400A53697A652E576964746805000000000000008003400B53697A652E48 - 656967687405000000000000009003401453697A652E506C6174666F726D4465 - 6661756C74080B5374796C654C6F6F6B757006137363726F6C6C6261726C6566 - 74627574746F6E00000754427574746F6E00095374796C654E616D65060B7269 - 676874627574746F6E05416C69676E07055269676874064C6F636B6564090A50 - 6F736974696F6E2E5805000000000000008804400A506F736974696F6E2E5905 - 000000000000008003400A53697A652E57696474680500000000000000800340 - 0B53697A652E48656967687405000000000000009003401453697A652E506C61 - 74666F726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C - 6C6261727269676874627574746F6E00000754427574746F6E00095374796C65 - 4E616D65060C626F74746F6D627574746F6E05416C69676E0706426F74746F6D - 064C6F636B6564090A506F736974696F6E2E5905000000000000008804400A53 - 697A652E57696474680500000000000000C804400B53697A652E486569676874 - 05000000000000008003401453697A652E506C6174666F726D44656661756C74 - 080B5374796C654C6F6F6B757006157363726F6C6C626172626F74746F6D6275 - 74746F6E00000654547261636B00095374796C654E616D65060668747261636B - 05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E74617469 - 6F6E070A486F72697A6F6E74616C0A53697A652E576964746805000000000000 - 009003400B53697A652E48656967687405000000000000009003401453697A65 - 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570061473 - 63726F6C6C62617268747261636B7374796C6500000654547261636B00095374 - 796C654E616D65060676747261636B05416C69676E0706436C69656E74064C6F - 636B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A5369 - 7A652E576964746805000000000000009003400B53697A652E48656967687405 - 000000000000009003401453697A652E506C6174666F726D44656661756C7408 - 0B5374796C654C6F6F6B757006147363726F6C6C62617276747261636B737479 - 6C6500000754427574746F6E00095374796C654E616D650609746F7062757474 - 6F6E05416C69676E0703546F700A53697A652E57696474680500000000000000 - C804400B53697A652E48656967687405000000000000008003401453697A652E - 506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006127363 - 726F6C6C626172746F70627574746F6E000000545046300A5452656374616E67 - 6C6500095374796C654E616D65060A7468756D627374796C6505416C69676E07 - 0643656E7465720A46696C6C2E436F6C6F720709784646344434443444074869 - 7454657374080A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000000C804401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369 - 626C6508000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 06147468756D62436F6C6F72416E696D6174696F6E31084475726174696F6E05 - 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463444344434440953746F705661 - 6C756507097846463137353739430754726967676572060E4973507265737365 - 643D747275650E54726967676572496E7665727365060F497350726573736564 - 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 - 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464634 - 44344434440953746F7056616C75650707636C61477261790754726967676572 - 061049734D6F7573654F7665723D747275650E54726967676572496E76657273 - 65061149734D6F7573654F7665723D66616C7365000000545046300D54537769 - 7463684F626A65637400095374796C654E616D65060B7377697463687374796C - 6505416C69676E070643656E746572044B696E64070C466164696E6754726163 - 6B730A53697A652E57696474680500000000000000C805400B53697A652E4865 - 696768740500000000000000C803401453697A652E506C6174666F726D446566 - 61756C7408085461624F72646572020C12547261636B696E675468756D625363 - 616C65050000000000000080FF3F0756697369626C65080A46696C6C2E436F6C - 6F7207097846463230323032300C46696C6C4F6E2E436F6C6F72070978464631 - 37353739430B46696C6C4F6E2E4B696E640705536F6C69640B5374726F6B652E - 4B696E6407044E6F6E650B5468756D622E436F6C6F7207097846463430343034 - 300D5468756D624F6E2E436F6C6F7207097846463241383245320C5468756D62 - 4F6E2E4B696E640705536F6C6964105468756D625374726F6B652E4B696E6407 - 044E6F6E650F5468756D625374726F6B652E4361700705526F756E6410546875 - 6D625374726F6B652E446173680706437573746F6D105468756D625374726F6B - 652E4A6F696E0705526F756E64165468756D625374726F6B652E437573746F6D - 446173680A08000000000000000000000000005450463007544C61796F757400 - 095374796C654E616D65060C7370696E626F787374796C6505416C69676E0706 - 43656E7465720A53697A652E576964746805000000000000008A06400B53697A - 652E4865696768740500000000000000C003401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508085461624F72646572020D000A54 - 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 - 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 - 3230323032300A53697A652E576964746805000000000000008A06400B53697A - 652E4865696768740500000000000000C003401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 35000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061443 - 6F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05000000 - 0000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65060C53 - 74726F6B652E436F6C6F720A537461727456616C756507097846463135313531 - 350953746F7056616C7565070978464634303430343007547269676765720610 - 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 - 1149734D6F7573654F7665723D66616C73650000000C5442727573684F626A65 - 637400095374796C654E616D65060A666F726567726F756E640B42727573682E - 436F6C6F72070978464645414541454100000C5442727573684F626A65637400 - 095374796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F - 720709783936324138324532000007544C61796F757400095374796C654E616D - 650607636F6E74656E7405416C69676E0706436C69656E74064C6F636B656409 - 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 - 00400A53697A652E57696474680500000000000000AC05400B53697A652E4865 - 696768740500000000000000A003401453697A652E506C6174666F726D446566 - 61756C740800000754427574746F6E00095374796C654E616D65060B6D696E75 - 73627574746F6E05416C69676E07044C6566740843616E466F63757308064375 - 72736F72070763724172726F770C4D617267696E732E4C656674050000000000 - 00008000400B4D617267696E732E546F7005000000000000008000400D4D6172 - 67696E732E526967687405000000000000008000400E4D617267696E732E426F - 74746F6D05000000000000008000400A506F736974696F6E2E58050000000000 - 00008000400A506F736974696F6E2E5905000000000000008000400A53697A65 - 2E57696474680500000000000000A003400B53697A652E486569676874050000 - 0000000000A003401453697A652E506C6174666F726D44656661756C74080B53 - 74796C654C6F6F6B7570060B627574746F6E7374796C65000554506174680005 - 416C69676E070643656E74657209446174612E506174680A4000000005000000 - 000000000000803F00000000010000000000803F0000803F0100000000000000 - 0000003F010000000000803F00000000030000000000803F000000000A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080A53697A652E - 576964746805000000000000008002400B53697A652E48656967687405000000 - 000000008002401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E650000000754427574746F6E00095374796C - 654E616D65060A706C7573627574746F6E05416C69676E070552696768740843 - 616E466F6375730806437572736F72070763724172726F770C4D617267696E73 - 2E4C65667405000000000000008000400B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000800040 - 0E4D617267696E732E426F74746F6D05000000000000008000400A506F736974 - 696F6E2E580500000000000000E805400A506F736974696F6E2E590500000000 - 0000008000400A53697A652E57696474680500000000000000A003400B53697A - 652E4865696768740500000000000000A003401453697A652E506C6174666F72 - 6D44656661756C74080B5374796C654C6F6F6B7570060B627574746F6E737479 - 6C65000554506174680005416C69676E070643656E74657209446174612E5061 - 74680A3400000004000000000000000000000000000000010000000000000000 - 00803F010000000000803F0000003F0300000000000000000000000A46696C6C - 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 - 6964746805000000000000008002400B53697A652E4865696768740500000000 - 0000008002401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 - 5374796C654E616D65060F746162636F6E74726F6C7374796C6505416C69676E - 070643656E7465720A53697A652E576964746805000000000000008E06400B53 - 697A652E486569676874050000000000FFFFC905401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572020E00 - 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 - 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 - 4646333033303330064C6F636B6564090748697454657374080C50616464696E - 672E4C65667405000000000000008000400B50616464696E672E546F70050000 - 00000000008000400D50616464696E672E526967687405000000000000008000 - 400E50616464696E672E426F74746F6D05000000000000008000400A53697A65 - 2E576964746805000000000000008E06400B53697A652E486569676874050000 - 000000FFFFC905401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F720709784646313531353135000000545046300A5452 - 656374616E676C6500095374796C654E616D65060B746162646F747374796C65 - 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463135 - 313531350748697454657374080A53697A652E57696474680500000000000000 - C804400B53697A652E4865696768740500000000000000C804401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E650756697369626C6508000F54436F6C6F72416E696D6174696F6E00084475 - 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646313531353135 - 0953746F7056616C756507097846463241383245320754726967676572060F49 - 7353656C65637465643D747275650E54726967676572496E7665727365061049 - 7353656C65637465643D66616C73650000005450463007544C61796F75740009 - 5374796C654E616D65060C7461626974656D7374796C6505416C69676E070643 - 656E7465720A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C803401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508085461624F72646572020F000A5452 - 656374616E676C6500095374796C654E616D650603746F7005416C69676E0708 - 436F6E74656E74730C436C69704368696C6472656E0907436F726E6572730B07 - 546F704C65667408546F705269676874000A46696C6C2E436F6C6F7207097846 - 46323032303230064C6F636B6564090748697454657374080553696465730B03 - 546F70044C656674055269676874000A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C803401453697A - 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 - 09784646313531353135000654476C79706800095374796C654E616D65060A67 - 6C7970687374796C650C4D617267696E732E4C65667405000000000000008001 - 400D4D617267696E732E526967687405000000000000008001C005416C69676E - 07044C6566740A53697A652E576964746805000000000000008003400B53697A - 652E48656967687405000000000000008003401453697A652E506C6174666F72 - 6D44656661756C7408000005545465787400095374796C654E616D6506047465 - 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 - 080C4D617267696E732E4C6566740500000000000000C000400B4D617267696E - 732E546F700500000000000000C000400D4D617267696E732E52696768740500 - 000000000000C000400E4D617267696E732E426F74746F6D0500000000000000 - C000400A53697A652E57696474680500000000000000B004400B53697A652E48 - 656967687405000000000000009803401453697A652E506C6174666F726D4465 - 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 - 6C615768697465155465787453657474696E67732E576F726457726170080000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650612746162 - 436F6C6F72416E696D6174696F6E310D416E696D6174696F6E54797065070549 - 6E4F7574084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463230323032300953746F7056616C7565070978464634303430343007547269 - 67676572062149734D6F7573654F7665723D747275653B497353656C65637465 - 643D66616C73650E54726967676572496E7665727365062249734D6F7573654F - 7665723D66616C73653B497353656C65637465643D66616C736500000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650612746162436F6C6F - 72416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C - 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463230323032300953746F7056616C75650709784646324138 - 3245320754726967676572060F497353656C65637465643D747275650E547269 - 67676572496E76657273650610497353656C65637465643D66616C7365000000 - 00545046300A5452656374616E676C6500095374796C654E616D65060D746875 - 6D626261727374796C6505416C69676E070643656E7465720A46696C6C2E436F - 6C6F7207097846463241383245320748697454657374080A53697A652E576964 - 74680500000000000000A003400B53697A652E48656967687405000000000000 - 00A003401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F7207097846463135313531350756697369626C6508000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D6506147468756D62436F - 6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB - 3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 - 56616C756507097846463241383245320953746F7056616C7565070978464631 - 37353739430754726967676572061F4973507265737365643D747275653B4973 - 4D6F7573654F7665723D747275650E54726967676572496E7665727365061049 - 73507265737365643D66616C73653B00000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F - 6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 41383245320953746F7056616C75650709784646343039424646075472696767 - 6572062049734D6F7573654F7665723D747275653B4973507265737365643D66 - 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 - 3D66616C73653B4973507265737365643D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D6506157468756D625374726F6B65 - 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 - 616C756507097846463135313531350953746F7056616C756507097846463137 - 353739430754726967676572061F4973507265737365643D747275653B49734D - 6F7573654F7665723D747275650E54726967676572496E7665727365060F4973 - 507265737365643D66616C73650000005450463007544C61796F757400095374 - 796C654E616D65060C6C697374626F787374796C6505416C69676E070643656E - 7465720A53697A652E5769647468050000000000FFFFE905400B53697A652E48 - 656967687405000000000000008306401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F726465720210000C54427275 - 73684F626A65637400095374796C654E616D650618416C7465726E6174696E67 - 526F774261636B67726F756E640B42727573682E436F6C6F7207097846463243 - 3243324300000A5452656374616E676C6500095374796C654E616D65060A6261 - 636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F - 6C6F720709784646323032303230064C6F636B6564090748697454657374080C - 50616464696E672E4C65667405000000000000008000400B50616464696E672E - 546F7005000000000000008000400D50616464696E672E526967687405000000 - 000000008000400E50616464696E672E426F74746F6D05000000000000008000 - 400A53697A652E5769647468050000000000FFFFE905400B53697A652E486569 - 67687405000000000000008306401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C - 61796F757400095374796C654E616D650607636F6E74656E7405416C69676E07 - 06436C69656E740C436C69704368696C6472656E090A53697A652E5769647468 - 050000000000FFFFC105400B53697A652E4865696768740500000000000000DE - 05401453697A652E506C6174666F726D44656661756C7408000A545265637461 - 6E676C6500095374796C654E616D65060973656C656374696F6E0A46696C6C2E - 436F6C6F7207097846463241383245320748697454657374080A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009537479 - 6C654E616D650610666F637573656473656C656374696F6E0A46696C6C2E436F - 6C6F7207097846463241383245320748697454657374080A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650B5374726F6B652E446173680703446F74000000 - 0A545363726F6C6C42617200095374796C654E616D65060A767363726F6C6C62 - 617205416C69676E070552696768740B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E0708566572746963616C0A506F73 - 6974696F6E2E58050000000000FFFFC505400A506F736974696F6E2E59050000 - 00000000008000400A53697A652E576964746805000000000000008003400B53 - 697A652E4865696768740500000000000000DE05401453697A652E506C617466 - 6F726D44656661756C740800000A545363726F6C6C42617200095374796C654E - 616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D0B536D - 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E - 070A486F72697A6F6E74616C0A506F736974696F6E2E58050000000000000080 - 00400A506F736974696F6E2E590500000000000000E205400A53697A652E5769 - 647468050000000000FFFFE105400B53697A652E486569676874050000000000 - 00008003401453697A652E506C6174666F726D44656661756C740800000F5453 - 6D616C6C5363726F6C6C42617200095374796C654E616D65060F76736D616C6C - 7363726F6C6C62617205416C69676E070552696768740B536D616C6C4368616E - 676505000000000000000000000B4F7269656E746174696F6E07085665727469 - 63616C0C4D617267696E732E4C65667405000000000000008000400A506F7369 - 74696F6E2E580500000000000000C605400A506F736974696F6E2E5905000000 - 000000008000400A53697A652E576964746805000000000000008002400B5369 - 7A652E48656967687405000000000000008002401453697A652E506C6174666F - 726D44656661756C74080756697369626C650800000F54536D616C6C5363726F - 6C6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C6261 - 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D - 617267696E732E546F7005000000000000008000400A506F736974696F6E2E58 - 05000000000000008000400A506F736974696F6E2E590500000000000000E205 - 400A53697A652E576964746805000000000000009606400B53697A652E486569 - 67687405000000000000008002401453697A652E506C6174666F726D44656661 - 756C74080756697369626C65080000000B54476C6F774566666563740008536F - 66746E657373050000000000CDCCCCFC3F09476C6F77436F6C6F720709784646 - 463639453244074F7061636974790500000000006666E6FE3F07547269676765 - 72060E4973466F63757365643D7472756507456E61626C656408000000545046 - 3007544C61796F757400095374796C654E616D65060D6C697374626F78666F6F - 74657205416C69676E070643656E7465720A53697A652E576964746805000000 - 000000009205400B53697A652E4865696768740500000000000000D003401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F7264657202110005545465787400095374796C654E616D65060474657874 - 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080C - 4D617267696E732E4C6566740500000000000000A001400B4D617267696E732E - 546F7005000000000000008000400D4D617267696E732E526967687405000000 - 00000000A001400E4D617267696E732E426F74746F6D05000000000000008000 - 400A53697A652E57696474680500000000000000FC04400B53697A652E486569 - 6768740500000000000000B003401453697A652E506C6174666F726D44656661 - 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 - 57686974650000005450463007544C61796F757400095374796C654E616D6506 - 106C697374626F786974656D7374796C6505416C69676E070643656E7465720A - 53697A652E57696474680500000000000000D605400B53697A652E4865696768 - 740500000000000000C003401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508085461624F726465720212000654476C7970680009 - 5374796C654E616D65060A676C7970687374796C650C4D617267696E732E4C65 - 667405000000000000008000400B4D617267696E732E546F7005000000000000 - 0080FF3F0D4D617267696E732E526967687405000000000000008000400E4D61 - 7267696E732E426F74746F6D050000000000000080FF3F05416C69676E07044C - 6566740A53697A652E576964746805000000000000008003400B53697A652E48 - 656967687405000000000000008003401453697A652E506C6174666F726D4465 - 6661756C7408000005545465787400095374796C654E616D6506047465787405 - 416C69676E0706436C69656E740748697454657374080C4D617267696E732E4C - 6566740500000000000000C000400B4D617267696E732E546F70050000000000 - 000080FF3F0D4D617267696E732E52696768740500000000000000C000400E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 - 6474680500000000000000CA05400B53697A652E486569676874050000000000 - 0000B003401453697A652E506C6174666F726D44656661756C74081654657874 - 53657474696E67732E466F6E74436F6C6F720708636C61576869746515546578 - 7453657474696E67732E576F72645772617008165465787453657474696E6773 - 2E486F727A416C69676E07074C656164696E6700000954436865636B426F7800 - 095374796C654E616D650605636865636B05416C69676E07084D6F73744C6566 - 740843616E466F637573081244697361626C65466F637573456666656374090A - 53697A652E57696474680500000000000000A003400B53697A652E4865696768 - 740500000000000000C003401453697A652E506C6174666F726D44656661756C - 74080756697369626C65080000005450463007544C61796F757400095374796C - 654E616D6506126C697374626F78706C61696E68656164657205416C69676E07 - 0643656E7465720A53697A652E576964746805000000000000009205400B5369 - 7A652E4865696768740500000000000000D003401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F726465720213000A - 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E - 6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 - 46324432443244064C6F636B6564090748697454657374080A53697A652E5769 - 64746805000000000000009205400B53697A652E486569676874050000000000 - 0000D003401453697A652E506C6174666F726D44656661756C74080C5374726F - 6B652E436F6C6F72070978464631353135313500000554546578740009537479 - 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 - 64090748697454657374080C4D617267696E732E4C6566740500000000000000 - A001400B4D617267696E732E546F7005000000000000008000400D4D61726769 - 6E732E52696768740500000000000000A001400E4D617267696E732E426F7474 - 6F6D05000000000000008000400A53697A652E57696474680500000000000000 - FC04400B53697A652E4865696768740500000000000000B003401453697A652E - 506C6174666F726D44656661756C7408165465787453657474696E67732E466F - 6E74436F6C6F720708636C6157686974650000005450463007544C61796F7574 - 00095374796C654E616D650609677269647374796C6505416C69676E07064365 - 6E7465720A53697A652E5769647468050000000000FFFFE905400B53697A652E - 48656967687405000000000000008306401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F726465720214000C544272 - 7573684F626A65637400095374796C654E616D650618416C7465726E6174696E - 67526F774261636B67726F756E640B42727573682E436F6C6F72070978333237 - 383738373800000C5442727573684F626A65637400095374796C654E616D6506 - 086C696E6566696C6C0B42727573682E436F6C6F720709784646313531353135 - 00000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 - 6F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 - 09784646323032303230064C6F636B6564090748697454657374080C50616464 - 696E672E4C65667405000000000000008000400B50616464696E672E546F7005 - 000000000000008000400D50616464696E672E52696768740500000000000000 - 8000400E50616464696E672E426F74746F6D05000000000000008000400A5369 - 7A652E5769647468050000000000FFFFE905400B53697A652E48656967687405 - 000000000000008306401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F7207097846463135313531350007544865616465 - 7200095374796C654E616D6506066865616465720553696465730B03546F7004 - 4C65667406426F74746F6D0552696768740005416C69676E0703546F700A506F - 736974696F6E2E5805000000000000008000400A506F736974696F6E2E590500 - 0000000000008000400A53697A652E5769647468050000000000FFFFE105400B - 53697A652E4865696768740500000000000000A803401453697A652E506C6174 - 666F726D44656661756C7408000007544C61796F757400095374796C654E616D - 650607636F6E74656E7405416C69676E0706436C69656E740C436C6970436869 - 6C6472656E090A53697A652E5769647468050000000000FFFFC105400B53697A - 652E4865696768740500000000000000B405401453697A652E506C6174666F72 - 6D44656661756C7408000A5452656374616E676C6500095374796C654E616D65 - 060973656C656374696F6E0A46696C6C2E436F6C6F7207097846463241383245 - 320748697454657374080A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 000A5452656374616E676C6500095374796C654E616D650605666F6375730A46 - 696C6C2E436F6C6F7207097841463241383245320748697454657374080C4D61 - 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F - 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 - 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075952616469757305000000 - 00000000C000400000000A545363726F6C6C42617200095374796C654E616D65 - 060A767363726F6C6C62617205416C69676E070552696768740B536D616C6C43 - 68616E676505000000000000000000000B4F7269656E746174696F6E07085665 - 72746963616C0A506F736974696F6E2E58050000000000FFFFC505400A506F73 - 6974696F6E2E590500000000000000B803400A53697A652E5769647468050000 - 00000000008003400B53697A652E4865696768740500000000000000B4054014 - 53697A652E506C6174666F726D44656661756C740800000A545363726F6C6C42 - 617200095374796C654E616D65060A687363726F6C6C62617205416C69676E07 - 06426F74746F6D0B536D616C6C4368616E676505000000000000000000000B4F - 7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E - 5805000000000000008000400A506F736974696F6E2E590500000000000000E2 - 05400A53697A652E5769647468050000000000FFFFE105400B53697A652E4865 - 6967687405000000000000008003401453697A652E506C6174666F726D446566 - 61756C740800000F54536D616C6C5363726F6C6C42617200095374796C654E61 - 6D65060F76736D616C6C7363726F6C6C62617205416C69676E07055269676874 - 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 - 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 - 00008000400A506F736974696F6E2E580500000000000000C605400A506F7369 - 74696F6E2E5905000000000000008000400A53697A652E576964746805000000 - 000000008002400B53697A652E48656967687405000000000000008002401453 - 697A652E506C6174666F726D44656661756C74080756697369626C650800000F - 54536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D61 - 6C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C43 - 68616E676505000000000000000000000B4F7269656E746174696F6E070A486F - 72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A - 506F736974696F6E2E5805000000000000008000400A506F736974696F6E2E59 - 0500000000000000E205400A53697A652E576964746805000000000000009606 - 400B53697A652E48656967687405000000000000008002401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508000000005450463007 - 544C61796F757400095374796C654E616D65060F6865616465726974656D7374 - 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 000000009205400B53697A652E4865696768740500000000000000D003401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F726465720215000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646344334433443064C6F636B65640907486974546573 - 74080A53697A652E576964746805000000000000009205400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D6506156865616465 - 72436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD - CCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463443344334430953746F7056616C7565070978 - 46463241383245320754726967676572060E4973507265737365643D74727565 - 0E54726967676572496E7665727365060F4973507265737365643D66616C7365 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061668 - 65616465725374726F6B65416E696D6174696F6E31084475726174696F6E0500 - 00000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E43 - 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 - 616C756507097846463241383245320754726967676572060E49735072657373 - 65643D747275650E54726967676572496E7665727365060F4973507265737365 - 643D66616C736500000005545465787400095374796C654E616D650604746578 - 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 - 0C4D617267696E732E4C6566740500000000000000A001400B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 0000000000A001400E4D617267696E732E426F74746F6D050000000000000080 - 00400A53697A652E57696474680500000000000000FC04400B53697A652E4865 - 696768740500000000000000B003401453697A652E506C6174666F726D446566 - 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C - 6157686974650000005450463007544C61796F757400095374796C654E616D65 - 061070726F67726573736261727374796C6505416C69676E070643656E746572 - 0A53697A652E576964746805000000000033338505400B53697A652E48656967 - 68740500000000009999E104401453697A652E506C6174666F726D4465666175 - 6C74080756697369626C6508085461624F726465720216000A5452656374616E - 676C6500095374796C654E616D65060668747261636B05416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 - 6B6564090748697454657374080A53697A652E57696474680500000000003333 - 8505400B53697A652E4865696768740500000000009999E104401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 4646313531353135000A5452656374616E676C6500095374796C654E616D6506 - 0A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C - 6F720709784646324138324532064C6F636B6564090748697454657374080C4D - 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 - 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 - 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F - 0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E - 59050000000000000080FF3F0A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000009999D904401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 650000000A5452656374616E676C6500095374796C654E616D65060676747261 - 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 - 4646323032303230064C6F636B6564090748697454657374080A53697A652E57 - 6964746805000000000033338505400B53697A652E4865696768740500000000 - 009999E104401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F720709784646313531353135000A5452656374616E676C65 - 00095374796C654E616D65060A76696E64696361746F7205416C69676E070642 - 6F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B - 6564090748697454657374080C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 - 0080FF3F0A506F736974696F6E2E5905000000000099998904400A53697A652E - 576964746805000000000033338105400B53697A652E48656967687405000000 - 00000000A803401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 - 095374796C654E616D65061170726F677265737363656C6C7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000F805 - 400B53697A652E4865696768740500000000000000FC05401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 02170007544C61796F757400095374796C654E616D65060668747261636B0541 - 6C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E732E4C - 65667405000000000000008000400B4D617267696E732E546F70050000000000 - 00008000400D4D617267696E732E526967687405000000000000008000400E4D - 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 - 6474680500000000000000F005400B53697A652E486569676874050000000000 - 0000F405401453697A652E506C6174666F726D44656661756C7408000A545265 - 6374616E676C6500095374796C654E616D65060A68696E64696361746F720541 - 6C69676E07044C6566740A46696C6C2E436F6C6F720709784646324138324532 - 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 0000000000008000400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E526967687405000000000000008000400E4D617267696E - 732E426F74746F6D05000000000000008000400A506F736974696F6E2E580500 - 0000000000008000400A506F736974696F6E2E5905000000000000008000400A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000EC05401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C61 - 796F757400095374796C654E616D6506106D656E756261726974656D7374796C - 6505416C69676E070643656E7465720C4D617267696E732E4C65667405000000 - 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D - 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E - 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 - 000000009205400B53697A652E4865696768740500000000000000D003401453 - 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F726465720218000A5452656374616E676C650005416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F7207097846463241383245320748697454 - 65737408074F70616369747905000000000017B7D1F13F0A53697A652E576964 - 746805000000000000009205400B53697A652E48656967687405000000000000 - 00D003401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000844 - 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 - 074F7061636974790A537461727456616C756505000000000000000000000953 - 746F7056616C7565050000000000000080FF3F0754726967676572060F497353 - 656C65637465643D747275650E54726967676572496E76657273650610497353 - 656C65637465643D66616C73650000000A5452656374616E676C650009537479 - 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E - 74730A46696C6C2E436F6C6F7207097846463241383245320748697454657374 - 08074F70616369747905000000000017B7D1F13F0A53697A652E576964746805 - 000000000000009205400B53697A652E4865696768740500000000000000D003 - 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000844757261 - 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F70 - 61636974790A537461727456616C756505000000000000000000000953746F70 - 56616C7565050000000000000080FF3F0754726967676572061049734D6F7573 - 654F7665723D747275650E54726967676572496E7665727365061149734D6F75 - 73654F7665723D66616C736500000007544C61796F757400095374796C654E61 - 6D650605676C79706805416C69676E07044C6566740A53697A652E5769647468 - 0500000000000000C803400B53697A652E4865696768740500000000000000D0 - 03401453697A652E506C6174666F726D44656661756C74080007544C61796F75 - 7400095374796C654E616D650609636865636B6D61726B05416C69676E070843 - 6F6E74656E7473074F7061636974790500000000006F1283F53F0A53697A652E - 57696474680500000000000000C803400B53697A652E48656967687405000000 - 00000000D003401453697A652E506C6174666F726D44656661756C7408000554 - 506174680005416C69676E070643656E74657209446174612E506174680A5800 - 0000070000000000000056D9524391AE2C430100000092766643650216430100 - 00009F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB04375A4 - D1420100000026DF8243263F67430300000056D9524391AE2C430A46696C6C2E - 436F6C6F720708636C6157686974650748697454657374080A53697A652E5769 - 6474680500000000000000B002400B53697A652E486569676874050000000000 - 0000B002401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D6174696F6E00 - 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D - 6506074F7061636974790A537461727456616C75650500000000000000000000 - 0953746F7056616C7565050000000000000080FF3F0754726967676572060E49 - 73436865636B65643D747275650E54726967676572496E7665727365060F4973 - 436865636B65643D66616C73650000000654476C79706800095374796C654E61 - 6D65060A676C7970687374796C650C4D617267696E732E4C6566740500000000 - 00000080FF3F0B4D617267696E732E546F7005000000000000008000400D4D61 - 7267696E732E52696768740500000000000000C000400E4D617267696E732E42 - 6F74746F6D050000000000000080FF3F05416C69676E070552696768740A5369 - 7A652E576964746805000000000000008003400B53697A652E48656967687405 - 000000000000008003401453697A652E506C6174666F726D44656661756C7408 - 00000654496D61676500095374796C654E616D6506066269746D61700E4D756C - 74695265734269746D61700E01000005416C69676E0708436F6E74656E74730C - 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E - 546F7005000000000000008000400D4D617267696E732E526967687405000000 - 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 - 400A53697A652E57696474680500000000000000A803400B53697A652E486569 - 6768740500000000000000B003401453697A652E506C6174666F726D44656661 - 756C740800000005545465787400095374796C654E616D650604746578740541 - 6C69676E07044C656674064C6F636B6564090748697454657374080C4D617267 - 696E732E4C65667405000000000000008002400D4D617267696E732E52696768 - 7405000000000000008002400A506F736974696F6E2E58050000000000000084 - 04400A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000D003401453697A652E506C6174666F726D446566 - 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C - 615768697465165465787453657474696E67732E486F727A416C69676E07074C - 656164696E67000005545465787400095374796C654E616D65060873686F7274 - 63757405416C69676E07055269676874064C6F636B6564090748697454657374 - 080C4D617267696E732E4C6566740500000000000000C002400D4D617267696E - 732E52696768740500000000000000C001400A506F736974696F6E2E58050000 - 0000000000C000C00A53697A652E57696474680500000000000000C804400B53 - 697A652E4865696768740500000000000000D003401453697A652E506C617466 - 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C - 6F720708636C615768697465165465787453657474696E67732E486F727A416C - 69676E07074C656164696E67000007544C61796F757400095374796C654E616D - 6506077375626D61726B05416C69676E070552696768740A506F736974696F6E - 2E580500000000000000D404400A53697A652E57696474680500000000000000 - A003400B53697A652E4865696768740500000000000000D003401453697A652E - 506C6174666F726D44656661756C7408000554506174680005416C69676E0706 - 43656E74657209446174612E506174680A340000000400000000000000000000 - 000000000001000000000000000000803F010000000000803F0000003F030000 - 0000000000000000000A46696C6C2E436F6C6F720708636C615768697465064C - 6F636B6564090748697454657374080A53697A652E5769647468050000000000 - 0000E001400B53697A652E48656967687405000000000000008002401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6500000000545046300A5452656374616E676C6500095374796C654E61 - 6D65060C6D656E756261727374796C6505416C69676E070643656E7465720C43 - 6C69704368696C6472656E090946696C6C2E4B696E6407044E6F6E6507486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669736962 - 6C6508000A5452656374616E676C650005416C69676E0706436C69656E740A46 - 696C6C2E436F6C6F7207097846463230323032300748697454657374080C4D61 - 7267696E732E4C656674050000000000000080FFBF0B4D617267696E732E546F - 70050000000000000080FFBF0D4D617267696E732E5269676874050000000000 - 000080FFBF0A53697A652E57696474680500000000000000D004400B53697A65 - 2E4865696768740500000000000000CC04401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 000007544C61796F757400095374796C654E616D650607636F6E74656E740541 - 6C69676E0706436C69656E740C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 - 00C004400B53697A652E4865696768740500000000000000C004401453697A65 - 2E506C6174666F726D44656661756C74080000005450463007544C61796F7574 - 00095374796C654E616D65060D6D656E756974656D7374796C6505416C69676E - 070643656E7465720C4D617267696E732E4C656674050000000000000080FF3F - 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E - 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F0A53697A652E57696474680500000000000000920540 - 0B53697A652E4865696768740500000000000000D003401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 23000A5452656374616E676C650005416C69676E0708436F6E74656E74730A46 - 696C6C2E436F6C6F720709784646324138324532074869745465737408074F70 - 616369747905000000000017B7D1F13F0A53697A652E57696474680500000000 - 0000009205400B53697A652E4865696768740500000000000000D00340145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E - 050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974 - 790A537461727456616C756505000000000000000000000953746F7056616C75 - 65050000000000000080FF3F0754726967676572060F497353656C6563746564 - 3D747275650E54726967676572496E76657273650610497353656C6563746564 - 3D66616C73650000000A5452656374616E676C6500095374796C654E616D6506 - 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C - 2E436F6C6F720709784646324138324532074869745465737408074F70616369 - 747905000000000000000000000A53697A652E57696474680500000000000000 - 9205400B53697A652E4865696768740500000000000000D003401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E050000 - 000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D650607 - 4F7061636974790A537461727456616C75650500000000000000000000095374 - 6F7056616C7565050000000000000080FF3F0754726967676572061049734D6F - 7573654F7665723D747275650E54726967676572496E7665727365061149734D - 6F7573654F7665723D66616C736500000007544C61796F757400095374796C65 - 4E616D650605676C79706805416C69676E07044C6566740A53697A652E576964 - 74680500000000000000C803400B53697A652E48656967687405000000000000 - 00D003401453697A652E506C6174666F726D44656661756C74080007544C6179 - 6F757400095374796C654E616D650609636865636B6D61726B05416C69676E07 - 08436F6E74656E7473074F7061636974790500000000006F1283F53F0A53697A - 652E57696474680500000000000000C803400B53697A652E4865696768740500 - 000000000000D003401453697A652E506C6174666F726D44656661756C740800 - 0554506174680005416C69676E070643656E74657209446174612E506174680A - 58000000070000000000000056D9524391AE2C43010000009276664365021643 - 010000009F3983432B7C3C43010000009E9AA64382D2B442010000006F1CB043 - 75A4D1420100000026DF8243263F67430300000056D9524391AE2C430A46696C - 6C2E436F6C6F720708636C6157686974650748697454657374080A53697A652E - 57696474680500000000000000B002400B53697A652E48656967687405000000 - 00000000B002401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D6174696F - 6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E - 616D6506074F7061636974790A537461727456616C7565050000000000000000 - 00000953746F7056616C7565050000000000000080FF3F075472696767657206 - 0E4973436865636B65643D747275650E54726967676572496E7665727365060F - 4973436865636B65643D66616C73650000000654476C79706800095374796C65 - 4E616D65060A676C7970687374796C650C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F7005000000000000008000400D - 4D617267696E732E52696768740500000000000000C000400E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F05416C69676E07044C6566740A53 - 697A652E576964746805000000000000008003400B53697A652E486569676874 - 05000000000000008003401453697A652E506C6174666F726D44656661756C74 - 0800000654496D61676500095374796C654E616D6506066269746D61700E4D75 - 6C74695265734269746D61700E01000005416C69676E07044C6566740C4D6172 - 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 - 05000000000000008000400D4D617267696E732E526967687405000000000000 - 008000400E4D617267696E732E426F74746F6D05000000000000008000400A50 - 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 - 000000000000008000400A53697A652E57696474680500000000000000A80340 - 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 - 74666F726D44656661756C740800000005545465787400095374796C654E616D - 6506047465787405416C69676E07044C656674064C6F636B6564090748697454 - 657374080C4D617267696E732E4C65667405000000000000008002400D4D6172 - 67696E732E526967687405000000000000008002400A506F736974696F6E2E58 - 05000000000000008404400A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000D003401453697A652E506C - 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 - 436F6C6F720708636C615768697465165465787453657474696E67732E486F72 - 7A416C69676E07074C656164696E67000005545465787400095374796C654E61 - 6D65060873686F727463757405416C69676E07055269676874064C6F636B6564 - 090748697454657374080C4D617267696E732E4C6566740500000000000000C0 - 02400D4D617267696E732E52696768740500000000000000C001400A506F7369 - 74696F6E2E580500000000000000C000C00A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000D003401453 - 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 - 732E466F6E74436F6C6F720708636C615768697465165465787453657474696E - 67732E486F727A416C69676E07074C656164696E67000007544C61796F757400 - 095374796C654E616D6506077375626D61726B05416C69676E07055269676874 - 0A506F736974696F6E2E580500000000000000D404400A53697A652E57696474 - 680500000000000000A003400B53697A652E4865696768740500000000000000 - D003401453697A652E506C6174666F726D44656661756C740800055450617468 - 0005416C69676E070643656E74657209446174612E506174680A340000000400 - 000000000000000000000000000001000000000000000000803F010000000000 - 803F0000003F0300000000000000000000000A46696C6C2E436F6C6F72070863 - 6C615768697465064C6F636B6564090748697454657374080A53697A652E5769 - 6474680500000000000000E001400B53697A652E486569676874050000000000 - 00008002401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574000953 - 74796C654E616D6506126D656E75736570617261746F727374796C6505416C69 - 676E070643656E7465720C4D617267696E732E4C656674050000000000000080 - FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E - 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F - 6D050000000000000080FF3F0A53697A652E57696474680500000000000000C8 - 04400B53697A652E4865696768740500000000000000C804401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 7202250005544C696E650005416C69676E0703546F70084C696E655479706507 - 03546F700C4D617267696E732E4C6566740500000000000000C000400B4D6172 - 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 - 740500000000000000C000400A506F736974696F6E2E580500000000000000C0 - 00400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 - 6474680500000000000000B004400B53697A652E486569676874050000000000 - 000080FF3F1453697A652E506C6174666F726D44656661756C74080C5374726F - 6B652E436F6C6F720709784646313531353135000000545046300A5452656374 - 616E676C6500095374796C654E616D65060D6D656E75766965777374796C6505 - 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646323032 - 3032300A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000000000C804401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350756 - 697369626C6508000A5452656374616E676C650005416C69676E0706436C6965 - 6E740A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F720709784646313531353135000D5453 - 6861646F77456666656374000844697374616E63650500000000000000C00040 - 09446972656374696F6E0500000000000000B4044008536F66746E6573730500 - 00000000000080FE3F074F706163697479050000000000000080FE3F0B536861 - 646F77436F6C6F720708636C61426C61636B00000007544C61796F7574000953 - 74796C654E616D650607636F6E74656E7405416C69676E0706436C69656E740C - 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A53697A652E57696474680500000000000000C004400B53697A652E486569 - 6768740500000000000000C004401453697A652E506C6174666F726D44656661 - 756C74080000005450463007544C61796F757400095374796C654E616D65060E - 696D61676563656C6C7374796C6505416C69676E070643656E74657207566973 - 69626C6508085461624F726465720226000654496D61676500095374796C654E - 616D650605696D6167650E4D756C74695265734269746D61700E01000005416C - 69676E0706436C69656E74064C6F636B6564090748697454657374080C4D6172 - 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 - 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 - 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 - 697A652E57696474680500000000000000C004400B53697A652E486569676874 - 0500000000000000C004401453697A652E506C6174666F726D44656661756C74 - 080000005450463007544C61796F757400095374796C654E616D65060E706F70 - 757063656C6C7374796C6505416C69676E070643656E7465720756697369626C - 6508085461624F7264657202270007544C61796F75740005416C69676E070552 - 696768740A506F736974696F6E2E5805000000000000008C04400A53697A652E - 57696474680500000000000000F002400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C7408000554 - 506174680005416C69676E070643656E74657209446174612E506174680A4000 - 00000500000000000000000000000000803F010000000000803F0000803F0100 - 00000000003F0000000001000000000000000000803F03000000000000000000 - 00000A46696C6C2E436F6C6F720708636C615768697465074869745465737408 - 0B4D617267696E732E546F700500000000000000E001C00A53697A652E576964 - 746805000000000000008002400B53697A652E48656967687405000000000000 - 008001401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E6500000554506174680005416C69676E070643656E - 74657209446174612E506174680A340000000400000000000000000000000000 - 0000010000000000803F00000000010000000000003F0000803F030000000000 - 0000000000000A46696C6C2E436F6C6F720708636C6157686974650748697454 - 657374080B4D617267696E732E546F700500000000000000C001400A53697A65 - 2E576964746805000000000000008002400B53697A652E486569676874050000 - 00000000008001401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6500000005545465787400095374796C65 - 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 - 0748697454657374080C4D617267696E732E4C6566740500000000000000A001 - 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 - 2E52696768740500000000000000A001400E4D617267696E732E426F74746F6D - 05000000000000008000400A53697A652E57696474680500000000000000C803 - 400B53697A652E4865696768740500000000000000B804401453697A652E506C - 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 - 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 - 5374796C654E616D65060D7465787463656C6C7374796C6505416C69676E0706 - 43656E7465720756697369626C6508085461624F7264657202280007544C6179 - 6F757400095374796C654E616D650607636F6E74656E7405416C69676E070843 - 6F6E74656E7473064C6F636B6564090C4D617267696E732E4C65667405000000 - 000000008001400B4D617267696E732E546F7005000000000000008001400D4D - 617267696E732E526967687405000000000000008001400E4D617267696E732E - 426F74746F6D05000000000000008001400A53697A652E576964746805000000 - 00000000A804400B53697A652E4865696768740500000000000000A804401453 - 697A652E506C6174666F726D44656661756C740800000C5442727573684F626A - 65637400095374796C654E616D65060A666F726567726F756E6400000C544272 - 7573684F626A65637400095374796C654E616D65060973656C656374696F6E0B - 42727573682E436F6C6F72070978393632413832453200000B54466F6E744F62 - 6A65637400095374796C654E616D650604666F6E740000005450463007544C61 - 796F757400095374796C654E616D6506096D656D6F7374796C6505416C69676E - 070643656E7465720A53697A652E5769647468050000000000CCCC8806400B53 - 697A652E4865696768740500000000006666F405401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572022900 - 0C5442727573684F626A65637400095374796C654E616D65060A666F72656772 - 6F756E6400000C5442727573684F626A65637400095374796C654E616D650609 - 73656C656374696F6E0B42727573682E436F6C6F720709783746343437353944 - 00000B54466F6E744F626A65637400095374796C654E616D650604666F6E7400 - 000A5452656374616E676C6500095374796C654E616D65060A6261636B67726F - 756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 - 7846463230323032300748697454657374080A53697A652E5769647468050000 - 000000CCCC8806400B53697A652E4865696768740500000000006666F4054014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F7207097846463135313531350007544C61796F757400095374796C654E616D - 650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E73 - 2E4C65667405000000000000008000400B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000800040 - 0E4D617267696E732E426F74746F6D05000000000000008000400A53697A652E - 57696474680500000000009899E905400B53697A652E48656967687405000000 - 00006666CC05401453697A652E506C6174666F726D44656661756C740800000A - 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 - 7205416C69676E0706426F74746F6D06437572736F72070763724172726F770B - 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 - 6F6E070A486F72697A6F6E74616C0A506F736974696F6E2E5905000000000066 - 66D405400A53697A652E5769647468050000000000CCCC8806400B53697A652E - 48656967687405000000000000008003401453697A652E506C6174666F726D44 - 656661756C740800000A545363726F6C6C42617200095374796C654E616D6506 - 0A767363726F6C6C62617205416C69676E0705526967687406437572736F7207 - 0763724172726F770B536D616C6C4368616E676505000000000000000000000B - 4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E2E58 - 0500000000009899F105400A53697A652E576964746805000000000000008003 - 400B53697A652E4865696768740500000000006666D405401453697A652E506C - 6174666F726D44656661756C7408000007544C61796F75740005416C69676E07 - 06436C69656E740A53697A652E57696474680500000000009899F105400B5369 - 7A652E4865696768740500000000006666D405401453697A652E506C6174666F - 726D44656661756C7408000F54536D616C6C5363726F6C6C4261720009537479 - 6C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E070552 - 6967687406437572736F72070763724172726F770B536D616C6C4368616E6765 - 05000000000000000000000B4F7269656E746174696F6E070856657274696361 - 6C0C4D617267696E732E4C65667405000000000000008000400A53697A652E57 - 6964746805000000000000008002400B53697A652E4865696768740500000000 - 0000008002401453697A652E506C6174666F726D44656661756C740807566973 - 69626C650800000F54536D616C6C5363726F6C6C42617200095374796C654E61 - 6D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F - 6D06437572736F72070763724172726F770B536D616C6C4368616E6765050000 - 00000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C - 0B4D617267696E732E546F7005000000000000008000400A53697A652E576964 - 746805000000000000009606400B53697A652E48656967687405000000000000 - 008002401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C65080000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 6506146D656D6F5374726F6B65416E696D6174696F6E31084475726174696F6E - 050000000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B65 - 2E436F6C6F720A537461727456616C756507097846463135313531350953746F - 7056616C756507097846463430343034300754726967676572062049734D6F75 - 73654F7665723D747275653B4973466F63757365643D66616C73650E54726967 - 676572496E7665727365062149734D6F7573654F7665723D66616C73653B4973 - 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D6506146D656D6F5374726F6B65416E696D6174696F6E32 - 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D - 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464634 - 30343034300953746F7056616C75650709784646324138324532075472696767 - 6572060E4973466F63757365643D747275650E54726967676572496E76657273 - 65060F4973466F63757365643D66616C7365000000005450463007544C61796F - 757400095374796C654E616D65060E6C696E6B6C6162656C7374796C6505416C - 69676E070643656E7465720A53697A652E5769647468050000000000CCCC8006 - 400B53697A652E4865696768740500000000009A998104401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 022A0005545465787400095374796C654E616D6506047465787405416C69676E - 0708436F6E74656E74730748697454657374080A53697A652E57696474680500 - 00000000CCCC8006400B53697A652E4865696768740500000000009A99810440 - 1453697A652E506C6174666F726D44656661756C740804546578740604546578 - 741A5465787453657474696E67732E466F6E742E5374796C654578740A0D0000 - 0004040000000000000004000000165465787453657474696E67732E466F6E74 - 436F6C6F72070D636C61446F64676572626C7565000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E - 315374796C65084475726174696F6E050000000000CDCCCCFB3F07496E766572 - 7365090C50726F70657274794E616D6506165465787453657474696E67732E46 - 6F6E74436F6C6F720A537461727456616C7565070D636C61446F64676572626C - 75650953746F7056616C7565070E636C6144656570736B79626C756507547269 - 67676572063049734D6F7573654F7665723D747275653B497350726573736564 - 3D66616C73653B4973466F63757365643D66616C73650E54726967676572496E - 7665727365063149734D6F7573654F7665723D66616C73653B49735072657373 - 65643D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D - 6174696F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C - 50726F70657274794E616D6506165465787453657474696E67732E466F6E7443 - 6F6C6F720A537461727456616C7565070E636C6144656570736B79626C756509 - 53746F7056616C756507097846463137353739430754726967676572062F4973 - 507265737365643D747275653B49734D6F7573654F7665723D747275653B4973 - 466F63757365643D66616C7365000000005450463007544C61796F7574000953 - 74796C654E616D65060D73697A65677269707374796C6505416C69676E070643 - 656E7465720A53697A652E57696474680500000000000000C803400B53697A65 - 2E4865696768740500000000000000C803401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508085461624F72646572022B000A5452 - 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 - 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646363036 - 3036300A53697A652E57696474680500000000000000A000400B53697A652E48 - 65696768740500000000000000A000401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374 - 616E676C6500095374796C654E616D65060A52656374616E676C653205416C69 - 676E070643656E7465720A46696C6C2E436F6C6F720709784646363036303630 - 0C4D617267696E732E4C6566740500000000000000A002400A53697A652E5769 - 6474680500000000000000A000400B53697A652E486569676874050000000000 - 0000A000401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C - 654E616D65060A52656374616E676C653305416C69676E070643656E7465720A - 46696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C65 - 66740500000000000000A002400B4D617267696E732E546F7005000000000000 - 00A002400A53697A652E57696474680500000000000000A000400B53697A652E - 4865696768740500000000000000A000401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A54526563 - 74616E676C6500095374796C654E616D65060A52656374616E676C653405416C - 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463630363036 - 300B4D617267696E732E546F700500000000000000A002400A53697A652E5769 - 6474680500000000000000A000400B53697A652E486569676874050000000000 - 0000A000401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C - 654E616D65060A52656374616E676C653505416C69676E070643656E7465720A - 46696C6C2E436F6C6F7207097846463630363036300B4D617267696E732E546F - 700500000000000000A002400D4D617267696E732E5269676874050000000000 - 0000A002400A53697A652E57696474680500000000000000A000400B53697A65 - 2E4865696768740500000000000000A000401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265 - 6374616E676C6500095374796C654E616D65060A52656374616E676C65360541 - 6C69676E070643656E7465720A46696C6C2E436F6C6F72070978464636303630 - 36300C4D617267696E732E4C6566740500000000000000A002400E4D61726769 - 6E732E426F74746F6D0500000000000000A002400A53697A652E576964746805 - 00000000000000A000400B53697A652E4865696768740500000000000000A000 + 0B5374796C654C6F6F6B757006147363726F6C6C62617268747261636B737479 + 6C6500000654547261636B00095374796C654E616D65060676747261636B0541 + 6C69676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E + 070A486F72697A6F6E74616C0A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374796C654C6F6F6B75700614736372 + 6F6C6C62617276747261636B7374796C650000005450463007544C61796F7574 + 00095374796C654E616D65060D73706C69747465727374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000000A904400B53 + 697A652E4865696768740500000000000080C105401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572022500 + 07544C61796F757400095374796C654E616D6506046772697005416C69676E07 + 06436C69656E740A53697A652E57696474680500000000000000A904400B5369 + 7A652E4865696768740500000000000080C105401453697A652E506C6174666F + 726D44656661756C7408000754436972636C6500095374796C654E616D650607 + 436972636C653105416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463430343034300A53697A652E57696474680500000000000000E001 + 400B53697A652E4865696768740500000000000000E001401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 31353135313500000754436972636C6500095374796C654E616D650607436972 + 636C653205416C69676E070643656E7465720A46696C6C2E436F6C6F72070978 + 46463430343034300B4D617267696E732E546F700500000000000000A003400A + 53697A652E57696474680500000000000000E001400B53697A652E4865696768 + 740500000000000000E001401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135000007544369 + 72636C6500095374796C654E616D650607436972636C653305416C69676E0706 + 43656E7465720A46696C6C2E436F6C6F7207097846463430343034300E4D6172 + 67696E732E426F74746F6D0500000000000000A003400A53697A652E57696474 + 680500000000000000E001400B53697A652E4865696768740500000000000000 + E001401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135000000005450463007544C61796F75 + 7400095374796C654E616D6506106D656E756261726974656D7374796C650541 + 6C69676E070643656E7465720C4D617267696E732E4C65667405000000000000 + 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 + 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 + 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 + 009205400B53697A652E4865696768740500000000000000D003401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 + 6465720226000A5452656374616E676C650005416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F7207097846463241383245320748697454657374 + 08074F70616369747905000000000017B7D1F13F0A53697A652E576964746805 + 000000000000009205400B53697A652E4865696768740500000000000000D003 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000000545046300A5452656374616E676C650009537479 - 6C654E616D65060E7374617475736261727374796C6505416C69676E07064365 - 6E7465720C436C69704368696C6472656E090A46696C6C2E436F6C6F72070978 - 46463235323532350553696465730B03546F70000A53697A652E576964746805 - 00000000000000F004400B53697A652E4865696768740500000000000000C804 + 696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000844757261 + 74696F6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F70 + 61636974790A537461727456616C756505000000000000000000000953746F70 + 56616C7565050000000000000080FF3F0754726967676572060F497353656C65 + 637465643D747275650E54726967676572496E76657273650610497353656C65 + 637465643D66616C73650000000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A + 46696C6C2E436F6C6F720709784646324138324532074869745465737408074F + 70616369747905000000000017B7D1F13F0A53697A652E576964746805000000 + 000000009205400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F + 6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F70616369 + 74790A537461727456616C756505000000000000000000000953746F7056616C + 7565050000000000000080FF3F0754726967676572061049734D6F7573654F76 + 65723D747275650E54726967676572496E7665727365061149734D6F7573654F + 7665723D66616C736500000007544C61796F757400095374796C654E616D6506 + 05676C79706805416C69676E07044C6566740A53697A652E5769647468050000 + 0000000000C803400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C74080007544C61796F75740009 + 5374796C654E616D650609636865636B6D61726B05416C69676E0708436F6E74 + 656E7473074F7061636974790500000000006F1283F53F0A53697A652E576964 + 74680500000000000000C803400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C7408000554506174 + 680005416C69676E070643656E74657209446174612E506174680A5800000007 + 0000000000000056D9524391AE2C43010000009276664365021643010000009F + 3983432B7C3C43010000009E9AA64382D2B442010000006F1CB04375A4D14201 + 00000026DF8243263F67430300000056D9524391AE2C430A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080A53697A652E5769647468 + 0500000000000000B002400B53697A652E4865696768740500000000000000B0 + 02401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6500000F54466C6F6174416E696D6174696F6E00084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D650607 + 4F7061636974790A537461727456616C75650500000000000000000000095374 + 6F7056616C7565050000000000000080FF3F0754726967676572060E49734368 + 65636B65643D747275650E54726967676572496E7665727365060F4973436865 + 636B65643D66616C73650000000654476C79706800095374796C654E616D6506 + 0A676C7970687374796C650C4D617267696E732E4C6566740500000000000000 + 80FF3F0B4D617267696E732E546F7005000000000000008000400D4D61726769 + 6E732E52696768740500000000000000C000400E4D617267696E732E426F7474 + 6F6D050000000000000080FF3F05416C69676E070552696768740A506F736974 + 696F6E2E580500000000000000C001400A506F736974696F6E2E590500000000 + 0000008000400A53697A652E576964746805000000000000008003400B53697A + 652E4865696768740500000000000000B803401453697A652E506C6174666F72 + 6D44656661756C740800000654496D61676500095374796C654E616D65060662 + 69746D61700E4D756C74695265734269746D61700E01000005416C69676E0708 + 436F6E74656E74730C4D617267696E732E4C6566740500000000000000800040 + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 + 000000000000008000400A53697A652E57696474680500000000000000A80340 + 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 + 74666F726D44656661756C740800000005545465787400095374796C654E616D + 6506047465787405416C69676E07044C656674064C6F636B6564090748697454 + 657374080C4D617267696E732E4C65667405000000000000008002400D4D6172 + 67696E732E526967687405000000000000008002400A506F736974696F6E2E58 + 05000000000000008404400A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000D003401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C615768697465165465787453657474696E67732E486F72 + 7A416C69676E07074C656164696E67000005545465787400095374796C654E61 + 6D65060873686F727463757405416C69676E07055269676874064C6F636B6564 + 090748697454657374080C4D617267696E732E4C6566740500000000000000C0 + 02400D4D617267696E732E52696768740500000000000000C001400A506F7369 + 74696F6E2E580500000000000000C000C00A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F720708636C615768697465165465787453657474696E + 67732E486F727A416C69676E07074C656164696E67000007544C61796F757400 + 095374796C654E616D6506077375626D61726B05416C69676E07055269676874 + 0A506F736974696F6E2E580500000000000000D404400A53697A652E57696474 + 680500000000000000A003400B53697A652E4865696768740500000000000000 + D003401453697A652E506C6174666F726D44656661756C740800055450617468 + 0005416C69676E070643656E74657209446174612E506174680A340000000400 + 000000000000000000000000000001000000000000000000803F010000000000 + 803F0000003F0300000000000000000000000A46696C6C2E436F6C6F72070863 + 6C615768697465064C6F636B6564090748697454657374080A53697A652E5769 + 6474680500000000000000E001400B53697A652E486569676874050000000000 + 00008002401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6500000000545046300A5452656374616E676C65 + 00095374796C654E616D65060C6D656E756261727374796C6505416C69676E07 + 0643656E7465720C436C69704368696C6472656E090946696C6C2E4B696E6407 + 044E6F6E650748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E650756697369626C650807585261646975730500000000000000C0004007 + 595261646975730500000000000000C00040000A5452656374616E676C650005 + 416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646323032 + 3032300748697454657374080C4D617267696E732E4C65667405000000000000 + 0080FFBF0B4D617267696E732E546F70050000000000000080FFBF0D4D617267 + 696E732E5269676874050000000000000080FFBF0A53697A652E576964746805 + 00000000000000D004400B53697A652E4865696768740500000000000000CC04 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 - 6F6C6F7207097846463135313531350756697369626C65080007544C61796F75 - 7400095374796C654E616D6506074C61796F75743105416C69676E0705526967 - 68740A506F736974696F6E2E5805000000000000008C04400A53697A652E5769 - 6474680500000000000000C803400B53697A652E486569676874050000000000 - 0000C804401453697A652E506C6174666F726D44656661756C74080009545369 - 7A654772697000095374796C654E616D65060973697A65677267697005416C69 - 676E0706426F74746F6D0A506F736974696F6E2E590500000000000000C80340 - 0A53697A652E57696474680500000000000000C803400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C740800000000545046300A5452656374616E676C6500095374796C654E616D - 65060C746F6F6C6261727374796C6505416C69676E070643656E7465720A4669 - 6C6C2E436F6C6F72070978464632353235323507486974546573740805536964 - 65730B06426F74746F6D000A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 3135313531350756697369626C650800005450463007544C61796F7574000953 - 74796C654E616D65061570726F67726573736261726572726F727374796C6505 - 416C69676E070643656E7465720A53697A652E57696474680500000000003333 - 8505400B53697A652E4865696768740500000000009999E104401453697A652E - 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 - 6572022C000A5452656374616E676C6500095374796C654E616D650606687472 - 61636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 - 784646323032303230064C6F636B6564090748697454657374080A53697A652E - 576964746805000000000033338505400B53697A652E48656967687405000000 - 00009999E104401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F720709784646313531353135000A5452656374616E676C - 6500095374796C654E616D65060A68696E64696361746F7205416C69676E0704 - 4C6566740A46696C6C2E436F6C6F720709784646453232413241064C6F636B65 + 6F6C6F72070978464631353135313507585261646975730500000000000000C0 + 004007595261646975730500000000000000C00040000007544C61796F757400 + 095374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E + 740C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 00000000000080FF3F0E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A53697A652E57696474680500000000000000C004400B53697A652E48 + 65696768740500000000000000C004401453697A652E506C6174666F726D4465 + 6661756C74080000005450463007544C61796F757400095374796C654E616D65 + 060D6D656E756974656D7374796C6505416C69676E070643656E7465720C4D61 + 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E576964746805000000000000009205400B53697A652E4865696768 + 740500000000000000D003401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508085461624F726465720227000A5452656374616E67 + 6C650005416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709 + 784646324138324532074869745465737408074F706163697479050000000000 + 17B7D1F13F0A53697A652E576964746805000000000000009205400B53697A65 + 2E4865696768740500000000000000D003401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F + 6174416E696D6174696F6E00084475726174696F6E05000000000018B7D1F23F + 0C50726F70657274794E616D6506074F7061636974790A537461727456616C75 + 6505000000000000000000000953746F7056616C7565050000000000000080FF + 3F0754726967676572060F497353656C65637465643D747275650E5472696767 + 6572496E76657273650610497353656C65637465643D66616C73650000000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 324138324532074869745465737408074F706163697479050000000000000000 + 00000A53697A652E576964746805000000000000009205400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 + 6E696D6174696F6E00084475726174696F6E05000000000018B7D1F23F07496E + 7665727365090C50726F70657274794E616D6506074F7061636974790A537461 + 727456616C756505000000000000000000000953746F7056616C756505000000 + 0000000080FF3F0754726967676572061049734D6F7573654F7665723D747275 + 650E54726967676572496E7665727365061149734D6F7573654F7665723D6661 + 6C736500000007544C61796F757400095374796C654E616D650605676C797068 + 05416C69676E07044C6566740A53697A652E57696474680500000000000000C8 + 03400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080007544C61796F757400095374796C654E + 616D650609636865636B6D61726B05416C69676E0708436F6E74656E7473074F + 7061636974790500000000006F1283F53F0A53697A652E576964746805000000 + 00000000C803400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C7408000554506174680005416C69 + 676E070643656E74657209446174612E506174680A5800000007000000000000 + 0056D9524391AE2C43010000009276664365021643010000009F3983432B7C3C + 43010000009E9AA64382D2B442010000006F1CB04375A4D1420100000026DF82 + 43263F67430300000056D9524391AE2C430A46696C6C2E436F6C6F720708636C + 6157686974650748697454657374080A53697A652E5769647468050000000000 + 0000B002400B53697A652E4865696768740500000000000000B002401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6500000F54466C6F6174416E696D6174696F6E00084475726174696F6E + 050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974 + 790A537461727456616C756505000000000000000000000953746F7056616C75 + 65050000000000000080FF3F0754726967676572060E4973436865636B65643D + 747275650E54726967676572496E7665727365060F4973436865636B65643D66 + 616C73650000000654476C79706800095374796C654E616D65060A676C797068 + 7374796C650C4D617267696E732E4C656674050000000000000080FF3F0B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 68740500000000000000C000400E4D617267696E732E426F74746F6D05000000 + 0000000080FF3F05416C69676E07044C6566740A506F736974696F6E2E580500 + 00000000000080FF3F0A506F736974696F6E2E5905000000000000008000400A + 53697A652E576964746805000000000000008003400B53697A652E4865696768 + 740500000000000000B803401453697A652E506C6174666F726D44656661756C + 740800000654496D61676500095374796C654E616D6506066269746D61700E4D + 756C74695265734269746D61700E01000005416C69676E07044C6566740C4D61 + 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F + 7005000000000000008000400D4D617267696E732E5269676874050000000000 + 00008000400E4D617267696E732E426F74746F6D05000000000000008000400A + 506F736974696F6E2E5805000000000000008000400A506F736974696F6E2E59 + 05000000000000008000400A53697A652E57696474680500000000000000A803 + 400B53697A652E4865696768740500000000000000B003401453697A652E506C + 6174666F726D44656661756C740800000005545465787400095374796C654E61 + 6D6506047465787405416C69676E07044C656674064C6F636B65640907486974 + 54657374080C4D617267696E732E4C65667405000000000000008002400D4D61 + 7267696E732E526967687405000000000000008002400A506F736974696F6E2E + 5805000000000000008404400A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C7408165465787453657474696E67732E466F6E + 74436F6C6F720708636C615768697465165465787453657474696E67732E486F + 727A416C69676E07074C656164696E67000005545465787400095374796C654E + 616D65060873686F727463757405416C69676E07055269676874064C6F636B65 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + C002400D4D617267696E732E52696768740500000000000000C001400A506F73 + 6974696F6E2E580500000000000000C000C00A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E + 67732E466F6E74436F6C6F720708636C61576869746516546578745365747469 + 6E67732E486F727A416C69676E07074C656164696E67000007544C61796F7574 + 00095374796C654E616D6506077375626D61726B05416C69676E070552696768 + 740A506F736974696F6E2E580500000000000000D404400A53697A652E576964 + 74680500000000000000A003400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C7408000554506174 + 680005416C69676E070643656E74657209446174612E506174680A3400000004 + 00000000000000000000000000000001000000000000000000803F0100000000 + 00803F0000003F0300000000000000000000000A46696C6C2E436F6C6F720708 + 636C615768697465064C6F636B6564090748697454657374080A53697A652E57 + 696474680500000000000000E001400B53697A652E4865696768740500000000 + 0000008002401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 + 5374796C654E616D6506126D656E75736570617261746F727374796C6505416C + 69676E070643656E7465720C4D617267696E732E4C6566740500000000000000 80FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61726769 6E732E5269676874050000000000000080FF3F0E4D617267696E732E426F7474 - 6F6D050000000000000080FF3F0A506F736974696F6E2E580500000000000000 - 80FF3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 009999D904401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E650000000A5452656374616E676C6500095374 - 796C654E616D65060676747261636B05416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 - 7454657374080A53697A652E576964746805000000000033338505400B53697A - 652E4865696768740500000000009999E104401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 35000A5452656374616E676C6500095374796C654E616D65060A76696E646963 - 61746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978 - 4646453232413241064C6F636B6564090748697454657374080C4D617267696E + 6F6D050000000000000080FF3F0A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 657202280005544C696E650005416C69676E0703546F70084C696E6554797065 + 0703546F700C4D617267696E732E4C656674050000000000000080FFBF0B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 6874050000000000000080FFBF0A506F736974696F6E2E580500000000000000 + 80FFBF0A506F736974696F6E2E5905000000000000008000400A53697A652E57 + 696474680500000000000000D004400B53697A652E4865696768740500000000 + 00000080FF3F1453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000000545046300A54526563 + 74616E676C6500095374796C654E616D65060D6D656E75766965777374796C65 + 05416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846463230 + 323032300A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 + 56697369626C650807585261646975730500000000000000C000400759526164 + 6975730500000000000000C000400007544C61796F757400095374796C654E61 + 6D650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF - 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A506F7369 - 74696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000 - 000099998904400A53697A652E576964746805000000000033338105400B5369 - 7A652E4865696768740500000000000000A803401453697A652E506C6174666F - 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000 - 5450463007544C61796F757400095374796C654E616D650613736D616C6C7363 - 726F6C6C6261727374796C6505416C69676E070643656E746572075669736962 - 6C6508085461624F72646572022D000654547261636B00095374796C654E616D - 65060668747261636B05416C69676E0706436C69656E74064C6F636B6564090B - 4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E576964 - 74680500000000000000C804400B53697A652E48656967687405000000000000 - 00C804401453697A652E506C6174666F726D44656661756C74080B5374796C65 - 4C6F6F6B757006147363726F6C6C62617268747261636B7374796C6500000654 - 547261636B00095374796C654E616D65060676747261636B05416C69676E0706 - 436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F7269 - 7A6F6E74616C0A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000000C804401453697A652E506C6174666F72 - 6D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172 - 76747261636B7374796C650000005450463007544C61796F757400095374796C - 654E616D65060D636F6D626F626F787374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000000000C805400B53697A652E4865 - 696768740500000000000000C803401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F72646572022E000C5442727573 - 684F626A65637400095374796C654E616D65060A666F726567726F756E640000 - 0B54466F6E744F626A65637400095374796C654E616D650604666F6E7409466F - 6E742E53697A650500000000000000D00240000007544C61796F757400095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A53697A652E57696474680500000000000000C805400B53697A652E48 - 65696768740500000000000000C803401453697A652E506C6174666F726D4465 - 6661756C7408000A5452656374616E676C6500095374796C654E616D65060A52 - 656374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C - 6F7207097846463230323032300748697454657374080A53697A652E57696474 - 680500000000000000C805400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E650007544C61796F757400095374796C654E616D6506 - 11427574746F6E5374796C654F626A65637405416C69676E0708466974526967 - 68740B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E - 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F - 6D050000000000000080FF3F0A506F736974696F6E2E580500000000005ED997 - 05400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769 - 647468050000000000889AB803400B53697A652E486569676874050000000000 - 0000B803401453697A652E506C6174666F726D44656661756C74080007544C61 - 796F757400095374796C654E616D6506074C61796F75743105416C69676E0706 - 43656E7465720C4D617267696E732E4C656674050000000000000080FF3F0A53 - 697A652E57696474680500000000000000A002400B53697A652E486569676874 - 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 - 080005545061746800095374796C654E616D650605506174683105416C69676E - 0706436C69656E7409446174612E506174680A34000000040000000000000000 - 00C8420000C84201000000000096430000C84201000000000048430000964303 - 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 - 0748697454657374080A53697A652E57696474680500000000000000A002400B - 53697A652E4865696768740500000000000000C001401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562 - 7574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000 - 000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 + 2E57696474680500000000000000C004400B53697A652E486569676874050000 + 0000000000C004401453697A652E506C6174666F726D44656661756C74080000 + 0A5452656374616E676C650005416C69676E0706436C69656E740A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000D54536861646F77456666 + 656374000844697374616E636505000000000000008001400944697265637469 + 6F6E0500000000000000B4044008536F66746E657373050000000000000080FE + 3F074F706163697479050000000000000080FE3F0B536861646F77436F6C6F72 + 0708636C61426C61636B000000005450463007544C61796F757400095374796C + 654E616D650610726164696F627574746F6E7374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000000000F205400B53697A65 + 2E4865696768740500000000000000A803401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F7264657202290007544C + 61796F75740005416C69676E07044C6566740A53697A652E5769647468050000 + 0000000000A803400B53697A652E4865696768740500000000000000A8034014 + 53697A652E506C6174666F726D44656661756C7408000854456C6C6970736500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E07064365 + 6E7465720A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 + 64090748697454657374080A53697A652E57696474680500000000000000F002 + 400B53697A652E4865696768740500000000000000F002401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 313531353135000854456C6C6970736500095374796C654E616D650609636865 + 636B6D61726B05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207 + 09784646324138324532064C6F636B656409074869745465737408074F706163 + 69747905000000000000000000000C4D617267696E732E4C6566740500000000 + 0000008000400B4D617267696E732E546F7005000000000000008000400D4D61 + 7267696E732E526967687405000000000000008000400E4D617267696E732E42 + 6F74746F6D05000000000000008000400A53697A652E57696474680500000000 + 000000B002400B53697A652E4865696768740500000000000000B00240145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D + 65061A6F706163697479436865636B6D61726B416E696D6174696F6E31084475 + 726174696F6E05000000000000000000000C50726F70657274794E616D650607 + 4F7061636974790A537461727456616C75650500000000000000000000095374 + 6F7056616C7565050000000000000080FF3F0754726967676572060E49734368 + 65636B65643D747275650E54726967676572496E7665727365060F4973436865 + 636B65643D66616C73650000000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D65061A726164696F627574746F6E436F6C6F72416E696D6174 + 696F6E31084475726174696F6E050000000000000000000007496E7665727365 + 090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463230323032300953746F7056616C7565070978464634 + 30343034300754726967676572061049734D6F7573654F7665723D747275650E + 54726967676572496E7665727365061149734D6F7573654F7665723D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 + 436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E050000 + 00000000000000000C50726F70657274794E616D65060C5374726F6B652E436F + 6C6F720A537461727456616C756507097846463135313531350953746F705661 + 6C756507097846463241383245320754726967676572060E4973436865636B65 + 643D747275650E54726967676572496E7665727365060F4973436865636B6564 + 3D66616C73650000000005545465787400095374796C654E616D650604746578 + 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000A803401453697A652E506C6174666F726D4465666175 + 6C74080454657874060454657874165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D650618756C63656E746572726164696F627574746F6E7374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 00005655FB05400B53697A652E4865696768740500000000000000A004401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F72646572022A0007544C61796F75740005416C69676E0706426F74746F6D + 0A506F736974696F6E2E5905000000000000008804400A53697A652E57696474 + 680500000000005655FB05400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C7408000A5452656374 + 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 + 676E0708436F6E74656E747307436F726E6572730B07546F704C6566740A426F + 74746F6D4C656674000A46696C6C2E436F6C6F72070978464632303230323006 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F72 + 416E696D6174696F6E31084475726174696F6E05000000000000000000000749 + 6E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463230323032300953746F7056616C7565 + 07097846463430343034300754726967676572061049734D6F7573654F766572 + 3D747275650E54726967676572496E7665727365061149734D6F7573654F7665 + 723D66616C736500000A5452656374616E676C6500095374796C654E616D6506 + 09636865636B6D61726B05416C69676E0708436F6E74656E747307436F726E65 + 72730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C + 6F720709784646324138324532064C6F636B656409074869745465737408074F + 70616369747905000000000000000000000C4D617267696E732E4C6566740500 + 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F + 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E + 732E426F74746F6D050000000000000080FF3F0A53697A652E57696474680500 + 000000005655F705400B53697A652E4865696768740500000000000000800140 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C65 + 4E616D65061A636865636B6D61726B4F706163697479416E696D6174696F6E31 + 084475726174696F6E05000000000000000000000C50726F70657274794E616D + 6506074F7061636974790A537461727456616C75650500000000000000000000 + 0953746F7056616C7565050000000000000080FF3F0754726967676572060E49 + 73436865636B65643D747275650E54726967676572496E7665727365060F4973 + 436865636B65643D66616C7365000000000005545465787400095374796C654E + 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000005655FB05400B53 + 697A652E48656967687405000000000000008804401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C6157686974650000005450463007544C61796F75740009537479 + 6C654E616D650616756C6C656674726164696F627574746F6E7374796C650541 + 6C69676E070643656E7465720A53697A652E57696474680500000000005655FB + 05400B53697A652E4865696768740500000000000000A004401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 72022B0007544C61796F75740005416C69676E0706426F74746F6D0A506F7369 + 74696F6E2E5905000000000000008804400A53697A652E576964746805000000 + 00005655FB05400B53697A652E4865696768740500000000000000C001401453 + 697A652E506C6174666F726D44656661756C7408000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C + 656674000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 + 64090748697454657374080A53697A652E57696474680500000000005655FB05 + 400B53697A652E4865696768740500000000000000C001401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 31353135313507585261646975730500000000000000C0004007595261646975 + 730500000000000000C00040000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F + 72416E696D6174696F6E31084475726174696F6E050000000000000000000007 + 496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F 720A537461727456616C756507097846463230323032300953746F7056616C75 - 6507097846463430343034300754726967676572063049734D6F7573654F7665 - 723D747275653B4973507265737365643D66616C73653B4973466F6375736564 - 3D66616C73650E54726967676572496E7665727365063149734D6F7573654F76 - 65723D66616C73653B4973507265737365643D66616C73653B4973466F637573 - 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3208447572 - 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464634303430343009 - 53746F7056616C756507097846463137353739430754726967676572062F4973 - 507265737365643D747275653B49734D6F7573654F7665723D747275653B4973 - 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E - 33084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463241 - 383245320953746F7056616C7565070978464631373537394307547269676765 - 72062E4973507265737365643D747275653B49734D6F7573654F7665723D7472 - 75653B4973466F63757365643D747275650E54726967676572496E7665727365 - 062F4973507265737365643D66616C73653B49734D6F7573654F7665723D7472 - 75653B4973466F63757365643D747275650000000007544C61796F7574000953 - 74796C654E616D650607636F6E74656E7405416C69676E0706436C69656E7406 - 4C6F636B6564090C4D617267696E732E4C65667405000000000000008000400B - 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 - 696768740500000000000000D803400E4D617267696E732E426F74746F6D0500 - 0000000000008000400A53697A652E576964746805000000000000008E05400B - 53697A652E4865696768740500000000000000A803401453697A652E506C6174 - 666F726D44656661756C74080000005450463007544C61796F75740009537479 - 6C654E616D65060D73706C69747465727374796C6505416C69676E070643656E - 7465720A53697A652E57696474680500000000000000A904400B53697A652E48 - 65696768740500000000000080C105401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F72646572022F000A54526563 + 6507097846463430343034300754726967676572061049734D6F7573654F7665 + 723D747275650E54726967676572496E7665727365061149734D6F7573654F76 + 65723D66616C736500000A5452656374616E676C6500095374796C654E616D65 + 0609636865636B6D61726B05416C69676E0708436F6E74656E747307436F726E + 6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F + 6C6F720709784646324138324532064C6F636B65640907486974546573740807 + 4F70616369747905000000000000000000000C4D617267696E732E4C65667405 + 0000000000000080FF3F0B4D617267696E732E546F70050000000000000080FF + 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F0A53697A652E576964746805 + 00000000005655F705400B53697A652E48656967687405000000000000008001 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E650758526164697573050000000000000080004007595261 + 646975730500000000000000800040000F54466C6F6174416E696D6174696F6E + 00095374796C654E616D65061A636865636B6D61726B4F706163697479416E69 + 6D6174696F6E31084475726174696F6E05000000000000000000000C50726F70 + 657274794E616D6506074F7061636974790A537461727456616C756505000000 + 000000000000000953746F7056616C7565050000000000000080FF3F07547269 + 67676572060E4973436865636B65643D747275650E54726967676572496E7665 + 727365060F4973436865636B65643D66616C7365000000000005545465787400 + 095374796C654E616D6506047465787405416C69676E0706436C69656E74064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 5655FB05400B53697A652E48656967687405000000000000008804401453697A + 652E506C6174666F726D44656661756C7408165465787453657474696E67732E + 466F6E74436F6C6F720708636C6157686974650000005450463007544C61796F + 757400095374796C654E616D650617756C7269676874726164696F627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000005655FB05400B53697A652E4865696768740500000000000000A004 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F72646572022C0007544C61796F75740005416C69676E0706426F74 + 746F6D0A506F736974696F6E2E5905000000000000008804400A53697A652E57 + 696474680500000000005655FB05400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0708436F6E74656E747307436F726E6572730B08546F7052696768 + 740B426F74746F6D5269676874000A46696C6C2E436F6C6F7207097846463230 + 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 + 0500000000005655FB05400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F72070978464631353135313507585261646975730500000000000000 + C0004007595261646975730500000000000000C00040000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D6506216261636B67726F756E64556C + 427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500 + 00000000000000000007496E7665727365090C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463230323032 + 300953746F7056616C7565070978464634303430343007547269676765720610 + 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 + 1149734D6F7573654F7665723D66616C736500000A5452656374616E676C6500 + 095374796C654E616D650609636865636B6D61726B05416C69676E0708436F6E + 74656E747307436F726E6572730B08546F7052696768740B426F74746F6D5269 + 676874000A46696C6C2E436F6C6F720709784646324138324532064C6F636B65 + 6409074869745465737408074F70616369747905000000000000000000000C4D + 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 + 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 + 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F + 0A53697A652E57696474680500000000005655F705400B53697A652E48656967 + 687405000000000000008001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573050000 + 000000000080004007595261646975730500000000000000800040000F54466C + 6F6174416E696D6174696F6E00095374796C654E616D65061A636865636B6D61 + 726B4F706163697479416E696D6174696F6E31084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D6506074F7061636974790A5374 + 61727456616C756505000000000000000000000953746F7056616C7565050000 + 000000000080FF3F0754726967676572060E4973436865636B65643D74727565 + 0E54726967676572496E7665727365060F4973436865636B65643D66616C7365 + 000000000005545465787400095374796C654E616D6506047465787405416C69 + 676E0706436C69656E74064C6F636B6564090748697454657374080A53697A65 + 2E57696474680500000000005655FB05400B53697A652E486569676874050000 + 00000000008804401453697A652E506C6174666F726D44656661756C74080454 + 657874060454657874165465787453657474696E67732E466F6E74436F6C6F72 + 0708636C6157686974650000005450463007544C61796F757400095374796C65 + 4E616D65061470726F67726573736261726D696E697374796C6505416C69676E + 070643656E7465720A53697A652E576964746805000000000033338505400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572022E00 + 0A5452656374616E676C6500095374796C654E616D65060668747261636B0541 + 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430 + 34303430064C6F636B6564090748697454657374080A53697A652E5769647468 + 05000000000033338505400B53697A652E4865696768740500000000009999E1 + 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6507585261646975730500000000000000800040075952 + 61646975730500000000000000800040000A5452656374616E676C6500095374 + 796C654E616D65060A68696E64696361746F7205416C69676E07044C6566740A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000009999E104401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 + 6975730500000000000000800040075952616469757305000000000000008000 + 400000000A5452656374616E676C6500095374796C654E616D65060676747261 + 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 4646343034303430064C6F636B6564090748697454657374080A53697A652E57 + 6964746805000000000033338505400B53697A652E4865696768740500000000 + 009999E104401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65075852616469757305000000000000008000 + 4007595261646975730500000000000000800040000A5452656374616E676C65 + 00095374796C654E616D65060A76696E64696361746F7205416C69676E070642 + 6F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B + 6564090748697454657374080A506F736974696F6E2E5905000000000099998D + 04400A53697A652E576964746805000000000033338505400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 0000000000000080004007595261646975730500000000000000800040000000 + 005450463007544C61796F757400095374796C654E616D65060E636F6D626F65 + 6469747374796C6505416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720230000C5442727573684F626A6563740009537479 + 6C654E616D65060A666F726567726F756E6400000B54466F6E744F626A656374 + 00095374796C654E616D650604666F6E7409466F6E742E53697A650500000000 + 000000D00240000007544C61796F757400095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E74730A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408000A54526563 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C - 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463330333033 - 300748697454657374080553696465730B044C656674055269676874000A5369 - 7A652E57696474680500000000000000A904400B53697A652E48656967687405 - 00000000000080C105401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F720709784646313531353135000007544C61796F - 757400095374796C654E616D6506046772697005416C69676E0706436C69656E - 740A53697A652E57696474680500000000000000A904400B53697A652E486569 - 6768740500000000000080C105401453697A652E506C6174666F726D44656661 - 756C7408000754436972636C6500095374796C654E616D650607436972636C65 - 3105416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464634 - 30343034300A53697A652E57696474680500000000000000E001400B53697A65 - 2E4865696768740500000000000000E001401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 00000754436972636C6500095374796C654E616D650607436972636C65320541 - 6C69676E070643656E7465720A46696C6C2E436F6C6F72070978464634303430 - 34300B4D617267696E732E546F700500000000000000A003400A53697A652E57 - 696474680500000000000000E001400B53697A652E4865696768740500000000 - 000000E001401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F72070978464631353135313500000754436972636C650009 - 5374796C654E616D650607436972636C653305416C69676E070643656E746572 - 0A46696C6C2E436F6C6F7207097846463430343034300E4D617267696E732E42 - 6F74746F6D0500000000000000A003400A53697A652E57696474680500000000 - 000000E001400B53697A652E4865696768740500000000000000E00140145369 - 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 0709784646313531353135000000005450463007544C61796F75740009537479 - 6C654E616D650610636C6F7365627574746F6E7374796C6505416C69676E0706 - 43656E7465720A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000000C803401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C6508085461624F726465720230000A54 - 52656374616E676C6500095374796C654E616D65060B636C6F7365627574746F - 6E05416C69676E0706436C69656E7413456E61626C6544726167486967686C69 - 676874080A46696C6C2E436F6C6F720709784646323032303230074869745465 - 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000000000C803401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 - 74696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463230323032300953746F7056616C7565070978464646463631 - 35370754726967676572062049734D6F7573654F7665723D747275653B497350 - 7265737365643D66616C73650E54726967676572496E7665727365062149734D - 6F7573654F7665723D66616C73653B4973507265737365643D66616C73650000 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C - 6F72416E696D6174696F6E325374796C65084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846464646363135370953746F7056616C75650709 - 7846464532344634350754726967676572061F49734D6F7573654F7665723D74 - 7275653B4973507265737365643D747275650E54726967676572496E76657273 - 65062049734D6F7573654F7665723D747275653B4973507265737365643D6661 - 6C736500000005545061746800095374796C654E616D65060550617468310541 - 6C69676E070643656E74657209446174612E506174680AC40000001000000000 - 0000000000A0C00000704101000000000070410000A0C0010000000000484200 - 00F041010000000000AA420000A0C0010000000000D242000070410100000000 - 008C4200004842010000000000D2420000B442010000000000AA420000DC4202 - 0000003BDF34429E6F8C4202000000FE547D427FAAB042020000000000484200 - 00964201000000000070410000DC42010000000000A0C00000B4420100000000 - 00F04100005C42010000000000A0C000007041030000000000A0C0000070410A - 46696C6C2E436F6C6F720708636C6157686974650748697454657374080A5369 - 7A652E57696474680500000000000000A002400B53697A652E48656967687405 - 00000000000000A002401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F75 - 7400095374796C654E616D65060E6D6178627574746F6E7374796C6505416C69 - 676E070643656E7465720A53697A652E57696474680500000000000000C80440 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 31000A5452656374616E676C6500095374796C654E616D6506096D6178627574 - 746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F7207097846 - 463230323032300748697454657374080A53697A652E57696474680500000000 - 000000C804400B53697A652E4865696768740500000000000000C80340145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E - 050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 - 616C756507097846463241383245320754726967676572062049734D6F757365 - 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 - 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 - 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650614436F6C6F72416E696D6174696F6E325374796C650844 - 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 - 0A46696C6C2E436F6C6F720A537461727456616C756507097846463241383245 - 320953746F7056616C756507097846463137353739430754726967676572061F - 49734D6F7573654F7665723D747275653B4973507265737365643D747275650E - 54726967676572496E7665727365062049734D6F7573654F7665723D74727565 - 3B4973507265737365643D66616C736500000005545061746800095374796C65 - 4E616D650605506174683105416C69676E070643656E74657209446174612E50 - 6174680A5800000007000000000000000000C8420000C8420100000000002F44 - 0000C8420100000000002F4400002F4401000000008009440080094401000000 - 0080094400007A430100000000007A4300007A43030000000000C8420000C842 - 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A53 - 697A652E57696474680500000000000000A002400B53697A652E486569676874 - 0500000000000000A002401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F - 757400095374796C654E616D65060E6D696E627574746F6E7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 0233000A5452656374616E676C6500095374796C654E616D6506096D696E6275 - 74746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F72070978 - 46463230323032300748697454657374080A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000C803401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F - 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463230323032300953746F70 - 56616C756507097846463241383245320754726967676572062049734D6F7573 - 654F7665723D747275653B4973507265737365643D66616C73650E5472696767 - 6572496E7665727365062149734D6F7573654F7665723D66616C73653B497350 - 7265737365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632413832 - 45320953746F7056616C75650709784646313735373943075472696767657206 - 1F49734D6F7573654F7665723D747275653B4973507265737365643D74727565 - 0E54726967676572496E7665727365062049734D6F7573654F7665723D747275 - 653B4973507265737365643D66616C736500000005545061746800095374796C - 654E616D650605506174683105416C69676E070643656E74657209446174612E - 506174680A40000000050000000000000000002F44008009440100000000002F - 4400002F44010000000000C84200002F44010000000000C84200800944030000 - 0000002F44008009440A46696C6C2E436F6C6F720708636C6157686974650748 - 697454657374080B4D617267696E732E546F700500000000000000A002400D52 - 6F746174696F6E416E676C650500000000000000B406400A53697A652E576964 - 74680500000000000000A002400B53697A652E48656967687405000000000000 - 00C000401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650000005450463007544C61796F75740009537479 - 6C654E616D65060E726573627574746F6E7374796C6505416C69676E07064365 - 6E7465720A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000C803401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F726465720234000A545265 - 6374616E676C6500095374796C654E616D650609726573627574746F6E05416C 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 - 300748697454657374080A53697A652E57696474680500000000000000C80440 + 300748697454657374080A53697A652E57696474680500000000000000C80540 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C - 6F72416E696D6174696F6E315374796C65084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463230323032300953746F7056616C75650709 - 7846463241383245320754726967676572062049734D6F7573654F7665723D74 - 7275653B4973507265737365643D66616C73650E54726967676572496E766572 - 7365062149734D6F7573654F7665723D66616C73653B4973507265737365643D - 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 - 6D650614436F6C6F72416E696D6174696F6E325374796C65084475726174696F - 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463241383245320953746F70 - 56616C756507097846463137353739430754726967676572061F49734D6F7573 - 654F7665723D747275653B4973507265737365643D747275650E547269676765 - 72496E7665727365062049734D6F7573654F7665723D747275653B4973507265 - 737365643D66616C736500000005545061746800095374796C654E616D650605 - 506174683105416C69676E070643656E74657209446174612E506174680A5800 - 000007000000000000000000C8420000C8420100000000002F440000C8420100 - 000000002F4400002F4401000000008009440080094401000000008009440000 - 7A430100000000007A4300007A43030000000000C8420000C8420A46696C6C2E - 436F6C6F720708636C6157686974650748697454657374080D526F746174696F - 6E416E676C650500000000000000B406400A53697A652E576964746805000000 - 00000000A002400B53697A652E4865696768740500000000000000A002401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E650000005450463007544C61796F757400095374796C654E616D65 - 060F746F6F6C77696E646F777374796C6505416C69676E070643656E7465720A - 53697A652E576964746805000000000056D5AF07400B53697A652E4865696768 - 740500000000000000B306401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508085461624F726465720237000A5452656374616E67 - 6C6500095374796C654E616D6506046D61736B05416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F7207097846463130313031300A53697A652E57 - 6964746805000000000056D5AF07400B53697A652E4865696768740500000000 - 000000B306401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E650756697369626C6508000007544C61796F75 - 7400095374796C654E616D6506046C65667405416C69676E07084D6F73744C65 - 6674064C6F636B6564090A506F736974696F6E2E590500000000000000C80340 - 0A53697A652E57696474680500000000000000A001400B53697A652E48656967 - 687405000000000000009A06401453697A652E506C6174666F726D4465666175 - 6C7408000A5452656374616E676C650005416C69676E07084D6F73744C656674 - 0A46696C6C2E436F6C6F72070978464632303230323007486974546573740805 - 53696465730B044C656674055269676874000A53697A652E5769647468050000 - 0000000000A001400B53697A652E486569676874050000000000000095064014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F72070978464631353135313500000A5452656374616E676C6500095374796C - 654E616D65060A52656374616E676C653105416C69676E070A4D6F7374426F74 - 746F6D13456E61626C6544726167486967686C69676874080A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080A506F736974696F6E - 2E5905000000000000009506400553696465730B044C65667406426F74746F6D - 000A53697A652E57696474680500000000000000A001400B53697A652E486569 - 6768740500000000000000A001401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C - 61796F757400095374796C654E616D6506074C61796F75743305416C69676E07 - 094D6F737452696768740A506F736974696F6E2E580500000000000000800140 - 0A53697A652E5769647468050000000000000080FF3F0B53697A652E48656967 - 68740500000000000000A001401453697A652E506C6174666F726D4465666175 - 6C7408000A5452656374616E676C6500095374796C654E616D65060A52656374 - 616E676C653105416C69676E0703546F700A46696C6C2E436F6C6F7207097846 - 463135313531350748697454657374080A53697A652E57696474680500000000 - 00000080FF3F0B53697A652E486569676874050000000000000080FF3F145369 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 + 303230323007585261646975730500000000000000C000400759526164697573 + 0500000000000000C00040000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65084475 + 726174696F6E050000000000000000000007496E7665727365090C50726F7065 + 7274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565 + 07097846463230323032300953746F7056616C75650709784646343034303430 + 0754726967676572062049734D6F7573654F7665723D747275653B4973466F63 + 757365643D66616C73650E54726967676572496E7665727365062149734D6F75 + 73654F7665723D66616C73653B4973466F63757365643D66616C736500000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E325374796C65084475726174696F6E0500000000000000 + 00000007496E7665727365090C50726F70657274794E616D65060C5374726F6B + 652E436F6C6F720A537461727456616C75650709784646343034303430095374 + 6F7056616C756507097846463241383245320754726967676572061F49734D6F + 7573654F7665723D747275653B4973466F63757365643D747275650E54726967 + 676572496E7665727365062049734D6F7573654F7665723D747275653B497346 + 6F63757365643D66616C7365000007544C61796F757400095374796C654E616D + 6506056172726F7705416C69676E070846697452696768740B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A506F736974696F6E2E580500000000005ED99705400A506F736974696F + 6E2E59050000000000000080FF3F0A53697A652E576964746805000000000088 + 9AB803400B53697A652E4865696768740500000000000000B803401453697A65 + 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 + 74796C654E616D65060A52656374616E676C653105416C69676E0708436F6E74 + 656E747307436F726E6572730B08546F7052696768740B426F74746F6D526967 + 6874000A46696C6C2E436F6C6F72070978464633303330333007486974546573 + 74080A53697A652E5769647468050000000000889AB803400B53697A652E4865 + 696768740500000000000000B803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 00000000000000C0004007595261646975730500000000000000C00040000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 + 416E696D6174696F6E315374796C65084475726174696F6E0500000000000000 + 00000007496E7665727365090C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463330333033300953746F70 + 56616C756507097846463430343034300754726967676572062049734D6F7573 + 654F7665723D747275653B4973466F63757365643D66616C73650E5472696767 + 6572496E7665727365062149734D6F7573654F7665723D66616C73653B497346 + 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 + 4475726174696F6E05000000000000000000000C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464634303430 + 34300953746F7056616C75650709784646313735373943075472696767657206 + 1F4973466F63757365643D747275653B49734D6F7573654F7665723D74727565 + 00000007544C61796F757400095374796C654E616D6506074C61796F75743105 + 416C69676E070643656E7465720C4D617267696E732E4C656674050000000000 + 000080FF3F0A53697A652E57696474680500000000000000A002400B53697A65 + 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 44656661756C74080005545061746800095374796C654E616D65060550617468 + 3105416C69676E0706436C69656E7409446174612E506174680A340000000400 + 0000000000000000C8420000C84201000000000096430000C842010000000000 + 484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72070863 + 6C6157686974650748697454657374080A53697A652E57696474680500000000 + 000000A002400B53697A652E4865696768740500000000000000C00140145369 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000000000007544C61796F757400095374796C654E616D65060572 - 6967687405416C69676E07094D6F73745269676874064C6F636B6564090A506F - 736974696F6E2E580500000000005655AD07400A506F736974696F6E2E590500 - 000000000000C803400A53697A652E57696474680500000000000000A001400B - 53697A652E48656967687405000000000000009A06401453697A652E506C6174 - 666F726D44656661756C7408000A5452656374616E676C650005416C69676E07 - 094D6F737452696768740A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080553696465730B044C656674055269676874000A53697A - 652E57696474680500000000000000A001400B53697A652E4865696768740500 - 0000000000009506401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F72070978464631353135313500000A545265637461 - 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 - 6E070A4D6F7374426F74746F6D13456E61626C6544726167486967686C696768 - 74080A46696C6C2E436F6C6F7207097846463230323032300748697454657374 - 080A506F736974696F6E2E5905000000000000009506400553696465730B0642 - 6F74746F6D055269676874000A53697A652E57696474680500000000000000A0 - 01400B53697A652E4865696768740500000000000000A001401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 463135313531350007544C61796F757400095374796C654E616D6506074C6179 - 6F75743305416C69676E07084D6F73744C6566740A53697A652E576964746805 - 0000000000000080FF3F0B53697A652E4865696768740500000000000000A001 + 044E6F6E650000000000000C5442727573684F626A65637400095374796C654E + 616D65060973656C656374696F6E0B42727573682E436F6C6F72070978393632 + 4138324532000007544C61796F757400095374796C654E616D650607636F6E74 + 656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E52696768740500000000000000F003400E4D617267696E + 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 + 0000000000008805400B53697A652E4865696768740500000000000000A80340 + 1453697A652E506C6174666F726D44656661756C74080000005450463007544C + 61796F757400095374796C654E616D650613657870616E646572627574746F6E + 7374796C6505416C69676E070643656E7465720B4D617267696E732E546F7005 + 0000000000000080FF3F0A53697A652E57696474680500000000000000B00340 + 0B53697A652E4865696768740500000000000000B003401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 330005545061746800095374796C654E616D650605506174683105416C69676E + 070643656E74657209446174612E506174680A34000000040000000000000000 + 00C8420000C84201000000000096430000C84201000000000048430000964303 + 0000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080D526F746174696F6E416E676C650500000000000000B4 + 05400A53697A652E57696474680500000000000000A002400B53697A652E4865 + 696768740500000000000000C001401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 + 6E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D6174 + 696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0D496E + 746572706F6C6174696F6E070843697263756C61720C50726F70657274794E61 + 6D65060D526F746174696F6E416E676C650A537461727456616C756505000000 + 00000000B405400953746F7056616C7565050000000000000000000007547269 + 67676572060F4973457870616E6465643D747275650E54726967676572496E76 + 6572736506104973457870616E6465643D66616C736500000000545046300754 + 4C61796F757400095374796C654E616D650615657870616E646572636865636B + 626F787374796C6505416C69676E070643656E7465720A53697A652E57696474 + 6805000000000000008406400B53697A652E4865696768740500000000000000 + 8404401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F7264657202360007544C61796F75740005416C69676E07044C + 6566740A53697A652E57696474680500000000000000C003400B53697A652E48 + 656967687405000000000000008404401453697A652E506C6174666F726D4465 + 6661756C7408000554506174680005416C69676E0706436C69656E7409446174 + 612E506174680AD80100002700000000000000FEC8BA4402E792440200000025 + 92AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FEB09E4402 + 00000093A4A4446A0C9F44020000004A80AC44FC79AA4402000000046EBA44FC + 79AA44020000004A00C844FC79AA44020000000080CF44FEB09E440200000000 + 80CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402E7924402 + 000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B876BF44FE + 309744020000000277C344EEA09A44020000000277C34404DE9E440200000002 + 77C344121BA34402000000B876BF44008CA64402000000FE88BA44008CA64402 + 0000004C9BB544008CA64402000000009CB144121BA34402000000009CB14404 + DE9E4402000000009CB144EEA09A44020000004C9BB544FE30974402000000FE + 88BA44FE309744000000000080BA44045E9B4402000000146EB844045E9B4402 + 00000000C0B64454F79C440200000000C0B64400F09E440200000000C0B644AC + E8A04402000000146EB844FC81A244020000000080BA44FC81A24402000000EC + 91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400F09E4402 + 0000000040BE4454F79C4402000000EC91BC44045E9B44020000000080BA4404 + 5E9B440A46696C6C2E436F6C6F72070978363030303030303007486974546573 + 74080C4D617267696E732E4C65667405000000000000008000400B4D61726769 + 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 + 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 + 008000400A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000E803401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F + 64650703466974000F54436F6C6F72416E696D6174696F6E0008447572617469 + 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097836303030303030300953746F + 7056616C75650708636C61426C61636B0754726967676572060E497343686563 + 6B65643D7472756500000F54436F6C6F72416E696D6174696F6E000844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C75650708636C61426C61636B095374 + 6F7056616C756507097836303030303030300754726967676572060F49734368 + 65636B65643D66616C73650000000005545465787400095374796C654E616D65 + 06047465787405416C69676E0706436C69656E74064C6F636B65640907486974 + 54657374080C4D617267696E732E4C65667405000000000000008002400B4D61 + 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 + 6874050000000000000080FF3F0A53697A652E57696474680500000000000000 + C605400B53697A652E4865696768740500000000000000F803401453697A652E + 506C6174666F726D44656661756C7408165465787453657474696E67732E466F + 6E74436F6C6F720709784646454545454545165465787453657474696E67732E + 486F727A416C69676E07074C656164696E670000005450463007544C61796F75 + 7400095374796C654E616D65060D657870616E6465727374796C6505416C6967 + 6E070643656E7465720A53697A652E576964746805000000000000C08607400B + 53697A652E4865696768740500000000000000CE05401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F726465720239 + 000A5452656374616E676C6500095374796C654E616D65060B62677265637461 + 6E676C6505416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 09784646324432443244064C6F636B6564090748697454657374080A53697A65 + 2E576964746805000000000000C08607400B53697A652E486569676874050000 + 0000000000CE05401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F72070978464631353135313507585261646975730500 + 000000000000C0004007595261646975730500000000000000C000400007544C + 61796F757400095374796C654E616D6506074C61796F75743305416C69676E07 + 03546F700A53697A652E576964746805000000000000C08607400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080007544C61796F757400095374796C654E616D6506074C6179 + 6F75743405416C69676E0708436F6E74656E74730A53697A652E576964746805 + 000000000000C08607400B53697A652E4865696768740500000000000000C803 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E - 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E - 0703546F700A46696C6C2E436F6C6F7207097846463135313531350748697454 - 657374080A53697A652E5769647468050000000000000080FF3F0B53697A652E - 486569676874050000000000000080FF3F1453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000000A54 - 52656374616E676C650005416C69676E07074D6F7374546F700A46696C6C2E43 - 6F6C6F720709784646323032303230064C6F636B656409074869745465737408 - 0A53697A652E576964746805000000000056D5AF07400B53697A652E48656967 - 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C74080C5374726F6B652E436F6C6F7207097846463135313531350007544C61 - 796F757400095374796C654E616D65060763617074696F6E05416C69676E0708 - 436F6E74656E7473064C6F636B6564090748697454657374090A53697A652E57 - 6964746805000000000056D5AF07400B53697A652E4865696768740500000000 - 000000C803401453697A652E506C6174666F726D44656661756C740800000754 - 4C61796F75740005416C69676E0706436C69656E74064C6F636B6564090C4D61 - 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F - 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 - 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A - 53697A652E576964746805000000000056D5AE07400B53697A652E4865696768 - 740500000000000000B803401453697A652E506C6174666F726D44656661756C - 74080007544C61796F75740005416C69676E07044C656674064C6F636B656409 - 0A53697A652E576964746805000000000000009002400B53697A652E48656967 - 68740500000000000000B803401453697A652E506C6174666F726D4465666175 - 6C7408000007544C61796F757400095374796C654E616D65060773797362746E - 7305416C69676E0706436C69656E74064C6F636B6564090A53697A652E576964 - 74680500000000005655AA07400B53697A652E48656967687405000000000000 - 00B803401453697A652E506C6174666F726D44656661756C7408000C54537065 - 6564427574746F6E00095374796C654E616D650605636C6F736505416C69676E - 07055269676874064C6F636B6564090A506F736974696F6E2E58050000000000 - 56D59D07400A53697A652E57696474680500000000000000C803400B53697A65 - 2E4865696768740500000000000000B803401453697A652E506C6174666F726D - 44656661756C74080B5374796C654C6F6F6B75700610636C6F7365627574746F - 6E7374796C65000005545465787400095374796C654E616D6506057469746C65 - 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080A - 53697A652E576964746805000000000056D59D07400B53697A652E4865696768 - 740500000000000000B803401453697A652E506C6174666F726D44656661756C - 7408045465787406055469746C65165465787453657474696E67732E466F6E74 - 436F6C6F720708636C615768697465000000000007544C61796F757400095374 - 796C654E616D650606636C69656E7405416C69676E0706436C69656E74064C6F - 636B6564090748697454657374090A53697A652E576964746805000000000056 - D5AA07400B53697A652E48656967687405000000000000009506401453697A65 - 2E506C6174666F726D44656661756C7408000007544C61796F75740009537479 - 6C654E616D650606626F74746F6D05416C69676E0706426F74746F6D064C6F63 - 6B6564090A506F736974696F6E2E580500000000000000A001400A506F736974 - 696F6E2E590500000000000000AE06400A53697A652E57696474680500000000 - 0056D5AA07400B53697A652E4865696768740500000000000000A00140145369 - 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 - 095374796C654E616D6506047265637405416C69676E0706426F74746F6D0A46 - 696C6C2E436F6C6F7207097846463230323032300553696465730B03546F7006 - 426F74746F6D000A53697A652E576964746805000000000056D5AA07400B5369 - 7A652E4865696768740500000000000000A001401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 3135000000005450463007544C61796F757400095374796C654E616D65061072 - 6164696F627574746F6E7374796C6505416C69676E070643656E7465720A5369 - 7A652E57696474680500000000000000F205400B53697A652E48656967687405 - 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F7264657202380007544C61796F7574000541 - 6C69676E07044C6566740A53697A652E57696474680500000000000000A80340 - 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 - 74666F726D44656661756C7408000854456C6C6970736500095374796C654E61 - 6D65060A6261636B67726F756E6405416C69676E070643656E7465720A46696C - 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 - 7374080A53697A652E57696474680500000000000000F002400B53697A652E48 - 65696768740500000000000000F002401453697A652E506C6174666F726D4465 - 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350008 - 54456C6C6970736500095374796C654E616D650609636865636B6D61726B0541 - 6C69676E0706436C69656E740A46696C6C2E436F6C6F72070978464632413832 - 4532064C6F636B656409074869745465737408074F7061636974790500000000 - 0000000000000C4D617267696E732E4C65667405000000000000008000400B4D - 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 - 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 - 00000000008000400A53697A652E57696474680500000000000000B002400B53 - 697A652E4865696768740500000000000000B002401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54 - 466C6F6174416E696D6174696F6E00095374796C654E616D65061A6F70616369 - 7479436865636B6D61726B416E696D6174696F6E31084475726174696F6E0500 - 00000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A - 537461727456616C756505000000000000000000000953746F7056616C756505 - 0000000000000080FF3F0754726967676572060E4973436865636B65643D7472 - 75650E54726967676572496E7665727365060F4973436865636B65643D66616C - 73650000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 - 061A726164696F627574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F706572 - 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 - 46463230323032300953746F7056616C75650709784646343034303430075472 - 6967676572061049734D6F7573654F7665723D747275650E5472696767657249 - 6E7665727365061149734D6F7573654F7665723D66616C736500000F54436F6C - 6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E69 - 6D6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F - 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 - 7456616C756507097846463135313531350953746F7056616C75650709784646 - 3241383245320754726967676572060E4973436865636B65643D747275650E54 - 726967676572496E7665727365060F4973436865636B65643D66616C73650000 - 000005545465787400095374796C654E616D6506047465787405416C69676E07 - 06436C69656E74064C6F636B6564090748697454657374080A53697A652E5769 - 6474680500000000000000C805400B53697A652E486569676874050000000000 - 0000A803401453697A652E506C6174666F726D44656661756C74080454657874 - 060454657874165465787453657474696E67732E466F6E74436F6C6F72070863 - 6C6157686974650000005450463007544C61796F757400095374796C654E616D - 650618756C63656E746572726164696F627574746F6E7374796C6505416C6967 - 6E070643656E7465720A53697A652E57696474680500000000005655FB05400B - 53697A652E4865696768740500000000000000A004401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F72646572023A - 0007544C61796F75740005416C69676E0706426F74746F6D0A506F736974696F - 6E2E5905000000000000008804400A53697A652E576964746805000000000056 - 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 - 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 - 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 - 656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C656674 - 000A46696C6C2E436F6C6F720709784646323032303230064C6F636B65640907 - 48697454657374080A53697A652E57696474680500000000005655FB05400B53 - 697A652E4865696768740500000000000000C001401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 353135000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F - 6E31084475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C - 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463230323032300953746F7056616C75650709784646343034 - 3034300754726967676572061049734D6F7573654F7665723D747275650E5472 - 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 - 000A5452656374616E676C6500095374796C654E616D650609636865636B6D61 - 726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F704C - 6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978464632 - 4138324532064C6F636B656409074869745465737408074F7061636974790500 - 0000000000000000000C4D617267696E732E4C656674050000000000000080FF - 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 - 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D - 050000000000000080FF3F0A53697A652E57696474680500000000005655F705 - 400B53697A652E48656967687405000000000000008001401453697A652E506C + 676C6500095374796C654E616D65060A52656374616E676C653205416C69676E + 0708436F6E74656E747307436F726E6572730B07546F704C65667408546F7052 + 69676874000A46696C6C2E436F6C6F720709784646323532353235064C6F636B + 6564090748697454657374080A53697A652E576964746805000000000000C086 + 07400B53697A652E4865696768740500000000000000C803401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 4631353135313507585261646975730500000000000000C00040075952616469 + 75730500000000000000C0004000000A5452656374616E676C6500095374796C + 654E616D65060A52656374616E676C653105416C69676E0708436F6E74656E74 + 7307436F726E6572730B07546F704C65667408546F705269676874000A46696C + 6C2E436F6C6F720709784646313531353135064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000000C08607400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 + 0500000000000000C0004007595261646975730500000000000000C00040000F + 54466C6F6174416E696D6174696F6E00095374796C654E616D650614466C6F61 + 74416E696D6174696F6E315374796C65084475726174696F6E050000000000CD + CCCCFB3F0D496E746572706F6C6174696F6E070843697263756C61720C50726F + 70657274794E616D6506075363616C652E580A537461727456616C7565050000 + 000000000080FF3F0953746F7056616C75650500000000000000000000075472 + 6967676572060F4973457870616E6465643D747275650E54726967676572496E + 766572736506104973457870616E6465643D66616C73650000000007544C6179 + 6F757400095374796C654E616D6506074C61796F75743305416C69676E070843 + 6F6E74656E74730A53697A652E576964746805000000000000C08607400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080005545465787400095374796C654E616D6506047465 + 787405416C69676E07044C656674084175746F53697A65090A436C6970506172 + 656E7409064C6F636B6564090748697454657374080C4D617267696E732E4C65 + 66740500000000000000A002400A506F736974696F6E2E580500000000000000 + A002400A53697A652E576964746805000000000000B8C703400B53697A652E48 + 65696768740500000000000060FF02401453697A652E506C6174666F726D4465 + 6661756C74080454657874060454657874165465787453657474696E67732E46 + 6F6E74436F6C6F720708636C615768697465165465787453657474696E67732E + 486F727A416C69676E07074C656164696E670000000F54457870616E64657242 + 7574746F6E00095374796C654E616D650606627574746F6E05416C69676E0705 + 5269676874064C6F636B6564090A506F736974696F6E2E580500000000000080 + F906400A53697A652E57696474680500000000000000A003400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C740800000000005450463007544C61796F757400095374796C654E61 + 6D650615616E69696E64696361746F72686F727A7374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000040C006400B5369 + 7A652E48656967687405000000000000008000401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F72646572023B000A + 5452656374616E676C6500095374796C654E616D65060A52656374616E676C65 + 3105416C69676E0706436C69656E740C436C69704368696C6472656E090A4669 + 6C6C2E436F6C6F7207097846463430343034300A53697A652E57696474680500 + 000000000040C006400B53697A652E4865696768740500000000000000800040 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E650758526164697573050000000000000080FF3F0759526164 + 697573050000000000000080FF3F0005544C696E6500095374796C654E616D65 + 06054C696E6531084C696E65547970650706426F74746F6D0A53697A652E5769 + 6474680500000000000000A00B400B53697A652E486569676874050000000000 + 00008000401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F720709784646324138324532105374726F6B652E546869636B + 6E65737305000000000000008002400A5374726F6B652E4361700705526F756E + 640B5374726F6B652E446173680704446173680B5374726F6B652E4A6F696E07 + 05526F756E64000F54466C6F6174416E696D6174696F6E00095374796C654E61 + 6D650603616E6907456E61626C656409084475726174696F6E05000000000000 + 00800340044C6F6F70090C50726F70657274794E616D65060A506F736974696F + 6E2E580A537461727456616C75650500000000000000C808C00953746F705661 + 6C756505000000000000000000000754726967676572060E497356697369626C + 653D7472756500000000005450463007544C61796F757400095374796C654E61 + 6D650611616E69696E64696361746F727374796C6505416C69676E070643656E + 7465720756697369626C6508085461624F72646572023C000454417263000953 + 74796C654E616D65060341726305416C69676E0708436F6E74656E7473074869 + 7454657374080D526F746174696F6E416E676C650500000000000000B407400A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720708636C615768697465105374726F6B65 + 2E546869636B6E65737305000000000000008001400A5374726F6B652E436170 + 0705526F756E6408456E64416E676C650500000000000000B405C0000F54466C + 6F6174416E696D6174696F6E00095374796C654E616D650603616E6907456E61 + 626C656409084475726174696F6E050000000000000080FF3F044C6F6F70090C + 50726F70657274794E616D65060D526F746174696F6E416E676C650A53746172 + 7456616C756505000000000000000000000953746F7056616C75650500000000 + 000000B407400754726967676572060E497356697369626C653D747275650000 + 00005450463007544C61796F757400095374796C654E616D65060A70616E656C + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 000000000000C006400B53697A652E4865696768740500000000000000A40640 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F72646572023D000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F7207097846463230323032300A53697A652E57696474680500 + 000000000000C006400B53697A652E4865696768740500000000000000A40640 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E6507585261646975730500000000000000C000400759526164 + 6975730500000000000000C000400000005450463007544C61796F7574000953 + 74796C654E616D65061970726F67726573736261726D696E696572726F727374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 000033338505400B53697A652E4865696768740500000000009999E104401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F72646572023E000A5452656374616E676C6500095374796C654E616D6506 + 0668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F720709784646343034303430064C6F636B6564090748697454657374080A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500000000 + 00000080004007595261646975730500000000000000800040000A5452656374 + 616E676C6500095374796C654E616D65060A68696E64696361746F7205416C69 + 676E07044C6566740A46696C6C2E436F6C6F720709784646453232413241064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000009999E104401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6507585261646975730500000000000000800040075952616469757305 + 000000000000008000400000000A5452656374616E676C6500095374796C654E + 616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646343034303430064C6F636B65640907486974546573 + 74080A53697A652E576964746805000000000033338505400B53697A652E4865 + 696768740500000000009999E104401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 0000000000000080004007595261646975730500000000000000800040000A54 + 52656374616E676C6500095374796C654E616D65060A76696E64696361746F72 + 05416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846464532 + 32413241064C6F636B6564090748697454657374080A506F736974696F6E2E59 + 05000000000099998D04400A53697A652E576964746805000000000033338505 + 400B53697A652E4865696768740500000000000000A803401453697A652E506C 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 000F54466C6F6174416E696D6174696F6E00095374796C654E616D65061A6368 - 65636B6D61726B4F706163697479416E696D6174696F6E31084475726174696F - 6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506074F70616369 - 74790A537461727456616C756505000000000000000000000953746F7056616C - 7565050000000000000080FF3F0754726967676572060E4973436865636B6564 - 3D747275650E54726967676572496E7665727365060F4973436865636B65643D - 66616C7365000000000005545465787400095374796C654E616D650604746578 - 7405416C69676E0706436C69656E74064C6F636B656409074869745465737408 - 0A53697A652E57696474680500000000005655FB05400B53697A652E48656967 - 687405000000000000008804401453697A652E506C6174666F726D4465666175 - 6C74080454657874060454657874165465787453657474696E67732E466F6E74 - 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 - 5374796C654E616D650616756C6C656674726164696F627574746F6E7374796C - 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 - 5655FB05400B53697A652E4865696768740500000000000000A004401453697A - 652E506C6174666F726D44656661756C74080756697369626C6508085461624F - 72646572023E0007544C61796F75740005416C69676E0706426F74746F6D0A50 - 6F736974696F6E2E5905000000000000008804400A53697A652E576964746805 - 00000000005655FB05400B53697A652E4865696768740500000000000000C001 - 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E - 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E - 0708436F6E74656E747307436F726E6572730B07546F704C6566740A426F7474 - 6F6D4C656674000A46696C6C2E436F6C6F720709784646323032303230064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000056 - 55FB05400B53697A652E4865696768740500000000000000C001401453697A65 + 0758526164697573050000000000000080004007595261646975730500000000 + 000000800040000000005450463007544C61796F757400095374796C654E616D + 65060E6C6F67627574746F6E7374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000000C005400B53697A652E4865696768 + 740500000000000000C005401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508085461624F726465720202000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 06436C69656E740C436C69704368696C6472656E090A436C6970506172656E74 + 0907436F726E6572730B08546F7052696768740B426F74746F6D526967687400 + 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080A + 53697A652E57696474680500000000000000C005400B53697A652E4865696768 + 740500000000000000C005401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 + 00000000C0004007595261646975730500000000000000C00040000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F + 6C6F72416E696D6174696F6E31084475726174696F6E05000000000000000000 + 000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374617274 + 56616C756507097846463230323032300953746F7056616C7565070978464634 + 30343034300754726967676572063049734D6F7573654F7665723D747275653B + 4973507265737365643D66616C73653B4973466F63757365643D66616C73650E + 54726967676572496E7665727365063149734D6F7573654F7665723D66616C73 + 653B4973507265737365643D66616C73653B4973466F63757365643D66616C73 + 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 + 627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E0500 + 0000000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C + 6F720A537461727456616C756507097846463430343034300953746F7056616C + 756507097846463137353739430754726967676572062F497350726573736564 + 3D747275653B49734D6F7573654F7665723D747275653B4973466F6375736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650615627574746F6E436F6C6F72416E696D6174696F6E33084475726174 + 696F6E05000000000000000000000C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646324138324532095374 + 6F7056616C756507097846463137353739430754726967676572062E49735072 + 65737365643D747275653B49734D6F7573654F7665723D747275653B4973466F + 63757365643D747275650E54726967676572496E7665727365062F4973507265 + 737365643D66616C73653B49734D6F7573654F7665723D747275653B4973466F + 63757365643D74727565000005545061746800095374796C654E616D65060550 + 6174683105416C69676E0706436C69656E7409446174612E506174680A5C0200 + 0032000000000000000000A841CDCCCC40010000000000A8410000C041010000 + 000000C03F0000C041010000000000C03F00000000010000009A996941000000 + 00010000000000A841CDCCCC40030000000000A841CDCCCC400000000000009C + 410000F04001000000000058410000F04001000000000058410000C03F010000 + 00000040400000C03F01000000000040400000B4410100000000009C410000B4 + 410100000000009C410000F0400300000000009C410000F04000000000000040 + 410000F04001000000000090400000F04001000000000090400000C040010000 + 00000040410000C04001000000000040410000F04003000000000040410000F0 + 4000000000000090400000104101000000000090410000104101000000000090 + 4100002841010000000000904000002841010000000000904000001041030000 + 0000009040000010410000000000009040000040410100000000009041000040 + 4101000000000090410000584101000000000090400000584101000000000090 + 4000004041030000000000904000004041000000000000904000007041010000 + 0000009041000070410100000000009041000084410100000000009040000084 + 4101000000000090400000704103000000000090400000704100000000000090 + 4000009041010000000000904100009041010000000000904100009C41010000 + 000000904000009C410100000000009040000090410300000000009040000090 + 4100000000000070410000C04001000000333393410000C04001000000000070 + 416666264001000000000070410000C04003000000000070410000C0400A4669 + 6C6C2E436F6C6F720708636C6157686974650748697454657374080C4D617267 + 696E732E4C6566740500000000000000A002400B4D617267696E732E546F7005 + 00000000000000A002400D4D617267696E732E52696768740500000000000000 + A002400E4D617267696E732E426F74746F6D0500000000000000A002400A5369 + 7A652E576964746805000000000000009805400B53697A652E48656967687405 + 000000000000009805401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E6508577261704D6F64650703466974 + 000000005450463007544C61796F757400095374796C654E616D65061B747265 + 6576696577657870616E646572627574746F6E7374796C6505416C69676E0706 + 43656E7465720B4D617267696E732E546F70050000000000000080FF3F0A5369 + 7A652E57696474680500000000000000B003400B53697A652E48656967687405 + 00000000000000B003401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F726465720241000554506174680009537479 + 6C654E616D650605506174683105416C69676E070643656E7465720944617461 + 2E506174680A3400000004000000000000000000C8420000C842010000000000 + 96430000C842010000000000484300009643030000000000C8420000C8420A46 + 696C6C2E436F6C6F720708636C6157686974650748697454657374080D526F74 + 6174696F6E416E676C650500000000000000B405C00A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0009537479 + 6C654E616D650614466C6F6174416E696D6174696F6E315374796C6508447572 + 6174696F6E05000000000000000000000D496E746572706F6C6174696F6E0708 + 43697263756C61720C50726F70657274794E616D65060D526F746174696F6E41 + 6E676C650A537461727456616C75650500000000000000B405C00953746F7056 + 616C756505000000000000000000000754726967676572060F4973457870616E + 6465643D747275650E54726967676572496E766572736506104973457870616E + 6465643D66616C7365000000005450463007544C61796F757400095374796C65 + 4E616D65060D74726565766965777374796C6505416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000E106400B53697A652E486569 + 67687405000000000000808107401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F726465720242000C544272757368 + 4F626A65637400095374796C654E616D650618416C7465726E6174696E67526F + 774261636B67726F756E640B42727573682E436F6C6F72070978304646464646 + 464600000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F + 720709784646323032303230064C6F636B6564090748697454657374080C5061 + 6464696E672E4C656674050000000000000080FF3F0D50616464696E672E5269 + 676874050000000000000080FF3F0A53697A652E576964746805000000000000 + 00E106400B53697A652E48656967687405000000000000808107401453697A65 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 784646313531353135000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E - 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07496E76 - 65727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463230323032300953746F7056616C75650709 - 7846463430343034300754726967676572061049734D6F7573654F7665723D74 - 7275650E54726967676572496E7665727365061149734D6F7573654F7665723D - 66616C736500000A5452656374616E676C6500095374796C654E616D65060963 - 6865636B6D61726B05416C69676E0708436F6E74656E747307436F726E657273 - 0B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72 - 0709784646324138324532064C6F636B656409074869745465737408074F7061 - 6369747905000000000000000000000C4D617267696E732E4C65667405000000 - 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D - 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E - 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 - 00005655F705400B53697A652E48656967687405000000000000008001401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E61 - 6D65061A636865636B6D61726B4F706163697479416E696D6174696F6E310844 - 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 - 074F7061636974790A537461727456616C756505000000000000000000000953 - 746F7056616C7565050000000000000080FF3F0754726967676572060E497343 - 6865636B65643D747275650E54726967676572496E7665727365060F49734368 - 65636B65643D66616C7365000000000005545465787400095374796C654E616D - 6506047465787405416C69676E0706436C69656E74064C6F636B656409074869 - 7454657374080A53697A652E57696474680500000000005655FB05400B53697A - 652E48656967687405000000000000008804401453697A652E506C6174666F72 - 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 - 0708636C6157686974650000005450463007544C61796F757400095374796C65 - 4E616D650617756C7269676874726164696F627574746F6E7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000005655FB05 - 400B53697A652E4865696768740500000000000000A004401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 02410007544C61796F75740005416C69676E0706426F74746F6D0A506F736974 - 696F6E2E5905000000000000008804400A53697A652E57696474680500000000 - 005655FB05400B53697A652E4865696768740500000000000000C00140145369 - 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 - 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F - 6E74656E747307436F726E6572730B08546F7052696768740B426F74746F6D52 - 69676874000A46696C6C2E436F6C6F720709784646323032303230064C6F636B - 6564090748697454657374080A53697A652E57696474680500000000005655FB - 05400B53697A652E4865696768740500000000000000C001401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 46313531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E - 616D6506216261636B67726F756E64556C427574746F6E436F6C6F72416E696D - 6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07496E766572 - 7365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463230323032300953746F7056616C756507097846 - 463430343034300754726967676572061049734D6F7573654F7665723D747275 - 650E54726967676572496E7665727365061149734D6F7573654F7665723D6661 - 6C736500000A5452656374616E676C6500095374796C654E616D650609636865 - 636B6D61726B05416C69676E0708436F6E74656E747307436F726E6572730B08 - 546F7052696768740B426F74746F6D5269676874000A46696C6C2E436F6C6F72 - 0709784646324138324532064C6F636B656409074869745465737408074F7061 - 6369747905000000000000000000000C4D617267696E732E4C65667405000000 - 0000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D - 617267696E732E5269676874050000000000000080FF3F0E4D617267696E732E - 426F74746F6D050000000000000080FF3F0A53697A652E576964746805000000 - 00005655F705400B53697A652E48656967687405000000000000008001401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E61 - 6D65061A636865636B6D61726B4F706163697479416E696D6174696F6E310844 - 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 - 074F7061636974790A537461727456616C756505000000000000000000000953 - 746F7056616C7565050000000000000080FF3F0754726967676572060E497343 - 6865636B65643D747275650E54726967676572496E7665727365060F49734368 - 65636B65643D66616C7365000000000005545465787400095374796C654E616D - 6506047465787405416C69676E0706436C69656E74064C6F636B656409074869 - 7454657374080A53697A652E57696474680500000000005655FB05400B53697A - 652E48656967687405000000000000008804401453697A652E506C6174666F72 - 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 - 0708636C6157686974650000005450463007544C61796F757400095374796C65 - 4E616D65060E636F6D626F656469747374796C6505416C69676E070643656E74 - 65720A53697A652E57696474680500000000000000C805400B53697A652E4865 - 696768740500000000000000C803401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F726465720244000C5442727573 - 684F626A65637400095374796C654E616D65060A666F726567726F756E640000 - 0B54466F6E744F626A65637400095374796C654E616D650604666F6E7409466F - 6E742E53697A650500000000000000D00240000007544C61796F757400095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A53697A652E57696474680500000000000000C805400B53697A652E48 - 65696768740500000000000000C803401453697A652E506C6174666F726D4465 - 6661756C7408000A5452656374616E676C6500095374796C654E616D65060A52 - 656374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C + 7846463135313531350007544C61796F757400095374796C654E616D65060763 + 6F6E74656E7405416C69676E0706436C69656E740C436C69704368696C647265 + 6E090B4D617267696E732E546F70050000000000000080FF3F0A53697A652E57 + 696474680500000000000000CD06400B53697A652E4865696768740500000000 + 000000F006401453697A652E506C6174666F726D44656661756C7408000A5452 + 656374616E676C6500095374796C654E616D65060973656C656374696F6E0A46 + 696C6C2E436F6C6F7207097846463241383245320748697454657374080A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 + 0000C0004007595261646975730500000000000000C0004000000A5452656374 + 616E676C6500095374796C654E616D650610666F637573656473656C65637469 + 6F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B652E4461 + 73680703446F7407585261646975730500000000000000C00040075952616469 + 75730500000000000000C000400000000A545363726F6C6C4261720009537479 + 6C654E616D65060A767363726F6C6C62617205416C69676E070552696768740B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E0708566572746963616C0C4D617267696E732E4C65667405000000000000 + 008000400A506F736974696F6E2E580500000000000000D006400A53697A652E + 576964746805000000000000008003400B53697A652E48656967687405000000 + 00000000F106401453697A652E506C6174666F726D44656661756C740800000A + 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 + 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 + 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D + 617267696E732E546F7005000000000000008000400A506F736974696F6E2E58 + 050000000000000080FF3F0A506F736974696F6E2E590500000000000000F306 + 400A53697A652E57696474680500000000000000DF06400B53697A652E486569 + 67687405000000000000008003401453697A652E506C6174666F726D44656661 + 756C740800000F54536D616C6C5363726F6C6C42617200095374796C654E616D + 65060F76736D616C6C7363726F6C6C62617205416C69676E070552696768740B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E0708566572746963616C0C4D617267696E732E4C65667405000000000000 + 008000400A506F736974696F6E2E580500000000000000C605400A506F736974 + 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 + 0000008002400B53697A652E4865696768740500000000000000800240145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650800000F54 + 536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D616C + 6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368 + 616E676505000000000000000000000B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A50 + 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 + 00000000000000E205400A53697A652E57696474680500000000000000960640 + 0B53697A652E48656967687405000000000000008002401453697A652E506C61 + 74666F726D44656661756C74080756697369626C650800000000545046300A54 + 52656374616E676C6500095374796C654E616D65061174726565766965776974 + 656D7374796C6505416C69676E070643656E7465720946696C6C2E4B696E6407 + 044E6F6E650748697454657374080553696465730B06426F74746F6D000A5369 + 7A652E57696474680500000000000000AE05400B53697A652E48656967687405 + 00000000000000A004401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350B5374726F6B652E + 4A6F696E0705526F756E640756697369626C6508000C54537065656442757474 + 6F6E00095374796C654E616D650606627574746F6E05416C69676E07044C6566 + 740A53697A652E57696474680500000000000000A003400B53697A652E486569 + 6768740500000000000000A004401453697A652E506C6174666F726D44656661 + 756C74080B5374796C654C6F6F6B7570061B7472656576696577657870616E64 + 6572627574746F6E7374796C65000007544C61796F75740005416C69676E0708 + 436F6E74656E74730C4D617267696E732E4C6566740500000000000000A00340 + 0A53697A652E576964746805000000000000008605400B53697A652E48656967 + 68740500000000000000A004401453697A652E506C6174666F726D4465666175 + 6C7408000954436865636B426F7800095374796C654E616D650605636865636B + 05416C69676E07044C6566740843616E466F637573081244697361626C65466F + 637573456666656374090A53697A652E57696474680500000000000000A00340 + 0B53697A652E4865696768740500000000000000A004401453697A652E506C61 + 74666F726D44656661756C740800000654476C79706800095374796C654E616D + 65060A676C7970687374796C650C4D617267696E732E4C656674050000000000 + 00008000400B4D617267696E732E546F70050000000000000080FF3F0D4D6172 + 67696E732E526967687405000000000000008000400E4D617267696E732E426F + 74746F6D050000000000000080FF3F05416C69676E07044C6566740A506F7369 + 74696F6E2E580500000000000000B003400A506F736974696F6E2E5905000000 + 0000000080FF3F0A53697A652E576964746805000000000000008003400B5369 + 7A652E48656967687405000000000000009804401453697A652E506C6174666F + 726D44656661756C7408000005545465787400095374796C654E616D65060474 + 65787405416C69676E0706436C69656E74064C6F636B65640907486974546573 + 74080A53697A652E57696474680500000000000000BC04400B53697A652E4865 + 696768740500000000000000A004401453697A652E506C6174666F726D446566 + 61756C74080454657874060454657874165465787453657474696E67732E466F + 6E74436F6C6F720708636C615768697465155465787453657474696E67732E57 + 6F72645772617008165465787453657474696E67732E486F727A416C69676E07 + 074C656164696E670000000A5452656374616E676C650005416C69676E070843 + 6F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869745465737408 + 0E4D617267696E732E426F74746F6D050000000000000080FF3F055369646573 + 0B044C656674000A53697A652E57696474680500000000000000AE05400B5369 + 7A652E48656967687405000000000000009C04401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464632413832 + 4532105374726F6B652E546869636B6E65737305000000000000008000400000 + 005450463007544C61796F757400095374796C654E616D65061670726F677265 + 737362617266696E6973687374796C6505416C69676E070643656E7465720A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508085461624F72646572023F000A5452656374616E676C + 6500095374796C654E616D65060668747261636B05416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 + 64090748697454657374080A53697A652E576964746805000000000033338505 + 400B53697A652E4865696768740500000000009999E104401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 31353135313507585261646975730500000000000000C0004007595261646975 + 730500000000000000C00040000A5452656374616E676C6500095374796C654E + 616D65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C + 2E436F6C6F720709784646324345323434064C6F636B65640907486974546573 + 74080C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F736974 + 696F6E2E59050000000000000080FF3F0A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000009999D90440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E6507585261646975730500000000000000C000400759526164697573 + 0500000000000000C000400000000A5452656374616E676C6500095374796C65 + 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350758 + 5261646975730500000000000000C00040075952616469757305000000000000 + 00C00040000A5452656374616E676C6500095374796C654E616D65060A76696E + 64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72 + 0709784646324345323434064C6F636B6564090748697454657374080C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A50 + 6F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E5905 + 000000000099998904400A53697A652E57696474680500000000003333810540 + 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C00040000000005450463007544C61796F757400095374796C654E616D65 + 061A70726F67726573736261726D696E6966696E6973687374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000003333850540 + 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 4A000A5452656374616E676C6500095374796C654E616D65060668747261636B + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 343034303430064C6F636B6564090748697454657374080A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000099 + 99E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650758526164697573050000000000000080004007 + 595261646975730500000000000000800040000A5452656374616E676C650009 + 5374796C654E616D65060A68696E64696361746F7205416C69676E07044C6566 + 740A46696C6C2E436F6C6F720709784646324345323434064C6F636B65640907 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000009999E104401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852 + 6164697573050000000000000080004007595261646975730500000000000000 + 8000400000000A5452656374616E676C6500095374796C654E616D6506067674 + 7261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 09784646343034303430064C6F636B6564090748697454657374080A53697A65 + 2E576964746805000000000033338505400B53697A652E486569676874050000 + 0000009999E104401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + 80004007595261646975730500000000000000800040000A5452656374616E67 + 6C6500095374796C654E616D65060A76696E64696361746F7205416C69676E07 + 06426F74746F6D0A46696C6C2E436F6C6F720709784646324345323434064C6F + 636B6564090748697454657374080A506F736974696F6E2E5905000000000099 + 998D04400A53697A652E576964746805000000000033338505400B53697A652E + 4865696768740500000000000000A803401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975 + 7305000000000000008000400759526164697573050000000000000080004000 + 0000005450463007544C61796F757400095374796C654E616D6506136172726F + 77646F776E746F6F6C627574746F6E05416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000C805400B53697A652E48656967687405 + 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F726465720201000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070643 + 6C69656E740C436C69704368696C6472656E090A436C6970506172656E740907 + 436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C + 6C2E436F6C6F7207097830303230323032300748697454657374080A53697A65 + 2E57696474680500000000000000C805400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + C0004007595261646975730500000000000000C00040000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 + 6E696D6174696F6E31084475726174696F6E05000000000000000000000C5072 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097830303230323032300953746F7056616C756507097846463430343034 + 300754726967676572063049734D6F7573654F7665723D747275653B49735072 + 65737365643D66616C73653B4973466F63757365643D66616C73650E54726967 + 676572496E7665727365063149734D6F7573654F7665723D66616C73653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C736500000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 + 6F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000000000 + 00000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463430343034300953746F7056616C75650709 + 7846463137353739430754726967676572062F4973507265737365643D747275 + 653B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463241383245320953746F705661 + 6C756507097846463137353739430754726967676572062E4973507265737365 + 643D747275653B49734D6F7573654F7665723D747275653B4973466F63757365 + 643D747275650E54726967676572496E7665727365062F497350726573736564 + 3D66616C73653B49734D6F7573654F7665723D747275653B4973466F63757365 + 643D7472756500000005545061746800095374796C654E616D65060470617468 + 05416C69676E070643656E74657209446174612E506174680A34000000040000 + 00000000000000C8420000C84201000000000096430000C84201000000000048 + 4300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C + 6157686974650748697454657374080A53697A652E5769647468050000000000 + 0000A002400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E740748697454657374080A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C7408045465787406045465 + 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 6974650756697369626C6508000000} + end> + Left = 64 + Top = 144 + end + object AERModernAnimatedStyle: TStyleBook + StyleName = 'AER Modern Smooth Style' + Styles = < + item + ResourcesBin = { + 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 + AF00060B627574746F6E7374796C6503C5040609656469747374796C6503AC05 + 060A6C6162656C7374796C65032001060D67726F7570626F787374796C65038E + 02060D747261636B6261727374796C65038C07060D636865636B626F78737479 + 6C65039E0506147363726F6C6C62617268747261636B7374796C65033B010614 + 7363726F6C6C62617276747261636B7374796C65033B0106157363726F6C6C62 + 6172626F74746F6D627574746F6E032D0406137363726F6C6C6261726C656674 + 627574746F6E03440406147363726F6C6C6261727269676874627574746F6E03 + 450406127363726F6C6C626172746F70627574746F6E034304060E7363726F6C + 6C6261727374796C65036304060A7468756D627374796C65034402060B737769 + 7463687374796C6503DC01060C7370696E626F787374796C65035F07060F7461 + 62636F6E74726F6C7374796C6503A701060B746162646F747374796C65035901 + 060C7461626974656D7374796C6503EF04060D7468756D626261727374796C65 + 034F03060C6C697374626F787374796C6503AD07060D6C697374626F78666F6F + 746572038B0106106C697374626F786974656D7374796C6503260306126C6973 + 74626F78706C61696E6865616465720346020609677269647374796C65038708 + 060F6865616465726974656D7374796C6503CE03061070726F67726573736261 + 727374796C65036A04061170726F677265737363656C6C7374796C6503A50206 + 106D656E756261726974656D7374796C6503300B060C6D656E75626172737479 + 6C65036C02060D6D656E756974656D7374796C65035D0B06126D656E75736570 + 617261746F727374796C6503E501060D6D656E75766965777374796C65039102 + 060E696D61676563656C6C7374796C65033D01060E706F70757063656C6C7374 + 796C65038E03060D7465787463656C6C7374796C6503A60106096D656D6F7374 + 796C6503DE07060E6C696E6B6C6162656C7374796C65035B03060D73697A6567 + 7269707374796C6503FB04060E7374617475736261727374796C6503DB01060C + 746F6F6C6261727374796C6503CA00061570726F67726573736261726572726F + 727374796C65036F040613736D616C6C7363726F6C6C6261727374796C6503AE + 01060D636F6D626F626F787374796C65030108060D73706C6974746572737479 + 6C6503C0030610636C6F7365627574746F6E7374796C65038604060E6D617862 + 7574746F6E7374796C65030104060E6D696E627574746F6E7374796C65031904 + 060E726573627574746F6E7374796C65031A04060F746F6F6C77696E646F7773 + 74796C6503BD0D0610726164696F627574746F6E7374796C6503C4050618756C + 63656E746572726164696F627574746F6E7374796C650368050616756C6C6566 + 74726164696F627574746F6E7374796C65035B050617756C7269676874726164 + 696F627574746F6E7374796C65036005060E636F6D626F656469747374796C65 + 038D090611616E69696E64696361746F727374796C6503D7010613657870616E + 646572627574746F6E7374796C650381020615657870616E646572636865636B + 626F787374796C6503DB05060A70616E656C7374796C65032901061970726F67 + 726573736261726D696E696572726F727374796C65036103061470726F677265 + 73736261726D696E697374796C65035C03060D657870616E6465727374796C65 + 037C060615616E69696E64696361746F72686F727A7374796C65039502060E6C + 6F67627574746F6E7374796C65039507061B7472656576696577657870616E64 + 6572627574746F6E7374796C65038002061174726565766965776974656D7374 + 796C65030905060D74726565766965777374796C65034107061670726F677265 + 737362617266696E6973687374796C65037004061A70726F6772657373626172 + 6D696E6966696E6973687374796C65036203061177696E646F77626F72646572 + 7374796C65039D1006136172726F77646F776E746F6F6C627574746F6E03A905 + 060D706F707570626F787374796C65034B0600545046300A5452656374616E67 + 6C6500095374796C654E616D65060F6261636B67726F756E647374796C650541 + 6C69676E070643656E7465720A46696C6C2E436F6C6F72070978464632443244 + 32440A53697A652E576964746805000000000000009407400B53697A652E4865 + 696768740500000000000080D206401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508 + 00005450463007544C61796F757400095374796C654E616D65060B627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F726465720202000A5452656374616E676C6500095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E0706436C69656E740C436C69 + 704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F6C6F + 7207097846463230323032300748697454657374080A53697A652E5769647468 + 0500000000000000C805400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E31084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 0953746F7056616C756507097846463430343034300754726967676572063049 + 734D6F7573654F7665723D747275653B4973507265737365643D66616C73653B + 4973466F63757365643D66616C73650E54726967676572496E76657273650631 + 49734D6F7573654F7665723D66616C73653B4973507265737365643D66616C73 + 653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D61 + 74696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 + 74794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978 + 46463430343034300953746F7056616C75650709784646313735373943075472 + 6967676572062F4973507265737365643D747275653B49734D6F7573654F7665 + 723D747275653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 + 416E696D6174696F6E33084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463241383245320953746F7056616C7565070978464631373537 + 39430754726967676572062E4973507265737365643D747275653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D747275650E5472696767 + 6572496E7665727365062F4973507265737365643D66616C73653B49734D6F75 + 73654F7665723D747275653B4973466F63757365643D74727565000000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E7413456E61626C6544726167486967686C6967687408074869745465737408 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 + 686974650000005450463007544C61796F757400095374796C654E616D650609 + 656469747374796C6505416C69676E070643656E7465720A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F726465720203000C5442727573684F626A65637400095374 + 796C654E616D65060A666F726567726F756E6400000C5442727573684F626A65 + 637400095374796C654E616D65060973656C656374696F6E0B42727573682E43 + 6F6C6F72070978393632413832453200000B54466F6E744F626A656374000953 + 74796C654E616D650604666F6E7409466F6E742E53697A650500000000000000 + D0024000000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C 6F7207097846463230323032300748697454657374080A53697A652E57696474 680500000000000000C805400B53697A652E4865696768740500000000000000 C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646323032303230000F54436F6C6F72416E696D617469 + 2E436F6C6F720709784646313531353135000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374 + 796C65084475726174696F6E050000000000CDCCCCFB3F07496E766572736509 + 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 + 7456616C756507097846463135313531350953746F7056616C75650709784646 + 3430343034300754726967676572062049734D6F7573654F7665723D74727565 + 3B4973466F63757365643D66616C73650E54726967676572496E766572736506 + 2149734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 14436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E0500 + 00000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E43 + 6F6C6F720A537461727456616C756507097846463135313531350953746F7056 + 616C756507097846463241383245320754726967676572060E4973466F637573 + 65643D747275650E54726967676572496E7665727365060F4973466F63757365 + 643D66616C736500000007544C61796F757400095374796C654E616D65060762 + 7574746F6E7305416C69676E07055269676874064C6F636B6564090B4D617267 + 696E732E546F7005000000000000008000400D4D617267696E732E5269676874 + 05000000000000008000400E4D617267696E732E426F74746F6D050000000000 + 00008000400A506F736974696F6E2E580500000000000000C004400A506F7369 + 74696F6E2E5905000000000000008000400A53697A652E576964746805000000 + 00000000C804400B53697A652E4865696768740500000000000000A803401453 + 697A652E506C6174666F726D44656661756C7408000007544C61796F75740009 + 5374796C654E616D650607636F6E74656E7405416C69676E0706436C69656E74 + 064C6F636B6564090C4D617267696E732E4C6566740500000000000000800140 + 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E + 526967687405000000000000008000400E4D617267696E732E426F74746F6D05 + 000000000000008000400A53697A652E57696474680500000000000000A80440 + 0B53697A652E4865696768740500000000000000A803401453697A652E506C61 + 74666F726D44656661756C7408000006544C6162656C00095374796C654E616D + 65060670726F6D7074064C6F636B656409074F70616369747905000000000000 + 0080FE3F165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 576869746504546578740604546578740000005450463007544C61796F757400 + 095374796C654E616D65060A6C6162656C7374796C6505416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F7264657202040005545465 + 787400095374796C654E616D6506047465787405416C69676E0708436F6E7465 + 6E74730748697454657374080A53697A652E57696474680500000000000000C8 + 05400B53697A652E4865696768740500000000000000C803401453697A652E50 + 6C6174666F726D44656661756C7408165465787453657474696E67732E466F6E + 74436F6C6F720708636C6157686974650000005450463007544C61796F757400 + 095374796C654E616D65060D67726F7570626F787374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000F004400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F726465720205000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E + 650748697454657374080C4D617267696E732E4C6566740500000000000000C0 + 00400B4D617267696E732E546F7005000000000000009002400D4D617267696E + 732E52696768740500000000000000C000400E4D617267696E732E426F74746F + 6D0500000000000000C000400A53697A652E57696474680500000000000000D8 + 04400B53697A652E48656967687405000000000000009804401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 463135313531350005545465787400095374796C654E616D6506047465787408 + 4175746F53697A65090A436C6970506172656E74090748697454657374080C4D + 617267696E732E4C6566740500000000000000A002400A506F736974696F6E2E + 5805000000000060559502400A506F736974696F6E2E590500000000004055D5 + 01C00A53697A652E576964746805000000000000B8C703400B53697A652E4865 + 696768740500000000000060FF02401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 615768697465155465787453657474696E67732E576F72645772617008000000 + 005450463007544C61796F757400095374796C654E616D65060D747261636B62 + 61727374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C805400B53697A652E4865696768740500000000000000C8 + 05401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F7264657202060B46697865644865696768740211000A54526563 + 74616E676C6500095374796C654E616D65060668747261636B05416C69676E07 + 0A5665727443656E7465720A46696C6C2E436F6C6F7207097846463135313531 + 350748697454657374080A506F736974696F6E2E590500000000000000BC0440 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000A001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C + 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 + 436F6E74656E74730946696C6C2E4B696E6407044E6F6E65064C6F636B656409 + 0748697454657374080C4D617267696E732E4C6566740500000000000000C001 + 400B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E52696768740500000000000000C001400E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000000000B005 + 400B53697A652E4865696768740500000000000000C000401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 00000A5452656374616E676C6500095374796C654E616D650609686967686C69 + 67687405416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632 + 41383245320748697454657374080C50616464696E672E4C6566740500000000 + 000000A002400A53697A652E57696474680500000000000000F003400B53697A + 652E4865696768740500000000000000A001401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000B5447 + 6C6F774566666563740008536F66746E657373050000000000CDCCCCFC3F0947 + 6C6F77436F6C6F720709784646324138324532074F7061636974790500000000 + 00000080FF3F07456E61626C6564080000000A5452656374616E676C65000953 + 74796C654E616D65060676747261636B05416C69676E070A486F727A43656E74 + 65720A46696C6C2E436F6C6F7207097846463135313531350748697454657374 + 080A506F736974696F6E2E580500000000000000BC04400A53697A652E576964 + 74680500000000000000A001400B53697A652E48656967687405000000000000 + 00C805401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E + 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E747309 + 46696C6C2E4B696E6407044E6F6E65064C6F636B656409074869745465737408 + 0C4D617267696E732E4C6566740500000000000000C001400B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 0000000000C001400E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A53697A652E576964746805000000000000000000000B53697A652E4865 + 696768740500000000000000C405401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265637461 + 6E676C6500095374796C654E616D650609686967686C6967687405416C69676E + 0703546F700A46696C6C2E436F6C6F7207097846463241383245320748697454 + 657374080A53697A652E57696474680500000000000000A001400B53697A652E + 4865696768740500000000000000F003401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000B54476C6F + 774566666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F + 77436F6C6F720709784646324138324532074F70616369747905000000000000 + 0080FF3F07456E61626C65640800000006545468756D6200095374796C654E61 + 6D650606687468756D62064C6F636B6564090A506F736974696F6E2E58050000 + 0000003033AB03400A506F736974696F6E2E59050000000000FFFFA304400A53 + 697A652E57696474680500000000000000F002400B53697A652E486569676874 + 0500000000000000F002401453697A652E506C6174666F726D44656661756C74 + 080B5374796C654C6F6F6B7570060D7468756D626261727374796C6500000654 + 5468756D6200095374796C654E616D650606767468756D62064C6F636B656409 + 0A506F736974696F6E2E58050000000000CBCCA804400A506F736974696F6E2E + 590500000000009899B103400A53697A652E57696474680500000000000000F0 + 02400B53697A652E4865696768740500000000000000F002401453697A652E50 + 6C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060D746875 + 6D626261727374796C650000005450463007544C61796F757400095374796C65 + 4E616D65060D636865636B626F787374796C6505416C69676E070643656E7465 + 720A53697A652E5769647468050000000000ACAA8006400B53697A652E486569 + 67687405000000000058559904401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F7264657202070007544C61796F75 + 740005416C69676E07044C6566740A53697A652E576964746805000000000000 + 009003400B53697A652E48656967687405000000000058559904401453697A65 + 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E070643656E74 + 65720A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E57696474680500000000000000F002400B53697A652E486569 + 6768740500000000000000F002401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F720709784646313531353135000A5452 + 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 + 416C69676E0706436C69656E740A46696C6C2E436F6C6F720709784646324138 + 324532074869745465737408074F70616369747905000000000000000000000C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 + 400A53697A652E57696474680500000000000000B002400B53697A652E486569 + 6768740500000000000000B002401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E + 696D6174696F6E00095374796C654E616D65061B6368656368626F7856697362 + 696C697479416E696D6174696F6E31084475726174696F6E050000000000CDCC + CCFB3F0C50726F70657274794E616D6506074F7061636974790A537461727456 + 616C756505000000000000000000000953746F7056616C756505000000000000 + 00C805400754726967676572060E4973436865636B65643D747275650E547269 + 67676572496E7665727365060F4973436865636B65643D66616C73650000000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061863686563 + 6B626F785374726F6B65416E696D6174696F6E31084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F + 6C6F720A537461727456616C756507097846463135313531350953746F705661 + 6C756507097846463241383245320754726967676572060E4973436865636B65 + 643D747275650E54726967676572496E7665727365060F4973436865636B6564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650617636865636B626F78436F6C6F72416E696D6174696F6E3108447572 + 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 + 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 + 53746F7056616C75650709784646343034303430075472696767657206104973 + 4D6F7573654F7665723D747275650E54726967676572496E7665727365061149 + 734D6F7573654F7665723D66616C73650000000005545465787400095374796C + 654E616D6506047465787405416C69676E0706436C69656E740A53697A652E57 + 696474680500000000005855DD05400B53697A652E4865696768740500000000 + 0058559904401453697A652E506C6174666F726D44656661756C740804546578 + 74060454657874165465787453657474696E67732E466F6E74436F6C6F720708 + 636C615768697465000000545046300A5452656374616E676C6500095374796C + 654E616D6506147363726F6C6C62617268747261636B7374796C6505416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F72070978464631353135313507 + 48697454657374080A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669 + 7369626C65080006545468756D6200095374796C654E616D6506057468756D62 + 064C6F636B6564090A53697A652E576964746805000000000000008003400B53 + 697A652E4865696768740500000000000000C804401453697A652E506C617466 + 6F726D44656661756C74080B5374796C654C6F6F6B7570060A7468756D627374 + 796C65000000545046300A5452656374616E676C6500095374796C654E616D65 + 06147363726F6C6C62617276747261636B7374796C6505416C69676E07064365 + 6E7465720A46696C6C2E436F6C6F720709784646313531353135074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C65 + 080006545468756D6200095374796C654E616D6506057468756D62064C6F636B + 6564090A53697A652E57696474680500000000000000C804400B53697A652E48 + 656967687405000000000000008003401453697A652E506C6174666F726D4465 + 6661756C74080B5374796C654C6F6F6B7570060A7468756D627374796C650000 + 005450463007544C61796F757400095374796C654E616D6506157363726F6C6C + 626172626F74746F6D627574746F6E05416C69676E070643656E746572075669 + 7369626C6508085461624F726465720208000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0706436C6965 + 6E740C436C69704368696C6472656E090A436C6970506172656E74090A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D617469 + 6F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3230323032300953746F7056616C756507097846463430343034300754726967 + 676572062049734D6F7573654F7665723D747275653B4973507265737365643D + 66616C73650E54726967676572496E7665727365062149734D6F7573654F7665 + 723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E32084475726174696F6E05000000000000000000000C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463430343034300953746F7056616C75650709784646313735 + 3739430754726967676572061F4973507265737365643D747275653B49734D6F + 7573654F7665723D747275650E54726967676572496E76657273650620497350 + 7265737365643D66616C73653B49734D6F7573654F7665723D74727565000000 + 07544C61796F757400095374796C654E616D6506074C61796F75743105416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000A00240 + 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 + 74666F726D44656661756C74080005545061746800095374796C654E616D6506 + 05506174683105416C69676E0706436C69656E7409446174612E506174680A34 + 00000004000000000000000000C8420000C84201000000000096430000C84201 + 0000000000484300009643030000000000C8420000C8420A46696C6C2E436F6C + 6F720708636C6157686974650748697454657374080A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000000005450463007544C61796F757400095374796C + 654E616D6506137363726F6C6C6261726C656674627574746F6E05416C69676E + 070643656E7465720756697369626C6508085461624F726465720209000A5452 + 656374616E676C6500095374796C654E616D65060A6261636B67726F756E6405 + 416C69676E0706436C69656E740C436C69704368696C6472656E090A436C6970 + 506172656E74090A46696C6C2E436F6C6F720709784646323032303230074869 + 7454657374080A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCC + FB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463230323032300953746F7056616C75650709784646 + 3430343034300754726967676572062049734D6F7573654F7665723D74727565 + 3B4973507265737365643D66616C73650E54726967676572496E766572736506 + 2149734D6F7573654F7665723D66616C73653B4973507265737365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E05 + 000000000000000000000C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463430343034300953746F705661 + 6C756507097846463137353739430754726967676572061F4973507265737365 + 643D747275653B49734D6F7573654F7665723D747275650E5472696767657249 + 6E766572736506204973507265737365643D66616C73653B49734D6F7573654F + 7665723D7472756500000007544C61796F757400095374796C654E616D650607 + 4C61796F75743105416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000A002400B53697A652E4865696768740500000000000000C0 + 01401453697A652E506C6174666F726D44656661756C74080005545061746800 + 095374796C654E616D650605506174683105416C69676E0706436C69656E7409 + 446174612E506174680A3400000004000000000000000000C8420000C8420100 + 0000000096430000C842010000000000484300009643030000000000C8420000 + C8420A46696C6C2E436F6C6F720708636C615768697465074869745465737408 + 0D526F746174696F6E416E676C650500000000000000B405400A53697A652E57 + 696474680500000000000000A002400B53697A652E4865696768740500000000 + 000000C001401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000000005450463007544C61796F75740009 + 5374796C654E616D6506147363726F6C6C6261727269676874627574746F6E05 + 416C69676E070643656E7465720756697369626C6508085461624F7264657202 + 0A000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0706436C69656E740C436C69704368696C6472656E09 + 0A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05000000 + 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463230323032300953746F7056616C7565 + 07097846463430343034300754726967676572062049734D6F7573654F766572 + 3D747275653B4973507265737365643D66616C73650E54726967676572496E76 + 65727365062149734D6F7573654F7665723D66616C73653B4973507265737365 + 643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844757261 + 74696F6E05000000000000000000000C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463430343034300953 + 746F7056616C756507097846463137353739430754726967676572061F497350 + 7265737365643D747275653B49734D6F7573654F7665723D747275650E547269 + 67676572496E766572736506204973507265737365643D66616C73653B49734D + 6F7573654F7665723D7472756500000007544C61796F757400095374796C654E + 616D6506074C61796F75743105416C69676E070643656E7465720A53697A652E + 57696474680500000000000000A002400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C7408000554 + 5061746800095374796C654E616D650605506174683105416C69676E0706436C + 69656E7409446174612E506174680A3400000004000000000000000000C84200 + 00C84201000000000096430000C8420100000000004843000096430300000000 + 00C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080D526F746174696F6E416E676C650500000000000000B405C00A53 + 697A652E57696474680500000000000000A002400B53697A652E486569676874 + 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C6179 + 6F757400095374796C654E616D6506127363726F6C6C626172746F7062757474 + 6F6E05416C69676E070643656E7465720756697369626C6508085461624F7264 + 6572020B000A5452656374616E676C6500095374796C654E616D65060A626163 + 6B67726F756E6405416C69676E0706436C69656E740C436C69704368696C6472 + 656E090A436C6970506172656E74090A46696C6C2E436F6C6F72070978464632 + 30323032300748697454657374080A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C804401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463230323032300953746F705661 + 6C756507097846463430343034300754726967676572062049734D6F7573654F + 7665723D747275653B4973507265737365643D66616C73650E54726967676572 + 496E7665727365062149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E320844 + 75726174696F6E05000000000000000000000C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C756507097846463137353739430754726967676572061F + 4973507265737365643D747275653B49734D6F7573654F7665723D747275650E + 54726967676572496E766572736506204973507265737365643D66616C73653B + 49734D6F7573654F7665723D7472756500000007544C61796F75740009537479 + 6C654E616D6506074C61796F75743105416C69676E070643656E7465720A5369 + 7A652E57696474680500000000000000A002400B53697A652E48656967687405 + 00000000000000C001401453697A652E506C6174666F726D44656661756C7408 + 0005545061746800095374796C654E616D650605506174683105416C69676E07 + 06436C69656E7409446174612E506174680A3400000004000000000000000000 + C8420000C84201000000000096430000C8420100000000004843000096430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080D526F746174696F6E416E676C650500000000000000B406 + 400A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046300754 + 4C61796F757400095374796C654E616D65060E7363726F6C6C6261727374796C + 6505416C69676E070643656E7465720756697369626C6508085461624F726465 + 72020C000754427574746F6E00095374796C654E616D65060A6C656674627574 + 746F6E05416C69676E07044C656674064C6F636B6564090A506F736974696F6E + 2E5905000000000000008003400A53697A652E57696474680500000000000000 + 8003400B53697A652E48656967687405000000000000009003401453697A652E + 506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006137363 + 726F6C6C6261726C656674627574746F6E00000754427574746F6E0009537479 + 6C654E616D65060B7269676874627574746F6E05416C69676E07055269676874 + 064C6F636B6564090A506F736974696F6E2E5805000000000000008804400A50 + 6F736974696F6E2E5905000000000000008003400A53697A652E576964746805 + 000000000000008003400B53697A652E48656967687405000000000000009003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B757006147363726F6C6C6261727269676874627574746F6E00000754427574 + 746F6E00095374796C654E616D65060C626F74746F6D627574746F6E05416C69 + 676E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E59050000 + 00000000008804400A53697A652E57696474680500000000000000C804400B53 + 697A652E48656967687405000000000000008003401453697A652E506C617466 + 6F726D44656661756C74080B5374796C654C6F6F6B757006157363726F6C6C62 + 6172626F74746F6D627574746F6E00000654547261636B00095374796C654E61 + 6D65060668747261636B05416C69676E0706436C69656E74064C6F636B656409 + 0B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A652E5769 + 64746805000000000000009003400B53697A652E486569676874050000000000 + 00009003401453697A652E506C6174666F726D44656661756C74080B5374796C + 654C6F6F6B757006147363726F6C6C62617268747261636B7374796C65000006 + 54547261636B00095374796C654E616D65060676747261636B05416C69676E07 + 06436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0A53697A652E576964746805000000000000009003400B5369 + 7A652E48656967687405000000000000009003401453697A652E506C6174666F + 726D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C6261 + 7276747261636B7374796C6500000754427574746F6E00095374796C654E616D + 650609746F70627574746F6E05416C69676E0703546F700A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 008003401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B757006127363726F6C6C626172746F70627574746F6E000000545046 + 300A5452656374616E676C6500095374796C654E616D65060A7468756D627374 + 796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 + 463444344434440748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E650756697369626C6508000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E31 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646344434 + 4434440953746F7056616C756507097846463137353739430754726967676572 + 060E4973507265737365643D747275650E54726967676572496E766572736506 + 0F4973507265737365643D66616C736500000F54436F6C6F72416E696D617469 6F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374 796C65084475726174696F6E050000000000CDCCCCFB3F07496E766572736509 - 0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172 + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463444344434440953746F7056616C75650707636C614772 + 61790754726967676572061049734D6F7573654F7665723D747275650E547269 + 67676572496E7665727365061149734D6F7573654F7665723D66616C73650000 + 00545046300D545377697463684F626A65637400095374796C654E616D65060B + 7377697463687374796C6505416C69676E070643656E746572044B696E64070C + 466164696E67547261636B730A53697A652E57696474680500000000000000C8 + 05400B53697A652E4865696768740500000000000000C803401453697A652E50 + 6C6174666F726D44656661756C7408085461624F72646572020D12547261636B + 696E675468756D625363616C65050000000000000080FF3F0756697369626C65 + 080A46696C6C2E436F6C6F7207097846463230323032300C46696C6C4F6E2E43 + 6F6C6F7207097846463137353739430B46696C6C4F6E2E4B696E640705536F6C + 69640B5374726F6B652E4B696E6407044E6F6E650B5468756D622E436F6C6F72 + 07097846463430343034300D5468756D624F6E2E436F6C6F7207097846463241 + 383245320C5468756D624F6E2E4B696E640705536F6C6964105468756D625374 + 726F6B652E4B696E6407044E6F6E650F5468756D625374726F6B652E43617007 + 05526F756E64105468756D625374726F6B652E446173680706437573746F6D10 + 5468756D625374726F6B652E4A6F696E0705526F756E64165468756D62537472 + 6F6B652E437573746F6D446173680A0800000000000000000000000000545046 + 3007544C61796F757400095374796C654E616D65060C7370696E626F78737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 0000008A06400B53697A652E4865696768740500000000000000C00340145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 + 4F72646572020E000A5452656374616E676C6500095374796C654E616D65060A + 6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F7207097846463230323032300A53697A652E57696474680500000000 + 0000008A06400B53697A652E4865696768740500000000000000C00340145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65084475 + 726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065 + 7274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565 + 07097846463135313531350953746F7056616C75650709784646343034303430 + 0754726967676572061049734D6F7573654F7665723D747275650E5472696767 + 6572496E7665727365061149734D6F7573654F7665723D66616C73650000000C + 5442727573684F626A65637400095374796C654E616D65060A666F726567726F + 756E640B42727573682E436F6C6F72070978464645414541454100000C544272 + 7573684F626A65637400095374796C654E616D65060973656C656374696F6E0B + 42727573682E436F6C6F720709783936324138324532000007544C61796F7574 + 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 + 6E74064C6F636B6564090C4D617267696E732E4C656674050000000000000080 + 00400B4D617267696E732E546F7005000000000000008000400D4D617267696E + 732E526967687405000000000000008000400E4D617267696E732E426F74746F + 6D05000000000000008000400A53697A652E57696474680500000000000000AC + 05400B53697A652E4865696768740500000000000000A003401453697A652E50 + 6C6174666F726D44656661756C740800000754427574746F6E00095374796C65 + 4E616D65060B6D696E7573627574746F6E05416C69676E07044C656674084361 + 6E466F6375730806437572736F72070763724172726F770C4D617267696E732E + 4C65667405000000000000008000400B4D617267696E732E546F700500000000 + 0000008000400D4D617267696E732E526967687405000000000000008000400E + 4D617267696E732E426F74746F6D05000000000000008000400A506F73697469 + 6F6E2E5805000000000000008000400A506F736974696F6E2E59050000000000 + 00008000400A53697A652E57696474680500000000000000A003400B53697A65 + 2E4865696768740500000000000000A003401453697A652E506C6174666F726D + 44656661756C74080B5374796C654C6F6F6B7570060B627574746F6E7374796C + 65000554506174680005416C69676E070643656E74657209446174612E506174 + 680A4000000005000000000000000000803F00000000010000000000803F0000 + 803F01000000000000000000003F010000000000803F00000000030000000000 + 803F000000000A46696C6C2E436F6C6F720708636C6157686974650748697454 + 657374080A53697A652E576964746805000000000000008002400B53697A652E + 48656967687405000000000000008002401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000007544275 + 74746F6E00095374796C654E616D65060A706C7573627574746F6E05416C6967 + 6E070552696768740843616E466F6375730806437572736F7207076372417272 + 6F770C4D617267696E732E4C65667405000000000000008000400B4D61726769 + 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 + 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 + 008000400A506F736974696F6E2E580500000000000000E805400A506F736974 + 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 + 000000A003400B53697A652E4865696768740500000000000000A00340145369 + 7A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006 + 0B627574746F6E7374796C65000554506174680005416C69676E070643656E74 + 657209446174612E506174680A34000000040000000000000000000000000000 + 0001000000000000000000803F010000000000803F0000003F03000000000000 + 00000000000A46696C6C2E436F6C6F720708636C615768697465074869745465 + 7374080A53697A652E576964746805000000000000008002400B53697A652E48 + 656967687405000000000000008002401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054504630 + 07544C61796F757400095374796C654E616D65060F746162636F6E74726F6C73 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 00000000008E06400B53697A652E486569676874050000000000FFFFC9054014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F72646572020F000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646333033303330064C6F636B656409074869745465 + 7374080C50616464696E672E4C65667405000000000000008000400B50616464 + 696E672E546F7005000000000000008000400D50616464696E672E5269676874 + 05000000000000008000400E50616464696E672E426F74746F6D050000000000 + 00008000400A53697A652E576964746805000000000000008E06400B53697A65 + 2E486569676874050000000000FFFFC905401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 000000545046300A5452656374616E676C6500095374796C654E616D65060B74 + 6162646F747374796C6505416C69676E070643656E7465720A46696C6C2E436F + 6C6F7207097846463135313531350748697454657374080A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E69 + 6D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463135313531350953746F7056616C7565070978464632413832453207 + 54726967676572060F497353656C65637465643D747275650E54726967676572 + 496E76657273650610497353656C65637465643D66616C736500000054504630 + 07544C61796F757400095374796C654E616D65060C7461626974656D7374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 726465720210000A5452656374616E676C6500095374796C654E616D65060374 + 6F7005416C69676E0708436F6E74656E74730C436C69704368696C6472656E09 + 07436F726E6572730B07546F704C65667408546F705269676874000A46696C6C + 2E436F6C6F720709784646323032303230064C6F636B65640907486974546573 + 74080553696465730B03546F70044C656674055269676874000A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F720709784646313531353135000654476C79706800095374 + 796C654E616D65060A676C7970687374796C650C4D617267696E732E4C656674 + 05000000000000008001400D4D617267696E732E526967687405000000000000 + 008001C005416C69676E07044C6566740A53697A652E57696474680500000000 + 0000008003400B53697A652E4865696768740500000000000000800340145369 + 7A652E506C6174666F726D44656661756C740800000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + C000400B4D617267696E732E546F700500000000000000C000400D4D61726769 + 6E732E52696768740500000000000000C000400E4D617267696E732E426F7474 + 6F6D0500000000000000C000400A53697A652E57696474680500000000000000 + B004400B53697A652E48656967687405000000000000009803401453697A652E + 506C6174666F726D44656661756C7408165465787453657474696E67732E466F + 6E74436F6C6F720708636C615768697465155465787453657474696E67732E57 + 6F7264577261700800000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650612746162436F6C6F72416E696D6174696F6E310D416E696D6174 + 696F6E547970650705496E4F7574084475726174696F6E050000000000CDCCCC + FB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 7456616C756507097846463230323032300953746F7056616C75650709784646 - 3430343034300754726967676572062049734D6F7573654F7665723D74727565 - 3B4973466F63757365643D66616C73650E54726967676572496E766572736506 - 2149734D6F7573654F7665723D66616C73653B4973466F63757365643D66616C - 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 14436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E0500 - 00000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D6506 - 0C5374726F6B652E436F6C6F720A537461727456616C75650709784646343034 - 3034300953746F7056616C756507097846463241383245320754726967676572 - 061F49734D6F7573654F7665723D747275653B4973466F63757365643D747275 - 650E54726967676572496E7665727365062049734D6F7573654F7665723D7472 - 75653B4973466F63757365643D66616C7365000007544C61796F757400095374 - 796C654E616D6506056172726F7705416C69676E070846697452696768740B4D - 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 - 000000000080FF3F0A506F736974696F6E2E580500000000005ED99705400A50 - 6F736974696F6E2E59050000000000000080FF3F0A53697A652E576964746805 - 0000000000889AB803400B53697A652E4865696768740500000000000000B803 - 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E - 676C6500095374796C654E616D65060A52656374616E676C653105416C69676E - 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646333033303330 - 0748697454657374080A53697A652E5769647468050000000000889AB803400B - 53697A652E4865696768740500000000000000B803401453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F - 72416E696D6174696F6E315374796C65084475726174696F6E050000000000CD - CCCCFB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463330333033300953746F - 7056616C756507097846463430343034300754726967676572062049734D6F75 - 73654F7665723D747275653B4973466F63757365643D66616C73650E54726967 - 676572496E7665727365062149734D6F7573654F7665723D66616C73653B4973 - 466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C65 - 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D - 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646343034 - 3034300953746F7056616C756507097846463137353739430754726967676572 - 061F4973466F63757365643D747275653B49734D6F7573654F7665723D747275 - 6500000007544C61796F757400095374796C654E616D6506074C61796F757431 - 05416C69676E070643656E7465720C4D617267696E732E4C6566740500000000 - 00000080FF3F0A53697A652E57696474680500000000000000A002400B53697A - 652E4865696768740500000000000000C001401453697A652E506C6174666F72 - 6D44656661756C74080005545061746800095374796C654E616D650605506174 - 683105416C69676E0706436C69656E7409446174612E506174680A3400000004 - 000000000000000000C8420000C84201000000000096430000C8420100000000 - 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 - 636C6157686974650748697454657374080A53697A652E576964746805000000 - 00000000A002400B53697A652E4865696768740500000000000000C001401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E650000000000000C5442727573684F626A65637400095374796C65 - 4E616D65060973656C656374696F6E0B42727573682E436F6C6F720709783936 - 324138324532000007544C61796F757400095374796C654E616D650607636F6E - 74656E7405416C69676E0706436C69656E740C4D617267696E732E4C65667405 - 000000000000008000400B4D617267696E732E546F7005000000000000008000 - 400D4D617267696E732E52696768740500000000000000F003400E4D61726769 - 6E732E426F74746F6D05000000000000008000400A53697A652E576964746805 - 000000000000008805400B53697A652E4865696768740500000000000000A803 - 401453697A652E506C6174666F726D44656661756C7408000000545046300754 - 4C61796F757400095374796C654E616D650611616E69696E64696361746F7273 - 74796C6505416C69676E070643656E7465720756697369626C6508085461624F - 72646572024800045441726300095374796C654E616D65060341726305416C69 - 676E0708436F6E74656E74730748697454657374080D526F746174696F6E416E - 676C650500000000000000B407400A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000000000C804401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720708 - 636C615768697465105374726F6B652E546869636B6E65737305000000000000 - 008001400A5374726F6B652E4361700705526F756E6408456E64416E676C6505 - 00000000000000B405C0000F54466C6F6174416E696D6174696F6E0009537479 - 6C654E616D650603616E6907456E61626C656409084475726174696F6E050000 - 000000000080FF3F044C6F6F70090C50726F70657274794E616D65060D526F74 - 6174696F6E416E676C650A537461727456616C75650500000000000000000000 - 0953746F7056616C75650500000000000000B407400754726967676572060E49 - 7356697369626C653D74727565000000005450463007544C61796F7574000953 - 74796C654E616D650613657870616E646572627574746F6E7374796C6505416C - 69676E070643656E7465720B4D617267696E732E546F70050000000000000080 - FF3F0A53697A652E57696474680500000000000000B003400B53697A652E4865 + 3430343034300754726967676572062149734D6F7573654F7665723D74727565 + 3B497353656C65637465643D66616C73650E54726967676572496E7665727365 + 062249734D6F7573654F7665723D66616C73653B497353656C65637465643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650612746162436F6C6F72416E696D6174696F6E32084475726174696F6E0500 + 00000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C + 6F720A537461727456616C756507097846463230323032300953746F7056616C + 756507097846463241383245320754726967676572060F497353656C65637465 + 643D747275650E54726967676572496E76657273650610497353656C65637465 + 643D66616C736500000000545046300A5452656374616E676C6500095374796C + 654E616D65060D7468756D626261727374796C6505416C69676E070643656E74 + 65720A46696C6C2E436F6C6F7207097846463241383245320748697454657374 + 080A53697A652E57696474680500000000000000A003400B53697A652E486569 + 6768740500000000000000A003401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313507566973 + 69626C6508000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 6506147468756D62436F6C6F72416E696D6174696F6E31084475726174696F6E + 050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 + 616C756507097846463137353739430754726967676572061F49735072657373 + 65643D747275653B49734D6F7573654F7665723D747275650E54726967676572 + 496E766572736506104973507265737365643D66616C73653B00000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D6506147468756D62436F6C + 6F72416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463241383245320953746F7056616C756507097846463430 + 394246460754726967676572062049734D6F7573654F7665723D747275653B49 + 73507265737365643D66616C73650E54726967676572496E7665727365062149 + 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061574 + 68756D625374726F6B65416E696D6174696F6E31084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F + 6C6F720A537461727456616C756507097846463135313531350953746F705661 + 6C756507097846463137353739430754726967676572061F4973507265737365 + 643D747275653B49734D6F7573654F7665723D747275650E5472696767657249 + 6E7665727365060F4973507265737365643D66616C7365000000545046300754 + 4C61796F757400095374796C654E616D65060C6C697374626F787374796C6505 + 416C69676E070643656E7465720A53697A652E5769647468050000000000FFFF + E905400B53697A652E48656967687405000000000000008306401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 65720211000C5442727573684F626A65637400095374796C654E616D65061841 + 6C7465726E6174696E67526F774261636B67726F756E640B42727573682E436F + 6C6F72070978464632433243324300000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 + 0748697454657374080C50616464696E672E4C65667405000000000000008000 + 400B50616464696E672E546F7005000000000000008000400D50616464696E67 + 2E526967687405000000000000008000400E50616464696E672E426F74746F6D + 05000000000000008000400A53697A652E5769647468050000000000FFFFE905 + 400B53697A652E48656967687405000000000000008306401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 3135313531350007544C61796F757400095374796C654E616D650607636F6E74 + 656E7405416C69676E0706436C69656E740C436C69704368696C6472656E090A + 53697A652E5769647468050000000000FFFFC105400B53697A652E4865696768 + 740500000000000000DE05401453697A652E506C6174666F726D44656661756C + 7408000A5452656374616E676C6500095374796C654E616D65060973656C6563 + 74696F6E0A46696C6C2E436F6C6F720709784646324138324532074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374 + 616E676C6500095374796C654E616D650610666F637573656473656C65637469 + 6F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454657374 + 080A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B652E4461 + 73680703446F740000000A545363726F6C6C42617200095374796C654E616D65 + 060A767363726F6C6C62617205416C69676E070552696768740B536D616C6C43 + 68616E676505000000000000000000000B4F7269656E746174696F6E07085665 + 72746963616C0A506F736974696F6E2E58050000000000FFFFC505400A506F73 + 6974696F6E2E5905000000000000008000400A53697A652E5769647468050000 + 00000000008003400B53697A652E4865696768740500000000000000DE054014 + 53697A652E506C6174666F726D44656661756C740800000A545363726F6C6C42 + 617200095374796C654E616D65060A687363726F6C6C62617205416C69676E07 + 06426F74746F6D0B536D616C6C4368616E676505000000000000000000000B4F + 7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974696F6E2E + 5805000000000000008000400A506F736974696F6E2E590500000000000000E2 + 05400A53697A652E5769647468050000000000FFFFE105400B53697A652E4865 + 6967687405000000000000008003401453697A652E506C6174666F726D446566 + 61756C740800000F54536D616C6C5363726F6C6C42617200095374796C654E61 + 6D65060F76736D616C6C7363726F6C6C62617205416C69676E07055269676874 + 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 + 696F6E0708566572746963616C0C4D617267696E732E4C656674050000000000 + 00008000400A506F736974696F6E2E580500000000000000C605400A506F7369 + 74696F6E2E5905000000000000008000400A53697A652E576964746805000000 + 000000008002400B53697A652E48656967687405000000000000008002401453 + 697A652E506C6174666F726D44656661756C74080756697369626C650800000F + 54536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D61 + 6C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C43 + 68616E676505000000000000000000000B4F7269656E746174696F6E070A486F + 72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000400A + 506F736974696F6E2E5805000000000000008000400A506F736974696F6E2E59 + 0500000000000000E205400A53697A652E576964746805000000000000009606 + 400B53697A652E48656967687405000000000000008002401453697A652E506C + 6174666F726D44656661756C74080756697369626C65080000000B54476C6F77 + 4566666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77 + 436F6C6F720709784646463639453244074F7061636974790500000000006666 + E6FE3F0754726967676572060E4973466F63757365643D7472756507456E6162 + 6C6564080000005450463007544C61796F757400095374796C654E616D65060D + 6C697374626F78666F6F74657205416C69676E070643656E7465720A53697A65 + 2E576964746805000000000000009205400B53697A652E486569676874050000 + 0000000000D003401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F7264657202120005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C6566740500000000000000A001 + 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 + 2E52696768740500000000000000A001400E4D617267696E732E426F74746F6D + 05000000000000008000400A53697A652E57696474680500000000000000FC04 + 400B53697A652E4865696768740500000000000000B003401453697A652E506C + 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D6506106C697374626F786974656D7374796C6505416C6967 + 6E070643656E7465720A53697A652E57696474680500000000000000D605400B + 53697A652E4865696768740500000000000000C003401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F726465720213 + 000654476C79706800095374796C654E616D65060A676C7970687374796C650C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D050000000000000080FF + 3F05416C69676E07044C6566740A53697A652E57696474680500000000000000 + 8003400B53697A652E48656967687405000000000000008003401453697A652E + 506C6174666F726D44656661756C7408000005545465787400095374796C654E + 616D6506047465787405416C69676E0706436C69656E74074869745465737408 + 0C4D617267696E732E4C6566740500000000000000C000400B4D617267696E73 + 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 + 0000000000C000400E4D617267696E732E426F74746F6D050000000000000080 + FF3F0A53697A652E57696474680500000000000000CA05400B53697A652E4865 696768740500000000000000B003401453697A652E506C6174666F726D446566 - 61756C74080756697369626C6508085461624F72646572024C00055450617468 - 00095374796C654E616D650605506174683105416C69676E070643656E746572 - 09446174612E506174680A3400000004000000000000000000C8420000C84201 - 000000000096430000C842010000000000484300009643030000000000C84200 - 00C8420A46696C6C2E436F6C6F720708636C6157686974650748697454657374 - 080D526F746174696F6E416E676C650500000000000000B405400A53697A652E - 57696474680500000000000000A002400B53697A652E48656967687405000000 - 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E - 00095374796C654E616D650614466C6F6174416E696D6174696F6E315374796C - 65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C6174 - 696F6E070843697263756C61720C50726F70657274794E616D65060D526F7461 - 74696F6E416E676C650A537461727456616C75650500000000000000B4054009 - 53746F7056616C756505000000000000000000000754726967676572060F4973 - 457870616E6465643D747275650E54726967676572496E766572736506104973 - 457870616E6465643D66616C7365000000005450463007544C61796F75740009 - 5374796C654E616D650615657870616E646572636865636B626F787374796C65 - 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 008406400B53697A652E48656967687405000000000000008404401453697A65 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 615768697465155465787453657474696E67732E576F72645772617008165465 + 787453657474696E67732E486F727A416C69676E07074C656164696E67000009 + 54436865636B426F7800095374796C654E616D650605636865636B05416C6967 + 6E07084D6F73744C6566740843616E466F637573081244697361626C65466F63 + 7573456666656374090A53697A652E57696474680500000000000000A003400B + 53697A652E4865696768740500000000000000C003401453697A652E506C6174 + 666F726D44656661756C74080756697369626C65080000005450463007544C61 + 796F757400095374796C654E616D6506126C697374626F78706C61696E686561 + 64657205416C69676E070643656E7465720A53697A652E576964746805000000 + 000000009205400B53697A652E4865696768740500000000000000D003401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F726465720214000A5452656374616E676C6500095374796C654E616D6506 + 0A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F720709784646324432443244064C6F636B65640907486974546573 + 74080A53697A652E576964746805000000000000009205400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000005 + 545465787400095374796C654E616D6506047465787405416C69676E0706436C + 69656E74064C6F636B6564090748697454657374080C4D617267696E732E4C65 + 66740500000000000000A001400B4D617267696E732E546F7005000000000000 + 008000400D4D617267696E732E52696768740500000000000000A001400E4D61 + 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 + 74680500000000000000FC04400B53697A652E48656967687405000000000000 + 00B003401453697A652E506C6174666F726D44656661756C7408165465787453 + 657474696E67732E466F6E74436F6C6F720708636C6157686974650000005450 + 463007544C61796F757400095374796C654E616D650609677269647374796C65 + 05416C69676E070643656E7465720A53697A652E5769647468050000000000FF + FFE905400B53697A652E48656967687405000000000000008306401453697A65 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 - 64657202520007544C61796F75740005416C69676E07044C6566740A53697A65 - 2E57696474680500000000000000C003400B53697A652E486569676874050000 - 00000000008404401453697A652E506C6174666F726D44656661756C74080005 - 54506174680005416C69676E0706436C69656E7409446174612E506174680AD8 - 0100002700000000000000FEC8BA4402E79244020000002592AD4402E7924402 - 0000006D5BA544FEB09E44020000006D5BA544FEB09E440200000093A4A4446A - 0C9F44020000004A80AC44FC79AA4402000000046EBA44FC79AA44020000004A - 00C844FC79AA44020000000080CF44FEB09E44020000000080CF44FEB09E4402 - 0000000080CF44FEB09E44020000004C5BC84402E7924402000000FEC8BA4402 - E7924400000000FE88BA44FE30974402000000B876BF44FE3097440200000002 - 77C344EEA09A44020000000277C34404DE9E44020000000277C344121BA34402 - 000000B876BF44008CA64402000000FE88BA44008CA644020000004C9BB54400 - 8CA64402000000009CB144121BA34402000000009CB14404DE9E440200000000 - 9CB144EEA09A44020000004C9BB544FE30974402000000FE88BA44FE30974400 - 0000000080BA44045E9B4402000000146EB844045E9B440200000000C0B64454 - F79C440200000000C0B64400F09E440200000000C0B644ACE8A0440200000014 - 6EB844FC81A244020000000080BA44FC81A24402000000EC91BC44FC81A24402 - 0000000040BE44ACE8A044020000000040BE4400F09E44020000000040BE4454 - F79C4402000000EC91BC44045E9B44020000000080BA44045E9B440A46696C6C - 2E436F6C6F7207097836303030303030300748697454657374080C4D61726769 - 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 - 0000000000008000400D4D617267696E732E5269676874050000000000000080 - 00400E4D617267696E732E426F74746F6D05000000000000008000400A53697A - 652E57696474680500000000000000A003400B53697A652E4865696768740500 - 000000000000E803401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400 - 0F54436F6C6F72416E696D6174696F6E00084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097836303030303030300953746F7056616C75650708 - 636C61426C61636B0754726967676572060E4973436865636B65643D74727565 - 00000F54436F6C6F72416E696D6174696F6E00084475726174696F6E05000000 - 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C75650708636C61426C61636B0953746F7056616C756507 - 097836303030303030300754726967676572060F4973436865636B65643D6661 - 6C73650000000005545465787400095374796C654E616D650604746578740541 - 6C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D61 - 7267696E732E4C65667405000000000000008002400B4D617267696E732E546F - 7005000000000000008000400D4D617267696E732E5269676874050000000000 - 000080FF3F0A53697A652E57696474680500000000000000C605400B53697A65 - 2E4865696768740500000000000000F803401453697A652E506C6174666F726D - 44656661756C7408165465787453657474696E67732E466F6E74436F6C6F7207 - 09784646454545454545165465787453657474696E67732E486F727A416C6967 - 6E07074C656164696E670000005450463007544C61796F757400095374796C65 - 4E616D65060A70616E656C7374796C6505416C69676E070643656E7465720A53 - 697A652E57696474680500000000000000C006400B53697A652E486569676874 - 0500000000000000A406401453697A652E506C6174666F726D44656661756C74 - 080756697369626C6508085461624F726465720258000A5452656374616E676C - 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 - 436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A53 - 697A652E57696474680500000000000000C006400B53697A652E486569676874 - 0500000000000000A406401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C61796F - 757400095374796C654E616D65061970726F67726573736261726D696E696572 - 726F727374796C6505416C69676E070643656E7465720A53697A652E57696474 - 6805000000000033338505400B53697A652E4865696768740500000000009999 - E104401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F726465720224000A5452656374616E676C6500095374796C65 - 4E616D65060668747261636B05416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 - 7374080A53697A652E576964746805000000000033338505400B53697A652E48 - 65696768740500000000009999E104401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000A545265637461 - 6E676C6500095374796C654E616D65060A68696E64696361746F7205416C6967 - 6E07044C6566740A46696C6C2E436F6C6F720709784646453232413241064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000000 - 00C804400B53697A652E4865696768740500000000009999E104401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E650000000A5452656374616E676C6500095374796C654E616D6506067674 - 7261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 - 09784646343034303430064C6F636B6564090748697454657374080A53697A65 - 2E576964746805000000000033338505400B53697A652E486569676874050000 - 0000009999E104401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000A5452656374616E676C6500095374 - 796C654E616D65060A76696E64696361746F7205416C69676E0706426F74746F - 6D0A46696C6C2E436F6C6F720709784646453232413241064C6F636B65640907 - 48697454657374080A506F736974696F6E2E5905000000000099998D04400A53 - 697A652E576964746805000000000033338505400B53697A652E486569676874 - 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E65000000005450463007544C6179 - 6F757400095374796C654E616D65061470726F67726573736261726D696E6973 - 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 - 00000033338505400B53697A652E4865696768740500000000009999E1044014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F726465720219000A5452656374616E676C6500095374796C654E616D65 - 060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F - 6C6F720709784646343034303430064C6F636B6564090748697454657374080A - 53697A652E576964746805000000000033338505400B53697A652E4865696768 - 740500000000009999E104401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E676C65 - 00095374796C654E616D65060A68696E64696361746F7205416C69676E07044C - 6566740A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564 - 090748697454657374080A53697A652E57696474680500000000000000C80440 + 6465720215000C5442727573684F626A65637400095374796C654E616D650618 + 416C7465726E6174696E67526F774261636B67726F756E640B42727573682E43 + 6F6C6F72070978333237383738373800000C5442727573684F626A6563740009 + 5374796C654E616D6506086C696E6566696C6C0B42727573682E436F6C6F7207 + 0978464631353135313500000A5452656374616E676C6500095374796C654E61 + 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646323032303230064C6F636B65640907486974 + 54657374080C50616464696E672E4C65667405000000000000008000400B5061 + 6464696E672E546F7005000000000000008000400D50616464696E672E526967 + 687405000000000000008000400E50616464696E672E426F74746F6D05000000 + 000000008000400A53697A652E5769647468050000000000FFFFE905400B5369 + 7A652E48656967687405000000000000008306401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 313500075448656164657200095374796C654E616D6506066865616465720553 + 696465730B03546F70044C65667406426F74746F6D0552696768740005416C69 + 676E0703546F700A506F736974696F6E2E5805000000000000008000400A506F + 736974696F6E2E5905000000000000008000400A53697A652E57696474680500 + 00000000FFFFE105400B53697A652E4865696768740500000000000000A80340 + 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 + 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 + 6E740C436C69704368696C6472656E090A53697A652E57696474680500000000 + 00FFFFC105400B53697A652E4865696768740500000000000000B40540145369 + 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 + 095374796C654E616D65060973656C656374696F6E0A46696C6C2E436F6C6F72 + 07097846463241383245320748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 650605666F6375730A46696C6C2E436F6C6F7207097841463241383245320748 + 697454657374080C4D617267696E732E4C656674050000000000000080FF3F0B + 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 + 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 + 00000000000080FF3F0A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650759 + 5261646975730500000000000000C000400000000A545363726F6C6C42617200 + 095374796C654E616D65060A767363726F6C6C62617205416C69676E07055269 + 6768740B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E0708566572746963616C0A506F736974696F6E2E580500000000 + 00FFFFC505400A506F736974696F6E2E590500000000000000B803400A53697A + 652E576964746805000000000000008003400B53697A652E4865696768740500 + 000000000000B405401453697A652E506C6174666F726D44656661756C740800 + 000A545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C + 62617205416C69676E0706426F74746F6D0B536D616C6C4368616E6765050000 + 00000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C + 0A506F736974696F6E2E5805000000000000008000400A506F736974696F6E2E + 590500000000000000E205400A53697A652E5769647468050000000000FFFFE1 + 05400B53697A652E48656967687405000000000000008003401453697A652E50 + 6C6174666F726D44656661756C740800000F54536D616C6C5363726F6C6C4261 + 7200095374796C654E616D65060F76736D616C6C7363726F6C6C62617205416C + 69676E070552696768740B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E732E + 4C65667405000000000000008000400A506F736974696F6E2E58050000000000 + 0000C605400A506F736974696F6E2E5905000000000000008000400A53697A65 + 2E576964746805000000000000008002400B53697A652E486569676874050000 + 00000000008002401453697A652E506C6174666F726D44656661756C74080756 + 697369626C650800000F54536D616C6C5363726F6C6C42617200095374796C65 + 4E616D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74 + 746F6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E + 746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F700500 + 0000000000008000400A506F736974696F6E2E5805000000000000008000400A + 506F736974696F6E2E590500000000000000E205400A53697A652E5769647468 + 05000000000000009606400B53697A652E486569676874050000000000000080 + 02401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08000000005450463007544C61796F757400095374796C654E616D65060F6865 + 616465726974656D7374796C6505416C69676E070643656E7465720A53697A65 + 2E576964746805000000000000009205400B53697A652E486569676874050000 + 0000000000D003401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F726465720216000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F720709784646344334433443064C6F636B + 6564090748697454657374080A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 + 46313531353135000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650615686561646572436F6C6F72416E696D6174696F6E31084475726174 + 696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C + 6C2E436F6C6F720A537461727456616C75650709784646344334433443095374 + 6F7056616C756507097846463241383245320754726967676572060E49735072 + 65737365643D747275650E54726967676572496E7665727365060F4973507265 + 737365643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D6506166865616465725374726F6B65416E696D6174696F6E3108 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 + 313531350953746F7056616C7565070978464632413832453207547269676765 + 72060E4973507265737365643D747275650E54726967676572496E7665727365 + 060F4973507265737365643D66616C736500000005545465787400095374796C + 654E616D6506047465787405416C69676E0706436C69656E74064C6F636B6564 + 090748697454657374080C4D617267696E732E4C6566740500000000000000A0 + 01400B4D617267696E732E546F7005000000000000008000400D4D617267696E + 732E52696768740500000000000000A001400E4D617267696E732E426F74746F + 6D05000000000000008000400A53697A652E57696474680500000000000000FC + 04400B53697A652E4865696768740500000000000000B003401453697A652E50 + 6C6174666F726D44656661756C7408165465787453657474696E67732E466F6E + 74436F6C6F720708636C6157686974650000005450463007544C61796F757400 + 095374796C654E616D65061070726F67726573736261727374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000003333850540 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 00000A5452656374616E676C6500095374796C654E616D65060676747261636B + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 17000A5452656374616E676C6500095374796C654E616D65060668747261636B 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 - 343034303430064C6F636B6564090748697454657374080A53697A652E576964 + 323032303230064C6F636B6564090748697454657374080A53697A652E576964 746805000000000033338505400B53697A652E48656967687405000000000099 - 99E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E - 616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A4669 - 6C6C2E436F6C6F720709784646324138324532064C6F636B6564090748697454 - 657374080A506F736974696F6E2E5905000000000099998D04400A53697A652E - 576964746805000000000033338505400B53697A652E48656967687405000000 - 00000000A803401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F757400 - 095374796C654E616D65060D657870616E6465727374796C6505416C69676E07 - 0643656E7465720A53697A652E576964746805000000000000C08407400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F72646572023B000A - 5452656374616E676C6500095374796C654E616D65060B626772656374616E67 - 6C6505416C69676E0708436F6E74656E74730C436C69704368696C6472656E09 - 0A46696C6C2E436F6C6F720709784646324432443244064C6F636B6564090748 - 697454657374080A53697A652E576964746805000000000000C08407400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 - 31350007544C61796F757400095374796C654E616D6506074C61796F75743305 - 416C69676E0703546F700A53697A652E576964746805000000000000C0840740 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080007544C61796F757400095374796C654E616D - 6506074C61796F75743405416C69676E0708436F6E74656E74730A53697A652E - 576964746805000000000000C08407400B53697A652E48656967687405000000 - 00000000C803401453697A652E506C6174666F726D44656661756C7408000A54 - 52656374616E676C6500095374796C654E616D65060A52656374616E676C6532 - 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 - 323532353235064C6F636B6564090748697454657374080A53697A652E576964 - 746805000000000000C08407400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F72070978464631353135313500000A5452656374616E676C6500 - 095374796C654E616D65060A52656374616E676C653105416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F720709784646313531353135064C6F63 - 6B6564090748697454657374080A53697A652E576964746805000000000000C0 - 8407400B53697A652E4865696768740500000000000000C803401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000F54466C6F6174416E696D6174696F6E00095374796C654E616D650614 - 466C6F6174416E696D6174696F6E315374796C65084475726174696F6E050000 - 0000009A9999FD3F0D496E746572706F6C6174696F6E070843697263756C6172 - 0C50726F70657274794E616D6506075363616C652E580A537461727456616C75 - 65050000000000000080FF3F0953746F7056616C756505000000000000000000 - 000754726967676572060F4973457870616E6465643D747275650E5472696767 - 6572496E766572736506104973457870616E6465643D66616C73650000000007 - 544C61796F757400095374796C654E616D6506074C61796F75743305416C6967 - 6E0708436F6E74656E74730A53697A652E576964746805000000000000C08407 - 400B53697A652E4865696768740500000000000000C803401453697A652E506C - 6174666F726D44656661756C74080005545465787400095374796C654E616D65 - 06047465787405416C69676E07044C656674084175746F53697A65090A436C69 - 70506172656E7409064C6F636B6564090748697454657374080C4D617267696E - 732E4C6566740500000000000000A002400A506F736974696F6E2E5805000000 - 00000000A002400A53697A652E57696474680500000000000018D103400B5369 - 7A652E4865696768740500000000000060FF02401453697A652E506C6174666F - 726D44656661756C74080454657874060454657874165465787453657474696E + 99E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F720709784646313531353135000A5452656374616E676C650009 + 5374796C654E616D65060A68696E64696361746F7205416C69676E07044C6566 + 740A46696C6C2E436F6C6F720709784646324138324532064C6F636B65640907 + 48697454657374080C4D617267696E732E4C656674050000000000000080FF3F + 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E + 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F + 0A506F736974696F6E2E59050000000000000080FF3F0A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000009999 + D904401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E650000000A5452656374616E676C6500095374796C65 + 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000A + 5452656374616E676C6500095374796C654E616D65060A76696E64696361746F + 7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B6564090748697454657374080C4D617267696E732E4C + 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F + 6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000000099 + 998904400A53697A652E576964746805000000000033338105400B53697A652E + 4865696768740500000000000000A803401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046 + 3007544C61796F757400095374796C654E616D65061170726F67726573736365 + 6C6C7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000F805400B53697A652E4865696768740500000000000000FC + 05401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F7264657202180007544C61796F757400095374796C654E616D65 + 060668747261636B05416C69676E0708436F6E74656E7473064C6F636B656409 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E57696474680500000000000000F005400B53697A652E4865 + 696768740500000000000000F405401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C6500095374796C654E616D65060A6869 + 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 + 09784646324138324532064C6F636B6564090748697454657374080C4D617267 + 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + 8000400E4D617267696E732E426F74746F6D05000000000000008000400A506F + 736974696F6E2E5805000000000000008000400A506F736974696F6E2E590500 + 0000000000008000400A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000EC05401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 + 00005450463007544C61796F757400095374796C654E616D6506106D656E7562 + 61726974656D7374796C6505416C69676E070643656E7465720C4D617267696E + 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 + 2E576964746805000000000000009205400B53697A652E486569676874050000 + 0000000000D003401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F726465720219000A5452656374616E676C650005 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 + 4138324532074869745465737408074F70616369747905000000000017B7D1F1 + 3F0A53697A652E576964746805000000000000009205400B53697A652E486569 + 6768740500000000000000D003401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E + 696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572060F497353656C65637465643D747275650E54726967676572496E + 76657273650610497353656C65637465643D66616C73650000000A5452656374 + 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 + 676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632413832 + 4532074869745465737408074F70616369747905000000000017B7D1F13F0A53 + 697A652E576964746805000000000000009205400B53697A652E486569676874 + 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D61 + 74696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F706572 + 74794E616D6506074F7061636974790A537461727456616C7565050000000000 + 00000000000953746F7056616C7565050000000000000080FF3F075472696767 + 6572061049734D6F7573654F7665723D747275650E54726967676572496E7665 + 727365061149734D6F7573654F7665723D66616C736500000007544C61796F75 + 7400095374796C654E616D650605676C79706805416C69676E07044C6566740A + 53697A652E57696474680500000000000000C803400B53697A652E4865696768 + 740500000000000000D003401453697A652E506C6174666F726D44656661756C + 74080007544C61796F757400095374796C654E616D650609636865636B6D6172 + 6B05416C69676E0708436F6E74656E7473074F7061636974790500000000006F + 1283F53F0A53697A652E57696474680500000000000000C803400B53697A652E + 4865696768740500000000000000D003401453697A652E506C6174666F726D44 + 656661756C7408000554506174680005416C69676E070643656E746572094461 + 74612E506174680A58000000070000000000000056D9524391AE2C4301000000 + 9276664365021643010000009F3983432B7C3C43010000009E9AA64382D2B442 + 010000006F1CB04375A4D1420100000026DF8243263F67430300000056D95243 + 91AE2C430A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080A53697A652E57696474680500000000000000B002400B53697A652E4865 + 696768740500000000000000B002401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174 + 416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D6506074F7061636974790A537461727456616C756505 + 000000000000000000000953746F7056616C7565050000000000000080FF3F07 + 54726967676572060E4973436865636B65643D747275650E5472696767657249 + 6E7665727365060F4973436865636B65643D66616C73650000000654476C7970 + 6800095374796C654E616D65060A676C7970687374796C650C4D617267696E73 + 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 + 000000008000400D4D617267696E732E52696768740500000000000000C00040 + 0E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69676E + 070552696768740A53697A652E576964746805000000000000008003400B5369 + 7A652E48656967687405000000000000008003401453697A652E506C6174666F + 726D44656661756C740800000654496D61676500095374796C654E616D650606 + 6269746D61700E4D756C74695265734269746D61700E01000005416C69676E07 + 08436F6E74656E74730C4D617267696E732E4C65667405000000000000008000 + 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 + 2E526967687405000000000000008000400E4D617267696E732E426F74746F6D + 05000000000000008000400A53697A652E57696474680500000000000000A803 + 400B53697A652E4865696768740500000000000000B003401453697A652E506C + 6174666F726D44656661756C740800000005545465787400095374796C654E61 + 6D6506047465787405416C69676E07044C656674064C6F636B65640907486974 + 54657374080C4D617267696E732E4C65667405000000000000008002400D4D61 + 7267696E732E526967687405000000000000008002400A506F736974696F6E2E + 5805000000000000008404400A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000D003401453697A652E50 + 6C6174666F726D44656661756C7408165465787453657474696E67732E466F6E + 74436F6C6F720708636C615768697465165465787453657474696E67732E486F + 727A416C69676E07074C656164696E67000005545465787400095374796C654E + 616D65060873686F727463757405416C69676E07055269676874064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + C002400D4D617267696E732E52696768740500000000000000C001400A506F73 + 6974696F6E2E580500000000000000C000C00A53697A652E5769647468050000 + 0000000000C804400B53697A652E4865696768740500000000000000D0034014 + 53697A652E506C6174666F726D44656661756C7408165465787453657474696E 67732E466F6E74436F6C6F720708636C61576869746516546578745365747469 - 6E67732E486F727A416C69676E07074C656164696E670000000F54457870616E - 646572427574746F6E00095374796C654E616D650606627574746F6E05416C69 - 676E07055269676874064C6F636B6564090A506F736974696F6E2E5805000000 - 00000080F506400A53697A652E57696474680500000000000000A003400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C740800000000005450463007544C61796F75740009537479 - 6C654E616D650615616E69696E64696361746F72686F727A7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000040C006 - 400B53697A652E48656967687405000000000000008000401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 023D000A5452656374616E676C6500095374796C654E616D65060A5265637461 - 6E676C653105416C69676E0706436C69656E740C436C69704368696C6472656E - 090A46696C6C2E436F6C6F7207097846463430343034300A53697A652E576964 - 74680500000000000040C006400B53697A652E48656967687405000000000000 - 008000401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650005544C696E6500095374796C654E616D650605 - 4C696E6531084C696E65547970650706426F74746F6D0A53697A652E57696474 - 680500000000000000A00B400B53697A652E4865696768740500000000000000 - 8000401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 - 2E436F6C6F720709784646324138324532105374726F6B652E546869636B6E65 - 737305000000000000008002400B5374726F6B652E4461736807044461736800 - 0F54466C6F6174416E696D6174696F6E00095374796C654E616D650603616E69 - 07456E61626C656409084475726174696F6E0500000000000000800340044C6F - 6F70090C50726F70657274794E616D65060A506F736974696F6E2E580A537461 - 727456616C75650500000000000000C808C00953746F7056616C756505000000 - 000000000000000754726967676572060E497356697369626C653D7472756500 - 000000005450463007544C61796F757400095374796C654E616D65060E6C6F67 - 627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E57 - 696474680500000000000000C005400B53697A652E4865696768740500000000 - 000000C005401453697A652E506C6174666F726D44656661756C740807566973 - 69626C6508085461624F726465720243000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E - 740C436C69704368696C6472656E090A436C6970506172656E74090A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E - 57696474680500000000000000C005400B53697A652E48656967687405000000 - 00000000C005401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E - 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F - 6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 30323032300953746F7056616C75650709784646343034303430075472696767 - 6572063049734D6F7573654F7665723D747275653B4973507265737365643D66 - 616C73653B4973466F63757365643D66616C73650E54726967676572496E7665 - 727365063149734D6F7573654F7665723D66616C73653B497350726573736564 - 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72 - 416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C - 756507097846463430343034300953746F7056616C7565070978464631373537 - 39430754726967676572062F4973507265737365643D747275653B49734D6F75 - 73654F7665723D747275653B4973466F63757365643D66616C736500000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E - 436F6C6F72416E696D6174696F6E33084475726174696F6E050000000000CDCC - CCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463241383245320953746F7056616C756507097846 - 463137353739430754726967676572062E4973507265737365643D747275653B - 49734D6F7573654F7665723D747275653B4973466F63757365643D747275650E - 54726967676572496E7665727365062F4973507265737365643D66616C73653B - 49734D6F7573654F7665723D747275653B4973466F63757365643D7472756500 - 0005545061746800095374796C654E616D650605506174683105416C69676E07 - 06436C69656E7409446174612E506174680A5C02000032000000000000000000 - A841CDCCCC40010000000000A8410000C041010000000000C03F0000C0410100 - 00000000C03F00000000010000009A99694100000000010000000000A841CDCC - CC40030000000000A841CDCCCC400000000000009C410000F040010000000000 - 58410000F04001000000000058410000C03F01000000000040400000C03F0100 - 0000000040400000B4410100000000009C410000B4410100000000009C410000 - F0400300000000009C410000F04000000000000040410000F040010000000000 - 90400000F04001000000000090400000C04001000000000040410000C0400100 - 0000000040410000F04003000000000040410000F04000000000000090400000 - 1041010000000000904100001041010000000000904100002841010000000000 - 9040000028410100000000009040000010410300000000009040000010410000 - 0000000090400000404101000000000090410000404101000000000090410000 - 5841010000000000904000005841010000000000904000004041030000000000 - 9040000040410000000000009040000070410100000000009041000070410100 - 0000000090410000844101000000000090400000844101000000000090400000 - 7041030000000000904000007041000000000000904000009041010000000000 - 904100009041010000000000904100009C41010000000000904000009C410100 - 0000000090400000904103000000000090400000904100000000000070410000 - C04001000000333393410000C040010000000000704166662640010000000000 - 70410000C04003000000000070410000C0400A46696C6C2E436F6C6F72070863 - 6C6157686974650748697454657374080C4D617267696E732E4C656674050000 - 0000000000A002400B4D617267696E732E546F700500000000000000A002400D - 4D617267696E732E52696768740500000000000000A002400E4D617267696E73 - 2E426F74746F6D0500000000000000A002400A53697A652E5769647468050000 - 00000000009805400B53697A652E486569676874050000000000000098054014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E6508577261704D6F64650703466974000000005450463007544C - 61796F757400095374796C654E616D65061B7472656576696577657870616E64 - 6572627574746F6E7374796C6505416C69676E070643656E7465720B4D617267 - 696E732E546F70050000000000000080FF3F0A53697A652E5769647468050000 - 0000000000B003400B53697A652E4865696768740500000000000000B0034014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F7264657202470005545061746800095374796C654E616D650605506174 - 683105416C69676E070643656E74657209446174612E506174680A3400000004 - 000000000000000000C8420000C84201000000000096430000C8420100000000 - 00484300009643030000000000C8420000C8420A46696C6C2E436F6C6F720708 - 636C6157686974650748697454657374080D526F746174696F6E416E676C6505 - 00000000000000B405C00A53697A652E57696474680500000000000000A00240 - 0B53697A652E4865696768740500000000000000C001401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 0F54466C6F6174416E696D6174696F6E00095374796C654E616D650614466C6F - 6174416E696D6174696F6E315374796C65084475726174696F6E050000000000 - 00000000000D496E746572706F6C6174696F6E070843697263756C61720C5072 - 6F70657274794E616D65060D526F746174696F6E416E676C650A537461727456 - 616C75650500000000000000B405C00953746F7056616C756505000000000000 - 000000000754726967676572060F4973457870616E6465643D747275650E5472 - 6967676572496E766572736506104973457870616E6465643D66616C73650000 - 0000545046300A5452656374616E676C6500095374796C654E616D6506117472 - 6565766965776974656D7374796C6505416C69676E070643656E746572094669 - 6C6C2E4B696E6407044E6F6E650748697454657374080553696465730B06426F - 74746F6D000A53697A652E57696474680500000000000000AE05400B53697A65 - 2E4865696768740500000000000000A004401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 0756697369626C6508000C545370656564427574746F6E00095374796C654E61 - 6D650606627574746F6E05416C69676E07044C6566740A53697A652E57696474 - 680500000000000000A003400B53697A652E4865696768740500000000000000 - A004401453697A652E506C6174666F726D44656661756C74080B5374796C654C - 6F6F6B7570061B7472656576696577657870616E646572627574746F6E737479 - 6C65000007544C61796F75740005416C69676E0708436F6E74656E74730C4D61 - 7267696E732E4C6566740500000000000000A003400A53697A652E5769647468 - 05000000000000008605400B53697A652E4865696768740500000000000000A0 - 04401453697A652E506C6174666F726D44656661756C7408000954436865636B - 426F7800095374796C654E616D650605636865636B05416C69676E07044C6566 - 740843616E466F637573081244697361626C65466F637573456666656374090A - 53697A652E57696474680500000000000000A003400B53697A652E4865696768 - 740500000000000000A004401453697A652E506C6174666F726D44656661756C - 740800000654476C79706800095374796C654E616D65060A676C797068737479 - 6C650C4D617267696E732E4C65667405000000000000008000400B4D61726769 - 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 - 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 - 0080FF3F05416C69676E07044C6566740A506F736974696F6E2E580500000000 - 000000B003400A506F736974696F6E2E59050000000000000080FF3F0A53697A - 652E576964746805000000000000008003400B53697A652E4865696768740500 - 0000000000009804401453697A652E506C6174666F726D44656661756C740800 - 0005545465787400095374796C654E616D6506047465787405416C69676E0706 - 436C69656E74064C6F636B6564090748697454657374080A53697A652E576964 - 74680500000000000000BC04400B53697A652E48656967687405000000000000 - 00A004401453697A652E506C6174666F726D44656661756C7408045465787406 - 0454657874165465787453657474696E67732E466F6E74436F6C6F720708636C - 615768697465155465787453657474696E67732E576F72645772617008165465 - 787453657474696E67732E486F727A416C69676E07074C656164696E67000000 - 0A5452656374616E676C650005416C69676E0708436F6E74656E74730946696C - 6C2E4B696E6407044E6F6E650748697454657374080E4D617267696E732E426F - 74746F6D050000000000000080FF3F0553696465730B044C656674000A53697A - 652E57696474680500000000000000AE05400B53697A652E4865696768740500 - 0000000000009C04401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646324138324532105374726F6B652E54 - 6869636B6E65737305000000000000008000400000005450463007544C61796F - 757400095374796C654E616D65060D74726565766965777374796C6505416C69 - 676E070643656E7465720A53697A652E57696474680500000000000000E10640 - 0B53697A652E48656967687405000000000000808107401453697A652E506C61 - 74666F726D44656661756C74080756697369626C6508085461624F7264657202 - 4E000C5442727573684F626A65637400095374796C654E616D650618416C7465 - 726E6174696E67526F774261636B67726F756E640B42727573682E436F6C6F72 - 070978304646464646464600000A5452656374616E676C6500095374796C654E - 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 - 7454657374080C50616464696E672E4C656674050000000000000080FF3F0D50 - 616464696E672E5269676874050000000000000080FF3F0A53697A652E576964 - 74680500000000000000E106400B53697A652E48656967687405000000000000 - 808107401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F7207097846463135313531350007544C61796F75740009537479 - 6C654E616D650607636F6E74656E7405416C69676E0706436C69656E740C436C - 69704368696C6472656E090B4D617267696E732E546F70050000000000000080 - FF3F0A53697A652E57696474680500000000000000CD06400B53697A652E4865 - 696768740500000000000000F006401453697A652E506C6174666F726D446566 - 61756C7408000A5452656374616E676C6500095374796C654E616D6506097365 - 6C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532074869 - 7454657374080A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000000000C804401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452 - 656374616E676C6500095374796C654E616D650610666F637573656473656C65 - 6374696F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454 - 657374080A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000000000C804401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B65 - 2E446173680703446F740000000A545363726F6C6C42617200095374796C654E - 616D65060A767363726F6C6C62617205416C69676E070552696768740B536D61 - 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 - 08566572746963616C0C4D617267696E732E4C65667405000000000000008000 - 400A506F736974696F6E2E580500000000000000D006400A53697A652E576964 - 746805000000000000008003400B53697A652E48656967687405000000000000 - 00F106401453697A652E506C6174666F726D44656661756C740800000A545363 - 726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261720541 - 6C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000000000 - 0000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267 - 696E732E546F7005000000000000008000400A506F736974696F6E2E58050000 - 000000000080FF3F0A506F736974696F6E2E590500000000000000F306400A53 - 697A652E57696474680500000000000000DF06400B53697A652E486569676874 - 05000000000000008003401453697A652E506C6174666F726D44656661756C74 - 0800000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F - 76736D616C6C7363726F6C6C62617205416C69676E070552696768740B536D61 - 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 - 08566572746963616C0C4D617267696E732E4C65667405000000000000008000 - 400A506F736974696F6E2E580500000000000000C605400A506F736974696F6E - 2E5905000000000000008000400A53697A652E57696474680500000000000000 - 8002400B53697A652E48656967687405000000000000008002401453697A652E - 506C6174666F726D44656661756C74080756697369626C650800000F54536D61 - 6C6C5363726F6C6C42617200095374796C654E616D65060F68736D616C6C7363 - 726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E67 - 6505000000000000000000000B4F7269656E746174696F6E070A486F72697A6F - 6E74616C0B4D617267696E732E546F7005000000000000008000400A506F7369 - 74696F6E2E5805000000000000008000400A506F736974696F6E2E5905000000 - 00000000E205400A53697A652E576964746805000000000000009606400B5369 - 7A652E48656967687405000000000000008002401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508000000005450463007544C6179 - 6F757400095374796C654E616D65061670726F677265737362617266696E6973 - 687374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 000000000033338505400B53697A652E4865696768740500000000009999E104 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F726465720240000A5452656374616E676C6500095374796C654E61 - 6D65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E - 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 - 080A53697A652E576964746805000000000033338505400B53697A652E486569 - 6768740500000000009999E104401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F720709784646313531353135000A5452 - 656374616E676C6500095374796C654E616D65060A68696E64696361746F7205 - 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846463243453234 - 34064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 + 6E67732E486F727A416C69676E07074C656164696E67000007544C61796F7574 + 00095374796C654E616D6506077375626D61726B05416C69676E070552696768 + 740A506F736974696F6E2E580500000000000000D404400A53697A652E576964 + 74680500000000000000A003400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C7408000554506174 + 680005416C69676E070643656E74657209446174612E506174680A3400000004 + 00000000000000000000000000000001000000000000000000803F0100000000 + 00803F0000003F0300000000000000000000000A46696C6C2E436F6C6F720708 + 636C615768697465064C6F636B6564090748697454657374080A53697A652E57 + 696474680500000000000000E001400B53697A652E4865696768740500000000 + 0000008002401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6500000000545046300A5452656374616E676C + 6500095374796C654E616D65060C6D656E756261727374796C6505416C69676E + 070643656E7465720C436C69704368696C6472656E090946696C6C2E4B696E64 + 07044E6F6E650748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E650756697369626C6508000A5452656374616E676C650005416C69676E + 0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032300748 + 697454657374080C4D617267696E732E4C656674050000000000000080FFBF0B + 4D617267696E732E546F70050000000000000080FFBF0D4D617267696E732E52 + 69676874050000000000000080FFBF0A53697A652E5769647468050000000000 + 0000D004400B53697A652E4865696768740500000000000000CC04401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 09784646313531353135000007544C61796F757400095374796C654E616D6506 + 07636F6E74656E7405416C69676E0706436C69656E740C4D617267696E732E4C + 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 + 6474680500000000000000C004400B53697A652E486569676874050000000000 + 0000C004401453697A652E506C6174666F726D44656661756C74080000005450 + 463007544C61796F757400095374796C654E616D65060D6D656E756974656D73 + 74796C6505416C69676E070643656E7465720C4D617267696E732E4C65667405 0000000000000080FF3F0B4D617267696E732E546F70050000000000000080FF 3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61726769 - 6E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E5805 - 0000000000000080FF3F0A506F736974696F6E2E59050000000000000080FF3F - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000009999D904401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452656374616E - 676C6500095374796C654E616D65060676747261636B05416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 - 6B6564090748697454657374080A53697A652E57696474680500000000003333 - 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 6E732E426F74746F6D050000000000000080FF3F0A53697A652E576964746805 + 000000000000009205400B53697A652E4865696768740500000000000000D003 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F726465720228000A5452656374616E676C650005416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F7207097846463241383245320748 + 69745465737408074F70616369747905000000000017B7D1F13F0A53697A652E + 576964746805000000000000009205400B53697A652E48656967687405000000 + 00000000D003401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E + 00084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 + 6D6506074F7061636974790A537461727456616C756505000000000000000000 + 000953746F7056616C7565050000000000000080FF3F0754726967676572060F + 497353656C65637465643D747275650E54726967676572496E76657273650610 + 497353656C65637465643D66616C73650000000A5452656374616E676C650009 + 5374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E + 74656E74730A46696C6C2E436F6C6F7207097846463241383245320748697454 + 65737408074F70616369747905000000000000000000000A53697A652E576964 + 746805000000000000009205400B53697A652E48656967687405000000000000 + 00D003401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000844 + 75726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70 + 657274794E616D6506074F7061636974790A537461727456616C756505000000 + 000000000000000953746F7056616C7565050000000000000080FF3F07547269 + 67676572061049734D6F7573654F7665723D747275650E54726967676572496E + 7665727365061149734D6F7573654F7665723D66616C736500000007544C6179 + 6F757400095374796C654E616D650605676C79706805416C69676E07044C6566 + 740A53697A652E57696474680500000000000000C803400B53697A652E486569 + 6768740500000000000000D003401453697A652E506C6174666F726D44656661 + 756C74080007544C61796F757400095374796C654E616D650609636865636B6D + 61726B05416C69676E0708436F6E74656E7473074F7061636974790500000000 + 006F1283F53F0A53697A652E57696474680500000000000000C803400B53697A + 652E4865696768740500000000000000D003401453697A652E506C6174666F72 + 6D44656661756C7408000554506174680005416C69676E070643656E74657209 + 446174612E506174680A58000000070000000000000056D9524391AE2C430100 + 00009276664365021643010000009F3983432B7C3C43010000009E9AA64382D2 + B442010000006F1CB04375A4D1420100000026DF8243263F67430300000056D9 + 524391AE2C430A46696C6C2E436F6C6F720708636C6157686974650748697454 + 657374080A53697A652E57696474680500000000000000B002400B53697A652E + 4865696768740500000000000000B002401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F + 6174416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D6506074F7061636974790A537461727456616C75 + 6505000000000000000000000953746F7056616C7565050000000000000080FF + 3F0754726967676572060E4973436865636B65643D747275650E547269676765 + 72496E7665727365060F4973436865636B65643D66616C73650000000654476C + 79706800095374796C654E616D65060A676C7970687374796C650C4D61726769 + 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 + 0000000000008000400D4D617267696E732E52696768740500000000000000C0 + 00400E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69 + 676E07044C6566740A53697A652E576964746805000000000000008003400B53 + 697A652E48656967687405000000000000008003401453697A652E506C617466 + 6F726D44656661756C740800000654496D61676500095374796C654E616D6506 + 066269746D61700E4D756C74695265734269746D61700E01000005416C69676E + 07044C6566740C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A506F736974696F6E2E5805000000000000008000400A50 + 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 + 00000000000000A803400B53697A652E4865696768740500000000000000B003 + 401453697A652E506C6174666F726D44656661756C7408000000055454657874 + 00095374796C654E616D6506047465787405416C69676E07044C656674064C6F + 636B6564090748697454657374080C4D617267696E732E4C6566740500000000 + 0000008002400D4D617267696E732E526967687405000000000000008002400A + 506F736974696F6E2E5805000000000000008404400A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000D0 + 03401453697A652E506C6174666F726D44656661756C74081654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746516546578745365 + 7474696E67732E486F727A416C69676E07074C656164696E6700000554546578 + 7400095374796C654E616D65060873686F727463757405416C69676E07055269 + 676874064C6F636B6564090748697454657374080C4D617267696E732E4C6566 + 740500000000000000C002400D4D617267696E732E5269676874050000000000 + 0000C001400A506F736974696F6E2E580500000000000000C000C00A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000D003401453697A652E506C6174666F726D44656661756C74081654 + 65787453657474696E67732E466F6E74436F6C6F720708636C61576869746516 + 5465787453657474696E67732E486F727A416C69676E07074C656164696E6700 + 0007544C61796F757400095374796C654E616D6506077375626D61726B05416C + 69676E070552696768740A506F736974696F6E2E580500000000000000D40440 + 0A53697A652E57696474680500000000000000A003400B53697A652E48656967 + 68740500000000000000D003401453697A652E506C6174666F726D4465666175 + 6C7408000554506174680005416C69676E070643656E74657209446174612E50 + 6174680A34000000040000000000000000000000000000000100000000000000 + 0000803F010000000000803F0000003F0300000000000000000000000A46696C + 6C2E436F6C6F720708636C615768697465064C6F636B65640907486974546573 + 74080A53697A652E57696474680500000000000000E001400B53697A652E4865 + 6967687405000000000000008002401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450463007 + 544C61796F757400095374796C654E616D6506126D656E75736570617261746F + 727374796C6505416C69676E070643656E7465720C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C804401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F72646572022A0005544C696E650005416C69676E0703546F70 + 084C696E65547970650703546F700C4D617267696E732E4C6566740500000000 + 000000C000400B4D617267696E732E546F7005000000000000008000400D4D61 + 7267696E732E52696768740500000000000000C000400A506F736974696F6E2E + 580500000000000000C000400A506F736974696F6E2E59050000000000000080 + 00400A53697A652E57696474680500000000000000B004400B53697A652E4865 + 69676874050000000000000080FF3F1453697A652E506C6174666F726D446566 + 61756C74080C5374726F6B652E436F6C6F720709784646313531353135000000 + 545046300A5452656374616E676C6500095374796C654E616D65060D6D656E75 + 766965777374796C6505416C69676E070643656E7465720A46696C6C2E436F6C + 6F7207097846463230323032300A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 4646313531353135000A5452656374616E676C6500095374796C654E616D6506 - 0A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E43 - 6F6C6F720709784646324345323434064C6F636B656409074869745465737408 - 0C4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E73 - 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 - 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 - FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F - 6E2E5905000000000099998904400A53697A652E576964746805000000000033 - 338105400B53697A652E4865696768740500000000000000A803401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E65000000005450463007544C61796F757400095374796C654E616D65061A - 70726F67726573736261726D696E6966696E6973687374796C6505416C69676E - 070643656E7465720A53697A652E576964746805000000000033338505400B53 - 697A652E4865696768740500000000009999E104401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572024B00 - 0A5452656374616E676C6500095374796C654E616D65060668747261636B0541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430 - 34303430064C6F636B6564090748697454657374080A53697A652E5769647468 - 05000000000033338505400B53697A652E4865696768740500000000009999E1 - 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000A5452656374616E676C6500095374796C654E616D - 65060A68696E64696361746F7205416C69676E07044C6566740A46696C6C2E43 - 6F6C6F720709784646324345323434064C6F636B656409074869745465737408 - 0A53697A652E57696474680500000000000000C804400B53697A652E48656967 - 68740500000000009999E104401453697A652E506C6174666F726D4465666175 - 6C74080B5374726F6B652E4B696E6407044E6F6E650000000A5452656374616E - 676C6500095374796C654E616D65060676747261636B05416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F63 - 6B6564090748697454657374080A53697A652E57696474680500000000003333 - 8505400B53697A652E4865696768740500000000009999E104401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E65000A5452656374616E676C6500095374796C654E616D65060A76696E6469 - 6361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F720709 - 784646324345323434064C6F636B6564090748697454657374080A506F736974 - 696F6E2E5905000000000099998D04400A53697A652E57696474680500000000 - 0033338505400B53697A652E4865696768740500000000000000A80340145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E65000000005450463007544C61796F757400095374796C654E616D65 - 061177696E646F77626F726465727374796C6505416C69676E070643656E7465 - 720A53697A652E576964746805000000000056D5AF07400B53697A652E486569 - 6768740500000000000000B306401453697A652E506C6174666F726D44656661 - 756C7408085461624F726465720239000A5452656374616E676C650009537479 - 6C654E616D6506046D61736B05416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F7207097846463130313031300A53697A652E5769647468050000 - 00000056D5AF07400B53697A652E4865696768740500000000000000B3064014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E650756697369626C6508000007544C61796F757400095374796C - 654E616D6506046C65667405416C69676E07084D6F73744C656674064C6F636B - 6564090A506F736974696F6E2E5905000000000000008004400A53697A652E57 - 6964746805000000000000008001400B53697A652E4865696768740500000000 - 0000009306401453697A652E506C6174666F726D44656661756C7408000A5452 - 656374616E676C650005416C69676E07084D6F73744C6566740A46696C6C2E43 - 6F6C6F7207097846463230323032300748697454657374080553696465730B04 - 4C656674055269676874000A53697A652E576964746805000000000000008001 - 400B53697A652E48656967687405000000000000008F06401453697A652E506C + 46463135313531350756697369626C6508000A5452656374616E676C65000541 + 6C69676E0706436C69656E740A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 - 31353135313500000A5452656374616E676C6500095374796C654E616D65060A - 52656374616E676C653105416C69676E070A4D6F7374426F74746F6D13456E61 - 626C6544726167486967686C69676874080A46696C6C2E436F6C6F7207097846 - 463230323032300748697454657374080A506F736974696F6E2E590500000000 - 0000008F06400553696465730B044C65667406426F74746F6D000A53697A652E - 576964746805000000000000008001400B53697A652E48656967687405000000 - 000000008001401453697A652E506C6174666F726D44656661756C74080C5374 - 726F6B652E436F6C6F7207097846463135313531350007544C61796F75740009 - 5374796C654E616D6506074C61796F75743305416C69676E07094D6F73745269 - 6768740A506F736974696F6E2E580500000000000000C000400A53697A652E57 - 69647468050000000000000080FF3F0B53697A652E4865696768740500000000 - 0000008001401453697A652E506C6174666F726D44656661756C7408000A5452 - 656374616E676C6500095374796C654E616D65060A52656374616E676C653105 - 416C69676E0703546F700A46696C6C2E436F6C6F720709784646313531353135 - 0748697454657374080A53697A652E5769647468050000000000000080FF3F0B - 53697A652E486569676874050000000000000080FF3F1453697A652E506C6174 - 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000 - 00000007544C61796F757400095374796C654E616D650605726967687405416C - 69676E07094D6F73745269676874064C6F636B6564090A506F736974696F6E2E - 5805000000000056D5AD07400A506F736974696F6E2E59050000000000000080 - 04400A53697A652E576964746805000000000000008001400B53697A652E4865 - 6967687405000000000000009306401453697A652E506C6174666F726D446566 - 61756C7408000A5452656374616E676C650005416C69676E07094D6F73745269 - 6768740A46696C6C2E436F6C6F72070978464632303230323007486974546573 - 74080553696465730B044C656674055269676874000A53697A652E5769647468 - 05000000000000008001400B53697A652E48656967687405000000000000008F - 06401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313500000A5452656374616E676C65000953 - 74796C654E616D65060A52656374616E676C653105416C69676E070A4D6F7374 - 426F74746F6D13456E61626C6544726167486967686C69676874080A46696C6C - 2E436F6C6F7207097846463230323032300748697454657374080A506F736974 - 696F6E2E5905000000000000008F06400553696465730B06426F74746F6D0552 - 69676874000A53697A652E576964746805000000000000008001400B53697A65 + 313531353135000D54536861646F77456666656374000844697374616E636505 + 00000000000000C0004009446972656374696F6E0500000000000000B4044008 + 536F66746E657373050000000000000080FE3F074F7061636974790500000000 + 00000080FE3F0B536861646F77436F6C6F720708636C61426C61636B00000007 + 544C61796F757400095374796C654E616D650607636F6E74656E7405416C6967 + 6E0706436C69656E740C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000000000C004 + 400B53697A652E4865696768740500000000000000C004401453697A652E506C + 6174666F726D44656661756C74080000005450463007544C61796F7574000953 + 74796C654E616D65060E696D61676563656C6C7374796C6505416C69676E0706 + 43656E7465720756697369626C6508085461624F72646572022B000654496D61 + 676500095374796C654E616D650605696D6167650E4D756C7469526573426974 + 6D61700E01000005416C69676E0706436C69656E74064C6F636B656409074869 + 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D + 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 + 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 + 000000000080FF3F0A53697A652E57696474680500000000000000C004400B53 + 697A652E4865696768740500000000000000C004401453697A652E506C617466 + 6F726D44656661756C74080000005450463007544C61796F757400095374796C + 654E616D65060E706F70757063656C6C7374796C6505416C69676E070643656E + 7465720756697369626C6508085461624F72646572022C0007544C61796F7574 + 0005416C69676E070552696768740A506F736974696F6E2E5805000000000000 + 008C04400A53697A652E57696474680500000000000000F002400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C7408000554506174680005416C69676E070643656E746572094461 + 74612E506174680A400000000500000000000000000000000000803F01000000 + 0000803F0000803F010000000000003F0000000001000000000000000000803F + 0300000000000000000000000A46696C6C2E436F6C6F720708636C6157686974 + 650748697454657374080B4D617267696E732E546F700500000000000000E001 + C00A53697A652E576964746805000000000000008002400B53697A652E486569 + 67687405000000000000008001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000554506174680005 + 416C69676E070643656E74657209446174612E506174680A3400000004000000 + 000000000000000000000000010000000000803F00000000010000000000003F + 0000803F0300000000000000000000000A46696C6C2E436F6C6F720708636C61 + 57686974650748697454657374080B4D617267696E732E546F70050000000000 + 0000C001400A53697A652E576964746805000000000000008002400B53697A65 2E48656967687405000000000000008001401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 0007544C61796F757400095374796C654E616D6506074C61796F75743305416C - 69676E07084D6F73744C6566740A53697A652E57696474680500000000000000 - 80FF3F0B53697A652E48656967687405000000000000008001401453697A652E + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E74064C6F636B6564090748697454657374080C4D617267696E732E4C656674 + 0500000000000000A001400B4D617267696E732E546F70050000000000000080 + 00400D4D617267696E732E52696768740500000000000000A001400E4D617267 + 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 + 0500000000000000C803400B53697A652E4865696768740500000000000000B8 + 04401453697A652E506C6174666F726D44656661756C74081654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746500000054504630 + 07544C61796F757400095374796C654E616D65060D7465787463656C6C737479 + 6C6505416C69676E070643656E7465720756697369626C6508085461624F7264 + 6572022D0007544C61796F757400095374796C654E616D650607636F6E74656E + 7405416C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E + 732E4C65667405000000000000008001400B4D617267696E732E546F70050000 + 00000000008001400D4D617267696E732E526967687405000000000000008001 + 400E4D617267696E732E426F74746F6D05000000000000008001400A53697A65 + 2E57696474680500000000000000A804400B53697A652E486569676874050000 + 0000000000A804401453697A652E506C6174666F726D44656661756C74080000 + 0C5442727573684F626A65637400095374796C654E616D65060A666F72656772 + 6F756E6400000C5442727573684F626A65637400095374796C654E616D650609 + 73656C656374696F6E0B42727573682E436F6C6F720709783936324138324532 + 00000B54466F6E744F626A65637400095374796C654E616D650604666F6E7400 + 00005450463007544C61796F757400095374796C654E616D6506096D656D6F73 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 000000CCCC8806400B53697A652E4865696768740500000000006666F4054014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F72646572022E000C5442727573684F626A65637400095374796C654E61 + 6D65060A666F726567726F756E6400000C5442727573684F626A656374000953 + 74796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F7207 + 0978374634343735394400000B54466F6E744F626A65637400095374796C654E + 616D650604666F6E7400000A5452656374616E676C6500095374796C654E616D + 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F7207097846463230323032300748697454657374080A53697A + 652E5769647468050000000000CCCC8806400B53697A652E4865696768740500 + 000000006666F405401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F7207097846463135313531350007544C61796F7574 + 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 + 6E740C4D617267696E732E4C65667405000000000000008000400B4D61726769 + 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 + 000000000000008000400E4D617267696E732E426F74746F6D05000000000000 + 008000400A53697A652E57696474680500000000009899E905400B53697A652E + 4865696768740500000000006666CC05401453697A652E506C6174666F726D44 + 656661756C740800000A545363726F6C6C42617200095374796C654E616D6506 + 0A687363726F6C6C62617205416C69676E0706426F74746F6D06437572736F72 + 070763724172726F770B536D616C6C4368616E67650500000000000000000000 + 0B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F736974696F + 6E2E590500000000006666D405400A53697A652E5769647468050000000000CC + CC8806400B53697A652E48656967687405000000000000008003401453697A65 + 2E506C6174666F726D44656661756C740800000A545363726F6C6C4261720009 + 5374796C654E616D65060A767363726F6C6C62617205416C69676E0705526967 + 687406437572736F72070763724172726F770B536D616C6C4368616E67650500 + 0000000000000000000B4F7269656E746174696F6E0708566572746963616C0A + 506F736974696F6E2E580500000000009899F105400A53697A652E5769647468 + 05000000000000008003400B53697A652E4865696768740500000000006666D4 + 05401453697A652E506C6174666F726D44656661756C7408000007544C61796F + 75740005416C69676E0706436C69656E740A53697A652E576964746805000000 + 00009899F105400B53697A652E4865696768740500000000006666D405401453 + 697A652E506C6174666F726D44656661756C7408000F54536D616C6C5363726F + 6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C6261 + 7205416C69676E0705526967687406437572736F72070763724172726F770B53 + 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F + 6E0708566572746963616C0C4D617267696E732E4C6566740500000000000000 + 8000400A53697A652E576964746805000000000000008002400B53697A652E48 + 656967687405000000000000008002401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C650800000F54536D616C6C5363726F6C6C4261 + 7200095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C + 69676E0706426F74746F6D06437572736F72070763724172726F770B536D616C + 6C4368616E676505000000000000000000000B4F7269656E746174696F6E070A + 486F72697A6F6E74616C0B4D617267696E732E546F7005000000000000008000 + 400A53697A652E576964746805000000000000009606400B53697A652E486569 + 67687405000000000000008002401453697A652E506C6174666F726D44656661 + 756C74080756697369626C65080000000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D6506146D656D6F5374726F6B65416E696D6174696F6E + 31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 + 6D65060C5374726F6B652E436F6C6F720A537461727456616C75650709784646 + 3135313531350953746F7056616C756507097846463430343034300754726967 + 676572062049734D6F7573654F7665723D747275653B4973466F63757365643D + 66616C73650E54726967676572496E7665727365062149734D6F7573654F7665 + 723D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D6506146D656D6F5374726F6B65 + 416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463430343034300953746F7056616C756507097846463241 + 383245320754726967676572060E4973466F63757365643D747275650E547269 + 67676572496E7665727365060F4973466F63757365643D66616C736500000000 + 5450463007544C61796F757400095374796C654E616D65060E6C696E6B6C6162 + 656C7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 050000000000CCCC8006400B53697A652E4865696768740500000000009A9981 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F72646572022F0005545465787400095374796C654E616D650604 + 7465787405416C69676E0708436F6E74656E74730748697454657374080A5369 + 7A652E5769647468050000000000CCCC8006400B53697A652E48656967687405 + 00000000009A998104401453697A652E506C6174666F726D44656661756C7408 + 04546578740604546578741A5465787453657474696E67732E466F6E742E5374 + 796C654578740A0D000000040400000000000000040000001654657874536574 + 74696E67732E466F6E74436F6C6F72070D636C61446F64676572626C7565000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F + 72416E696D6174696F6E315374796C65084475726174696F6E050000000000CD + CCCCFB3F07496E7665727365090C50726F70657274794E616D65061654657874 + 53657474696E67732E466F6E74436F6C6F720A537461727456616C7565070D63 + 6C61446F64676572626C75650953746F7056616C7565070E636C614465657073 + 6B79626C75650754726967676572063049734D6F7573654F7665723D74727565 + 3B4973507265737365643D66616C73653B4973466F63757365643D66616C7365 + 0E54726967676572496E7665727365063149734D6F7573654F7665723D66616C + 73653B4973507265737365643D66616C73653B4973466F63757365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 14436F6C6F72416E696D6174696F6E325374796C65084475726174696F6E0500 + 00000000CDCCCCFB3F0C50726F70657274794E616D6506165465787453657474 + 696E67732E466F6E74436F6C6F720A537461727456616C7565070E636C614465 + 6570736B79626C75650953746F7056616C756507097846463137353739430754 + 726967676572062F4973507265737365643D747275653B49734D6F7573654F76 + 65723D747275653B4973466F63757365643D66616C7365000000005450463007 + 544C61796F757400095374796C654E616D65060D73697A65677269707374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000C803400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 726465720230000A5452656374616E676C6500095374796C654E616D65060A52 + 656374616E676C653105416C69676E070643656E7465720A46696C6C2E436F6C + 6F7207097846463630363036300A53697A652E57696474680500000000000000 + A000400B53697A652E4865696768740500000000000000A000401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E6500000A5452656374616E676C6500095374796C654E616D65060A52656374 + 616E676C653205416C69676E070643656E7465720A46696C6C2E436F6C6F7207 + 097846463630363036300C4D617267696E732E4C6566740500000000000000A0 + 02400A53697A652E57696474680500000000000000A000400B53697A652E4865 + 696768740500000000000000A000401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653305416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F7207097846463630363036300C + 4D617267696E732E4C6566740500000000000000A002400B4D617267696E732E + 546F700500000000000000A002400A53697A652E576964746805000000000000 + 00A000400B53697A652E4865696768740500000000000000A000401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653405416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463630363036300B4D617267696E732E546F700500000000000000A0 + 02400A53697A652E57696474680500000000000000A000400B53697A652E4865 + 696768740500000000000000A000401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653505416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F7207097846463630363036300B + 4D617267696E732E546F700500000000000000A002400D4D617267696E732E52 + 696768740500000000000000A002400A53697A652E5769647468050000000000 + 0000A000400B53697A652E4865696768740500000000000000A000401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6500000A5452656374616E676C6500095374796C654E616D65060A5265 + 6374616E676C653605416C69676E070643656E7465720A46696C6C2E436F6C6F + 7207097846463630363036300C4D617267696E732E4C65667405000000000000 + 00A002400E4D617267696E732E426F74746F6D0500000000000000A002400A53 + 697A652E57696474680500000000000000A000400B53697A652E486569676874 + 0500000000000000A000401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000000545046300A5452656374 + 616E676C6500095374796C654E616D65060E7374617475736261727374796C65 + 05416C69676E070643656E7465720C436C69704368696C6472656E090A46696C + 6C2E436F6C6F7207097846463235323532350553696465730B03546F70000A53 + 697A652E57696474680500000000000000F004400B53697A652E486569676874 + 0500000000000000C804401453697A652E506C6174666F726D44656661756C74 + 080C5374726F6B652E436F6C6F7207097846463135313531350756697369626C + 65080007544C61796F757400095374796C654E616D6506074C61796F75743105 + 416C69676E070552696768740A506F736974696F6E2E5805000000000000008C + 04400A53697A652E57696474680500000000000000C803400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C740800095453697A654772697000095374796C654E616D65060973697A + 65677267697005416C69676E0706426F74746F6D0A506F736974696F6E2E5905 + 00000000000000C803400A53697A652E57696474680500000000000000C80340 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C740800000000545046300A5452656374616E676C65 + 00095374796C654E616D65060C746F6F6C6261727374796C6505416C69676E07 + 0643656E7465720A46696C6C2E436F6C6F720709784646323532353235074869 + 7454657374080553696465730B06426F74746F6D000A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E + 436F6C6F7207097846463135313531350756697369626C650800005450463007 + 544C61796F757400095374796C654E616D65061570726F677265737362617265 + 72726F727374796C6505416C69676E070643656E7465720A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000099 + 99E104401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F726465720232000A5452656374616E676C6500095374796C + 654E616D65060668747261636B05416C69676E0708436F6E74656E74730A4669 + 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 + 657374080A53697A652E576964746805000000000033338505400B53697A652E + 4865696768740500000000009999E104401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 0A5452656374616E676C6500095374796C654E616D65060A68696E6469636174 + 6F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207097846464532 + 32413241064C6F636B6564090748697454657374080C4D617267696E732E4C65 + 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 + 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 + 7267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E + 2E58050000000000000080FF3F0A506F736974696F6E2E590500000000000000 + 80FF3F0A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000009999D904401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000A54526563 + 74616E676C6500095374796C654E616D65060676747261636B05416C69676E07 + 08436F6E74656E74730A46696C6C2E436F6C6F72070978464632303230323006 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 0033338505400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000A5452656374616E676C6500095374796C654E61 + 6D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C + 6C2E436F6C6F720709784646453232413241064C6F636B656409074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 + 74696F6E2E5905000000000099998904400A53697A652E576964746805000000 + 000033338105400B53697A652E4865696768740500000000000000A803401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E65000000005450463007544C61796F757400095374796C654E616D + 650613736D616C6C7363726F6C6C6261727374796C6505416C69676E07064365 + 6E7465720756697369626C6508085461624F726465720234000654547261636B + 00095374796C654E616D65060668747261636B05416C69676E0706436C69656E + 74064C6F636B6564090B4F7269656E746174696F6E070A486F72697A6F6E7461 + 6C0A53697A652E57696474680500000000000000C804400B53697A652E486569 + 6768740500000000000000C804401453697A652E506C6174666F726D44656661 + 756C74080B5374796C654C6F6F6B757006147363726F6C6C6261726874726163 + 6B7374796C6500000654547261636B00095374796C654E616D65060676747261 + 636B05416C69676E0706436C69656E74064C6F636B6564090B4F7269656E7461 + 74696F6E070A486F72697A6F6E74616C0A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80440145369 + 7A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B757006 + 147363726F6C6C62617276747261636B7374796C650000005450463007544C61 + 796F757400095374796C654E616D65060D636F6D626F626F787374796C650541 + 6C69676E070643656E7465720A53697A652E57696474680500000000000000C8 + 05400B53697A652E4865696768740500000000000000C803401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 720235000C5442727573684F626A65637400095374796C654E616D65060A666F + 726567726F756E6400000B54466F6E744F626A65637400095374796C654E616D + 650604666F6E7409466F6E742E53697A650500000000000000D0024000000754 + 4C61796F757400095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0708436F6E74656E74730A53697A652E57696474680500000000000000 + C805400B53697A652E4865696768740500000000000000C803401453697A652E 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 - 796C654E616D65060A52656374616E676C653105416C69676E0703546F700A46 - 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 - 7A652E5769647468050000000000000080FF3F0B53697A652E48656967687405 - 0000000000000080FF3F1453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E6500000000000A5452656374616E67 - 6C650005416C69676E07074D6F7374546F700A46696C6C2E436F6C6F72070978 - 4646323032303230064C6F636B6564090748697454657374080A53697A652E57 - 6964746805000000000056D5AF07400B53697A652E4865696768740500000000 - 0000008004401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F7207097846463135313531350007544C61796F7574000953 - 74796C654E616D65060763617074696F6E05416C69676E0708436F6E74656E74 - 73064C6F636B6564090748697454657374090C4D617267696E732E4C65667405 - 000000000000008001400B4D617267696E732E546F7005000000000000008001 - 400D4D617267696E732E526967687405000000000000008001400A53697A652E - 576964746805000000000056D5AB07400B53697A652E48656967687405000000 - 00000000E003401453697A652E506C6174666F726D44656661756C7408000007 - 544C61796F75740005416C69676E0706436C69656E74064C6F636B6564090C4D - 617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E54 - 6F70050000000000000080FF3F0D4D617267696E732E52696768740500000000 - 00000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F - 0A53697A652E576964746805000000000056D5AE07400B53697A652E48656967 - 68740500000000000000F003401453697A652E506C6174666F726D4465666175 - 6C74080007544C61796F75740005416C69676E07044C656674064C6F636B6564 - 090A53697A652E576964746805000000000000009002400B53697A652E486569 - 6768740500000000000000F003401453697A652E506C6174666F726D44656661 - 756C7408000007544C61796F757400095374796C654E616D65060469636F6E06 - 4C6F636B6564090A506F736974696F6E2E5805000000000000009002400A506F - 736974696F6E2E590500000000000000E001400A53697A652E57696474680500 - 000000000000C803400B53697A652E4865696768740500000000000000A80340 - 1453697A652E506C6174666F726D44656661756C7408000007544C61796F7574 - 00095374796C654E616D65060773797362746E7305416C69676E0706436C6965 - 6E74064C6F636B6564090A53697A652E57696474680500000000005655AA0740 - 0B53697A652E4865696768740500000000000000F003401453697A652E506C61 - 74666F726D44656661756C7408000C545370656564427574746F6E0009537479 - 6C654E616D650605636C6F736505416C69676E07055269676874064C6F636B65 - 64090A506F736974696F6E2E5805000000000056559107400A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000F003401453697A652E506C6174666F726D44656661756C74080B5374796C - 654C6F6F6B75700610636C6F7365627574746F6E7374796C6500000C54537065 - 6564427574746F6E00095374796C654E616D6506036D617805416C69676E0705 - 5269676874064C6F636B6564090A506F736974696F6E2E580500000000005655 - 8107400A53697A652E576964746805000000000000008004400B53697A652E48 - 65696768740500000000000000F003401453697A652E506C6174666F726D4465 - 6661756C74080B5374796C654C6F6F6B7570060E6D6178627574746F6E737479 - 6C6500000C545370656564427574746F6E00095374796C654E616D6506037265 - 7305416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E - 58050000000000ACAAE206400A53697A652E5769647468050000000000000080 - 04400B53697A652E4865696768740500000000000000F003401453697A652E50 - 6C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060E726573 - 627574746F6E7374796C6500000C545370656564427574746F6E00095374796C - 654E616D6506036D696E05416C69676E07055269676874064C6F636B6564090A - 506F736974696F6E2E58050000000000ACAAC206400A53697A652E5769647468 - 05000000000000008004400B53697A652E4865696768740500000000000000F0 - 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F - 6F6B7570060E6D696E627574746F6E7374796C65000005545465787400095374 - 796C654E616D6506057469746C6505416C69676E0706436C69656E74064C6F63 - 6B6564090748697454657374080A53697A652E5769647468050000000000ACAA - C206400B53697A652E4865696768740500000000000000F003401453697A652E - 506C6174666F726D44656661756C7408045465787406055469746C6516546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465000000 - 000007544C61796F757400095374796C654E616D650606636C69656E7405416C - 69676E0706436C69656E74064C6F636B6564090748697454657374090A53697A - 652E576964746805000000000056D5AB07400B53697A652E4865696768740500 - 0000000000008F06401453697A652E506C6174666F726D44656661756C740800 - 0007544C61796F757400095374796C654E616D650606626F74746F6D05416C69 - 676E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E58050000 - 00000000008001400A506F736974696F6E2E590500000000000000AF06400A53 - 697A652E576964746805000000000056D5AB07400B53697A652E486569676874 - 05000000000000008001401453697A652E506C6174666F726D44656661756C74 - 08000A5452656374616E676C6500095374796C654E616D650604726563740541 - 6C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632303230 - 32300748697454657374080553696465730B03546F7006426F74746F6D000A53 - 697A652E576964746805000000000056D5AB07400B53697A652E486569676874 - 05000000000000008001401453697A652E506C6174666F726D44656661756C74 - 080C5374726F6B652E436F6C6F72070978464631353135313500000000} - end - item - Platform = 'OSX Yosemite' - ResourcesBin = { - 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 - AF00060B627574746F6E7374796C6503EB04060D636865636B626F787374796C - 6503F3050609656469747374796C6503D4050609677269647374796C6503E608 - 060D67726F7570626F787374796C6503B402060F6865616465726974656D7374 - 796C6503F403060E696D61676563656C6C7374796C65033D01060A6C6162656C - 7374796C65032001060D6C697374626F78666F6F746572038B0106106C697374 - 626F786974656D7374796C6503520306126C697374626F78706C61696E686561 - 646572036C02060C6C697374626F787374796C6503B307060E706F7075706365 - 6C6C7374796C65038E03061070726F67726573736261727374796C6503020506 - 1170726F677265737363656C6C7374796C6503CB0206157363726F6C6C626172 - 626F74746F6D627574746F6E03740406147363726F6C6C62617268747261636B - 7374796C65033B0106137363726F6C6C6261726C656674627574746F6E038704 - 06147363726F6C6C6261727269676874627574746F6E038A04060E7363726F6C - 6C6261727374796C6503630406127363726F6C6C626172746F70627574746F6E - 03840406147363726F6C6C62617276747261636B7374796C65033B01060C7370 - 696E626F787374796C65038507060B7377697463687374796C6503ED01060F74 - 6162636F6E74726F6C7374796C6503F701060B746162646F747374796C65037F - 01060C7461626974656D7374796C65032B05060D7465787463656C6C7374796C - 6503A601060D7468756D626261727374796C65034C03060A7468756D62737479 - 6C65034402060D747261636B6261727374796C65034A0806096D656D6F737479 - 6C65037008060D73697A65677269707374796C6503FB04060E73746174757362 - 61727374796C6503DB01060C746F6F6C6261727374796C6503CA00061570726F - 67726573736261726572726F727374796C65030705060E6C696E6B6C6162656C - 7374796C65035B030613736D616C6C7363726F6C6C6261727374796C6503AE01 - 060D636F6D626F626F787374796C65032708060D73706C69747465727374796C - 6503C0030610726164696F627574746F6E7374796C6503C4050618756C63656E - 746572726164696F627574746F6E7374796C650368050616756C6C6566747261 - 64696F627574746F6E7374796C6503A7050617756C7269676874726164696F62 - 7574746F6E7374796C6503AC050615616E69696E64696361746F72686F727A73 - 74796C6503E002060E6C6F67627574746F6E7374796C6503DA07061365787061 - 6E646572627574746F6E7374796C650381020615657870616E64657263686563 - 6B626F787374796C6503DB05060D657870616E6465727374796C65031607060A - 70616E656C7374796C65034F01061970726F67726573736261726D696E696572 - 726F727374796C6503F903061470726F67726573736261726D696E697374796C - 6503F403060E636F6D626F656469747374796C6503F80906106D656E75626172 - 6974656D7374796C6503650B060C6D656E756261727374796C6503B802060D6D - 656E756974656D7374796C6503890B06126D656E75736570617261746F727374 - 796C6503E501060D6D656E75766965777374796C6503DD02061B747265657669 - 6577657870616E646572627574746F6E7374796C650389020611747265657669 - 65776974656D7374796C65032705060D74726565766965777374796C65038D07 - 061670726F677265737362617266696E6973687374796C6503FF04061A70726F - 67726573736261726D696E6966696E6973687374796C6503F10300545046300A - 5452656374616E676C6500095374796C654E616D65060F6261636B67726F756E - 647374796C6505416C69676E070643656E7465720A46696C6C2E436F6C6F7207 - 097846463244324432440A53697A652E57696474680500000000000000940740 - 0B53697A652E4865696768740500000000000080D206401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 - 56697369626C650800005450463007544C61796F757400095374796C654E616D - 65060B627574746F6E7374796C6505416C69676E070643656E7465720A53697A - 652E57696474680500000000000000C805400B53697A652E4865696768740500 - 000000000000C803401453697A652E506C6174666F726D44656661756C740807 - 56697369626C6508085461624F726465720202000A5452656374616E676C6500 - 095374796C654E616D65060A6261636B67726F756E6405416C69676E0706436C - 69656E740C436C69704368696C6472656E090A436C6970506172656E74090A46 - 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 - 7A652E57696474680500000000000000C805400B53697A652E48656967687405 - 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 - 0000C0004007595261646975730500000000000000C00040000F54436F6C6F72 + 796C654E616D65060A52656374616E676C653105416C69676E0706436C69656E + 740A46696C6C2E436F6C6F720709784646323032303230074869745465737408 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650007544C61796F75740009 + 5374796C654E616D650611427574746F6E5374796C654F626A65637405416C69 + 676E070846697452696768740B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E + 580500000000005ED99705400A506F736974696F6E2E59050000000000000080 + FF3F0A53697A652E5769647468050000000000889AB803400B53697A652E4865 + 696768740500000000000000B803401453697A652E506C6174666F726D446566 + 61756C74080007544C61796F757400095374796C654E616D6506074C61796F75 + 743105416C69676E070643656E7465720C4D617267696E732E4C656674050000 + 000000000080FF3F0A53697A652E57696474680500000000000000A002400B53 + 697A652E4865696768740500000000000000C001401453697A652E506C617466 + 6F726D44656661756C74080005545061746800095374796C654E616D65060550 + 6174683105416C69676E0706436C69656E7409446174612E506174680A340000 + 0004000000000000000000C8420000C84201000000000096430000C842010000 + 000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72 + 0708636C6157686974650748697454657374080A53697A652E57696474680500 + 000000000000A002400B53697A652E4865696768740500000000000000C00140 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000000000F54436F6C6F72416E696D6174696F6E00095374 + 796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E310844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463230323032 + 300953746F7056616C7565070978464634303430343007547269676765720630 + 49734D6F7573654F7665723D747275653B4973507265737365643D66616C7365 + 3B4973466F63757365643D66616C73650E54726967676572496E766572736506 + 3149734D6F7573654F7665723D66616C73653B4973507265737365643D66616C + 73653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463430343034300953746F7056616C756507097846463137353739430754 + 726967676572062F4973507265737365643D747275653B49734D6F7573654F76 + 65723D747275653B4973466F63757365643D66616C736500000F54436F6C6F72 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F - 72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C + 72416E696D6174696F6E33084475726174696F6E050000000000CDCCCCFB3F0C 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463230323032300953746F7056616C75650709784646343034 - 3034300754726967676572063049734D6F7573654F7665723D747275653B4973 - 507265737365643D66616C73653B4973466F63757365643D66616C73650E5472 - 6967676572496E7665727365063149734D6F7573654F7665723D66616C73653B - 4973507265737365643D66616C73653B4973466F63757365643D66616C736500 - 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 - 74746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000 - 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463430343034300953746F7056616C7565 - 07097846463137353739430754726967676572062F4973507265737365643D74 - 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D66 - 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650615627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F - 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463241383245320953746F70 - 56616C756507097846463137353739430754726967676572062E497350726573 - 7365643D747275653B49734D6F7573654F7665723D747275653B4973466F6375 - 7365643D747275650E54726967676572496E7665727365062F49735072657373 - 65643D66616C73653B49734D6F7573654F7665723D747275653B4973466F6375 - 7365643D7472756500000005545465787400095374796C654E616D6506047465 - 787405416C69676E0706436C69656E7413456E61626C6544726167486967686C - 69676874080748697454657374080A53697A652E576964746805000000000000 - 00C805400B53697A652E4865696768740500000000000000C803401453697A65 - 2E506C6174666F726D44656661756C7408165465787453657474696E67732E46 - 6F6E74436F6C6F720708636C6157686974650000005450463007544C61796F75 - 7400095374796C654E616D65060D636865636B626F787374796C6505416C6967 - 6E070643656E7465720A53697A652E5769647468050000000000ACAA8006400B - 53697A652E48656967687405000000000058559904401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F726465720203 - 0007544C61796F75740005416C69676E07044C6566740A53697A652E57696474 - 6805000000000000009003400B53697A652E4865696768740500000000005855 - 9904401453697A652E506C6174666F726D44656661756C7408000A5452656374 - 616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C69 - 676E070643656E7465720A46696C6C2E436F6C6F720709784646323032303230 - 0748697454657374080A53697A652E57696474680500000000000000F002400B - 53697A652E4865696768740500000000000000F002401453697A652E506C6174 - 666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846463135 - 3135313507585261646975730500000000000000C00040075952616469757305 - 00000000000000C00040000A5452656374616E676C6500095374796C654E616D - 65060A52656374616E676C653105416C69676E0706436C69656E740A46696C6C - 2E436F6C6F720709784646324138324532074869745465737408074F70616369 - 747905000000000000000000000C4D617267696E732E4C656674050000000000 - 00008000400B4D617267696E732E546F7005000000000000008000400D4D6172 - 67696E732E526967687405000000000000008000400E4D617267696E732E426F - 74746F6D05000000000000008000400A53697A652E5769647468050000000000 - 0000B002400B53697A652E4865696768740500000000000000B002401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6507585261646975730500000000000000C00040075952616469757305 - 00000000000000C00040000F54466C6F6174416E696D6174696F6E0009537479 - 6C654E616D65061B6368656368626F7856697362696C697479416E696D617469 - 6F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065727479 - 4E616D6506074F7061636974790A537461727456616C75650500000000000000 - 0000000953746F7056616C75650500000000000000C805400754726967676572 - 060E4973436865636B65643D747275650E54726967676572496E766572736506 - 0F4973436865636B65643D66616C73650000000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D650618636865636B626F785374726F6B65416E + 6C756507097846463241383245320953746F7056616C75650709784646313735 + 3739430754726967676572062E4973507265737365643D747275653B49734D6F + 7573654F7665723D747275653B4973466F63757365643D747275650E54726967 + 676572496E7665727365062F4973507265737365643D66616C73653B49734D6F + 7573654F7665723D747275653B4973466F63757365643D747275650000000007 + 544C61796F757400095374796C654E616D650607636F6E74656E7405416C6967 + 6E0706436C69656E74064C6F636B6564090C4D617267696E732E4C6566740500 + 0000000000008000400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E52696768740500000000000000D803400E4D617267696E + 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 + 0000000000008E05400B53697A652E4865696768740500000000000000A80340 + 1453697A652E506C6174666F726D44656661756C74080000005450463007544C + 61796F757400095374796C654E616D65060D73706C69747465727374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000000000 + A904400B53697A652E4865696768740500000000000080C105401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 65720236000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F72 + 07097846463330333033300748697454657374080553696465730B044C656674 + 055269676874000A53697A652E57696474680500000000000000A904400B5369 + 7A652E4865696768740500000000000080C105401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 3135000007544C61796F757400095374796C654E616D6506046772697005416C + 69676E0706436C69656E740A53697A652E57696474680500000000000000A904 + 400B53697A652E4865696768740500000000000080C105401453697A652E506C + 6174666F726D44656661756C7408000754436972636C6500095374796C654E61 + 6D650607436972636C653105416C69676E070643656E7465720A46696C6C2E43 + 6F6C6F7207097846463430343034300A53697A652E5769647468050000000000 + 0000E001400B53697A652E4865696768740500000000000000E001401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 0978464631353135313500000754436972636C6500095374796C654E616D6506 + 07436972636C653205416C69676E070643656E7465720A46696C6C2E436F6C6F + 7207097846463430343034300B4D617267696E732E546F700500000000000000 + A003400A53697A652E57696474680500000000000000E001400B53697A652E48 + 65696768740500000000000000E001401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350000 + 0754436972636C6500095374796C654E616D650607436972636C653305416C69 + 676E070643656E7465720A46696C6C2E436F6C6F720709784646343034303430 + 0E4D617267696E732E426F74746F6D0500000000000000A003400A53697A652E + 57696474680500000000000000E001400B53697A652E48656967687405000000 + 00000000E001401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F720709784646313531353135000000005450463007544C + 61796F757400095374796C654E616D650610636C6F7365627574746F6E737479 + 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 + 4F726465720237000A5452656374616E676C6500095374796C654E616D65060B + 636C6F7365627574746F6E05416C69676E0706436C69656E7413456E61626C65 + 44726167486967686C69676874080A46696C6C2E436F6C6F7207097846463230 + 323032300748697454657374080A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 + 436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463230323032300953746F7056616C75 + 6507097846464646363135370754726967676572062049734D6F7573654F7665 + 723D747275653B4973507265737365643D66616C73650E54726967676572496E + 7665727365062149734D6F7573654F7665723D66616C73653B49735072657373 + 65643D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650614436F6C6F72416E696D6174696F6E325374796C650844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846464646363135370953 + 746F7056616C756507097846464532344634350754726967676572061F49734D + 6F7573654F7665723D747275653B4973507265737365643D747275650E547269 + 67676572496E7665727365062049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C736500000005545061746800095374796C654E616D + 650605506174683105416C69676E070643656E74657209446174612E50617468 + 0AC400000010000000000000000000A0C00000704101000000000070410000A0 + C001000000000048420000F041010000000000AA420000A0C0010000000000D2 + 42000070410100000000008C4200004842010000000000D2420000B442010000 + 000000AA420000DC42020000003BDF34429E6F8C4202000000FE547D427FAAB0 + 4202000000000048420000964201000000000070410000DC42010000000000A0 + C00000B442010000000000F04100005C42010000000000A0C000007041030000 + 000000A0C0000070410A46696C6C2E436F6C6F720708636C6157686974650748 + 697454657374080A53697A652E57696474680500000000000000A002400B5369 + 7A652E4865696768740500000000000000A002401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000054 + 50463007544C61796F757400095374796C654E616D65060E6D6178627574746F + 6E7374796C6505416C69676E070643656E7465720A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 + 085461624F726465720238000A5452656374616E676C6500095374796C654E61 + 6D6506096D6178627574746F6E05416C69676E0706436C69656E740A46696C6C + 2E436F6C6F7207097846463230323032300748697454657374080A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C + 65084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 + 323032300953746F7056616C7565070978464632413832453207547269676765 + 72062049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D + 66616C73653B4973507265737365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D617469 + 6F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 + 07097846463241383245320953746F7056616C75650709784646313735373943 + 0754726967676572061F49734D6F7573654F7665723D747275653B4973507265 + 737365643D747275650E54726967676572496E7665727365062049734D6F7573 + 654F7665723D747275653B4973507265737365643D66616C7365000000055450 + 61746800095374796C654E616D650605506174683105416C69676E070643656E + 74657209446174612E506174680A5800000007000000000000000000C8420000 + C8420100000000002F440000C8420100000000002F4400002F44010000000080 + 094400800944010000000080094400007A430100000000007A4300007A430300 + 00000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507 + 48697454657374080A53697A652E57696474680500000000000000A002400B53 + 697A652E4865696768740500000000000000A002401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 5450463007544C61796F757400095374796C654E616D65060E6D696E62757474 + 6F6E7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F726465720239000A5452656374616E676C6500095374796C654E + 616D6506096D696E627574746F6E05416C69676E0706436C69656E740A46696C + 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E31537479 + 6C65084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 30323032300953746F7056616C75650709784646324138324532075472696767 + 6572062049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 + 3D66616C73653B4973507265737365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 + 696F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C5072 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097846463241383245320953746F7056616C756507097846463137353739 + 430754726967676572061F49734D6F7573654F7665723D747275653B49735072 + 65737365643D747275650E54726967676572496E7665727365062049734D6F75 + 73654F7665723D747275653B4973507265737365643D66616C73650000000554 + 5061746800095374796C654E616D650605506174683105416C69676E07064365 + 6E74657209446174612E506174680A40000000050000000000000000002F4400 + 8009440100000000002F4400002F44010000000000C84200002F440100000000 + 00C842008009440300000000002F44008009440A46696C6C2E436F6C6F720708 + 636C6157686974650748697454657374080B4D617267696E732E546F70050000 + 0000000000A002400D526F746174696F6E416E676C650500000000000000B406 + 400A53697A652E57696474680500000000000000A002400B53697A652E486569 + 6768740500000000000000C000401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650000005450463007544C + 61796F757400095374796C654E616D65060E726573627574746F6E7374796C65 + 05416C69676E070643656E7465720A53697A652E576964746805000000000000 + 00C804400B53697A652E4865696768740500000000000000C803401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 + 646572023A000A5452656374616E676C6500095374796C654E616D6506097265 + 73627574746F6E05416C69676E0706436C69656E740A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C + 654E616D650614436F6C6F72416E696D6174696F6E315374796C650844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 + 746F7056616C756507097846463241383245320754726967676572062049734D + 6F7573654F7665723D747275653B4973507265737365643D66616C73650E5472 + 6967676572496E7665727365062149734D6F7573654F7665723D66616C73653B + 4973507265737365643D66616C736500000F54436F6C6F72416E696D6174696F + 6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E32537479 + 6C65084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 41383245320953746F7056616C75650709784646313735373943075472696767 + 6572061F49734D6F7573654F7665723D747275653B4973507265737365643D74 + 7275650E54726967676572496E7665727365062049734D6F7573654F7665723D + 747275653B4973507265737365643D66616C7365000000055450617468000953 + 74796C654E616D650605506174683105416C69676E070643656E746572094461 + 74612E506174680A5800000007000000000000000000C8420000C84201000000 + 00002F440000C8420100000000002F4400002F44010000000080094400800944 + 010000000080094400007A430100000000007A4300007A43030000000000C842 + 0000C8420A46696C6C2E436F6C6F720708636C61576869746507486974546573 + 74080D526F746174696F6E416E676C650500000000000000B406400A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000A002401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650000005450463007544C61796F757400 + 095374796C654E616D65060F746F6F6C77696E646F777374796C6505416C6967 + 6E070643656E7465720A53697A652E576964746805000000000056D5AF07400B + 53697A652E4865696768740500000000000000B306401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F726465720241 + 000A5452656374616E676C6500095374796C654E616D6506046D61736B05416C + 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646313031 + 3031300A53697A652E576964746805000000000056D5AF07400B53697A652E48 + 65696768740500000000000000B306401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C65 + 08000007544C61796F757400095374796C654E616D6506046C65667405416C69 + 676E07084D6F73744C656674064C6F636B6564090A506F736974696F6E2E5905 + 00000000000000C803400A53697A652E57696474680500000000000000A00140 + 0B53697A652E48656967687405000000000000009A06401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C650005416C69676E + 07084D6F73744C6566740A46696C6C2E436F6C6F720709784646323032303230 + 0748697454657374080553696465730B044C656674055269676874000A53697A + 652E57696474680500000000000000A001400B53697A652E4865696768740500 + 0000000000009506401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F72070978464631353135313500000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 + 6E070A4D6F7374426F74746F6D13456E61626C6544726167486967686C696768 + 74080A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A506F736974696F6E2E5905000000000000009506400553696465730B044C + 65667406426F74746F6D000A53697A652E57696474680500000000000000A001 + 400B53697A652E4865696768740500000000000000A001401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 3135313531350007544C61796F757400095374796C654E616D6506074C61796F + 75743305416C69676E07094D6F737452696768740A506F736974696F6E2E5805 + 000000000000008001400A53697A652E5769647468050000000000000080FF3F + 0B53697A652E4865696768740500000000000000A001401453697A652E506C61 + 74666F726D44656661756C7408000A5452656374616E676C6500095374796C65 + 4E616D65060A52656374616E676C653105416C69676E0703546F700A46696C6C + 2E436F6C6F7207097846463135313531350748697454657374080A53697A652E + 5769647468050000000000000080FF3F0B53697A652E48656967687405000000 + 0000000080FF3F1453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E65000000000007544C61796F757400095374 + 796C654E616D650605726967687405416C69676E07094D6F7374526967687406 + 4C6F636B6564090A506F736974696F6E2E580500000000005655AD07400A506F + 736974696F6E2E590500000000000000C803400A53697A652E57696474680500 + 000000000000A001400B53697A652E48656967687405000000000000009A0640 + 1453697A652E506C6174666F726D44656661756C7408000A5452656374616E67 + 6C650005416C69676E07094D6F737452696768740A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080553696465730B044C65667405 + 5269676874000A53697A652E57696474680500000000000000A001400B53697A + 652E48656967687405000000000000009506401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 3500000A5452656374616E676C6500095374796C654E616D65060A5265637461 + 6E676C653105416C69676E070A4D6F7374426F74746F6D13456E61626C654472 + 6167486967686C69676874080A46696C6C2E436F6C6F72070978464632303230 + 32300748697454657374080A506F736974696F6E2E5905000000000000009506 + 400553696465730B06426F74746F6D055269676874000A53697A652E57696474 + 680500000000000000A001400B53697A652E4865696768740500000000000000 + A001401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F7207097846463135313531350007544C61796F757400095374796C + 654E616D6506074C61796F75743305416C69676E07084D6F73744C6566740A53 + 697A652E5769647468050000000000000080FF3F0B53697A652E486569676874 + 0500000000000000A001401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653105416C69676E0703546F700A46696C6C2E436F6C6F72070978464631 + 35313531350748697454657374080A53697A652E576964746805000000000000 + 0080FF3F0B53697A652E486569676874050000000000000080FF3F1453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6500000000000A5452656374616E676C650005416C69676E07074D6F7374 + 546F700A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 + 090748697454657374080A53697A652E576964746805000000000056D5AF0740 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 35313531350007544C61796F757400095374796C654E616D6506076361707469 + 6F6E05416C69676E0708436F6E74656E7473064C6F636B656409074869745465 + 7374090A53697A652E576964746805000000000056D5AF07400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C7408000007544C61796F75740005416C69676E0706436C69656E7406 + 4C6F636B6564090C4D617267696E732E4C656674050000000000000080FF3F0B + 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 + 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 + 00000000000080FF3F0A53697A652E576964746805000000000056D5AE07400B + 53697A652E4865696768740500000000000000B803401453697A652E506C6174 + 666F726D44656661756C74080007544C61796F75740005416C69676E07044C65 + 6674064C6F636B6564090A53697A652E57696474680500000000000000900240 + 0B53697A652E4865696768740500000000000000B803401453697A652E506C61 + 74666F726D44656661756C7408000007544C61796F757400095374796C654E61 + 6D65060773797362746E7305416C69676E0706436C69656E74064C6F636B6564 + 090A53697A652E57696474680500000000005655AA07400B53697A652E486569 + 6768740500000000000000B803401453697A652E506C6174666F726D44656661 + 756C7408000C545370656564427574746F6E00095374796C654E616D65060563 + 6C6F736505416C69676E07055269676874064C6F636B6564090A506F73697469 + 6F6E2E5805000000000056D59D07400A53697A652E5769647468050000000000 + 0000C803400B53697A652E4865696768740500000000000000B803401453697A + 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75700610 + 636C6F7365627574746F6E7374796C65000005545465787400095374796C654E + 616D6506057469746C6505416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080A53697A652E576964746805000000000056D59D07400B + 53697A652E4865696768740500000000000000B803401453697A652E506C6174 + 666F726D44656661756C7408045465787406055469746C651654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746500000000000754 + 4C61796F757400095374796C654E616D650606636C69656E7405416C69676E07 + 06436C69656E74064C6F636B6564090748697454657374090A53697A652E5769 + 64746805000000000056D5AA07400B53697A652E486569676874050000000000 + 00009506401453697A652E506C6174666F726D44656661756C7408000007544C + 61796F757400095374796C654E616D650606626F74746F6D05416C69676E0706 + 426F74746F6D064C6F636B6564090A506F736974696F6E2E5805000000000000 + 00A001400A506F736974696F6E2E590500000000000000AE06400A53697A652E + 576964746805000000000056D5AA07400B53697A652E48656967687405000000 + 00000000A001401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D6506047265637405416C69676E + 0706426F74746F6D0A46696C6C2E436F6C6F7207097846463230323032300553 + 696465730B03546F7006426F74746F6D000A53697A652E576964746805000000 + 000056D5AA07400B53697A652E4865696768740500000000000000A001401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 720709784646313531353135000000005450463007544C61796F757400095374 + 796C654E616D650610726164696F627574746F6E7374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000F205400B5369 + 7A652E4865696768740500000000000000A803401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F7264657202430007 + 544C61796F75740005416C69676E07044C6566740A53697A652E576964746805 + 00000000000000A803400B53697A652E4865696768740500000000000000A803 + 401453697A652E506C6174666F726D44656661756C7408000854456C6C697073 + 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0706 + 43656E7465720A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000000000 + F002400B53697A652E4865696768740500000000000000F002401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 4646313531353135000854456C6C6970736500095374796C654E616D65060963 + 6865636B6D61726B05416C69676E0706436C69656E740A46696C6C2E436F6C6F + 720709784646324138324532064C6F636B656409074869745465737408074F70 + 616369747905000000000000000000000C4D617267696E732E4C656674050000 + 00000000008000400B4D617267696E732E546F7005000000000000008000400D + 4D617267696E732E526967687405000000000000008000400E4D617267696E73 + 2E426F74746F6D05000000000000008000400A53697A652E5769647468050000 + 0000000000B002400B53697A652E4865696768740500000000000000B0024014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E + 616D65061A6F706163697479436865636B6D61726B416E696D6174696F6E3108 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 06074F7061636974790A537461727456616C7565050000000000000000000009 + 53746F7056616C7565050000000000000080FF3F0754726967676572060E4973 + 436865636B65643D747275650E54726967676572496E7665727365060F497343 + 6865636B65643D66616C73650000000F54436F6C6F72416E696D6174696F6E00 + 095374796C654E616D65061A726164696F627574746F6E436F6C6F72416E696D + 6174696F6E31084475726174696F6E050000000000CDCCCCFB3F07496E766572 + 7365090C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 + 727456616C756507097846463230323032300953746F7056616C756507097846 + 463430343034300754726967676572061049734D6F7573654F7665723D747275 + 650E54726967676572496E7665727365061149734D6F7573654F7665723D6661 + 6C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65 + 0614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E05 + 0000000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E + 436F6C6F720A537461727456616C756507097846463135313531350953746F70 + 56616C756507097846463241383245320754726967676572060E497343686563 + 6B65643D747275650E54726967676572496E7665727365060F4973436865636B + 65643D66616C73650000000005545465787400095374796C654E616D65060474 + 65787405416C69676E0706436C69656E74064C6F636B65640907486974546573 + 74080A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000A803401453697A652E506C6174666F726D446566 + 61756C74080454657874060454657874165465787453657474696E67732E466F + 6E74436F6C6F720708636C6157686974650000005450463007544C61796F7574 + 00095374796C654E616D650618756C63656E746572726164696F627574746F6E + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 000000005655FB05400B53697A652E4865696768740500000000000000A00440 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F7264657202440007544C61796F75740005416C69676E0706426F7474 + 6F6D0A506F736974696F6E2E5905000000000000008804400A53697A652E5769 + 6474680500000000005655FB05400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060A6261636B67726F756E640541 + 6C69676E0708436F6E74656E747307436F726E6572730B07546F704C6566740A + 426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 0000005655FB05400B53697A652E4865696768740500000000000000C0014014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D6506216261636B67726F756E64556C427574746F6E436F6C + 6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F + 07496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C + 6F720A537461727456616C756507097846463230323032300953746F7056616C + 756507097846463430343034300754726967676572061049734D6F7573654F76 + 65723D747275650E54726967676572496E7665727365061149734D6F7573654F + 7665723D66616C736500000A5452656374616E676C6500095374796C654E616D + 650609636865636B6D61726B05416C69676E0708436F6E74656E747307436F72 + 6E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E43 + 6F6C6F720709784646324138324532064C6F636B656409074869745465737408 + 074F70616369747905000000000000000000000C4D617267696E732E4C656674 + 050000000000000080FF3F0B4D617267696E732E546F70050000000000000080 + FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267 + 696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769647468 + 0500000000005655F705400B53697A652E486569676874050000000000000080 + 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0009537479 + 6C654E616D65061A636865636B6D61726B4F706163697479416E696D6174696F + 6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E + 616D6506074F7061636974790A537461727456616C7565050000000000000000 + 00000953746F7056616C7565050000000000000080FF3F075472696767657206 + 0E4973436865636B65643D747275650E54726967676572496E7665727365060F + 4973436865636B65643D66616C7365000000000005545465787400095374796C + 654E616D6506047465787405416C69676E0706436C69656E74064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000005655FB0540 + 0B53697A652E48656967687405000000000000008804401453697A652E506C61 + 74666F726D44656661756C740804546578740604546578741654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746500000054504630 + 07544C61796F757400095374796C654E616D650616756C6C656674726164696F + 627574746F6E7374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000005655FB05400B53697A652E4865696768740500000000 + 000000A004401453697A652E506C6174666F726D44656661756C740807566973 + 69626C6508085461624F7264657202470007544C61796F75740005416C69676E + 0706426F74746F6D0A506F736974696F6E2E5905000000000000008804400A53 + 697A652E57696474680500000000005655FB05400B53697A652E486569676874 + 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060A6261636B6772 + 6F756E6405416C69676E0708436F6E74656E747307436F726E6572730B07546F + 704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F7207097846 + 46323032303230064C6F636B6564090748697454657374080A53697A652E5769 + 6474680500000000005655FB05400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F720709784646313531353135000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D6506216261636B67726F756E64556C427574 + 746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 + 00CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463230323032300953 + 746F7056616C756507097846463430343034300754726967676572061049734D + 6F7573654F7665723D747275650E54726967676572496E766572736506114973 + 4D6F7573654F7665723D66616C736500000A5452656374616E676C6500095374 + 796C654E616D650609636865636B6D61726B05416C69676E0708436F6E74656E + 747307436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 745465737408074F70616369747905000000000000000000000C4D617267696E + 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 + 2E57696474680500000000005655F705400B53697A652E486569676874050000 + 00000000008001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D65061A636865636B6D61726B4F706163697479416E 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C - 756507097846463135313531350953746F7056616C7565070978464632413832 - 45320754726967676572060E4973436865636B65643D747275650E5472696767 - 6572496E7665727365060F4973436865636B65643D66616C736500000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D650617636865636B626F - 78436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572060E4973436865636B65643D747275650E54726967676572496E76 + 65727365060F4973436865636B65643D66616C73650000000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000880440145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D650617756C7269676874726164696F62757474 + 6F6E7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000005655FB05400B53697A652E4865696768740500000000000000A0 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F72646572024B0007544C61796F75740005416C69676E0706426F + 74746F6D0A506F736974696F6E2E5905000000000000008804400A53697A652E + 57696474680500000000005655FB05400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E747307436F726E6572730B08546F70526967 + 68740B426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632 + 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 + 680500000000005655FB05400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D6506216261636B67726F756E64556C427574746F + 6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD CCCCFB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C 2E436F6C6F720A537461727456616C756507097846463230323032300953746F 7056616C756507097846463430343034300754726967676572061049734D6F75 73654F7665723D747275650E54726967676572496E7665727365061149734D6F - 7573654F7665723D66616C73650000000005545465787400095374796C654E61 - 6D6506047465787405416C69676E0706436C69656E740A53697A652E57696474 - 680500000000005855DD05400B53697A652E4865696768740500000000005855 - 9904401453697A652E506C6174666F726D44656661756C740804546578740604 - 54657874165465787453657474696E67732E466F6E74436F6C6F720708636C61 - 57686974650000005450463007544C61796F757400095374796C654E616D6506 - 09656469747374796C6505416C69676E070643656E7465720A53697A652E5769 - 6474680500000000000000C805400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F726465720204000C5442727573684F626A656374000953 - 74796C654E616D65060A666F726567726F756E6400000C5442727573684F626A - 65637400095374796C654E616D65060973656C656374696F6E0B42727573682E - 436F6C6F72070978393632413832453200000B54466F6E744F626A6563740009 - 5374796C654E616D650604666F6E7409466F6E742E53697A6505000000000000 - 00D0024000000A5452656374616E676C6500095374796C654E616D65060A6261 - 636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F - 6C6F7207097846463230323032300748697454657374080A53697A652E576964 - 74680500000000000000C805400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F7207097846463135313531350758526164697573050000000000 - 0000C0004007595261646975730500000000000000C00040000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D650614656469745374726F6B65 - 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 - 616C756507097846463135313531350953746F7056616C756507097846463241 - 383245320754726967676572060E4973466F63757365643D747275650E547269 - 67676572496E7665727365060F4973466F63757365643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D6506146564697453 - 74726F6B65416E696D6174696F6E32084475726174696F6E050000000000CDCC - CCFB3F07496E7665727365090C50726F70657274794E616D65060C5374726F6B - 652E436F6C6F720A537461727456616C75650709784646313531353135095374 - 6F7056616C756507097846463443344334430754726967676572062149734D6F - 7573654F7665723D747275653B4973466F63757365643D66616C73653B0E5472 - 6967676572496E7665727365062249734D6F7573654F7665723D66616C73653B - 4973466F63757365643D66616C73653B00000007544C61796F75740009537479 - 6C654E616D650607627574746F6E7305416C69676E07055269676874064C6F63 - 6B6564090B4D617267696E732E546F7005000000000000008000400D4D617267 - 696E732E526967687405000000000000008000400E4D617267696E732E426F74 - 746F6D05000000000000008000400A506F736974696F6E2E5805000000000000 - 00C004400A506F736974696F6E2E5905000000000000008000400A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000A803401453697A652E506C6174666F726D44656661756C7408000007 - 544C61796F757400095374796C654E616D650607636F6E74656E7405416C6967 - 6E0706436C69656E74064C6F636B6564090C4D617267696E732E4C6566740500 - 0000000000008001400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E526967687405000000000000008000400E4D617267696E - 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 - 000000000000A804400B53697A652E4865696768740500000000000000A80340 - 1453697A652E506C6174666F726D44656661756C7408000006544C6162656C00 - 095374796C654E616D65060670726F6D7074064C6F636B656409074F70616369 - 7479050000000000000080FE3F165465787453657474696E67732E466F6E7443 - 6F6C6F720708636C615768697465045465787406045465787400000054504630 - 07544C61796F757400095374796C654E616D650609677269647374796C650541 - 6C69676E070643656E7465720A53697A652E5769647468050000000000FFFFE9 - 05400B53697A652E48656967687405000000000000008306401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 720205000C5442727573684F626A65637400095374796C654E616D650618416C - 7465726E6174696E67526F774261636B67726F756E640B42727573682E436F6C - 6F72070978333237383738373800000C5442727573684F626A65637400095374 - 796C654E616D6506086C696E6566696C6C0B42727573682E436F6C6F72070978 - 464631353135313500000A5452656374616E676C6500095374796C654E616D65 - 060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C - 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 - 7374080C50616464696E672E4C65667405000000000000008000400B50616464 - 696E672E546F7005000000000000008000400D50616464696E672E5269676874 - 05000000000000008000400E50616464696E672E426F74746F6D050000000000 - 00008000400A53697A652E5769647468050000000000FFFFE905400B53697A65 - 2E48656967687405000000000000008306401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 07585261646975730500000000000000C0004007595261646975730500000000 - 000000C0004000075448656164657200095374796C654E616D65060668656164 - 65720553696465730B03546F70044C65667406426F74746F6D05526967687400 - 05416C69676E0703546F700A506F736974696F6E2E5805000000000000008000 - 400A506F736974696F6E2E5905000000000000008000400A53697A652E576964 - 7468050000000000FFFFE105400B53697A652E48656967687405000000000000 - 00A803401453697A652E506C6174666F726D44656661756C7408000007544C61 - 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0706 - 436C69656E740C436C69704368696C6472656E090A53697A652E576964746805 - 0000000000FFFFC105400B53697A652E4865696768740500000000000000B405 - 401453697A652E506C6174666F726D44656661756C7408000A5452656374616E - 676C6500095374796C654E616D65060973656C656374696F6E0A46696C6C2E43 - 6F6C6F7207097846463241383245320748697454657374080A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000C804401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E6507585261646975730500000000000000C00040 - 07595261646975730500000000000000C0004000000A5452656374616E676C65 - 00095374796C654E616D650605666F6375730A46696C6C2E436F6C6F72070978 - 41463241383245320748697454657374080C4D617267696E732E4C6566740500 - 00000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F - 0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E - 732E426F74746F6D050000000000000080FF3F0A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80440 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E6507585261646975730500000000000000C000400759526164 - 6975730500000000000000C000400000000A545363726F6C6C42617200095374 - 796C654E616D65060A767363726F6C6C62617205416C69676E07055269676874 - 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 - 696F6E0708566572746963616C0A506F736974696F6E2E58050000000000FFFF - C505400A506F736974696F6E2E590500000000000000B803400A53697A652E57 - 6964746805000000000000008003400B53697A652E4865696768740500000000 - 000000B405401453697A652E506C6174666F726D44656661756C740800000A54 - 5363726F6C6C42617200095374796C654E616D65060A687363726F6C6C626172 - 05416C69676E0706426F74746F6D0B536D616C6C4368616E6765050000000000 - 00000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F - 736974696F6E2E5805000000000000008000400A506F736974696F6E2E590500 - 000000000000E205400A53697A652E5769647468050000000000FFFFE105400B - 53697A652E48656967687405000000000000008003401453697A652E506C6174 - 666F726D44656661756C740800000F54536D616C6C5363726F6C6C4261720009 - 5374796C654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E - 070552696768740B536D616C6C4368616E676505000000000000000000000B4F - 7269656E746174696F6E0708566572746963616C0C4D617267696E732E4C6566 - 7405000000000000008000400A506F736974696F6E2E580500000000000000C6 - 05400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 - 64746805000000000000008002400B53697A652E486569676874050000000000 - 00008002401453697A652E506C6174666F726D44656661756C74080756697369 - 626C650800000F54536D616C6C5363726F6C6C42617200095374796C654E616D - 65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D - 0B536D616C6C4368616E676505000000000000000000000B4F7269656E746174 - 696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000 - 0000008000400A506F736974696F6E2E5805000000000000008000400A506F73 - 6974696F6E2E590500000000000000E205400A53697A652E5769647468050000 - 00000000009606400B53697A652E486569676874050000000000000080024014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080000 - 00005450463007544C61796F757400095374796C654E616D65060D67726F7570 - 626F787374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000F004400B53697A652E4865696768740500000000000000 - C804401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F726465720206000A5452656374616E676C6500095374796C65 - 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 - 0946696C6C2E4B696E6407044E6F6E650748697454657374080C4D617267696E - 732E4C6566740500000000000000C000400B4D617267696E732E546F70050000 - 00000000009002400D4D617267696E732E52696768740500000000000000C000 - 400E4D617267696E732E426F74746F6D0500000000000000C000400A53697A65 - 2E57696474680500000000000000D804400B53697A652E486569676874050000 - 00000000009804401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F72070978464631353135313507585261646975730500 - 000000000000C0004007595261646975730500000000000000C0004000055454 - 65787400095374796C654E616D65060474657874084175746F53697A65090A43 - 6C6970506172656E74090748697454657374080C4D617267696E732E4C656674 - 0500000000000000A002400A506F736974696F6E2E5805000000000060559502 - 400A506F736974696F6E2E590500000000004055D501C00A53697A652E576964 - 746805000000000000B8C703400B53697A652E48656967687405000000000000 - 60FF02401453697A652E506C6174666F726D44656661756C7408165465787453 - 657474696E67732E466F6E74436F6C6F720708636C6157686974651554657874 - 53657474696E67732E576F72645772617008000000005450463007544C61796F - 757400095374796C654E616D65060F6865616465726974656D7374796C650541 - 6C69676E070643656E7465720A53697A652E5769647468050000000000000092 - 05400B53697A652E4865696768740500000000000000D003401453697A652E50 + 7573654F7665723D66616C736500000A5452656374616E676C6500095374796C + 654E616D650609636865636B6D61726B05416C69676E0708436F6E74656E7473 + 07436F726E6572730B08546F7052696768740B426F74746F6D5269676874000A + 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 + 745465737408074F70616369747905000000000000000000000C4D617267696E + 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 + 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF + 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 + 2E57696474680500000000005655F705400B53697A652E486569676874050000 + 00000000008001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D65061A636865636B6D61726B4F706163697479416E + 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572060E4973436865636B65643D747275650E54726967676572496E76 + 65727365060F4973436865636B65643D66616C73650000000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000880440145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D65060E636F6D626F656469747374796C650541 + 6C69676E070643656E7465720A53697A652E57696474680500000000000000C8 + 05400B53697A652E4865696768740500000000000000C803401453697A652E50 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 720207000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F - 720709784646344334433443064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000000009205400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F7207097846463135313531350758526164697573 - 0500000000000000C0004007595261646975730500000000000000C00040000F - 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061568656164 - 6572436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 - CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 - 7461727456616C756507097846463443344334430953746F7056616C75650709 - 7846463241383245320754726967676572060E4973507265737365643D747275 - 650E54726967676572496E7665727365060F4973507265737365643D66616C73 - 6500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650616 - 6865616465725374726F6B65416E696D6174696F6E31084475726174696F6E05 - 0000000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E - 436F6C6F720A537461727456616C756507097846463135313531350953746F70 - 56616C756507097846463241383245320754726967676572060E497350726573 - 7365643D747275650E54726967676572496E7665727365060F49735072657373 - 65643D66616C736500000005545465787400095374796C654E616D6506047465 - 787405416C69676E0706436C69656E74064C6F636B6564090748697454657374 - 080C4D617267696E732E4C6566740500000000000000A001400B4D617267696E - 732E546F7005000000000000008000400D4D617267696E732E52696768740500 - 000000000000A001400E4D617267696E732E426F74746F6D0500000000000000 - 8000400A53697A652E57696474680500000000000000FC04400B53697A652E48 - 65696768740500000000000000B003401453697A652E506C6174666F726D4465 - 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 - 6C6157686974650000005450463007544C61796F757400095374796C654E616D - 65060E696D61676563656C6C7374796C6505416C69676E070643656E74657207 - 56697369626C6508085461624F726465720208000654496D6167650009537479 - 6C654E616D650605696D6167650E4D756C74695265734269746D61700E010000 - 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080C - 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF - 3F0A53697A652E57696474680500000000000000C004400B53697A652E486569 - 6768740500000000000000C004401453697A652E506C6174666F726D44656661 - 756C74080000005450463007544C61796F757400095374796C654E616D65060A - 6C6162656C7374796C6505416C69676E070643656E7465720A53697A652E5769 - 6474680500000000000000C805400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C74080756697369 - 626C6508085461624F7264657202090005545465787400095374796C654E616D - 6506047465787405416C69676E0708436F6E74656E7473074869745465737408 + 72024E000C5442727573684F626A65637400095374796C654E616D65060A666F + 726567726F756E6400000B54466F6E744F626A65637400095374796C654E616D + 650604666F6E7409466F6E742E53697A650500000000000000D0024000000754 + 4C61796F757400095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0708436F6E74656E74730A53697A652E57696474680500000000000000 + C805400B53697A652E4865696768740500000000000000C803401453697A652E + 506C6174666F726D44656661756C7408000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653105416C69676E0706436C69656E + 740A46696C6C2E436F6C6F720709784646323032303230074869745465737408 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 68740500000000000000C803401453697A652E506C6174666F726D4465666175 - 6C7408165465787453657474696E67732E466F6E74436F6C6F720708636C6157 - 686974650000005450463007544C61796F757400095374796C654E616D65060D - 6C697374626F78666F6F74657205416C69676E070643656E7465720A53697A65 - 2E576964746805000000000000009205400B53697A652E486569676874050000 - 0000000000D003401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F72646572020A0005545465787400095374796C65 - 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 - 0748697454657374080C4D617267696E732E4C6566740500000000000000A001 - 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 - 2E52696768740500000000000000A001400E4D617267696E732E426F74746F6D - 05000000000000008000400A53697A652E57696474680500000000000000FC04 - 400B53697A652E4865696768740500000000000000B003401453697A652E506C - 6174666F726D44656661756C7408165465787453657474696E67732E466F6E74 - 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 - 5374796C654E616D6506106C697374626F786974656D7374796C6505416C6967 - 6E070643656E7465720A53697A652E57696474680500000000000000D605400B - 53697A652E4865696768740500000000000000C003401453697A652E506C6174 - 666F726D44656661756C74080756697369626C6508085461624F72646572020B - 000654476C79706800095374796C654E616D65060A676C7970687374796C650C - 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E - 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 - 000000008000400E4D617267696E732E426F74746F6D050000000000000080FF - 3F05416C69676E07044C6566740A506F736974696F6E2E580500000000000000 - 8000400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E57 - 6964746805000000000000008003400B53697A652E4865696768740500000000 - 000000B003401453697A652E506C6174666F726D44656661756C740800000554 - 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 - 656E740748697454657374080C4D617267696E732E4C65667405000000000000 - 00C000400B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E52696768740500000000000000C000400E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A53697A652E576964746805000000000000 - 00CA05400B53697A652E4865696768740500000000000000B003401453697A65 - 2E506C6174666F726D44656661756C7408165465787453657474696E67732E46 - 6F6E74436F6C6F720708636C615768697465155465787453657474696E67732E - 576F72645772617008165465787453657474696E67732E486F727A416C69676E - 07074C656164696E6700000954436865636B426F7800095374796C654E616D65 - 0605636865636B05416C69676E07084D6F73744C6566740843616E466F637573 - 081244697361626C65466F637573456666656374090A53697A652E5769647468 - 0500000000000000A003400B53697A652E4865696768740500000000000000C0 - 03401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 080000005450463007544C61796F757400095374796C654E616D6506126C6973 - 74626F78706C61696E68656164657205416C69676E070643656E7465720A5369 - 7A652E576964746805000000000000009205400B53697A652E48656967687405 - 00000000000000D003401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F72646572020C000A5452656374616E676C65 - 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 - 6F6E74656E74730A46696C6C2E436F6C6F720709784646324432443244064C6F - 636B6564090748697454657374080A53697A652E576964746805000000000000 - 009205400B53697A652E4865696768740500000000000000D003401453697A65 - 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 - 78464631353135313507585261646975730500000000000000C0004007595261 - 646975730500000000000000C00040000005545465787400095374796C654E61 + 6C74080C5374726F6B652E436F6C6F720709784646323032303230000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E + 696D6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB + 3F07496E7665727365090C50726F70657274794E616D65060C5374726F6B652E + 436F6C6F720A537461727456616C756507097846463230323032300953746F70 + 56616C756507097846463430343034300754726967676572062049734D6F7573 + 654F7665723D747275653B4973466F63757365643D66616C73650E5472696767 + 6572496E7665727365062149734D6F7573654F7665723D66616C73653B497346 + 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 + 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 + 4475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F + 70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C + 756507097846463430343034300953746F7056616C7565070978464632413832 + 45320754726967676572061F49734D6F7573654F7665723D747275653B497346 + 6F63757365643D747275650E54726967676572496E7665727365062049734D6F + 7573654F7665723D747275653B4973466F63757365643D66616C736500000754 + 4C61796F757400095374796C654E616D6506056172726F7705416C69676E0708 + 46697452696768740B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000 + 0000005ED99705400A506F736974696F6E2E59050000000000000080FF3F0A53 + 697A652E5769647468050000000000889AB803400B53697A652E486569676874 + 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060A52656374616E + 676C653105416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207 + 097846463330333033300748697454657374080A53697A652E57696474680500 + 00000000889AB803400B53697A652E4865696768740500000000000000B80340 + 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 + 6E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650614436F6C6F72416E696D6174696F6E315374796C65084475726174 + 696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3330333033300953746F7056616C756507097846463430343034300754726967 + 676572062049734D6F7573654F7665723D747275653B4973466F63757365643D + 66616C73650E54726967676572496E7665727365062149734D6F7573654F7665 + 723D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C + 756507097846463430343034300953746F7056616C7565070978464631373537 + 39430754726967676572061F4973466F63757365643D747275653B49734D6F75 + 73654F7665723D7472756500000007544C61796F757400095374796C654E616D + 6506074C61796F75743105416C69676E070643656E7465720C4D617267696E73 + 2E4C656674050000000000000080FF3F0A53697A652E57696474680500000000 + 000000A002400B53697A652E4865696768740500000000000000C00140145369 + 7A652E506C6174666F726D44656661756C74080005545061746800095374796C + 654E616D650605506174683105416C69676E0706436C69656E7409446174612E + 506174680A3400000004000000000000000000C8420000C84201000000000096 + 430000C842010000000000484300009643030000000000C8420000C8420A4669 + 6C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A65 + 2E57696474680500000000000000A002400B53697A652E486569676874050000 + 0000000000C001401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E650000000000000C5442727573684F626A + 65637400095374796C654E616D65060973656C656374696F6E0B42727573682E + 436F6C6F720709783936324138324532000007544C61796F757400095374796C + 654E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D6172 + 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 00F003400E4D617267696E732E426F74746F6D05000000000000008000400A53 + 697A652E576964746805000000000000008805400B53697A652E486569676874 + 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 + 080000005450463007544C61796F757400095374796C654E616D650611616E69 + 696E64696361746F727374796C6505416C69676E070643656E74657207566973 + 69626C6508085461624F72646572025000045441726300095374796C654E616D + 65060341726305416C69676E0708436F6E74656E74730748697454657374080D + 526F746174696F6E416E676C650500000000000000B407400A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 0000C804401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F720708636C615768697465105374726F6B652E546869636B6E + 65737305000000000000008001400A5374726F6B652E4361700705526F756E64 + 08456E64416E676C650500000000000000B405C0000F54466C6F6174416E696D + 6174696F6E00095374796C654E616D650603616E6907456E61626C6564090844 + 75726174696F6E050000000000000080FF3F044C6F6F70090C50726F70657274 + 794E616D65060D526F746174696F6E416E676C650A537461727456616C756505 + 000000000000000000000953746F7056616C75650500000000000000B4074007 + 54726967676572060E497356697369626C653D74727565000000005450463007 + 544C61796F757400095374796C654E616D650613657870616E64657262757474 + 6F6E7374796C6505416C69676E070643656E7465720B4D617267696E732E546F + 70050000000000000080FF3F0A53697A652E57696474680500000000000000B0 + 03400B53697A652E4865696768740500000000000000B003401453697A652E50 + 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 + 7202550005545061746800095374796C654E616D650605506174683105416C69 + 676E070643656E74657209446174612E506174680A3400000004000000000000 + 000000C8420000C84201000000000096430000C8420100000000004843000096 + 43030000000000C8420000C8420A46696C6C2E436F6C6F720708636C61576869 + 74650748697454657374080D526F746174696F6E416E676C6505000000000000 + 00B405400A53697A652E57696474680500000000000000A002400B53697A652E + 4865696768740500000000000000C001401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F61 + 74416E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D + 6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0D + 496E746572706F6C6174696F6E070843697263756C61720C50726F7065727479 + 4E616D65060D526F746174696F6E416E676C650A537461727456616C75650500 + 000000000000B405400953746F7056616C756505000000000000000000000754 + 726967676572060F4973457870616E6465643D747275650E5472696767657249 + 6E766572736506104973457870616E6465643D66616C73650000000054504630 + 07544C61796F757400095374796C654E616D650615657870616E646572636865 + 636B626F787374796C6505416C69676E070643656E7465720A53697A652E5769 + 64746805000000000000008406400B53697A652E486569676874050000000000 + 00008404401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F72646572025B0007544C61796F75740005416C69676E07 + 044C6566740A53697A652E57696474680500000000000000C003400B53697A65 + 2E48656967687405000000000000008404401453697A652E506C6174666F726D + 44656661756C7408000554506174680005416C69676E0706436C69656E740944 + 6174612E506174680AD80100002700000000000000FEC8BA4402E79244020000 + 002592AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FEB09E + 440200000093A4A4446A0C9F44020000004A80AC44FC79AA4402000000046EBA + 44FC79AA44020000004A00C844FC79AA44020000000080CF44FEB09E44020000 + 000080CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402E792 + 4402000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B876BF + 44FE309744020000000277C344EEA09A44020000000277C34404DE9E44020000 + 000277C344121BA34402000000B876BF44008CA64402000000FE88BA44008CA6 + 44020000004C9BB544008CA64402000000009CB144121BA34402000000009CB1 + 4404DE9E4402000000009CB144EEA09A44020000004C9BB544FE309744020000 + 00FE88BA44FE309744000000000080BA44045E9B4402000000146EB844045E9B + 440200000000C0B64454F79C440200000000C0B64400F09E440200000000C0B6 + 44ACE8A04402000000146EB844FC81A244020000000080BA44FC81A244020000 + 00EC91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400F09E + 44020000000040BE4454F79C4402000000EC91BC44045E9B44020000000080BA + 44045E9B440A46696C6C2E436F6C6F7207097836303030303030300748697454 + 657374080C4D617267696E732E4C65667405000000000000008000400B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 + 0000008000400A53697A652E57696474680500000000000000A003400B53697A + 652E4865696768740500000000000000E803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650857726170 + 4D6F64650703466974000F54436F6C6F72416E696D6174696F6E000844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097836303030303030300953 + 746F7056616C75650708636C61426C61636B0754726967676572060E49734368 + 65636B65643D7472756500000F54436F6C6F72416E696D6174696F6E00084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650708636C61426C61636B09 + 53746F7056616C756507097836303030303030300754726967676572060F4973 + 436865636B65643D66616C73650000000005545465787400095374796C654E61 6D6506047465787405416C69676E0706436C69656E74064C6F636B6564090748 - 697454657374080C4D617267696E732E4C6566740500000000000000A001400B + 697454657374080C4D617267696E732E4C65667405000000000000008002400B 4D617267696E732E546F7005000000000000008000400D4D617267696E732E52 - 696768740500000000000000A001400E4D617267696E732E426F74746F6D0500 - 0000000000008000400A53697A652E57696474680500000000000000FC04400B - 53697A652E4865696768740500000000000000B003401453697A652E506C6174 - 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F - 6C6F720708636C6157686974650000005450463007544C61796F757400095374 - 796C654E616D65060C6C697374626F787374796C6505416C69676E070643656E - 7465720A53697A652E5769647468050000000000FFFFE905400B53697A652E48 - 656967687405000000000000008306401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F72646572020D000C54427275 - 73684F626A65637400095374796C654E616D650618416C7465726E6174696E67 - 526F774261636B67726F756E640B42727573682E436F6C6F7207097846463243 - 3243324300000A5452656374616E676C6500095374796C654E616D65060A6261 - 636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F - 6C6F720709784646323032303230064C6F636B6564090748697454657374080C - 50616464696E672E4C65667405000000000000008000400B50616464696E672E - 546F7005000000000000008000400D50616464696E672E526967687405000000 - 000000008000400E50616464696E672E426F74746F6D05000000000000008000 - 400A53697A652E5769647468050000000000FFFFE905400B53697A652E486569 - 67687405000000000000008306401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313507585261 - 646975730500000000000000C0004007595261646975730500000000000000C0 - 00400007544C61796F757400095374796C654E616D650607636F6E74656E7405 - 416C69676E0706436C69656E740C436C69704368696C6472656E090A53697A65 - 2E5769647468050000000000FFFFC105400B53697A652E486569676874050000 - 0000000000DE05401453697A652E506C6174666F726D44656661756C7408000A - 5452656374616E676C6500095374796C654E616D65060973656C656374696F6E - 0A46696C6C2E436F6C6F7207097846463241383245320748697454657374080A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000C804401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 00000000C0004007595261646975730500000000000000C0004000000A545265 - 6374616E676C6500095374796C654E616D650610666F637573656473656C6563 - 74696F6E0A46696C6C2E436F6C6F720709784646324138324532074869745465 - 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 - 65696768740500000000000000C804401453697A652E506C6174666F726D4465 - 6661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B652E - 446173680703446F7407585261646975730500000000000000C0004007595261 - 646975730500000000000000C000400000000A545363726F6C6C426172000953 - 74796C654E616D65060A767363726F6C6C62617205416C69676E070552696768 - 740B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 - 74696F6E0708566572746963616C0A506F736974696F6E2E58050000000000FF - FFC505400A506F736974696F6E2E5905000000000000008000400A53697A652E - 576964746805000000000000008003400B53697A652E48656967687405000000 - 00000000DE05401453697A652E506C6174666F726D44656661756C740800000A - 545363726F6C6C42617200095374796C654E616D65060A687363726F6C6C6261 - 7205416C69676E0706426F74746F6D0B536D616C6C4368616E67650500000000 - 0000000000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A50 - 6F736974696F6E2E5805000000000000008000400A506F736974696F6E2E5905 - 00000000000000E205400A53697A652E5769647468050000000000FFFFE10540 - 0B53697A652E48656967687405000000000000008003401453697A652E506C61 - 74666F726D44656661756C740800000F54536D616C6C5363726F6C6C42617200 - 095374796C654E616D65060F76736D616C6C7363726F6C6C62617205416C6967 - 6E070552696768740B536D616C6C4368616E676505000000000000000000000B - 4F7269656E746174696F6E0708566572746963616C0C4D617267696E732E4C65 - 667405000000000000008000400A506F736974696F6E2E580500000000000000 - C605400A506F736974696F6E2E5905000000000000008000400A53697A652E57 - 6964746805000000000000008002400B53697A652E4865696768740500000000 - 0000008002401453697A652E506C6174666F726D44656661756C740807566973 - 69626C650800000F54536D616C6C5363726F6C6C42617200095374796C654E61 - 6D65060F68736D616C6C7363726F6C6C62617205416C69676E0706426F74746F - 6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 - 74696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000 - 000000008000400A506F736974696F6E2E5805000000000000008000400A506F - 736974696F6E2E590500000000000000E205400A53697A652E57696474680500 - 0000000000009606400B53697A652E4865696768740500000000000000800240 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650800 - 0000005450463007544C61796F757400095374796C654E616D65060E706F7075 - 7063656C6C7374796C6505416C69676E070643656E7465720756697369626C65 - 08085461624F72646572020E0007544C61796F75740005416C69676E07055269 - 6768740A506F736974696F6E2E5805000000000000008C04400A53697A652E57 - 696474680500000000000000F002400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C740800055450 - 6174680005416C69676E070643656E74657209446174612E506174680A400000 - 000500000000000000000000000000803F010000000000803F0000803F010000 - 000000003F0000000001000000000000000000803F0300000000000000000000 + 69676874050000000000000080FF3F0A53697A652E5769647468050000000000 + 0000C605400B53697A652E4865696768740500000000000000F803401453697A + 652E506C6174666F726D44656661756C7408165465787453657474696E67732E + 466F6E74436F6C6F720709784646454545454545165465787453657474696E67 + 732E486F727A416C69676E07074C656164696E670000005450463007544C6179 + 6F757400095374796C654E616D65060A70616E656C7374796C6505416C69676E + 070643656E7465720A53697A652E57696474680500000000000000C006400B53 + 697A652E4865696768740500000000000000A406401453697A652E506C617466 + 6F726D44656661756C74080756697369626C6508085461624F72646572026100 + 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 + 46463230323032300A53697A652E57696474680500000000000000C006400B53 + 697A652E4865696768740500000000000000A406401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 5450463007544C61796F757400095374796C654E616D65061970726F67726573 + 736261726D696E696572726F727374796C6505416C69676E070643656E746572 + 0A53697A652E576964746805000000000033338505400B53697A652E48656967 + 68740500000000009999E104401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720229000A5452656374616E + 676C6500095374796C654E616D65060668747261636B05416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F63 + 6B6564090748697454657374080A53697A652E57696474680500000000003333 + 8505400B53697A652E4865696768740500000000009999E104401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E65000A5452656374616E676C6500095374796C654E616D65060A68696E6469 + 6361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207097846 + 46453232413241064C6F636B6564090748697454657374080A53697A652E5769 + 6474680500000000000000C804400B53697A652E486569676874050000000000 + 9999E104401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E650000000A5452656374616E676C650009537479 + 6C654E616D65060676747261636B05416C69676E0708436F6E74656E74730A46 + 696C6C2E436F6C6F720709784646343034303430064C6F636B65640907486974 + 54657374080A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A54526563 + 74616E676C6500095374796C654E616D65060A76696E64696361746F7205416C + 69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846464532324132 + 41064C6F636B6564090748697454657374080A506F736974696F6E2E59050000 + 00000099998D04400A53697A652E576964746805000000000033338505400B53 + 697A652E4865696768740500000000000000A803401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 005450463007544C61796F757400095374796C654E616D65061470726F677265 + 73736261726D696E697374796C6505416C69676E070643656E7465720A53697A + 652E576964746805000000000033338505400B53697A652E4865696768740500 + 000000009999E104401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508085461624F72646572021A000A5452656374616E676C6500 + 095374796C654E616D65060668747261636B05416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B656409 + 0748697454657374080A53697A652E576964746805000000000033338505400B + 53697A652E4865696768740500000000009999E104401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000A + 5452656374616E676C6500095374796C654E616D65060A68696E64696361746F + 7205416C69676E07044C6566740A46696C6C2E436F6C6F720709784646324138 + 324532064C6F636B6564090748697454657374080A53697A652E576964746805 + 00000000000000C804400B53697A652E4865696768740500000000009999E104 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E650000000A5452656374616E676C6500095374796C654E61 + 6D65060676747261636B05416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F720709784646343034303430064C6F636B6564090748697454657374 + 080A53697A652E576964746805000000000033338505400B53697A652E486569 + 6768740500000000009999E104401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E65000A5452656374616E67 + 6C6500095374796C654E616D65060A76696E64696361746F7205416C69676E07 + 06426F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F + 636B6564090748697454657374080A506F736974696F6E2E5905000000000099 + 998D04400A53697A652E576964746805000000000033338505400B53697A652E + 4865696768740500000000000000A803401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046 + 3007544C61796F757400095374796C654E616D65060D657870616E6465727374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 000000C08407400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F726465720240000A5452656374616E676C6500095374796C654E616D6506 + 0B626772656374616E676C6505416C69676E0708436F6E74656E74730C436C69 + 704368696C6472656E090A46696C6C2E436F6C6F720709784646324432443244 + 064C6F636B6564090748697454657374080A53697A652E576964746805000000 + 000000C08407400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F + 7207097846463135313531350007544C61796F757400095374796C654E616D65 + 06074C61796F75743305416C69676E0703546F700A53697A652E576964746805 + 000000000000C08407400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080007544C61796F7574 + 00095374796C654E616D6506074C61796F75743405416C69676E0708436F6E74 + 656E74730A53697A652E576964746805000000000000C08407400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C7408000A5452656374616E676C6500095374796C654E616D65060A + 52656374616E676C653205416C69676E0708436F6E74656E74730A46696C6C2E + 436F6C6F720709784646323532353235064C6F636B6564090748697454657374 + 080A53697A652E576964746805000000000000C08407400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313500000A54 + 52656374616E676C6500095374796C654E616D65060A52656374616E676C6531 + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 313531353135064C6F636B6564090748697454657374080A53697A652E576964 + 746805000000000000C08407400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E000953 + 74796C654E616D650614466C6F6174416E696D6174696F6E315374796C650844 + 75726174696F6E0500000000009A9999FD3F0D496E746572706F6C6174696F6E + 070843697263756C61720C50726F70657274794E616D6506075363616C652E58 + 0A537461727456616C7565050000000000000080FF3F0953746F7056616C7565 + 05000000000000000000000754726967676572060F4973457870616E6465643D + 747275650E54726967676572496E766572736506104973457870616E6465643D + 66616C73650000000007544C61796F757400095374796C654E616D6506074C61 + 796F75743305416C69676E0708436F6E74656E74730A53697A652E5769647468 + 05000000000000C08407400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080005545465787400 + 095374796C654E616D6506047465787405416C69676E07044C65667408417574 + 6F53697A65090A436C6970506172656E7409064C6F636B656409074869745465 + 7374080C4D617267696E732E4C6566740500000000000000A002400A506F7369 + 74696F6E2E580500000000000000A002400A53697A652E576964746805000000 + 000000B8C703400B53697A652E4865696768740500000000000060FF02401453 + 697A652E506C6174666F726D44656661756C7408045465787406045465787416 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 165465787453657474696E67732E486F727A416C69676E07074C656164696E67 + 0000000F54457870616E646572427574746F6E00095374796C654E616D650606 + 627574746F6E05416C69676E07055269676874064C6F636B6564090A506F7369 + 74696F6E2E580500000000000080F506400A53697A652E576964746805000000 + 00000000A003400B53697A652E4865696768740500000000000000C803401453 + 697A652E506C6174666F726D44656661756C740800000000005450463007544C + 61796F757400095374796C654E616D650615616E69696E64696361746F72686F + 727A7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000040C006400B53697A652E486569676874050000000000000080 + 00401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F726465720242000A5452656374616E676C6500095374796C654E + 616D65060A52656374616E676C653105416C69676E0706436C69656E740C436C + 69704368696C6472656E090A46696C6C2E436F6C6F7207097846463430343034 + 300A53697A652E57696474680500000000000040C006400B53697A652E486569 + 67687405000000000000008000401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E650005544C696E65000953 + 74796C654E616D6506054C696E6531084C696E65547970650706426F74746F6D + 0A53697A652E57696474680500000000000000A00B400B53697A652E48656967 + 687405000000000000008000401453697A652E506C6174666F726D4465666175 + 6C74080C5374726F6B652E436F6C6F720709784646324138324532105374726F + 6B652E546869636B6E65737305000000000000008002400B5374726F6B652E44 + 617368070444617368000F54466C6F6174416E696D6174696F6E00095374796C + 654E616D650603616E6907456E61626C656409084475726174696F6E05000000 + 00000000800340044C6F6F70090C50726F70657274794E616D65060A506F7369 + 74696F6E2E580A537461727456616C75650500000000000000C808C00953746F + 7056616C756505000000000000000000000754726967676572060E4973566973 + 69626C653D7472756500000000005450463007544C61796F757400095374796C + 654E616D65060E6C6F67627574746F6E7374796C6505416C69676E070643656E + 7465720A53697A652E57696474680500000000000000C005400B53697A652E48 + 65696768740500000000000000C005401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C6508085461624F726465720248000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0706436C69656E740C436C69704368696C6472656E090A436C69705061 + 72656E74090A46696C6C2E436F6C6F7207097846463230323032300748697454 + 657374080A53697A652E57696474680500000000000000C005400B53697A652E + 4865696768740500000000000000C005401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463230323032300953746F7056616C756507097846463430 + 343034300754726967676572063049734D6F7573654F7665723D747275653B49 + 73507265737365643D66616C73653B4973466F63757365643D66616C73650E54 + 726967676572496E7665727365063149734D6F7573654F7665723D66616C7365 + 3B4973507265737365643D66616C73653B4973466F63757365643D66616C7365 + 00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562 + 7574746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F + 720A537461727456616C756507097846463430343034300953746F7056616C75 + 6507097846463137353739430754726967676572062F4973507265737365643D + 747275653B49734D6F7573654F7665723D747275653B4973466F63757365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3308447572617469 + 6F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463241383245320953746F + 7056616C756507097846463137353739430754726967676572062E4973507265 + 737365643D747275653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D747275650E54726967676572496E7665727365062F497350726573 + 7365643D66616C73653B49734D6F7573654F7665723D747275653B4973466F63 + 757365643D74727565000005545061746800095374796C654E616D6506055061 + 74683105416C69676E0706436C69656E7409446174612E506174680A5C020000 + 32000000000000000000A841CDCCCC40010000000000A8410000C04101000000 + 0000C03F0000C041010000000000C03F00000000010000009A99694100000000 + 010000000000A841CDCCCC40030000000000A841CDCCCC400000000000009C41 + 0000F04001000000000058410000F04001000000000058410000C03F01000000 + 000040400000C03F01000000000040400000B4410100000000009C410000B441 + 0100000000009C410000F0400300000000009C410000F0400000000000004041 + 0000F04001000000000090400000F04001000000000090400000C04001000000 + 000040410000C04001000000000040410000F04003000000000040410000F040 + 0000000000009040000010410100000000009041000010410100000000009041 + 0000284101000000000090400000284101000000000090400000104103000000 + 0000904000001041000000000000904000004041010000000000904100004041 + 0100000000009041000058410100000000009040000058410100000000009040 + 0000404103000000000090400000404100000000000090400000704101000000 + 0000904100007041010000000000904100008441010000000000904000008441 + 0100000000009040000070410300000000009040000070410000000000009040 + 00009041010000000000904100009041010000000000904100009C4101000000 + 0000904000009C41010000000000904000009041030000000000904000009041 + 00000000000070410000C04001000000333393410000C0400100000000007041 + 6666264001000000000070410000C04003000000000070410000C0400A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080C4D61726769 + 6E732E4C6566740500000000000000A002400B4D617267696E732E546F700500 + 000000000000A002400D4D617267696E732E52696768740500000000000000A0 + 02400E4D617267696E732E426F74746F6D0500000000000000A002400A53697A + 652E576964746805000000000000009805400B53697A652E4865696768740500 + 0000000000009805401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6508577261704D6F6465070346697400 + 0000005450463007544C61796F757400095374796C654E616D65061B74726565 + 76696577657870616E646572627574746F6E7374796C6505416C69676E070643 + 656E7465720B4D617267696E732E546F70050000000000000080FF3F0A53697A + 652E57696474680500000000000000B003400B53697A652E4865696768740500 + 000000000000B003401453697A652E506C6174666F726D44656661756C740808 + 5461624F72646572024C0005545061746800095374796C654E616D6506055061 + 74683105416C69676E070643656E74657209446174612E506174680A34000000 + 04000000000000000000C8420000C84201000000000096430000C84201000000 + 0000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F7207 + 08636C6157686974650748697454657374080D526F746174696F6E416E676C65 + 0500000000000000B405C00A53697A652E57696474680500000000000000A002 + 400B53697A652E4865696768740500000000000000C001401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000F54466C6F6174416E696D6174696F6E00095374796C654E616D650614466C + 6F6174416E696D6174696F6E315374796C65084475726174696F6E0500000000 + 00CDCCCCFB3F0D496E746572706F6C6174696F6E070843697263756C61720C50 + 726F70657274794E616D65060D526F746174696F6E416E676C650A5374617274 + 56616C75650500000000000000B405C00953746F7056616C7565050000000000 + 00000000000754726967676572060F4973457870616E6465643D747275650E54 + 726967676572496E766572736506104973457870616E6465643D66616C736500 + 000000545046300A5452656374616E676C6500095374796C654E616D65061174 + 726565766965776974656D7374796C6505416C69676E070643656E7465720946 + 696C6C2E4B696E6407044E6F6E650748697454657374080553696465730B0642 + 6F74746F6D000A53697A652E57696474680500000000000000AE05400B53697A + 652E4865696768740500000000000000A004401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 350756697369626C6508000C545370656564427574746F6E00095374796C654E + 616D650606627574746F6E05416C69676E07044C6566740A53697A652E576964 + 74680500000000000000A003400B53697A652E48656967687405000000000000 + 00A004401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B7570061B7472656576696577657870616E646572627574746F6E7374 + 796C65000007544C61796F75740005416C69676E0708436F6E74656E74730C4D + 617267696E732E4C6566740500000000000000A003400A53697A652E57696474 + 6805000000000000008605400B53697A652E4865696768740500000000000000 + A004401453697A652E506C6174666F726D44656661756C740800095443686563 + 6B426F7800095374796C654E616D650605636865636B05416C69676E07044C65 + 66740843616E466F637573081244697361626C65466F63757345666665637409 + 0A53697A652E57696474680500000000000000A003400B53697A652E48656967 + 68740500000000000000A004401453697A652E506C6174666F726D4465666175 + 6C740800000654476C79706800095374796C654E616D65060A676C7970687374 + 796C650C4D617267696E732E4C65667405000000000000008000400B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 05000000000000008000400E4D617267696E732E426F74746F6D050000000000 + 000080FF3F05416C69676E07044C6566740A506F736974696F6E2E5805000000 + 00000000B003400A506F736974696F6E2E59050000000000000080FF3F0A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 000000000000009804401453697A652E506C6174666F726D44656661756C7408 + 000005545465787400095374796C654E616D6506047465787405416C69676E07 + 06436C69656E74064C6F636B6564090748697454657374080A53697A652E5769 + 6474680500000000000000BC04400B53697A652E486569676874050000000000 + 0000A004401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746515546578 + 7453657474696E67732E576F72645772617008165465787453657474696E6773 + 2E486F727A416C69676E07074C656164696E670000000A5452656374616E676C + 650005416C69676E0708436F6E74656E74730946696C6C2E4B696E6407044E6F + 6E650748697454657374080E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0553696465730B044C656674000A53697A652E5769647468050000 + 0000000000AE05400B53697A652E48656967687405000000000000009C044014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646324138324532105374726F6B652E546869636B6E6573730500 + 0000000000008000400000005450463007544C61796F757400095374796C654E + 616D65060D74726565766965777374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000E106400B53697A652E48656967 + 687405000000000000808107401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720252000C5442727573684F + 626A65637400095374796C654E616D650618416C7465726E6174696E67526F77 + 4261636B67726F756E640B42727573682E436F6C6F7207097830464646464646 + 4600000A5452656374616E676C6500095374796C654E616D65060A6261636B67 + 726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72 + 0709784646323032303230064C6F636B6564090748697454657374080C506164 + 64696E672E4C656674050000000000000080FF3F0D50616464696E672E526967 + 6874050000000000000080FF3F0A53697A652E57696474680500000000000000 + E106400B53697A652E48656967687405000000000000808107401453697A652E + 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 + 46463135313531350007544C61796F757400095374796C654E616D650607636F + 6E74656E7405416C69676E0706436C69656E740C436C69704368696C6472656E + 090B4D617267696E732E546F70050000000000000080FF3F0A53697A652E5769 + 6474680500000000000000CD06400B53697A652E486569676874050000000000 + 0000F006401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060973656C656374696F6E0A4669 + 6C6C2E436F6C6F7207097846463241383245320748697454657374080A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000000000C804401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C650009 + 5374796C654E616D650610666F637573656473656C656374696F6E0A46696C6C + 2E436F6C6F7207097846463241383245320748697454657374080A53697A652E + 57696474680500000000000000C804400B53697A652E48656967687405000000 + 00000000C804401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E650B5374726F6B652E446173680703446F74 + 0000000A545363726F6C6C42617200095374796C654E616D65060A767363726F + 6C6C62617205416C69676E070552696768740B536D616C6C4368616E67650500 + 0000000000000000000B4F7269656E746174696F6E0708566572746963616C0C + 4D617267696E732E4C65667405000000000000008000400A506F736974696F6E + 2E580500000000000000D006400A53697A652E57696474680500000000000000 + 8003400B53697A652E4865696768740500000000000000F106401453697A652E + 506C6174666F726D44656661756C740800000A545363726F6C6C426172000953 + 74796C654E616D65060A687363726F6C6C62617205416C69676E0706426F7474 + 6F6D0B536D616C6C4368616E676505000000000000000000000B4F7269656E74 + 6174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F70050000 + 00000000008000400A506F736974696F6E2E58050000000000000080FF3F0A50 + 6F736974696F6E2E590500000000000000F306400A53697A652E576964746805 + 00000000000000DF06400B53697A652E48656967687405000000000000008003 + 401453697A652E506C6174666F726D44656661756C740800000F54536D616C6C + 5363726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F + 6C6C62617205416C69676E070552696768740B536D616C6C4368616E67650500 + 0000000000000000000B4F7269656E746174696F6E0708566572746963616C0C + 4D617267696E732E4C65667405000000000000008000400A506F736974696F6E + 2E580500000000000000C605400A506F736974696F6E2E590500000000000000 + 8000400A53697A652E576964746805000000000000008002400B53697A652E48 + 656967687405000000000000008002401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C650800000F54536D616C6C5363726F6C6C4261 + 7200095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C + 69676E0706426F74746F6D0B536D616C6C4368616E6765050000000000000000 + 00000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D61726769 + 6E732E546F7005000000000000008000400A506F736974696F6E2E5805000000 + 000000008000400A506F736974696F6E2E590500000000000000E205400A5369 + 7A652E576964746805000000000000009606400B53697A652E48656967687405 + 000000000000008002401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508000000005450463007544C61796F757400095374796C65 + 4E616D65061670726F677265737362617266696E6973687374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000003333850540 + 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 + 74666F726D44656661756C74080756697369626C6508085461624F7264657202 + 46000A5452656374616E676C6500095374796C654E616D65060668747261636B + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 323032303230064C6F636B6564090748697454657374080A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000099 + 99E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F720709784646313531353135000A5452656374616E676C650009 + 5374796C654E616D65060A68696E64696361746F7205416C69676E07044C6566 + 740A46696C6C2E436F6C6F720709784646324345323434064C6F636B65640907 + 48697454657374080C4D617267696E732E4C656674050000000000000080FF3F + 0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E + 5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D05 + 0000000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F + 0A506F736974696F6E2E59050000000000000080FF3F0A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000009999 + D904401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E650000000A5452656374616E676C6500095374796C65 + 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646323032303230064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080C5374726F6B652E436F6C6F720709784646313531353135000A + 5452656374616E676C6500095374796C654E616D65060A76696E64696361746F + 7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632 + 4345323434064C6F636B6564090748697454657374080C4D617267696E732E4C + 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F + 6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000000099 + 998904400A53697A652E576964746805000000000033338105400B53697A652E + 4865696768740500000000000000A803401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000000545046 + 3007544C61796F757400095374796C654E616D65061A70726F67726573736261 + 726D696E6966696E6973687374796C6505416C69676E070643656E7465720A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508085461624F726465720251000A5452656374616E676C + 6500095374796C654E616D65060668747261636B05416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B65 + 64090748697454657374080A53697A652E576964746805000000000033338505 + 400B53697A652E4865696768740500000000009999E104401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 000A5452656374616E676C6500095374796C654E616D65060A68696E64696361 + 746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632 + 4345323434064C6F636B6564090748697454657374080A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E650000000A5452656374616E676C6500095374796C65 + 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E65000A545265637461 + 6E676C6500095374796C654E616D65060A76696E64696361746F7205416C6967 + 6E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632434532343406 + 4C6F636B6564090748697454657374080A506F736974696F6E2E590500000000 + 0099998D04400A53697A652E576964746805000000000033338505400B53697A + 652E4865696768740500000000000000A803401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054 + 50463007544C61796F757400095374796C654E616D65061177696E646F77626F + 726465727374796C6505416C69676E070643656E7465720A53697A652E576964 + 746805000000000056D5AF07400B53697A652E48656967687405000000000000 + 00B306401453697A652E506C6174666F726D44656661756C7408075669736962 + 6C6508085461624F72646572023B000A5452656374616E676C6500095374796C + 654E616D6506046D61736B05416C69676E0708436F6E74656E74730A46696C6C + 2E436F6C6F7207097846463130313031300A53697A652E576964746805000000 + 000056D5AF07400B53697A652E4865696768740500000000000000B306401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E650756697369626C6508000007544C61796F757400095374796C65 + 4E616D6506046C65667405416C69676E07084D6F73744C656674064C6F636B65 + 64090A506F736974696F6E2E5905000000000000008004400A53697A652E5769 + 64746805000000000000008001400B53697A652E486569676874050000000000 + 00009306401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C650005416C69676E07084D6F73744C6566740A46696C6C2E436F + 6C6F7207097846463230323032300748697454657374080553696465730B044C + 656674055269676874000A53697A652E57696474680500000000000000800140 + 0B53697A652E48656967687405000000000000008F06401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 353135313500000A5452656374616E676C6500095374796C654E616D65060A52 + 656374616E676C653105416C69676E070A4D6F7374426F74746F6D13456E6162 + 6C6544726167486967686C69676874080A46696C6C2E436F6C6F720709784646 + 3230323032300748697454657374080A506F736974696F6E2E59050000000000 + 00008F06400553696465730B044C65667406426F74746F6D000A53697A652E57 + 6964746805000000000000008001400B53697A652E4865696768740500000000 + 0000008001401453697A652E506C6174666F726D44656661756C74080C537472 + 6F6B652E436F6C6F7207097846463135313531350007544C61796F7574000953 + 74796C654E616D6506074C61796F75743305416C69676E07094D6F7374526967 + 68740A506F736974696F6E2E580500000000000000C000400A53697A652E5769 + 647468050000000000000080FF3F0B53697A652E486569676874050000000000 + 00008001401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060A52656374616E676C65310541 + 6C69676E0703546F700A46696C6C2E436F6C6F72070978464631353135313507 + 48697454657374080A53697A652E5769647468050000000000000080FF3F0B53 + 697A652E486569676874050000000000000080FF3F1453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000 + 000007544C61796F757400095374796C654E616D650605726967687405416C69 + 676E07094D6F73745269676874064C6F636B6564090A506F736974696F6E2E58 + 05000000000056D5AD07400A506F736974696F6E2E5905000000000000008004 + 400A53697A652E576964746805000000000000008001400B53697A652E486569 + 67687405000000000000009306401453697A652E506C6174666F726D44656661 + 756C7408000A5452656374616E676C650005416C69676E07094D6F7374526967 + 68740A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080553696465730B044C656674055269676874000A53697A652E576964746805 + 000000000000008001400B53697A652E48656967687405000000000000008F06 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F72070978464631353135313500000A5452656374616E676C6500095374 + 796C654E616D65060A52656374616E676C653105416C69676E070A4D6F737442 + 6F74746F6D13456E61626C6544726167486967686C69676874080A46696C6C2E + 436F6C6F7207097846463230323032300748697454657374080A506F73697469 + 6F6E2E5905000000000000008F06400553696465730B06426F74746F6D055269 + 676874000A53697A652E576964746805000000000000008001400B53697A652E + 48656967687405000000000000008001401453697A652E506C6174666F726D44 + 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 + 07544C61796F757400095374796C654E616D6506074C61796F75743305416C69 + 676E07084D6F73744C6566740A53697A652E5769647468050000000000000080 + FF3F0B53697A652E48656967687405000000000000008001401453697A652E50 + 6C6174666F726D44656661756C7408000A5452656374616E676C650009537479 + 6C654E616D65060A52656374616E676C653105416C69676E0703546F700A4669 + 6C6C2E436F6C6F7207097846463135313531350748697454657374080A53697A + 652E5769647468050000000000000080FF3F0B53697A652E4865696768740500 + 00000000000080FF3F1453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E6500000000000A5452656374616E676C + 650005416C69676E07074D6F7374546F700A46696C6C2E436F6C6F7207097846 + 46323032303230064C6F636B6564090748697454657374080A53697A652E5769 + 64746805000000000056D5AF07400B53697A652E486569676874050000000000 + 00008004401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F7207097846463135313531350007544C61796F757400095374 + 796C654E616D65060763617074696F6E05416C69676E0708436F6E74656E7473 + 064C6F636B6564090748697454657374090C4D617267696E732E4C6566740500 + 0000000000008001400B4D617267696E732E546F700500000000000000800140 + 0D4D617267696E732E526967687405000000000000008001400A53697A652E57 + 6964746805000000000056D5AB07400B53697A652E4865696768740500000000 + 000000E003401453697A652E506C6174666F726D44656661756C740800000754 + 4C61796F75740005416C69676E0706436C69656E74064C6F636B6564090C4D61 + 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F + 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 + 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A + 53697A652E576964746805000000000056D5AE07400B53697A652E4865696768 + 740500000000000000F003401453697A652E506C6174666F726D44656661756C + 74080007544C61796F75740005416C69676E07044C656674064C6F636B656409 + 0A53697A652E576964746805000000000000009002400B53697A652E48656967 + 68740500000000000000F003401453697A652E506C6174666F726D4465666175 + 6C7408000007544C61796F757400095374796C654E616D65060469636F6E064C + 6F636B6564090A506F736974696F6E2E5805000000000000009002400A506F73 + 6974696F6E2E590500000000000000E001400A53697A652E5769647468050000 + 0000000000C803400B53697A652E4865696768740500000000000000A8034014 + 53697A652E506C6174666F726D44656661756C7408000007544C61796F757400 + 095374796C654E616D65060773797362746E7305416C69676E0706436C69656E + 74064C6F636B6564090A53697A652E57696474680500000000005655AA07400B + 53697A652E4865696768740500000000000000F003401453697A652E506C6174 + 666F726D44656661756C7408000C545370656564427574746F6E00095374796C + 654E616D650605636C6F736505416C69676E07055269676874064C6F636B6564 + 090A506F736974696F6E2E5805000000000056559107400A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000000 + 00F003401453697A652E506C6174666F726D44656661756C74080B5374796C65 + 4C6F6F6B75700610636C6F7365627574746F6E7374796C6500000C5453706565 + 64427574746F6E00095374796C654E616D6506036D617805416C69676E070552 + 69676874064C6F636B6564090A506F736974696F6E2E58050000000000565581 + 07400A53697A652E576964746805000000000000008004400B53697A652E4865 + 696768740500000000000000F003401453697A652E506C6174666F726D446566 + 61756C74080B5374796C654C6F6F6B7570060E6D6178627574746F6E7374796C + 6500000C545370656564427574746F6E00095374796C654E616D650603726573 + 05416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E58 + 050000000000ACAAE206400A53697A652E576964746805000000000000008004 + 400B53697A652E4865696768740500000000000000F003401453697A652E506C + 6174666F726D44656661756C74080B5374796C654C6F6F6B7570060E72657362 + 7574746F6E7374796C6500000C545370656564427574746F6E00095374796C65 + 4E616D6506036D696E05416C69676E07055269676874064C6F636B6564090A50 + 6F736974696F6E2E58050000000000ACAAC206400A53697A652E576964746805 + 000000000000008004400B53697A652E4865696768740500000000000000F003 + 401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F + 6B7570060E6D696E627574746F6E7374796C6500000554546578740009537479 + 6C654E616D6506057469746C6505416C69676E0706436C69656E74064C6F636B + 6564090748697454657374080A53697A652E5769647468050000000000ACAAC2 + 06400B53697A652E4865696768740500000000000000F003401453697A652E50 + 6C6174666F726D44656661756C7408045465787406055469746C651654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746500000000 + 0007544C61796F757400095374796C654E616D650606636C69656E7405416C69 + 676E0706436C69656E74064C6F636B6564090748697454657374090A53697A65 + 2E576964746805000000000056D5AB07400B53697A652E486569676874050000 + 00000000008F06401453697A652E506C6174666F726D44656661756C74080000 + 07544C61796F757400095374796C654E616D650606626F74746F6D05416C6967 + 6E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E5805000000 + 000000008001400A506F736974696F6E2E590500000000000000AF06400A5369 + 7A652E576964746805000000000056D5AB07400B53697A652E48656967687405 + 000000000000008001401453697A652E506C6174666F726D44656661756C7408 + 000A5452656374616E676C6500095374796C654E616D6506047265637405416C + 69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080553696465730B03546F7006426F74746F6D000A5369 + 7A652E576964746805000000000056D5AB07400B53697A652E48656967687405 + 000000000000008001401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350000000054504630 + 07544C61796F757400095374796C654E616D6506136172726F77646F776E746F + 6F6C627574746F6E05416C69676E070643656E7465720A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + C803401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720201000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C43 + 6C69704368696C6472656E090A436C6970506172656E74090A46696C6C2E436F + 6C6F7207097830303230323032300748697454657374080A53697A652E576964 + 74680500000000000000C805400B53697A652E48656967687405000000000000 + 00C803401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E65000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108 + 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978303032303230 + 32300953746F7056616C75650709784646343034303430075472696767657206 + 3049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 + 653B4973466F63757365643D66616C73650E54726967676572496E7665727365 + 063149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 + 6C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D + 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 + 6D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463430343034300953746F7056616C7565070978464631373537394307 + 54726967676572062F4973507265737365643D747275653B49734D6F7573654F + 7665723D747275653B4973466F63757365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E33084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463241383245320953746F7056616C756507097846463137 + 353739430754726967676572062E4973507265737365643D747275653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D747275650E547269 + 67676572496E7665727365062F4973507265737365643D66616C73653B49734D + 6F7573654F7665723D747275653B4973466F63757365643D7472756500000005 + 545061746800095374796C654E616D6506047061746805416C69676E07064365 + 6E74657209446174612E506174680A3400000004000000000000000000C84200 + 00C84201000000000096430000C8420100000000004843000096430300000000 + 00C8420000C8420A46696C6C2E436F6C6F720708636C61576869746507486974 + 54657374080A53697A652E57696474680500000000000000A002400B53697A65 + 2E4865696768740500000000000000C001401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000005545465 + 787400095374796C654E616D6506047465787405416C69676E0706436C69656E + 740748697454657374080A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C740804546578740604546578741654657874536574 + 74696E67732E466F6E74436F6C6F720708636C6157686974650756697369626C + 65080000005450463007544C61796F757400095374796C654E616D65060D706F + 707570626F787374796C6505416C69676E070643656E7465720A53697A652E57 + 696474680500000000000000C805400B53697A652E4865696768740500000000 + 000000C803401453697A652E506C6174666F726D44656661756C740807566973 + 69626C6508085461624F726465720231000A5452656374616E676C6500095374 + 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 74080A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 + 696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0C5072 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097846463230323032300953746F7056616C756507097846463430343034 + 300754726967676572062049734D6F7573654F7665723D747275653B49735072 + 65737365643D66616C73650E54726967676572496E7665727365062149734D6F + 7573654F7665723D66616C73653B4973507265737365643D66616C736500000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F + 72416E696D6174696F6E325374796C65084475726174696F6E050000000000CD + CCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097846463430343034300953746F7056616C7565070978 + 46463241383245320754726967676572062049734D6F7573654F7665723D7472 + 75653B4973507265737365643D747275653B0E54726967676572496E76657273 + 65062049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C736500000007544C61796F75740005416C69676E070846697452696768740A + 506F736974696F6E2E5805000000000000009605400A53697A652E5769647468 + 0500000000000000C803400B53697A652E4865696768740500000000000000C8 + 03401453697A652E506C6174666F726D44656661756C74080005545061746800 + 05416C69676E070643656E74657209446174612E506174680A40000000050000 + 0000000000000000000000803F010000000000803F0000803F01000000000000 + 3F0000000001000000000000000000803F0300000000000000000000000A4669 + 6C6C2E436F6C6F720708636C6157686974650748697454657374080B4D617267 + 696E732E546F700500000000000000E001C00A53697A652E5769647468050000 + 00000000008002400B53697A652E486569676874050000000000000080014014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6500000554506174680005416C69676E070643656E7465720944 + 6174612E506174680A3400000004000000000000000000000000000000010000 + 000000803F00000000010000000000003F0000803F0300000000000000000000 000A46696C6C2E436F6C6F720708636C6157686974650748697454657374080B - 4D617267696E732E546F700500000000000000E001C00A53697A652E57696474 + 4D617267696E732E546F700500000000000000C001400A53697A652E57696474 6805000000000000008002400B53697A652E4865696768740500000000000000 8001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6500000554506174680005416C69676E070643656E74 - 657209446174612E506174680A34000000040000000000000000000000000000 - 00010000000000803F00000000010000000000003F0000803F03000000000000 - 00000000000A46696C6C2E436F6C6F720708636C615768697465074869745465 - 7374080B4D617267696E732E546F700500000000000000C001400A53697A652E - 576964746805000000000000008002400B53697A652E48656967687405000000 - 000000008001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6500000005545465787400095374796C654E - 616D6506047465787405416C69676E0706436C69656E74064C6F636B65640907 - 48697454657374080C4D617267696E732E4C6566740500000000000000A00140 - 0B4D617267696E732E546F7005000000000000008000400D4D617267696E732E - 52696768740500000000000000A001400E4D617267696E732E426F74746F6D05 - 000000000000008000400A53697A652E57696474680500000000000000C80340 - 0B53697A652E4865696768740500000000000000B804401453697A652E506C61 - 74666F726D44656661756C7408165465787453657474696E67732E466F6E7443 - 6F6C6F720708636C6157686974650000005450463007544C61796F7574000953 - 74796C654E616D65061070726F67726573736261727374796C6505416C69676E - 070643656E7465720A53697A652E576964746805000000000033338505400B53 - 697A652E4865696768740500000000009999E104401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572020F00 - 0A5452656374616E676C6500095374796C654E616D65060668747261636B0541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230 - 32303230064C6F636B6564090748697454657374080A53697A652E5769647468 - 05000000000033338505400B53697A652E4865696768740500000000009999E1 - 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313507585261646975730500000000000000 - C0004007595261646975730500000000000000C00040000A5452656374616E67 - 6C6500095374796C654E616D65060A68696E64696361746F7205416C69676E07 - 044C6566740A46696C6C2E436F6C6F720709784646324138324532064C6F636B - 6564090748697454657374080C4D617267696E732E4C65667405000000000000 - 0080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267 - 696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F74 - 746F6D050000000000000080FF3F0A506F736974696F6E2E5805000000000000 - 0080FF3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00009999D904401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0 - 004007595261646975730500000000000000C000400000000A5452656374616E - 676C6500095374796C654E616D65060676747261636B05416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 - 6B6564090748697454657374080A53697A652E57696474680500000000003333 - 8505400B53697A652E4865696768740500000000009999E104401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 464631353135313507585261646975730500000000000000C000400759526164 - 6975730500000000000000C00040000A5452656374616E676C6500095374796C - 654E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A - 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 - 7454657374080C4D617267696E732E4C656674050000000000000080FF3F0B4D - 617267696E732E546F70050000000000000080FF3F0D4D617267696E732E5269 - 676874050000000000000080FF3F0E4D617267696E732E426F74746F6D050000 - 000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A50 - 6F736974696F6E2E5905000000000099998904400A53697A652E576964746805 - 000000000033338105400B53697A652E4865696768740500000000000000A803 + 2E4B696E6407044E6F6E6500000005545465787400095374796C654E616D6506 + 047465787405416C69676E0706436C69656E740748697454657374080C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 050000000000000080FF3F0D4D617267696E732E526967687405000000000000 + 0080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53 + 697A652E576964746805000000000000009205400B53697A652E486569676874 + 0500000000000000B803401453697A652E506C6174666F726D44656661756C74 + 080454657874060454657874165465787453657474696E67732E466F6E74436F + 6C6F720708636C615768697465000000} + end + item + Platform = 'OSX Yosemite' + ResourcesBin = { + 464D585F5354594C4520322E3501060F6261636B67726F756E647374796C6503 + AF00060B627574746F6E7374796C6503EB04060D636865636B626F787374796C + 6503F3050609656469747374796C6503D4050609677269647374796C6503E608 + 060D67726F7570626F787374796C6503B402060F6865616465726974656D7374 + 796C6503F403060E696D61676563656C6C7374796C65033D01060A6C6162656C + 7374796C65032001060D6C697374626F78666F6F746572038B0106106C697374 + 626F786974656D7374796C6503520306126C697374626F78706C61696E686561 + 646572036C02060C6C697374626F787374796C6503B307060E706F7075706365 + 6C6C7374796C65038E03061070726F67726573736261727374796C6503020506 + 1170726F677265737363656C6C7374796C6503CB0206157363726F6C6C626172 + 626F74746F6D627574746F6E03740406147363726F6C6C62617268747261636B + 7374796C65033B0106137363726F6C6C6261726C656674627574746F6E038704 + 06147363726F6C6C6261727269676874627574746F6E038A04060E7363726F6C + 6C6261727374796C6503630406127363726F6C6C626172746F70627574746F6E + 03840406147363726F6C6C62617276747261636B7374796C65033B01060C7370 + 696E626F787374796C65038507060B7377697463687374796C6503ED01060F74 + 6162636F6E74726F6C7374796C6503F701060B746162646F747374796C65037F + 01060C7461626974656D7374796C65032B05060D7465787463656C6C7374796C + 6503A601060D7468756D626261727374796C65034C03060A7468756D62737479 + 6C65034402060D747261636B6261727374796C65034A0806096D656D6F737479 + 6C65037008060D73697A65677269707374796C6503FB04060E73746174757362 + 61727374796C6503DB01060C746F6F6C6261727374796C6503CA00061570726F + 67726573736261726572726F727374796C65030705060E6C696E6B6C6162656C + 7374796C65035B030613736D616C6C7363726F6C6C6261727374796C6503AE01 + 060D636F6D626F626F787374796C65032708060D73706C69747465727374796C + 6503C0030610726164696F627574746F6E7374796C6503C4050618756C63656E + 746572726164696F627574746F6E7374796C650368050616756C6C6566747261 + 64696F627574746F6E7374796C6503A7050617756C7269676874726164696F62 + 7574746F6E7374796C6503AC050615616E69696E64696361746F72686F727A73 + 74796C6503E002060E6C6F67627574746F6E7374796C6503DA07061365787061 + 6E646572627574746F6E7374796C650381020615657870616E64657263686563 + 6B626F787374796C6503DB05060D657870616E6465727374796C65031607060A + 70616E656C7374796C65034F01061970726F67726573736261726D696E696572 + 726F727374796C6503F903061470726F67726573736261726D696E697374796C + 6503F403060E636F6D626F656469747374796C6503F80906106D656E75626172 + 6974656D7374796C6503650B060C6D656E756261727374796C6503B802060D6D + 656E756974656D7374796C6503890B06126D656E75736570617261746F727374 + 796C6503E501060D6D656E75766965777374796C6503DD02061B747265657669 + 6577657870616E646572627574746F6E7374796C650389020611747265657669 + 65776974656D7374796C65032705060D74726565766965777374796C65038D07 + 061670726F677265737362617266696E6973687374796C65030805061A70726F + 67726573736261726D696E6966696E6973687374796C6503FA0306136172726F + 77646F776E746F6F6C627574746F6E03EC05060D706F707570626F787374796C + 6503680600545046300A5452656374616E676C6500095374796C654E616D6506 + 0F6261636B67726F756E647374796C6505416C69676E070643656E7465720A46 + 696C6C2E436F6C6F7207097846463244324432440A53697A652E576964746805 + 000000000000009407400B53697A652E4865696768740500000000000080D206 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E6507585261646975730500000000000000C0004007595261 - 646975730500000000000000C00040000000005450463007544C61796F757400 - 095374796C654E616D65061170726F677265737363656C6C7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000000000F805 - 400B53697A652E4865696768740500000000000000FC05401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 02100007544C61796F757400095374796C654E616D65060668747261636B0541 - 6C69676E0708436F6E74656E7473064C6F636B6564090C4D617267696E732E4C - 65667405000000000000008000400B4D617267696E732E546F70050000000000 + 696E6407044E6F6E650756697369626C650800005450463007544C61796F7574 + 00095374796C654E616D65060B627574746F6E7374796C6505416C69676E0706 + 43656E7465720A53697A652E57696474680500000000000000C805400B53697A + 652E4865696768740500000000000000C803401453697A652E506C6174666F72 + 6D44656661756C74080756697369626C6508085461624F726465720203000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0706436C69656E740C436C69704368696C6472656E090A436C69 + 70506172656E74090A46696C6C2E436F6C6F7207097846463230323032300748 + 697454657374080A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 + 646975730500000000000000C0004007595261646975730500000000000000C0 + 0040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650615 + 627574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E0500 + 00000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C + 6F720A537461727456616C756507097846463230323032300953746F7056616C + 756507097846463430343034300754726967676572063049734D6F7573654F76 + 65723D747275653B4973507265737365643D66616C73653B4973466F63757365 + 643D66616C73650E54726967676572496E7665727365063149734D6F7573654F + 7665723D66616C73653B4973507265737365643D66616C73653B4973466F6375 + 7365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E32084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646343034303430 + 0953746F7056616C756507097846463137353739430754726967676572062F49 + 73507265737365643D747275653B49734D6F7573654F7665723D747275653B49 + 73466F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F + 6E33084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 + 41383245320953746F7056616C75650709784646313735373943075472696767 + 6572062E4973507265737365643D747275653B49734D6F7573654F7665723D74 + 7275653B4973466F63757365643D747275650E54726967676572496E76657273 + 65062F4973507265737365643D66616C73653B49734D6F7573654F7665723D74 + 7275653B4973466F63757365643D747275650000000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E7413456E61626C + 6544726167486967686C69676874080748697454657374080A53697A652E5769 + 6474680500000000000000C805400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746500000054 + 50463007544C61796F757400095374796C654E616D65060D636865636B626F78 + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 00000000ACAA8006400B53697A652E4865696768740500000000005855990440 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F7264657202040007544C61796F75740005416C69676E07044C656674 + 0A53697A652E576964746805000000000000009003400B53697A652E48656967 + 687405000000000058559904401453697A652E506C6174666F726D4465666175 + 6C7408000A5452656374616E676C6500095374796C654E616D65060A6261636B + 67726F756E6405416C69676E070643656E7465720A46696C6C2E436F6C6F7207 + 097846463230323032300748697454657374080A53697A652E57696474680500 + 000000000000F002400B53697A652E4865696768740500000000000000F00240 + 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F + 6C6F72070978464631353135313507585261646975730500000000000000C000 + 4007595261646975730500000000000000C00040000A5452656374616E676C65 + 00095374796C654E616D65060A52656374616E676C653105416C69676E070643 + 6C69656E740A46696C6C2E436F6C6F7207097846463241383245320748697454 + 65737408074F70616369747905000000000000000000000C4D617267696E732E + 4C65667405000000000000008000400B4D617267696E732E546F700500000000 + 0000008000400D4D617267696E732E526967687405000000000000008000400E + 4D617267696E732E426F74746F6D05000000000000008000400A53697A652E57 + 696474680500000000000000B002400B53697A652E4865696768740500000000 + 000000B002401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C000 + 4007595261646975730500000000000000C00040000F54466C6F6174416E696D + 6174696F6E00095374796C654E616D65061B6368656368626F7856697362696C + 697479416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB + 3F0C50726F70657274794E616D6506074F7061636974790A537461727456616C + 756505000000000000000000000953746F7056616C75650500000000000000C8 + 05400754726967676572060E4973436865636B65643D747275650E5472696767 + 6572496E7665727365060F4973436865636B65643D66616C73650000000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D650618636865636B62 + 6F785374726F6B65416E696D6174696F6E31084475726174696F6E0500000000 + 00CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F + 720A537461727456616C756507097846463135313531350953746F7056616C75 + 6507097846463241383245320754726967676572060E4973436865636B65643D + 747275650E54726967676572496E7665727365060F4973436865636B65643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650617636865636B626F78436F6C6F72416E696D6174696F6E31084475726174 + 696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3230323032300953746F7056616C756507097846463430343034300754726967 + 676572061049734D6F7573654F7665723D747275650E54726967676572496E76 + 65727365061149734D6F7573654F7665723D66616C7365000000000554546578 + 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 + 0A53697A652E57696474680500000000005855DD05400B53697A652E48656967 + 687405000000000058559904401453697A652E506C6174666F726D4465666175 + 6C74080454657874060454657874165465787453657474696E67732E466F6E74 + 436F6C6F720708636C6157686974650000005450463007544C61796F75740009 + 5374796C654E616D650609656469747374796C6505416C69676E070643656E74 + 65720A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508085461624F726465720205000C5442727573 + 684F626A65637400095374796C654E616D65060A666F726567726F756E640000 + 0C5442727573684F626A65637400095374796C654E616D65060973656C656374 + 696F6E0B42727573682E436F6C6F72070978393632413832453200000B54466F + 6E744F626A65637400095374796C654E616D650604666F6E7409466F6E742E53 + 697A650500000000000000D0024000000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F7207097846463230323032300748697454657374 + 080A53697A652E57696474680500000000000000C805400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313507585261 + 646975730500000000000000C0004007595261646975730500000000000000C0 + 0040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D650614 + 656469745374726F6B65416E696D6174696F6E31084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B652E436F + 6C6F720A537461727456616C756507097846463135313531350953746F705661 + 6C756507097846463241383245320754726967676572060E4973466F63757365 + 643D747275650E54726967676572496E7665727365060F4973466F6375736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614656469745374726F6B65416E696D6174696F6E3208447572617469 + 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E + 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 + 463135313531350953746F7056616C7565070978464634433443344307547269 + 67676572062149734D6F7573654F7665723D747275653B4973466F6375736564 + 3D66616C73653B0E54726967676572496E7665727365062249734D6F7573654F + 7665723D66616C73653B4973466F63757365643D66616C73653B00000007544C + 61796F757400095374796C654E616D650607627574746F6E7305416C69676E07 + 055269676874064C6F636B6564090B4D617267696E732E546F70050000000000 00008000400D4D617267696E732E526967687405000000000000008000400E4D - 617267696E732E426F74746F6D05000000000000008000400A53697A652E5769 - 6474680500000000000000F005400B53697A652E486569676874050000000000 - 0000F405401453697A652E506C6174666F726D44656661756C7408000A545265 - 6374616E676C6500095374796C654E616D65060A68696E64696361746F720541 - 6C69676E07044C6566740A46696C6C2E436F6C6F720709784646324138324532 - 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 0000000000008000400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E526967687405000000000000008000400E4D617267696E - 732E426F74746F6D05000000000000008000400A506F736974696F6E2E580500 - 0000000000008000400A506F736974696F6E2E5905000000000000008000400A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 - 740500000000000000EC05401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 - 00000000C0004007595261646975730500000000000000C00040000000005450 - 463007544C61796F757400095374796C654E616D6506157363726F6C6C626172 - 626F74746F6D627574746F6E05416C69676E070643656E746572075669736962 - 6C6508085461624F726465720211000A5452656374616E676C6500095374796C - 654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C - 436C69704368696C6472656E090A436C6970506172656E740907436F726E6572 - 730B0A426F74746F6D4C6566740B426F74746F6D5269676874000A46696C6C2E - 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C000 - 4007595261646975730500000000000000C00040000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 - 6D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463230323032300953746F7056616C7565070978464634303430343007 - 54726967676572062049734D6F7573654F7665723D747275653B497350726573 - 7365643D66616C73650E54726967676572496E7665727365062149734D6F7573 - 654F7665723D66616C73653B4973507265737365643D66616C736500000F5443 - 6F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E - 436F6C6F72416E696D6174696F6E32084475726174696F6E0500000000000000 - 0000000C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461 - 727456616C756507097846463430343034300953746F7056616C756507097846 - 463137353739430754726967676572061F4973507265737365643D747275653B - 49734D6F7573654F7665723D747275650E54726967676572496E766572736506 - 204973507265737365643D66616C73653B49734D6F7573654F7665723D747275 - 6500000007544C61796F757400095374796C654E616D6506074C61796F757431 - 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 00A002400B53697A652E4865696768740500000000000000C001401453697A65 - 2E506C6174666F726D44656661756C74080005545061746800095374796C654E - 616D650605506174683105416C69676E0706436C69656E7409446174612E5061 - 74680A3400000004000000000000000000C8420000C842010000000000964300 - 00C842010000000000484300009643030000000000C8420000C8420A46696C6C - 2E436F6C6F720708636C6157686974650748697454657374080A53697A652E57 - 696474680500000000000000A002400B53697A652E4865696768740500000000 - 000000C001401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6500000000545046300A5452656374616E676C - 6500095374796C654E616D6506147363726F6C6C62617268747261636B737479 - 6C6505416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 - 3135313531350748697454657374080A53697A652E5769647468050000000000 - 0000C804400B53697A652E4865696768740500000000000000C804401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E650756697369626C65080006545468756D6200095374796C654E616D65 - 06057468756D62064C6F636B6564090A53697A652E5769647468050000000000 - 00008003400B53697A652E4865696768740500000000000000C804401453697A - 652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060A - 7468756D627374796C650000005450463007544C61796F757400095374796C65 - 4E616D6506137363726F6C6C6261726C656674627574746F6E05416C69676E07 - 0643656E7465720756697369626C6508085461624F726465720212000A545265 - 6374616E676C6500095374796C654E616D65060A6261636B67726F756E640541 - 6C69676E0706436C69656E740C436C69704368696C6472656E090A436C697050 - 6172656E740907436F726E6572730B07546F704C6566740A426F74746F6D4C65 - 6674000A46696C6C2E436F6C6F72070978464632303230323007486974546573 + 617267696E732E426F74746F6D05000000000000008000400A506F736974696F + 6E2E580500000000000000C004400A506F736974696F6E2E5905000000000000 + 008000400A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000A803401453697A652E506C6174666F726D44 + 656661756C7408000007544C61796F757400095374796C654E616D650607636F + 6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D617267 + 696E732E4C65667405000000000000008001400B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + 8000400E4D617267696E732E426F74746F6D05000000000000008000400A5369 + 7A652E57696474680500000000000000A804400B53697A652E48656967687405 + 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 + 000006544C6162656C00095374796C654E616D65060670726F6D7074064C6F63 + 6B656409074F706163697479050000000000000080FE3F165465787453657474 + 696E67732E466F6E74436F6C6F720708636C6157686974650454657874060454 + 6578740000005450463007544C61796F757400095374796C654E616D65060967 + 7269647374796C6505416C69676E070643656E7465720A53697A652E57696474 + 68050000000000FFFFE905400B53697A652E4865696768740500000000000000 + 8306401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720206000C5442727573684F626A6563740009537479 + 6C654E616D650618416C7465726E6174696E67526F774261636B67726F756E64 + 0B42727573682E436F6C6F72070978333237383738373800000C544272757368 + 4F626A65637400095374796C654E616D6506086C696E6566696C6C0B42727573 + 682E436F6C6F72070978464631353135313500000A5452656374616E676C6500 + 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F + 6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F63 + 6B6564090748697454657374080C50616464696E672E4C656674050000000000 + 00008000400B50616464696E672E546F7005000000000000008000400D506164 + 64696E672E526967687405000000000000008000400E50616464696E672E426F + 74746F6D05000000000000008000400A53697A652E5769647468050000000000 + FFFFE905400B53697A652E48656967687405000000000000008306401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 0978464631353135313507585261646975730500000000000000C00040075952 + 61646975730500000000000000C0004000075448656164657200095374796C65 + 4E616D6506066865616465720553696465730B03546F70044C65667406426F74 + 746F6D0552696768740005416C69676E0703546F700A506F736974696F6E2E58 + 05000000000000008000400A506F736974696F6E2E5905000000000000008000 + 400A53697A652E5769647468050000000000FFFFE105400B53697A652E486569 + 6768740500000000000000A803401453697A652E506C6174666F726D44656661 + 756C7408000007544C61796F757400095374796C654E616D650607636F6E7465 + 6E7405416C69676E0706436C69656E740C436C69704368696C6472656E090A53 + 697A652E5769647468050000000000FFFFC105400B53697A652E486569676874 + 0500000000000000B405401453697A652E506C6174666F726D44656661756C74 + 08000A5452656374616E676C6500095374796C654E616D65060973656C656374 + 696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974546573 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 696768740500000000000000C804401453697A652E506C6174666F726D446566 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 - 00000000000000C0004007595261646975730500000000000000C00040000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F - 6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD - CCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 - 61727456616C756507097846463230323032300953746F7056616C7565070978 - 46463430343034300754726967676572062049734D6F7573654F7665723D7472 - 75653B4973507265737365643D66616C73650E54726967676572496E76657273 - 65062149734D6F7573654F7665723D66616C73653B4973507265737365643D66 - 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 650615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F - 6E05000000000000000000000C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463430343034300953746F70 - 56616C756507097846463137353739430754726967676572061F497350726573 - 7365643D747275653B49734D6F7573654F7665723D747275650E547269676765 - 72496E766572736506204973507265737365643D66616C73653B49734D6F7573 - 654F7665723D7472756500000007544C61796F757400095374796C654E616D65 - 06074C61796F75743105416C69676E070643656E7465720A53697A652E576964 - 74680500000000000000A002400B53697A652E48656967687405000000000000 - 00C001401453697A652E506C6174666F726D44656661756C7408000554506174 - 6800095374796C654E616D650605506174683105416C69676E0706436C69656E - 7409446174612E506174680A3400000004000000000000000000C8420000C842 - 01000000000096430000C842010000000000484300009643030000000000C842 - 0000C8420A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080D526F746174696F6E416E676C650500000000000000B405400A53697A65 - 2E57696474680500000000000000A002400B53697A652E486569676874050000 - 0000000000C001401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E65000000005450463007544C61796F7574 - 00095374796C654E616D6506147363726F6C6C6261727269676874627574746F - 6E05416C69676E070643656E7465720756697369626C6508085461624F726465 - 720213000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0706436C69656E740C436C69704368696C647265 - 6E090A436C6970506172656E740907436F726E6572730B08546F705269676874 - 0B426F74746F6D5269676874000A46696C6C2E436F6C6F720709784646323032 + 00000000000000C0004007595261646975730500000000000000C0004000000A + 5452656374616E676C6500095374796C654E616D650605666F6375730A46696C + 6C2E436F6C6F7207097841463241383245320748697454657374080C4D617267 + 696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F7005 + 0000000000000080FF3F0D4D617267696E732E52696768740500000000000000 + 80FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A5369 + 7A652E57696474680500000000000000C804400B53697A652E48656967687405 + 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 + 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 + 0000C0004007595261646975730500000000000000C000400000000A54536372 + 6F6C6C42617200095374796C654E616D65060A767363726F6C6C62617205416C + 69676E070552696768740B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E0708566572746963616C0A506F736974696F6E + 2E58050000000000FFFFC505400A506F736974696F6E2E590500000000000000 + B803400A53697A652E576964746805000000000000008003400B53697A652E48 + 65696768740500000000000000B405401453697A652E506C6174666F726D4465 + 6661756C740800000A545363726F6C6C42617200095374796C654E616D65060A + 687363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368 + 616E676505000000000000000000000B4F7269656E746174696F6E070A486F72 + 697A6F6E74616C0A506F736974696F6E2E5805000000000000008000400A506F + 736974696F6E2E590500000000000000E205400A53697A652E57696474680500 + 00000000FFFFE105400B53697A652E4865696768740500000000000000800340 + 1453697A652E506C6174666F726D44656661756C740800000F54536D616C6C53 + 63726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C + 6C62617205416C69676E070552696768740B536D616C6C4368616E6765050000 + 00000000000000000B4F7269656E746174696F6E0708566572746963616C0C4D + 617267696E732E4C65667405000000000000008000400A506F736974696F6E2E + 580500000000000000C605400A506F736974696F6E2E59050000000000000080 + 00400A53697A652E576964746805000000000000008002400B53697A652E4865 + 6967687405000000000000008002401453697A652E506C6174666F726D446566 + 61756C74080756697369626C650800000F54536D616C6C5363726F6C6C426172 + 00095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69 + 676E0706426F74746F6D0B536D616C6C4368616E676505000000000000000000 + 000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E + 732E546F7005000000000000008000400A506F736974696F6E2E580500000000 + 0000008000400A506F736974696F6E2E590500000000000000E205400A53697A + 652E576964746805000000000000009606400B53697A652E4865696768740500 + 0000000000008002401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508000000005450463007544C61796F757400095374796C654E + 616D65060D67726F7570626F787374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000F004400B53697A652E48656967 + 68740500000000000000C804401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720207000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E74730946696C6C2E4B696E6407044E6F6E65074869745465 + 7374080C4D617267696E732E4C6566740500000000000000C000400B4D617267 + 696E732E546F7005000000000000009002400D4D617267696E732E5269676874 + 0500000000000000C000400E4D617267696E732E426F74746F6D050000000000 + 0000C000400A53697A652E57696474680500000000000000D804400B53697A65 + 2E48656967687405000000000000009804401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C000400005545465787400095374796C654E616D650604746578740841 + 75746F53697A65090A436C6970506172656E74090748697454657374080C4D61 + 7267696E732E4C6566740500000000000000A002400A506F736974696F6E2E58 + 05000000000060559502400A506F736974696F6E2E590500000000004055D501 + C00A53697A652E576964746805000000000000B8C703400B53697A652E486569 + 6768740500000000000060FF02401453697A652E506C6174666F726D44656661 + 756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 5768697465155465787453657474696E67732E576F7264577261700800000000 + 5450463007544C61796F757400095374796C654E616D65060F68656164657269 + 74656D7374796C6505416C69676E070643656E7465720A53697A652E57696474 + 6805000000000000009205400B53697A652E4865696768740500000000000000 + D003401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720208000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0A46696C6C2E436F6C6F720709784646344334433443064C6F636B6564090748 + 697454657374080A53697A652E576964746805000000000000009205400B5369 + 7A652E4865696768740500000000000000D003401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 313507585261646975730500000000000000C000400759526164697573050000 + 0000000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C65 + 4E616D650615686561646572436F6C6F72416E696D6174696F6E310844757261 + 74696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A4669 + 6C6C2E436F6C6F720A537461727456616C756507097846463443344334430953 + 746F7056616C756507097846463241383245320754726967676572060E497350 + 7265737365643D747275650E54726967676572496E7665727365060F49735072 + 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D6506166865616465725374726F6B65416E696D6174696F6E31 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464631 + 35313531350953746F7056616C75650709784646324138324532075472696767 + 6572060E4973507265737365643D747275650E54726967676572496E76657273 + 65060F4973507265737365643D66616C73650000000554546578740009537479 + 6C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B65 + 64090748697454657374080C4D617267696E732E4C6566740500000000000000 + A001400B4D617267696E732E546F7005000000000000008000400D4D61726769 + 6E732E52696768740500000000000000A001400E4D617267696E732E426F7474 + 6F6D05000000000000008000400A53697A652E57696474680500000000000000 + FC04400B53697A652E4865696768740500000000000000B003401453697A652E + 506C6174666F726D44656661756C7408165465787453657474696E67732E466F + 6E74436F6C6F720708636C6157686974650000005450463007544C61796F7574 + 00095374796C654E616D65060E696D61676563656C6C7374796C6505416C6967 + 6E070643656E7465720756697369626C6508085461624F726465720209000654 + 496D61676500095374796C654E616D650605696D6167650E4D756C7469526573 + 4269746D61700E01000005416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A53697A652E57696474680500000000000000C004 + 400B53697A652E4865696768740500000000000000C004401453697A652E506C + 6174666F726D44656661756C74080000005450463007544C61796F7574000953 + 74796C654E616D65060A6C6162656C7374796C6505416C69676E070643656E74 + 65720A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080756697369626C6508085461624F72646572020A00055454657874 + 00095374796C654E616D6506047465787405416C69676E0708436F6E74656E74 + 730748697454657374080A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C7408165465787453657474696E67732E466F6E7443 + 6F6C6F720708636C6157686974650000005450463007544C61796F7574000953 + 74796C654E616D65060D6C697374626F78666F6F74657205416C69676E070643 + 656E7465720A53697A652E576964746805000000000000009205400B53697A65 + 2E4865696768740500000000000000D003401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F72646572020B00055454 + 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 + 6E74064C6F636B6564090748697454657374080C4D617267696E732E4C656674 + 0500000000000000A001400B4D617267696E732E546F70050000000000000080 + 00400D4D617267696E732E52696768740500000000000000A001400E4D617267 + 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 + 0500000000000000FC04400B53697A652E4865696768740500000000000000B0 + 03401453697A652E506C6174666F726D44656661756C74081654657874536574 + 74696E67732E466F6E74436F6C6F720708636C61576869746500000054504630 + 07544C61796F757400095374796C654E616D6506106C697374626F786974656D + 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 + 000000000000D605400B53697A652E4865696768740500000000000000C00340 + 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 + 5461624F72646572020C000654476C79706800095374796C654E616D65060A67 + 6C7970687374796C650C4D617267696E732E4C65667405000000000000008000 + 400B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E526967687405000000000000008000400E4D617267696E732E426F74746F6D + 050000000000000080FF3F05416C69676E07044C6566740A506F736974696F6E + 2E5805000000000000008000400A506F736974696F6E2E590500000000000000 + 80FF3F0A53697A652E576964746805000000000000008003400B53697A652E48 + 65696768740500000000000000B003401453697A652E506C6174666F726D4465 + 6661756C7408000005545465787400095374796C654E616D6506047465787405 + 416C69676E0706436C69656E740748697454657374080C4D617267696E732E4C + 6566740500000000000000C000400B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E52696768740500000000000000C000400E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769 + 6474680500000000000000CA05400B53697A652E486569676874050000000000 + 0000B003401453697A652E506C6174666F726D44656661756C74081654657874 + 53657474696E67732E466F6E74436F6C6F720708636C61576869746515546578 + 7453657474696E67732E576F72645772617008165465787453657474696E6773 + 2E486F727A416C69676E07074C656164696E6700000954436865636B426F7800 + 095374796C654E616D650605636865636B05416C69676E07084D6F73744C6566 + 740843616E466F637573081244697361626C65466F637573456666656374090A + 53697A652E57696474680500000000000000A003400B53697A652E4865696768 + 740500000000000000C003401453697A652E506C6174666F726D44656661756C + 74080756697369626C65080000005450463007544C61796F757400095374796C + 654E616D6506126C697374626F78706C61696E68656164657205416C69676E07 + 0643656E7465720A53697A652E576964746805000000000000009205400B5369 + 7A652E4865696768740500000000000000D003401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F72646572020D000A + 5452656374616E676C6500095374796C654E616D65060A6261636B67726F756E + 6405416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846 + 46324432443244064C6F636B6564090748697454657374080A53697A652E5769 + 64746805000000000000009205400B53697A652E486569676874050000000000 + 0000D003401453697A652E506C6174666F726D44656661756C74080C5374726F + 6B652E436F6C6F72070978464631353135313507585261646975730500000000 + 000000C0004007595261646975730500000000000000C0004000000554546578 + 7400095374796C654E616D6506047465787405416C69676E0706436C69656E74 + 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 + 000000000000A001400B4D617267696E732E546F700500000000000000800040 + 0D4D617267696E732E52696768740500000000000000A001400E4D617267696E + 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 + 000000000000FC04400B53697A652E4865696768740500000000000000B00340 + 1453697A652E506C6174666F726D44656661756C740816546578745365747469 + 6E67732E466F6E74436F6C6F720708636C615768697465000000545046300754 + 4C61796F757400095374796C654E616D65060C6C697374626F787374796C6505 + 416C69676E070643656E7465720A53697A652E5769647468050000000000FFFF + E905400B53697A652E48656967687405000000000000008306401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 6572020E000C5442727573684F626A65637400095374796C654E616D65061841 + 6C7465726E6174696E67526F774261636B67726F756E640B42727573682E436F + 6C6F72070978464632433243324300000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B656409 + 0748697454657374080C50616464696E672E4C65667405000000000000008000 + 400B50616464696E672E546F7005000000000000008000400D50616464696E67 + 2E526967687405000000000000008000400E50616464696E672E426F74746F6D + 05000000000000008000400A53697A652E5769647468050000000000FFFFE905 + 400B53697A652E48656967687405000000000000008306401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 31353135313507585261646975730500000000000000C0004007595261646975 + 730500000000000000C000400007544C61796F757400095374796C654E616D65 + 0607636F6E74656E7405416C69676E0706436C69656E740C436C69704368696C + 6472656E090A53697A652E5769647468050000000000FFFFC105400B53697A65 + 2E4865696768740500000000000000DE05401453697A652E506C6174666F726D + 44656661756C7408000A5452656374616E676C6500095374796C654E616D6506 + 0973656C656374696F6E0A46696C6C2E436F6C6F720709784646324138324532 + 0748697454657374080A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000C804401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758 + 5261646975730500000000000000C00040075952616469757305000000000000 + 00C0004000000A5452656374616E676C6500095374796C654E616D650610666F + 637573656473656C656374696F6E0A46696C6C2E436F6C6F7207097846463241 + 383245320748697454657374080A53697A652E57696474680500000000000000 + C804400B53697A652E4865696768740500000000000000C804401453697A652E + 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F + 6E650B5374726F6B652E446173680703446F7407585261646975730500000000 + 000000C0004007595261646975730500000000000000C000400000000A545363 + 726F6C6C42617200095374796C654E616D65060A767363726F6C6C6261720541 + 6C69676E070552696768740B536D616C6C4368616E6765050000000000000000 + 00000B4F7269656E746174696F6E0708566572746963616C0A506F736974696F + 6E2E58050000000000FFFFC505400A506F736974696F6E2E5905000000000000 + 008000400A53697A652E576964746805000000000000008003400B53697A652E + 4865696768740500000000000000DE05401453697A652E506C6174666F726D44 + 656661756C740800000A545363726F6C6C42617200095374796C654E616D6506 + 0A687363726F6C6C62617205416C69676E0706426F74746F6D0B536D616C6C43 + 68616E676505000000000000000000000B4F7269656E746174696F6E070A486F + 72697A6F6E74616C0A506F736974696F6E2E5805000000000000008000400A50 + 6F736974696F6E2E590500000000000000E205400A53697A652E576964746805 + 0000000000FFFFE105400B53697A652E48656967687405000000000000008003 + 401453697A652E506C6174666F726D44656661756C740800000F54536D616C6C + 5363726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F + 6C6C62617205416C69676E070552696768740B536D616C6C4368616E67650500 + 0000000000000000000B4F7269656E746174696F6E0708566572746963616C0C + 4D617267696E732E4C65667405000000000000008000400A506F736974696F6E + 2E580500000000000000C605400A506F736974696F6E2E590500000000000000 + 8000400A53697A652E576964746805000000000000008002400B53697A652E48 + 656967687405000000000000008002401453697A652E506C6174666F726D4465 + 6661756C74080756697369626C650800000F54536D616C6C5363726F6C6C4261 + 7200095374796C654E616D65060F68736D616C6C7363726F6C6C62617205416C + 69676E0706426F74746F6D0B536D616C6C4368616E6765050000000000000000 + 00000B4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D61726769 + 6E732E546F7005000000000000008000400A506F736974696F6E2E5805000000 + 000000008000400A506F736974696F6E2E590500000000000000E205400A5369 + 7A652E576964746805000000000000009606400B53697A652E48656967687405 + 000000000000008002401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508000000005450463007544C61796F757400095374796C65 + 4E616D65060E706F70757063656C6C7374796C6505416C69676E070643656E74 + 65720756697369626C6508085461624F72646572020F0007544C61796F757400 + 05416C69676E070552696768740A506F736974696F6E2E580500000000000000 + 8C04400A53697A652E57696474680500000000000000F002400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C7408000554506174680005416C69676E070643656E74657209446174 + 612E506174680A400000000500000000000000000000000000803F0100000000 + 00803F0000803F010000000000003F0000000001000000000000000000803F03 + 00000000000000000000000A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080B4D617267696E732E546F700500000000000000E001C0 + 0A53697A652E576964746805000000000000008002400B53697A652E48656967 + 687405000000000000008001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650000055450617468000541 + 6C69676E070643656E74657209446174612E506174680A340000000400000000 + 0000000000000000000000010000000000803F00000000010000000000003F00 + 00803F0300000000000000000000000A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080B4D617267696E732E546F7005000000000000 + 00C001400A53697A652E576964746805000000000000008002400B53697A652E + 48656967687405000000000000008001401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000005545465 + 787400095374796C654E616D6506047465787405416C69676E0706436C69656E + 74064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 + 00000000000000A001400B4D617267696E732E546F7005000000000000008000 + 400D4D617267696E732E52696768740500000000000000A001400E4D61726769 + 6E732E426F74746F6D05000000000000008000400A53697A652E576964746805 + 00000000000000C803400B53697A652E4865696768740500000000000000B804 + 401453697A652E506C6174666F726D44656661756C7408165465787453657474 + 696E67732E466F6E74436F6C6F720708636C6157686974650000005450463007 + 544C61796F757400095374796C654E616D65061070726F677265737362617273 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F726465720210000A5452656374616E676C6500095374796C654E616D65 + 060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646323032303230064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000033338505400B53697A652E4865696768 + 740500000000009999E104401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135075852616469 + 75730500000000000000C0004007595261646975730500000000000000C00040 + 000A5452656374616E676C6500095374796C654E616D65060A68696E64696361 + 746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B6564090748697454657374080C4D617267696E732E4C + 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 + 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D + 617267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F + 6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000000000 + 0080FF3F0A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000009999D904401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975 + 730500000000000000C0004007595261646975730500000000000000C0004000 + 00000A5452656374616E676C6500095374796C654E616D65060676747261636B + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 323032303230064C6F636B6564090748697454657374080A53697A652E576964 + 746805000000000033338505400B53697A652E48656967687405000000000099 + 99E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350758526164697573050000000000 + 0000C0004007595261646975730500000000000000C00040000A545265637461 + 6E676C6500095374796C654E616D65060A76696E64696361746F7205416C6967 + 6E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632413832453206 + 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 + 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D + 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 + 2E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000 + 000000000080FF3F0A506F736974696F6E2E5905000000000099998904400A53 + 697A652E576964746805000000000033338105400B53697A652E486569676874 + 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500000000 + 000000C0004007595261646975730500000000000000C0004000000000545046 + 3007544C61796F757400095374796C654E616D65061170726F67726573736365 + 6C6C7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000000000F805400B53697A652E4865696768740500000000000000FC + 05401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F7264657202110007544C61796F757400095374796C654E616D65 + 060668747261636B05416C69676E0708436F6E74656E7473064C6F636B656409 + 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 + 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 + 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 + 00400A53697A652E57696474680500000000000000F005400B53697A652E4865 + 696768740500000000000000F405401453697A652E506C6174666F726D446566 + 61756C7408000A5452656374616E676C6500095374796C654E616D65060A6869 + 6E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F7207 + 09784646324138324532064C6F636B6564090748697454657374080C4D617267 + 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + 8000400E4D617267696E732E426F74746F6D05000000000000008000400A506F + 736974696F6E2E5805000000000000008000400A506F736974696F6E2E590500 + 0000000000008000400A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000EC05401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758 + 5261646975730500000000000000C00040075952616469757305000000000000 + 00C00040000000005450463007544C61796F757400095374796C654E616D6506 + 157363726F6C6C626172626F74746F6D627574746F6E05416C69676E07064365 + 6E7465720756697369626C6508085461624F726465720212000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E740907436F726E6572730B0A426F74746F6D4C6566740B426F74746F6D5269 + 676874000A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000C804401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 + 0500000000000000C0004007595261646975730500000000000000C00040000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 + 6F6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463230323032300953746F7056616C75650709 + 7846463430343034300754726967676572062049734D6F7573654F7665723D74 + 7275653B4973507265737365643D66616C73650E54726967676572496E766572 + 7365062149734D6F7573654F7665723D66616C73653B4973507265737365643D + 66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E61 + 6D650615627574746F6E436F6C6F72416E696D6174696F6E3208447572617469 + 6F6E05000000000000000000000C50726F70657274794E616D65060A46696C6C + 2E436F6C6F720A537461727456616C756507097846463430343034300953746F + 7056616C756507097846463137353739430754726967676572061F4973507265 + 737365643D747275653B49734D6F7573654F7665723D747275650E5472696767 + 6572496E766572736506204973507265737365643D66616C73653B49734D6F75 + 73654F7665723D7472756500000007544C61796F757400095374796C654E616D + 6506074C61796F75743105416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000A002400B53697A652E486569676874050000000000 + 0000C001401453697A652E506C6174666F726D44656661756C74080005545061 + 746800095374796C654E616D650605506174683105416C69676E0706436C6965 + 6E7409446174612E506174680A3400000004000000000000000000C8420000C8 + 4201000000000096430000C842010000000000484300009643030000000000C8 + 420000C8420A46696C6C2E436F6C6F720708636C615768697465074869745465 + 7374080A53697A652E57696474680500000000000000A002400B53697A652E48 + 65696768740500000000000000C001401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054504630 + 0A5452656374616E676C6500095374796C654E616D6506147363726F6C6C6261 + 7268747261636B7374796C6505416C69676E070643656E7465720A46696C6C2E + 436F6C6F7207097846463135313531350748697454657374080A53697A652E57 + 696474680500000000000000C804400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E650756697369626C65080006545468756D6200 + 095374796C654E616D6506057468756D62064C6F636B6564090A53697A652E57 + 6964746805000000000000008003400B53697A652E4865696768740500000000 + 000000C804401453697A652E506C6174666F726D44656661756C74080B537479 + 6C654C6F6F6B7570060A7468756D627374796C650000005450463007544C6179 + 6F757400095374796C654E616D6506137363726F6C6C6261726C656674627574 + 746F6E05416C69676E070643656E7465720756697369626C6508085461624F72 + 6465720213000A5452656374616E676C6500095374796C654E616D65060A6261 + 636B67726F756E6405416C69676E0706436C69656E740C436C69704368696C64 + 72656E090A436C6970506172656E740907436F726E6572730B07546F704C6566 + 740A426F74746F6D4C656674000A46696C6C2E436F6C6F720709784646323032 3032300748697454657374080A53697A652E57696474680500000000000000C8 04400B53697A652E4865696768740500000000000000C804401453697A652E50 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E @@ -16554,809 +16712,800 @@ object MainForm: TMainForm 00000000C8420000C84201000000000096430000C84201000000000048430000 9643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C615768 6974650748697454657374080D526F746174696F6E416E676C65050000000000 - 0000B405C00A53697A652E57696474680500000000000000A002400B53697A65 + 0000B405400A53697A652E57696474680500000000000000A002400B53697A65 2E4865696768740500000000000000C001401453697A652E506C6174666F726D 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450 - 463007544C61796F757400095374796C654E616D65060E7363726F6C6C626172 - 7374796C6505416C69676E070643656E7465720756697369626C650808546162 - 4F726465720214000754427574746F6E00095374796C654E616D65060A6C6566 - 74627574746F6E05416C69676E07044C656674064C6F636B6564090A506F7369 - 74696F6E2E5905000000000000008003400A53697A652E576964746805000000 - 000000008003400B53697A652E48656967687405000000000000009003401453 - 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 - 06137363726F6C6C6261726C656674627574746F6E00000754427574746F6E00 - 095374796C654E616D65060B7269676874627574746F6E05416C69676E070552 - 69676874064C6F636B6564090A506F736974696F6E2E58050000000000000088 - 04400A506F736974696F6E2E5905000000000000008003400A53697A652E5769 - 64746805000000000000008003400B53697A652E486569676874050000000000 - 00009003401453697A652E506C6174666F726D44656661756C74080B5374796C - 654C6F6F6B757006147363726F6C6C6261727269676874627574746F6E000007 - 54427574746F6E00095374796C654E616D65060C626F74746F6D627574746F6E - 05416C69676E0706426F74746F6D064C6F636B6564090A506F736974696F6E2E - 5905000000000000008804400A53697A652E57696474680500000000000000C8 - 04400B53697A652E48656967687405000000000000008003401453697A652E50 - 6C6174666F726D44656661756C74080B5374796C654C6F6F6B75700615736372 - 6F6C6C626172626F74746F6D627574746F6E00000654547261636B0009537479 - 6C654E616D65060668747261636B05416C69676E0706436C69656E74064C6F63 - 6B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A - 652E576964746805000000000000009003400B53697A652E4865696768740500 - 0000000000009003401453697A652E506C6174666F726D44656661756C74080B - 5374796C654C6F6F6B757006147363726F6C6C62617268747261636B7374796C - 6500000654547261636B00095374796C654E616D65060676747261636B05416C - 69676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E07 - 0A486F72697A6F6E74616C0A53697A652E576964746805000000000000009003 - 400B53697A652E48656967687405000000000000009003401453697A652E506C - 6174666F726D44656661756C74080B5374796C654C6F6F6B757006147363726F - 6C6C62617276747261636B7374796C6500000754427574746F6E00095374796C - 654E616D650609746F70627574746F6E05416C69676E0703546F700A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 00000000008003401453697A652E506C6174666F726D44656661756C74080B53 - 74796C654C6F6F6B757006127363726F6C6C626172746F70627574746F6E0000 - 005450463007544C61796F757400095374796C654E616D6506127363726F6C6C - 626172746F70627574746F6E05416C69676E070643656E746572075669736962 - 6C6508085461624F726465720215000A5452656374616E676C6500095374796C - 654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C - 436C69704368696C6472656E090A436C6970506172656E740907436F726E6572 - 730B07546F704C65667408546F705269676874000A46696C6C2E436F6C6F7207 - 097846463230323032300748697454657374080A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000000000C80440 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E6507585261646975730500000000000000C000400759526164 - 6975730500000000000000C00040000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E - 31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 - 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463230 - 323032300953746F7056616C7565070978464634303430343007547269676765 - 72062049734D6F7573654F7665723D747275653B4973507265737365643D6661 - 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D - 66616C73653B4973507265737365643D66616C736500000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 - 6E696D6174696F6E32084475726174696F6E05000000000000000000000C5072 - 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463430343034300953746F7056616C756507097846463137353739 - 430754726967676572061F4973507265737365643D747275653B49734D6F7573 - 654F7665723D747275650E54726967676572496E766572736506204973507265 - 737365643D66616C73653B49734D6F7573654F7665723D747275650000000754 - 4C61796F757400095374796C654E616D6506074C61796F75743105416C69676E - 070643656E7465720A53697A652E57696474680500000000000000A002400B53 - 697A652E4865696768740500000000000000C001401453697A652E506C617466 - 6F726D44656661756C74080005545061746800095374796C654E616D65060550 - 6174683105416C69676E0706436C69656E7409446174612E506174680A340000 - 0004000000000000000000C8420000C84201000000000096430000C842010000 - 000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72 - 0708636C6157686974650748697454657374080D526F746174696F6E416E676C - 650500000000000000B406400A53697A652E57696474680500000000000000A0 - 02400B53697A652E4865696768740500000000000000C001401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 6500000000545046300A5452656374616E676C6500095374796C654E616D6506 - 147363726F6C6C62617276747261636B7374796C6505416C69676E070643656E - 7465720A46696C6C2E436F6C6F72070978464631353135313507486974546573 - 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 - 696768740500000000000000C804401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508 - 0006545468756D6200095374796C654E616D6506057468756D62064C6F636B65 - 64090A53697A652E57696474680500000000000000C804400B53697A652E4865 - 6967687405000000000000008003401453697A652E506C6174666F726D446566 - 61756C74080B5374796C654C6F6F6B7570060A7468756D627374796C65000000 - 5450463007544C61796F757400095374796C654E616D65060C7370696E626F78 - 7374796C6505416C69676E070643656E7465720A53697A652E57696474680500 - 000000006666E005400B53697A652E4865696768740500000000000000C00340 - 1453697A652E506C6174666F726D44656661756C74080756697369626C650808 - 5461624F726465720216000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 - 6C6C2E436F6C6F7207097846463230323032300A53697A652E57696474680500 - 000000006666E005400B53697A652E4865696768740500000000000000C00340 - 1453697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F - 6C6F72070978464631353135313507585261646975730500000000000000C000 - 4007595261646975730500000000000000C00040000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E - 315374796C65084475726174696F6E050000000000CDCCCCFB3F07496E766572 - 7365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A53 - 7461727456616C756507097846463135313531350953746F7056616C75650709 - 7846463430343034300754726967676572061049734D6F7573654F7665723D74 - 7275650E54726967676572496E7665727365061149734D6F7573654F7665723D - 66616C73650000000C5442727573684F626A65637400095374796C654E616D65 - 060A666F726567726F756E640B42727573682E436F6C6F720709784646454145 - 41454100000C5442727573684F626A65637400095374796C654E616D65060973 - 656C656374696F6E0B42727573682E436F6C6F72070978393632413832453200 - 0007544C61796F757400095374796C654E616D650607636F6E74656E7405416C - 69676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C656674 - 05000000000000008000400B4D617267696E732E546F70050000000000000080 - 00400D4D617267696E732E526967687405000000000000008000400E4D617267 - 696E732E426F74746F6D05000000000000008000400A53697A652E5769647468 - 050000000000D8CCF004400B53697A652E4865696768740500000000000000A0 - 03401453697A652E506C6174666F726D44656661756C74080000075442757474 - 6F6E00095374796C654E616D65060B6D696E7573627574746F6E05416C69676E - 07044C6566740843616E466F6375730806437572736F72070763724172726F77 - 0C4D617267696E732E4C65667405000000000000008000400B4D617267696E73 - 2E546F7005000000000000008000400D4D617267696E732E5269676874050000 - 00000000008000400E4D617267696E732E426F74746F6D050000000000000080 - 00400A506F736974696F6E2E5805000000000000008000400A506F736974696F - 6E2E5905000000000000008000400A53697A652E576964746805000000000000 - 00A003400B53697A652E4865696768740500000000000000A003401453697A65 - 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060B62 - 7574746F6E7374796C65000554506174680005416C69676E070643656E746572 - 09446174612E506174680A4000000005000000000000000000803F0000000001 - 0000000000803F0000803F01000000000000000000003F010000000000803F00 - 000000030000000000803F000000000A46696C6C2E436F6C6F720708636C6157 - 686974650748697454657374080A53697A652E57696474680500000000000000 - 8002400B53697A652E48656967687405000000000000008002401453697A652E - 506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F - 6E650000000754427574746F6E00095374796C654E616D65060A706C75736275 - 74746F6E05416C69676E070552696768740843616E466F637573080643757273 - 6F72070763724172726F770C4D617267696E732E4C6566740500000000000000 - 8000400B4D617267696E732E546F7005000000000000008000400D4D61726769 - 6E732E526967687405000000000000008000400E4D617267696E732E426F7474 - 6F6D05000000000000008000400A506F736974696F6E2E580500000000006C66 - B405400A506F736974696F6E2E5905000000000000008000400A53697A652E57 - 69647468050000000000E8FF9F03400B53697A652E4865696768740500000000 - 000000A003401453697A652E506C6174666F726D44656661756C74080B537479 - 6C654C6F6F6B7570060B627574746F6E7374796C65000554506174680005416C - 69676E070643656E74657209446174612E506174680A34000000040000000000 - 0000000000000000000001000000000000000000803F010000000000803F0000 - 003F0300000000000000000000000A46696C6C2E436F6C6F720708636C615768 - 6974650748697454657374080A53697A652E5769647468050000000000A0FFFF - 01400B53697A652E48656967687405000000000000008002401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 6500000000545046300D545377697463684F626A65637400095374796C654E61 - 6D65060B7377697463687374796C6505416C69676E070643656E746572044B69 - 6E64070C466164696E67547261636B730A53697A652E57696474680500000000 - 000000C805400B53697A652E4865696768740500000000000000C80340145369 - 7A652E506C6174666F726D44656661756C7408085461624F7264657202171254 - 7261636B696E675468756D625363616C65050000000000000080FF3F07566973 - 69626C65080A46696C6C2E436F6C6F7207097846463230323032300C46696C6C - 4F6E2E436F6C6F7207097846463137353739430B46696C6C4F6E2E4B696E6407 - 05536F6C69640B5374726F6B652E4B696E6407044E6F6E650B5468756D622E43 - 6F6C6F7207097846463430343034300D5468756D624F6E2E436F6C6F72070978 - 46463241383245320C5468756D624F6E2E4B696E640705536F6C696410546875 - 6D625374726F6B652E4B696E6407044E6F6E650F5468756D625374726F6B652E - 4361700705526F756E64105468756D625374726F6B652E446173680706437573 - 746F6D105468756D625374726F6B652E4A6F696E0705526F756E64165468756D - 625374726F6B652E437573746F6D446173680A08000000000000000000000005 - 53686170650709526F756E645265637400005450463007544C61796F75740009 - 5374796C654E616D65060F746162636F6E74726F6C7374796C6505416C69676E - 070643656E7465720A53697A652E576964746805000000000000008E06400B53 - 697A652E486569676874050000000000FFFFC905401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572021800 - 0A5452656374616E676C6500095374796C654E616D65060A6261636B67726F75 - 6E6405416C69676E0708436F6E74656E747307436F726E6572730B08546F7052 - 696768740A426F74746F6D4C6566740B426F74746F6D5269676874000A46696C - 6C2E436F6C6F720709784646333033303330064C6F636B656409074869745465 - 7374080C50616464696E672E4C65667405000000000000008000400B50616464 - 696E672E546F7005000000000000008000400D50616464696E672E5269676874 - 05000000000000008000400E50616464696E672E426F74746F6D050000000000 - 00008000400A53697A652E576964746805000000000000008E06400B53697A65 - 2E486569676874050000000000FFFFC905401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 07585261646975730500000000000000C0004007595261646975730500000000 - 000000C00040000000545046300A5452656374616E676C6500095374796C654E - 616D65060B746162646F747374796C6505416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463135313531350748697454657374080A5369 + 463007544C61796F757400095374796C654E616D6506147363726F6C6C626172 + 7269676874627574746F6E05416C69676E070643656E7465720756697369626C + 6508085461624F726465720214000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0706436C69656E740C43 + 6C69704368696C6472656E090A436C6970506172656E740907436F726E657273 + 0B08546F7052696768740B426F74746F6D5269676874000A46696C6C2E436F6C + 6F7207097846463230323032300748697454657374080A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + C804401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6507585261646975730500000000000000C000400759 + 5261646975730500000000000000C00040000F54436F6C6F72416E696D617469 + 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 + 696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 + 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 + 463230323032300953746F7056616C7565070978464634303430343007547269 + 67676572062049734D6F7573654F7665723D747275653B497350726573736564 + 3D66616C73650E54726967676572496E7665727365062149734D6F7573654F76 + 65723D66616C73653B4973507265737365643D66616C736500000F54436F6C6F + 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C + 6F72416E696D6174696F6E32084475726174696F6E0500000000000000000000 + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463430343034300953746F7056616C756507097846463137 + 353739430754726967676572061F4973507265737365643D747275653B49734D + 6F7573654F7665723D747275650E54726967676572496E766572736506204973 + 507265737365643D66616C73653B49734D6F7573654F7665723D747275650000 + 0007544C61796F757400095374796C654E616D6506074C61796F75743105416C + 69676E070643656E7465720A53697A652E57696474680500000000000000A002 + 400B53697A652E4865696768740500000000000000C001401453697A652E506C + 6174666F726D44656661756C74080005545061746800095374796C654E616D65 + 0605506174683105416C69676E0706436C69656E7409446174612E506174680A + 3400000004000000000000000000C8420000C84201000000000096430000C842 + 010000000000484300009643030000000000C8420000C8420A46696C6C2E436F + 6C6F720708636C6157686974650748697454657374080D526F746174696F6E41 + 6E676C650500000000000000B405C00A53697A652E5769647468050000000000 + 0000A002400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E65000000005450463007544C61796F757400095374796C654E616D6506 + 0E7363726F6C6C6261727374796C6505416C69676E070643656E746572075669 + 7369626C6508085461624F726465720215000754427574746F6E00095374796C + 654E616D65060A6C656674627574746F6E05416C69676E07044C656674064C6F + 636B6564090A506F736974696F6E2E5905000000000000008003400A53697A65 + 2E576964746805000000000000008003400B53697A652E486569676874050000 + 00000000009003401453697A652E506C6174666F726D44656661756C74080B53 + 74796C654C6F6F6B757006137363726F6C6C6261726C656674627574746F6E00 + 000754427574746F6E00095374796C654E616D65060B7269676874627574746F + 6E05416C69676E07055269676874064C6F636B6564090A506F736974696F6E2E + 5805000000000000008804400A506F736974696F6E2E59050000000000000080 + 03400A53697A652E576964746805000000000000008003400B53697A652E4865 + 6967687405000000000000009003401453697A652E506C6174666F726D446566 + 61756C74080B5374796C654C6F6F6B757006147363726F6C6C62617272696768 + 74627574746F6E00000754427574746F6E00095374796C654E616D65060C626F + 74746F6D627574746F6E05416C69676E0706426F74746F6D064C6F636B656409 + 0A506F736974696F6E2E5905000000000000008804400A53697A652E57696474 + 680500000000000000C804400B53697A652E4865696768740500000000000000 + 8003401453697A652E506C6174666F726D44656661756C74080B5374796C654C + 6F6F6B757006157363726F6C6C626172626F74746F6D627574746F6E00000654 + 547261636B00095374796C654E616D65060668747261636B05416C69676E0706 + 436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F7269 + 7A6F6E74616C0A53697A652E576964746805000000000000009003400B53697A + 652E48656967687405000000000000009003401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172 + 68747261636B7374796C6500000654547261636B00095374796C654E616D6506 + 0676747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F72 + 69656E746174696F6E070A486F72697A6F6E74616C0A53697A652E5769647468 + 05000000000000009003400B53697A652E486569676874050000000000000090 + 03401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B757006147363726F6C6C62617276747261636B7374796C65000007544275 + 74746F6E00095374796C654E616D650609746F70627574746F6E05416C69676E + 0703546F700A53697A652E57696474680500000000000000C804400B53697A65 + 2E48656967687405000000000000008003401453697A652E506C6174666F726D + 44656661756C74080B5374796C654C6F6F6B757006127363726F6C6C62617274 + 6F70627574746F6E0000005450463007544C61796F757400095374796C654E61 + 6D6506127363726F6C6C626172746F70627574746F6E05416C69676E07064365 + 6E7465720756697369626C6508085461624F726465720216000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0706436C69656E740C436C69704368696C6472656E090A436C697050617265 + 6E740907436F726E6572730B07546F704C65667408546F705269676874000A46 + 696C6C2E436F6C6F7207097846463230323032300748697454657374080A5369 7A652E57696474680500000000000000C804400B53697A652E48656967687405 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E650756697369626C65080758526164 - 6975730500000000000000C8034007595261646975730500000000000000C803 - 40000F54436F6C6F72416E696D6174696F6E00084475726174696F6E05000000 - 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097846463135313531350953746F7056616C7565 - 07097846463241383245320754726967676572060F497353656C65637465643D - 747275650E54726967676572496E76657273650610497353656C65637465643D - 66616C73650000005450463007544C61796F757400095374796C654E616D6506 - 0C7461626974656D7374796C6505416C69676E070643656E7465720A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000000000C803401453697A652E506C6174666F726D44656661756C74080756 - 697369626C6508085461624F726465720219000A5452656374616E676C650009 - 5374796C654E616D650603746F7005416C69676E0708436F6E74656E74730C43 - 6C69704368696C6472656E0907436F726E6572730B07546F704C65667408546F - 705269676874000A46696C6C2E436F6C6F720709784646323032303230064C6F - 636B6564090748697454657374080553696465730B03546F70044C6566740552 - 69676874000A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C803401453697A652E506C6174666F726D - 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 - 07585261646975730500000000000000C0004007595261646975730500000000 - 000000C00040000654476C79706800095374796C654E616D65060A676C797068 - 7374796C650C4D617267696E732E4C65667405000000000000008001400D4D61 - 7267696E732E526967687405000000000000008001C005416C69676E07044C65 - 66740A506F736974696F6E2E5805000000000000008001400A53697A652E5769 - 64746805000000000000008003400B53697A652E486569676874050000000000 - 0000C803401453697A652E506C6174666F726D44656661756C74080000055454 - 65787400095374796C654E616D6506047465787405416C69676E0706436C6965 - 6E74064C6F636B6564090748697454657374080C4D617267696E732E4C656674 - 0500000000000000C000400B4D617267696E732E546F700500000000000000C0 - 00400D4D617267696E732E52696768740500000000000000C000400E4D617267 - 696E732E426F74746F6D0500000000000000C000400A53697A652E5769647468 - 0500000000000000B004400B53697A652E486569676874050000000000000098 - 03401453697A652E506C6174666F726D44656661756C74081654657874536574 - 74696E67732E466F6E74436F6C6F720708636C61576869746515546578745365 - 7474696E67732E576F7264577261700800000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650612746162436F6C6F72416E696D6174696F6E - 310D416E696D6174696F6E547970650705496E4F7574084475726174696F6E05 - 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F - 6C6F720A537461727456616C756507097846463230323032300953746F705661 - 6C756507097846463430343034300754726967676572062149734D6F7573654F - 7665723D747275653B497353656C65637465643D66616C73650E547269676765 - 72496E7665727365062249734D6F7573654F7665723D66616C73653B49735365 - 6C65637465643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650612746162436F6C6F72416E696D6174696F6E32084475 + 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 + 0000C0004007595261646975730500000000000000C00040000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F + 72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C + 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 + 6C756507097846463230323032300953746F7056616C75650709784646343034 + 3034300754726967676572062049734D6F7573654F7665723D747275653B4973 + 507265737365643D66616C73650E54726967676572496E766572736506214973 + 4D6F7573654F7665723D66616C73653B4973507265737365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E32084475726174696F6E05000000 + 000000000000000C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463430343034300953746F7056616C7565 + 07097846463137353739430754726967676572061F4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275650E54726967676572496E7665 + 72736506204973507265737365643D66616C73653B49734D6F7573654F766572 + 3D7472756500000007544C61796F757400095374796C654E616D6506074C6179 + 6F75743105416C69676E070643656E7465720A53697A652E5769647468050000 + 0000000000A002400B53697A652E4865696768740500000000000000C0014014 + 53697A652E506C6174666F726D44656661756C74080005545061746800095374 + 796C654E616D650605506174683105416C69676E0706436C69656E7409446174 + 612E506174680A3400000004000000000000000000C8420000C8420100000000 + 0096430000C842010000000000484300009643030000000000C8420000C8420A + 46696C6C2E436F6C6F720708636C6157686974650748697454657374080D526F + 746174696F6E416E676C650500000000000000B406400A53697A652E57696474 + 680500000000000000A002400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000000545046300A5452656374616E676C650009 + 5374796C654E616D6506147363726F6C6C62617276747261636B7374796C6505 + 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646313531 + 3531350748697454657374080A53697A652E57696474680500000000000000C8 + 04400B53697A652E4865696768740500000000000000C804401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 650756697369626C65080006545468756D6200095374796C654E616D65060574 + 68756D62064C6F636B6564090A53697A652E57696474680500000000000000C8 + 04400B53697A652E48656967687405000000000000008003401453697A652E50 + 6C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060A746875 + 6D627374796C650000005450463007544C61796F757400095374796C654E616D + 65060C7370696E626F787374796C6505416C69676E070643656E7465720A5369 + 7A652E57696474680500000000006666E005400B53697A652E48656967687405 + 00000000000000C003401453697A652E506C6174666F726D44656661756C7408 + 0756697369626C6508085461624F726465720217000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032300A5369 + 7A652E57696474680500000000006666E005400B53697A652E48656967687405 + 00000000000000C003401453697A652E506C6174666F726D44656661756C7408 + 0C5374726F6B652E436F6C6F7207097846463135313531350758526164697573 + 0500000000000000C0004007595261646975730500000000000000C00040000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F + 72416E696D6174696F6E315374796C65084475726174696F6E050000000000CD + CCCCFB3F07496E7665727365090C50726F70657274794E616D65060C5374726F + 6B652E436F6C6F720A537461727456616C756507097846463135313531350953 + 746F7056616C756507097846463430343034300754726967676572061049734D + 6F7573654F7665723D747275650E54726967676572496E766572736506114973 + 4D6F7573654F7665723D66616C73650000000C5442727573684F626A65637400 + 095374796C654E616D65060A666F726567726F756E640B42727573682E436F6C + 6F72070978464645414541454100000C5442727573684F626A65637400095374 + 796C654E616D65060973656C656374696F6E0B42727573682E436F6C6F720709 + 783936324138324532000007544C61796F757400095374796C654E616D650607 + 636F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D61 + 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F + 7005000000000000008000400D4D617267696E732E5269676874050000000000 + 00008000400E4D617267696E732E426F74746F6D05000000000000008000400A + 53697A652E5769647468050000000000D8CCF004400B53697A652E4865696768 + 740500000000000000A003401453697A652E506C6174666F726D44656661756C + 740800000754427574746F6E00095374796C654E616D65060B6D696E75736275 + 74746F6E05416C69676E07044C6566740843616E466F6375730806437572736F + 72070763724172726F770C4D617267696E732E4C656674050000000000000080 + 00400B4D617267696E732E546F7005000000000000008000400D4D617267696E + 732E526967687405000000000000008000400E4D617267696E732E426F74746F + 6D05000000000000008000400A506F736974696F6E2E58050000000000000080 + 00400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 + 6474680500000000000000A003400B53697A652E486569676874050000000000 + 0000A003401453697A652E506C6174666F726D44656661756C74080B5374796C + 654C6F6F6B7570060B627574746F6E7374796C65000554506174680005416C69 + 676E070643656E74657209446174612E506174680A4000000005000000000000 + 000000803F00000000010000000000803F0000803F0100000000000000000000 + 3F010000000000803F00000000030000000000803F000000000A46696C6C2E43 + 6F6C6F720708636C6157686974650748697454657374080A53697A652E576964 + 746805000000000000008002400B53697A652E48656967687405000000000000 + 008002401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E650000000754427574746F6E00095374796C654E61 + 6D65060A706C7573627574746F6E05416C69676E070552696768740843616E46 + 6F6375730806437572736F72070763724172726F770C4D617267696E732E4C65 + 667405000000000000008000400B4D617267696E732E546F7005000000000000 + 008000400D4D617267696E732E526967687405000000000000008000400E4D61 + 7267696E732E426F74746F6D05000000000000008000400A506F736974696F6E + 2E580500000000006C66B405400A506F736974696F6E2E590500000000000000 + 8000400A53697A652E5769647468050000000000E8FF9F03400B53697A652E48 + 65696768740500000000000000A003401453697A652E506C6174666F726D4465 + 6661756C74080B5374796C654C6F6F6B7570060B627574746F6E7374796C6500 + 0554506174680005416C69676E070643656E74657209446174612E506174680A + 340000000400000000000000000000000000000001000000000000000000803F + 010000000000803F0000003F0300000000000000000000000A46696C6C2E436F + 6C6F720708636C6157686974650748697454657374080A53697A652E57696474 + 68050000000000A0FFFF01400B53697A652E4865696768740500000000000000 + 8002401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6500000000545046300D545377697463684F626A6563 + 7400095374796C654E616D65060B7377697463687374796C6505416C69676E07 + 0643656E746572044B696E64070C466164696E67547261636B730A53697A652E + 57696474680500000000000000C805400B53697A652E48656967687405000000 + 00000000C803401453697A652E506C6174666F726D44656661756C7408085461 + 624F72646572021812547261636B696E675468756D625363616C650500000000 + 00000080FF3F0756697369626C65080A46696C6C2E436F6C6F72070978464632 + 30323032300C46696C6C4F6E2E436F6C6F7207097846463137353739430B4669 + 6C6C4F6E2E4B696E640705536F6C69640B5374726F6B652E4B696E6407044E6F + 6E650B5468756D622E436F6C6F7207097846463430343034300D5468756D624F + 6E2E436F6C6F7207097846463241383245320C5468756D624F6E2E4B696E6407 + 05536F6C6964105468756D625374726F6B652E4B696E6407044E6F6E650F5468 + 756D625374726F6B652E4361700705526F756E64105468756D625374726F6B65 + 2E446173680706437573746F6D105468756D625374726F6B652E4A6F696E0705 + 526F756E64165468756D625374726F6B652E437573746F6D446173680A080000 + 0000000000000000000553686170650709526F756E6452656374000054504630 + 07544C61796F757400095374796C654E616D65060F746162636F6E74726F6C73 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 00000000008E06400B53697A652E486569676874050000000000FFFFC9054014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F726465720219000A5452656374616E676C6500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E0708436F6E74656E747307436F72 + 6E6572730B08546F7052696768740A426F74746F6D4C6566740B426F74746F6D + 5269676874000A46696C6C2E436F6C6F720709784646333033303330064C6F63 + 6B6564090748697454657374080C50616464696E672E4C656674050000000000 + 00008000400B50616464696E672E546F7005000000000000008000400D506164 + 64696E672E526967687405000000000000008000400E50616464696E672E426F + 74746F6D05000000000000008000400A53697A652E5769647468050000000000 + 00008E06400B53697A652E486569676874050000000000FFFFC905401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 0978464631353135313507585261646975730500000000000000C00040075952 + 61646975730500000000000000C00040000000545046300A5452656374616E67 + 6C6500095374796C654E616D65060B746162646F747374796C6505416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463135313531350748 + 697454657374080A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507566973 + 69626C650807585261646975730500000000000000C803400759526164697573 + 0500000000000000C80340000F54436F6C6F72416E696D6174696F6E00084475 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A - 46696C6C2E436F6C6F720A537461727456616C75650709784646323032303230 + 46696C6C2E436F6C6F720A537461727456616C75650709784646313531353135 0953746F7056616C756507097846463241383245320754726967676572060F49 7353656C65637465643D747275650E54726967676572496E7665727365061049 - 7353656C65637465643D66616C7365000000005450463007544C61796F757400 - 095374796C654E616D65060D7465787463656C6C7374796C6505416C69676E07 - 0643656E7465720756697369626C6508085461624F72646572021A0007544C61 - 796F757400095374796C654E616D650607636F6E74656E7405416C69676E0708 - 436F6E74656E7473064C6F636B6564090C4D617267696E732E4C656674050000 - 00000000008001400B4D617267696E732E546F7005000000000000008001400D - 4D617267696E732E526967687405000000000000008001400E4D617267696E73 - 2E426F74746F6D05000000000000008001400A53697A652E5769647468050000 - 0000000000A804400B53697A652E4865696768740500000000000000A8044014 - 53697A652E506C6174666F726D44656661756C740800000C5442727573684F62 - 6A65637400095374796C654E616D65060A666F726567726F756E6400000C5442 - 727573684F626A65637400095374796C654E616D65060973656C656374696F6E - 0B42727573682E436F6C6F72070978393632413832453200000B54466F6E744F - 626A65637400095374796C654E616D650604666F6E7400000054504630075443 - 6972636C6500095374796C654E616D65060D7468756D626261727374796C6505 - 416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646324138 - 3245320748697454657374080A53697A652E57696474680500000000000000A0 - 03400B53697A652E4865696768740500000000000000A003401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 463135313531350756697369626C6508000F54436F6C6F72416E696D6174696F - 6E00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F - 6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E - 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464632 - 41383245320953746F7056616C75650709784646313735373943075472696767 - 6572061F4973507265737365643D747275653B49734D6F7573654F7665723D74 - 7275650E54726967676572496E766572736506104973507265737365643D6661 - 6C73653B00000F54436F6C6F72416E696D6174696F6E00095374796C654E616D - 6506147468756D62436F6C6F72416E696D6174696F6E32084475726174696F6E - 050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E43 - 6F6C6F720A537461727456616C756507097846463241383245320953746F7056 - 616C756507097846463430394246460754726967676572062049734D6F757365 - 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 - 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 - 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D6506157468756D625374726F6B65416E696D6174696F6E3108 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 060C5374726F6B652E436F6C6F720A537461727456616C756507097846463135 - 313531350953746F7056616C7565070978464631373537394307547269676765 - 72061F4973507265737365643D747275653B49734D6F7573654F7665723D7472 + 7353656C65637465643D66616C73650000005450463007544C61796F75740009 + 5374796C654E616D65060C7461626974656D7374796C6505416C69676E070643 + 656E7465720A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F72646572021A000A5452 + 656374616E676C6500095374796C654E616D650603746F7005416C69676E0708 + 436F6E74656E74730C436C69704368696C6472656E0907436F726E6572730B07 + 546F704C65667408546F705269676874000A46696C6C2E436F6C6F7207097846 + 46323032303230064C6F636B6564090748697454657374080553696465730B03 + 546F70044C656674055269676874000A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C803401453697A + 652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207 + 0978464631353135313507585261646975730500000000000000C00040075952 + 61646975730500000000000000C00040000654476C79706800095374796C654E + 616D65060A676C7970687374796C650C4D617267696E732E4C65667405000000 + 000000008001400D4D617267696E732E526967687405000000000000008001C0 + 05416C69676E07044C6566740A506F736974696F6E2E58050000000000000080 + 01400A53697A652E576964746805000000000000008003400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C7408000005545465787400095374796C654E616D650604746578740541 + 6C69676E0706436C69656E74064C6F636B6564090748697454657374080C4D61 + 7267696E732E4C6566740500000000000000C000400B4D617267696E732E546F + 700500000000000000C000400D4D617267696E732E5269676874050000000000 + 0000C000400E4D617267696E732E426F74746F6D0500000000000000C000400A + 53697A652E57696474680500000000000000B004400B53697A652E4865696768 + 7405000000000000009803401453697A652E506C6174666F726D44656661756C + 7408165465787453657474696E67732E466F6E74436F6C6F720708636C615768 + 697465155465787453657474696E67732E576F7264577261700800000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650612746162436F6C6F + 72416E696D6174696F6E310D416E696D6174696F6E547970650705496E4F7574 + 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D + 65060A46696C6C2E436F6C6F720A537461727456616C75650709784646323032 + 3032300953746F7056616C756507097846463430343034300754726967676572 + 062149734D6F7573654F7665723D747275653B497353656C65637465643D6661 + 6C73650E54726967676572496E7665727365062249734D6F7573654F7665723D + 66616C73653B497353656C65637465643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650612746162436F6C6F72416E69 + 6D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F70 + 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 + 097846463230323032300953746F7056616C7565070978464632413832453207 + 54726967676572060F497353656C65637465643D747275650E54726967676572 + 496E76657273650610497353656C65637465643D66616C736500000000545046 + 3007544C61796F757400095374796C654E616D65060D7465787463656C6C7374 + 796C6505416C69676E070643656E7465720756697369626C6508085461624F72 + 646572021B0007544C61796F757400095374796C654E616D650607636F6E7465 + 6E7405416C69676E0708436F6E74656E7473064C6F636B6564090C4D61726769 + 6E732E4C65667405000000000000008001400B4D617267696E732E546F700500 + 0000000000008001400D4D617267696E732E5269676874050000000000000080 + 01400E4D617267696E732E426F74746F6D05000000000000008001400A53697A + 652E57696474680500000000000000A804400B53697A652E4865696768740500 + 000000000000A804401453697A652E506C6174666F726D44656661756C740800 + 000C5442727573684F626A65637400095374796C654E616D65060A666F726567 + 726F756E6400000C5442727573684F626A65637400095374796C654E616D6506 + 0973656C656374696F6E0B42727573682E436F6C6F7207097839363241383245 + 3200000B54466F6E744F626A65637400095374796C654E616D650604666F6E74 + 000000545046300754436972636C6500095374796C654E616D65060D7468756D + 626261727374796C6505416C69676E070643656E7465720A46696C6C2E436F6C + 6F7207097846463241383245320748697454657374080A53697A652E57696474 + 680500000000000000A003400B53697A652E4865696768740500000000000000 + A003401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F7207097846463135313531350756697369626C6508000F54436F6C + 6F72416E696D6174696F6E00095374796C654E616D6506147468756D62436F6C + 6F72416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F + 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 + 616C756507097846463241383245320953746F7056616C756507097846463137 + 353739430754726967676572061F4973507265737365643D747275653B49734D + 6F7573654F7665723D747275650E54726967676572496E766572736506104973 + 507265737365643D66616C73653B00000F54436F6C6F72416E696D6174696F6E + 00095374796C654E616D6506147468756D62436F6C6F72416E696D6174696F6E + 32084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E61 + 6D65060A46696C6C2E436F6C6F720A537461727456616C756507097846463241 + 383245320953746F7056616C7565070978464634303942464607547269676765 + 72062049734D6F7573654F7665723D747275653B4973507265737365643D6661 + 6C73650E54726967676572496E7665727365062149734D6F7573654F7665723D + 66616C73653B4973507265737365643D66616C736500000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D6506157468756D625374726F6B6541 + 6E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C5072 + 6F70657274794E616D65060C5374726F6B652E436F6C6F720A53746172745661 + 6C756507097846463135313531350953746F7056616C75650709784646313735 + 3739430754726967676572061F4973507265737365643D747275653B49734D6F + 7573654F7665723D747275650E54726967676572496E7665727365060F497350 + 7265737365643D66616C7365000000545046300A5452656374616E676C650009 + 5374796C654E616D65060A7468756D627374796C6505416C69676E070643656E + 7465720A46696C6C2E436F6C6F72070978464634443444344407486974546573 + 74080A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000C804401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E650756697369626C6508 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506147468 + 756D62436F6C6F72416E696D6174696F6E31084475726174696F6E0500000000 + 00CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A + 537461727456616C756507097846463444344434440953746F7056616C756507 + 097846463137353739430754726967676572060E4973507265737365643D7472 75650E54726967676572496E7665727365060F4973507265737365643D66616C - 7365000000545046300A5452656374616E676C6500095374796C654E616D6506 - 0A7468756D627374796C6505416C69676E070643656E7465720A46696C6C2E43 - 6F6C6F7207097846463444344434440748697454657374080A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000C804401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E650756697369626C6508000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D6506147468756D62436F6C6F72416E - 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F - 70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C7565 - 07097846463444344434440953746F7056616C75650709784646313735373943 - 0754726967676572060E4973507265737365643D747275650E54726967676572 - 496E7665727365060F4973507265737365643D66616C736500000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D - 6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F07 - 496E7665727365090C50726F70657274794E616D65060A46696C6C2E436F6C6F - 720A537461727456616C756507097846463444344434440953746F7056616C75 - 650707636C61477261790754726967676572061049734D6F7573654F7665723D - 747275650E54726967676572496E7665727365061149734D6F7573654F766572 - 3D66616C73650000005450463007544C61796F757400095374796C654E616D65 - 060D747261636B6261727374796C6505416C69676E070643656E7465720A5369 - 7A652E57696474680500000000000000C805400B53697A652E48656967687405 - 00000000000000C805401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F72646572021B0B4669786564486569676874 - 0211000A5452656374616E676C6500095374796C654E616D6506066874726163 - 6B05416C69676E070A5665727443656E7465720A46696C6C2E436F6C6F720709 - 7846463135313531350748697454657374080A506F736974696F6E2E59050000 - 0000000000BC04400A53697A652E57696474680500000000000000C805400B53 - 697A652E4865696768740500000000000000A001401453697A652E506C617466 - 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852 - 61646975730500000000000000A0004007595261646975730500000000000000 - A00040000A5452656374616E676C6500095374796C654E616D65060A6261636B - 67726F756E6405416C69676E0708436F6E74656E74730946696C6C2E4B696E64 - 07044E6F6E65064C6F636B6564090748697454657374080C4D617267696E732E - 4C6566740500000000000000C001400B4D617267696E732E546F700500000000 - 00000080FF3F0D4D617267696E732E52696768740500000000000000C001400E - 4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E57 - 696474680500000000000000B005400B53697A652E4865696768740500000000 - 000000C000401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E6507585261646975730500000000000000C0FF - 3F07595261646975730500000000000000C0FF3F00000A5452656374616E676C - 6500095374796C654E616D650609686967686C6967687405416C69676E07044C - 6566740A46696C6C2E436F6C6F72070978464632413832453207486974546573 - 74080C50616464696E672E4C6566740500000000000000A002400A53697A652E - 57696474680500000000000000F003400B53697A652E48656967687405000000 - 00000000A001401453697A652E506C6174666F726D44656661756C74080B5374 - 726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000A0 - 004007595261646975730500000000000000A0004000000B54476C6F77456666 - 6563740008536F66746E657373050000000000CDCCCCFC3F09476C6F77436F6C - 6F720709784646324138324532074F706163697479050000000000000080FF3F - 07456E61626C6564080000000A5452656374616E676C6500095374796C654E61 - 6D65060676747261636B05416C69676E070A486F727A43656E7465720A46696C - 6C2E436F6C6F7207097846463135313531350748697454657374080A506F7369 - 74696F6E2E580500000000000000BC04400A53697A652E576964746805000000 - 00000000A001400B53697A652E4865696768740500000000000000C805401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6507585261646975730500000000000000A0004007595261646975 - 730500000000000000A00040000A5452656374616E676C6500095374796C654E - 616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E747309 - 46696C6C2E4B696E6407044E6F6E65064C6F636B656409074869745465737408 - 0C4D617267696E732E4C6566740500000000000000C001400B4D617267696E73 - 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 - 0000000000C001400E4D617267696E732E426F74746F6D050000000000000080 - FF3F0A53697A652E576964746805000000000000000000000B53697A652E4865 - 696768740500000000000000C405401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000A545265637461 - 6E676C6500095374796C654E616D650609686967686C6967687405416C69676E - 0703546F700A46696C6C2E436F6C6F7207097846463241383245320748697454 - 657374080A53697A652E57696474680500000000000000A001400B53697A652E - 4865696768740500000000000000F003401453697A652E506C6174666F726D44 + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 14436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E0500 + 00000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463444344434 + 440953746F7056616C75650707636C6147726179075472696767657206104973 + 4D6F7573654F7665723D747275650E54726967676572496E7665727365061149 + 734D6F7573654F7665723D66616C73650000005450463007544C61796F757400 + 095374796C654E616D65060D747261636B6261727374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 + 7A652E4865696768740500000000000000C805401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F72646572021C0B46 + 697865644865696768740211000A5452656374616E676C6500095374796C654E + 616D65060668747261636B05416C69676E070A5665727443656E7465720A4669 + 6C6C2E436F6C6F7207097846463135313531350748697454657374080A506F73 + 6974696F6E2E590500000000000000BC04400A53697A652E5769647468050000 + 0000000000C805400B53697A652E4865696768740500000000000000A0014014 + 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E + 6407044E6F6E6507585261646975730500000000000000A00040075952616469 + 75730500000000000000A00040000A5452656374616E676C6500095374796C65 + 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 + 0946696C6C2E4B696E6407044E6F6E65064C6F636B6564090748697454657374 + 080C4D617267696E732E4C6566740500000000000000C001400B4D617267696E + 732E546F70050000000000000080FF3F0D4D617267696E732E52696768740500 + 000000000000C001400E4D617267696E732E426F74746F6D0500000000000000 + 80FF3F0A53697A652E57696474680500000000000000B005400B53697A652E48 + 65696768740500000000000000C000401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 + 0500000000000000C0FF3F07595261646975730500000000000000C0FF3F0000 + 0A5452656374616E676C6500095374796C654E616D650609686967686C696768 + 7405416C69676E07044C6566740A46696C6C2E436F6C6F720709784646324138 + 3245320748697454657374080C50616464696E672E4C65667405000000000000 + 00A002400A53697A652E57696474680500000000000000F003400B53697A652E + 4865696768740500000000000000A001401453697A652E506C6174666F726D44 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975 730500000000000000A0004007595261646975730500000000000000A0004000 000B54476C6F774566666563740008536F66746E657373050000000000CDCCCC FC3F09476C6F77436F6C6F720709784646324138324532074F70616369747905 - 0000000000000080FF3F07456E61626C65640800000006545468756D62000953 - 74796C654E616D650606687468756D62064C6F636B6564090A506F736974696F - 6E2E580500000000003033AB03400A506F736974696F6E2E59050000000000FF - FFA304400A53697A652E57696474680500000000000000F002400B53697A652E - 4865696768740500000000000000F002401453697A652E506C6174666F726D44 - 656661756C74080B5374796C654C6F6F6B7570060D7468756D62626172737479 - 6C65000006545468756D6200095374796C654E616D650606767468756D62064C - 6F636B6564090A506F736974696F6E2E58050000000000CBCCA804400A506F73 - 6974696F6E2E590500000000009899B103400A53697A652E5769647468050000 - 0000000000F002400B53697A652E4865696768740500000000000000F0024014 - 53697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B75 - 70060D7468756D626261727374796C650000005450463007544C61796F757400 - 095374796C654E616D6506096D656D6F7374796C6505416C69676E070643656E - 7465720A53697A652E5769647468050000000000CCCC8806400B53697A652E48 + 0000000000000080FF3F07456E61626C6564080000000A5452656374616E676C + 6500095374796C654E616D65060676747261636B05416C69676E070A486F727A + 43656E7465720A46696C6C2E436F6C6F72070978464631353135313507486974 + 54657374080A506F736974696F6E2E580500000000000000BC04400A53697A65 + 2E57696474680500000000000000A001400B53697A652E486569676874050000 + 0000000000C805401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + A0004007595261646975730500000000000000A00040000A5452656374616E67 + 6C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E07 + 08436F6E74656E74730946696C6C2E4B696E6407044E6F6E65064C6F636B6564 + 090748697454657374080C4D617267696E732E4C6566740500000000000000C0 + 01400B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E52696768740500000000000000C001400E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E5769647468050000000000000000 + 00000B53697A652E4865696768740500000000000000C405401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6500000A5452656374616E676C6500095374796C654E616D650609686967686C + 6967687405416C69676E0703546F700A46696C6C2E436F6C6F72070978464632 + 41383245320748697454657374080A53697A652E576964746805000000000000 + 00A001400B53697A652E4865696768740500000000000000F003401453697A65 + 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E + 6F6E6507585261646975730500000000000000A0004007595261646975730500 + 000000000000A0004000000B54476C6F774566666563740008536F66746E6573 + 73050000000000CDCCCCFC3F09476C6F77436F6C6F7207097846463241383245 + 32074F706163697479050000000000000080FF3F07456E61626C656408000000 + 06545468756D6200095374796C654E616D650606687468756D62064C6F636B65 + 64090A506F736974696F6E2E580500000000003033AB03400A506F736974696F + 6E2E59050000000000FFFFA304400A53697A652E576964746805000000000000 + 00F002400B53697A652E4865696768740500000000000000F002401453697A65 + 2E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570060D74 + 68756D626261727374796C65000006545468756D6200095374796C654E616D65 + 0606767468756D62064C6F636B6564090A506F736974696F6E2E580500000000 + 00CBCCA804400A506F736974696F6E2E590500000000009899B103400A53697A + 652E57696474680500000000000000F002400B53697A652E4865696768740500 + 000000000000F002401453697A652E506C6174666F726D44656661756C74080B + 5374796C654C6F6F6B7570060D7468756D626261727374796C65000000545046 + 3007544C61796F757400095374796C654E616D6506096D656D6F7374796C6505 + 416C69676E070643656E7465720A53697A652E5769647468050000000000CCCC + 8806400B53697A652E4865696768740500000000006666F405401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 6572021D000B54476C6F774566666563740008536F66746E6573730500000000 + 00CDCCCCFC3F09476C6F77436F6C6F720709784646343837394133074F706163 + 697479050000000000000080FF3F0754726967676572060E4973466F63757365 + 643D7472756507456E61626C65640800000C5442727573684F626A6563740009 + 5374796C654E616D65060A666F726567726F756E6400000C5442727573684F62 + 6A65637400095374796C654E616D65060973656C656374696F6E0B4272757368 + 2E436F6C6F72070978374634343735394400000B54466F6E744F626A65637400 + 095374796C654E616D650604666F6E7400000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080A53697A652E5769647468050000000000CCCC8806400B53697A652E48 65696768740500000000006666F405401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F72646572021C000B54476C6F - 774566666563740008536F66746E657373050000000000CDCCCCFC3F09476C6F - 77436F6C6F720709784646343837394133074F70616369747905000000000000 - 0080FF3F0754726967676572060E4973466F63757365643D7472756507456E61 - 626C65640800000C5442727573684F626A65637400095374796C654E616D6506 - 0A666F726567726F756E6400000C5442727573684F626A65637400095374796C - 654E616D65060973656C656374696F6E0B42727573682E436F6C6F7207097837 - 4634343735394400000B54466F6E744F626A65637400095374796C654E616D65 - 0604666F6E7400000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E - 436F6C6F7207097846463230323032300748697454657374080A53697A652E57 - 69647468050000000000CCCC8806400B53697A652E4865696768740500000000 - 006666F405401453697A652E506C6174666F726D44656661756C74080C537472 - 6F6B652E436F6C6F720709784646313531353135075852616469757305000000 - 00000000C0004007595261646975730500000000000000C000400007544C6179 - 6F757400095374796C654E616D650607636F6E74656E7405416C69676E070643 - 6C69656E740C4D617267696E732E4C65667405000000000000008000400B4D61 - 7267696E732E546F7005000000000000008000400D4D617267696E732E526967 - 687405000000000000008000400E4D617267696E732E426F74746F6D05000000 - 000000008000400A53697A652E57696474680500000000009899E905400B5369 - 7A652E4865696768740500000000006666CC05401453697A652E506C6174666F - 726D44656661756C740800000A545363726F6C6C42617200095374796C654E61 - 6D65060A687363726F6C6C62617205416C69676E0706426F74746F6D06437572 - 736F72070763724172726F770B536D616C6C4368616E67650500000000000000 - 0000000B4F7269656E746174696F6E070A486F72697A6F6E74616C0A506F7369 - 74696F6E2E590500000000006666D405400A53697A652E576964746805000000 - 0000CCCC8806400B53697A652E48656967687405000000000000008003401453 + 6661756C74080C5374726F6B652E436F6C6F7207097846463135313531350758 + 5261646975730500000000000000C00040075952616469757305000000000000 + 00C000400007544C61796F757400095374796C654E616D650607636F6E74656E + 7405416C69676E0706436C69656E740C4D617267696E732E4C65667405000000 + 000000008000400B4D617267696E732E546F7005000000000000008000400D4D + 617267696E732E526967687405000000000000008000400E4D617267696E732E + 426F74746F6D05000000000000008000400A53697A652E576964746805000000 + 00009899E905400B53697A652E4865696768740500000000006666CC05401453 697A652E506C6174666F726D44656661756C740800000A545363726F6C6C4261 - 7200095374796C654E616D65060A767363726F6C6C62617205416C69676E0705 - 526967687406437572736F72070763724172726F770B536D616C6C4368616E67 - 6505000000000000000000000B4F7269656E746174696F6E0708566572746963 - 616C0A506F736974696F6E2E580500000000009899F105400A53697A652E5769 - 64746805000000000000008003400B53697A652E486569676874050000000000 - 6666D405401453697A652E506C6174666F726D44656661756C7408000007544C - 61796F75740005416C69676E0706436C69656E740A53697A652E576964746805 - 00000000009899F105400B53697A652E4865696768740500000000006666D405 - 401453697A652E506C6174666F726D44656661756C7408000F54536D616C6C53 - 63726F6C6C42617200095374796C654E616D65060F76736D616C6C7363726F6C - 6C62617205416C69676E0705526967687406437572736F72070763724172726F - 770B536D616C6C4368616E676505000000000000000000000B4F7269656E7461 - 74696F6E0708566572746963616C0C4D617267696E732E4C6566740500000000 - 0000008000400A53697A652E576964746805000000000000008002400B53697A - 652E48656967687405000000000000008002401453697A652E506C6174666F72 - 6D44656661756C74080756697369626C650800000F54536D616C6C5363726F6C - 6C42617200095374796C654E616D65060F68736D616C6C7363726F6C6C626172 - 05416C69676E0706426F74746F6D06437572736F72070763724172726F770B53 - 6D616C6C4368616E676505000000000000000000000B4F7269656E746174696F - 6E070A486F72697A6F6E74616C0B4D617267696E732E546F7005000000000000 - 008000400A53697A652E576964746805000000000000009606400B53697A652E - 48656967687405000000000000008002401453697A652E506C6174666F726D44 - 656661756C74080756697369626C65080000000F54436F6C6F72416E696D6174 - 696F6E00095374796C654E616D6506146D656D6F5374726F6B65416E696D6174 - 696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 - 794E616D65060C5374726F6B652E436F6C6F720A537461727456616C75650709 - 7846463135313531350953746F7056616C756507097846463430343034300754 - 726967676572062049734D6F7573654F7665723D747275653B4973466F637573 - 65643D66616C73650E54726967676572496E7665727365062149734D6F757365 - 4F7665723D66616C73653B4973466F63757365643D66616C736500000F54436F - 6C6F72416E696D6174696F6E00095374796C654E616D6506146D656D6F537472 - 6F6B65416E696D6174696F6E32084475726174696F6E050000000000CDCCCCFB - 3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461 - 727456616C756507097846463430343034300953746F7056616C756507097846 - 463241383245320754726967676572060E4973466F63757365643D747275650E - 54726967676572496E7665727365060F4973466F63757365643D66616C736500 - 0000005450463007544C61796F757400095374796C654E616D65060D73697A65 - 677269707374796C6505416C69676E070643656E7465720A53697A652E576964 - 74680500000000000000C803400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C7408075669736962 - 6C6508085461624F72646572021D000A5452656374616E676C6500095374796C - 654E616D65060A52656374616E676C653105416C69676E070643656E7465720A - 46696C6C2E436F6C6F7207097846463630363036300A53697A652E5769647468 - 0500000000000000A000400B53697A652E4865696768740500000000000000A0 - 00401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653205416C69676E070643656E7465720A46696C - 6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C65667405 - 00000000000000A002400A53697A652E57696474680500000000000000A00040 - 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 - 6C653305416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 - 463630363036300C4D617267696E732E4C6566740500000000000000A002400B - 4D617267696E732E546F700500000000000000A002400A53697A652E57696474 - 680500000000000000A000400B53697A652E4865696768740500000000000000 - A000401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E - 616D65060A52656374616E676C653405416C69676E070643656E7465720A4669 - 6C6C2E436F6C6F7207097846463630363036300B4D617267696E732E546F7005 - 00000000000000A002400A53697A652E57696474680500000000000000A00040 - 0B53697A652E4865696768740500000000000000A000401453697A652E506C61 - 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500 - 000A5452656374616E676C6500095374796C654E616D65060A52656374616E67 - 6C653505416C69676E070643656E7465720A46696C6C2E436F6C6F7207097846 - 463630363036300B4D617267696E732E546F700500000000000000A002400D4D - 617267696E732E52696768740500000000000000A002400A53697A652E576964 - 74680500000000000000A000400B53697A652E48656967687405000000000000 - 00A000401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E6500000A5452656374616E676C6500095374796C65 - 4E616D65060A52656374616E676C653605416C69676E070643656E7465720A46 - 696C6C2E436F6C6F7207097846463630363036300C4D617267696E732E4C6566 - 740500000000000000A002400E4D617267696E732E426F74746F6D0500000000 - 000000A002400A53697A652E57696474680500000000000000A000400B53697A - 652E4865696768740500000000000000A000401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000005450 - 46300A5452656374616E676C6500095374796C654E616D65060E737461747573 - 6261727374796C6505416C69676E070643656E7465720C436C69704368696C64 - 72656E090A46696C6C2E436F6C6F720709784646323532353235055369646573 - 0B03546F70000A53697A652E57696474680500000000000000F004400B53697A - 652E4865696768740500000000000000C804401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 350756697369626C65080007544C61796F757400095374796C654E616D650607 - 4C61796F75743105416C69676E070552696768740A506F736974696F6E2E5805 - 000000000000008C04400A53697A652E57696474680500000000000000C80340 - 0B53697A652E4865696768740500000000000000C804401453697A652E506C61 - 74666F726D44656661756C740800095453697A654772697000095374796C654E - 616D65060973697A65677267697005416C69676E0706426F74746F6D0A506F73 - 6974696F6E2E590500000000000000C803400A53697A652E5769647468050000 - 0000000000C803400B53697A652E4865696768740500000000000000C8034014 - 53697A652E506C6174666F726D44656661756C740800000000545046300A5452 - 656374616E676C6500095374796C654E616D65060C746F6F6C6261727374796C - 6505416C69676E070643656E7465720A46696C6C2E436F6C6F72070978464632 - 35323532350748697454657374080553696465730B06426F74746F6D000A5369 - 7A652E57696474680500000000000000C804400B53697A652E48656967687405 - 00000000000000C804401453697A652E506C6174666F726D44656661756C7408 - 0C5374726F6B652E436F6C6F7207097846463135313531350756697369626C65 - 0800005450463007544C61796F757400095374796C654E616D65061570726F67 - 726573736261726572726F727374796C6505416C69676E070643656E7465720A - 53697A652E576964746805000000000033338505400B53697A652E4865696768 - 740500000000009999E104401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508085461624F72646572021E000A5452656374616E67 - 6C6500095374796C654E616D65060668747261636B05416C69676E0708436F6E - 74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B - 6564090748697454657374080A53697A652E5769647468050000000000333385 - 05400B53697A652E4865696768740500000000009999E104401453697A652E50 - 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 - 4631353135313507585261646975730500000000000000C00040075952616469 - 75730500000000000000C00040000A5452656374616E676C6500095374796C65 - 4E616D65060A68696E64696361746F7205416C69676E07044C6566740A46696C - 6C2E436F6C6F720709784646453232413241064C6F636B656409074869745465 - 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 - 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 - 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 - 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 - 74696F6E2E59050000000000000080FF3F0A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000009999D904401453 - 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 - 07044E6F6E6507585261646975730500000000000000C0004007595261646975 - 730500000000000000C000400000000A5452656374616E676C6500095374796C - 654E616D65060676747261636B05416C69676E0708436F6E74656E74730A4669 - 6C6C2E436F6C6F720709784646323032303230064C6F636B6564090748697454 - 657374080A53697A652E576964746805000000000033338505400B53697A652E - 4865696768740500000000009999E104401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313507 - 585261646975730500000000000000C000400759526164697573050000000000 - 0000C00040000A5452656374616E676C6500095374796C654E616D65060A7669 - 6E64696361746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F - 720709784646453232413241064C6F636B6564090748697454657374080C4D61 - 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F - 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 - 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A - 506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E59 - 05000000000099998904400A53697A652E576964746805000000000033338105 - 400B53697A652E4865696768740500000000000000A803401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 07585261646975730500000000000000C0004007595261646975730500000000 - 000000C00040000000005450463007544C61796F757400095374796C654E616D - 65060E6C696E6B6C6162656C7374796C6505416C69676E070643656E7465720A - 53697A652E5769647468050000000000CCCC8006400B53697A652E4865696768 - 740500000000009A998104401453697A652E506C6174666F726D44656661756C - 74080756697369626C6508085461624F72646572021F00055454657874000953 - 74796C654E616D6506047465787405416C69676E0708436F6E74656E74730748 - 697454657374080A53697A652E5769647468050000000000CCCC8006400B5369 - 7A652E4865696768740500000000009A998104401453697A652E506C6174666F - 726D44656661756C740804546578740604546578741A5465787453657474696E - 67732E466F6E742E5374796C654578740A0D0000000404000000000000000400 - 0000165465787453657474696E67732E466F6E74436F6C6F72070D636C61446F - 64676572626C7565000F54436F6C6F72416E696D6174696F6E00095374796C65 - 4E616D650614436F6C6F72416E696D6174696F6E315374796C65084475726174 - 696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065727479 - 4E616D6506165465787453657474696E67732E466F6E74436F6C6F720A537461 - 727456616C7565070D636C61446F64676572626C75650953746F7056616C7565 - 070E636C6144656570736B79626C75650754726967676572063049734D6F7573 - 654F7665723D747275653B4973507265737365643D66616C73653B4973466F63 - 757365643D66616C73650E54726967676572496E7665727365063149734D6F75 - 73654F7665723D66616C73653B4973507265737365643D66616C73653B497346 - 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 06165465787453657474696E67732E466F6E74436F6C6F720A53746172745661 - 6C7565070E636C6144656570736B79626C75650953746F7056616C7565070978 - 46463137353739430754726967676572062F4973507265737365643D74727565 - 3B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C73 - 65000000005450463007544C61796F757400095374796C654E616D650613736D - 616C6C7363726F6C6C6261727374796C6505416C69676E070643656E74657207 - 56697369626C6508085461624F726465720220000654547261636B0009537479 - 6C654E616D65060668747261636B05416C69676E0706436C69656E74064C6F63 - 6B6564090B4F7269656E746174696F6E070A486F72697A6F6E74616C0A53697A - 652E57696474680500000000000000C804400B53697A652E4865696768740500 - 000000000000C804401453697A652E506C6174666F726D44656661756C74080B - 5374796C654C6F6F6B757006147363726F6C6C62617268747261636B7374796C - 6500000654547261636B00095374796C654E616D65060676747261636B05416C - 69676E0706436C69656E74064C6F636B6564090B4F7269656E746174696F6E07 - 0A486F72697A6F6E74616C0A53697A652E57696474680500000000000000C804 - 400B53697A652E4865696768740500000000000000C804401453697A652E506C - 6174666F726D44656661756C74080B5374796C654C6F6F6B757006147363726F - 6C6C62617276747261636B7374796C650000005450463007544C61796F757400 - 095374796C654E616D65060D636F6D626F626F787374796C6505416C69676E07 - 0643656E7465720A53697A652E57696474680500000000000000C805400B5369 - 7A652E4865696768740500000000000000C803401453697A652E506C6174666F - 726D44656661756C74080756697369626C6508085461624F726465720221000C - 5442727573684F626A65637400095374796C654E616D65060A666F726567726F - 756E6400000B54466F6E744F626A65637400095374796C654E616D650604666F - 6E7409466F6E742E53697A650500000000000000D00240000007544C61796F75 - 7400095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 - 436F6E74656E74730A53697A652E57696474680500000000000000C805400B53 - 697A652E4865696768740500000000000000C803401453697A652E506C617466 - 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 - 6D65060A52656374616E676C653105416C69676E0706436C69656E740A46696C - 6C2E436F6C6F7207097846463230323032300748697454657374080A53697A65 - 2E57696474680500000000000000C805400B53697A652E486569676874050000 - 0000000000C803401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 - C0004007595261646975730500000000000000C000400007544C61796F757400 - 095374796C654E616D650611427574746F6E5374796C654F626A65637405416C - 69676E070846697452696768740B4D617267696E732E546F7005000000000000 - 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 - 7267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F6E - 2E580500000000005ED99705400A506F736974696F6E2E590500000000000000 - 80FF3F0A53697A652E5769647468050000000000889AB803400B53697A652E48 - 65696768740500000000000000B803401453697A652E506C6174666F726D4465 - 6661756C74080007544C61796F757400095374796C654E616D6506074C61796F - 75743105416C69676E070643656E7465720C4D617267696E732E4C6566740500 - 00000000000080FF3F0A53697A652E57696474680500000000000000A002400B - 53697A652E4865696768740500000000000000C001401453697A652E506C6174 - 666F726D44656661756C74080005545061746800095374796C654E616D650605 - 506174683105416C69676E0706436C69656E7409446174612E506174680A3400 - 000004000000000000000000C8420000C84201000000000096430000C8420100 - 00000000484300009643030000000000C8420000C8420A46696C6C2E436F6C6F - 720708636C6157686974650748697454657374080A53697A652E576964746805 - 00000000000000A002400B53697A652E4865696768740500000000000000C001 + 7200095374796C654E616D65060A687363726F6C6C62617205416C69676E0706 + 426F74746F6D06437572736F72070763724172726F770B536D616C6C4368616E + 676505000000000000000000000B4F7269656E746174696F6E070A486F72697A + 6F6E74616C0A506F736974696F6E2E590500000000006666D405400A53697A65 + 2E5769647468050000000000CCCC8806400B53697A652E486569676874050000 + 00000000008003401453697A652E506C6174666F726D44656661756C74080000 + 0A545363726F6C6C42617200095374796C654E616D65060A767363726F6C6C62 + 617205416C69676E0705526967687406437572736F72070763724172726F770B + 536D616C6C4368616E676505000000000000000000000B4F7269656E74617469 + 6F6E0708566572746963616C0A506F736974696F6E2E580500000000009899F1 + 05400A53697A652E576964746805000000000000008003400B53697A652E4865 + 696768740500000000006666D405401453697A652E506C6174666F726D446566 + 61756C7408000007544C61796F75740005416C69676E0706436C69656E740A53 + 697A652E57696474680500000000009899F105400B53697A652E486569676874 + 0500000000006666D405401453697A652E506C6174666F726D44656661756C74 + 08000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F76 + 736D616C6C7363726F6C6C62617205416C69676E070552696768740643757273 + 6F72070763724172726F770B536D616C6C4368616E6765050000000000000000 + 00000B4F7269656E746174696F6E0708566572746963616C0C4D617267696E73 + 2E4C65667405000000000000008000400A53697A652E57696474680500000000 + 0000008002400B53697A652E4865696768740500000000000000800240145369 + 7A652E506C6174666F726D44656661756C74080756697369626C650800000F54 + 536D616C6C5363726F6C6C42617200095374796C654E616D65060F68736D616C + 6C7363726F6C6C62617205416C69676E0706426F74746F6D06437572736F7207 + 0763724172726F770B536D616C6C4368616E676505000000000000000000000B + 4F7269656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E + 546F7005000000000000008000400A53697A652E576964746805000000000000 + 009606400B53697A652E48656967687405000000000000008002401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C65080000000F5443 + 6F6C6F72416E696D6174696F6E00095374796C654E616D6506146D656D6F5374 + 726F6B65416E696D6174696F6E31084475726174696F6E050000000000CDCCCC + FB3F0C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A5374 + 61727456616C756507097846463135313531350953746F7056616C7565070978 + 46463430343034300754726967676572062049734D6F7573654F7665723D7472 + 75653B4973466F63757365643D66616C73650E54726967676572496E76657273 + 65062149734D6F7573654F7665723D66616C73653B4973466F63757365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 6506146D656D6F5374726F6B65416E696D6174696F6E32084475726174696F6E + 050000000000CDCCCCFB3F0C50726F70657274794E616D65060C5374726F6B65 + 2E436F6C6F720A537461727456616C756507097846463430343034300953746F + 7056616C756507097846463241383245320754726967676572060E4973466F63 + 757365643D747275650E54726967676572496E7665727365060F4973466F6375 + 7365643D66616C7365000000005450463007544C61796F757400095374796C65 + 4E616D65060D73697A65677269707374796C6505416C69676E070643656E7465 + 720A53697A652E57696474680500000000000000C803400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C74080756697369626C6508085461624F72646572021E000A545265637461 + 6E676C6500095374796C654E616D65060A52656374616E676C653105416C6967 + 6E070643656E7465720A46696C6C2E436F6C6F7207097846463630363036300A + 53697A652E57696474680500000000000000A000400B53697A652E4865696768 + 740500000000000000A000401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E676C + 6500095374796C654E616D65060A52656374616E676C653205416C69676E0706 + 43656E7465720A46696C6C2E436F6C6F7207097846463630363036300C4D6172 + 67696E732E4C6566740500000000000000A002400A53697A652E576964746805 + 00000000000000A000400B53697A652E4865696768740500000000000000A000 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B - 696E6407044E6F6E65000000000F54436F6C6F72416E696D6174696F6E000953 - 74796C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108 - 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 - 32300953746F7056616C75650709784646343034303430075472696767657206 - 3049734D6F7573654F7665723D747275653B4973507265737365643D66616C73 - 653B4973466F63757365643D66616C73650E54726967676572496E7665727365 - 063149734D6F7573654F7665723D66616C73653B4973507265737365643D6661 - 6C73653B4973466F63757365643D66616C736500000F54436F6C6F72416E696D - 6174696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E69 - 6D6174696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F70 - 657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507 - 097846463430343034300953746F7056616C7565070978464631373537394307 - 54726967676572062F4973507265737365643D747275653B49734D6F7573654F - 7665723D747275653B4973466F63757365643D66616C736500000F54436F6C6F - 72416E696D6174696F6E00095374796C654E616D650615627574746F6E436F6C - 6F72416E696D6174696F6E33084475726174696F6E050000000000CDCCCCFB3F - 0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456 - 616C756507097846463241383245320953746F7056616C756507097846463137 - 353739430754726967676572062E4973507265737365643D747275653B49734D - 6F7573654F7665723D747275653B4973466F63757365643D747275650E547269 - 67676572496E7665727365062F4973507265737365643D66616C73653B49734D - 6F7573654F7665723D747275653B4973466F63757365643D7472756500000000 - 07544C61796F757400095374796C654E616D650607636F6E74656E7405416C69 - 676E0706436C69656E74064C6F636B6564090C4D617267696E732E4C65667405 - 000000000000008000400B4D617267696E732E546F7005000000000000008000 - 400D4D617267696E732E52696768740500000000000000D803400E4D61726769 - 6E732E426F74746F6D05000000000000008000400A53697A652E576964746805 - 000000000000008E05400B53697A652E4865696768740500000000000000A803 - 401453697A652E506C6174666F726D44656661756C7408000000545046300754 - 4C61796F757400095374796C654E616D65060D73706C69747465727374796C65 - 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 00A904400B53697A652E4865696768740500000000000080C105401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 - 6465720222000A5452656374616E676C6500095374796C654E616D65060A5265 - 6374616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F - 7207097846463330333033300748697454657374080553696465730B044C6566 - 74055269676874000A53697A652E57696474680500000000000000A904400B53 - 697A652E4865696768740500000000000080C105401453697A652E506C617466 - 6F726D44656661756C74080C5374726F6B652E436F6C6F720709784646313531 - 353135000007544C61796F757400095374796C654E616D650604677269700541 - 6C69676E0706436C69656E740A53697A652E57696474680500000000000000A9 - 04400B53697A652E4865696768740500000000000080C105401453697A652E50 - 6C6174666F726D44656661756C7408000754436972636C6500095374796C654E - 616D650607436972636C653105416C69676E070643656E7465720A46696C6C2E - 436F6C6F7207097846463430343034300A53697A652E57696474680500000000 - 000000E001400B53697A652E4865696768740500000000000000E00140145369 + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653305416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463630363036300C4D617267696E732E4C6566740500 + 000000000000A002400B4D617267696E732E546F700500000000000000A00240 + 0A53697A652E57696474680500000000000000A000400B53697A652E48656967 + 68740500000000000000A000401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E67 + 6C6500095374796C654E616D65060A52656374616E676C653405416C69676E07 + 0643656E7465720A46696C6C2E436F6C6F7207097846463630363036300B4D61 + 7267696E732E546F700500000000000000A002400A53697A652E576964746805 + 00000000000000A000400B53697A652E4865696768740500000000000000A000 + 401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B + 696E6407044E6F6E6500000A5452656374616E676C6500095374796C654E616D + 65060A52656374616E676C653505416C69676E070643656E7465720A46696C6C + 2E436F6C6F7207097846463630363036300B4D617267696E732E546F70050000 + 0000000000A002400D4D617267696E732E52696768740500000000000000A002 + 400A53697A652E57696474680500000000000000A000400B53697A652E486569 + 6768740500000000000000A000401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6500000A5452656374616E + 676C6500095374796C654E616D65060A52656374616E676C653605416C69676E + 070643656E7465720A46696C6C2E436F6C6F7207097846463630363036300C4D + 617267696E732E4C6566740500000000000000A002400E4D617267696E732E42 + 6F74746F6D0500000000000000A002400A53697A652E57696474680500000000 + 000000A000400B53697A652E4865696768740500000000000000A00040145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000000545046300A5452656374616E676C6500095374796C654E61 + 6D65060E7374617475736261727374796C6505416C69676E070643656E746572 + 0C436C69704368696C6472656E090A46696C6C2E436F6C6F7207097846463235 + 323532350553696465730B03546F70000A53697A652E57696474680500000000 + 000000F004400B53697A652E4865696768740500000000000000C80440145369 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 - 070978464631353135313500000754436972636C6500095374796C654E616D65 - 0607436972636C653205416C69676E070643656E7465720A46696C6C2E436F6C - 6F7207097846463430343034300B4D617267696E732E546F7005000000000000 - 00A003400A53697A652E57696474680500000000000000E001400B53697A652E - 4865696768740500000000000000E001401453697A652E506C6174666F726D44 - 656661756C74080C5374726F6B652E436F6C6F72070978464631353135313500 - 000754436972636C6500095374796C654E616D650607436972636C653305416C - 69676E070643656E7465720A46696C6C2E436F6C6F7207097846463430343034 - 300E4D617267696E732E426F74746F6D0500000000000000A003400A53697A65 - 2E57696474680500000000000000E001400B53697A652E486569676874050000 - 0000000000E001401453697A652E506C6174666F726D44656661756C74080C53 - 74726F6B652E436F6C6F72070978464631353135313500000000545046300754 - 4C61796F757400095374796C654E616D650610726164696F627574746F6E7374 + 07097846463135313531350756697369626C65080007544C61796F7574000953 + 74796C654E616D6506074C61796F75743105416C69676E070552696768740A50 + 6F736974696F6E2E5805000000000000008C04400A53697A652E576964746805 + 00000000000000C803400B53697A652E4865696768740500000000000000C804 + 401453697A652E506C6174666F726D44656661756C740800095453697A654772 + 697000095374796C654E616D65060973697A65677267697005416C69676E0706 + 426F74746F6D0A506F736974696F6E2E590500000000000000C803400A53697A + 652E57696474680500000000000000C803400B53697A652E4865696768740500 + 000000000000C803401453697A652E506C6174666F726D44656661756C740800 + 000000545046300A5452656374616E676C6500095374796C654E616D65060C74 + 6F6F6C6261727374796C6505416C69676E070643656E7465720A46696C6C2E43 + 6F6C6F7207097846463235323532350748697454657374080553696465730B06 + 426F74746F6D000A53697A652E57696474680500000000000000C804400B5369 + 7A652E4865696768740500000000000000C804401453697A652E506C6174666F + 726D44656661756C74080C5374726F6B652E436F6C6F72070978464631353135 + 31350756697369626C650800005450463007544C61796F757400095374796C65 + 4E616D65061570726F67726573736261726572726F727374796C6505416C6967 + 6E070643656E7465720A53697A652E576964746805000000000033338505400B + 53697A652E4865696768740500000000009999E104401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F72646572021F + 000A5452656374616E676C6500095374796C654E616D65060668747261636B05 + 416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978464632 + 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 + 6805000000000033338505400B53697A652E4865696768740500000000009999 + E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135075852616469757305000000000000 + 00C0004007595261646975730500000000000000C00040000A5452656374616E + 676C6500095374796C654E616D65060A68696E64696361746F7205416C69676E + 07044C6566740A46696C6C2E436F6C6F720709784646453232413241064C6F63 + 6B6564090748697454657374080C4D617267696E732E4C656674050000000000 + 000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D6172 + 67696E732E5269676874050000000000000080FF3F0E4D617267696E732E426F + 74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000000000 + 000080FF3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000009999D904401453697A652E506C6174666F726D44656661756C74080B53 + 74726F6B652E4B696E6407044E6F6E6507585261646975730500000000000000 + C0004007595261646975730500000000000000C000400000000A545265637461 + 6E676C6500095374796C654E616D65060676747261636B05416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F + 636B6564090748697454657374080A53697A652E576964746805000000000033 + 338505400B53697A652E4865696768740500000000009999E104401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313507585261646975730500000000000000C0004007595261 + 646975730500000000000000C00040000A5452656374616E676C650009537479 + 6C654E616D65060A76696E64696361746F7205416C69676E0706426F74746F6D + 0A46696C6C2E436F6C6F720709784646453232413241064C6F636B6564090748 + 697454657374080C4D617267696E732E4C656674050000000000000080FF3F0B + 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 + 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 + 00000000000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A + 506F736974696F6E2E5905000000000099998904400A53697A652E5769647468 + 05000000000033338105400B53697A652E4865696768740500000000000000A8 + 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 4B696E6407044E6F6E6507585261646975730500000000000000C00040075952 + 61646975730500000000000000C00040000000005450463007544C61796F7574 + 00095374796C654E616D65060E6C696E6B6C6162656C7374796C6505416C6967 + 6E070643656E7465720A53697A652E5769647468050000000000CCCC8006400B + 53697A652E4865696768740500000000009A998104401453697A652E506C6174 + 666F726D44656661756C74080756697369626C6508085461624F726465720220 + 0005545465787400095374796C654E616D6506047465787405416C69676E0708 + 436F6E74656E74730748697454657374080A53697A652E576964746805000000 + 0000CCCC8006400B53697A652E4865696768740500000000009A998104401453 + 697A652E506C6174666F726D44656661756C740804546578740604546578741A + 5465787453657474696E67732E466F6E742E5374796C654578740A0D00000004 + 040000000000000004000000165465787453657474696E67732E466F6E74436F + 6C6F72070D636C61446F64676572626C7565000F54436F6C6F72416E696D6174 + 696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F6E3153 + 74796C65084475726174696F6E050000000000CDCCCCFB3F07496E7665727365 + 090C50726F70657274794E616D6506165465787453657474696E67732E466F6E + 74436F6C6F720A537461727456616C7565070D636C61446F64676572626C7565 + 0953746F7056616C7565070E636C6144656570736B79626C7565075472696767 + 6572063049734D6F7573654F7665723D747275653B4973507265737365643D66 + 616C73653B4973466F63757365643D66616C73650E54726967676572496E7665 + 727365063149734D6F7573654F7665723D66616C73653B497350726573736564 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 + 696F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C5072 + 6F70657274794E616D6506165465787453657474696E67732E466F6E74436F6C + 6F720A537461727456616C7565070E636C6144656570736B79626C7565095374 + 6F7056616C756507097846463137353739430754726967676572062F49735072 + 65737365643D747275653B49734D6F7573654F7665723D747275653B4973466F + 63757365643D66616C7365000000005450463007544C61796F75740009537479 + 6C654E616D650613736D616C6C7363726F6C6C6261727374796C6505416C6967 + 6E070643656E7465720756697369626C6508085461624F726465720221000654 + 547261636B00095374796C654E616D65060668747261636B05416C69676E0706 + 436C69656E74064C6F636B6564090B4F7269656E746174696F6E070A486F7269 + 7A6F6E74616C0A53697A652E57696474680500000000000000C804400B53697A + 652E4865696768740500000000000000C804401453697A652E506C6174666F72 + 6D44656661756C74080B5374796C654C6F6F6B757006147363726F6C6C626172 + 68747261636B7374796C6500000654547261636B00095374796C654E616D6506 + 0676747261636B05416C69676E0706436C69656E74064C6F636B6564090B4F72 + 69656E746174696F6E070A486F72697A6F6E74616C0A53697A652E5769647468 + 0500000000000000C804400B53697A652E4865696768740500000000000000C8 + 04401453697A652E506C6174666F726D44656661756C74080B5374796C654C6F + 6F6B757006147363726F6C6C62617276747261636B7374796C65000000545046 + 3007544C61796F757400095374796C654E616D65060D636F6D626F626F787374 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 - 00000000F205400B53697A652E4865696768740500000000000000A803401453 + 00000000C805400B53697A652E4865696768740500000000000000C803401453 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 - 624F7264657202230007544C61796F75740005416C69676E07044C6566740A53 - 697A652E57696474680500000000000000A803400B53697A652E486569676874 - 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 - 08000854456C6C6970736500095374796C654E616D65060A6261636B67726F75 - 6E6405416C69676E070643656E7465720A46696C6C2E436F6C6F720709784646 - 323032303230064C6F636B6564090748697454657374080A53697A652E576964 - 74680500000000000000F002400B53697A652E48656967687405000000000000 - 00F002401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F720709784646313531353135000854456C6C6970736500095374 - 796C654E616D650609636865636B6D61726B05416C69676E0706436C69656E74 - 0A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564090748 - 69745465737408074F70616369747905000000000000000000000C4D61726769 - 6E732E4C65667405000000000000008000400B4D617267696E732E546F700500 - 0000000000008000400D4D617267696E732E5269676874050000000000000080 - 00400E4D617267696E732E426F74746F6D05000000000000008000400A53697A - 652E57696474680500000000000000B002400B53697A652E4865696768740500 - 000000000000B002401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 - 6F6E00095374796C654E616D65061A6F706163697479436865636B6D61726B41 + 624F726465720222000C5442727573684F626A65637400095374796C654E616D + 65060A666F726567726F756E6400000B54466F6E744F626A6563740009537479 + 6C654E616D650604666F6E7409466F6E742E53697A650500000000000000D002 + 40000007544C61796F757400095374796C654E616D65060A6261636B67726F75 + 6E6405416C69676E0708436F6E74656E74730A53697A652E5769647468050000 + 0000000000C805400B53697A652E4865696768740500000000000000C8034014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 6500095374796C654E616D65060A52656374616E676C653105416C69676E0706 + 436C69656E740A46696C6C2E436F6C6F72070978464632303230323007486974 + 54657374080A53697A652E57696474680500000000000000C805400B53697A65 + 2E4865696768740500000000000000C803401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469 + 75730500000000000000C0004007595261646975730500000000000000C00040 + 0007544C61796F757400095374796C654E616D650611427574746F6E5374796C + 654F626A65637405416C69676E070846697452696768740B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF + 3F0A506F736974696F6E2E580500000000005ED99705400A506F736974696F6E + 2E59050000000000000080FF3F0A53697A652E5769647468050000000000889A + B803400B53697A652E4865696768740500000000000000B803401453697A652E + 506C6174666F726D44656661756C74080007544C61796F757400095374796C65 + 4E616D6506074C61796F75743105416C69676E070643656E7465720C4D617267 + 696E732E4C656674050000000000000080FF3F0A53697A652E57696474680500 + 000000000000A002400B53697A652E4865696768740500000000000000C00140 + 1453697A652E506C6174666F726D44656661756C740800055450617468000953 + 74796C654E616D650605506174683105416C69676E0706436C69656E74094461 + 74612E506174680A3400000004000000000000000000C8420000C84201000000 + 000096430000C842010000000000484300009643030000000000C8420000C842 + 0A46696C6C2E436F6C6F720708636C6157686974650748697454657374080A53 + 697A652E57696474680500000000000000A002400B53697A652E486569676874 + 0500000000000000C001401453697A652E506C6174666F726D44656661756C74 + 080B5374726F6B652E4B696E6407044E6F6E65000000000F54436F6C6F72416E + 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 6E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C5072 - 6F70657274794E616D6506074F7061636974790A537461727456616C75650500 - 0000000000000000000953746F7056616C7565050000000000000080FF3F0754 - 726967676572060E4973436865636B65643D747275650E54726967676572496E - 7665727365060F4973436865636B65643D66616C73650000000F54436F6C6F72 - 416E696D6174696F6E00095374796C654E616D65061A726164696F627574746F - 6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD - CCCCFB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C - 2E436F6C6F720A537461727456616C756507097846463230323032300953746F - 7056616C756507097846463430343034300754726967676572061049734D6F75 - 73654F7665723D747275650E54726967676572496E7665727365061149734D6F - 7573654F7665723D66616C736500000F54436F6C6F72416E696D6174696F6E00 - 095374796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65 - 084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D - 65060C5374726F6B652E436F6C6F720A537461727456616C7565070978464631 - 35313531350953746F7056616C75650709784646324138324532075472696767 - 6572060E4973436865636B65643D747275650E54726967676572496E76657273 - 65060F4973436865636B65643D66616C73650000000005545465787400095374 - 796C654E616D6506047465787405416C69676E0706436C69656E74064C6F636B - 6564090748697454657374080A53697A652E57696474680500000000000000C8 - 05400B53697A652E4865696768740500000000000000A803401453697A652E50 - 6C6174666F726D44656661756C74080454657874060454657874165465787453 - 657474696E67732E466F6E74436F6C6F720708636C6157686974650000005450 - 463007544C61796F757400095374796C654E616D650618756C63656E74657272 - 6164696F627574746F6E7374796C6505416C69676E070643656E7465720A5369 - 7A652E57696474680500000000005655FB05400B53697A652E48656967687405 - 00000000000000A004401453697A652E506C6174666F726D44656661756C7408 - 0756697369626C6508085461624F7264657202280007544C61796F7574000541 - 6C69676E0706426F74746F6D0A506F736974696F6E2E59050000000000000088 - 04400A53697A652E57696474680500000000005655FB05400B53697A652E4865 - 696768740500000000000000C001401453697A652E506C6174666F726D446566 - 61756C7408000A5452656374616E676C6500095374796C654E616D65060A6261 - 636B67726F756E6405416C69676E0708436F6E74656E747307436F726E657273 - 0B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72 - 0709784646323032303230064C6F636B6564090748697454657374080A53697A - 652E57696474680500000000005655FB05400B53697A652E4865696768740500 - 000000000000C001401453697A652E506C6174666F726D44656661756C74080C - 5374726F6B652E436F6C6F720709784646313531353135000F54436F6C6F7241 - 6E696D6174696F6E00095374796C654E616D6506216261636B67726F756E6455 - 6C427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 - 0000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 - 32300953746F7056616C75650709784646343034303430075472696767657206 - 1049734D6F7573654F7665723D747275650E54726967676572496E7665727365 - 061149734D6F7573654F7665723D66616C736500000A5452656374616E676C65 - 00095374796C654E616D650609636865636B6D61726B05416C69676E0708436F - 6E74656E747307436F726E6572730B07546F704C6566740A426F74746F6D4C65 - 6674000A46696C6C2E436F6C6F720709784646324138324532064C6F636B6564 - 09074869745465737408074F70616369747905000000000000000000000C4D61 - 7267696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F - 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 - 000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A - 53697A652E57696474680500000000005655F705400B53697A652E4865696768 - 7405000000000000008001401453697A652E506C6174666F726D44656661756C - 74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D - 6174696F6E00095374796C654E616D65061A636865636B6D61726B4F70616369 - 7479416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F - 0C50726F70657274794E616D6506074F7061636974790A537461727456616C75 - 6505000000000000000000000953746F7056616C7565050000000000000080FF - 3F0754726967676572060E4973436865636B65643D747275650E547269676765 - 72496E7665727365060F4973436865636B65643D66616C736500000000000554 - 5465787400095374796C654E616D6506047465787405416C69676E0706436C69 - 656E74064C6F636B6564090748697454657374080A53697A652E576964746805 - 00000000005655FB05400B53697A652E48656967687405000000000000008804 - 401453697A652E506C6174666F726D44656661756C7408045465787406045465 - 7874165465787453657474696E67732E466F6E74436F6C6F720708636C615768 - 6974650000005450463007544C61796F757400095374796C654E616D65061675 - 6C6C656674726164696F627574746F6E7374796C6505416C69676E070643656E - 7465720A53697A652E57696474680500000000005655FB05400B53697A652E48 - 65696768740500000000000000A004401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F72646572022A0007544C6179 - 6F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E59050000 - 00000000008804400A53697A652E57696474680500000000005655FB05400B53 - 697A652E4865696768740500000000000000C001401453697A652E506C617466 - 6F726D44656661756C7408000A5452656374616E676C6500095374796C654E61 - 6D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730743 - 6F726E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C - 2E436F6C6F720709784646323032303230064C6F636B65640907486974546573 - 74080A53697A652E57696474680500000000005655FB05400B53697A652E4865 - 696768740500000000000000C001401453697A652E506C6174666F726D446566 - 61756C74080C5374726F6B652E436F6C6F720709784646313531353135075852 - 61646975730500000000000000C0004007595261646975730500000000000000 - C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 - 216261636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F - 6E31084475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C - 50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172745661 - 6C756507097846463230323032300953746F7056616C75650709784646343034 - 3034300754726967676572061049734D6F7573654F7665723D747275650E5472 - 6967676572496E7665727365061149734D6F7573654F7665723D66616C736500 - 000A5452656374616E676C6500095374796C654E616D650609636865636B6D61 - 726B05416C69676E0708436F6E74656E747307436F726E6572730B07546F704C - 6566740A426F74746F6D4C656674000A46696C6C2E436F6C6F72070978464632 - 4138324532064C6F636B656409074869745465737408074F7061636974790500 - 0000000000000000000C4D617267696E732E4C656674050000000000000080FF - 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 - 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D - 050000000000000080FF3F0A53697A652E57696474680500000000005655F705 - 400B53697A652E48656967687405000000000000008001401453697A652E506C - 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 - 0758526164697573050000000000000080004007595261646975730500000000 - 000000800040000F54466C6F6174416E696D6174696F6E00095374796C654E61 - 6D65061A636865636B6D61726B4F706163697479416E696D6174696F6E310844 - 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 - 074F7061636974790A537461727456616C756505000000000000000000000953 - 746F7056616C7565050000000000000080FF3F0754726967676572060E497343 - 6865636B65643D747275650E54726967676572496E7665727365060F49734368 - 65636B65643D66616C7365000000000005545465787400095374796C654E616D - 6506047465787405416C69676E0706436C69656E74064C6F636B656409074869 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097846463230323032300953746F7056616C756507097846463430343034 + 300754726967676572063049734D6F7573654F7665723D747275653B49735072 + 65737365643D66616C73653B4973466F63757365643D66616C73650E54726967 + 676572496E7665727365063149734D6F7573654F7665723D66616C73653B4973 + 507265737365643D66616C73653B4973466F63757365643D66616C736500000F + 54436F6C6F72416E696D6174696F6E00095374796C654E616D65061562757474 + 6F6E436F6C6F72416E696D6174696F6E32084475726174696F6E050000000000 + CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53 + 7461727456616C756507097846463430343034300953746F7056616C75650709 + 7846463137353739430754726967676572062F4973507265737365643D747275 + 653B49734D6F7573654F7665723D747275653B4973466F63757365643D66616C + 736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506 + 15627574746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05 + 0000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F + 6C6F720A537461727456616C756507097846463241383245320953746F705661 + 6C756507097846463137353739430754726967676572062E4973507265737365 + 643D747275653B49734D6F7573654F7665723D747275653B4973466F63757365 + 643D747275650E54726967676572496E7665727365062F497350726573736564 + 3D66616C73653B49734D6F7573654F7665723D747275653B4973466F63757365 + 643D747275650000000007544C61796F757400095374796C654E616D65060763 + 6F6E74656E7405416C69676E0706436C69656E74064C6F636B6564090C4D6172 + 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 00D803400E4D617267696E732E426F74746F6D05000000000000008000400A53 + 697A652E576964746805000000000000008E05400B53697A652E486569676874 + 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 + 080000005450463007544C61796F757400095374796C654E616D65060D73706C + 69747465727374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000A904400B53697A652E486569676874050000000000 + 0080C105401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F726465720223000A5452656374616E676C650009537479 + 6C654E616D65060A52656374616E676C653105416C69676E0706436C69656E74 + 0A46696C6C2E436F6C6F72070978464633303330333007486974546573740805 + 53696465730B044C656674055269676874000A53697A652E5769647468050000 + 0000000000A904400B53697A652E4865696768740500000000000080C1054014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F720709784646313531353135000007544C61796F757400095374796C654E61 + 6D6506046772697005416C69676E0706436C69656E740A53697A652E57696474 + 680500000000000000A904400B53697A652E4865696768740500000000000080 + C105401453697A652E506C6174666F726D44656661756C740800075443697263 + 6C6500095374796C654E616D650607436972636C653105416C69676E07064365 + 6E7465720A46696C6C2E436F6C6F7207097846463430343034300A53697A652E + 57696474680500000000000000E001400B53697A652E48656967687405000000 + 00000000E001401453697A652E506C6174666F726D44656661756C74080C5374 + 726F6B652E436F6C6F72070978464631353135313500000754436972636C6500 + 095374796C654E616D650607436972636C653205416C69676E070643656E7465 + 720A46696C6C2E436F6C6F7207097846463430343034300B4D617267696E732E + 546F700500000000000000A003400A53697A652E576964746805000000000000 + 00E001400B53697A652E4865696768740500000000000000E001401453697A65 + 2E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709 + 78464631353135313500000754436972636C6500095374796C654E616D650607 + 436972636C653305416C69676E070643656E7465720A46696C6C2E436F6C6F72 + 07097846463430343034300E4D617267696E732E426F74746F6D050000000000 + 0000A003400A53697A652E57696474680500000000000000E001400B53697A65 + 2E4865696768740500000000000000E001401453697A652E506C6174666F726D + 44656661756C74080C5374726F6B652E436F6C6F720709784646313531353135 + 000000005450463007544C61796F757400095374796C654E616D650610726164 + 696F627574746F6E7374796C6505416C69676E070643656E7465720A53697A65 + 2E57696474680500000000000000F205400B53697A652E486569676874050000 + 0000000000A803401453697A652E506C6174666F726D44656661756C74080756 + 697369626C6508085461624F7264657202240007544C61796F75740005416C69 + 676E07044C6566740A53697A652E57696474680500000000000000A803400B53 + 697A652E4865696768740500000000000000A803401453697A652E506C617466 + 6F726D44656661756C7408000854456C6C6970736500095374796C654E616D65 + 060A6261636B67726F756E6405416C69676E070643656E7465720A46696C6C2E + 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 + 080A53697A652E57696474680500000000000000F002400B53697A652E486569 + 6768740500000000000000F002401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464631353135313500085445 + 6C6C6970736500095374796C654E616D650609636865636B6D61726B05416C69 + 676E0706436C69656E740A46696C6C2E436F6C6F720709784646324138324532 + 064C6F636B656409074869745465737408074F70616369747905000000000000 + 000000000C4D617267696E732E4C65667405000000000000008000400B4D6172 + 67696E732E546F7005000000000000008000400D4D617267696E732E52696768 + 7405000000000000008000400E4D617267696E732E426F74746F6D0500000000 + 0000008000400A53697A652E57696474680500000000000000B002400B53697A + 652E4865696768740500000000000000B002401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C + 6F6174416E696D6174696F6E00095374796C654E616D65061A6F706163697479 + 436865636B6D61726B416E696D6174696F6E31084475726174696F6E05000000 + 0000CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A5374 + 61727456616C756505000000000000000000000953746F7056616C7565050000 + 000000000080FF3F0754726967676572060E4973436865636B65643D74727565 + 0E54726967676572496E7665727365060F4973436865636B65643D66616C7365 + 0000000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65061A + 726164696F627574746F6E436F6C6F72416E696D6174696F6E31084475726174 + 696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065727479 + 4E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709784646 + 3230323032300953746F7056616C756507097846463430343034300754726967 + 676572061049734D6F7573654F7665723D747275650E54726967676572496E76 + 65727365061149734D6F7573654F7665723D66616C736500000F54436F6C6F72 + 416E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D61 + 74696F6E315374796C65084475726174696F6E050000000000CDCCCCFB3F0C50 + 726F70657274794E616D65060C5374726F6B652E436F6C6F720A537461727456 + 616C756507097846463135313531350953746F7056616C756507097846463241 + 383245320754726967676572060E4973436865636B65643D747275650E547269 + 67676572496E7665727365060F4973436865636B65643D66616C736500000000 + 05545465787400095374796C654E616D6506047465787405416C69676E070643 + 6C69656E74064C6F636B6564090748697454657374080A53697A652E57696474 + 680500000000000000C805400B53697A652E4865696768740500000000000000 + A803401453697A652E506C6174666F726D44656661756C740804546578740604 + 54657874165465787453657474696E67732E466F6E74436F6C6F720708636C61 + 57686974650000005450463007544C61796F757400095374796C654E616D6506 + 18756C63656E746572726164696F627574746F6E7374796C6505416C69676E07 + 0643656E7465720A53697A652E57696474680500000000005655FB05400B5369 + 7A652E4865696768740500000000000000A004401453697A652E506C6174666F + 726D44656661756C74080756697369626C6508085461624F7264657202290007 + 544C61796F75740005416C69676E0706426F74746F6D0A506F736974696F6E2E + 5905000000000000008804400A53697A652E57696474680500000000005655FB + 05400B53697A652E4865696768740500000000000000C001401453697A652E50 + 6C6174666F726D44656661756C7408000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E + 747307436F726E6572730B07546F704C6566740A426F74746F6D4C656674000A + 46696C6C2E436F6C6F720709784646323032303230064C6F636B656409074869 7454657374080A53697A652E57696474680500000000005655FB05400B53697A - 652E48656967687405000000000000008804401453697A652E506C6174666F72 - 6D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F72 - 0708636C6157686974650000005450463007544C61796F757400095374796C65 - 4E616D650617756C7269676874726164696F627574746F6E7374796C6505416C - 69676E070643656E7465720A53697A652E57696474680500000000005655FB05 - 400B53697A652E4865696768740500000000000000A004401453697A652E506C - 6174666F726D44656661756C74080756697369626C6508085461624F72646572 - 022D0007544C61796F75740005416C69676E0706426F74746F6D0A506F736974 - 696F6E2E5905000000000000008804400A53697A652E57696474680500000000 - 005655FB05400B53697A652E4865696768740500000000000000C00140145369 - 7A652E506C6174666F726D44656661756C7408000A5452656374616E676C6500 - 095374796C654E616D65060A6261636B67726F756E6405416C69676E0708436F - 6E74656E747307436F726E6572730B08546F7052696768740B426F74746F6D52 - 69676874000A46696C6C2E436F6C6F720709784646323032303230064C6F636B + 652E4865696768740500000000000000C001401453697A652E506C6174666F72 + 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 + 35000F54436F6C6F72416E696D6174696F6E00095374796C654E616D65062162 + 61636B67726F756E64556C427574746F6E436F6C6F72416E696D6174696F6E31 + 084475726174696F6E050000000000CDCCCCFB3F07496E7665727365090C5072 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097846463230323032300953746F7056616C756507097846463430343034 + 300754726967676572061049734D6F7573654F7665723D747275650E54726967 + 676572496E7665727365061149734D6F7573654F7665723D66616C736500000A + 5452656374616E676C6500095374796C654E616D650609636865636B6D61726B + 05416C69676E0708436F6E74656E747307436F726E6572730B07546F704C6566 + 740A426F74746F6D4C656674000A46696C6C2E436F6C6F720709784646324138 + 324532064C6F636B656409074869745465737408074F70616369747905000000 + 000000000000000C4D617267696E732E4C656674050000000000000080FF3F0B + 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 + 69676874050000000000000080FF3F0E4D617267696E732E426F74746F6D0500 + 00000000000080FF3F0A53697A652E57696474680500000000005655F705400B + 53697A652E48656967687405000000000000008001401453697A652E506C6174 + 666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F + 54466C6F6174416E696D6174696F6E00095374796C654E616D65061A63686563 + 6B6D61726B4F706163697479416E696D6174696F6E31084475726174696F6E05 + 0000000000CDCCCCFB3F0C50726F70657274794E616D6506074F706163697479 + 0A537461727456616C756505000000000000000000000953746F7056616C7565 + 050000000000000080FF3F0754726967676572060E4973436865636B65643D74 + 7275650E54726967676572496E7665727365060F4973436865636B65643D6661 + 6C7365000000000005545465787400095374796C654E616D6506047465787405 + 416C69676E0706436C69656E74064C6F636B6564090748697454657374080A53 + 697A652E57696474680500000000005655FB05400B53697A652E486569676874 + 05000000000000008804401453697A652E506C6174666F726D44656661756C74 + 080454657874060454657874165465787453657474696E67732E466F6E74436F + 6C6F720708636C6157686974650000005450463007544C61796F757400095374 + 796C654E616D650616756C6C656674726164696F627574746F6E7374796C6505 + 416C69676E070643656E7465720A53697A652E57696474680500000000005655 + FB05400B53697A652E4865696768740500000000000000A004401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 6572022A0007544C61796F75740005416C69676E0706426F74746F6D0A506F73 + 6974696F6E2E5905000000000000008804400A53697A652E5769647468050000 + 0000005655FB05400B53697A652E4865696768740500000000000000C0014014 + 53697A652E506C6174666F726D44656661756C7408000A5452656374616E676C + 6500095374796C654E616D65060A6261636B67726F756E6405416C69676E0708 + 436F6E74656E747307436F726E6572730B07546F704C6566740A426F74746F6D + 4C656674000A46696C6C2E436F6C6F720709784646323032303230064C6F636B 6564090748697454657374080A53697A652E57696474680500000000005655FB 05400B53697A652E4865696768740500000000000000C001401453697A652E50 6C6174666F726D44656661756C74080C5374726F6B652E436F6C6F7207097846 @@ -17370,846 +17519,990 @@ object MainForm: TMainForm 65723D747275650E54726967676572496E7665727365061149734D6F7573654F 7665723D66616C736500000A5452656374616E676C6500095374796C654E616D 650609636865636B6D61726B05416C69676E0708436F6E74656E747307436F72 - 6E6572730B08546F7052696768740B426F74746F6D5269676874000A46696C6C - 2E436F6C6F720709784646324138324532064C6F636B65640907486974546573 - 7408074F70616369747905000000000000000000000C4D617267696E732E4C65 - 6674050000000000000080FF3F0B4D617267696E732E546F7005000000000000 - 0080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D61 - 7267696E732E426F74746F6D050000000000000080FF3F0A53697A652E576964 - 74680500000000005655F705400B53697A652E48656967687405000000000000 - 008001401453697A652E506C6174666F726D44656661756C74080B5374726F6B - 652E4B696E6407044E6F6E650758526164697573050000000000000080004007 - 595261646975730500000000000000800040000F54466C6F6174416E696D6174 - 696F6E00095374796C654E616D65061A636865636B6D61726B4F706163697479 - 416E696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D6506074F7061636974790A537461727456616C756505 - 000000000000000000000953746F7056616C7565050000000000000080FF3F07 - 54726967676572060E4973436865636B65643D747275650E5472696767657249 - 6E7665727365060F4973436865636B65643D66616C7365000000000005545465 - 787400095374796C654E616D6506047465787405416C69676E0706436C69656E - 74064C6F636B6564090748697454657374080A53697A652E5769647468050000 - 0000005655FB05400B53697A652E486569676874050000000000000088044014 - 53697A652E506C6174666F726D44656661756C7408165465787453657474696E - 67732E466F6E74436F6C6F720708636C6157686974650000005450463007544C - 61796F757400095374796C654E616D650615616E69696E64696361746F72686F - 727A7374796C6505416C69676E070643656E7465720A53697A652E5769647468 - 0500000000000040C006400B53697A652E486569676874050000000000000080 - 00401453697A652E506C6174666F726D44656661756C74080756697369626C65 - 08085461624F72646572023A000A5452656374616E676C6500095374796C654E - 616D65060A52656374616E676C653105416C69676E0706436C69656E740C436C - 69704368696C6472656E090A46696C6C2E436F6C6F7207097846463430343034 - 300A53697A652E57696474680500000000000040C006400B53697A652E486569 - 67687405000000000000008000401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 - 00000000000080FF3F0759526164697573050000000000000080FF3F0005544C - 696E6500095374796C654E616D6506054C696E6531084C696E65547970650706 - 426F74746F6D0A53697A652E57696474680500000000000000A00B400B53697A - 652E48656967687405000000000000008000401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463241383245 - 32105374726F6B652E546869636B6E65737305000000000000008002400A5374 - 726F6B652E4361700705526F756E640B5374726F6B652E446173680704446173 - 680B5374726F6B652E4A6F696E0705526F756E64000F54466C6F6174416E696D - 6174696F6E00095374796C654E616D650603616E6907456E61626C6564090844 - 75726174696F6E0500000000000000800340044C6F6F70090C50726F70657274 - 794E616D65060A506F736974696F6E2E580A537461727456616C756505000000 - 00000000C808C00953746F7056616C7565050000000000000000000007547269 - 67676572060E497356697369626C653D7472756500000000005450463007544C - 61796F757400095374796C654E616D65060E6C6F67627574746F6E7374796C65 - 05416C69676E070643656E7465720A53697A652E576964746805000000000000 - 00C005400B53697A652E4865696768740500000000000000C005401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 - 6465720201000A5452656374616E676C6500095374796C654E616D65060A6261 - 636B67726F756E6405416C69676E0706436C69656E740C436C69704368696C64 - 72656E090A436C6970506172656E740907436F726E6572730B08546F70526967 - 68740B426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632 - 30323032300748697454657374080A53697A652E576964746805000000000000 - 00C005400B53697A652E4865696768740500000000000000C005401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E6507585261646975730500000000000000C0004007595261646975730500 - 000000000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C - 654E616D650615627574746F6E436F6C6F72416E696D6174696F6E3108447572 - 6174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46 - 696C6C2E436F6C6F720A537461727456616C7565070978464632303230323009 - 53746F7056616C75650709784646343034303430075472696767657206304973 - 4D6F7573654F7665723D747275653B4973507265737365643D66616C73653B49 - 73466F63757365643D66616C73650E54726967676572496E7665727365063149 - 734D6F7573654F7665723D66616C73653B4973507265737365643D66616C7365 - 3B4973466F63757365643D66616C736500000F54436F6C6F72416E696D617469 - 6F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D6174 - 696F6E32084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 - 794E616D65060A46696C6C2E436F6C6F720A537461727456616C756507097846 - 463430343034300953746F7056616C7565070978464631373537394307547269 - 67676572062F4973507265737365643D747275653B49734D6F7573654F766572 - 3D747275653B4973466F63757365643D66616C736500000F54436F6C6F72416E - 696D6174696F6E00095374796C654E616D650615627574746F6E436F6C6F7241 - 6E696D6174696F6E33084475726174696F6E050000000000CDCCCCFB3F0C5072 - 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 - 6507097846463241383245320953746F7056616C756507097846463137353739 - 430754726967676572062E4973507265737365643D747275653B49734D6F7573 - 654F7665723D747275653B4973466F63757365643D747275650E547269676765 - 72496E7665727365062F4973507265737365643D66616C73653B49734D6F7573 - 654F7665723D747275653B4973466F63757365643D7472756500000554506174 - 6800095374796C654E616D650605506174683105416C69676E0706436C69656E - 7409446174612E506174680A5C02000032000000000000000000A841CDCCCC40 - 010000000000A8410000C041010000000000C03F0000C041010000000000C03F - 00000000010000009A99694100000000010000000000A841CDCCCC4003000000 - 0000A841CDCCCC400000000000009C410000F04001000000000058410000F040 - 01000000000058410000C03F01000000000040400000C03F0100000000004040 - 0000B4410100000000009C410000B4410100000000009C410000F04003000000 - 00009C410000F04000000000000040410000F04001000000000090400000F040 - 01000000000090400000C04001000000000040410000C0400100000000004041 - 0000F04003000000000040410000F04000000000000090400000104101000000 - 0000904100001041010000000000904100002841010000000000904000002841 - 0100000000009040000010410300000000009040000010410000000000009040 - 0000404101000000000090410000404101000000000090410000584101000000 - 0000904000005841010000000000904000004041030000000000904000004041 - 0000000000009040000070410100000000009041000070410100000000009041 - 0000844101000000000090400000844101000000000090400000704103000000 - 0000904000007041000000000000904000009041010000000000904100009041 - 010000000000904100009C41010000000000904000009C410100000000009040 - 0000904103000000000090400000904100000000000070410000C04001000000 - 333393410000C04001000000000070416666264001000000000070410000C040 - 03000000000070410000C0400A46696C6C2E436F6C6F720708636C6157686974 - 650748697454657374080C4D617267696E732E4C6566740500000000000000A0 - 02400B4D617267696E732E546F700500000000000000A002400D4D617267696E - 732E52696768740500000000000000A002400E4D617267696E732E426F74746F - 6D0500000000000000A002400A53697A652E5769647468050000000000000098 - 05400B53697A652E48656967687405000000000000009805401453697A652E50 - 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E - 6508577261704D6F64650703466974000000005450463007544C61796F757400 - 095374796C654E616D650613657870616E646572627574746F6E7374796C6505 - 416C69676E070643656E7465720B4D617267696E732E546F7005000000000000 - 0080FF3F0A53697A652E57696474680500000000000000B003400B53697A652E - 4865696768740500000000000000B003401453697A652E506C6174666F726D44 - 656661756C74080756697369626C6508085461624F7264657202340005545061 - 746800095374796C654E616D650605506174683105416C69676E070643656E74 - 657209446174612E506174680A3400000004000000000000000000C8420000C8 - 4201000000000096430000C842010000000000484300009643030000000000C8 - 420000C8420A46696C6C2E436F6C6F720708636C615768697465074869745465 - 7374080D526F746174696F6E416E676C650500000000000000B405400A53697A - 652E57696474680500000000000000A002400B53697A652E4865696768740500 - 000000000000C001401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 - 6F6E00095374796C654E616D650614466C6F6174416E696D6174696F6E315374 - 796C65084475726174696F6E050000000000CDCCCCFB3F0D496E746572706F6C - 6174696F6E070843697263756C61720C50726F70657274794E616D65060D526F - 746174696F6E416E676C650A537461727456616C75650500000000000000B405 - 400953746F7056616C756505000000000000000000000754726967676572060F - 4973457870616E6465643D747275650E54726967676572496E76657273650610 - 4973457870616E6465643D66616C7365000000005450463007544C61796F7574 - 00095374796C654E616D650615657870616E646572636865636B626F78737479 - 6C6505416C69676E070643656E7465720A53697A652E57696474680500000000 - 0000008406400B53697A652E4865696768740500000000000000840440145369 - 7A652E506C6174666F726D44656661756C74080756697369626C650808546162 - 4F7264657202360007544C61796F75740005416C69676E07044C6566740A5369 - 7A652E57696474680500000000000000C003400B53697A652E48656967687405 - 000000000000008404401453697A652E506C6174666F726D44656661756C7408 - 000554506174680005416C69676E0706436C69656E7409446174612E50617468 - 0AD80100002700000000000000FEC8BA4402E79244020000002592AD4402E792 - 44020000006D5BA544FEB09E44020000006D5BA544FEB09E440200000093A4A4 - 446A0C9F44020000004A80AC44FC79AA4402000000046EBA44FC79AA44020000 - 004A00C844FC79AA44020000000080CF44FEB09E44020000000080CF44FEB09E - 44020000000080CF44FEB09E44020000004C5BC84402E7924402000000FEC8BA - 4402E7924400000000FE88BA44FE30974402000000B876BF44FE309744020000 - 000277C344EEA09A44020000000277C34404DE9E44020000000277C344121BA3 - 4402000000B876BF44008CA64402000000FE88BA44008CA644020000004C9BB5 - 44008CA64402000000009CB144121BA34402000000009CB14404DE9E44020000 - 00009CB144EEA09A44020000004C9BB544FE30974402000000FE88BA44FE3097 - 44000000000080BA44045E9B4402000000146EB844045E9B440200000000C0B6 - 4454F79C440200000000C0B64400F09E440200000000C0B644ACE8A044020000 - 00146EB844FC81A244020000000080BA44FC81A24402000000EC91BC44FC81A2 - 44020000000040BE44ACE8A044020000000040BE4400F09E44020000000040BE - 4454F79C4402000000EC91BC44045E9B44020000000080BA44045E9B440A4669 - 6C6C2E436F6C6F7207097836303030303030300748697454657374080C4D6172 - 67696E732E4C65667405000000000000008000400B4D617267696E732E546F70 - 05000000000000008000400D4D617267696E732E526967687405000000000000 - 008000400E4D617267696E732E426F74746F6D05000000000000008000400A53 - 697A652E57696474680500000000000000A003400B53697A652E486569676874 - 0500000000000000E803401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E6508577261704D6F646507034669 - 74000F54436F6C6F72416E696D6174696F6E00084475726174696F6E05000000 - 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 - 0A537461727456616C756507097836303030303030300953746F7056616C7565 - 0708636C61426C61636B0754726967676572060E4973436865636B65643D7472 - 756500000F54436F6C6F72416E696D6174696F6E00084475726174696F6E0500 - 00000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C - 6F720A537461727456616C75650708636C61426C61636B0953746F7056616C75 - 6507097836303030303030300754726967676572060F4973436865636B65643D - 66616C73650000000005545465787400095374796C654E616D65060474657874 - 05416C69676E0706436C69656E74064C6F636B6564090748697454657374080C - 4D617267696E732E4C65667405000000000000008002400B4D617267696E732E - 546F7005000000000000008000400D4D617267696E732E526967687405000000 - 0000000080FF3F0A53697A652E57696474680500000000000000C605400B5369 - 7A652E4865696768740500000000000000F803401453697A652E506C6174666F - 726D44656661756C7408165465787453657474696E67732E466F6E74436F6C6F - 720709784646454545454545165465787453657474696E67732E486F727A416C - 69676E07074C656164696E670000005450463007544C61796F75740009537479 - 6C654E616D65060D657870616E6465727374796C6505416C69676E070643656E - 7465720A53697A652E576964746805000000000000C08607400B53697A652E48 - 65696768740500000000000000CE05401453697A652E506C6174666F726D4465 - 6661756C74080756697369626C6508085461624F726465720237000A54526563 - 74616E676C6500095374796C654E616D65060B626772656374616E676C650541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463244 - 32443244064C6F636B6564090748697454657374080A53697A652E5769647468 - 05000000000000C08607400B53697A652E4865696768740500000000000000CE - 05401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313507585261646975730500000000000000 - C0004007595261646975730500000000000000C000400007544C61796F757400 - 095374796C654E616D6506074C61796F75743305416C69676E0703546F700A53 - 697A652E576964746805000000000000C08607400B53697A652E486569676874 - 0500000000000000C803401453697A652E506C6174666F726D44656661756C74 - 080007544C61796F757400095374796C654E616D6506074C61796F7574340541 - 6C69676E0708436F6E74656E74730A53697A652E576964746805000000000000 - C08607400B53697A652E4865696768740500000000000000C803401453697A65 - 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 - 74796C654E616D65060A52656374616E676C653205416C69676E0708436F6E74 - 656E747307436F726E6572730B07546F704C65667408546F705269676874000A - 46696C6C2E436F6C6F720709784646323532353235064C6F636B656409074869 - 7454657374080A53697A652E576964746805000000000000C08607400B53697A - 652E4865696768740500000000000000C803401453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 3507585261646975730500000000000000C00040075952616469757305000000 - 00000000C0004000000A5452656374616E676C6500095374796C654E616D6506 - 0A52656374616E676C653105416C69676E0708436F6E74656E747307436F726E - 6572730B07546F704C65667408546F705269676874000A46696C6C2E436F6C6F - 720709784646313531353135064C6F636B6564090748697454657374080A5369 - 7A652E576964746805000000000000C08607400B53697A652E48656967687405 - 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 - 0B5374726F6B652E4B696E6407044E6F6E650758526164697573050000000000 - 0000C0004007595261646975730500000000000000C00040000F54466C6F6174 - 416E696D6174696F6E00095374796C654E616D650614466C6F6174416E696D61 - 74696F6E315374796C65084475726174696F6E0500000000009A9999FD3F0D49 - 6E746572706F6C6174696F6E070843697263756C61720C50726F70657274794E - 616D6506075363616C652E580A537461727456616C7565050000000000000080 - FF3F0953746F7056616C75650500000000000000000000075472696767657206 - 0F4973457870616E6465643D747275650E54726967676572496E766572736506 - 104973457870616E6465643D66616C73650000000007544C61796F7574000953 - 74796C654E616D6506074C61796F75743305416C69676E0708436F6E74656E74 - 730A53697A652E576964746805000000000000C08607400B53697A652E486569 - 6768740500000000000000C803401453697A652E506C6174666F726D44656661 - 756C74080005545465787400095374796C654E616D6506047465787405416C69 - 676E07044C656674084175746F53697A65090A436C6970506172656E7409064C - 6F636B6564090748697454657374080C4D617267696E732E4C65667405000000 - 00000000A002400A506F736974696F6E2E580500000000000000A002400A5369 - 7A652E57696474680500000000000018D103400B53697A652E48656967687405 - 00000000000060FF02401453697A652E506C6174666F726D44656661756C7408 - 0454657874060454657874165465787453657474696E67732E466F6E74436F6C - 6F720708636C615768697465165465787453657474696E67732E486F727A416C - 69676E07074C656164696E670000000F54457870616E646572427574746F6E00 - 095374796C654E616D650606627574746F6E05416C69676E0705526967687406 - 4C6F636B6564090A506F736974696F6E2E580500000000000080F906400A5369 - 7A652E57696474680500000000000000A003400B53697A652E48656967687405 - 00000000000000C803401453697A652E506C6174666F726D44656661756C7408 - 00000000005450463007544C61796F757400095374796C654E616D65060A7061 - 6E656C7374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000C006400B53697A652E4865696768740500000000000000 - A406401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F726465720238000A5452656374616E676C6500095374796C65 - 4E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E7473 - 0A46696C6C2E436F6C6F7207097846463230323032300A53697A652E57696474 - 680500000000000000C006400B53697A652E4865696768740500000000000000 - A406401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 - 2E4B696E6407044E6F6E6507585261646975730500000000000000C000400759 - 5261646975730500000000000000C000400000005450463007544C61796F7574 - 00095374796C654E616D65061970726F67726573736261726D696E696572726F - 727374796C6505416C69676E070643656E7465720A53697A652E576964746805 - 000000000033338505400B53697A652E4865696768740500000000009999E104 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 085461624F726465720239000A5452656374616E676C6500095374796C654E61 - 6D65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E - 436F6C6F720709784646343034303430064C6F636B6564090748697454657374 - 080A53697A652E576964746805000000000033338505400B53697A652E486569 - 6768740500000000009999E104401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 - 00000000000080004007595261646975730500000000000000800040000A5452 - 656374616E676C6500095374796C654E616D65060A68696E64696361746F7205 - 416C69676E07044C6566740A46696C6C2E436F6C6F7207097846464532324132 - 41064C6F636B6564090748697454657374080A53697A652E5769647468050000 - 0000000000C804400B53697A652E4865696768740500000000009999E1044014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E6507585261646975730500000000000000800040075952616469 - 757305000000000000008000400000000A5452656374616E676C650009537479 - 6C654E616D65060676747261636B05416C69676E0708436F6E74656E74730A46 - 696C6C2E436F6C6F720709784646343034303430064C6F636B65640907486974 - 54657374080A53697A652E576964746805000000000033338505400B53697A65 - 2E4865696768740500000000009999E104401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469 - 7573050000000000000080004007595261646975730500000000000000800040 - 000A5452656374616E676C6500095374796C654E616D65060A76696E64696361 - 746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846 - 46453232413241064C6F636B6564090748697454657374080A506F736974696F - 6E2E5905000000000099998D04400A53697A652E576964746805000000000033 - 338505400B53697A652E4865696768740500000000000000A803401453697A65 - 2E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E - 6F6E650758526164697573050000000000000080004007595261646975730500 - 000000000000800040000000005450463007544C61796F757400095374796C65 - 4E616D65061470726F67726573736261726D696E697374796C6505416C69676E - 070643656E7465720A53697A652E576964746805000000000033338505400B53 - 697A652E4865696768740500000000009999E104401453697A652E506C617466 - 6F726D44656661756C74080756697369626C6508085461624F72646572022F00 - 0A5452656374616E676C6500095374796C654E616D65060668747261636B0541 - 6C69676E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463430 - 34303430064C6F636B6564090748697454657374080A53697A652E5769647468 - 05000000000033338505400B53697A652E4865696768740500000000009999E1 - 04401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E + 6E6572730B07546F704C6566740A426F74746F6D4C656674000A46696C6C2E43 + 6F6C6F720709784646324138324532064C6F636B656409074869745465737408 + 074F70616369747905000000000000000000000C4D617267696E732E4C656674 + 050000000000000080FF3F0B4D617267696E732E546F70050000000000000080 + FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D617267 + 696E732E426F74746F6D050000000000000080FF3F0A53697A652E5769647468 + 0500000000005655F705400B53697A652E486569676874050000000000000080 + 01401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E 4B696E6407044E6F6E6507585261646975730500000000000000800040075952 - 61646975730500000000000000800040000A5452656374616E676C6500095374 - 796C654E616D65060A68696E64696361746F7205416C69676E07044C6566740A - 46696C6C2E436F6C6F720709784646324138324532064C6F636B656409074869 - 7454657374080A53697A652E57696474680500000000000000C804400B53697A - 652E4865696768740500000000009999E104401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 - 6975730500000000000000800040075952616469757305000000000000008000 - 400000000A5452656374616E676C6500095374796C654E616D65060676747261 - 636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F72070978 - 4646343034303430064C6F636B6564090748697454657374080A53697A652E57 - 6964746805000000000033338505400B53697A652E4865696768740500000000 - 009999E104401453697A652E506C6174666F726D44656661756C74080B537472 - 6F6B652E4B696E6407044E6F6E65075852616469757305000000000000008000 - 4007595261646975730500000000000000800040000A5452656374616E676C65 - 00095374796C654E616D65060A76696E64696361746F7205416C69676E070642 - 6F74746F6D0A46696C6C2E436F6C6F720709784646324138324532064C6F636B - 6564090748697454657374080A506F736974696F6E2E5905000000000099998D - 04400A53697A652E576964746805000000000033338505400B53697A652E4865 - 696768740500000000000000A803401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 - 0000000000000080004007595261646975730500000000000000800040000000 - 005450463007544C61796F757400095374796C654E616D65060E636F6D626F65 - 6469747374796C6505416C69676E070643656E7465720A53697A652E57696474 - 680500000000000000C805400B53697A652E4865696768740500000000000000 - C803401453697A652E506C6174666F726D44656661756C74080756697369626C - 6508085461624F726465720233000C5442727573684F626A6563740009537479 - 6C654E616D65060A666F726567726F756E6400000B54466F6E744F626A656374 - 00095374796C654E616D650604666F6E7409466F6E742E53697A650500000000 - 000000D00240000007544C61796F757400095374796C654E616D65060A626163 - 6B67726F756E6405416C69676E0708436F6E74656E74730A53697A652E576964 - 74680500000000000000C805400B53697A652E48656967687405000000000000 - 00C803401453697A652E506C6174666F726D44656661756C7408000A54526563 - 74616E676C6500095374796C654E616D65060A52656374616E676C653105416C - 69676E0706436C69656E740A46696C6C2E436F6C6F7207097846463230323032 - 300748697454657374080A53697A652E57696474680500000000000000C80540 - 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 - 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464632 - 303230323007585261646975730500000000000000C000400759526164697573 - 0500000000000000C00040000F54436F6C6F72416E696D6174696F6E00095374 - 796C654E616D650614436F6C6F72416E696D6174696F6E315374796C65084475 - 726174696F6E050000000000CDCCCCFB3F07496E7665727365090C50726F7065 - 7274794E616D65060C5374726F6B652E436F6C6F720A537461727456616C7565 - 07097846463230323032300953746F7056616C75650709784646343034303430 - 0754726967676572062049734D6F7573654F7665723D747275653B4973466F63 - 757365643D66616C73650E54726967676572496E7665727365062149734D6F75 - 73654F7665723D66616C73653B4973466F63757365643D66616C736500000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 - 416E696D6174696F6E325374796C65084475726174696F6E050000000000CDCC - CCFB3F07496E7665727365090C50726F70657274794E616D65060C5374726F6B - 652E436F6C6F720A537461727456616C75650709784646343034303430095374 - 6F7056616C756507097846463241383245320754726967676572061F49734D6F - 7573654F7665723D747275653B4973466F63757365643D747275650E54726967 - 676572496E7665727365062049734D6F7573654F7665723D747275653B497346 - 6F63757365643D66616C7365000007544C61796F757400095374796C654E616D - 6506056172726F7705416C69676E070846697452696768740B4D617267696E73 - 2E546F70050000000000000080FF3F0D4D617267696E732E5269676874050000 - 000000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080 - FF3F0A506F736974696F6E2E580500000000005ED99705400A506F736974696F - 6E2E59050000000000000080FF3F0A53697A652E576964746805000000000088 - 9AB803400B53697A652E4865696768740500000000000000B803401453697A65 - 2E506C6174666F726D44656661756C7408000A5452656374616E676C65000953 - 74796C654E616D65060A52656374616E676C653105416C69676E0708436F6E74 - 656E747307436F726E6572730B08546F7052696768740B426F74746F6D526967 - 6874000A46696C6C2E436F6C6F72070978464633303330333007486974546573 - 74080A53697A652E5769647468050000000000889AB803400B53697A652E4865 - 696768740500000000000000B803401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 - 00000000000000C0004007595261646975730500000000000000C00040000F54 - 436F6C6F72416E696D6174696F6E00095374796C654E616D650614436F6C6F72 - 416E696D6174696F6E315374796C65084475726174696F6E050000000000CDCC - CCFB3F07496E7665727365090C50726F70657274794E616D65060A46696C6C2E - 436F6C6F720A537461727456616C756507097846463330333033300953746F70 - 56616C756507097846463430343034300754726967676572062049734D6F7573 - 654F7665723D747275653B4973466F63757365643D66616C73650E5472696767 - 6572496E7665727365062149734D6F7573654F7665723D66616C73653B497346 - 6F63757365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009 - 5374796C654E616D650614436F6C6F72416E696D6174696F6E325374796C6508 + 61646975730500000000000000800040000F54466C6F6174416E696D6174696F + 6E00095374796C654E616D65061A636865636B6D61726B4F706163697479416E + 696D6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F + 70657274794E616D6506074F7061636974790A537461727456616C7565050000 + 00000000000000000953746F7056616C7565050000000000000080FF3F075472 + 6967676572060E4973436865636B65643D747275650E54726967676572496E76 + 65727365060F4973436865636B65643D66616C73650000000000055454657874 + 00095374796C654E616D6506047465787405416C69676E0706436C69656E7406 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 005655FB05400B53697A652E4865696768740500000000000000880440145369 + 7A652E506C6174666F726D44656661756C7408165465787453657474696E6773 + 2E466F6E74436F6C6F720708636C6157686974650000005450463007544C6179 + 6F757400095374796C654E616D650617756C7269676874726164696F62757474 + 6F6E7374796C6505416C69676E070643656E7465720A53697A652E5769647468 + 0500000000005655FB05400B53697A652E4865696768740500000000000000A0 + 04401453697A652E506C6174666F726D44656661756C74080756697369626C65 + 08085461624F72646572022D0007544C61796F75740005416C69676E0706426F + 74746F6D0A506F736974696F6E2E5905000000000000008804400A53697A652E + 57696474680500000000005655FB05400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C7408000A54 + 52656374616E676C6500095374796C654E616D65060A6261636B67726F756E64 + 05416C69676E0708436F6E74656E747307436F726E6572730B08546F70526967 + 68740B426F74746F6D5269676874000A46696C6C2E436F6C6F72070978464632 + 3032303230064C6F636B6564090748697454657374080A53697A652E57696474 + 680500000000005655FB05400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C74080C5374726F6B65 + 2E436F6C6F720709784646313531353135075852616469757305000000000000 + 00C0004007595261646975730500000000000000C00040000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D6506216261636B67726F756E6455 + 6C427574746F6E436F6C6F72416E696D6174696F6E31084475726174696F6E05 + 0000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E616D65 + 060A46696C6C2E436F6C6F720A537461727456616C7565070978464632303230 + 32300953746F7056616C75650709784646343034303430075472696767657206 + 1049734D6F7573654F7665723D747275650E54726967676572496E7665727365 + 061149734D6F7573654F7665723D66616C736500000A5452656374616E676C65 + 00095374796C654E616D650609636865636B6D61726B05416C69676E0708436F + 6E74656E747307436F726E6572730B08546F7052696768740B426F74746F6D52 + 69676874000A46696C6C2E436F6C6F720709784646324138324532064C6F636B + 656409074869745465737408074F70616369747905000000000000000000000C + 4D617267696E732E4C656674050000000000000080FF3F0B4D617267696E732E + 546F70050000000000000080FF3F0D4D617267696E732E526967687405000000 + 0000000080FF3F0E4D617267696E732E426F74746F6D050000000000000080FF + 3F0A53697A652E57696474680500000000005655F705400B53697A652E486569 + 67687405000000000000008001401453697A652E506C6174666F726D44656661 + 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 + 00000000000080004007595261646975730500000000000000800040000F5446 + 6C6F6174416E696D6174696F6E00095374796C654E616D65061A636865636B6D + 61726B4F706163697479416E696D6174696F6E31084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A53 + 7461727456616C756505000000000000000000000953746F7056616C75650500 + 00000000000080FF3F0754726967676572060E4973436865636B65643D747275 + 650E54726967676572496E7665727365060F4973436865636B65643D66616C73 + 65000000000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E74064C6F636B6564090748697454657374080A53697A + 652E57696474680500000000005655FB05400B53697A652E4865696768740500 + 0000000000008804401453697A652E506C6174666F726D44656661756C740816 + 5465787453657474696E67732E466F6E74436F6C6F720708636C615768697465 + 0000005450463007544C61796F757400095374796C654E616D650615616E6969 + 6E64696361746F72686F727A7374796C6505416C69676E070643656E7465720A + 53697A652E57696474680500000000000040C006400B53697A652E4865696768 + 7405000000000000008000401453697A652E506C6174666F726D44656661756C + 74080756697369626C6508085461624F72646572023A000A5452656374616E67 + 6C6500095374796C654E616D65060A52656374616E676C653105416C69676E07 + 06436C69656E740C436C69704368696C6472656E090A46696C6C2E436F6C6F72 + 07097846463430343034300A53697A652E57696474680500000000000040C006 + 400B53697A652E48656967687405000000000000008000401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0758526164697573050000000000000080FF3F07595261646975730500000000 + 00000080FF3F0005544C696E6500095374796C654E616D6506054C696E653108 + 4C696E65547970650706426F74746F6D0A53697A652E57696474680500000000 + 000000A00B400B53697A652E4865696768740500000000000000800040145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646324138324532105374726F6B652E546869636B6E65737305000000 + 000000008002400A5374726F6B652E4361700705526F756E640B5374726F6B65 + 2E446173680704446173680B5374726F6B652E4A6F696E0705526F756E64000F + 54466C6F6174416E696D6174696F6E00095374796C654E616D650603616E6907 + 456E61626C656409084475726174696F6E0500000000000000800340044C6F6F + 70090C50726F70657274794E616D65060A506F736974696F6E2E580A53746172 + 7456616C75650500000000000000C808C00953746F7056616C75650500000000 + 0000000000000754726967676572060E497356697369626C653D747275650000 + 0000005450463007544C61796F757400095374796C654E616D65060E6C6F6762 + 7574746F6E7374796C6505416C69676E070643656E7465720A53697A652E5769 + 6474680500000000000000C005400B53697A652E486569676874050000000000 + 0000C005401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508085461624F726465720202000A5452656374616E676C650009537479 + 6C654E616D65060A6261636B67726F756E6405416C69676E0706436C69656E74 + 0C436C69704368696C6472656E090A436C6970506172656E740907436F726E65 + 72730B08546F7052696768740B426F74746F6D5269676874000A46696C6C2E43 + 6F6C6F7207097846463230323032300748697454657374080A53697A652E5769 + 6474680500000000000000C005400B53697A652E486569676874050000000000 + 0000C005401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6507585261646975730500000000000000C00040 + 07595261646975730500000000000000C00040000F54436F6C6F72416E696D61 + 74696F6E00095374796C654E616D650615627574746F6E436F6C6F72416E696D + 6174696F6E31084475726174696F6E050000000000CDCCCCFB3F0C50726F7065 + 7274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75650709 + 7846463230323032300953746F7056616C756507097846463430343034300754 + 726967676572063049734D6F7573654F7665723D747275653B49735072657373 + 65643D66616C73653B4973466F63757365643D66616C73650E54726967676572 + 496E7665727365063149734D6F7573654F7665723D66616C73653B4973507265 + 737365643D66616C73653B4973466F63757365643D66616C736500000F54436F + 6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F6E43 + 6F6C6F72416E696D6174696F6E32084475726174696F6E050000000000CDCCCC + FB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A53746172 + 7456616C756507097846463430343034300953746F7056616C75650709784646 + 3137353739430754726967676572062F4973507265737365643D747275653B49 + 734D6F7573654F7665723D747275653B4973466F63757365643D66616C736500 + 000F54436F6C6F72416E696D6174696F6E00095374796C654E616D6506156275 + 74746F6E436F6C6F72416E696D6174696F6E33084475726174696F6E05000000 + 0000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F72 + 0A537461727456616C756507097846463241383245320953746F7056616C7565 + 07097846463137353739430754726967676572062E4973507265737365643D74 + 7275653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 7275650E54726967676572496E7665727365062F4973507265737365643D6661 + 6C73653B49734D6F7573654F7665723D747275653B4973466F63757365643D74 + 727565000005545061746800095374796C654E616D650605506174683105416C + 69676E0706436C69656E7409446174612E506174680A5C020000320000000000 + 00000000A841CDCCCC40010000000000A8410000C041010000000000C03F0000 + C041010000000000C03F00000000010000009A99694100000000010000000000 + A841CDCCCC40030000000000A841CDCCCC400000000000009C410000F0400100 + 0000000058410000F04001000000000058410000C03F01000000000040400000 + C03F01000000000040400000B4410100000000009C410000B441010000000000 + 9C410000F0400300000000009C410000F04000000000000040410000F0400100 + 0000000090400000F04001000000000090400000C04001000000000040410000 + C04001000000000040410000F04003000000000040410000F040000000000000 + 9040000010410100000000009041000010410100000000009041000028410100 + 0000000090400000284101000000000090400000104103000000000090400000 + 1041000000000000904000004041010000000000904100004041010000000000 + 9041000058410100000000009040000058410100000000009040000040410300 + 0000000090400000404100000000000090400000704101000000000090410000 + 7041010000000000904100008441010000000000904000008441010000000000 + 9040000070410300000000009040000070410000000000009040000090410100 + 00000000904100009041010000000000904100009C4101000000000090400000 + 9C41010000000000904000009041030000000000904000009041000000000000 + 70410000C04001000000333393410000C0400100000000007041666626400100 + 0000000070410000C04003000000000070410000C0400A46696C6C2E436F6C6F + 720708636C6157686974650748697454657374080C4D617267696E732E4C6566 + 740500000000000000A002400B4D617267696E732E546F700500000000000000 + A002400D4D617267696E732E52696768740500000000000000A002400E4D6172 + 67696E732E426F74746F6D0500000000000000A002400A53697A652E57696474 + 6805000000000000009805400B53697A652E4865696768740500000000000000 + 9805401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E6508577261704D6F6465070346697400000000545046 + 3007544C61796F757400095374796C654E616D650613657870616E6465726275 + 74746F6E7374796C6505416C69676E070643656E7465720B4D617267696E732E + 546F70050000000000000080FF3F0A53697A652E576964746805000000000000 + 00B003400B53697A652E4865696768740500000000000000B003401453697A65 + 2E506C6174666F726D44656661756C74080756697369626C6508085461624F72 + 64657202350005545061746800095374796C654E616D65060550617468310541 + 6C69676E070643656E74657209446174612E506174680A340000000400000000 + 0000000000C8420000C84201000000000096430000C842010000000000484300 + 009643030000000000C8420000C8420A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080D526F746174696F6E416E676C650500000000 + 000000B405400A53697A652E57696474680500000000000000A002400B53697A + 652E4865696768740500000000000000C001401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C + 6F6174416E696D6174696F6E00095374796C654E616D650614466C6F6174416E + 696D6174696F6E315374796C65084475726174696F6E050000000000CDCCCCFB + 3F0D496E746572706F6C6174696F6E070843697263756C61720C50726F706572 + 74794E616D65060D526F746174696F6E416E676C650A537461727456616C7565 + 0500000000000000B405400953746F7056616C75650500000000000000000000 + 0754726967676572060F4973457870616E6465643D747275650E547269676765 + 72496E766572736506104973457870616E6465643D66616C7365000000005450 + 463007544C61796F757400095374796C654E616D650615657870616E64657263 + 6865636B626F787374796C6505416C69676E070643656E7465720A53697A652E + 576964746805000000000000008406400B53697A652E48656967687405000000 + 000000008404401453697A652E506C6174666F726D44656661756C7408075669 + 7369626C6508085461624F7264657202360007544C61796F75740005416C6967 + 6E07044C6566740A53697A652E57696474680500000000000000C003400B5369 + 7A652E48656967687405000000000000008404401453697A652E506C6174666F + 726D44656661756C7408000554506174680005416C69676E0706436C69656E74 + 09446174612E506174680AD80100002700000000000000FEC8BA4402E7924402 + 0000002592AD4402E79244020000006D5BA544FEB09E44020000006D5BA544FE + B09E440200000093A4A4446A0C9F44020000004A80AC44FC79AA440200000004 + 6EBA44FC79AA44020000004A00C844FC79AA44020000000080CF44FEB09E4402 + 0000000080CF44FEB09E44020000000080CF44FEB09E44020000004C5BC84402 + E7924402000000FEC8BA4402E7924400000000FE88BA44FE30974402000000B8 + 76BF44FE309744020000000277C344EEA09A44020000000277C34404DE9E4402 + 0000000277C344121BA34402000000B876BF44008CA64402000000FE88BA4400 + 8CA644020000004C9BB544008CA64402000000009CB144121BA3440200000000 + 9CB14404DE9E4402000000009CB144EEA09A44020000004C9BB544FE30974402 + 000000FE88BA44FE309744000000000080BA44045E9B4402000000146EB84404 + 5E9B440200000000C0B64454F79C440200000000C0B64400F09E440200000000 + C0B644ACE8A04402000000146EB844FC81A244020000000080BA44FC81A24402 + 000000EC91BC44FC81A244020000000040BE44ACE8A044020000000040BE4400 + F09E44020000000040BE4454F79C4402000000EC91BC44045E9B440200000000 + 80BA44045E9B440A46696C6C2E436F6C6F720709783630303030303030074869 + 7454657374080C4D617267696E732E4C65667405000000000000008000400B4D + 617267696E732E546F7005000000000000008000400D4D617267696E732E5269 + 67687405000000000000008000400E4D617267696E732E426F74746F6D050000 + 00000000008000400A53697A652E57696474680500000000000000A003400B53 + 697A652E4865696768740500000000000000E803401453697A652E506C617466 + 6F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65085772 + 61704D6F64650703466974000F54436F6C6F72416E696D6174696F6E00084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709783630303030303030 + 0953746F7056616C75650708636C61426C61636B0754726967676572060E4973 + 436865636B65643D7472756500000F54436F6C6F72416E696D6174696F6E0008 4475726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65 - 060A46696C6C2E436F6C6F720A537461727456616C7565070978464634303430 - 34300953746F7056616C75650709784646313735373943075472696767657206 - 1F4973466F63757365643D747275653B49734D6F7573654F7665723D74727565 - 00000007544C61796F757400095374796C654E616D6506074C61796F75743105 - 416C69676E070643656E7465720C4D617267696E732E4C656674050000000000 - 000080FF3F0A53697A652E57696474680500000000000000A002400B53697A65 - 2E4865696768740500000000000000C001401453697A652E506C6174666F726D - 44656661756C74080005545061746800095374796C654E616D65060550617468 - 3105416C69676E0706436C69656E7409446174612E506174680A340000000400 - 0000000000000000C8420000C84201000000000096430000C842010000000000 - 484300009643030000000000C8420000C8420A46696C6C2E436F6C6F72070863 - 6C6157686974650748697454657374080A53697A652E57696474680500000000 - 000000A002400B53697A652E4865696768740500000000000000C00140145369 - 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 - 044E6F6E650000000000000C5442727573684F626A65637400095374796C654E - 616D65060973656C656374696F6E0B42727573682E436F6C6F72070978393632 - 4138324532000007544C61796F757400095374796C654E616D650607636F6E74 - 656E7405416C69676E0706436C69656E740C4D617267696E732E4C6566740500 - 0000000000008000400B4D617267696E732E546F700500000000000000800040 - 0D4D617267696E732E52696768740500000000000000F003400E4D617267696E - 732E426F74746F6D05000000000000008000400A53697A652E57696474680500 - 0000000000008805400B53697A652E4865696768740500000000000000A80340 - 1453697A652E506C6174666F726D44656661756C74080000005450463007544C - 61796F757400095374796C654E616D6506106D656E756261726974656D737479 - 6C6505416C69676E070643656E7465720C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D - 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F0A53697A652E5769647468050000 - 00000000009205400B53697A652E4865696768740500000000000000D0034014 - 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 - 61624F726465720225000A5452656374616E676C650005416C69676E0708436F - 6E74656E74730A46696C6C2E436F6C6F72070978464632413832453207486974 - 5465737408074F70616369747905000000000017B7D1F13F0A53697A652E5769 - 64746805000000000000009205400B53697A652E486569676874050000000000 - 0000D003401453697A652E506C6174666F726D44656661756C74080B5374726F - 6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008 - 4475726174696F6E05000000000018B7D1F23F0C50726F70657274794E616D65 - 06074F7061636974790A537461727456616C7565050000000000000000000009 - 53746F7056616C7565050000000000000080FF3F0754726967676572060F4973 - 53656C65637465643D747275650E54726967676572496E766572736506104973 - 53656C65637465643D66616C73650000000A5452656374616E676C6500095374 - 796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E7465 - 6E74730A46696C6C2E436F6C6F72070978464632413832453207486974546573 - 7408074F70616369747905000000000000000000000A53697A652E5769647468 - 05000000000000009205400B53697A652E4865696768740500000000000000D0 - 03401453697A652E506C6174666F726D44656661756C74080B5374726F6B652E - 4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572 - 6174696F6E05000000000018B7D1F23F07496E7665727365090C50726F706572 - 74794E616D6506074F7061636974790A537461727456616C7565050000000000 - 00000000000953746F7056616C7565050000000000000080FF3F075472696767 - 6572061049734D6F7573654F7665723D747275650E54726967676572496E7665 - 727365061149734D6F7573654F7665723D66616C736500000007544C61796F75 - 7400095374796C654E616D650605676C79706805416C69676E07044C6566740A - 53697A652E57696474680500000000000000C803400B53697A652E4865696768 - 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 74080007544C61796F757400095374796C654E616D650609636865636B6D6172 - 6B05416C69676E0708436F6E74656E7473074F7061636974790500000000006F - 1283F53F0A53697A652E57696474680500000000000000C803400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C7408000554506174680005416C69676E070643656E746572094461 - 74612E506174680A58000000070000000000000056D9524391AE2C4301000000 - 9276664365021643010000009F3983432B7C3C43010000009E9AA64382D2B442 - 010000006F1CB04375A4D1420100000026DF8243263F67430300000056D95243 - 91AE2C430A46696C6C2E436F6C6F720708636C61576869746507486974546573 - 74080A53697A652E57696474680500000000000000B002400B53697A652E4865 - 696768740500000000000000B002401453697A652E506C6174666F726D446566 - 61756C74080B5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174 - 416E696D6174696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50 - 726F70657274794E616D6506074F7061636974790A537461727456616C756505 - 000000000000000000000953746F7056616C7565050000000000000080FF3F07 - 54726967676572060E4973436865636B65643D747275650E5472696767657249 - 6E7665727365060F4973436865636B65643D66616C73650000000654476C7970 - 6800095374796C654E616D65060A676C7970687374796C650C4D617267696E73 - 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 - 000000008000400D4D617267696E732E52696768740500000000000000C00040 - 0E4D617267696E732E426F74746F6D050000000000000080FF3F05416C69676E - 070552696768740A506F736974696F6E2E580500000000000000C001400A506F - 736974696F6E2E5905000000000000008000400A53697A652E57696474680500 - 0000000000008003400B53697A652E4865696768740500000000000000B80340 - 1453697A652E506C6174666F726D44656661756C740800000654496D61676500 - 095374796C654E616D6506066269746D61700E4D756C74695265734269746D61 - 700E01000005416C69676E0708436F6E74656E74730C4D617267696E732E4C65 - 667405000000000000008000400B4D617267696E732E546F7005000000000000 - 008000400D4D617267696E732E526967687405000000000000008000400E4D61 - 7267696E732E426F74746F6D05000000000000008000400A53697A652E576964 - 74680500000000000000A803400B53697A652E48656967687405000000000000 - 00B003401453697A652E506C6174666F726D44656661756C7408000000055454 - 65787400095374796C654E616D6506047465787405416C69676E07044C656674 - 064C6F636B6564090748697454657374080C4D617267696E732E4C6566740500 - 0000000000008002400D4D617267696E732E5269676874050000000000000080 - 02400A506F736974696F6E2E5805000000000000008404400A53697A652E5769 - 6474680500000000000000C804400B53697A652E486569676874050000000000 - 0000D003401453697A652E506C6174666F726D44656661756C74081654657874 - 53657474696E67732E466F6E74436F6C6F720708636C61576869746516546578 - 7453657474696E67732E486F727A416C69676E07074C656164696E6700000554 - 5465787400095374796C654E616D65060873686F727463757405416C69676E07 - 055269676874064C6F636B6564090748697454657374080C4D617267696E732E - 4C6566740500000000000000C002400D4D617267696E732E5269676874050000 - 0000000000C001400A506F736974696F6E2E580500000000000000C000C00A53 - 697A652E57696474680500000000000000C804400B53697A652E486569676874 - 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 - 08165465787453657474696E67732E466F6E74436F6C6F720708636C61576869 - 7465165465787453657474696E67732E486F727A416C69676E07074C65616469 - 6E67000007544C61796F757400095374796C654E616D6506077375626D61726B - 05416C69676E070552696768740A506F736974696F6E2E580500000000000000 - D404400A53697A652E57696474680500000000000000A003400B53697A652E48 - 65696768740500000000000000D003401453697A652E506C6174666F726D4465 - 6661756C7408000554506174680005416C69676E070643656E74657209446174 - 612E506174680A34000000040000000000000000000000000000000100000000 - 0000000000803F010000000000803F0000003F0300000000000000000000000A - 46696C6C2E436F6C6F720708636C615768697465064C6F636B65640907486974 - 54657374080A53697A652E57696474680500000000000000E001400B53697A65 - 2E48656967687405000000000000008002401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65000000005450 - 46300A5452656374616E676C6500095374796C654E616D65060C6D656E756261 - 727374796C6505416C69676E070643656E7465720C436C69704368696C647265 - 6E090946696C6C2E4B696E6407044E6F6E650748697454657374080A53697A65 - 2E57696474680500000000000000C804400B53697A652E486569676874050000 - 0000000000C804401453697A652E506C6174666F726D44656661756C74080B53 - 74726F6B652E4B696E6407044E6F6E650756697369626C650807585261646975 - 730500000000000000C0004007595261646975730500000000000000C0004000 - 0A5452656374616E676C650005416C69676E0706436C69656E740A46696C6C2E - 436F6C6F7207097846463230323032300748697454657374080C4D617267696E - 732E4C656674050000000000000080FFBF0B4D617267696E732E546F70050000 - 000000000080FFBF0D4D617267696E732E5269676874050000000000000080FF - BF0A53697A652E57696474680500000000000000D004400B53697A652E486569 - 6768740500000000000000CC04401453697A652E506C6174666F726D44656661 - 756C74080C5374726F6B652E436F6C6F72070978464631353135313507585261 + 060A46696C6C2E436F6C6F720A537461727456616C75650708636C61426C6163 + 6B0953746F7056616C756507097836303030303030300754726967676572060F + 4973436865636B65643D66616C73650000000005545465787400095374796C65 + 4E616D6506047465787405416C69676E0706436C69656E74064C6F636B656409 + 0748697454657374080C4D617267696E732E4C65667405000000000000008002 + 400B4D617267696E732E546F7005000000000000008000400D4D617267696E73 + 2E5269676874050000000000000080FF3F0A53697A652E576964746805000000 + 00000000C605400B53697A652E4865696768740500000000000000F803401453 + 697A652E506C6174666F726D44656661756C7408165465787453657474696E67 + 732E466F6E74436F6C6F72070978464645454545454516546578745365747469 + 6E67732E486F727A416C69676E07074C656164696E670000005450463007544C + 61796F757400095374796C654E616D65060D657870616E6465727374796C6505 + 416C69676E070643656E7465720A53697A652E576964746805000000000000C0 + 8607400B53697A652E4865696768740500000000000000CE05401453697A652E + 506C6174666F726D44656661756C74080756697369626C6508085461624F7264 + 65720237000A5452656374616E676C6500095374796C654E616D65060B626772 + 656374616E676C6505416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646324432443244064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000000C08607400B53697A652E4865696768 + 740500000000000000CE05401453697A652E506C6174666F726D44656661756C + 74080C5374726F6B652E436F6C6F720709784646313531353135075852616469 + 75730500000000000000C0004007595261646975730500000000000000C00040 + 0007544C61796F757400095374796C654E616D6506074C61796F75743305416C + 69676E0703546F700A53697A652E576964746805000000000000C08607400B53 + 697A652E4865696768740500000000000000C803401453697A652E506C617466 + 6F726D44656661756C74080007544C61796F757400095374796C654E616D6506 + 074C61796F75743405416C69676E0708436F6E74656E74730A53697A652E5769 + 64746805000000000000C08607400B53697A652E486569676874050000000000 + 0000C803401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060A52656374616E676C65320541 + 6C69676E0708436F6E74656E747307436F726E6572730B07546F704C65667408 + 546F705269676874000A46696C6C2E436F6C6F72070978464632353235323506 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 0000C08607400B53697A652E4865696768740500000000000000C80340145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 070978464631353135313507585261646975730500000000000000C000400759 + 5261646975730500000000000000C0004000000A5452656374616E676C650009 + 5374796C654E616D65060A52656374616E676C653105416C69676E0708436F6E + 74656E747307436F726E6572730B07546F704C65667408546F70526967687400 + 0A46696C6C2E436F6C6F720709784646313531353135064C6F636B6564090748 + 697454657374080A53697A652E576964746805000000000000C08607400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261 646975730500000000000000C0004007595261646975730500000000000000C0 - 0040000007544C61796F757400095374796C654E616D650607636F6E74656E74 - 05416C69676E0706436C69656E740C4D617267696E732E4C6566740500000000 - 00000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D61 - 7267696E732E5269676874050000000000000080FF3F0E4D617267696E732E42 - 6F74746F6D050000000000000080FF3F0A53697A652E57696474680500000000 - 000000C004400B53697A652E4865696768740500000000000000C00440145369 - 7A652E506C6174666F726D44656661756C74080000005450463007544C61796F - 757400095374796C654E616D65060D6D656E756974656D7374796C6505416C69 - 676E070643656E7465720C4D617267696E732E4C656674050000000000000080 - FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E - 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F - 6D050000000000000080FF3F0A53697A652E5769647468050000000000000092 - 05400B53697A652E4865696768740500000000000000D003401453697A652E50 - 6C6174666F726D44656661756C74080756697369626C6508085461624F726465 - 720226000A5452656374616E676C650005416C69676E0708436F6E74656E7473 - 0A46696C6C2E436F6C6F72070978464632413832453207486974546573740807 - 4F70616369747905000000000017B7D1F13F0A53697A652E5769647468050000 - 00000000009205400B53697A652E4865696768740500000000000000D0034014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E65000F54466C6F6174416E696D6174696F6E0008447572617469 - 6F6E05000000000018B7D1F23F0C50726F70657274794E616D6506074F706163 - 6974790A537461727456616C756505000000000000000000000953746F705661 - 6C7565050000000000000080FF3F0754726967676572060F497353656C656374 - 65643D747275650E54726967676572496E76657273650610497353656C656374 - 65643D66616C73650000000A5452656374616E676C6500095374796C654E616D - 65060A6261636B67726F756E6405416C69676E0708436F6E74656E74730A4669 - 6C6C2E436F6C6F720709784646324138324532074869745465737408074F7061 - 6369747905000000000000000000000A53697A652E5769647468050000000000 - 00009205400B53697A652E4865696768740500000000000000D003401453697A + 0040000F54466C6F6174416E696D6174696F6E00095374796C654E616D650614 + 466C6F6174416E696D6174696F6E315374796C65084475726174696F6E050000 + 0000009A9999FD3F0D496E746572706F6C6174696F6E070843697263756C6172 + 0C50726F70657274794E616D6506075363616C652E580A537461727456616C75 + 65050000000000000080FF3F0953746F7056616C756505000000000000000000 + 000754726967676572060F4973457870616E6465643D747275650E5472696767 + 6572496E766572736506104973457870616E6465643D66616C73650000000007 + 544C61796F757400095374796C654E616D6506074C61796F75743305416C6967 + 6E0708436F6E74656E74730A53697A652E576964746805000000000000C08607 + 400B53697A652E4865696768740500000000000000C803401453697A652E506C + 6174666F726D44656661756C74080005545465787400095374796C654E616D65 + 06047465787405416C69676E07044C656674084175746F53697A65090A436C69 + 70506172656E7409064C6F636B6564090748697454657374080C4D617267696E + 732E4C6566740500000000000000A002400A506F736974696F6E2E5805000000 + 00000000A002400A53697A652E576964746805000000000000B8C703400B5369 + 7A652E4865696768740500000000000060FF02401453697A652E506C6174666F + 726D44656661756C74080454657874060454657874165465787453657474696E + 67732E466F6E74436F6C6F720708636C61576869746516546578745365747469 + 6E67732E486F727A416C69676E07074C656164696E670000000F54457870616E + 646572427574746F6E00095374796C654E616D650606627574746F6E05416C69 + 676E07055269676874064C6F636B6564090A506F736974696F6E2E5805000000 + 00000080F906400A53697A652E57696474680500000000000000A003400B5369 + 7A652E4865696768740500000000000000C803401453697A652E506C6174666F + 726D44656661756C740800000000005450463007544C61796F75740009537479 + 6C654E616D65060A70616E656C7374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000C006400B53697A652E48656967 + 68740500000000000000A406401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720238000A5452656374616E + 676C6500095374796C654E616D65060A6261636B67726F756E6405416C69676E + 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646323032303230 + 0A53697A652E57696474680500000000000000C006400B53697A652E48656967 + 68740500000000000000A406401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573050000 + 0000000000C0004007595261646975730500000000000000C000400000005450 + 463007544C61796F757400095374796C654E616D65061970726F677265737362 + 61726D696E696572726F727374796C6505416C69676E070643656E7465720A53 + 697A652E576964746805000000000033338505400B53697A652E486569676874 + 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 + 080756697369626C6508085461624F726465720239000A5452656374616E676C + 6500095374796C654E616D65060668747261636B05416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646343034303430064C6F636B65 + 64090748697454657374080A53697A652E576964746805000000000033338505 + 400B53697A652E4865696768740500000000009999E104401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0758526164697573050000000000000080004007595261646975730500000000 + 000000800040000A5452656374616E676C6500095374796C654E616D65060A68 + 696E64696361746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72 + 0709784646453232413241064C6F636B6564090748697454657374080A53697A + 652E57696474680500000000000000C804400B53697A652E4865696768740500 + 000000009999E104401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65075852616469757305000000000000 + 00800040075952616469757305000000000000008000400000000A5452656374 + 616E676C6500095374796C654E616D65060676747261636B05416C69676E0708 + 436F6E74656E74730A46696C6C2E436F6C6F720709784646343034303430064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 33338505400B53697A652E4865696768740500000000009999E104401453697A 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E65000F54466C6F6174416E696D6174696F6E00084475726174696F6E05 - 000000000018B7D1F23F07496E7665727365090C50726F70657274794E616D65 - 06074F7061636974790A537461727456616C7565050000000000000000000009 - 53746F7056616C7565050000000000000080FF3F075472696767657206104973 - 4D6F7573654F7665723D747275650E54726967676572496E7665727365061149 - 734D6F7573654F7665723D66616C736500000007544C61796F75740009537479 - 6C654E616D650605676C79706805416C69676E07044C6566740A53697A652E57 - 696474680500000000000000C803400B53697A652E4865696768740500000000 - 000000D003401453697A652E506C6174666F726D44656661756C74080007544C - 61796F757400095374796C654E616D650609636865636B6D61726B05416C6967 - 6E0708436F6E74656E7473074F7061636974790500000000006F1283F53F0A53 - 697A652E57696474680500000000000000C803400B53697A652E486569676874 - 0500000000000000D003401453697A652E506C6174666F726D44656661756C74 - 08000554506174680005416C69676E070643656E74657209446174612E506174 - 680A58000000070000000000000056D9524391AE2C4301000000927666436502 - 1643010000009F3983432B7C3C43010000009E9AA64382D2B442010000006F1C - B04375A4D1420100000026DF8243263F67430300000056D9524391AE2C430A46 - 696C6C2E436F6C6F720708636C6157686974650748697454657374080A53697A - 652E57696474680500000000000000B002400B53697A652E4865696768740500 - 000000000000B002401453697A652E506C6174666F726D44656661756C74080B - 5374726F6B652E4B696E6407044E6F6E6500000F54466C6F6174416E696D6174 - 696F6E00084475726174696F6E050000000000CDCCCCFB3F0C50726F70657274 - 794E616D6506074F7061636974790A537461727456616C756505000000000000 - 000000000953746F7056616C7565050000000000000080FF3F07547269676765 - 72060E4973436865636B65643D747275650E54726967676572496E7665727365 - 060F4973436865636B65643D66616C73650000000654476C7970680009537479 - 6C654E616D65060A676C7970687374796C650C4D617267696E732E4C65667405 - 0000000000000080FF3F0B4D617267696E732E546F7005000000000000008000 - 400D4D617267696E732E52696768740500000000000000C000400E4D61726769 - 6E732E426F74746F6D050000000000000080FF3F05416C69676E07044C656674 - 0A506F736974696F6E2E58050000000000000080FF3F0A506F736974696F6E2E - 5905000000000000008000400A53697A652E5769647468050000000000000080 + 4E6F6E6507585261646975730500000000000000800040075952616469757305 + 00000000000000800040000A5452656374616E676C6500095374796C654E616D + 65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C6C + 2E436F6C6F720709784646453232413241064C6F636B65640907486974546573 + 74080A506F736974696F6E2E5905000000000099998D04400A53697A652E5769 + 64746805000000000033338505400B53697A652E486569676874050000000000 + 0000A803401453697A652E506C6174666F726D44656661756C74080B5374726F + 6B652E4B696E6407044E6F6E6507585261646975730500000000000000800040 + 07595261646975730500000000000000800040000000005450463007544C6179 + 6F757400095374796C654E616D65061470726F67726573736261726D696E6973 + 74796C6505416C69676E070643656E7465720A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080756697369626C65080854 + 61624F72646572022F000A5452656374616E676C6500095374796C654E616D65 + 060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F + 6C6F720709784646343034303430064C6F636B6564090748697454657374080A + 53697A652E576964746805000000000033338505400B53697A652E4865696768 + 740500000000009999E104401453697A652E506C6174666F726D44656661756C + 74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305000000 + 0000000080004007595261646975730500000000000000800040000A54526563 + 74616E676C6500095374796C654E616D65060A68696E64696361746F7205416C + 69676E07044C6566740A46696C6C2E436F6C6F72070978464632413832453206 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000C804400B53697A652E4865696768740500000000009999E10440145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65075852616469757305000000000000008000400759526164697573 + 05000000000000008000400000000A5452656374616E676C6500095374796C65 + 4E616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C + 6C2E436F6C6F720709784646343034303430064C6F636B656409074869745465 + 7374080A53697A652E576964746805000000000033338505400B53697A652E48 + 65696768740500000000009999E104401453697A652E506C6174666F726D4465 + 6661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164697573 + 050000000000000080004007595261646975730500000000000000800040000A + 5452656374616E676C6500095374796C654E616D65060A76696E64696361746F + 7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632 + 4138324532064C6F636B6564090748697454657374080A506F736974696F6E2E + 5905000000000099998D04400A53697A652E5769647468050000000000333385 + 05400B53697A652E4865696768740500000000000000A803401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6507585261646975730500000000000000800040075952616469757305000000 + 00000000800040000000005450463007544C61796F757400095374796C654E61 + 6D65060E636F6D626F656469747374796C6505416C69676E070643656E746572 + 0A53697A652E57696474680500000000000000C805400B53697A652E48656967 + 68740500000000000000C803401453697A652E506C6174666F726D4465666175 + 6C74080756697369626C6508085461624F726465720234000C5442727573684F + 626A65637400095374796C654E616D65060A666F726567726F756E6400000B54 + 466F6E744F626A65637400095374796C654E616D650604666F6E7409466F6E74 + 2E53697A650500000000000000D00240000007544C61796F757400095374796C + 654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74656E74 + 730A53697A652E57696474680500000000000000C805400B53697A652E486569 + 6768740500000000000000C803401453697A652E506C6174666F726D44656661 + 756C7408000A5452656374616E676C6500095374796C654E616D65060A526563 + 74616E676C653105416C69676E0706436C69656E740A46696C6C2E436F6C6F72 + 07097846463230323032300748697454657374080A53697A652E576964746805 + 00000000000000C805400B53697A652E4865696768740500000000000000C803 + 401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E43 + 6F6C6F72070978464632303230323007585261646975730500000000000000C0 + 004007595261646975730500000000000000C00040000F54436F6C6F72416E69 + 6D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174696F + 6E315374796C65084475726174696F6E050000000000CDCCCCFB3F07496E7665 + 727365090C50726F70657274794E616D65060C5374726F6B652E436F6C6F720A + 537461727456616C756507097846463230323032300953746F7056616C756507 + 097846463430343034300754726967676572062049734D6F7573654F7665723D + 747275653B4973466F63757365643D66616C73650E54726967676572496E7665 + 727365062149734D6F7573654F7665723D66616C73653B4973466F6375736564 + 3D66616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614436F6C6F72416E696D6174696F6E325374796C6508447572617469 + 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E + 616D65060C5374726F6B652E436F6C6F720A537461727456616C756507097846 + 463430343034300953746F7056616C7565070978464632413832453207547269 + 67676572061F49734D6F7573654F7665723D747275653B4973466F6375736564 + 3D747275650E54726967676572496E7665727365062049734D6F7573654F7665 + 723D747275653B4973466F63757365643D66616C7365000007544C61796F7574 + 00095374796C654E616D6506056172726F7705416C69676E0708466974526967 + 68740B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A506F736974696F6E2E580500000000005ED997 + 05400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E5769 + 647468050000000000889AB803400B53697A652E486569676874050000000000 + 0000B803401453697A652E506C6174666F726D44656661756C7408000A545265 + 6374616E676C6500095374796C654E616D65060A52656374616E676C65310541 + 6C69676E0708436F6E74656E747307436F726E6572730B08546F705269676874 + 0B426F74746F6D5269676874000A46696C6C2E436F6C6F720709784646333033 + 3033300748697454657374080A53697A652E5769647468050000000000889AB8 03400B53697A652E4865696768740500000000000000B803401453697A652E50 - 6C6174666F726D44656661756C740800000654496D61676500095374796C654E - 616D6506066269746D61700E4D756C74695265734269746D61700E0100000541 - 6C69676E07044C6566740C4D617267696E732E4C656674050000000000000080 - 00400B4D617267696E732E546F7005000000000000008000400D4D617267696E - 732E526967687405000000000000008000400E4D617267696E732E426F74746F - 6D05000000000000008000400A506F736974696F6E2E58050000000000000080 - 00400A506F736974696F6E2E5905000000000000008000400A53697A652E5769 - 6474680500000000000000A803400B53697A652E486569676874050000000000 - 0000B003401453697A652E506C6174666F726D44656661756C74080000000554 - 5465787400095374796C654E616D6506047465787405416C69676E07044C6566 - 74064C6F636B6564090748697454657374080C4D617267696E732E4C65667405 - 000000000000008002400D4D617267696E732E52696768740500000000000000 - 8002400A506F736974696F6E2E5805000000000000008404400A53697A652E57 - 696474680500000000000000C804400B53697A652E4865696768740500000000 - 000000D003401453697A652E506C6174666F726D44656661756C740816546578 - 7453657474696E67732E466F6E74436F6C6F720708636C615768697465165465 - 787453657474696E67732E486F727A416C69676E07074C656164696E67000005 - 545465787400095374796C654E616D65060873686F727463757405416C69676E - 07055269676874064C6F636B6564090748697454657374080C4D617267696E73 - 2E4C6566740500000000000000C002400D4D617267696E732E52696768740500 - 000000000000C001400A506F736974696F6E2E580500000000000000C000C00A - 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6507585261646975730500000000000000C00040075952616469757305000000 + 00000000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E + 616D650614436F6C6F72416E696D6174696F6E315374796C6508447572617469 + 6F6E050000000000CDCCCCFB3F07496E7665727365090C50726F70657274794E + 616D65060A46696C6C2E436F6C6F720A537461727456616C7565070978464633 + 30333033300953746F7056616C75650709784646343034303430075472696767 + 6572062049734D6F7573654F7665723D747275653B4973466F63757365643D66 + 616C73650E54726967676572496E7665727365062149734D6F7573654F766572 + 3D66616C73653B4973466F63757365643D66616C736500000F54436F6C6F7241 + 6E696D6174696F6E00095374796C654E616D650614436F6C6F72416E696D6174 + 696F6E325374796C65084475726174696F6E050000000000CDCCCCFB3F0C5072 + 6F70657274794E616D65060A46696C6C2E436F6C6F720A537461727456616C75 + 6507097846463430343034300953746F7056616C756507097846463137353739 + 430754726967676572061F4973466F63757365643D747275653B49734D6F7573 + 654F7665723D7472756500000007544C61796F757400095374796C654E616D65 + 06074C61796F75743105416C69676E070643656E7465720C4D617267696E732E + 4C656674050000000000000080FF3F0A53697A652E5769647468050000000000 + 0000A002400B53697A652E4865696768740500000000000000C001401453697A + 652E506C6174666F726D44656661756C74080005545061746800095374796C65 + 4E616D650605506174683105416C69676E0706436C69656E7409446174612E50 + 6174680A3400000004000000000000000000C8420000C8420100000000009643 + 0000C842010000000000484300009643030000000000C8420000C8420A46696C + 6C2E436F6C6F720708636C6157686974650748697454657374080A53697A652E + 57696474680500000000000000A002400B53697A652E48656967687405000000 + 00000000C001401453697A652E506C6174666F726D44656661756C74080B5374 + 726F6B652E4B696E6407044E6F6E650000000000000C5442727573684F626A65 + 637400095374796C654E616D65060973656C656374696F6E0B42727573682E43 + 6F6C6F720709783936324138324532000007544C61796F757400095374796C65 + 4E616D650607636F6E74656E7405416C69676E0706436C69656E740C4D617267 + 696E732E4C65667405000000000000008000400B4D617267696E732E546F7005 + 000000000000008000400D4D617267696E732E52696768740500000000000000 + F003400E4D617267696E732E426F74746F6D05000000000000008000400A5369 + 7A652E576964746805000000000000008805400B53697A652E48656967687405 + 00000000000000A803401453697A652E506C6174666F726D44656661756C7408 + 0000005450463007544C61796F757400095374796C654E616D6506106D656E75 + 6261726974656D7374796C6505416C69676E070643656E7465720C4D61726769 + 6E732E4C656674050000000000000080FF3F0B4D617267696E732E546F700500 + 00000000000080FF3F0D4D617267696E732E5269676874050000000000000080 + FF3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A + 652E576964746805000000000000009205400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C740807 + 56697369626C6508085461624F726465720225000A5452656374616E676C6500 + 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 + 324138324532074869745465737408074F70616369747905000000000017B7D1 + F13F0A53697A652E576964746805000000000000009205400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F617441 + 6E696D6174696F6E00084475726174696F6E05000000000018B7D1F23F0C5072 + 6F70657274794E616D6506074F7061636974790A537461727456616C75650500 + 0000000000000000000953746F7056616C7565050000000000000080FF3F0754 + 726967676572060F497353656C65637465643D747275650E5472696767657249 + 6E76657273650610497353656C65637465643D66616C73650000000A54526563 + 74616E676C6500095374796C654E616D65060A6261636B67726F756E6405416C + 69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138 + 324532074869745465737408074F70616369747905000000000000000000000A + 53697A652E576964746805000000000000009205400B53697A652E4865696768 740500000000000000D003401453697A652E506C6174666F726D44656661756C - 7408165465787453657474696E67732E466F6E74436F6C6F720708636C615768 - 697465165465787453657474696E67732E486F727A416C69676E07074C656164 - 696E67000007544C61796F757400095374796C654E616D6506077375626D6172 - 6B05416C69676E070552696768740A506F736974696F6E2E5805000000000000 - 00D404400A53697A652E57696474680500000000000000A003400B53697A652E - 4865696768740500000000000000D003401453697A652E506C6174666F726D44 - 656661756C7408000554506174680005416C69676E070643656E746572094461 - 74612E506174680A340000000400000000000000000000000000000001000000 - 000000000000803F010000000000803F0000003F030000000000000000000000 - 0A46696C6C2E436F6C6F720708636C615768697465064C6F636B656409074869 - 7454657374080A53697A652E57696474680500000000000000E001400B53697A - 652E48656967687405000000000000008002401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650000000054 - 50463007544C61796F757400095374796C654E616D6506126D656E7573657061 - 7261746F727374796C6505416C69676E070643656E7465720C4D617267696E73 + 74080B5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D + 6174696F6E00084475726174696F6E05000000000018B7D1F23F07496E766572 + 7365090C50726F70657274794E616D6506074F7061636974790A537461727456 + 616C756505000000000000000000000953746F7056616C756505000000000000 + 0080FF3F0754726967676572061049734D6F7573654F7665723D747275650E54 + 726967676572496E7665727365061149734D6F7573654F7665723D66616C7365 + 00000007544C61796F757400095374796C654E616D650605676C79706805416C + 69676E07044C6566740A53697A652E57696474680500000000000000C803400B + 53697A652E4865696768740500000000000000D003401453697A652E506C6174 + 666F726D44656661756C74080007544C61796F757400095374796C654E616D65 + 0609636865636B6D61726B05416C69676E0708436F6E74656E7473074F706163 + 6974790500000000006F1283F53F0A53697A652E576964746805000000000000 + 00C803400B53697A652E4865696768740500000000000000D003401453697A65 + 2E506C6174666F726D44656661756C7408000554506174680005416C69676E07 + 0643656E74657209446174612E506174680A58000000070000000000000056D9 + 524391AE2C43010000009276664365021643010000009F3983432B7C3C430100 + 00009E9AA64382D2B442010000006F1CB04375A4D1420100000026DF8243263F + 67430300000056D9524391AE2C430A46696C6C2E436F6C6F720708636C615768 + 6974650748697454657374080A53697A652E57696474680500000000000000B0 + 02400B53697A652E4865696768740500000000000000B002401453697A652E50 + 6C6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E + 6500000F54466C6F6174416E696D6174696F6E00084475726174696F6E050000 + 000000CDCCCCFB3F0C50726F70657274794E616D6506074F7061636974790A53 + 7461727456616C756505000000000000000000000953746F7056616C75650500 + 00000000000080FF3F0754726967676572060E4973436865636B65643D747275 + 650E54726967676572496E7665727365060F4973436865636B65643D66616C73 + 650000000654476C79706800095374796C654E616D65060A676C797068737479 + 6C650C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F7005000000000000008000400D4D617267696E732E526967687405 + 00000000000000C000400E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F05416C69676E070552696768740A506F736974696F6E2E5805000000 + 00000000C001400A506F736974696F6E2E5905000000000000008000400A5369 + 7A652E576964746805000000000000008003400B53697A652E48656967687405 + 00000000000000B803401453697A652E506C6174666F726D44656661756C7408 + 00000654496D61676500095374796C654E616D6506066269746D61700E4D756C + 74695265734269746D61700E01000005416C69676E0708436F6E74656E74730C + 4D617267696E732E4C65667405000000000000008000400B4D617267696E732E + 546F7005000000000000008000400D4D617267696E732E526967687405000000 + 000000008000400E4D617267696E732E426F74746F6D05000000000000008000 + 400A53697A652E57696474680500000000000000A803400B53697A652E486569 + 6768740500000000000000B003401453697A652E506C6174666F726D44656661 + 756C740800000005545465787400095374796C654E616D650604746578740541 + 6C69676E07044C656674064C6F636B6564090748697454657374080C4D617267 + 696E732E4C65667405000000000000008002400D4D617267696E732E52696768 + 7405000000000000008002400A506F736974696F6E2E58050000000000000084 + 04400A53697A652E57696474680500000000000000C804400B53697A652E4865 + 696768740500000000000000D003401453697A652E506C6174666F726D446566 + 61756C7408165465787453657474696E67732E466F6E74436F6C6F720708636C + 615768697465165465787453657474696E67732E486F727A416C69676E07074C + 656164696E67000005545465787400095374796C654E616D65060873686F7274 + 63757405416C69676E07055269676874064C6F636B6564090748697454657374 + 080C4D617267696E732E4C6566740500000000000000C002400D4D617267696E + 732E52696768740500000000000000C001400A506F736974696F6E2E58050000 + 0000000000C000C00A53697A652E57696474680500000000000000C804400B53 + 697A652E4865696768740500000000000000D003401453697A652E506C617466 + 6F726D44656661756C7408165465787453657474696E67732E466F6E74436F6C + 6F720708636C615768697465165465787453657474696E67732E486F727A416C + 69676E07074C656164696E67000007544C61796F757400095374796C654E616D + 6506077375626D61726B05416C69676E070552696768740A506F736974696F6E + 2E580500000000000000D404400A53697A652E57696474680500000000000000 + A003400B53697A652E4865696768740500000000000000D003401453697A652E + 506C6174666F726D44656661756C7408000554506174680005416C69676E0706 + 43656E74657209446174612E506174680A340000000400000000000000000000 + 000000000001000000000000000000803F010000000000803F0000003F030000 + 0000000000000000000A46696C6C2E436F6C6F720708636C615768697465064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 0000E001400B53697A652E48656967687405000000000000008002401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6500000000545046300A5452656374616E676C6500095374796C654E61 + 6D65060C6D656E756261727374796C6505416C69676E070643656E7465720C43 + 6C69704368696C6472656E090946696C6C2E4B696E6407044E6F6E6507486974 + 54657374080A53697A652E57696474680500000000000000C804400B53697A65 + 2E4865696768740500000000000000C804401453697A652E506C6174666F726D + 44656661756C74080B5374726F6B652E4B696E6407044E6F6E65075669736962 + 6C650807585261646975730500000000000000C0004007595261646975730500 + 000000000000C00040000A5452656374616E676C650005416C69676E0706436C + 69656E740A46696C6C2E436F6C6F720709784646323032303230074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FFBF0B4D617267 + 696E732E546F70050000000000000080FFBF0D4D617267696E732E5269676874 + 050000000000000080FFBF0A53697A652E57696474680500000000000000D004 + 400B53697A652E4865696768740500000000000000CC04401453697A652E506C + 6174666F726D44656661756C74080C5374726F6B652E436F6C6F720709784646 + 31353135313507585261646975730500000000000000C0004007595261646975 + 730500000000000000C00040000007544C61796F757400095374796C654E616D + 650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E73 2E4C656674050000000000000080FF3F0B4D617267696E732E546F7005000000 0000000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F 0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A652E - 57696474680500000000000000C804400B53697A652E48656967687405000000 - 00000000C804401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F7264657202270005544C696E650005416C69676E07 - 03546F70084C696E65547970650703546F700C4D617267696E732E4C65667405 - 00000000000000C000400B4D617267696E732E546F7005000000000000008000 - 400D4D617267696E732E52696768740500000000000000C000400A506F736974 - 696F6E2E580500000000000000C000400A506F736974696F6E2E590500000000 - 0000008000400A53697A652E57696474680500000000000000B004400B53697A - 652E486569676874050000000000000080FF3F1453697A652E506C6174666F72 - 6D44656661756C74080C5374726F6B652E436F6C6F7207097846463135313531 - 35000000545046300A5452656374616E676C6500095374796C654E616D65060D - 6D656E75766965777374796C6505416C69676E070643656E7465720A46696C6C - 2E436F6C6F7207097846463230323032300A53697A652E576964746805000000 - 00000000C804400B53697A652E4865696768740500000000000000C804401453 - 697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F - 7207097846463135313531350756697369626C65080758526164697573050000 - 0000000000C0004007595261646975730500000000000000C00040000A545265 - 6374616E676C650005416C69676E0706436C69656E740A46696C6C2E436F6C6F - 7207097846463230323032300748697454657374080A53697A652E5769647468 - 0500000000000000C804400B53697A652E4865696768740500000000000000C8 - 04401453697A652E506C6174666F726D44656661756C74080C5374726F6B652E - 436F6C6F72070978464631353135313507585261646975730500000000000000 - C0004007595261646975730500000000000000C00040000D54536861646F7745 - 6666656374000844697374616E63650500000000000000C00040094469726563 - 74696F6E0500000000000000B4054008536F66746E6573730500000000000000 - 80FE3F074F706163697479050000000000000080FE3F0B536861646F77436F6C - 6F720708636C61426C61636B00000007544C61796F757400095374796C654E61 - 6D650607636F6E74656E7405416C69676E0706436C69656E740C4D617267696E - 732E4C656674050000000000000080FF3F0B4D617267696E732E546F70050000 - 000000000080FF3F0D4D617267696E732E5269676874050000000000000080FF - 3F0E4D617267696E732E426F74746F6D050000000000000080FF3F0A53697A65 - 2E57696474680500000000000000C004400B53697A652E486569676874050000 - 0000000000C004401453697A652E506C6174666F726D44656661756C74080000 - 005450463007544C61796F757400095374796C654E616D65061B747265657669 - 6577657870616E646572627574746F6E7374796C6505416C69676E070643656E - 7465720B4D617267696E732E546F70050000000000000080FF3F0A53697A652E - 57696474680500000000000000B003400B53697A652E48656967687405000000 - 00000000B003401453697A652E506C6174666F726D44656661756C7408075669 - 7369626C6508085461624F72646572023E0005545061746800095374796C654E - 616D650605506174683105416C69676E070643656E74657209446174612E5061 - 74680A3400000004000000000000000000C8420000C842010000000000964300 - 00C842010000000000484300009643030000000000C8420000C8420A46696C6C - 2E436F6C6F720708636C6157686974650748697454657374080D526F74617469 - 6F6E416E676C650500000000000000B405C00A53697A652E5769647468050000 - 0000000000A002400B53697A652E4865696768740500000000000000C0014014 - 53697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E - 6407044E6F6E65000F54466C6F6174416E696D6174696F6E00095374796C654E - 616D650614466C6F6174416E696D6174696F6E315374796C6508447572617469 - 6F6E05000000000000000000000D496E746572706F6C6174696F6E0708436972 - 63756C61720C50726F70657274794E616D65060D526F746174696F6E416E676C - 650A537461727456616C75650500000000000000B405C00953746F7056616C75 - 6505000000000000000000000754726967676572060F4973457870616E646564 - 3D747275650E54726967676572496E766572736506104973457870616E646564 - 3D66616C736500000000545046300A5452656374616E676C6500095374796C65 - 4E616D65061174726565766965776974656D7374796C6505416C69676E070643 - 656E7465720946696C6C2E4B696E6407044E6F6E650748697454657374080553 - 696465730B06426F74746F6D000A53697A652E57696474680500000000000000 - AE05400B53697A652E4865696768740500000000000000A004401453697A652E - 506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72070978 - 46463135313531350B5374726F6B652E4A6F696E0705526F756E640756697369 - 626C6508000C545370656564427574746F6E00095374796C654E616D65060662 - 7574746F6E05416C69676E07044C6566740A53697A652E576964746805000000 - 00000000A003400B53697A652E4865696768740500000000000000A004401453 - 697A652E506C6174666F726D44656661756C74080B5374796C654C6F6F6B7570 - 061B7472656576696577657870616E646572627574746F6E7374796C65000007 - 544C61796F75740005416C69676E0708436F6E74656E74730C4D617267696E73 - 2E4C6566740500000000000000A003400A53697A652E57696474680500000000 - 0000008605400B53697A652E4865696768740500000000000000A00440145369 - 7A652E506C6174666F726D44656661756C7408000954436865636B426F780009 - 5374796C654E616D650605636865636B05416C69676E07044C6566740843616E - 466F637573081244697361626C65466F637573456666656374090A53697A652E - 57696474680500000000000000A003400B53697A652E48656967687405000000 - 00000000A004401453697A652E506C6174666F726D44656661756C7408000006 - 54476C79706800095374796C654E616D65060A676C7970687374796C650C4D61 - 7267696E732E4C65667405000000000000008000400B4D617267696E732E546F - 70050000000000000080FF3F0D4D617267696E732E5269676874050000000000 - 00008000400E4D617267696E732E426F74746F6D050000000000000080FF3F05 - 416C69676E07044C6566740A506F736974696F6E2E580500000000000000B003 - 400A506F736974696F6E2E59050000000000000080FF3F0A53697A652E576964 - 746805000000000000008003400B53697A652E48656967687405000000000000 - 009804401453697A652E506C6174666F726D44656661756C7408000005545465 - 787400095374796C654E616D6506047465787405416C69676E0706436C69656E - 74064C6F636B6564090748697454657374080A53697A652E5769647468050000 - 0000000000BC04400B53697A652E4865696768740500000000000000A0044014 - 53697A652E506C6174666F726D44656661756C74080454657874060454657874 - 165465787453657474696E67732E466F6E74436F6C6F720708636C6157686974 - 65155465787453657474696E67732E576F726457726170081654657874536574 - 74696E67732E486F727A416C69676E07074C656164696E670000000A54526563 - 74616E676C650005416C69676E0708436F6E74656E74730946696C6C2E4B696E - 6407044E6F6E650748697454657374080E4D617267696E732E426F74746F6D05 - 0000000000000080FF3F0553696465730B044C656674000A53697A652E576964 - 74680500000000000000AE05400B53697A652E48656967687405000000000000 - 009C04401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F720709784646324138324532105374726F6B652E546869636B6E - 65737305000000000000008000400000005450463007544C61796F7574000953 - 74796C654E616D65060D74726565766965777374796C6505416C69676E070643 - 656E7465720A53697A652E57696474680500000000000000E106400B53697A65 - 2E48656967687405000000000000808107401453697A652E506C6174666F726D - 44656661756C74080756697369626C6508085461624F726465720240000C5442 - 727573684F626A65637400095374796C654E616D650618416C7465726E617469 - 6E67526F774261636B67726F756E640B42727573682E436F6C6F720709783046 - 46464646464600000A5452656374616E676C6500095374796C654E616D65060A - 6261636B67726F756E6405416C69676E0708436F6E74656E74730A46696C6C2E - 436F6C6F720709784646323032303230064C6F636B6564090748697454657374 - 080C50616464696E672E4C656674050000000000000080FF3F0D50616464696E - 672E5269676874050000000000000080FF3F0A53697A652E5769647468050000 - 0000000000E106400B53697A652E486569676874050000000000008081074014 - 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C - 6F7207097846463135313531350007544C61796F757400095374796C654E616D - 650607636F6E74656E7405416C69676E0706436C69656E740C436C6970436869 - 6C6472656E090B4D617267696E732E546F70050000000000000080FF3F0A5369 - 7A652E57696474680500000000000000CD06400B53697A652E48656967687405 - 00000000000000F006401453697A652E506C6174666F726D44656661756C7408 - 000A5452656374616E676C6500095374796C654E616D65060973656C65637469 - 6F6E0A46696C6C2E436F6C6F7207097846463241383245320748697454657374 - 080A53697A652E57696474680500000000000000C804400B53697A652E486569 - 6768740500000000000000C804401453697A652E506C6174666F726D44656661 - 756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500 - 000000000000C0004007595261646975730500000000000000C0004000000A54 - 52656374616E676C6500095374796C654E616D650610666F637573656473656C - 656374696F6E0A46696C6C2E436F6C6F72070978464632413832453207486974 - 54657374080A53697A652E57696474680500000000000000C804400B53697A65 - 2E4865696768740500000000000000C804401453697A652E506C6174666F726D - 44656661756C74080B5374726F6B652E4B696E6407044E6F6E650B5374726F6B - 652E446173680703446F7407585261646975730500000000000000C000400759 - 5261646975730500000000000000C000400000000A545363726F6C6C42617200 - 095374796C654E616D65060A767363726F6C6C62617205416C69676E07055269 - 6768740B536D616C6C4368616E676505000000000000000000000B4F7269656E - 746174696F6E0708566572746963616C0C4D617267696E732E4C656674050000 - 00000000008000400A506F736974696F6E2E580500000000000000D006400A53 - 697A652E576964746805000000000000008003400B53697A652E486569676874 - 0500000000000000F106401453697A652E506C6174666F726D44656661756C74 - 0800000A545363726F6C6C42617200095374796C654E616D65060A687363726F - 6C6C62617205416C69676E0706426F74746F6D0B536D616C6C4368616E676505 - 000000000000000000000B4F7269656E746174696F6E070A486F72697A6F6E74 - 616C0B4D617267696E732E546F7005000000000000008000400A506F73697469 - 6F6E2E58050000000000000080FF3F0A506F736974696F6E2E59050000000000 - 0000F306400A53697A652E57696474680500000000000000DF06400B53697A65 - 2E48656967687405000000000000008003401453697A652E506C6174666F726D - 44656661756C740800000F54536D616C6C5363726F6C6C42617200095374796C - 654E616D65060F76736D616C6C7363726F6C6C62617205416C69676E07055269 - 6768740B536D616C6C4368616E676505000000000000000000000B4F7269656E - 746174696F6E0708566572746963616C0C4D617267696E732E4C656674050000 - 00000000008000400A506F736974696F6E2E580500000000000000C605400A50 - 6F736974696F6E2E5905000000000000008000400A53697A652E576964746805 - 000000000000008002400B53697A652E48656967687405000000000000008002 - 401453697A652E506C6174666F726D44656661756C74080756697369626C6508 - 00000F54536D616C6C5363726F6C6C42617200095374796C654E616D65060F68 - 736D616C6C7363726F6C6C62617205416C69676E0706426F74746F6D0B536D61 - 6C6C4368616E676505000000000000000000000B4F7269656E746174696F6E07 - 0A486F72697A6F6E74616C0B4D617267696E732E546F70050000000000000080 - 00400A506F736974696F6E2E5805000000000000008000400A506F736974696F - 6E2E590500000000000000E205400A53697A652E576964746805000000000000 - 009606400B53697A652E48656967687405000000000000008002401453697A65 - 2E506C6174666F726D44656661756C74080756697369626C6508000000005450 - 463007544C61796F757400095374796C654E616D65061670726F677265737362 - 617266696E6973687374796C6505416C69676E070643656E7465720A53697A65 - 2E576964746805000000000033338505400B53697A652E486569676874050000 - 0000009999E104401453697A652E506C6174666F726D44656661756C74080854 - 61624F72646572023F000A5452656374616E676C6500095374796C654E616D65 - 060668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F - 6C6F720709784646323032303230064C6F636B6564090748697454657374080A - 53697A652E576964746805000000000033338505400B53697A652E4865696768 - 740500000000009999E104401453697A652E506C6174666F726D44656661756C + 57696474680500000000000000C004400B53697A652E48656967687405000000 + 00000000C004401453697A652E506C6174666F726D44656661756C7408000000 + 5450463007544C61796F757400095374796C654E616D65060D6D656E75697465 + 6D7374796C6505416C69676E070643656E7465720C4D617267696E732E4C6566 + 74050000000000000080FF3F0B4D617267696E732E546F700500000000000000 + 80FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D6172 + 67696E732E426F74746F6D050000000000000080FF3F0A53697A652E57696474 + 6805000000000000009205400B53697A652E4865696768740500000000000000 + D003401453697A652E506C6174666F726D44656661756C74080756697369626C + 6508085461624F726465720226000A5452656374616E676C650005416C69676E + 0708436F6E74656E74730A46696C6C2E436F6C6F720709784646324138324532 + 074869745465737408074F70616369747905000000000017B7D1F13F0A53697A + 652E576964746805000000000000009205400B53697A652E4865696768740500 + 000000000000D003401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 + 6F6E00084475726174696F6E05000000000018B7D1F23F0C50726F7065727479 + 4E616D6506074F7061636974790A537461727456616C75650500000000000000 + 0000000953746F7056616C7565050000000000000080FF3F0754726967676572 + 060F497353656C65637465643D747275650E54726967676572496E7665727365 + 0610497353656C65637465643D66616C73650000000A5452656374616E676C65 + 00095374796C654E616D65060A6261636B67726F756E6405416C69676E070843 + 6F6E74656E74730A46696C6C2E436F6C6F720709784646324138324532074869 + 745465737408074F70616369747905000000000000000000000A53697A652E57 + 6964746805000000000000009205400B53697A652E4865696768740500000000 + 000000D003401453697A652E506C6174666F726D44656661756C74080B537472 + 6F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D6174696F6E00 + 084475726174696F6E05000000000018B7D1F23F07496E7665727365090C5072 + 6F70657274794E616D6506074F7061636974790A537461727456616C75650500 + 0000000000000000000953746F7056616C7565050000000000000080FF3F0754 + 726967676572061049734D6F7573654F7665723D747275650E54726967676572 + 496E7665727365061149734D6F7573654F7665723D66616C736500000007544C + 61796F757400095374796C654E616D650605676C79706805416C69676E07044C + 6566740A53697A652E57696474680500000000000000C803400B53697A652E48 + 65696768740500000000000000D003401453697A652E506C6174666F726D4465 + 6661756C74080007544C61796F757400095374796C654E616D65060963686563 + 6B6D61726B05416C69676E0708436F6E74656E7473074F706163697479050000 + 0000006F1283F53F0A53697A652E57696474680500000000000000C803400B53 + 697A652E4865696768740500000000000000D003401453697A652E506C617466 + 6F726D44656661756C7408000554506174680005416C69676E070643656E7465 + 7209446174612E506174680A58000000070000000000000056D9524391AE2C43 + 010000009276664365021643010000009F3983432B7C3C43010000009E9AA643 + 82D2B442010000006F1CB04375A4D1420100000026DF8243263F674303000000 + 56D9524391AE2C430A46696C6C2E436F6C6F720708636C615768697465074869 + 7454657374080A53697A652E57696474680500000000000000B002400B53697A + 652E4865696768740500000000000000B002401453697A652E506C6174666F72 + 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000F5446 + 6C6F6174416E696D6174696F6E00084475726174696F6E050000000000CDCCCC + FB3F0C50726F70657274794E616D6506074F7061636974790A53746172745661 + 6C756505000000000000000000000953746F7056616C75650500000000000000 + 80FF3F0754726967676572060E4973436865636B65643D747275650E54726967 + 676572496E7665727365060F4973436865636B65643D66616C73650000000654 + 476C79706800095374796C654E616D65060A676C7970687374796C650C4D6172 + 67696E732E4C656674050000000000000080FF3F0B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 00C000400E4D617267696E732E426F74746F6D050000000000000080FF3F0541 + 6C69676E07044C6566740A506F736974696F6E2E58050000000000000080FF3F + 0A506F736974696F6E2E5905000000000000008000400A53697A652E57696474 + 6805000000000000008003400B53697A652E4865696768740500000000000000 + B803401453697A652E506C6174666F726D44656661756C740800000654496D61 + 676500095374796C654E616D6506066269746D61700E4D756C74695265734269 + 746D61700E01000005416C69676E07044C6566740C4D617267696E732E4C6566 + 7405000000000000008000400B4D617267696E732E546F700500000000000000 + 8000400D4D617267696E732E526967687405000000000000008000400E4D6172 + 67696E732E426F74746F6D05000000000000008000400A506F736974696F6E2E + 5805000000000000008000400A506F736974696F6E2E59050000000000000080 + 00400A53697A652E57696474680500000000000000A803400B53697A652E4865 + 696768740500000000000000B003401453697A652E506C6174666F726D446566 + 61756C740800000005545465787400095374796C654E616D6506047465787405 + 416C69676E07044C656674064C6F636B6564090748697454657374080C4D6172 + 67696E732E4C65667405000000000000008002400D4D617267696E732E526967 + 687405000000000000008002400A506F736974696F6E2E580500000000000000 + 8404400A53697A652E57696474680500000000000000C804400B53697A652E48 + 65696768740500000000000000D003401453697A652E506C6174666F726D4465 + 6661756C7408165465787453657474696E67732E466F6E74436F6C6F72070863 + 6C615768697465165465787453657474696E67732E486F727A416C69676E0707 + 4C656164696E67000005545465787400095374796C654E616D65060873686F72 + 7463757405416C69676E07055269676874064C6F636B65640907486974546573 + 74080C4D617267696E732E4C6566740500000000000000C002400D4D61726769 + 6E732E52696768740500000000000000C001400A506F736974696F6E2E580500 + 000000000000C000C00A53697A652E57696474680500000000000000C804400B + 53697A652E4865696768740500000000000000D003401453697A652E506C6174 + 666F726D44656661756C7408165465787453657474696E67732E466F6E74436F + 6C6F720708636C615768697465165465787453657474696E67732E486F727A41 + 6C69676E07074C656164696E67000007544C61796F757400095374796C654E61 + 6D6506077375626D61726B05416C69676E070552696768740A506F736974696F + 6E2E580500000000000000D404400A53697A652E576964746805000000000000 + 00A003400B53697A652E4865696768740500000000000000D003401453697A65 + 2E506C6174666F726D44656661756C7408000554506174680005416C69676E07 + 0643656E74657209446174612E506174680A3400000004000000000000000000 + 00000000000001000000000000000000803F010000000000803F0000003F0300 + 000000000000000000000A46696C6C2E436F6C6F720708636C61576869746506 + 4C6F636B6564090748697454657374080A53697A652E57696474680500000000 + 000000E001400B53697A652E4865696768740500000000000000800240145369 + 7A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E6407 + 044E6F6E65000000005450463007544C61796F757400095374796C654E616D65 + 06126D656E75736570617261746F727374796C6505416C69676E070643656E74 + 65720C4D617267696E732E4C656674050000000000000080FF3F0B4D61726769 + 6E732E546F70050000000000000080FF3F0D4D617267696E732E526967687405 + 0000000000000080FF3F0E4D617267696E732E426F74746F6D05000000000000 + 0080FF3F0A53697A652E57696474680500000000000000C804400B53697A652E + 4865696768740500000000000000C804401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F7264657202270005544C69 + 6E650005416C69676E0703546F70084C696E65547970650703546F700C4D6172 + 67696E732E4C6566740500000000000000C000400B4D617267696E732E546F70 + 05000000000000008000400D4D617267696E732E526967687405000000000000 + 00C000400A506F736974696F6E2E580500000000000000C000400A506F736974 + 696F6E2E5905000000000000008000400A53697A652E57696474680500000000 + 000000B004400B53697A652E486569676874050000000000000080FF3F145369 + 7A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C6F72 + 0709784646313531353135000000545046300A5452656374616E676C65000953 + 74796C654E616D65060D6D656E75766965777374796C6505416C69676E070643 + 656E7465720A46696C6C2E436F6C6F7207097846463230323032300A53697A65 + 2E57696474680500000000000000C804400B53697A652E486569676874050000 + 0000000000C804401453697A652E506C6174666F726D44656661756C74080C53 + 74726F6B652E436F6C6F7207097846463135313531350756697369626C650807 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C00040000A5452656374616E676C650005416C69676E0706436C69656E74 + 0A46696C6C2E436F6C6F7207097846463230323032300748697454657374080A + 53697A652E57696474680500000000000000C804400B53697A652E4865696768 + 740500000000000000C804401453697A652E506C6174666F726D44656661756C 74080C5374726F6B652E436F6C6F720709784646313531353135075852616469 75730500000000000000C0004007595261646975730500000000000000C00040 - 000A5452656374616E676C6500095374796C654E616D65060A68696E64696361 - 746F7205416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632 - 4345323434064C6F636B6564090748697454657374080C4D617267696E732E4C - 656674050000000000000080FF3F0B4D617267696E732E546F70050000000000 - 000080FF3F0D4D617267696E732E5269676874050000000000000080FF3F0E4D - 617267696E732E426F74746F6D050000000000000080FF3F0A506F736974696F - 6E2E58050000000000000080FF3F0A506F736974696F6E2E5905000000000000 - 0080FF3F0A53697A652E57696474680500000000000000C804400B53697A652E - 4865696768740500000000009999D904401453697A652E506C6174666F726D44 - 656661756C74080B5374726F6B652E4B696E6407044E6F6E6507585261646975 - 730500000000000000C0004007595261646975730500000000000000C0004000 - 00000A5452656374616E676C6500095374796C654E616D65060676747261636B - 05416C69676E0708436F6E74656E74730A46696C6C2E436F6C6F720709784646 - 323032303230064C6F636B6564090748697454657374080A53697A652E576964 - 746805000000000033338505400B53697A652E48656967687405000000000099 - 99E104401453697A652E506C6174666F726D44656661756C74080C5374726F6B - 652E436F6C6F7207097846463135313531350758526164697573050000000000 - 0000C0004007595261646975730500000000000000C00040000A545265637461 - 6E676C6500095374796C654E616D65060A76696E64696361746F7205416C6967 - 6E0706426F74746F6D0A46696C6C2E436F6C6F72070978464632434532343406 - 4C6F636B6564090748697454657374080C4D617267696E732E4C656674050000 - 000000000080FF3F0B4D617267696E732E546F70050000000000000080FF3F0D - 4D617267696E732E5269676874050000000000000080FF3F0E4D617267696E73 - 2E426F74746F6D050000000000000080FF3F0A506F736974696F6E2E58050000 - 000000000080FF3F0A506F736974696F6E2E5905000000000099998904400A53 - 697A652E576964746805000000000033338105400B53697A652E486569676874 - 0500000000000000A803401453697A652E506C6174666F726D44656661756C74 - 080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500000000 - 000000C0004007595261646975730500000000000000C0004000000000545046 - 3007544C61796F757400095374796C654E616D65061A70726F67726573736261 - 726D696E6966696E6973687374796C6505416C69676E070643656E7465720A53 + 000D54536861646F77456666656374000844697374616E636505000000000000 + 00C0004009446972656374696F6E0500000000000000B4054008536F66746E65 + 7373050000000000000080FE3F074F706163697479050000000000000080FE3F + 0B536861646F77436F6C6F720708636C61426C61636B00000007544C61796F75 + 7400095374796C654E616D650607636F6E74656E7405416C69676E0706436C69 + 656E740C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A53697A652E57696474680500000000000000C004400B53697A65 + 2E4865696768740500000000000000C004401453697A652E506C6174666F726D + 44656661756C74080000005450463007544C61796F757400095374796C654E61 + 6D65061B7472656576696577657870616E646572627574746F6E7374796C6505 + 416C69676E070643656E7465720B4D617267696E732E546F7005000000000000 + 0080FF3F0A53697A652E57696474680500000000000000B003400B53697A652E + 4865696768740500000000000000B003401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F72646572023C0005545061 + 746800095374796C654E616D650605506174683105416C69676E070643656E74 + 657209446174612E506174680A3400000004000000000000000000C8420000C8 + 4201000000000096430000C842010000000000484300009643030000000000C8 + 420000C8420A46696C6C2E436F6C6F720708636C615768697465074869745465 + 7374080D526F746174696F6E416E676C650500000000000000B405C00A53697A + 652E57696474680500000000000000A002400B53697A652E4865696768740500 + 000000000000C001401453697A652E506C6174666F726D44656661756C74080B + 5374726F6B652E4B696E6407044E6F6E65000F54466C6F6174416E696D617469 + 6F6E00095374796C654E616D650614466C6F6174416E696D6174696F6E315374 + 796C65084475726174696F6E05000000000000000000000D496E746572706F6C + 6174696F6E070843697263756C61720C50726F70657274794E616D65060D526F + 746174696F6E416E676C650A537461727456616C75650500000000000000B405 + C00953746F7056616C756505000000000000000000000754726967676572060F + 4973457870616E6465643D747275650E54726967676572496E76657273650610 + 4973457870616E6465643D66616C736500000000545046300A5452656374616E + 676C6500095374796C654E616D65061174726565766965776974656D7374796C + 6505416C69676E070643656E7465720946696C6C2E4B696E6407044E6F6E6507 + 48697454657374080553696465730B06426F74746F6D000A53697A652E576964 + 74680500000000000000AE05400B53697A652E48656967687405000000000000 + 00A004401453697A652E506C6174666F726D44656661756C74080C5374726F6B + 652E436F6C6F7207097846463135313531350B5374726F6B652E4A6F696E0705 + 526F756E640756697369626C6508000C545370656564427574746F6E00095374 + 796C654E616D650606627574746F6E05416C69676E07044C6566740A53697A65 + 2E57696474680500000000000000A003400B53697A652E486569676874050000 + 0000000000A004401453697A652E506C6174666F726D44656661756C74080B53 + 74796C654C6F6F6B7570061B7472656576696577657870616E64657262757474 + 6F6E7374796C65000007544C61796F75740005416C69676E0708436F6E74656E + 74730C4D617267696E732E4C6566740500000000000000A003400A53697A652E + 576964746805000000000000008605400B53697A652E48656967687405000000 + 00000000A004401453697A652E506C6174666F726D44656661756C7408000954 + 436865636B426F7800095374796C654E616D650605636865636B05416C69676E + 07044C6566740843616E466F637573081244697361626C65466F637573456666 + 656374090A53697A652E57696474680500000000000000A003400B53697A652E + 4865696768740500000000000000A004401453697A652E506C6174666F726D44 + 656661756C740800000654476C79706800095374796C654E616D65060A676C79 + 70687374796C650C4D617267696E732E4C65667405000000000000008000400B + 4D617267696E732E546F70050000000000000080FF3F0D4D617267696E732E52 + 6967687405000000000000008000400E4D617267696E732E426F74746F6D0500 + 00000000000080FF3F05416C69676E07044C6566740A506F736974696F6E2E58 + 0500000000000000B003400A506F736974696F6E2E59050000000000000080FF + 3F0A53697A652E576964746805000000000000008003400B53697A652E486569 + 67687405000000000000009804401453697A652E506C6174666F726D44656661 + 756C7408000005545465787400095374796C654E616D6506047465787405416C + 69676E0706436C69656E74064C6F636B6564090748697454657374080A53697A + 652E57696474680500000000000000BC04400B53697A652E4865696768740500 + 000000000000A004401453697A652E506C6174666F726D44656661756C740804 + 54657874060454657874165465787453657474696E67732E466F6E74436F6C6F + 720708636C615768697465155465787453657474696E67732E576F7264577261 + 7008165465787453657474696E67732E486F727A416C69676E07074C65616469 + 6E670000000A5452656374616E676C650005416C69676E0708436F6E74656E74 + 730946696C6C2E4B696E6407044E6F6E650748697454657374080E4D61726769 + 6E732E426F74746F6D050000000000000080FF3F0553696465730B044C656674 + 000A53697A652E57696474680500000000000000AE05400B53697A652E486569 + 67687405000000000000009C04401453697A652E506C6174666F726D44656661 + 756C74080C5374726F6B652E436F6C6F72070978464632413832453210537472 + 6F6B652E546869636B6E65737305000000000000008000400000005450463007 + 544C61796F757400095374796C654E616D65060D74726565766965777374796C + 6505416C69676E070643656E7465720A53697A652E5769647468050000000000 + 0000E106400B53697A652E48656967687405000000000000808107401453697A + 652E506C6174666F726D44656661756C74080756697369626C6508085461624F + 726465720241000C5442727573684F626A65637400095374796C654E616D6506 + 18416C7465726E6174696E67526F774261636B67726F756E640B42727573682E + 436F6C6F72070978304646464646464600000A5452656374616E676C65000953 + 74796C654E616D65060A6261636B67726F756E6405416C69676E0708436F6E74 + 656E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B65 + 64090748697454657374080C50616464696E672E4C6566740500000000000000 + 80FF3F0D50616464696E672E5269676874050000000000000080FF3F0A53697A + 652E57696474680500000000000000E106400B53697A652E4865696768740500 + 0000000000808107401453697A652E506C6174666F726D44656661756C74080C + 5374726F6B652E436F6C6F7207097846463135313531350007544C61796F7574 + 00095374796C654E616D650607636F6E74656E7405416C69676E0706436C6965 + 6E740C436C69704368696C6472656E090B4D617267696E732E546F7005000000 + 0000000080FF3F0A53697A652E57696474680500000000000000CD06400B5369 + 7A652E4865696768740500000000000000F006401453697A652E506C6174666F + 726D44656661756C7408000A5452656374616E676C6500095374796C654E616D + 65060973656C656374696F6E0A46696C6C2E436F6C6F72070978464632413832 + 45320748697454657374080A53697A652E57696474680500000000000000C804 + 400B53697A652E4865696768740500000000000000C804401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 07585261646975730500000000000000C0004007595261646975730500000000 + 000000C0004000000A5452656374616E676C6500095374796C654E616D650610 + 666F637573656473656C656374696F6E0A46696C6C2E436F6C6F720709784646 + 3241383245320748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000000000C804401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E650B5374726F6B652E446173680703446F740758526164697573050000 + 0000000000C0004007595261646975730500000000000000C000400000000A54 + 5363726F6C6C42617200095374796C654E616D65060A767363726F6C6C626172 + 05416C69676E070552696768740B536D616C6C4368616E676505000000000000 + 000000000B4F7269656E746174696F6E0708566572746963616C0C4D61726769 + 6E732E4C65667405000000000000008000400A506F736974696F6E2E58050000 + 0000000000D006400A53697A652E576964746805000000000000008003400B53 + 697A652E4865696768740500000000000000F106401453697A652E506C617466 + 6F726D44656661756C740800000A545363726F6C6C42617200095374796C654E + 616D65060A687363726F6C6C62617205416C69676E0706426F74746F6D0B536D + 616C6C4368616E676505000000000000000000000B4F7269656E746174696F6E + 070A486F72697A6F6E74616C0B4D617267696E732E546F700500000000000000 + 8000400A506F736974696F6E2E58050000000000000080FF3F0A506F73697469 + 6F6E2E590500000000000000F306400A53697A652E5769647468050000000000 + 0000DF06400B53697A652E48656967687405000000000000008003401453697A + 652E506C6174666F726D44656661756C740800000F54536D616C6C5363726F6C + 6C42617200095374796C654E616D65060F76736D616C6C7363726F6C6C626172 + 05416C69676E070552696768740B536D616C6C4368616E676505000000000000 + 000000000B4F7269656E746174696F6E0708566572746963616C0C4D61726769 + 6E732E4C65667405000000000000008000400A506F736974696F6E2E58050000 + 0000000000C605400A506F736974696F6E2E5905000000000000008000400A53 + 697A652E576964746805000000000000008002400B53697A652E486569676874 + 05000000000000008002401453697A652E506C6174666F726D44656661756C74 + 080756697369626C650800000F54536D616C6C5363726F6C6C42617200095374 + 796C654E616D65060F68736D616C6C7363726F6C6C62617205416C69676E0706 + 426F74746F6D0B536D616C6C4368616E676505000000000000000000000B4F72 + 69656E746174696F6E070A486F72697A6F6E74616C0B4D617267696E732E546F + 7005000000000000008000400A506F736974696F6E2E58050000000000000080 + 00400A506F736974696F6E2E590500000000000000E205400A53697A652E5769 + 64746805000000000000009606400B53697A652E486569676874050000000000 + 00008002401453697A652E506C6174666F726D44656661756C74080756697369 + 626C6508000000005450463007544C61796F757400095374796C654E616D6506 + 1670726F677265737362617266696E6973687374796C6505416C69676E070643 + 656E7465720A53697A652E576964746805000000000033338505400B53697A65 + 2E4865696768740500000000009999E104401453697A652E506C6174666F726D + 44656661756C74080756697369626C6508085461624F726465720240000A5452 + 656374616E676C6500095374796C654E616D65060668747261636B05416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 + 30064C6F636B6564090748697454657374080A53697A652E5769647468050000 + 00000033338505400B53697A652E4865696768740500000000009999E1044014 + 53697A652E506C6174666F726D44656661756C74080C5374726F6B652E436F6C + 6F72070978464631353135313507585261646975730500000000000000C00040 + 07595261646975730500000000000000C00040000A5452656374616E676C6500 + 095374796C654E616D65060A68696E64696361746F7205416C69676E07044C65 + 66740A46696C6C2E436F6C6F720709784646324345323434064C6F636B656409 + 0748697454657374080C4D617267696E732E4C656674050000000000000080FF + 3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E73 + 2E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F6D + 050000000000000080FF3F0A506F736974696F6E2E58050000000000000080FF + 3F0A506F736974696F6E2E59050000000000000080FF3F0A53697A652E576964 + 74680500000000000000C804400B53697A652E48656967687405000000000099 + 99D904401453697A652E506C6174666F726D44656661756C74080B5374726F6B + 652E4B696E6407044E6F6E6507585261646975730500000000000000C0004007 + 595261646975730500000000000000C000400000000A5452656374616E676C65 + 00095374796C654E616D65060676747261636B05416C69676E0708436F6E7465 + 6E74730A46696C6C2E436F6C6F720709784646323032303230064C6F636B6564 + 090748697454657374080A53697A652E57696474680500000000003333850540 + 0B53697A652E4865696768740500000000009999E104401453697A652E506C61 + 74666F726D44656661756C74080C5374726F6B652E436F6C6F72070978464631 + 353135313507585261646975730500000000000000C000400759526164697573 + 0500000000000000C00040000A5452656374616E676C6500095374796C654E61 + 6D65060A76696E64696361746F7205416C69676E0706426F74746F6D0A46696C + 6C2E436F6C6F720709784646324345323434064C6F636B656409074869745465 + 7374080C4D617267696E732E4C656674050000000000000080FF3F0B4D617267 + 696E732E546F70050000000000000080FF3F0D4D617267696E732E5269676874 + 050000000000000080FF3F0E4D617267696E732E426F74746F6D050000000000 + 000080FF3F0A506F736974696F6E2E58050000000000000080FF3F0A506F7369 + 74696F6E2E5905000000000099998904400A53697A652E576964746805000000 + 000033338105400B53697A652E4865696768740500000000000000A803401453 + 697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E64 + 07044E6F6E6507585261646975730500000000000000C0004007595261646975 + 730500000000000000C00040000000005450463007544C61796F757400095374 + 796C654E616D65061A70726F67726573736261726D696E6966696E6973687374 + 796C6505416C69676E070643656E7465720A53697A652E576964746805000000 + 000033338505400B53697A652E4865696768740500000000009999E104401453 + 697A652E506C6174666F726D44656661756C74080756697369626C6508085461 + 624F72646572024B000A5452656374616E676C6500095374796C654E616D6506 + 0668747261636B05416C69676E0708436F6E74656E74730A46696C6C2E436F6C + 6F720709784646343034303430064C6F636B6564090748697454657374080A53 697A652E576964746805000000000033338505400B53697A652E486569676874 0500000000009999E104401453697A652E506C6174666F726D44656661756C74 - 08085461624F72646572024A000A5452656374616E676C6500095374796C654E - 616D65060668747261636B05416C69676E0708436F6E74656E74730A46696C6C + 080B5374726F6B652E4B696E6407044E6F6E6507585261646975730500000000 + 00000080004007595261646975730500000000000000800040000A5452656374 + 616E676C6500095374796C654E616D65060A68696E64696361746F7205416C69 + 676E07044C6566740A46696C6C2E436F6C6F720709784646324345323434064C + 6F636B6564090748697454657374080A53697A652E5769647468050000000000 + 0000C804400B53697A652E4865696768740500000000009999E104401453697A + 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 + 4E6F6E6507585261646975730500000000000000800040075952616469757305 + 000000000000008000400000000A5452656374616E676C6500095374796C654E + 616D65060676747261636B05416C69676E0708436F6E74656E74730A46696C6C 2E436F6C6F720709784646343034303430064C6F636B65640907486974546573 74080A53697A652E576964746805000000000033338505400B53697A652E4865 696768740500000000009999E104401453697A652E506C6174666F726D446566 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 0000000000000080004007595261646975730500000000000000800040000A54 - 52656374616E676C6500095374796C654E616D65060A68696E64696361746F72 - 05416C69676E07044C6566740A46696C6C2E436F6C6F72070978464632434532 - 3434064C6F636B6564090748697454657374080A53697A652E57696474680500 - 000000000000C804400B53697A652E4865696768740500000000009999E10440 - 1453697A652E506C6174666F726D44656661756C74080B5374726F6B652E4B69 - 6E6407044E6F6E65075852616469757305000000000000008000400759526164 - 69757305000000000000008000400000000A5452656374616E676C6500095374 - 796C654E616D65060676747261636B05416C69676E0708436F6E74656E74730A - 46696C6C2E436F6C6F720709784646343034303430064C6F636B656409074869 - 7454657374080A53697A652E576964746805000000000033338505400B53697A - 652E4865696768740500000000009999E104401453697A652E506C6174666F72 - 6D44656661756C74080B5374726F6B652E4B696E6407044E6F6E650758526164 - 6975730500000000000000800040075952616469757305000000000000008000 - 40000A5452656374616E676C6500095374796C654E616D65060A76696E646963 - 61746F7205416C69676E0706426F74746F6D0A46696C6C2E436F6C6F72070978 - 4646324345323434064C6F636B6564090748697454657374080A506F73697469 - 6F6E2E5905000000000099998D04400A53697A652E5769647468050000000000 - 33338505400B53697A652E4865696768740500000000000000A803401453697A - 652E506C6174666F726D44656661756C74080B5374726F6B652E4B696E640704 - 4E6F6E6507585261646975730500000000000000800040075952616469757305 - 0000000000000080004000000000} + 52656374616E676C6500095374796C654E616D65060A76696E64696361746F72 + 05416C69676E0706426F74746F6D0A46696C6C2E436F6C6F7207097846463243 + 45323434064C6F636B6564090748697454657374080A506F736974696F6E2E59 + 05000000000099998D04400A53697A652E576964746805000000000033338505 + 400B53697A652E4865696768740500000000000000A803401453697A652E506C + 6174666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E65 + 0758526164697573050000000000000080004007595261646975730500000000 + 000000800040000000005450463007544C61796F757400095374796C654E616D + 6506136172726F77646F776E746F6F6C627574746F6E05416C69676E07064365 + 6E7465720A53697A652E57696474680500000000000000C805400B53697A652E + 4865696768740500000000000000C803401453697A652E506C6174666F726D44 + 656661756C74080756697369626C6508085461624F726465720201000A545265 + 6374616E676C6500095374796C654E616D65060A6261636B67726F756E640541 + 6C69676E0706436C69656E740C436C69704368696C6472656E090A436C697050 + 6172656E740907436F726E6572730B07546F704C6566740A426F74746F6D4C65 + 6674000A46696C6C2E436F6C6F72070978303032303230323007486974546573 + 74080A53697A652E57696474680500000000000000C805400B53697A652E4865 + 696768740500000000000000C803401453697A652E506C6174666F726D446566 + 61756C74080B5374726F6B652E4B696E6407044E6F6E65075852616469757305 + 00000000000000C0004007595261646975730500000000000000C00040000F54 + 436F6C6F72416E696D6174696F6E00095374796C654E616D650615627574746F + 6E436F6C6F72416E696D6174696F6E31084475726174696F6E050000000000CD + CCCCFB3F0C50726F70657274794E616D65060A46696C6C2E436F6C6F720A5374 + 61727456616C756507097830303230323032300953746F7056616C7565070978 + 46463430343034300754726967676572063049734D6F7573654F7665723D7472 + 75653B4973507265737365643D66616C73653B4973466F63757365643D66616C + 73650E54726967676572496E7665727365063149734D6F7573654F7665723D66 + 616C73653B4973507265737365643D66616C73653B4973466F63757365643D66 + 616C736500000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650615627574746F6E436F6C6F72416E696D6174696F6E32084475726174696F + 6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E + 436F6C6F720A537461727456616C756507097846463430343034300953746F70 + 56616C756507097846463137353739430754726967676572062F497350726573 + 7365643D747275653B49734D6F7573654F7665723D747275653B4973466F6375 + 7365643D66616C736500000F54436F6C6F72416E696D6174696F6E0009537479 + 6C654E616D650615627574746F6E436F6C6F72416E696D6174696F6E33084475 + 726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D65060A + 46696C6C2E436F6C6F720A537461727456616C75650709784646324138324532 + 0953746F7056616C756507097846463137353739430754726967676572062E49 + 73507265737365643D747275653B49734D6F7573654F7665723D747275653B49 + 73466F63757365643D747275650E54726967676572496E7665727365062F4973 + 507265737365643D66616C73653B49734D6F7573654F7665723D747275653B49 + 73466F63757365643D7472756500000005545061746800095374796C654E616D + 6506047061746805416C69676E070643656E74657209446174612E506174680A + 3400000004000000000000000000C8420000C84201000000000096430000C842 + 010000000000484300009643030000000000C8420000C8420A46696C6C2E436F + 6C6F720708636C6157686974650748697454657374080A53697A652E57696474 + 680500000000000000A002400B53697A652E4865696768740500000000000000 + C001401453697A652E506C6174666F726D44656661756C74080B5374726F6B65 + 2E4B696E6407044E6F6E65000005545465787400095374796C654E616D650604 + 7465787405416C69676E0706436C69656E740748697454657374080A53697A65 + 2E57696474680500000000000000C805400B53697A652E486569676874050000 + 0000000000C803401453697A652E506C6174666F726D44656661756C74080454 + 657874060454657874165465787453657474696E67732E466F6E74436F6C6F72 + 0708636C6157686974650756697369626C65080000005450463007544C61796F + 757400095374796C654E616D65060D706F707570626F787374796C6505416C69 + 676E070643656E7465720A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C7408085461624F726465720231000A545265637461 + 6E676C6500095374796C654E616D65060A6261636B67726F756E6405416C6967 + 6E0708436F6E74656E74730A46696C6C2E436F6C6F7207097846463230323032 + 300748697454657374080A53697A652E57696474680500000000000000C80540 + 0B53697A652E4865696768740500000000000000C803401453697A652E506C61 + 74666F726D44656661756C74080B5374726F6B652E4B696E6407044E6F6E6507 + 585261646975730500000000000000C000400759526164697573050000000000 + 0000C00040000F54436F6C6F72416E696D6174696F6E00095374796C654E616D + 650614436F6C6F72416E696D6174696F6E315374796C65084475726174696F6E + 050000000000CDCCCCFB3F0C50726F70657274794E616D65060A46696C6C2E43 + 6F6C6F720A537461727456616C756507097846463230323032300953746F7056 + 616C756507097846463430343034300754726967676572062049734D6F757365 + 4F7665723D747275653B4973507265737365643D66616C73650E547269676765 + 72496E7665727365062149734D6F7573654F7665723D66616C73653B49735072 + 65737365643D66616C736500000F54436F6C6F72416E696D6174696F6E000953 + 74796C654E616D650614436F6C6F72416E696D6174696F6E325374796C650844 + 75726174696F6E050000000000CDCCCCFB3F0C50726F70657274794E616D6506 + 0A46696C6C2E436F6C6F720A537461727456616C756507097846463430343034 + 300953746F7056616C7565070978464632413832453207547269676765720620 + 49734D6F7573654F7665723D747275653B4973507265737365643D747275653B + 0E54726967676572496E7665727365062049734D6F7573654F7665723D747275 + 653B4973507265737365643D66616C736500000007544C61796F75740005416C + 69676E070846697452696768740A506F736974696F6E2E580500000000000000 + 9605400A53697A652E57696474680500000000000000C803400B53697A652E48 + 65696768740500000000000000C803401453697A652E506C6174666F726D4465 + 6661756C7408000554506174680005416C69676E070643656E74657209446174 + 612E506174680A400000000500000000000000000000000000803F0100000000 + 00803F0000803F010000000000003F0000000001000000000000000000803F03 + 00000000000000000000000A46696C6C2E436F6C6F720708636C615768697465 + 0748697454657374080B4D617267696E732E546F700500000000000000E001C0 + 0A53697A652E576964746805000000000000008002400B53697A652E48656967 + 687405000000000000008001401453697A652E506C6174666F726D4465666175 + 6C74080B5374726F6B652E4B696E6407044E6F6E650000055450617468000541 + 6C69676E070643656E74657209446174612E506174680A340000000400000000 + 0000000000000000000000010000000000803F00000000010000000000003F00 + 00803F0300000000000000000000000A46696C6C2E436F6C6F720708636C6157 + 686974650748697454657374080B4D617267696E732E546F7005000000000000 + 00C001400A53697A652E576964746805000000000000008002400B53697A652E + 48656967687405000000000000008001401453697A652E506C6174666F726D44 + 656661756C74080B5374726F6B652E4B696E6407044E6F6E6500000005545465 + 787400095374796C654E616D6506047465787405416C69676E0706436C69656E + 740748697454657374080C4D617267696E732E4C656674050000000000000080 + FF3F0B4D617267696E732E546F70050000000000000080FF3F0D4D617267696E + 732E5269676874050000000000000080FF3F0E4D617267696E732E426F74746F + 6D050000000000000080FF3F0A53697A652E5769647468050000000000000092 + 05400B53697A652E4865696768740500000000000000B803401453697A652E50 + 6C6174666F726D44656661756C74080454657874060454657874165465787453 + 657474696E67732E466F6E74436F6C6F720708636C615768697465000000} end> Left = 64 Top = 96 end object mainLayout: TLayout Align = Contents - Size.Width = 1220.000000000000000000 - Size.Height = 617.000000000000000000 + Size.Width = 1280.000000000000000000 + Size.Height = 640.000000000000000000 Size.PlatformDefault = False TabOrder = 43 object bottomButtonsLayout: TLayout Align = Bottom - Position.Y = 569.000000000000000000 - Size.Width = 1220.000000000000000000 + Position.Y = 592.000000000000000000 + Size.Width = 1280.000000000000000000 Size.Height = 48.000000000000000000 Size.PlatformDefault = False object launchButton: TButton Align = Center - Size.Width = 127.000000000000000000 + Size.Width = 128.000000000000000000 Size.Height = 30.000000000000000000 Size.PlatformDefault = False StyleLookup = 'launchButtonStyle1' @@ -18233,19 +18526,32 @@ object MainForm: TMainForm Margins.Top = 5.000000000000000000 Margins.Right = 5.000000000000000000 Margins.Bottom = 5.000000000000000000 - Position.X = 102.000000000000000000 + Position.X = 103.000000000000000000 Position.Y = 5.000000000000000000 Size.Width = 20.000000000000000000 Size.Height = 20.000000000000000000 Size.PlatformDefault = False Stroke.Kind = None end + object launchPopupBox: TPopupBox + Align = Left + Enabled = False + Items.Strings = ( + 'Default' + 'Tiled' + 'All at once') + Size.Width = 24.000000000000000000 + Size.Height = 30.000000000000000000 + Size.PlatformDefault = False + TabOrder = 1 + Visible = False + end end object settingsButton: TButton Align = Center StyledSettings = [Family, FontColor] Hint = 'Settings' - Margins.Right = 175.000000000000000000 + Margins.Right = 176.000000000000000000 Size.Width = 30.000000000000000000 Size.Height = 30.000000000000000000 Size.PlatformDefault = False @@ -18253,68 +18559,6 @@ object MainForm: TMainForm ParentShowHint = False ShowHint = False OnClick = settingsButtonClick - object Image1: TImage - MultiResBitmap.Height = 512 - MultiResBitmap.Width = 512 - MultiResBitmap = < - item - Width = 512 - Height = 512 - PNG = { - 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 - FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 041049444154785EEDC13101000000C2A0F54F6D076F20000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000B8D50002F000019CDED795000000004945 - 4E44AE426082} - FileName = 'E:\AErender CC 2018\icons8-settings-512.png' - end> - Align = Client - HitTest = False - MarginWrapMode = Fit - Margins.Left = 2.000000000000000000 - Margins.Top = 2.000000000000000000 - Margins.Right = 2.000000000000000000 - Margins.Bottom = 2.000000000000000000 - Size.Width = 26.000000000000000000 - Size.Height = 26.000000000000000000 - Size.PlatformDefault = False - Visible = False - WrapMode = Place - object settingsIconFill: TFillRGBEffect - Color = claWhite - end - end object SettingsIcon: TPath Align = Client Data.Path = { @@ -18385,72 +18629,11 @@ object MainForm: TMainForm end object infoButton: TButton Align = Center - Margins.Left = 175.000000000000000000 + Margins.Left = 176.000000000000000000 Size.Width = 30.000000000000000000 Size.Height = 30.000000000000000000 Size.PlatformDefault = False OnClick = infoButtonClick - object Image2: TImage - MultiResBitmap.Height = 512 - MultiResBitmap.Width = 512 - MultiResBitmap = < - item - Width = 512 - Height = 512 - PNG = { - 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 - FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 041049444154785EEDC13101000000C2A0F54F6D076F20000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000B8D50002F000019CDED795000000004945 - 4E44AE426082} - FileName = 'E:\AErender CC 2018\icons8-info-512.png' - end> - Align = Client - HitTest = False - MarginWrapMode = Fit - Margins.Left = 2.000000000000000000 - Margins.Top = 2.000000000000000000 - Margins.Right = 2.000000000000000000 - Margins.Bottom = 2.000000000000000000 - Size.Width = 26.000000000000000000 - Size.Height = 26.000000000000000000 - Size.PlatformDefault = False - Visible = False - object infoIconFill: TFillRGBEffect - Color = claWhite - end - end object InfoIcon: TPath Align = Client Data.Path = { @@ -18519,38 +18702,24 @@ object MainForm: TMainForm Stroke.Kind = None end end - object Button1: TButton - Align = MostRight - Enabled = False - Margins.Top = 8.000000000000000000 - Margins.Right = 8.000000000000000000 - Margins.Bottom = 8.000000000000000000 - Position.X = 584.000000000000000000 - Position.Y = 8.000000000000000000 - Size.Width = 109.000000000000000000 - Size.Height = 30.000000000000000000 - Size.PlatformDefault = False - Text = 'Test Notification' - Visible = False - end end object UpdateInfo: TStatusBar Align = MostBottom - Position.Y = 526.000000000000000000 + Position.Y = 604.000000000000000000 ShowSizeGrip = False - Size.Width = 701.000000000000000000 - Size.Height = 35.000000000000000000 + Size.Width = 1280.000000000000000000 + Size.Height = 36.000000000000000000 Size.PlatformDefault = False StyleLookup = 'statusbarnogripstyle' Visible = False object downloadButton: TButton Align = Client - Margins.Left = 10.000000000000000000 - Margins.Top = 7.000000000000000000 - Margins.Right = 10.000000000000000000 - Margins.Bottom = 7.000000000000000000 - Size.Width = 508.000000000000000000 - Size.Height = 21.000000000000000000 + Margins.Left = 8.000000000000000000 + Margins.Top = 8.000000000000000000 + Margins.Right = 8.000000000000000000 + Margins.Bottom = 8.000000000000000000 + Size.Width = 1093.000000000000000000 + Size.Height = 20.000000000000000000 Size.PlatformDefault = False Text = 'Download from GitHub' OnClick = downloadButtonClick @@ -18559,10 +18728,10 @@ object MainForm: TMainForm Align = Left AutoSize = True StyledSettings = [Family, FontColor] - Margins.Left = 10.000000000000000000 - Position.X = 10.000000000000000000 + Margins.Left = 8.000000000000000000 + Position.X = 8.000000000000000000 Size.Width = 163.000000000000000000 - Size.Height = 35.000000000000000000 + Size.Height = 36.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Size = 14.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} @@ -18572,7 +18741,7 @@ object MainForm: TMainForm end object TasksToolbar: TToolBar PopupMenu = ToolbarPopupMenu - Size.Width = 1220.000000000000000000 + Size.Width = 1280.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False object TasksLabel: TLabel @@ -18593,7 +18762,7 @@ object MainForm: TMainForm Margins.Top = 4.000000000000000000 Margins.Right = 4.000000000000000000 Margins.Bottom = 4.000000000000000000 - Position.X = 1112.000000000000000000 + Position.X = 1172.000000000000000000 Position.Y = 4.000000000000000000 Size.Width = 104.000000000000000000 Size.Height = 24.000000000000000000 @@ -18612,7 +18781,7 @@ object MainForm: TMainForm Margins.Top = 4.000000000000000000 Margins.Right = 4.000000000000000000 Margins.Bottom = 4.000000000000000000 - Position.X = 1008.000000000000000000 + Position.X = 1068.000000000000000000 Position.Y = 4.000000000000000000 Size.Width = 96.000000000000000000 Size.Height = 24.000000000000000000 @@ -18632,8 +18801,8 @@ object MainForm: TMainForm Margins.Right = -1.000000000000000000 Margins.Bottom = -1.000000000000000000 PopupMenu = TasksPopupMenu - Size.Width = 1222.000000000000000000 - Size.Height = 515.000000000000000000 + Size.Width = 1282.000000000000000000 + Size.Height = 538.000000000000000000 Size.PlatformDefault = False StyleLookup = 'treeviewstyle' OnDragDrop = TasksTreeViewDragDrop @@ -18643,12 +18812,12 @@ object MainForm: TMainForm ItemHeight = 24.000000000000000000 OnDragChange = TasksTreeViewDragChange OnKeyDown = TasksTreeViewKeyDown - Viewport.Width = 1220.000000000000000000 - Viewport.Height = 514.000000000000000000 + Viewport.Width = 1280.000000000000000000 + Viewport.Height = 537.000000000000000000 object TasksIsEmpty: TLayout Align = Client - Size.Width = 1220.000000000000000000 - Size.Height = 514.000000000000000000 + Size.Width = 1280.000000000000000000 + Size.Height = 537.000000000000000000 Size.PlatformDefault = False TabOrder = 0 object TasksIsEmptyLabel: TLabel @@ -18703,7 +18872,7 @@ object MainForm: TMainForm Anchors = [akLeft, akBottom] AutoSize = True Position.X = 32.000000000000000000 - Position.Y = 472.000000000000000000 + Position.Y = 495.000000000000000000 Size.Width = 64.000000000000000000 Size.Height = 16.000000000000000000 Size.PlatformDefault = False @@ -18716,7 +18885,7 @@ object MainForm: TMainForm object GridPanelLayout4: TGridPanelLayout Align = Top Position.Y = 32.000000000000000000 - Size.Width = 1220.000000000000000000 + Size.Width = 1280.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False ColumnCollection = < @@ -18776,7 +18945,7 @@ object MainForm: TMainForm Align = Contents StyledSettings = [Family, Size, FontColor] Margins.Left = 20.000000000000000000 - Size.Width = 752.000000000000000000 + Size.Width = 812.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} @@ -18842,6 +19011,12 @@ object MainForm: TMainForm object DeleteTaskPopupItem: TMenuItem Text = 'Delete Task' end + object TasksPopupSeparator2: TMenuItem + Text = '-' + end + object ToTopPopupItem: TMenuItem + Text = 'ToTopPopupItem' + end end object ToolbarPopupMenu: TPopupMenu Left = 224 @@ -18876,7 +19051,6 @@ object MainForm: TMainForm end object TaskEditorPopup: TPopup ClipChildren = True - DragWithParent = True Placement = Center PlacementTarget = TasksTreeView Position.X = 290.000000000000000000 @@ -19079,6 +19253,7 @@ object MainForm: TMainForm TextSettings.FontColor = claWhite TextSettings.HorzAlign = Trailing Text = 'Unlimited' + TabOrder = 10 OnClick = memUsageInfoClick end object memUsageInfoEdit: TEdit @@ -19124,6 +19299,7 @@ object MainForm: TMainForm Size.Width = 339.000000000000000000 Size.Height = 17.000000000000000000 Size.PlatformDefault = False + TabOrder = 8 Value = 100.000000000000000000 OnChange = cacheUsageTrackBarChange end @@ -19141,6 +19317,7 @@ object MainForm: TMainForm TextSettings.FontColor = claWhite TextSettings.HorzAlign = Trailing Text = 'Unlimited' + TabOrder = 9 OnClick = cacheUsageInfoClick end object cacheUsageInfoEdit: TEdit @@ -19202,6 +19379,7 @@ object MainForm: TMainForm object customProp: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Top + TabOrder = 8 Position.X = 16.000000000000000000 Position.Y = 31.000000000000000000 Enabled = False @@ -19223,6 +19401,7 @@ object MainForm: TMainForm Size.Width = 280.000000000000000000 Size.Height = 19.000000000000000000 Size.PlatformDefault = False + TabOrder = 7 Text = 'Custom Properies' end end @@ -19243,6 +19422,7 @@ object MainForm: TMainForm Size.Width = 280.000000000000000000 Size.Height = 19.000000000000000000 Size.PlatformDefault = False + TabOrder = 4 Text = 'Render with missing files' end object threadedRender: TCheckBox @@ -19255,6 +19435,7 @@ object MainForm: TMainForm Size.Width = 280.000000000000000000 Size.Height = 19.000000000000000000 Size.PlatformDefault = False + TabOrder = 6 Text = 'Enable CPU Multithreading' end object soundCheckbox: TCheckBox @@ -19267,6 +19448,7 @@ object MainForm: TMainForm Size.Width = 280.000000000000000000 Size.Height = 19.000000000000000000 Size.PlatformDefault = False + TabOrder = 5 Text = 'Play sound when render finishes' end end @@ -19292,6 +19474,7 @@ object MainForm: TMainForm Size.Width = 472.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False + TabOrder = 2 OnChange = outputModuleBoxChange end object outputModuleLabel: TLabel @@ -19313,9 +19496,18 @@ object MainForm: TMainForm Size.Width = 624.000000000000000000 Size.Height = 32.000000000000000000 Size.PlatformDefault = False - object renderSettingsBox: TComboBox + object renderSettingsEdit: TComboEdit + Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Client + TabOrder = 0 DropDownKind = Custom + ItemHeight = 20.000000000000000000 + Items.Strings = ( + 'Current Settings' + 'Best Settings' + 'DV Settings' + 'Multi-Machine Settings') + ItemIndex = -1 Margins.Left = 16.000000000000000000 Margins.Top = 4.000000000000000000 Margins.Right = 8.000000000000000000 @@ -19323,7 +19515,7 @@ object MainForm: TMainForm Size.Width = 472.000000000000000000 Size.Height = 24.000000000000000000 Size.PlatformDefault = False - OnChange = renderSettingsBoxChange + KillFocusByReturn = True end object renderSettingsLabel: TLabel Align = Left @@ -19724,6 +19916,7 @@ object MainForm: TMainForm object outputPath: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] Align = Client + TabOrder = 0 Margins.Left = 16.000000000000000000 Margins.Top = 4.000000000000000000 Margins.Bottom = 4.000000000000000000 @@ -19993,7 +20186,7 @@ object MainForm: TMainForm Size.PlatformDefault = False TabOrder = 2 RowCount = 1 - Options = [Editing, AlwaysShowEditor, ColumnResize, ColLines, RowLines, RowSelect, Tabs, Header, AutoDisplacement] + Options = [Editing, AlwaysShowEditor, ColumnResize, ColLines, RowLines, RowSelect, Tabs, Header, CancelEditingByDefault, AutoDisplacement] OnEditingDone = TaskEditorCompGridEditingDone Viewport.Width = 628.000000000000000000 Viewport.Height = 289.000000000000000000 @@ -20109,7 +20302,7 @@ object MainForm: TMainForm Size.Height = 17.000000000000000000 Size.PlatformDefault = False Text = 'Elapsed %d seconds of %d' - TabOrder = 73 + TabOrder = 72 end end end @@ -20120,6 +20313,16 @@ object MainForm: TMainForm Left = 64 Top = 384 end + object UpdateNetHTTPClient: TNetHTTPClient + Asynchronous = True + ConnectionTimeout = 10000 + ResponseTimeout = 10000 + UserAgent = 'Embarcadero URI Client/1.0' + OnRequestCompleted = UpdateNetHTTPClientRequestCompleted + OnRequestError = UpdateNetHTTPClientRequestError + Left = 64 + Top = 288 + end object BindingsList1: TBindingsList Methods = <> OutputConverters = <> @@ -20255,14 +20458,4 @@ object MainForm: TMainForm InitializeControlValue = False end end - object UpdateNetHTTPClient: TNetHTTPClient - Asynchronous = True - ConnectionTimeout = 10000 - ResponseTimeout = 10000 - UserAgent = 'Embarcadero URI Client/1.0' - OnRequestCompleted = UpdateNetHTTPClientRequestCompleted - OnRequestError = UpdateNetHTTPClientRequestError - Left = 64 - Top = 288 - end end diff --git a/src/MainUnit.pas b/src/MainUnit.pas index b60345f..6dc8459 100644 --- a/src/MainUnit.pas +++ b/src/MainUnit.pas @@ -95,8 +95,8 @@ interface Xml.XMLIntf, Xml.adomxmldom, Xml.XMLDoc, - Data.Bind.Components, Xml.omnixmldom, + Data.Bind.Components, {$ENDREGION} {$REGION ' Additional Liraries '} @@ -197,8 +197,8 @@ TMainForm = class(TForm) outputModuleLabel: TLabel; outputModuleLayout: TLayout; renderSettingsLayout: TLayout; - renderSettingsBox: TComboBox; renderSettingsLabel: TLabel; + renderSettingsEdit: TComboEdit; MainMenu1: TMainMenu; launcherItem: TMenuItem; fileItem: TMenuItem; @@ -363,7 +363,6 @@ TMainForm = class(TForm) procedure SetLanguage(LanguageCode: Integer); procedure UpdateOutputModules; - procedure UpdateRenderSettings; procedure threadsCountTyping(Sender: TObject); procedure threadsCountExit(Sender: TObject); @@ -375,7 +374,6 @@ TMainForm = class(TForm) procedure ReInflateRecents; procedure compGridEditingDone(Sender: TObject; const ACol, ARow: Integer); - procedure renderSettingsBoxChange(Sender: TObject); procedure TasksTreeViewDragChange(SourceItem, DestItem: TTreeViewItem; var Allow: Boolean); procedure TasksTreeViewKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); procedure TasksTreeViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); @@ -410,8 +408,7 @@ TMainForm = class(TForm) procedure TasksTreeViewItemDblClick(Sender: TObject); procedure TaskEditorSaveButtonClick(Sender: TObject); procedure ProjectReaderAwaitTimer(Sender: TObject); - procedure TaskEditorToolbarMouseDown(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Single); + procedure TaskEditorToolbarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); private { Private declarations } FCurrentItem: String; @@ -755,7 +752,7 @@ procedure InitConfiguration(Path: String); SettingNode.Attributes['imported'] := 'False'; end; - MainForm.renderSettingsBox.ItemIndex := 0; + MainForm.renderSettingsEdit.Text := 'Best Settings'; ChildNode := RootNode.AddChild('recentProjects'); for var i := 0 to 9 do @@ -813,7 +810,7 @@ procedure LoadLegacyConfiguration(Path: String); InitRenderSettings; MainForm.outputModuleBox.ItemIndex := StrToInt(RootNode.ChildNodes['outputModule'].Attributes['selected']); - MainForm.renderSettingsBox.ItemIndex := 0; + MainForm.renderSettingsEdit.Text := RootNode.ChildNodes['renderSettings'].ChildNodes[StrToInt(RootNode.ChildNodes['renderSettings'].Attributes['selected'])].Text; end; procedure LoadConfiguration(Path: String); @@ -864,15 +861,7 @@ procedure LoadConfiguration(Path: String); end else InitOutputModules; - if RootNode.ChildNodes['renderSettings'].ChildNodes.Count <> 0 then begin - SetLength (RenderSettings, RootNode.ChildNodes['renderSettings'].ChildNodes.Count); - for var i := 0 to High(RenderSettings) do begin - RenderSettings[i].Setting := RootNode.ChildNodes['renderSettings'].ChildNodes[i].Text; - RenderSettings[i].Imported := StrToBool(RootNode.ChildNodes['renderSettings'].ChildNodes[i].Attributes['imported']); - end; - MainForm.renderSettingsBox.ItemIndex := StrToInt(RootNode.ChildNodes['renderSettings'].Attributes['selected']); - end else - InitRenderSettings; + MainForm.renderSettingsEdit.Text := RootNode.ChildNodes['renderSettings'].Text; for var i := 0 to 9 do begin Recents[i] := RootNode.ChildNodes['recentProjects'].ChildNodes[i].Text; @@ -928,12 +917,7 @@ procedure SaveConfiguration(Path: String); end; ChildNode := RootNode.AddChild('renderSettings'); - ChildNode.Attributes['selected'] := MainForm.renderSettingsBox.ItemIndex.ToString; - for var i := 0 to High(RenderSettings) do begin - var SettingNode: IXMLNode := RootNode.ChildNodes['renderSettings'].AddChild('setting'); - SettingNode.Text := RenderSettings[i].Setting; - SettingNode.Attributes['imported'] := RenderSettings[i].Imported; - end; + ChildNode.Text := MainForm.renderSettingsEdit.Text; ChildNode := RootNode.AddChild('recentProjects'); for var i := 0 to 9 do begin @@ -1286,14 +1270,6 @@ procedure TMainForm.AddTaskButtonClick(Sender: TObject); // PathCheckThread.Start; end; -procedure TMainForm.renderSettingsBoxChange(Sender: TObject); -begin - if (renderSettingsBox.ItemIndex = renderSettingsBox.Count - 1) and (renderSettingsBox.Count <> 0) then begin - //OutputModuleEditorForm.Show; - //renderSettingsBox.ItemIndex := 0; - end -end; - /// This will add instance to Recents[] and call /// ReInflateRecents() to update recentItem procedure TMainForm.AddToRecents(Item: String); @@ -1358,7 +1334,7 @@ procedure TMainForm.TaskEditorSaveButtonClick(Sender: TObject); RenderTasks.Items[TaskIndex].Project := projectPath.Text; RenderTasks.Items[TaskIndex].Output := outputPath.Text; RenderTasks.Items[TaskIndex].OutputModule := outputModuleBox.Items[outputModuleBox.ItemIndex]; - RenderTasks.Items[TaskIndex].RenderSettings := renderSettingsBox.Items[renderSettingsBox.ItemIndex]; + RenderTasks.Items[TaskIndex].RenderSettings := renderSettingsEdit.Text; RenderTasks.Items[TaskIndex].MissingFiles := missingFilesCheckbox.IsChecked; RenderTasks.Items[TaskIndex].Sound := soundCheckbox.IsChecked; RenderTasks.Items[TaskIndex].Multiprocessing := threadedRender.IsChecked; @@ -1505,21 +1481,6 @@ procedure TMainForm.UpdateOutputModules; outputModuleBox.ItemIndex := Index; end; -procedure TMainForm.UpdateRenderSettings; -begin - var Index: Integer := renderSettingsBox.ItemIndex; - if (renderSettingsBox.Count <> 0) then - renderSettingsBox.Clear; - - for var i := 0 to High(RenderSettings) do - if RenderSettings[i].Imported then - renderSettingsBox.Items.Add(RenderSettings[i].Setting + ' ' + Language[LANG].OutputModuleConfiguratorForm.Imported) - else - renderSettingsBox.Items.Add(RenderSettings[i].Setting); - //renderSettingsBox.Items.Add(Language[LANG].MainForm.ConfigureRenderSettings); - renderSettingsBox.ItemIndex := Index; -end; - function TMainForm.ReadAERQ(Path: String): TObjectList; begin Result := TObjectList.Create; @@ -1556,22 +1517,9 @@ function TMainForm.ReadAERQ(Path: String): TObjectList; end; outputModuleBoxChange(Self); - if RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text.IsEmpty <> True then begin - var TempRenderSetting: RenderSetting; - TempRenderSetting.Setting := RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text; - - if GetRSIndex(TempRenderSetting) <> -1 then - renderSettingsBox.ItemIndex := GetRSIndex(TempRenderSetting) - else begin - SetLength(RenderSettings, Length(RenderSettings) + 1); - RenderSettings[High(RenderSettings)].Setting := RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text; - RenderSettings[High(RenderSettings)].Imported := True; - - renderSettingsBox.Items.Insert(renderSettingsBox.Items.Count - 1, RenderSettings[High(RenderSettings)].Setting + ' ' + Language[LANG].OutputModuleConfiguratorForm.Imported); - renderSettingsBox.ItemIndex := renderSettingsBox.Items.Count - 2; - end; + if RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text.IsEmpty <> True then begin + renderSettingsEdit.Text := RootNode.ChildNodes['queueItem'].ChildNodes['renderSettings'].Text; end; - renderSettingsBoxChange(Self); var Compositions: TList := TList.Create; Compositions.Add(TComposition.Create( @@ -1589,7 +1537,7 @@ function TMainForm.ReadAERQ(Path: String): TObjectList; RootNode.Attributes['project'], outputPath.Text, outputModuleBox.Items[outputModuleBox.ItemIndex], - renderSettingsBox.Items[renderSettingsBox.ItemIndex], + renderSettingsEdit.Text, missingFilesCheckbox.IsChecked, soundCheckbox.IsChecked, threadedRender.IsChecked, @@ -1632,7 +1580,7 @@ function TMainForm.ReadAER(Path: String): TRenderTask; RootNode.Attributes['project'], outputPath.Text, outputModuleBox.Items[outputModuleBox.ItemIndex], - renderSettingsBox.Items[renderSettingsBox.ItemIndex], + renderSettingsEdit.Text, missingFilesCheckbox.IsChecked, soundCheckbox.IsChecked, threadedRender.IsChecked, @@ -2259,21 +2207,6 @@ procedure TMainForm.ProjectReaderAwaitTimer(Sender: TObject); ImportForm.FormSender := FS_JSON; ImportForm.ShowModal; - -// RenderTasks.Add(TRenderTask.CreateFromJSON( -// projectPath.Text, -// outputPath.Text, -// outputModuleBox.Items[outputModuleBox.ItemIndex], -// renderSettingsBox.Items[renderSettingsBox.ItemIndex], -// missingFilesCheckbox.IsChecked, -// soundCheckbox.IsChecked, -// threadedRender.IsChecked, -// IfThenElse(customCheckbox.IsChecked = True, customProp.Text, ''), // yeet -// cacheUsageTrackBar.Value, -// memUsageTrackBar.Value, -// ProjectJson -// )); - end;// else //Status.Text := 'File is empty, repeating...'; end; @@ -2424,7 +2357,7 @@ procedure TMainForm.TasksTreeViewItemDblClick(Sender: TObject); outputPath.Text := Task.Output; outputModuleBox.Index := outputModuleBox.Items.IndexOf(Task.OutputModule); - renderSettingsBox.Index := renderSettingsBox.Items.IndexOf(Task.RenderSettings); + renderSettingsEdit.Text := Task.RenderSettings; missingFilesCheckbox.IsChecked := Task.MissingFiles; soundCheckbox.IsChecked := Task.Sound; @@ -2799,7 +2732,7 @@ procedure TMainForm.TaskEditorCreateTaskButtonClick(Sender: TObject); projectPath.Text, outputPath.Text, outputModuleBox.Items[outputModuleBox.ItemIndex], - renderSettingsBox.Items[renderSettingsBox.ItemIndex], + renderSettingsEdit.Text, missingFilesCheckbox.IsChecked, soundCheckbox.IsChecked, threadedRender.IsChecked, diff --git a/src/RenderingUnit.pas b/src/RenderingUnit.pas index 6f63685..7775235 100644 --- a/src/RenderingUnit.pas +++ b/src/RenderingUnit.pas @@ -98,10 +98,11 @@ TRenderingForm = class(TForm) procedure renderingTimerTimer(Sender: TObject); procedure FormShow(Sender: TObject); procedure abortRenderingButtonClick(Sender: TObject); - procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure StopwatchTimerTimer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure SetLanguage(LanguageCode: Integer); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormHide(Sender: TObject); procedure RenderQueueNotify(Sender: TObject; const Item: String; Action: TCollectionNotification); private @@ -256,6 +257,7 @@ procedure TRenderingForm.abortRenderingButtonClick(Sender: TObject); procedure TRenderingForm.FormClose(Sender: TObject; var Action: TCloseAction); begin + {$IFDEF MSWINDOWS} VISIBLE := False; /// If rendering is finished and there is still @@ -266,6 +268,23 @@ procedure TRenderingForm.FormClose(Sender: TObject; var Action: TCloseAction); TotalProgressBar.Value := 0; {$IFDEF MSWINDOWS}MainTaskBar.TaskBarState := 0;{$ENDIF MSWINDOWS} end; + {$ENDIF} +end; + +procedure TRenderingForm.FormHide(Sender: TObject); +begin + {$IFDEF MACOS} // Workaround + // Somehow after update to RAD 10.4.2 + // form can't get to the OnClose event on macOS + VISIBLE := False; + + // RU: При закрытии формы, если рендеринг закончен + // очистить окно + if Trunc(TotalProgressBar.Value) = Trunc(TotalProgressBar.Max) then begin + abortRenderingButtonClick(Sender); + TotalProgressBar.Value := 0; + end; + {$ENDIF} end; procedure TRenderingForm.FormCreate(Sender: TObject); From 333fe61740d701fc2e5d5f991c7224a5d5b2e2ec Mon Sep 17 00:00:00 2001 From: "kostyaromanets2@gmail.com" Date: Wed, 29 Sep 2021 23:59:33 +1000 Subject: [PATCH 24/29] Updated settings, improved config readability --- src/AErender_Launcher.dproj | 10 +- src/AErender_Launcher.res | Bin 135120 -> 135728 bytes src/AboutUnit.fmx | 3290 ++++++++++++------------ src/AboutUnit.pas | 5 +- src/HelpUnit.pas | 2 + src/ImportUnit.fmx | 2 +- src/ImportUnit.pas | 23 +- src/MainUnit.fmx | 16 +- src/MainUnit.pas | 792 +++--- src/OutputModuleEditorUnit.pas | 52 +- src/RenderingUnit.pas | 13 +- src/SettingsUnit.pas | 68 +- src/lib/AErenderLauncher.Rendering.pas | 7 +- src/lib/AErenderLauncher.SysUtils.pas | 2 +- src/lib/AErenderLauncher.Types.pas | 296 ++- 15 files changed, 2407 insertions(+), 2171 deletions(-) diff --git a/src/AErender_Launcher.dproj b/src/AErender_Launcher.dproj index 70910cb..d26ac6d 100644 --- a/src/AErender_Launcher.dproj +++ b/src/AErender_Launcher.dproj @@ -5,7 +5,7 @@ Debug FMX AErender_Launcher.dpr - Win64 + Win32 {C2DB1030-533B-41FD-8468-632CB85028C7} 19.2 4099 @@ -219,10 +219,10 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico true - 3 + 5 true true - CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.3;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.5.0;Comments= + CompanyName=Night Sky Studio;FileDescription=AErender Launcher;FileVersion=0.8.6.5;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.NightSkyStudio.AErenderLauncher;ProductName=AErender Launcher;ProductVersion=0.8.5.0;Comments= 1033 0 8 @@ -234,9 +234,9 @@ ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico true - 3 + 5 true - FileVersion=1.0.0.3;ProductVersion=1.0.0.0 + FileVersion=1.0.0.5;ProductVersion=1.0.0.0 1033 true
    diff --git a/src/AErender_Launcher.res b/src/AErender_Launcher.res index 0db0fdae2b6e6d6a4fc73ca0f757fe370bb835ab..4673884613f48d3518d79fbbeddeba9a4c89e43c 100644 GIT binary patch delta 797 zcmZWl%Wl*#6un7XIztygzaR<-Bn0UcCL=1fz;s%qic%qg)OE)3Ors`tou=_4@qHVebyhD;Q z$|)j26&+yDh}-%DN~ljqq~Yof9pl#Qno5dsBQ0m2R?*`H&MB&P5Ct((IOkv*mbhz) zZQ2FQArfO%XtfWi5@!YpAj9+9g9Zik1kpl-D2wS1y1xcp!ilop_Ml=0v%Uj3p18d9 z_^-o&=4IzZ(PziLz-qK0Sfa7M@(uGX{&W6m$+=gbSP$Qa&WF%(Mxo;#*4&ll(Z{;G z><&C{Gv+xLF&C_QdfmgA0=iukJnN=o95>Mz*aKZBy0UyzqpO^6`6r2Z{K%hzBFX^1 zN|=&`?CIbz5wScef{x5GDIRvD&;upYVpj2vt0IwN%Wnk@GiNt>*-aDnl2>o#F*k&8 zBkZ=C>&+%(z4f>^W2TYlmr)#6M02J~Wf%|qweh3ZCf{)7)tgfo Rzcc#0;{I9qa(2Ug{ull}szm?* delta 170 zcmdn6gyX_|jtL6f4vY*83JeSk|Nje2KhMP^%H+T}(MeB_fq{{M87K^*LBJk}nShuD zh#?|C1{5q{m^e>KvIh9eF*N{OE$cJF#$+k@DoN$rmT&DJ1 jCdTc#OibY%Ob=PNALC+TXWIUqm+2=nBg6Fff=rG8rz0Fw diff --git a/src/AboutUnit.fmx b/src/AboutUnit.fmx index f1366ef..d173870 100644 --- a/src/AboutUnit.fmx +++ b/src/AboutUnit.fmx @@ -53,107 +53,107 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000080000000800806000000C33E61 CB000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 0C7D49444154785EED9D096C14E715C7DFDADEC3BBEB5DDB6073186C2E7383F1 - B536ADDA087A48A84DAB4A5154B54A9B466A959434219040A14014A256555B89 - B4094A2F3555AAF44A95A84969D42851206A95607C806D6E4CC08003D8F8DEF5 - B157BF37478C8D77E69BF1AE67D6F37ED263E77D5E662DBFFFBEEFFE06088220 - 0882200882200882200882B00036E9753A903F6B3A3F331D894F784D29A90E06 - DE1F2D4332D927128381478B4926FB292115C190839CC92C8B999D9907DC05EB - 203BAF14321C7321C3E66265C44462F161888DDE80A19E0B10EA6C6125416661 - 6611665166491743320520071E83EE00A7B300BC8BEE83DC85F782BB30C07EE4 - C43711BCC4472074AB0E7AAFBE098397FF0123239DAC7094198A216942489600 - C602EF701441C18627C05DF400B8DC1EE1A7C4D4180E052174FD4FD079E2208C - 8E5E6725770A614A24430058B7639A7743FEF207A1A07C3F38B272859F10C965 - 34D20B9D4D07A0FBFC1F99176286D503B6137433550160F0596A77154249ED0B - E02BFAB2584CA49481AB87E172DD56961A6E316F84996E114C450062F01D8E12 - 28FEE2DF21DBBF4E2C26A685A1BE16687FFB7E56255C619E6E11604B5D0F62F0 - 9DCE2258F485D7C195BB562C26A60DBB6B0EE4146D86C1F6C3108D6275207719 - 35A1470098351CCCFC50B2E915C89E5D259412D34F96AB005CB3CAA1E7D21BCC - D3D51ED023006CED7B614ED90F216FC9D7C522C2301CDE12B065D82078F343E6 - 691601A6722D48A9DF5F06FE658F894584E1602C302642835C5B4CB5BC19533F - 660C37CCABDA074E1776FD083380B1C098606CC4187137EEB50AC0016E56E7E7 - CCDD2C1611A6016382B111DB672911002ACB0579A5DF165DC27488B1C17916EE - B61DAF00E4F4EF83DCB95B8412C27C88B1F131E3AE06B408C00E9EF901C870E3 - 071066046383311287E6932A007C9F1DBCB3AA4597302D628C50005CB1E57913 - 2A092D0BECB92B8412C2BC387397B37F71AC468E9B225AAA802C707AE6892E61 - 5AEC9EF9EC5F5900AAF066007C5F26643AFC4209615E321C7223106396B40C80 - D8201A456511662616E56E00225A0440CC404800168704607148001687046071 - 48001627ED0460B7DBC1ED76735B6626F7C49825E1E92FA248708EB910967EE9 - 28B8731709A506F1F88E5DB07A2DFF02E4138D0DF0E2F30725CF02847A2F43DB - E17BD8152E19C70D248A4BC4D22E03B85CDAB615AE5B5F061EAF57F28889A49D - 00FCB979D2151F99595950555D2379C444D24A0039393EC89F354BF2F8096CFC - 9474454C24AD04B0A1A2126C36EE61EE4F58BA6C39CC9A3D5BF2883B492B0154 - 056AA52B6DA06802B5940526236D04E0F7E7C2F295AB244F3B2480C9491B0154 - 066A202343FFAF3BBF68012C2C2E913C42266D0410A8D9285D4D4E4BF309E92A - 31D418BC9BB410C0EC824258BC7499E4DD4D2C16837FFDF375C94B4C351391CD - 96369A9F16D2E2AF818153E26AFB15B87CA90D6E77E1313A89C9CBCB67ED8895 - 92A79F1C9F0F7C7E7F42733870E034316EB7072AAA03F0B5FBEE8787BEFB083C - FCE8369833D798E596693114FCF4B33F85F90B1648DEDDFCE7DF6FC26BAFFE0D - BEF9ADEFC067377D4E2A9D9CFFBD7F045E7EE9F792A71D0CF0CF9F3B247993D3 - D7D70BFB76ED8091113CB7618C22D60ED972EF57A1BCB21AB2B2C6AFAEC3E16A - 1CB69E32336D28B868C142C5E023ADCDCDE26BCB49E155898AAA8030A1A497C1 - 8101A1CA51027B2CABD68CCD57B8B2B3E11B0F3C087B0FFC44C86613836F24A6 - 17805AFA1F1C1C848B17CE09D7674E9F827018459F986CB71BD6956D903CED60 - F0F133D5282E1113E582E262D8FBCC8FE19ECD9F9F522F2655985A003880A326 - 8096934D9F7C234759CA3D73AA55B8562250FB69E94A1FC34343D2556270C87A - C5CA55F0D4EEFD50C01AB166C5D40258BC6429EB011448DEE49C6C1A5F6F3635 - D44B5789C10C800D31BDA865196409EBB56CDDF6A4E6D9CBE9C6D402A85619BD - 0B87C370BA154F541DE3E48946D53A1AEB606C85EB45EDFE08B6EA9D4E3CB0C3 - DC985600585FAA4DE39E3DDD7A574B3BC8EAE70BE7C53681123553181A46E1CD - 144C2B8015AB560B5D2E2512759B4E34AA5703A52B56425EBEF6A96524420248 - 3D6A8DBF783C26A4FBC9E0E94F0B33842A9F918848048FE94D2EA9B8270FA614 - 00D6D13858A2C4A5B63618E8EF97BCF174DFEE826B57DB252F317AE706E2717D - 673477745C8777DE7E0B7EFBE2F3F0ECFE3DF0E4E3DF8727B67E0FB6FFE06168 - 6D561FC34805A614C0DAF565C28A5E254EA9FCC178B2C08285C5C240532A8944 - C270F4BD77E1C0BEDDF0CC8F76C1AB7F79051AEA8E09024501874221A1DD6214 - A614805AFA479A59FF5F89A686E3D29532A95C27D0585F077B77ED803FBFFC12 - 5CBF76552A3517A6138093F59BD76FA890BCC9B9CD523C4E002981DFB09B376E - 485E6250007A9699A9D1D3D30DBF39F42BE8E9EE964ACC89E904B0A1BC527536 - 8D67B00769387E4CBA4A0C8ED82D2B4DFEC937B1A8FA588119309D0078D27F43 - 1D1E8BAB0E4F7710A9B1F04211534D077BBD5EF8D9738714B773610BBCE1781D - 574B1C537B65754035C5078383B073DBA3DC5DB1C7B6EF8435EBD64BDEE4DCEE - EA823D4F6D93BC69249DA78371AA566D2F1F06B32A50C33245ADAAE1FB78EA77 - 8FC7CB028A672D5B0F53098027FDA70AAB5603A611406E5EBE303C6B14D8F3C8 - CECE963CEB601A0154076A53D21DE3055709A98D3ECE44CC23805AE3D2BF4C60 - E3D4168AA423A61040E19CB950B268B1E41907AEE0C9D5B8FB38DD3185008C6C - FCDD89B00681F51EAC842904103041FA97A9B1583560F84010EED7C355B36AFC - FA855F42FB95CB92A71DDC5DB47DE76EC953E6E93D3BE1C6C71D927737341094 - 447866E3FAFBFB84C59FB8F347AF9D3B730A3AAE5F93EEA88C95B280A1021047 - F5D4EBDC938D0D5C0B31D5A8E79C43C02AC9C82EE97462A80096962EE73AF2A5 - 9173F64F8DE3C7F80480D5052EEBB602860A80A7F51F0A0559FA3E2D7953E3D6 - CD1BDCED08AB6C25374C0038E98333756A349F68826834790B268F1FFB40BA52 - 06AB262B1C3269980056AE5E239CFAA506EFD22E5EEAEB8E714D257BBD399A0E - A44C570C13004FFAC74D1FA75AC6EFFC992AB862F852DB45C953C60ABD014304 - 60B73BA0BC42FDA9F3B8549A671F9E56EA391B8365E515C21AC5998C2102C0CD - 99B8675E8D64A77F9986FA635CDD4A87C3C925D474C61001E0BA7F3530FDB79C - 543FF8490F7DBDBD70EE2C5FCFA2ACA252BA1A8367E918EE0748070C190A767B - 3CE0F329EFFB0B0583C20860AAC06DDBB808450DDCB43130307E07121E3281A7 - 802881DDD7FEBED4FDFE09D138146CF85C00916466FA71F144722101581C1280 - C52101581C1280C52101581C1280C52101581C1280C52101581C6D02C8CC34E6 - 2C33821F8D31D22280388447273F978D300F628CB8CFB1E31100DE0C2D069141 - F553970863116384134072DC14E1CD0078A3088CF4F1ADA5228C438C115603AA - C1477833002A2A02839D939FCD4A980731462800390B28C29B01F0666108DD6E - 805864402C224C07C6066384B11263A68A962A80DD343C00FD57DF118B08D321 - C486C5481440D2AA00194C2B43D079FEAFA24B980E3136F83C1BEEAEA0960C80 - 29650886BB9AA0BFE3BF4229611E3026181B51005CF53FA22503E04D718DD900 - DC6A3C08C3714D030E440AC158604C30361CEB00EF44DFE6B7C8C820D8211B3C - 7366F6A2F974A1BBE577D0DBFE1ABBEA6586CFD049A900C4D412BC7516BC732A - C1E12D127CC2188237EBE0DA87FBD95517B310B32816F3A25700A8B0180C74D4 - 43CEBCCF4056B6FA027B22F90CF75C842B47B7B2EE1F1E7DA2A9F52FA3570068 - 51F6C1C3D0D7FE0178E76F04BB4BDF1398087D847ACFC147EF3E02D19136E6E1 - 0E144DA95F46EF0678590411884783D0FFD151B0FB9680CB4F9B46A683DEF623 - 70EDC83688862FA1C70C83AF29F5CBE81500820240C58521161B86FEF6F72132 - DC0BDEC232B0659AFF8989E9482C3C001D0D07E166D32FD8DFFC3A2B9952F091 - A99E8484FF1FBB9218707C166B1E643A1741C1DA8720BFF42B909969BDD39753 - 41343A04DD17DE80CED63FB0948F67DCF4300B3293D33E7E197591ACA3B05004 - F84C76DC4C9FC3CCC784300FFC255BC05FBC093C056BC196A1FC1C18623CF1D8 - 28043B5B591BEB3DE8BBF2160BFCC7AC14EB7A7CC4D83033EEF17E2592250004 - EF85558A2C04FCF66356700364F9C09DBB129CBE12C8F2CC069B0D3346323F7B - 261087787C0422C12E18E9BFC21A796759130B177760D70EBFED38C227071E53 - BEEE6FFD9DA42208B2106431E0371F038ED768982D28F89333D6AE120D533C8E - ECC9414F5AE065521908BC371A061C0D0541C157471601061B5FE53A3EA98197 - 99AE60C89F43C1E7430E764A824E100441100441100441100441580E80FF0389 - 0BE54521A1D3C30000000049454E44AE426082} + 0C7E49444154785EED9D096C1CE515C7FF3E76ED3DBCB6933897133B24E48224 + 4EEC78EDB46A11F490504BAB4A0855AD6829522B6828842B29148200B5AADA4A + A105442F958A8A5E54A0425354042241AD208E8F2476424248489CC424B1139F + BBBEF6E8F7E6209777E79BF1AE67D6F37ED2CBCEFBBC99B5FCFEFBBEFB1B300C + C3300CC3300CC3300CC3300CE302F2B4D7A940FFACA9FCCC5C2479D96B56C976 + 30E8FE64F99AE93E931A0A3C594233DDCF0AD908861EE4026185C23CC202F057 + AC86AF7C29F2BD73919F572CCA98CB49244790183B8DE1DEC38876B78B9288B0 + 7161316171611917432605A0079E82EE45515105828B6E46D9C29BE09F1D163F + 2AA23731B22447113DDB84BE13AF61E8D83F303ADA2D0AC78491183226844C09 + E042E0BDDE4A54ACBD17BECA5BE1F307949F329363381AC1F0A93FA17BCF368C + 8D9D1225170B615264420054B7539AF763C6B2DB50B16E2BBC8565CA4F98CC32 + 16EB4377DB1338FFC11F85171546D503B5132C33590150F0456A2F9E8DEAC667 + 10AAFCB25ACC6495C113DB71AC692330725678A3C22C8B6032025083EFF556A3 + EA8B7F87AF74B55ACC4C09C3FDEDE87CE31651251C179E6511504BDD0A6AF08B + 8A2AB1E80BAFA0B86C955ACC4C199EE23928A9BC01439DDB118F5375A077194D + 6145009435BCC24A517DFD8BF0CD5AAF9432534F6171058A67AE43EFD1578567 + A93D604500D4DA0F624ECD0F51BEF8EB6A11631BDE6035F2F2F31039F39EF04C + 8B8052B919B4D45F5A83D092BBD522C67628161413A5416E2EA666DE4CA99F32 + 861FF3D63F8A621F75FD182740B1A098506CD4184937EECD0AC00BBFA8F34BE6 + DEA016318E816242B151DB6759110029AB18E54BBFADBA8CE3506343F32CD26D + 3B5901E8E93F84B2B9372A258CF350631312265D0D9811800781F961E4FBE903 + 182742B1A118A943F3191500BDCF83E0CC7AD5651C8B1A231280546C65DE444A + 222B84A76CB952C23897A2B265E25F1AABD1E39616335540218A02F35497712C + 9EC07CF1AF2E0043643300BDAF0005DE52A584712EF95EBD114831CB580620F2 + 108F93B2182793884B370009330260A6212C0097C30270392C0097C30270392C + 0097937302F0783CF0FBFDD25650203D31E64A64FA8B24129A639E8D255FDA09 + 7FD922A5D426EEB97F0BAE5925BF00794F6B0B9E7B7A9BE6B98068DF311CD97E + 9DB8A225E3B48124ED12B19CCB00C5C5E6B615AE5E53834030A879CCE5E49C00 + 4ACBCAB52B390A0A0BB1BEBE41F398CBC929019494843063E64CCD9327BCE153 + DA157339392580B5B575C8CB931EE6FE8425572FC3CC59B3348FB9989C12C0FA + 70A376650E124DB891B3C044E48C004A4BCBB06CC54ACD330F0B606272460075 + E106E4E75BFF75E7572EC0C2AA6ACD6374724600E1860DDAD5C4B4EFDBA35DA5 + 861B83579213029855311B572DB95AF3AE249148E05FFF7C45F352532F449497 + 97339A9F1272E2AF41814BC789CEE33876F408CEF5D0313AA9292F9F21DA112B + 34CF3A25A11042A5A529CDEBA581D3D4F8FD01D4D687F1B59B6FC1EDDFBD1377 + DCB50973E6DAB3DC322786821F7BF2A798BF6081E65DC97FFEFD1A5E7EE96FF8 + E6B7BE83CF5EFF39AD7462FEF7CE0EBCF0FCEF35CF3C14E09F3FF5ACE64D4C7F + 7F1F1EDD723F4647E9DC860B548A76C88D377D15EBEAEA515878E9EA3A1AAEA6 + 61EB4933DD86822B172C4C1B7CA263DF3EF5B57DAFF29A8EDAF5616542C92A43 + 83834A95930EEAB1ACBCF6C27C45B1CF876FDC7A1B1E79E2274A36BB3CF876E2 + 780118A5FFA1A1217C78F89072FDFE81FD181F27D1A7C6E7F76375CD5ACD330F + 059F3ED388AA6A35512EA8AAC2238FFF18D7DDF0F949F562B285A30540033846 + 0268DFDBF6C937724CA4DCF7F77728D7E908377E5ABBB2C6C8F0B076951A1AB2 + 5EBE62251E7C682B2A4423D6A9385A00572D5E227A00159A37317BDB2EAD37DB + 5A9AB5ABD45006A08698558CB20CB158F45A366E7AC0F4ECE554E36801D41B8C + DE8D8F8FE340079DA87A81BD7B5A0DEB68AA83A9156E15A3FB13D4AA2F2AA203 + 3B9C8D630540F5A5D134EEC1031D57B4B423A27E3EFC81DA264847C324868649 + 78D305C70A60F9CA6B942E573A52759BF6B41A57034B97AF40F90CF353CB448C + 05907D8C1A7FC9644249F71321D39F5666080D3E2315B1181DD39B59B2714F19 + 1C2900AAA369B0241D478F1CC1E0C080E65DCAF9733D3879A253F35263756E20 + 99B476467357D729BCF9C6EBF8ED734FE3C9AD0FE3817BBE8F7B377E0FF7FDE0 + 0E74EC331EC3C8068E14C0AA3535CA8ADE74EC37F883C96481050BAB9481A66C + 128B8D63E7DB6FE189471FC2E33FDA8297FEF2225A9A762902250147A351A5DD + 62178E148051FA27F689FE7F3ADA5A766B57E9C9E63A81D6E6263CB2E57EFCF9 + 85E771EAE409ADD459384E0045A2DFBC666DADE64DCC3991E26902281DF40D3B + 73FAB4E6A586046065999911BDBDE7F19B677F85DEF3E7B51267E23801AC5D57 + 67389B2633D843B4ECDEA55DA58646ECAE5E9AF9936F1271E3B10227E03801C8 + A4FF96263A16D71899EE20D1E0E285228E9A0E0E0683F8D953CFA6DDCE452DF0 + 96DD4D522D714AED75F561C3141F890C61F3A6BBA4BB6277DFB719D7AE5EA379 + 1373AEA7070F3FB849F3A6905C9E0EA6A95AA3BD7C14CCF5E10691291A0D8DDE + 2753BF07024111503A6BD97D384A0032E93F5BB8B51A708C00CACA6728C3B376 + 413D0F9FCFA779EEC13102A80F3766A53B260BAD12321A7D9C8E3847008DF6A5 + 7F9DF086C92D14C9451C2180D973E6A27AD1559A671FB482A7CCE4EEE35CC711 + 02B0B3F17731CA1A04D17B70138E1040D801E95FA7C165D580ED0341B45F8F56 + CD1AF1EB677E89CEE3C734CF3CB4BBE8BECD0F695E7A1E7B78334E7FDCA57957 + C20341194466366E60A05F59FC493B7FACDAA1F7F7A3EBD449ED8EE9715316B0 + 5500EAA89E719DBBB7B5456A21A611CD9273085425D9D9259D4A6C15C092A5CB + A48E7C69959CFD3362F72E3901507541CBBADD80AD029069FD47A31191BE0F68 + DEE4387BE6B4743BC22D5BC96D13004DFAD04C9D11FBF6B4211ECFDC82C9DDBB + DED5AED24355931B0E99B44D002BAEB95639F5CB08D9A55DB23437ED929A4A0E + 064B4C1D4899ABD8260099F44F9B3EF6B75FBAF367B2D08AE1A3473ED4BCF4B8 + A137608B003C1E2FD6D51A3F759E964ACBECC3334BB36463B0665DADB246713A + 638B00687326ED993722D3E95FA7A5799754B7D2EB2D92126A2E638B0068DDBF + 1194FEDBF71A1FFC6485FEBE3E1C3A28D7B3A8A9ADD3AE2E20B3748CF603E402 + B60C05FB03018442E9F7FD4523116504305BD0B66D5A8462046DDA181CBC7407 + 121D3241A780A483BAAF03FDD9FBFD53627228D8F6B90026C34CF7E3E299CCC2 + 0270392C0097C30270392C0097C30270392C0097C30270392C0097C3027039E6 + 04505060CF59668C3C2663644600498C8F4D7C2E1BE31CD418499F63272300BA + 195902B121E35397187B51634413407ADCD2229B01E846318CF6CBADA562EC43 + 8D11550386C127643300292A86A1EE89CF66659C831A2312809E05D2229B01E8 + 66E3889E6B412236A816318E83624331A258A93133C44C15206E3A3E8881136F + AA458CE350622362A40A206355800EA59561747FF057D5651C871A1B7A9E8D74 + 57D04C06A094328C919E360C74FD5729659C03C58462A30A40AAFE27CC6400BA + 29AD311BC4D9D66D184E9A1A7060B208C5826242B19158077831D636BFC54687 + E0810F8139D37BD17CAED0DBFE3BF475BE2CAEFA84D13374B22A0035B544CE1E + 44704E1DBCC14AC567EC2172A60927DFDB2AAE7A844585C5A95816AB02208525 + 30D8D58C92799F41A1CF78813D9379467A3FC4F19D1B45F78F8E3E31D5FAD7B1 + 2A00B2B8F8E011F477BE8BE0FC0DF0145B7B0213638D68DF217CF4D69D888F1E + 111EED403195FA75AC6E80D7451043321EC1C0473BE1092D4671296F1A990AFA + 3A77E0E48E4D888F1F254F1805DF54EAD7B12A008204408A1B4722318281CE77 + 101BE94370760DF20A9CFFC4C45C24313E88AE966D38D3F60BF1373F254A2615 + 7C62B22721D1FFA7AE24059C9EC55A8E82A245A858753B662CFD0A0A0ADC77FA + 723688C78771FEF0ABE8EEF88348F974C64DAFB088303DEDD397D112993A0A8B + 4440CF64A7CDF425C2424208F3505A7D234AABAE47A06215F2F2D33F0786B994 + 64620C91EE0ED1C67A1BFDC75F1781FF5894525D4F8F181B11263DDE9F8E4C09 + 80A07B5195A20B81BEFD9415FC406108FEB215280A55A330300B7979943132F9 + D9D3812492C951C4223D181D382E1A790745138B167750D78EBEED34C2A7079E + 52BEE56FFDC5642308BA107431D0379F024ED764942D38F81373A15DA51AA578 + 1AD9D3839EB1C0EB643310746F320A38190982836F8C2E020A36BDEA757C4603 + AF3355C1D03F87832F871EECAC049D611886611886611886611886711DC0FF01 + 5322E5446696053F0000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_128.png' @@ -165,215 +165,215 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000001000000010008060000005C72A8 66000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 19F649444154785EEDDD09745C577907F04FD26866B48E244BB66559B6E57D95 - 57D9CE82132027349400871E68819EF67481961628D4019C86040804086D0A85 - 5320C08196366C850287020542364813E2459B37BC44B12D2FF2A27D34335A7B - BFF7EE45CF63C99E9977DFBC37F3FEBF736EDEBBCFB23D72F4FDDF7DDB7D0400 + 19F749444154785EEDDD09745C577907F04FD268345A47AB6D59926D795FE555 + B6B3E004C8090D25C0A1075AA0A73D5DA0A5050A7500A721010201429B42E114 + 0870A0A50D5BA1C0A14081900DD28478D1E60D2F516CCB8BBC681FCD8CD6DEEF + BD7BD1F358B267E6DD37EFCDBCFFEF9C9BF7EEB36C8F1C7DFF77DF761F010000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000D9552097F922F9FBC9B7EF0FDC3125974A723F67E57A81A8 - CF6FFD3E787DA6ED00995205CF4B6BF15BB7E7A45C2C90E4E2E665722B148DA9 - BE625D07984D7291ABFEA468AA6F6D2C79991372A920ACC5CC05AEFABC3E5BB3 - FE1EB5044885B5A0B971F1CFD6AC5FC354DFF372A1285411ABA68ABBE89A5632 - A791CA6AB650B06A0D052B5650A8B281A64AEA293416210A85C5D700A42811A7 - 44F10015C4CE5362F02C8D0E1DA7D1FE2314ED3D40B12B67C4174CCCD09203C1 - F341E0E50098A9E8B9057ED742A1722A6B7C055534DC4965F36FA1A24083D80E - E0AC89F1B314BDF02C0D9DFD3945CF3C4189C4B0D83A6E692A0892C3C073BC18 - 0033153EEFE155E1175364E14D54B5EC2D14AA7DB5D8B197896D00EE48C4A394 - B8FC13EA3FF90D1AE87E4E6C19134D05C16CA302CFF05A002417FE74D18B313C - CD59F97AAA59FD0E0A57AC177D006F890F1DA4DEA39FA72BC77E287A09D1AC61 - 901C049EE095005085AF8A5FEDF18346AB597E17CD59772F85CB57883E80B7C5 - 878FD395439FA0DE133F15BD51D9AC2302CF8C06BC1000D6E25785CF7BFC2085 - AB57D2829D0F5159CD6DA20F905BA2BD4FD3B9E7EFA378DF31D1E3105023020E - 024F8400179C9B54E1ABE13E173E9FAD2FA5B9CD7F4D8BB67D898215CB451F20 - F7044B96D09CC6B7881FEB04457B3AE556D7F7FA565C7C6EB1EEF5B999C7F9C5 - 65F5B4F8659FA59239B78B3E407E885E7A9ACE3CFB2E1A8B9E173D757E405D3E - 746D24E0D608C05AFCEA58BF844AEBB6D0B2DBBF43C148B3E803E48F60D912AA - 6E7C2D45AFECA5B191CB628BB5E05D1B15B8110033177F55D39DB478D7D7A930 - 542BFA00F9A7305849D54DAFA7D1E8518AF79F165BAC7B7E5F8C00662AFE3045 - 9A5E43F3B67E9902C525A20F90BF0A0A82149E7B378DC78E53A2FF45B1C5D510 - C86600CC56FC778BE2FF0285427C0E0020FF0502452204EE122170C2ED10C856 - 00A8E25767FBCD617F65E36DB4F816B1E70F701FC03F3804220B5F250E055A8D - 670D5CBA49285B01C085CF0130BDE70F57ADA1C5AFF8061516E2565EF0A98200 - 552CBC9386BA1FA7F1789FD8A002408580E361C085E9B4E4A17F8882C139D478 - DB97A9A82822FA00FEC535C0B5C035C1B561D608D78AAA1B47393D02B016BF79 - 9D9F6FF269BCE553545677AB5807808028FE50653DF59F7A5CF4B27AABB0D301 - C0238CAB8FFBE72C7F2DD5AE7D9F5807002514594B13B1E314EB3D297AD60787 - 986341E0E42180DAFB4F074071E95C9ADFFC51B10E00C9B8368ACBEAC41AEF2C - B966B876541D39221B01303DFC9FB769371596E0461F8099706DCCDB788F58E3 - 4365AE19C7CF05381500EA434FEFFDCB6A565365D35BC43A00CC866B846B254B - A300A703607AEF5FB7E9BDA2E7F4390780DCC635C2B592A551801301A03EECF4 - DEBF54245A45FD5D621D006E846B856B260BA30027038093CB0C80DAB57F21B7 - 01C08D15C89A5101E0D828407700A80FC87FAE39FC2F2EADA6F245771B5B0120 - 355C335C3BD38701AA56B58680532300FE73CDBD7F64C9EBA8A8004FF901A483 - 6B866BE7DAC300AD7407802A7E1500C554D9F86AB104807499B5C323001500DA - 43406700A80FC64BF3F83F503197CA2A5A8CAD00901EAE1DAE213300D47900A6 - 2D04740600E30F361D0091F9BB8842BAFF0E009F10B563D4D05501A0ADF89913 - 01C07FA61900A5F376F24600C89059432A00B8B63C1B002A9DA603A0BC6EB358 - 0240A6CC1A4A0E006D21A03300D8740014975652A07489B1150032C335C4B5E4 - F111804A25150085C6EBB9357F58001F2A902FC731EBEAEA5AB34D5700282A00 - 8A285C8DBD3F800EE11AAEA59C3A07504881403D6F04009B02450BC47FCDBA9A - AE332D7406009B0E816084E7380300BBCC5AD25EFC4C5700A80FA65A211506F8 - C40500D865D692350054B34DF70880C90F57586A7601C01EE3591A6D456FE544 - 00980A8D6B9700605761013F0FE00807470000A0514E8C0050F800CED25A63CE - 1D020080E72100007C0C0100E0630800001F430000F8180200C0C71000003E86 - 0000F0310400808F2100007C0C0100E0630800001FD3F560010709CF59C6EF34 - 2F132D424D2F7F94CA17DC2ED67DAF66CE1C2A2870266BE3B11845A3C3B20779 - 69F8DC53D4F5E45F89B501D1A2A225449B106D52345B10000EDB75FB2BE8AD7F - FAE7B2A7DFE4E4247DF2A31FA2532F75C92D90771C0C001C02382C525525D79C - 515858483B6FBE55F600D28300701817A8D3B6EDD89995BF07F20F7E6A1C5656 - 5E2ED79C535919A135EB36C81E40EA10000E8B44AAE59AB376DC74B35C03481D - 02C061B5757572CD599BB66CA56090CFC102A40E01E0A0407131CD9B9F9D1724 - 854261DAB4798BEC01A40601E0A0B5E2B8BC588440B6ECB8E916B906901A0480 - 83B6B66C976BD9B166FD06AAA8C00B99207508008714151551F3C6CDB2971DFC - 77663B7420B721001CB26E7D339596F14D91D985C300480702C021DB77BA7359 - 6EE9F215545B3757F600AE0F01E000BE1CD7BC39BBC37F2BB7C207720F02C001 - 1B376F312ECBB9058701902A0480035A76DC24D7DC31BFBE9E162D5E227B00B3 - 430068C627FED66D68963DF7601400A9400068B6656B0B050201D94B5F477B2B - 8D8F8FCB5EE65AF08420A4003F219AB5ECB437FC3F7CB0934E1CFBADEC652E52 - 554DABD7AC953D8099210034E2C93F56AE5A237B99E93A79823A3BDA65CF9E16 - 5C0D801B400068B4AD6587AD61772291A033A74FD191831D728B3D9BC5E14830 - 18943D806B2100346AD9616F8FCB43FF8989093A7BB69BFA7A7BE5D6CC959494 - 50F326F7EE47F0320E6A7E547BC5CA55C6A3D43CAD1ADF3F110ABB77F9D60D98 - 145493BAB9F3E8630F3F227B99F9FE77BF4DFFFBE31F19EB7FF2677F49B7ECB2 - FFCFD7DE7A803EFFD97F963DF7D42F68B07572746C74942E5C382F7BE9E382E7 - 625FDFBC89968B65E3A245545C7CEDE8E8F19FFD94FEEB5B8FC99E47605660EF - BBEB35AFA5D7FFC19B642F331FFFC8FDBF9BDD77EBB6EDF4F6BF7DB7B16E075F - 5178FF7BDEE9EAD4E14B9A96D2BD0F3C287B99FBF5334FD17F7CED2BB2979A9A - 9A39B4EBE5AFA49B5FB68B22911B4FD0FADCB3BFA27FFBCAA3B2E7119815D8FB - ECDE7E3B3C3C44A74FBD247B44470E1F32A6FCB68BF7BA6E3F21188FC7E59A3D - B78A1151C3C246D9BB3E3E21CBD3B1F3A88CC33995E2F723048006FC43B9A061 - A1EC65E65067074D4D4DC91ED1C848944E9E382E7BF66C77F9A6A0DE2B97E59A - 7D5BB7EF906B33E359985E7DF7EBE8639F7CC4782743918DC30E3F400068A0E3 - E19B83ED6D726DDAC18E6BB765828F7DE7D4D6CA5EF68D8AE3F784A651C08A15 - ABE4DAB59A962EA3FB3FF2717ADD1BDE48C1101F8DC28D20006C2A2828A06DDB - 77CA5E662626C6A9B3F3DA6BFF1D6DAD72CD3EB79F4F1818E0C357FB1A6778C6 - 81FF1FF030FFFDF77DC8780E02528700B089F73A7667FE3D7AE430C54646646F - DAB9B3DD74E9628FECD9E3F6B301239A4E42F2A5CDAAEA1AD923E3B2DD3BDEF5 - 5EE3042C6E7D4E1FFEC56CDAAE613EFEB603FBE5DAB5F8329E0E7C8E6261E322 - D9CB3E5D2702594D8D19003CFFE13D7B3E683C7E0D994100D8C07B9CADDBAE7F - 522A151DD729F2D603FBE49A7D6E8E02740600BF6DA93212A1DD7BEEC363CF36 - 21006C58B57AADF18368C74B5D2F527F7F9FEC5DEBE4F163E2F8B95FF6ECE107 - 95F878D90D3A2E692AB5B575F49E7BF6183717813D08001BEC3EF9C7DA5B671F - FE33BE34A8EB30A05A1C3BAF5CB55AF6B22B91D0370278C39BDE9CF2FD00707D - 08800CF1F5E62DDBECDF6073A300606DFBF51D06B87D4F800E78C0491F044086 - D66F6836CE48DB71F9D2253ADBDD2D7BB33B7AE410C56231D9B3876F31E6F0CA - 369D8700A00F0220433AAEABA7B2F767FC8460E70C370A65A2A4B49436346F92 - BDEC89C7F50418E88500C8005F7BD671E929D50060EDAD1A0F03349CBB48DBF4 - 5DCEE02108800C6CDABC75C64749D3111D1EA6E3694CFD75B0A35DCB5C81AC79 - D3166324904DB1D8B5373A81FB100019D8AE61F8CF937FA6735CCCD7D18F1E3E - 247BF6184F086A388109B90F0190A6B2B272E32DBC76B56570834FEBFEBD72CD - 3E1D7730A683A73B03EF4100A4891F47E5B7F0DAC14FC7F1ECBFE9E25183F591 - 613B78F252EB3DF54EE31399B960A05FCF4D57B9023302A569F79E0FDABE9986 - F7FE5FF8DC67642F3D7BEEFF30352D5D2E7BF67CEF3BDFA49FFFF4C7B2E7AC57 - DEF97BF4A637FFB1EC65D7D8D8A831D9CAE9975EA29E0BE7E9F2E54B34343868 - CCB93031611E86151614187307F0AFEB0A596D30239037F01E939FADB78B27FF - C8547BABBE47847764F930209BCE769FA19FFCE807F48F1F7F90DEF3376FA74F - 3DF4207DEBB1AFD393BFFC857149956FC1BED8D34357441870BB74E9225D387F - CE7BC5EF3004401AF86D3B3AEEA53F682300323977309B858D8B6DCF64E425C3 - 4343C688E6C3F77D801EBCFF5EFAE17F7F974E1C3FA6EDEA493E4200A441C7CD - 3FFC8CBF9D29B2CE9F3B6B0C5375C9877708F6F65EA1C7BEFE35DAB3FBDDC661 - 0DFF1B416A1000299A37BF9E162F6992BDCC75B6DB1FC25F6FFE807471A8B9F5 - 84A05DC3C3C3F4CDFFFC77BAFF03BBE999277F298EF5C7E4AF40AA100029DA26 - 86FF3AE898E66BFFDEDFC835FB78AEC065CB57CA5EEEE027243F74EF3DF49438 - A6C7103F730880146DB7F9D61F363838A065A65F3EA3CD67B275D971736E1D06 - 749F3E455FF8DCA78D1100D8830048014F44A963B249DE6BE938CBCC7FC6FE17 - F48D02F89D8676EF6DC8A6919111DF9DAD770A0220053A6EFD65AD1A9FEBD779 - 18505A5646EB9B37CA1EF80902E006F804998EE3FF9168948E1E3E287BF6F12B - C4F8FAB52E3ADE6D00B907017003CB57AC34DE2F67174FEEA9FB76589D1386F2 - E3CD76273881DC8300B8015D2FD4D8F79BE7E49A3ED79B4D385DFC78F3E6AD2D - B2077E816701AE834F8C3DFCE9CF19F3CFDBC1D7A7BFFAA5CF6B9F16ABB0B088 - DEF68E776A7B21C691439DF4997F7A58F6F4D2F92CC0B1A347E891871F923D1F - C0EBC1DDB16EC3467AF7DFBF4FF6F21F0714DF4DE7C4137108001BF030903B5C - 993ACB453C9268D9EEAFEFD9EF1000B3E0A9A7376EDE2A7BFE91ED8942C05D08 - 8059AC6FDEE4CBB3E2FCBCC3FCFA05B207F90E01300BBF0DFFAD704F807F2000 - 66C033E6F208C0AFF83020579F1084F4200066604EFB9DFDB7E778455DDD5C6D - D38E81B7210066A0E3A59FB90E2703FD010190A4A2B292D6AC5D2F7BFEB54DC3 - ECC7E07D0880245B5B7668BBB32E97F1DD8F6BD7D97FFF01781B7ED293E8BAF7 - 3F1FE4C37C81707D08008B9A39B5C6D37F60E22704F945A890BF1000167EBEF6 - 3F936028645C1181FC8500B0E079FFE16A380CC86F0800896F7FE51765C0D5D6 - AC5B6F5C1981FC840090F2F9355976184F08E2C468DE420048F8219F9D8E29D1 - C19B302188B0A46929DDFBC083B2674F67475BD6DEB83B1B1ECDDCBAEBE5B2A7 - C7FD7B761B2FD3CC142604B101330239EB8D7FF456BAE35577C99E3D8FFEEBBF - D0817D7B65CF1D0D0B1BE9818F7E42F6F4F8D10FBE47FFF3C3EFCB5EFA100036 - 604620E7F0536FBACEFEF37BE8EDBCFA5B177E35B6EE1764E26A407EF27D00AC - 5CBD862255D5B267CFC18E764A24389CDDB757F32CC473E7CD370E9520BFF83E - 005AB6EBBBF6AFF3ADBD76EDD3F8EA30054F08E61F5F07003FEDC60FFFE83031 - 314EED6DFAE6E9B7ABE7C279E325A23AF184A178502ABFF8FAFFE6BAF5CDC67B - F174387AE430C5464664CF1B748F022A23113C2A9D677C1D003AE7BE3BB0F705 - B9E61DBACF03301C06E417DF06403018A2E6CD9B65CF1E7EA1869786FF4AEF95 - CBD475F2A4ECE9B169CB3663CA74C80FBE0D00E351D7909E475D4F1CFB2D0D0D - 0ECA9EB7BCF0FCB3724D8F7038ECCBF725E42BDF0680CE5B7F5BF7BB7BE3CFF5 - F04D49535353B2A707EE09C81FBE0C003EF1B76E43B3ECD9A7F335DDBAF5F7F7 - D16F8F1E963D3DD6AEDF40E51515B207B9CC9701B0656B0B050201D9B3878FB1 - FB7A7B65CF9BF66B3E41695C3EDDB65DF62097F93200744EFBDDE6E1BDBFC257 - 282626F8D6717D7018901F7C170091AA2A5AB96A8DECD9B77F9FF72EFF251B1E - 1EA2A3470EC99E1ECB56ACA4DABA3AD9835CE5BB00D8A671DA6F7EE8E6D2C5CC - 1F91CDA6BDCF3B704F00DE2198F37C17002D1A27B7C885BDBFD2D6BA9FC6C7C7 - 654F0F0440EEF35500D4CD9D474DCB96C99E7D6DFBBD7FFCAFF06DCA073BDB65 - 4F8FFA050DD4B87889EC412EF25500F0EBAE74E1876DF8102097ECFBCDF3724D - 9F1D1805E4345F0580CE21AB971EFD4D55477B2B251271D9D383DFA5805789E7 - 2EDF0440C3C285B4A061A1ECD97720878EFF95443C4E9DED6DB2A7074FA6B27A - CD5AD9835CE39B00A8AAAE916BF6759F394DA75EEA92BDDCF2ECAF9E916BFA34 - 342E926BB31BE8EF936BF6F5F7F7CB35B0CB379382F23075D5EA35142E29915B - 3233393149C78F1DA5582C26B7E49EC54D4BA9BA5ACF34687C83114FD299CA54 - 682B56ADA6329BF32FF0BFFF8913C76824CA7363FA04660506F031CC0A0C004E - 400000F8180200C0C71000003E860000F0310400808F2100007C0C0100E06308 - 00001F430000F8180200C0C71000003E860000F0310400808F2100007C0C0100 - E0630800001F430000F8180200C0C71000003E860000F0310400808FE90E8029 - B9E4098BF5BE8A16C0AFAEAEA5E91AD3C0C111C054EEBE3903C0539CAB252702 - 80136A8A26C706CD2E00D862D69259579A39350298A2C4A0BE97C101F85962B0 - 57FC577BF1335D01A0D269BA4D8E5E104B00B0CBACA56B6B4C03274E02729BA4 - 58DF29630B00D863D612BF07505BE12B4E1C02F0079D14C3969362A9F5C302F8 - 101F4EBF2896665D69A63300CC3DBF6AE3F1611A8F6114006007D710D792B5B6 - 34EE58750700E30FC8AF2E9EA0684FBBB105003263D690594F666D31CF0580B5 - F855008CD3F0C57DBC11003264D610DF08A402406B0838750EC00C80E8B9FF23 - 4AA80F0C006911B563D4D05501A095EE43006ED30190885EA6D8D001B10E00E9 - E2DAE11ABA3A00549D69A17B04A03E9C19004463D47FFA17620900E9326B674C - 3415005A8B9F393B023002A0EB6744F1B858078094899A316AE7AA00C8991100 - 7F50FED0A3341EEFA3810BFC8D0040AAB866B876B886CC5AD25EFCCC899380D6 - 00E0F44AD0A5238FC9ED00706353B26612A2A911800A00AD9C1E01F0871FA558 - EF711A3AF7845807801BE15AE19A31F7FEC901A035049C1C01F0318B19009C64 - 3DED8F8A2DBC0D0066C335C2B562EEFD5500588FFFB5722200987514C0DF44DC - 48B4C1AEEF8B7500980DD788B9F7E713E7C9C7FFDA393502B08E02CC11007F43 - E7F77F9146C6F8D9660048C6B5C1356216BF1A013872F65F29924BDD0AE492F1 - 3A074D214D4D886F2476912A1BEF307E0500A6F5BCF0208D5CEE106B51D1781A - 30EB08C0114E0540320E013308E27DE728145948E1AA15C6AF000051FFA99F88 - 63FFAF8A357EF26F44341E05A8E37F47F6FECCC90050A30055FC6600708BF674 - 50D5E25D5414AC167D007F1B8B76D1A9A7F7881172BFE8A9E2B70EFF1D93AD11 - 806206011F0A0CF7B45375D3ABA8A03064FE12800F4D8E0F51D7137F4763C3A7 - 458FF7FE3CF457D7FF1D3BF657B211006A24A09821C0931C24068E8B91C01DA2 - 9BED2002F080A9513AFDCCFB297AA94D74F8B83F6B437FC5CDC22BA0C4E0451A - 1B3C4DA1C6DB2950E0D4254900EF494C8DD385671FA081EE67448FF7FCD6137F - D633FF8E72230054AA992383F8C0599A1021106EBC0D2100BEC0C57F51147FFF - A9C7454F9DF4E3E6F865BF646E8E00A6BFB9F840378D0F9EA070C3AD14282C96 - 5B01F24F6262847A7EFD0F3470FA49D1537B7E55FC7CC92F6B7B7F96ED00E0BD - BEF51B9BFE461303E729D6B39FCA1A765220506E6C03C82789780F753FB59B86 - CFEF153D2E7EB5F7B7163FD743568A9FB93502982904A6686CA4570C8B9EA0D2 - 9AE5142C6F307E15201F447B5EA0AE2777D3E8C009D14BDEF3F3493F0E80AC16 - 3FF3C22180FAA6CD363516A7BE177978344265733752414140AC03E4A6A9A904 - 5DECFC22753FFF88F8D9BE22B6A8E25797FBB8F0ADC5CF2D6BDC0C00A6BE595E - F24840B5298A5E3C4283677E4525558BA8B80CA301C83D2317F7D2A9A7EF15C7 - FB4F8B9E75C86FBDCDD7B5E267C9D7E8B3C9BC1FC06C1C44BCA7E7138061D94A - 452B315A55D3ED54B7E16D14AE582CFA00DE161F3A45973ABF44FD5D5CF85CEC - DCB8F0F91ABFBACECF856F3DE6CF7AF133370340E1CF60DE226C860037BE3B90 - 1B078119021C08D5CBEEA0DA757F288200CF1180F7C4878ED3E543DFA6BE937C - 794FEDE9B971D1F370DF3AE49F1EEDBAC80B01C0D4488043C03A1AB006816A21 - AA68D84CD54DBF4FE58D2FA3A2420E0700774C4CC668581CAAF675FD9886CEB6 - 8A2DAAD8D5DE5E15BE75AFAF0ADFD5E2675E0900A642801B8740721004E552B5 - 2015852A4418ECA4CAFA9B283C7F1385C2F3C4760067F1E5BCF885361A3CFF9C - 28FAE769223124B6F231BD2A76D5AC67F8B9F05D1FF227F3520030F57978A946 - 03D620E0C641606D6A7B3185ABEBA9A4662D052B975238B288026573295C5E4B - 854515E28FE4AF0548D15482262786293E7C99C6A317293E709A46075FA458EF - 618AF79D175FC085AD1A17BAB5A9EDB30DF73D51FCCC6B01A0F0E7524D9D1F50 - 61A00ADE1A0AAACF4D7D1D37FE7DD63F0B2055D63D3517AFDA837353856D0D01 - 55F0BC545F672D7CD53CC5EB45612D5E55CCD602B7167D72F173B30600534B80 - EB5185AA8A363900B871B1ABA55A574DFD1EF5FBB97952AE14842A62D55461AB - 91815AAA756B63EAF701A4CA5AB86A4FAE9A2A74B5CE4BFE5AB5B4364FCBB5A2 - B016B25AE7C6853ED35235A69600A950C56B2DE6E4424F2E78665DF7BC5C2E8A - 998A5B6D4BDECEACEB0037622DE2E4E2B6F6D552ADE7947C298AD90A1D450F3A - 588B7BB6F59C94AF0582C20727E47CC103000000000000000000000000000000 - 0000000000000000000000000000000000000080F710FD3FE0A636B770554958 - 0000000049454E44AE426082} + 0000000000004066E5C965AE48FC7E72EDFB03774CCBA592D8CF5AD95E20EAF3 + 5BBF0F5E9F6D3B40BA54C1F3D25AFCD6ED59291B0B24B1B87999D8F24563AAAF + 58D701E69258E4AA3F259AEA5B1B4B5C66856C2A086B317381AB3EAFCFD5ACBF + 472D0192612D686E5CFC7335EBD730D5F7BC6C280A55C4AAA9E22EB8A615D734 + 5169F5160A56AEA160F90A2AAA68A0E9E27A2A1A0B138542E26B0092148B513C + 384879D1F3141F3A4B63C3C7696CE00845FA0E50F4CA19F10593B3B4C440F07C + 10783900662B7A6E81DFB5A2A2322A6D7A059537DC49A50B6EA1824083D80EE0 + ACC989B314B9F02C0D9FFD3945CE3C41F1F888D83A61692A0812C3C073BC1800 + B3153EEFE155E11752B8F126AA5CF6160AD6BC9A42C5A5621B803B62D1088D5D + F9090D9CFC060DF63C27B68C8BA68260AE518167782D00120B7FA6E8898AA866 + E5EBA97AF53B2854BE5EF401BC25367C90FA8E7E9EAE1CFBA1E8C545B3864162 + 10788257024015BE2A7EB5C70F1AAD7AF95D54B3EE5E0A95AD107D006F8B8D1C + A72B873E417D277E2A7A63B25947049E190D782100ACC5AF0A9FF7F8410A55AD + A4853B1FA2D2EADB441F20BB44FA9EA673CFDF47B1FE63A2C721A046041C049E + 08012E3837A9C257C37D2E7C3E5B5F42F35AFE9A166DFD12052B968B3E40F609 + 162FA19AC6B7881FEB38457ABBE456D7F7FA565C7C6EB1EEF5B999C7F985A5F5 + B4F8659FA5E29ADB451F2037442E3D4D679E7D178D47CE8B9E3A3FA02E1FBA36 + 12706B04602D7E75AC5F4C25755B68D9EDDFA160B845F4017247B074095535BD + 962257F6D2F8E865B1C55AF0AE8D0ADC0880D98BBFB2F94E5ABCEBEB945F542B + FA00B9273F584155CDAFA7B1C8518A0D9C165BAC7B7E5F8C00662BFE10859B5F + 43F3B67C990A0B8B451F2077E5E505A9A8EE6E9A8C1DA7F8C08B628BAB2190C9 + 0098ABF8EF16C5FF050A85F81C0040EE0B040A4408DC2542E084DB2190A90050 + C5AFCEF69BC3FE8AA6DB68F12D5FA64021F701FC834320DCF82A7128D0663C6B + E0D24D42990A002E7C0E80993D7FA8720D2D7EC537283F1FB7F2824FE505A8BC + F14E1AEE799C2662FD62830A0015028E870117A6D31287FE45140CD650D36D5F + A68282B0E803F817D700D702D704D78659235C2BAA6E1CE5F408C05AFCE6757E + BEC9A7E9964F5169DDAD621D0002A2F88B2AEA69E0D4E3A297D15B859D0E001E + 615C7DDC5FB3FCB554BBF67D621D0094A2F05A9A8C1EA768DF49D1B33E38C41C + 0B02270F01D4DE7F26000A4BE6D182968F8A750048C4B551585A27D67867C935 + C3B5A3EAC81199088099E1FFFC4DBB29BF1837FA00CC866B63FEC67BC41A1F2A + 73CD387E2EC0A900501F7A66EF5F5ABD9A2A9ADF22D601602E5C235C2B191A05 + 381D00337BFFBA4DEF153DA7CF39006437AE11AE950C8D029C0800F56167F6FE + 2522D1CAEBEF12EB0070235C2B5C331918053819009C5C6600D4AEFD0BB90D00 + 6E2C4FD68C0A00C74601BA03407D40FE73CDE17F614915952DBADBD80A00C9E1 + 9AE1DA99390C50B5AA35049C1A01F09F6BEEFDC34B5E47057978CA0F20155C33 + 5C3BD71E0668A53B0054F1AB0028A48AA6578B2500A4CAAC1D1E01A800D01E02 + 3A03407D305E9AC7FF81F279545AD66A6C0580D470ED700D9901A0CE03306D21 + A03300187FB09900082FD84514D2FD7700F884A81DA386AE0A006DC5CF9C0800 + FE33CD002899BF933702409ACC1A5201C0B5E5D90050E934130065759BC51200 + D265D6506200680B019D01C06602A0B0A48202254B8CAD00901EAE21AE258F8F + 00542AA900C8375ECFADF9C302F8509EA8257E398E595757D79A6DBA02405101 + 5040A12AECFD01740855732D65D539807C0A04EA792300D814285828FE6BD6D5 + 4C9D69A13300D84C0804C33CC71900D865D692F6E267BA02407D30D5F2293FC0 + 272E00C02EB396AC01A09A6DBA47004C7EB8FC12B30B00F618CFD2682B7A2B27 + 02C0946F5CBB0400BBF2F3F879004738380200008DB2620480C2077096D61A73 + EE1000003C0F0100E0630800001F430000F8180200C0C71000003E860000F031 + 0400808F2100007C0C0100E0630800001F430000F898AE070B384878CE327EA7 + 79A968616A7EF9A354B6F076B1EE7BD535359497E74CD6C6A2518A4446640F72 + D2C8B9A7A8FBC9BF126B83A245448B8B3629DA9468B620001CB6EBF657D05BFF + F4CF654FBFA9A929FAE4473F44A75EEA965B20E738180038047058B8B252AE39 + 233F3F9F76DE7CABEC01A40601E0302E50A76DDBB133237F0FE41EFCD438ACB4 + AC4CAE39A7A2224C6BD66D903D80E421001C160E57C93567EDB8E966B906903C + 0480C36AEBEAE49AB3366DD94AC1209F8305481E02C04181C2429ABF20332F48 + 2A2A0AD1A6CD5B640F2039080007AD15C7E58522043265C74DB7C83580E42000 + 1CB4B575BB5CCB8C35EB375079395EC804C9430038A4A0A0805A366E96BDCCE0 + BF33D3A103D90D01E09075EB5BA8A4946F8ACC2C1C06402A10000ED9BED39DCB + 724B97AFA0DABA79B207707D080007F0E5B896CD991DFE5BB9153E907D10000E + D8B8798B7159CE2D380C806421001CD0BAE326B9E68E05F5F5B468F112D90398 + 1B0240333EF1B76E438BECB907A30048060240B32D5B5B291008C85EEA3A3BDA + 68626242F6D2D78A27042109F809D1AC75A7BDE1FFE1835D74E2D86F652F7DE1 + CA2A5ABD66ADEC01CC0E01A0114FFEB172D51AD94B4FF7C913D4D5D9217BF6B4 + E26A00DC000240A36DAD3B6C0DBBE3F1389D397D8A8E1CEC945BECD92C0E4782 + C1A0EC015C0B01A051EB0E7B7B5C1EFA4F4E4ED2D9B33DD4DFD727B7A6AFB8B8 + 985A36B9773F82977150F3A3DA2B56AE321EA5E669D5F8FE89A2907B976FDD80 + 494135A99B379F3EF6F023B2979EEF7FF7DBF4BF3FFE91B1FE277FF69774CB2E + FBFF7C1D6D07E8F39FFD67D9734FFDC2065B2747C7C7C6E8C285F3B2973A2E78 + 2EF6F52D9B68B958362D5A448585D78E8E1EFFD94FE9BFBEF598EC79046605F6 + BEBB5EF35A7AFD1FBC49F6D2F3F18FDCFFBBD97DB76EDB4E6FFFDB771BEB76F0 + 1585F7BFE79DAE4E1DBEA47929DDFBC083B297BE5F3FF314FDC7D7BE227BC9A9 + AEAEA15D2F7F25DDFCB25D140EDF7882D6E79EFD15FDDB571E953D8FC0ACC0DE + 67F7F6DB9191613A7DEA25D9233A72F89031E5B75DBCD775FB09C1582C26D7EC + B9558C881A1A9B64EFFAF8842C4FC7CEA3320EE7648ADF8F10001AF00FE5C286 + 46D94BCFA1AE4E9A9E9E963DA2D1D1089D3C715CF6ECD9EEF24D417D572ECB35 + FBB66EDF21D766C7B330BDFAEED7D1C73EF988F14E86021B871D7E8000D040C7 + C337073BDAE5DA8C839DD76E4B071FFBD6D4D6CA5EE68D89E3F7B8A651C08A15 + ABE4DAB59A972EA3FB3FF2717ADD1BDE48C1223E1A851B4100D894979747DBB6 + EF94BDF44C4E4E5057D7B5D7FE3BDBDBE49A7D6E3F9F3038C887AFF635CDF28C + 03FF3FE061FEFBEFFB90F11C04240F016013EF75ECCEFC7BF4C8618A8E8ECADE + 8C73677BE8D2C55ED9B3C7ED670346359D84E44B9B9555D5B247C665BB77BCEB + BDC60958DCFA9C3AFC8BD9B45DC37CFCED07F6CBB56BF1653C1DF81C4563D322 + D9CB3C5D27025975B519003CFFE13D7B3E683C7E0DE94100D8C07B9CADDBAE7F + 522A199DD729F2B603FBE49A7D6E8E02740600BF6DA9221CA6DD7BEEC363CF36 + 21006C58B57AADF18368C74BDD2FD2C040BFEC5DEBE4F163E2F87940F6ECE107 + 95F878D90D3A2E692AB5B575F49E7BF6183717813D08001BEC3EF9C73ADAE61E + FE33BE34A8EB30A04A1C3BAF5CB55AF6322B1ED7370278C39BDE9CF4FD00707D + 088034F1F5E62DDBECDF6073A30060EDFBF51D06B87D4F800E78C0491F04409A + D66F6831CE48DB71F9D2253ADBD3237B733B7AE41045A351D9B3876F31E6F0CA + 349D8700A00F02204D3AAEAB27B3F767FC8460D72C370AA5A3B8A48436B46C92 + BDCC89C5F40418E8850048035F7BD671E929D900601D6D1A0F03349CBB48D9CC + 5DCEE0210880346CDABC75D6474953111919A1E3294CFD75B0B343CB5C81AC65 + D31663249049D1E8B5373A81FB100069D8AE61F8CF937FA6725CCCD7D18F1E3E + 247BF6184F086A388109D90F0190A2D2D232E32DBC76B5A771834FDBFEBD72CD + 3E1D7730A682A73B03EF4100A4881F47E5B7F0DAC14FC7F1ECBFA9E25183F591 + 613B78F252EB3DF54EE31399D9607040CF4D57D9023302A568F79E0FDABE9986 + F7FE5FF8DC67642F357BEEFF30352F5D2E7BF67CEF3BDFA49FFFF4C7B2E7AC57 + DEF97BF4A637FFB1EC65D6F8F89831D9CAE9975EA2DE0BE7E9F2E54B343C3464 + CCB93039691E86E5E7E5197307F0AFEB0A596D30239037F01E939FADB78B27FF + 4857479BBE47847764F8302093CEF69CA19FFCE807F48F1F7F90DEF3376FA74F + 3DF4207DEBB1AFD393BFFC857149956FC1BED8DB4B57441870BB74E9225D387F + CE7BC5EF3004400AF86D3B3AEEA53F682300D239773097C6A6C5B66732F29291 + E1616344F3E1FB3E400FDE7F2FFDF0BFBF4B278E1FD376F52417210052A0E3E6 + 1F7EC6DFCE1459E7CF9D3586A9BAE4C23B04FBFAAED0635FFF1AEDD9FD6EE3B0 + 86FF8D2039088024CD5F504F8B9734CB5EFABA3AEC0FE1AF377F40AA38D4DC7A + 42D0AE919111FAE67FFE3BDDFF81DDF4CC93BF14C7FAE3F25720590880246D13 + C37F1D744CF3B57FEF6FE49A7D3C57E0B2E52B652F7BF013921FBAF71E7A4A1C + D363889F3E044092B6DB7CEB0F1B1A1AD432D32F9FD1E633D9BAECB839BB0E03 + 7A4E9FA22F7CEED3C60800EC4100248127A2D431D924EFB5749C65E63F63FF0B + FA4601FC4E43BBF73664D2E8E8A8EFCED63B050190041DB7FEB2368DCFF5EB3C + 0C28292DA5F52D1B650FFC040170037C824CC7F1FF682442470F1F943DFBF815 + 627CFD5A171DEF3680EC8300B881E52B561AEF97B38B27F7D47D3BACCE0943F9 + F166BB139C40F64100DC80AE176AECFBCD73724D9FEBCD269C2A7EBC79F3D656 + D903BFC0B300D7C127C61EFEF4E78CF9E7EDE0EBD35FFDD2E7B54F8B959F5F40 + 6F7BC73BB5BD10E3C8A12EFACC3F3D2C7B7AE97C16E0D8D123F4C8C30FC99E0F + E0F5E0EE58B76123BDFBEFDF277BB98F038AEFA673E2893804800D7818C81DAE + 4C9DE5221E49B46EF7D7F7EC77088039F0D4D31B376F953DFFC8F44421E02E04 + C01CD6B76CF2E559717EDE6141FD42D9835C87009883DF86FF56B827C03F1000 + B3E019737904E0577C1890AD4F08426A1000B330A7FDCEFCDB73BCA2AE6E9EB6 + 69C7C0DB1000B3D0F1D2CF6C879381FE800048505E51416BD6AE973DFFDAA661 + F663F03E044082ADAD3BB4DD5997CDF8EEC7B5EBECBFFF00BC0D3FE90974DDFB + 9F0B7261BE40B83E048045754DADF1F41F98F809417E112AE42E0480859FAFFD + CF265854645C1181DC8500B0E079FFE16A380CC86D0800896F7FE51765C0D5D6 + AC5B6F5C1981DC84009072F9355976184F08E2C468CE420048F8219F9B8E29D1 + C19B302188B0A47929DDFBC083B2674F57677BC6DEB83B171ECDDCBAEBE5B2A7 + C7FD7B761B2FD34C172604B101330239EB8D7FF456BAE35577C99E3D8FFEEBBF + D0817D7B65CF1D0D8D4DF4C0473F217B7AFCE807DFA3FFF9E1F7652F7508001B + 30239073F8A9375D67FFF93DF4765EFDAD0BBF1A5BF70B3271352037F93E0056 + AE5E43E1CA2AD9B3E7606707C5E31CCEEEDBAB7916E279F31718874A905B7C1F + 00ADDBF55DFBD7F9D65EBBF6697C7598822704738FAF03809F76E3877F74989C + 9CA08E767DF3F4DBD57BE1BCF112519D78C2503C28955B7CFD7F73DDFA16E3BD + 783A1C3D7298A2A3A3B2E70DBA470115E1301E95CE31BE0E009D73DF1DD8FB82 + 5CF30EDDE701180E03728B6F0320182CA296CD9B65CF1E7EA1869786FF4ADF95 + CBD47DF2A4ECE9B169CB3663CA74C80DBE0D00E351D7223D8FBA9E38F65B1A1E + 1A923D6F79E1F967E59A1EA150C897EF4BC855BE0D009DB7FEB6ED77F7C69FEB + E19B92A6A7A7654F0FDC13903B7C19007CE26FDD8616D9B34FE76BBA751B18E8 + A7DF1E3D2C7B7AAC5DBF81CACACB650FB2992F0360CBD6560A0402B2670F1F63 + F7F7F5C99E37EDD77C82D2B87CBA6DBBEC4136F36500E89CF6BBDDC37B7F85AF + 504C4EF2ADE3FAE0302037F82E00C29595B472D51AD9B36FFF3EEF5DFE4B3432 + 324C478F1C923D3D96AD5849B57575B207D9CA7701B04DE3B4DFFCD0CDA58BE9 + 3F229B497B9F77E09E00BC4330EBF92E005A354E6E910D7B7FA5BD6D3F4D4C4C + C89E1E0880ECE7AB00A89B379F9A972D933DFBDAF77BFFF85FE1DB940F7675C8 + 9E1EF50B1BA869F112D9836CE4AB00E0D75DE9C20FDBF0214036D9F79BE7E59A + 3E3B300AC86ABE0A009D43562F3DFA9BACCE8E368AC763B2A707BF4B01AF12CF + 5EBE098086C6465AD8D0287BF61DC8A2E37F251E8B515747BBECE9C193A9AC5E + B356F620DBF826002AABAAE59A7D3D674ED3A997BA652FBB3CFBAB67E49A3E0D + 4D8BE4DADC0607FAE59A7D030303720DECF2CDA4A03C4C5DB57A0D858A8BE596 + F44C4D4ED1F16347291A8DCA2DD96771F352AAAAD2330D1ADF60C49374263315 + DA8A55ABA9D4E6FC0BFCEF7FE2C4311A8DF0DC983E815981017C0CB302038013 + 1000003E860000F0310400808F2100007C0C0100E0630800001F430000F81802 + 00C0C71000003E860000F0310400808F2100007C0C0100E0630800001F430000 + F8180200C0C71000003E860000F0310400808F2100007C0C0100E063BA03605A + 2E79C262BDAFA205F0ABAB6B69A6C634707004309DBD6FCE00F014E76AC98900 + E0849AA6A9F121B30B00B698B564D695664E8D00A6293EA4EF6570007E161FEA + 13FFD55EFC4C5700A8749A69536317C41200EC326BE9DA1AD3C0899380DCA628 + DA7FCAD80200F698B5C4EF01D456F88A138700FC41A7C4B0E5A4586AFDB0003E + C487D32F8AA559579AE90C0073CFAFDA446C8426A2180500D8C135C4B564AD2D + 8D3B56DD01C0F803F2AB8B2729D2DB616C0180F4983564D693595BCC7301602D + 7E1500133472711F6F0480349935C43702A900D01A024E9D0330032072EEFF88 + 62EA0303404A44ED183574550068A5FB1080DB4C00C42397293A7240AC0340AA + B876B886AE0E0055675AE81E01A80F670600D1380D9CFE85580240AACCDA1917 + 4D0580D6E267CE8E008C00E8FE9988B298580780A4899A316AE7AA00C89A1100 + 7F50FED0633411EBA7C15EFE460020595C335C3B5C43662D692F7EE6C449406B + 00707AC5E9D291C7E47600B8B169593371D1D408400580564E8F00F8C38F51B4 + EF380D9F7B42AC03C08D70AD70CD987BFFC400D01A024E8E00F898C50C004EB2 + DE8E47C516DE060073E11AE15A31F7FE2A00ACC7FF5A391100CC3A0AE06F2266 + 24DA50F7F7C53A00CC856BC4DCFBF389F3C4E37FED9C1A01584701E60880BFA1 + F3FBBF48A3E3FC6C330024E2DAE01A318B5F8D001C39FBAF14C8A56E7972C978 + 9D83269FA627C53712BD48154D7718BF0200337A5F7890462F778AB588683C0D + 987504E008A702201187801904B1FE7354146EA450E50AE357008068E0D44FC4 + B1FF57C51A3FF9372A1A8F02D4F1BF237B7FE66400A851802A7E3300B8457A3B + A972F12E2A0856893E80BF8D47BAE9D4D37BC4087940F454F15B87FF8EC9D408 + 403183800F05467A3BA8AAF95594975F64FE12800F4D4D0C53F7137F47E323A7 + 458FF7FE3CF457D7FF1D3BF6573211006A24A09821C0931CC4078F8B91C01DA2 + 9BE92002F080E9313AFDCCFB2972A95D74F8B83F63437FC5CDC2CBA3F8D0451A + 1F3A4DC1A6DB2990E7D4254900EF894D4FD085671FA0C19E67448FF7FCD6137F + D633FF8E72230054AA992383D8E0599A122150D4741B42007C818BFF9228FE81 + 538F8B9E3AE9C7CDF1CB7E89DC1C01CC7C73B1C11E9A1C3A41A1865B29905F28 + B702E49EF8E4285DFCF53FD0E0E927454FEDF955F1F325BF8CEDFD59A60380F7 + FAD66F6CE61B8D0F9EA768EF7E2A6DD849814099B10D2097C463BDD4F3D46E1A + 39BF57F4B8F8D5DEDF5AFC5C0F19297EE6D60860B61098A6F1D13E312C7A824A + AA9753B0ACC1F855805C10E97D81BA9FDC4D638327442F71CFCF27FD3800325A + FCCC0B8700EA9B36DBF4788CFA5FE4E1D12895CEDB48797901B10E909DA6A7E3 + 74B1EB8BD4F3FC23E267FB8AD8A28A5F5DEEE3C2B7163FB78C71330098FA6679 + C92301D5A62972F1080D9DF91515572EA2C2528C0620FB8C5EDC4BA79EBE571C + EF3F2D7AD621BFF5365FD78A9F255EA3CF24F37E00B37110F19E9E4F0086642B + 11ADD86895CDB753DD86B751A87CB1E803785B6CF8145DEAFA120D7473E173B1 + 73E3C2E76BFCEA3A3F17BEF5983FE3C5CFDC0C00853F83798BB01902DCF8EE40 + 6E1C0466087020542DBB836AD7FDA108023C4700DE131B3E4E970F7D9BFA4FF2 + E53DB5A7E7C645CFC37DEB907F66B4EB222F04005323010E01EB68C01A04AA15 + 5179C366AA6AFE7D2A6B7A1915E4733800B863722A4A23E250B5BFFBC7347CB6 + 4D6C51C5AEF6F6AAF0AD7B7D55F8AE163FF34A00301502DC38041283202897AA + 05A9A0A85C84C14EAAA8BF89420B36515168BED80EE02CBE9C17BBD04E43E79F + 1345FF3C4DC687C5563EA657C5AE9AF50C3F17BEEB43FE445E0A00A63E0F2FD5 + 68C01A04DC3808AC4D6D2FA450553D1557AFA560C5520A851751A0741E85CA6A + 29BFA05CFC91FCB500499A8ED3D4E408C5462ED344E422C5064FD3D8D08B14ED + 3B4CB1FEF3E20BB8B055E342B736B57DAEE1BE278A9F792D0014FE5CAAA9F303 + 2A0C54C15B4341F5B9A9AFE3C6BFCFFA670124CBBAA7E6E2557B706EAAB0AD21 + A00A9E97EAEBAC85AF9AA778BD28ACC5AB8AD95AE0D6A24F2C7E6ED600606A09 + 703DAA5055D1260600372E76B554EBAAA9DFA37E3F374FCA96825045AC9A2A6C + 3532504BB56E6D4CFD3E8064590B57EDC9555385AED679C95FAB96D6E669D956 + 14D64256EBDCB8D0675BAAC6D4122019AA78ADC59C58E88905CFACEB9E97CD45 + 315B71AB6D89DB99751DE046AC459C58DCD6BE5AAAF5AC922B453157A1A3E841 + 076B71CFB59E9572B54050F8E084AC2F78000000000000000000000000000000 + 0000000000000000000000000000000000000000F01EA2FF072EBB36B6686FC3 + 4A0000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_256.png' @@ -385,462 +385,463 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D4948445200000200000002000806000000F478D4 FA000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 38EA49444154785EEDDD09745D577DEFF1BF66599607D9F218CF53E2D9B2252B - 1E12120274586FB5AFAFCD6B292DD096D2425B0A0D534303612E4D2994AE425F - 5717AB2DAF509AD79400A52D65488090C18EC7D8711CC7F33CC983ACC11AFCCE - FFDEBDD1BEC7F76AB0EEBD679F7BBE1FD6F6DEFB4849E423A1DFFF8C5B000000 + 38EC49444154785EEDDD09745DD75DEFF1BF862BC9B23CC896C7789E12CF962D + 59F1903469DA32ACB7E0F1200F4AA12D500A2D505AD28940DB74A684D252162D + 8FC5EA02FA68297984A62D054A87A46D9AC18EC7D8491CC7F33CC9832CC9D6E0 + 77FEF7EE8DF63DBE578375EF3DFBDCF3FD746DEFBD8F94443E52F5FB9F710B00 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000009E29333DFCC7 - F70A405CDC303D3C46A8F827D7F784EF1580B8C855005018788450895EB6EFC1 - 70B6F1BD03E08B70B0670BFAE16E43911022D1182ACCED7CB89F070051192AFC - ED7CB89F872221408AC7DDD7B9823CDCABE16E038028640BF8E16C733FA6B27D - 2E0A880029AC6CA1ADC201EEF6E1CFCBF6B170AFDC31001452B6B076FB6C6315 - FE58B65EE51A238F088DC2C815CC3AB6733B0ECF95FBB16C4D857BE58E01A010 - B285B3DB0FD654B671B68FA95C63E40181913FB98258C7766EC7D9E6DACA07D9 - A674ACECC754B80780427303DBF676DC6F7A9DEBD87ECCB66CDB54AEB9956B8C - 5B44688C9EBB0FB385B21DDBF0767BFB711D87E76E9F6E13E64E95AA31774859 - E53CA91D3F4BC64E9D2A1595B344AA26495F5F9D9457CD908AE07F0050087DC1 - FFFA7B4E4945458748CF45E9EB3D2ED7CE9E95AE2BC7E546EF61E9E9DC27978F - 9C0D3ED386B7361BF86EF0EB383C57E1DE7E5C857BE58E31421A2CB835EEBEB3 - 631BD6CA8EDD160E76ED6D73E765D230778E548E5D2BB553D64AFDD45552D9BF - 4482D40F3E06001EEBBA22BDE5FBA5FDEC2EE93AB74D7AAF6D93B62347830F68 - 58BBC16FC7EEDCEDC34D85C7963BC63069E860E4EC7E73FBF0589B0D763BCEDD - 26CC98263593EF9109F33748EDB8CDC13F323DD80E0025E0C669E9BAFA23B97C - E869E9BEF0845C3E7526D8E81600D99A0D7B776C833E3C767B0C93061386CFEE - 2FB777C71AE6769B1DDB90D753F3769C6E13E72F9071337E4EC6DF769F945737 - 05DB00A0F4F55FDF2E574E7C57AE9EFABA5C3A7450B7845A9F33D660B7BD3B56 - 769B0AF718820D2F0CCEEE27777F69882B37ECEDD86D36F8D37DDDC44699B0F8 - 7F49C3825F908ACA95C1360048AEBEDEDDD276F0DFE4F2CB8F49C7A5F3C116B7 - 00700B01DB6CE8DBB1D2B14521304C6EA0213BBB8FDCDE6D1AEEB6CF1EFADA37 - 2EDD249317BF49AAC7BD3A98D7040D0030A05BAE5FFD9E5C78F91FE4FC8B4F05 - F37011102E06DC22C06D2ADC230B0D2E6467F78DDB879B1BFA9981AFAD667C9D - 4C5EF4F3D2B0E4AD525EB124D80600184A7FDF7E69DBFFB77261CF63D2DDDD1D - 6CD1F0CF5508642B026CF0877B3834C47033BB5FDCDE067EB81F087C37F81B97 - BD511A16BC4DCACA1A836D008091BA71E3BCB41DFC829CDFFB8FD27DA523D862 - 0B01B720B00540B80F87BFED61D880439ADD1F6EEF361BF83982BFA646A634FD - BA4C5CF007043F00E4891602970EFE959CDBFEA5D019817021609B2D006C53E1 - 3EF16CD061605FB8BD0D7DDBBBC1AF7DA51957CAF435FF431A97BC4FCAAAE606 - 730040BEDDE83922E7F77F4A4EEFF86630EB0D9A86BFF61AFAE1424083DE2D06 - 144580C3865DD2B9A1AF6CE887835F9B3DE2D7F0AF94097396C8CCA68F4865FD - A6600E0028B4DEF6A7E4E4F60FCAE5A3FB7566DA50670374AC28020C0A80CCF0 - 779B0D7C1DDBD01F08FFEA716365C6DA3F94B1B37E37D8A2DB0000C5A2AF25BE - 76FC6FE4D4B6BF94EB57AF055BDC22C0361BFC6E21609BB27D2269B825990D7B - 65C736F4C347FCE9E04F1DF52F689199CD7F2E95550B823900202ABD3D07E5E4 - D677CBE5835B74669A5B04B805805B0828779C38493D72B561AF4DD97138F4D3 - 812F52956A3535B5327BF37B65F2F23F93CA8AC9C136004094CA2B1AA47EF62F - C9D849B5D2797A8BF469E667FC6E77FBB0A13E5ED292F8970E7FC3ED11BFB65C - 47FD55523B659ECCBDEBAFA47ACC9A600E00F04D5FE76E39F8C3B74BD7B9C3C1 - AC2768839D0DD0A663E59E11480C0DB824C915FEE1D01F087E916A99B6FCA764 - CE9D5F928A6AEEF007005F95574D93C9F3EE97B21B07E45AAA0808B3077B968E - 35F4ED36F763252F490540F81BEC86BF6D99C1AF6DEEAB1E90494B3E1E7C98D7 - F70280F782DFD563A7FF9C8C995421978FE87D014385BA7E3C914540520A80F0 - 3776E8F0AFAE9F280BEFFB828C9DF6FA600E0088939AF1AD3271D60AB97AFA09 - E9BBAE970206A37990B82220090540F81B1A0E7FDD0736FCB555CB98C93365DE - 7D7F1FFC006D0CE6008038AA1CB340C6CFDD241D679F90DECECE608B7B8D3F1C - F23A4F541150EA0540F81B3958F8A78FFCC74EBD5DE6BEFA1FA4AA6669300700 - C45945D5F4A008B84F3ACF3D2D3DD72E99ADB9683E24A60848420160BF81B9C2 - 5F5BFA31BFB153EF90F9AFF967A9A8B82D9803004A813E2A3871C1CFCAB5334F - 0645409BD9EA9E0D70694EB84540C92AE5026024E1AF47FE1AFE5F61111F0028 - 416565754E1160CF0424BA0828D50280F0070064CA2C02127F26A0140B00FBCD - D2DE0D7EB70070AFF96BF87F99F00780044817013F93A508C855085825570894 - 5A01100E7FB700B047FD36FCAB64CCA49932EFB55F91F2F2E9C11C0090045A04 - 8C9FFF6A693FF92DE9EDEC305B5D839D152819A554000C37FCD38FFA558D9D28 - 8B7EFAAB5251392F98030092A4BC6CBC4C9C778F5C3AFCB8F4F7E86B83873A03 - 60954C11506A0580FDC6D8E0770B808123FFEAEA3A59F0DABF95CABAA6600E00 - 48A2B28AC9327EE64AB97AF85BD2D7E7AE0B90AD18D06D2513FEAA540A00FB4D - D15E03DFF6F6C85F5B3AFCF5E87FF6E607A56ECAFF0CC6008024ABA8992B3513 - EAE4D291A782990D7EB700B063CD15771C7BA55000B8E16F833F7CE49F3EEDAF - 05C0CC965F9289F3DF1F8C0100D0D706AF95CADAE372F5E44B664BB642202CF6 - 4540A914006ECB16FEE9A3FF71B7AD90C94D5F90CA329D03009056D1B059AEB7 - 3D21D7AF9E0F661AFC6E11305821105B712F006CE82B0D7D1DEBDF49C76EF857 - 4BD5C4065970EF17A5AA923BFE010099F4C070FC6DEBE5D289AF4B7FD7F5604B - B80808F7367B622BCE0580DDF9B608B047FEE1F04F170073377C486A26BE2A18 - 03007033BD29B0B6BE412E1D7E2298E50AFFB0D81602712F00DCA6C1AF7F1FDB - 068EFEA7AE7CAD4C5AF4C7C1180080DCAAC7AD08FEDC2BD7CE1E0E7A0D7DDBAC - 5C8540EC6868C6915B71B905805B08A4CF02D44D982413577C241803003034CD - 0CCD8E81B3C99A296EC6D8DCB1DC716CE85F2A8EECCED7A6DF0CDBDC23FF749B - FBEA8F496D5D7330060060689565F532A671AA5C3CF09D60E69E05B0AD246868 - C68D0D7E152E04B4001838FA9FBC70938C99F40BC1180080E1D3EC6858DC1A8C - DCB300DA346BDCEC51EE3836E2580058EE3740FF1E6E015021D5D5B532ADE5C3 - C1180080919BB1EEE3A92C71B365206FDC0C8AA5B81500EECEB6E370F8A7ABB5 - 296B7E552A2AE607630000464E3344B324FB5900B70850EE3816E25600587647 - DB965900E8CD1B9316BC3318030070EB344B066E08740B80700EC54E9C0A0077 - 27DBB17EFDB6A5C35FFBC655BF1774E382310000A31064492A539C8CC9CC9E6C - D9140BFAC5C78DDDC1B6D9F04FB7DA86E93261CE1B82310000A3A799A2D9E266 - 4D66F8DB162B712900DC9D6BC7FAB56786BF5667D356FD4ED0EBC23F0000E443 - B5C916F73280369B43D932CA7B7129002CBB636DCB2C02B4421B3FEB57823100 - 00F9A3D9927916201CFEB6C5461C0A007787DA1D9C19FCE956295396BD39E839 - FA0700E45BB5C998E19C0550EED84B71280094DDB16ECB2C02AA268C9789B37F - 39180300907F9A319A35B9C3DF6DDEF3BD007077A2BB6333C35F2BB2C685BF18 - 0CB9F31F005020FA4480664DC659806C4580E58EBDE37B01A0DC1D6AC736FC07 - 8A80498B39FA070014563A6BDCF0B77DB6ACF25A1C0A00CBEE50BBA307C2BF61 - C15A29AF5C148C0100281CCD1ACD9CCC22C0CD266DB1E07301E0EE44BB53B5D9 - E01F2800262DFCA5A00700A0F0D299E316006E21609BE58EBDE27301A0DC9D69 - 9B7ECD03E15F55572735537E3618030050789A399A3D994540B800B0CD5BBE17 - 00CAEE407787DA9D5D2E13E7DD2D1565638231000085A799A3D9E36651664629 - DB7B4BBF681F85779CDDA9EECE4E575EE3E7FF54D00300503CE9EC099F01D066 - F3CA159E7B41BF585FD99DE836772797A74FFF4F7875300600A078347BD29701 - 3273297B767949BFD8387077A47ECDE6E87F762BA7FF010045A7D9A319947916 - C0CD2AEFF95E00B83B53BFD6CC3676EAAB821E0080E24B67D0CDD994995DDED2 - 2FD437E11DE7CEDD1D5C21E36EDB10F40000145F3A8372DD03A04D85E7DED02F - D667D976607A27D74F9F2AE515F382310000C5A719A45964732933AB94EDBDE4 - 7301E0EE406D7607A7DB9886F5410F004074D25994994F03B9A56CEF1DFD427D - 667762B8954BEDE4D5410F004074D259E4867EB879CBB70220BCB3EC5C7B5B59 - A5DBF8994D410F004074D25994994F99D9E50ACF23A55FA86F7407D9A6DC797A - E75655554979158BFF0000A2A559A49964F32933B35478EE0D1F0B0097DD69EE - 4E2D97BAD90B83BE3A68000044A9DA6452664E0D8CBDE56B01E0EE343B1ED8A1 - D5358B535B0000885A65ED82E04F1BF83657B3E598577C2D0094DD997687DABE - 5C2AC7CE0F7A0000A2575DA797A4D3F9949959B67949BF48DFB93B515BB98C9B - 3127E80100885E3A93C2A1AFCD6B3E1500E19D967B5E5543010000F04359D54C - FDD3696AA879E47C3D03E0EE30DB6B4B57587DE5FAE6250000A25755392DF873 - 20A3D24D857BAFF85A00B8ECCE1C685555140000003F9455CDD03FB334AFF95C - 0064DB99653276DA94A00700C01FE96CCA9E5B9E8AC319006577A05EFFAF3363 - 0000FC90CEA681AC8A011F0B00B762BA795C563B3D3D0500C013E96C1A3CBF3C - E3FB2500CBCB9D0700404838AFBCCDAEB8DC046895494519970000007E292FAF - 09FE8C45F05B71BA07C0ECCC8A89E91E00004F94954FB623D3BCE77B0110DE89 - B1D8A90080448A5566C5ED1200000071E07D76C5E51280B23B93820000E09BD8 - 65549C0A00000090271400000024100500000009440100004002510000009040 - 1400000024100500000009440100004002510000009040140000002410050000 - 0009440100004002510000009040140000002410050000000944010000400251 - 0000009040140000002410050000000944010000400251000000904014000000 - 2410050000000944010000400251000000904014000000241005000000094401 - 000040029599DE07FAB568D3A2445B45D0AA82566D5A6DAA352EBB5F66343D1C - 8C819F58B070915455E98F4BBCF4F5F7CBF1A347A4ABABCB6C01104BA7B63F2C - E7F73E1A8CF4FFCCDAAE9BD613B4BEA0F59B76C3B4C8510020F6DEFC96DF910D - 9BEE32B3F8E9ECE8904F7FEAE3722C280400C4540C0B002E0120F65A376C32A3 - 781A535727F7BEE6B5660600C5410180D82B2F8FFF8FF1EAA666A9AAD2135D00 - 501C14008007EAEBEB65F9CA55660600854701007822EE973200C40B050062AD - B656EF0D2D0DAB56AF29A9BF0F00BF510020D6C6D68F33A3F8ABACAA92E6D60D - 66060085450180589B30618219958696F5779A110014160500626DC284896654 - 1AEE58B65C1A264D323300281C0A00C4DAC4120CCB162E030028020A00C4DAD4 - A9D3CCA874F034008062A00040AC4D99567A05C0ACD97364C68C996606008541 - 0180589B397396199596F51B390B00A0B02800105B7AB3DCE4C646332B2DAD77 - 520000282C0A00C4D6BAE6F566547AB4B059B4E476330380FCA300406C359570 - 01A0B81910402151002096F4F4FFA2C54BCCAC34AD0D0A9C8A8A0A330380FCA2 - 00402CAD59DB6C46A54B57085CB9BAC9CC0020BF2800104B6B9AD69951695BDB - 52DA97390044870200B1533F6E9C2CB963A99995B675EB5A5821104041500020 - 76F455B9E5E5C9F8D1D5150257AF4DC6D90E00C5450180D8694ED88A791B37DD - 6D4600903F1400889524DCFD1FA6973B4A6DD54300D1A30040AC6CD89CBCA361 - BDDCD1D29AACB31E000A8F0200B152CA6FFF1BCC7A5E0A0420CF2800101BBA42 - 9EAE94974473E7CD97A9D3A69B19008C1E05006223E92BE46DD87C971901C0E8 - 510020365A1276F77F58D2FFFE00F28B0200B1306FFE029932759A992593FEFD - 172C5C6C6600303A1400880556C64BE3690000F942018058D095F1907E1A8015 - 0201E4030500BCB774F90A99D8D06066C9A62B042E5DB6C2CC00E0D65100C07B - 519FF67EEA074F9A911F92FE340480FCA00080D7F474F7EAA668D7FEFFFE77BF - 2D97DADACC2C7ABA14322B0402182D0A00786DE5EAA6D469EFA8747777CBB1A3 - 4764CF0B3BCD96E8D5D4D4B042208051A30080D7D6B6447BF3DF91C38752FD9E - DDBB52BD2FEEDCB0D98C00E0D65000C05B5555D5A9D3DD513AF4CA8154AF0540 - 7F7F7F6AEC833B962D97FA71E3CC0C00468E0200DE5ADBD2923ADD1DA5032FBF - 94EABBBABA82F1FED4D807E91502379819008C1C0500BCE5C3CA7F07F60F84FE - 8B7B5F30233F34F36A6000A34001002FE9E9EDE52B569959348E1F3B2A1D1DD7 - CCCCBFFB00162D5EC20A81006E190500BCB4666DB3545655995934F6EF7BD18C - D28E1C3A28572E5F36333F34F36A6000B7C8A7778A96859A1627FAF5D956996A - 755396CBB819F7046394B05FFCDFAF97C62953CD2C1AFFF5AD6FCAE95327CD2C - 6DF6DC79326BD66C338BDEE4C993E57BDFF9B6990143D37748CC98799B2C5E7C - BB2C5BB15256AD6E920D9BEE4A15DD9BEFBE57EEBAE75ED9B8F96E59B172B59C - 3B7BC6BBA2D75BEDA79F908E737B8351AF697DA6E9DDC3379CE60D0D5A5FB8C1 - 6FC35F0F01AB4DD3379FD44AE3B2FB6546D3C3C11825AA61D224F9C4239F4DDD - E816A577FDDEEF645C0250AD1B37C96FFEF6DBCCCC0F9FFCC807E5F0A1836606 - 645AB07091CC0FDAA220F067CF9933A25535DBDBDBE503EF7967EA26580CE1D4 - F687E5FCDE478391EE2C6DD74DEB099A2D04DC6220721400F0CE6B5EF7D372FF - EB7FCDCCA2A1D7FF3FFAC107CD6C80DE9BF0E9CF7DC1CCFCF0BDFFFE2FF9EA97 - BF6466C9B63C386A9D3061829945E36C70D47C607FFAE99128E811FEEAA675A9 - 7DB16AF51A195357673E726BFEFC931F959723FCFBC40605C0A8500020E53D0F - 7E3075835B94F4F4FF638FFEB399657AF0431F95B9F3E69B59F4F435C50F0647 - 697D7DFA3B26B9D6B5AC97B7BEFD1D6616AD7D7BF7C817FEEA33453D72BEFD8E - A5B2E9EE7B655D734B5EEF9FF98B4F7D5C5E0ADD0F832C625800447B8E1508D1 - BBDAA30E7F35D8237F7B5EF0EB69005D297149F0CB3FE966DE36CB8CA2A72F6A - FAF5DF788B99158EBE2CEBDEFB5E271FF9E423F247EFFB80B46ED818F9CDB388 - 0F0A0078C587BBDA7B7B7A329EFF0FF3ED7140D5BA8115022F9C3F6F467ED0F7 - 344C9D36FCEBED23A1C1FF9AD7FD8C7CE291CFC8AFFCDA1B65DAF419E623C0F0 - 5100C02B2D1EBCDC66FF4B2F4A4F8F9EB9CB4E5F0FDCD9D161667E58DBBC3E15 - 0A4976E1FC3933F2871E9DE793AE8EA977E86BF0DFFFFA37C8F888EF7740BC51 - 00C01BB3E7CCF5E234EEAE9D3BCC283BBDD6EEDB65007D65F29A84AF1078DEB3 - 33004A0BB37C59BA7C85FCC9873F2E6FFAADB712FCC80B0A007823EA95FFACE1 - 9CE2F7F132404BC25F0AE4E3F3EA7A7FC68C1933CDECD6E863B1BFFDB6DF9777 - BEFBFD5EDDE780F8A30080375AEF8CFE3AB6BEF8E4EC99D366969B8F05C0CAD5 - 4D895E21502FDBF87669462D5C72BB198DDCBDAF799D7CF8138FB0EE030A8202 - 005E5814FC929CDCD86866D1D9B6758B190DEEF2E54B72E8E02B66E6077D7192 - 0F0B2845495F5CE31B7D11CF48E951FF03EFFF80FCCA1BDE18F98A98285D1400 - F0822FC1B56BE776331ADA483EB758D627FC6980B6B60B66E48F59B3E798D1F0 - E8FB0C3EF4D13F9525B7F368270A8B020091D33B9B7D38C5A9D79047F206B7DD - 3BFC2B00F41D0A7AF498543E9E01B86D98D7EDF5FF07AFFFB537A55E6634DAB7 - F701C3410180C8E94B6C7CB8AB79F7AE9105FAB1A347E4A287779E6FD87CB719 - 254FB787EFACD717F30CB56CF3840913536FC0BCE7BED79A2D40E151002072BE - DCBDBEE5D967CC68F8766C7FDE8CFCE1C3BB14A2E2EBCA7553075980471F7F7D - F0431F91F90B169A2D407150002052FAF29AE6F51BCC2C3ADDDDDD83BEFD2F17 - 1FEF03D047C534549268B017384529D7192E7DB65F8FFC273624F7B20DA24301 - 80482D5FB9CA8BBB9CF548FE56C263FFBE17BDBCEEACCB16279116723ECAF684 - CBBA965679C71FBD97BBFC11190A0044CA97D3FF7B76EF34A391D1B702EEF6F0 - 2C408B076755A2D07EF5AA19F9A5A65617331D70E7C6CDF296DFFDBDD4A39B40 - 54F8E9436474DDF2354DD1BFBEB6BFBF5F766EBBF56BF93B46F1CF168ABE814E - 4F2FC30FF5F5032F686A0DC2FF377EFB77097F448E9F404466F5DA755E2C5DAA - A7F147B36EBBBE15D0C753CF497F35B04FEC19003DEDFFE6DF7A6B6A0C448D02 - 0091F1E534F568EFE4D77B077CBC0CA03757266D85401F5F05ACEAEBEB536764 - 38ED0F9FF0938848E83BEBF506401FECD8B6D58C6E9D8F4F03E8CD65BEECE362 - E9E8B866467ED1C700DFF607EF22FCE1157E1A1189356B9BBDF86578FCD85169 - BB78D1CC6E9DDE43D0DBD36366FED8B8F92E334294F4313FEEF6876F28001089 - 0D9BFC08A67CDDC0A7F710EC7FE94533F3C7F215ABA4AE6EAC9901C0000A0014 - 9DBEAB5EDF59EF837C9CFEB79E1FE64A82C5A43759AE6D49F60A8100B2A30040 - D1F9B2F2DFA5B6B6D4FBFCF3259FC5443EB5267C854000D95100A0E87C59AC66 - C7F6FC06B6BE84E6C0CB237F9D70A12DB9FD8EC4AC10E8EB9B00011F5100A0A8 - 7455B491AE8F5E28857881CF4E0F170752AD1B369B5169BBEAE99B00011F5100 - A0A89A3D79398D1E29EA0B80F2CDC7B7022A5E0A04208C020045B5D197BBFF83 - 23757D8F7FBE9D3D735A4E9E386E66FED0B32EB7CD9A6D660040018022D2256A - A70CB22E7A31DDEAE23FC331DA370B168A2F675F0A49D77500303C1400281A5F - 96A8D517F68C66F19FA1F87A1960E3263F6EBE2CA4B68B17CC08C05028005034 - BEBCFB5FEFD41FCDE23F433972E860EA1143DFE80A818B96DC6E6600928E0200 - 45A1C1A301E4832DCF3D63468593EF470CF385570303B0280050143EBD8CA690 - D7FF2D5F2F03AC6E6A4EDC0A8100B2A30040C1555454C85A4FDEFEA7A7FFF3B1 - F8CF50F411C3F6F67633F3872E4B5BEA2B04F232206078280050704BEE589A0A - 1E1FEC7961971915963E62B8D3D3CB00A5FE6A607D232380A15100A0E07C79F5 - AFDAFA6CE1AFFF5BBB76EC3023BFAC5ABD466A6B6BCD0C181C8F56962E0A0014 - 945E6F5ED3B4CECCA275E6D4A9D48B7A8A65DFDE17528F1CFA26B542A0279764 - E0B7D3A74FC9E14387CC0CA5A6CCF43ED0AF459B1625DA2A82561534BD63499B - 1EB2D44AE3B2FB6546D3C3C11831B0AE65BDBCF5EDEF30B3687DEB9B8FCBE3FF - FAA89915C71F3EF05E59B6C2BF6BEEFBF6EE91CF3CF249332B2D9F78E4B332B9 - B1D1CC924DEF433973EAA49C3F7F2EF568AA5E1E696FBF2A1D1D1DD2D971CD7C - 56262DDAC74F982017827FE6E02BAF484FCF75F3110CEAD4F687E5FC5EFD05A3 - CF186BD31DA74D8F02F4B5A37A2A45DB0DD322470180827AFB3BDE25AB3D3903 - F0A98F3D1CFC423B6066C5F1AA7BEF935F7DE36F98993FF4B4EE83EF7967516E - 882CB6A41600E7CE9E4905F691C3078376484E1E3F1E047DF6904701C4B000E0 - 12000A46AF332FF7E4E8B73338E2D15F8AC5B66BE77633F24B7979B9ACE33240 - AC5D387F5E7EF0C4F7E4EFFEE6AFE5BDEFFC7DF993F73D205FFCDBCFCB77BFFD - 9F7260FF4B843F8644018082D1EBCC7ABDD9077AF77F2116FF198A1E61475178 - 0C874F376762788E1F3B2A5F7FECFFC9471EFAE3D4199C7FFA872FCA96679F96 - CB972F99CF00868F020005E3D7CB7F8AF3F85F36BE2E0EA42B04CE9831D3CCE0 - 2B3DD2FF8F6F3C2E0FBDFFDDF2D10F3E28FFFE8DAFC989E3C7CC47815B470180 - 82A81F372EF5FCBF2FA22C000AB9F0D068ADF764812664D27B34760685E3E7FE - E291D491FED71E7BB4A84FB02019280050102DAD1B52D7997DA0A7E0A33C45AA - 476B7A83968F5AEFA400F0893E36FABDFFFE2F79E87D0FC8E73FF799A2BCB61A - C945018082685EEFCFDAF3C57AFBDF60B66DDD62467ED1BBE55921307A36F81F - 7CCFBBE4AB5FFE52EAB13DA0D0280090770D9326C9A2C54BCC2C7ABB77447F27 - BEAF4F03A896567F8AB5A409073F37F3A198280090773EDD5D7EE5F2E5A23FFB - 9F8D3E96A52F62F151F3FA0DA9059B505C7A73E8871F7A3FC18FC8500020EF7C - 7ABE7CF72E7F8EBCB76D7DCE8CFC928415027DA245E95FFFE5A7E50B9FFB8C9C - 3DE3E7BD2148060A00E4953E56A68F97F9C2A705799EF7B40050CDAD1BCC0885 - A4CB517FEC431F087E2EFDBD2484E4A000405EF9F45899AE0B1FE5E37F61875E - 39907A37BB8FD6AD6B6185C002DBFFD23EF9EC237FCAE97E7883020079D5E2D1 - DDFFBA1A9F4F0B99E89B089F7BFA2933F38BBEB171F55A3FD66C2855FBF7ED65 - 611D7885020079336FFE029932759A9945CFC753EE3E5F06D8B8895703034942 - 0180BCF1E9D5BFFA26B5DD1E5DFFB77C7E1A40DFDCA86F7004900C1400C81B5D - FCC717FBF7BDE8ED6A68BE3E0DA06F6EBCD3A3220E40615100202F962E5F2113 - 1B1ACC2C7A5B9E7BC68CFCC3D300007C400180BCF0E96D727AFA7FC7B6AD66E6 - 1F9F2F03CC5FB050A64E9B6E66004A190500464DDF22B7BAA9D9CCA2A7A7FFDB - AF5E35333FEDF6F8D5C03EDDCB01A0702800306A2B5737A5DE26E70B9F4FFF5B - 3E5F0668DDB0D18C0094320A008CDADA167F6EFEF3FDF4BFA567293A3B3ACCCC - 2FFA28E782858BCD0C40A9A200C0A8545555CB9A267F5E20B36FEF1EEF4FFF2B - 7D29D0AE5DFE3DA668B1422050FA2800302A6B5B5AA4A6A6C6CCA2F7CCD33F32 - 23FFEDD9BDD38CFCB37EC3265608044A1C050046C5A795FF746DF59DDB9E3733 - FFE98B8AF492858FF49E0E7D311080D255667A1FE8D7A24D8B126D7AF85115B4 - 6AD374A5925A695C76BFCC687A38182362FAD6B84F7DFA73A9F7C8FB409759DD - F3823F8BFF0C87BE3CC9A73328AE679FF9B17CF1FF7CDECCE2E3138F7C562637 - 369A993FBEF9F863F28DAF3D66662839A7B63F2CE7F73E1A8CBA4CD3851FB4F5 - 04AD2F685AED6BBB615AE4280070CB36BFEA5EF9F537FF9699A1D4E86A8A0FFC - C1DB62B7800D05002211C302804B00B8653EADFC87FCD333137A8F0780D24401 - 805BD2306912D78813A0653DAF06064A1505006E89DEFCA78BC7A0B42D5FB98A - 15028112C56F70DC92268FEEFE47E16891D7C202414049A200C088E962318B16 - 2F313394BA66EEF5004A12050046AC99B7C4258A167BAC1008941E0A008C1877 - FF270F451F507A28003022B3E7CC9599B7CD323324C59D2C110C941C0A008C88 - 4F2BFFA178A64D9F912AFE00940E0A008C48EB9D1C0926D5C6CD779B11805240 - 0180615BB4E4762F5FB18AE2D0750B582110281D140018369F56FE43F14D6C68 - E0ED8F4009A100C0B0E8911FCF83A3959B01819241018061D123BFF113269819 - 924A2F035455E9E29C00E28E0200C3D2C273E008E80A81ABD6AC313300714601 - 8021E9115F33ABC2C1E03200501A280030245D114E8FFC00B57C052B0402A580 - 020043E2F43F5C955555B2666DB39901882B0A000CAAB6B656D634AD3333206D - C3A6BBCC08405C51006050ABD7AE4B1DF1012E5D21B061D22433031047140018 - 540B37FF21870DBC1A1888350A00E4A4377AE90D8040362C0B0DC41B050072D2 - 1BBDCACBF9114176BA2C342B0402F1C56F77E4C48D5E184A4B2B978880B8A200 - 40567A8397DEE8050C86970201F1450180AC58F90FC3A12B04DE7EC732330310 - 271400C88A3BBC315CAD1B379A118038A100C04DA64E9B2EB366CF313360706B - D7B1422010471400B84933AFFEC5088CA9ABE371512086280070938DDCFD8F11 - DAB8999F19206E280090419FEB9E32759A9901C3A32B04D6D58D353300714001 - 800CAD1B79AC0B23A7EB45AC6DE1C911204E2800908177FFE356F16A60205ECA - 4CEF03FD5AB46951A2AD2268BA0C9DDE5EACAD36D51A97DD2F339A1E0EC6C8B3 - 454B6E97F7FCF14366E68F9DDB9F9763478F9859328DA91B2BF7BDF6A7CCCC5F - EF7FE01DD276F1A29945E3138F7C562637369A993FBEF9F863F28DAF3D666628 - 39A7B63F2CE7F73E1A8CBA4CBB6E5A4FD0FA82D66FDA0DD3224701809F78C39B - 7E53EEBEE7D566E68F87DEFF6E397BE6B49925D7C73EF569EFEFCFF8D77FF98A - 7CFB3FFEDDCCA241018048C4B000E01200522A2A2A64AD876FFF3B7EEC28E16F - 6C79EE1933F217AF0606E2830200294BEE582AF5F5F566E68FE7B73E6746D8B6 - C5FF7DA12F90BA6DD66C3303E0330A00A4F8FAEADF9DDB9E3723E87D10E7CE9E - 31337FF12229201E2800907A8DEB9AA67566E60F0DBB13C78F9919D48F9FFAA1 - 19F96BE326D69100E2800200B26ACD1AA9A9A931337FC4E19A77B16D7DD6FF7D - A22B04EA132500FC4601006F6FDC8AC335EF62D31B22F5C648DF713320E03F0A - 8084ABADAD4DBDC6D53797DADA12FFEC7F2E71B831529F28D1274B00F88B0220 - E1F417B5BEC6D537DBB8FB3FA7A77FF40333F2973E51B27275939901F0110540 - C2F97AAA96C7FF72D337ED1D7879BF99F9AB85A70100AF51002458FDB871A9E7 - FF7D73E5F26539B0FF25334336DB635020E993257A8909809F280012ACA57583 - 9497FBF723B07BD77633422E713843925A21D0C3B74B0248A30048B0664F576F - DB128347DDA2A69701F6BFB4CFCCFCC5D30080BF280012AA61D22459B4788999 - F9A3BDBD5DF6EF7BD1CC3098679F7ECA8CFCA59798F4670D807F280012CAD757 - FFEEDEB95DFAFA74E12C0C65C7B6ADD2DFAF8B8BF94B2F31ADE33200E0250A80 - 84F2F597F20EDEFD3F6CED57AFC6E26CC97A2E03005EA20048A0193366A6566D - F34D7777B7ECD9BDCBCC301C71785DF2DC79F365EAB4E96606C017140009B47E - A39F47643BB63F2F3D3DD7CD0CC3B1F5D9A7A5B7A7C7CCFCB561F35D6604C017 - 140009D4E2E9DDFF7B76EF34230C57575797EC79C1FFB326BEFECC0149460190 - 30F3E62F902953A799993FF42896B5FF6F4D1CDE09A03F73AC1008F885022061 - 7C7D2E5B8F62F5681623A785531C2E03F06A60C02F140009E3EB9BD978F7FFAD - D3C2E9F9E7B79899BF9AD76F608540C023140009B274F90A99D8D06066FED067 - D9B9FB7F74B66DF1BF80D2150297AFF46FE96920A9280012C4D753B0FA2CBB3E - D38E5BA705943E46E9BBE6D60D6604206A140009A1A75E5737359B995FE2F02C - BBEFF4F1497D8CD277AC1008F88302202156AE6E4A9D82F5D1EE1DACFE970FCF - FDD8FFB5016A6A6A64F5DA756606204A140009B1B6C5CF9BFF0EBCBC5F2E5FBE - 6466188D17F7BE905A4CC977776ED86C4600A2440190005555D5A953AF3EDACE - DDFF79A38B28EDDCBED5CCFC75C7B2E5523F6E9C9901880A054002AC6D69499D - 7AF5118FFFE5D79667FDBF9F425708BC93058280C851002480AF2BFF1D397C48 - DA2E5E3433E4833E5171E5F26533F3174F0300D1A30028717AAA75F90A3F9FBD - 8EC35DEB71A39701B6C6E0A98AF90B16B2422010310A8012B7666DB354565599 - 995FB6C6E074751CC5E5B24A33AF060622450150E27C5D85EDE489E372F6CC69 - 33433E1DD8FF925C6A6B33337F6DDCC412C1409428004A58C3A449B2E48EA566 - E6174EFF17D6B698AC10A8AB53028806054009D39BFFF48E6B1FC5E1DDF571F6 - E31FFDC08CFCE6EBEA944012500094B0264FEFFE3F77F68C1C3B7AC4CC5008BA - 7F753FFBAE79FD9DAC1008448402A044E91DD68B162F3133BF6CDBEAFFD2B5A5 - 200E6B2C8C9F30C1DBCB5440A9A30028513EDF61BD6B27EFFE2F86B85C66D9B0 - F96E3302504C140025CAD7BBFFF5EE74BD4B1D85A797018E1F3B6A66FED2D754 - EBEBAA0114170540099A3D67AECCBC6D9699F9250E77A7979238BC13405F53AD - AFAB06505C140025485FFEE32B4EFF17575C5EB6E4EBEBAA8152460150822637 - 369A915F74A95A7D573D8A475FB61487CB00F3172C32A3D1EBEFEF3723BFC461 - 8D06240B054009BA70FEBC19F9437F29FFCB57FE6FEA5DF528AEC71F7BD4DB50 - B4BABBBBCD68F49E7ECACF77201C7CE5153302FC50667A1FE8D7A24D8B126DFA - 70B0BEC45EEF0ED2569B6A8DCBEE97194D0F0763E4A037546DBEFB1E993D678E - 947BF08C754747876C7DF6E9E017E001B305C5B668C9EDA91B436B6AF5FF467E - 69BF7A3508ED1FCA89E3C7CC96D16BDDB8496EBF7DA9373FFFBB776E9717F7BC - 60B6A0249DDAFEB09CDFFB6830EA32EDBA693D41D3231FADC2B5DD302D721400 - 00008C560C0B002E010000904014000000241005000000094401000040025100 - 0000904014000000241005000000094401000040025100000090401400000024 - 1005000000094401000040025100000090401400000024100500000009440100 - 0040025100000090401400000024100500000009440100004002510000009040 - 1400000024100500000009440100004002510000009040140000002410050000 - 0009440100004002510000009040140000002410050000000944010000400251 - 0000009040140000002410050000000944010000400251000000904014000000 - 2410050000000944010000400251000000904014000000241005000000094401 - 00004002510000009040140000002410050000000914C302A0EF92190000E089 - F865530C0B80FE0E330000C013F1CBA6381500374C0F0080AF62935571280032 - 77666FD759330200C00F376793F78580EF05407807DE909E6E2E010000FC92CE - A69B33CB6371B904A03B31BD23AF9DBD90EA0100F0C540360DE495E7E2760920 - BD63FBFACFA5A7000044EC46CF29FDD334CBFB22C0E702E0E6E04F0BFA5EEE03 - 0000F8A1B75F33C9C9A89F8C953BF68A8F0580BBF3B28D6F484FE7B1D4160000 - A2D6D7E59E0108679672C7DE88D33D00B6BF21574F1C4F4F010088583A93DC90 - F72EECB3F1FD1240F6D6DB7538E80100885E4FE72BC19FD9F32ADDBC14979B00 - 33DBF5CE03410F0040F47ABA0E057FDE9C559EF3B500B03BCEEDB5F5A7FA8EE3 - 7A06E07AD0000088D27593490319956E2ADC7BC5A702C0EE347787659FF7F6F6 - 48EFF583A9AD00004445B34833C9CDA8B4A1E6918BE32580748575EDD4CEA007 - 00203AE92C1AC8A6CCE6B5B8DC046877ACF6E9D6716177D00300109D74160D64 - 536666D9E625DFEF015076ECEED0A00038B74D3702001099741665E6539ACD2E - E58EBDE1FB25007787BAE3A000387F4EFA7B8F066300008A4F3348B3C8E652F6 - CCF2968F0580DD6976C7B973BB93D3ADFDE473410F0040F1A53328339732334B - 85E7DEF0AD0008EF207707867772BF5C3BF354D00300507CE90CBA399B32B3CB - 159E472A2E9700C24D77709F5C3ABA55FA6E74066300008A47B3473348B36820 - F4B3356FF95C00D81D6777A25B5DA55B6F5797745DF861300600A078347B3483 - B2655366F8DBDE3B713803607BDBDC9DDC27970F7D37E80100289E74F6D8A37F - DBDCAC52B6F7529C6F024CEFF8CB479FE6320000A0683473347BDC2C1A686E66 - A9F0DC1B71BA07C0DDC1B6F5496F57A7749DF94E300600A0F03473347B6E0E7F - DBDCECF296EF0580E5EE4CDDB9BAD3075ADBC1AF073D00008597CE9CCC1C8A51 - F05BBEDF04186E6E85355008B41DDA2D7D3DBA1C23000085A359A3999319FC6E - CB965D5EF2B50008EF30BB13DD9D6C77BEB65EB9B0FFDF821E0080C249674D6F - D0DC0C72B3295BE887E75E88C32500BBE3EC4ED5E6EEECF437E0D2CBFF1E7CA8 - 3D180300500041C6A4B266D0E0D7A66CEFAD38DD04685B66F0DBD67DEDAA5C3A - F47830060020FF3463346BC2F993BD08B0CD5BBEDF0360B93BD386BF5B04E8E9 - 985E39F3E23F07FDF5A00100904FD74DC6A4F32633FC6DEF6695E58EBD12874B - 0096DDA97627BB0540BA5DBF7456AE1CE52C000020BF345B3463C2B993994936 - A762212EF700D81D6AC736FCDD22205D959DDAFDA5A0E72C0000205FAE9B6C19 - CED1BF72C7DE8AC33D0096DDA1DA746787C33FDD5FBF74462E1F7D2C18030030 - 7A9A299A2D6ED60CE48FCD2337A32C77EC9DB85C027077AC6DB98B80333BFF3E - F8149E0800008C529025A94C1976F8DBE6BD0AD3FBAECC34E5F6B6692163FB72 - E9EBEE95B2EA1E19DB7867300700E0D69C7DE9F372F9F09660A497967B4CAF45 - 806DB6100807BFF745405CCE00587607DB96ED2C40BA5DD8F998F4F71C0DC600 - 008C9C668866899B2D431FFDC746DC2E01283B0E877F6601D0DBDB25279EFBF3 - 600C00C0C869866896B8D9929939E12240B963AFC5ED0C80B23BD7B6DC45C0A5 - C35BA5FDEC7F06630000864FB34333C4CD94CCAC7183DFB658895301E0EE603B - B6D5972D02EC3748AFD3A4BF61279FFD4BE9EB3B178C0100189A668666C740F0 - 6BA6B819E3664FB66C8A85B8DC0468D99BFE941DE76A5ADC94495F778FF4F79E - 9671335F13CC010018DCE9ED1F93AB275E0C46EE8D7F030796994540AC42DF15 - B702C0D280CFD5875BB9749E3F2163264D919AF1B707730000B2BB72FCEB72EA - F92F07231BFC36FCDD0220F647FF2A8EF7005876676BB3DF0CADCA6CB3DFA8F4 - 37EEF496BF96BEAEC3C11800809B69466856DC1CF86EB684C35F5B2CC5F50C80 - D2A37BDBDBB1B273B7954B5F4F9F74B5BD201367FEB4486565B00D0000A3AB4B - 8E3EF56EE9683B194C34FC073BFA0F877F2C0B81B85F0250769CADD766CF7294 - CBF5F6CB525E7D41C64EBDCB6C030040E4DCBE3F938BAF3C138C34F4BB836683 - DF367B0640839E330011B301EF72B7D9B1B68122A0FDCC211933A15E6A262E37 - DB00004976E5C8BFC8892DFF148CDCF00F1FFDDB53FF6EF85BB12C024AE11280 - E5CEDDF057EEBC4CDA4FEC94FADB964BD598DBF483008084EA6CDB22479FF8A4 - DCB8A12FFC714FFB6B1FBE07207CE41FCBE0B7E25C00A870C8E7EA33DB8DE07B - 76EDC4D33271FE6629AF9C186C0300244D4FD72B72E43BEF919EEBBA789C0D7F - 5B00D823FF5CA7FEADD81601712F002C1BF661EE765B00A832E9EBE995F6934F - C9D839F7486565BDD90E004882EEAE3372F43B7F285DED1782991BFCB60F1FF9 - 87C33F5C08C44E291400E1F077835E0D847EB8EFEDEE92CEB35BA5EEB6A008A8 - 1A63B603004A5957679B9C78F28FA4B3ED58300B87BF06BF8EDDF0B761EFB6D8 - 2BC53300B9C6AE8122A0A7F38A749D794EEA6651040040A94B85FF13EF948E8B - AF04B370F86BEF1EFDDB23FF7011A0625F04944A01A034D4B5E937C58EC3C2DB - D2738A0000287DD9C3DF2D0234F8C3A7FE6DE8EBD88A7DF8AB522B00DCDE952D - F8DD6D9C09008052963BFCED517FAE237F5B04A892087EAB940A00952DFC876B - A008A89FDD2C159513CC7600409C5DEF3A26279E7C2008FF433A0B9A3EEB1F2E - 02B21DFDDBF0B74D954C11506A05801AEA68DF75F3E76A11D071F247523F7D95 - 54D44C31DB01007174FDCA8B72F4FBEF958EB6133A0B9A1BFEB98EFEDDD0B74D - D9BE24946201A0DCD0BF39E4D3EC3732FCF1E0C7A0BB53AE1E7F526AA6CE979A - BAD9662B00204E3ACEFC508EFCE021E9CE78D4CF0D7FDBE73AEDEF067E4985BF - 2AD502C0D270D76FDACD219F96BB08D0F7045C3AF0A4548F2B97310DABCD5600 - 401CB41DFA4739F2E46782DFE51DC16CA8F0CF76DA5F7BA5E3920B7F55EA0580 - 1A6E116065CEAF1CDB25BD5D07A47A52AB5456559BAD00001F75755E9333DB3F - 2267763E1ECC060BFE4487BF4AC21900DBEB3771B8458095DEDE79F1B8749CFA - 818C9FB95C2AAA1B53DB00007EE969DF27479F788F5C3DB93B988543DF0DFEE1 - 867F494BCA1900DBE72A02EC37DAFDB88E077E007ABBDAA5EDC07F4BD5D84AA9 - AD5B2E5299AB980000145577BF5C3AF61539F2FD4F484FA75EEF7743DF0D7E1D - DBBBFD35E8870AFF810C2841492800D4708A002BFC0DD7797ADB8D1BFD72E5D8 - 0EE9BAB24DC6CE5C251515E353DB0100D1D047FC8E3FFB909CDBF31FC1EF687B - 87BFED6DF0DBE63EEA67833F91E1AF925200A8E11601FA31F71BEFFE30A45BF7 - 9573D2F6CA7F4AD59872CE06004014EC51FF931F97AE8C77FADBE077C736FCC3 - A7FC131BFE2A4905801A4E11900EF981A6C2DB6EC88DBEDED4D980CE0B3F9431 - 93E64865ED8C603B00A0D0BA2F6D97E3CFFC899CDBF79DE077B1BB8EBFDB6CF0 - BBE1EF067FA2C35F25F1C8D52D025479D074AC4DC7DAB430B2AD3268554E6F9B - 3BAF94294BEF95A92BDF22E5551402005008FD3DA7E4ECEEBF93732F7E3F9869 - A8BB011F0E7CDBDBA37EB700B00773890D7F95C40240858B807001102E0434EC - 6DBB39FC6D5F51511B14013F27F50B7E556AC73404DB0000A3A5EFF16F3FF8E5 - 20FCBF2E7DA9237E37E0B385BE6DE1E00F17002A91E1AF925A005836F8955B04 - D8DE2D02DC42C006BF3B1ED856515D2753570485C0BC5FA61000805B940AFEC3 - 5F95B32F04C17F5D5FE863833D1CF8B9823F7CD49F2DFC1317FC960DBF240B17 - 00B6D90240C76E11E0160299C11F6E151535D2B8EC753269C92F4865ED82601B - 006028BD5D07E5E2FE7F93F37BBF1D1CF1EB1DFD6EB8DB160E7D6D6EF06BB3A1 - EF06BF1BFAB64F240D370CEC07DBDBE0D7660B01DBC245C06005C1C0C71A1636 - C9E4853F2FE5E35AA5A6563F0700607577F548FFD567E5C22B8F4BDB2BDB832D - E170CFD534E86DAFCD067E38F875AC087F83026040B808700B00DBBB4580F66E - C8870B81F0B6F4B87AC2246998FF1A19BFF0D5525BBB38D80600C9D5D5F5B25C - 79E57BD276E83B72FDF2C5608B1BEAE1900FCFDD3E5BF0DB3E1CFA890F7F65C3 - 0E696EF8DBDE6D6E11600B81707383DFF6E16DE9366EDA6CA99F7D8F4C9CDB2A - 95B57704DB00A0F4F576ED934B479E95F6634FC8D533FA0CBF06B86D6EB0E70A - 7BDB74AE21AFE36CA16F9B0AF78967830E99EC7E717B5B0084FBA10A81C1C6B6 - 954B6D43A38C9BDE22E366AD96EA865552553535D80E00F1D7D37356AEB7ED92 - ABC777CAD5D35BA4ABED7CB0D5067738D0871ABB4DFF1D6EF087C35F857B1836 - E07033BB6FDC3EDC6C01E01602B90A02DBDC02C0FD5CF79F2F97BAE933A46EFC - 5219D3B854EAA62D91FEB2B9523B666CF03100F097AEC6577EE388749CD92F9D - E75F948E2B413B7D2AF8880D681BDC6E88DB71AEA0B7CDFDE7DDE686BE6D2ADC - C3A12186C1D97DE4F66ED3C0B6BD6DE140B7216F5BAE6DEE3F63DBC07FA3B671 - B28C99385FCA6B664AEDD869523B619254D54F93F2CAF141813046AAFA1B456A - F4730120FFF446BDF28AB620E03BA5BFF78AF4B49F91AECB17A5EBDA19E9EF3E - 299D970E49D7795D8C4703D706B31BD46E78BBC16EB7E7DA16FE67B5B9FF0DB7 - A9708F2C345C3034BB9FDCFD65837620A007C66EB3811E0EF9F076F7E3D95AF8 - BF639BB2BD72C700904F6EA0BA21EB36379C73B56CE19E2DE8DDB16DE1FF8E6D - CAF6CA1D230BC26264C281ABBD3B7603DA0D6D6DD9023EBC2DDBE7B8FF0EFBEF - 0E37657BE58E01201FB285ABF6D99A1BD6766C5B38D4879ADB7F87FBEFD65ED9 - 6D2ADC630804C5AD0987AEF6E1B13637B46D880FB785FF996CFF4EE58E953B06 - 807C72C3351CBEDAC2416D5B783E9C96EDDFA94D85C76E8F61222C6E5DB6D0D5 - 3E3C769B1BECB6B7CD9D67FBDCF0D836E58E01A0D0C201ECB66CE1EDF6E1B13B - 77FB7053E1B1E58E314C84C6E8B9FBD00D64DBDBB18677B8B71FD77178EEF683 - 35CB8EDD6D00904FB9C277B0962DD8751C9EAB706F3FAECDCA35C6081116F993 - 2D8C958EEDDC8EB3CDB5650B7CBB4DE958D98FA9700F00856683D7EDEDD80D6F - 37E46DCBB64DE59A5BB9C6B845844661B8FB353CB6733B0ECF95FBB16C4D857B - E58E01A010B205B1DB0FD654B671B68FA95C63E401815158B9C2D98EB3F5E1CF - CBF6B170AFDC31001452B66076FB6C6315FE58B65EE51A238F088DE2192CACED - 3CDCABE16E0380280C16E0836D733FA6B27D2E0A8800894678BFE79A0FF7F300 - 202A8305B9B2F3E17E1E8A8400895EB6EFC170B6F1BD03E08BE184F970B7A148 - 0811FFE4FA9EF0BD021017B9829DC0F788BE7A1600807C22E801000000000000 + 000000000000000000000000000000000000000000000000000000C03315A687 + FFF85E01888B1BA687C70815FFE4FB9EF0BD021017F90A000A038F102AD1CBF5 + 3D18CE36BE77007C110EF65C413FDC6D281142241A4385B99D0FF7F300202A43 + 85BF9D0FF7F350220448E9B8FB3A5F90877B35DC6D0010855C013F9C6DEEC754 + AECF45111120C5952BB45538C0DD3EFC79B93E16EE953B068062CA15D66E9F6B + ACC21FCBD5AB7C631410A1511CF98259C7766EC7E1B9723F96ABA970AFDC3100 + 1443AE7076FBC19ACA35CEF531956F8C0220300A275F10EBD8CEED38D75C5BE5 + 20DB948E95FD980AF700506C6E60DBDE8EFB4DAF731DDB8FD9966B9BCA37B7F2 + 8D718B088DD173F761AE50B6631BDE6E6F3FAEE3F0DCED336DC2DCA9921A7387 + 5454CF93BAF1B364ECD4A952553D4B243549FAFAEAA5323543AA82FF014031F4 + 05FFEBEF392955559D223D17A4AFF7985C3D7346BA2F1F931BBD87A4A7EB45B9 + 74F84CF09936BCB5D9C077835FC7E1B90AF7F6E32ADC2B778C11D260C1AD71F7 + 9D1DDBB05676ECB670B06B6F9B3BAF90C6B973A47AEC5AA99BB2561AA6AE92EA + BE252263C6071F03008F755D96DEAA7DD2716697749FDD26BD57B749FBE123C1 + 0734ACDDE0B76377EEF6E1A6C263CB1D63983474307276BFB97D78ACCD06BB1D + E76F13664C93DAC9F7C884F91BA46EDCE6E01F991E6C07803270E394745FF991 + 5C3AF8945C3BFFB85C3A793AD8E81600B99A0D7B776C833E3C767B0C93061386 + CFEE2FB777C71AE6769B1DDB90D753F3769C6913E72F9071337E46C6DF769F54 + D63407DB00A0FCF55FDF2E978F7F57AE9CFCBA5C3C7840B7845A9F33D660B7BD + 3B56769B0AF718820D2F0CCEEE27777F69882B37ECEDD86D36F8337DFDC42699 + B0F87F49E3829F93AAEA95C1360048AEBEDEDDD27EE05FE5D2CB8F4AE7C573C1 + 16B700700B01DB6CE8DBB1D2B14521304C6EA02137BB8FDCDE6D1AEEB6CF1DFA + DA372DDD249317BF496AC6BD3A98D7060D0030E09A5CBFF23D39FFF2DFCBB917 + 9E0CE6E122205C0CB84580DB54B8470E1A5CC8CDEE1BB70F3737F4B3035F5BED + F87A99BCE867A571C95BA5B26A49B00D003094FEBE7DD2BEEF6FE4FC9E47E5DA + B56BC1160DFF7C8540AE22C0067FB88743430C37B3FBC5ED6DE087FB81C07783 + BF69D91BA571C1DBA4A2A229D8060018A91B37CE49FB812FC8B9BDFF20D72E77 + 065B6C21E01604B60008F7E1F0B73D0C1B70C8B0FBC3EDDD66033F4FF0D7D6CA + 94E65F95890B7E8FE0078002D142E0E281BF94B3DBBF143A23102E046CB30580 + 6D2ADC279E0D3A0CEC0BB7B7A16F7B37F8B5AF36E36A99BEE67F48D392F74945 + 6A6E30070014DA8D9EC3726EDFA7E4D48E6F06B3DEA069F86BAFA11F2E0434E8 + DD62405104386CD8259D1BFACA867E38F8B5D9237E0DFF6A99306789CC6CFE88 + 54376C0AE6008062EBED78524E6CFFA05C3AB24F67A60D753640C78A22C0A000 + C80E7FB7D9C0D7B10DFD81F0AF19375666ACFD7D193BEBB7832DBA0D00502AFA + 5AE2ABC7FE5A4E6EFB0BB97EE56AB0C52D026CB3C1EF1602B629DB2792865B92 + D9B057766C433F7CC49F09FEF451FF825699D9F267529D5A10CC010051E9ED39 + 2027B6BE5B2E1DD8A233D3DC22C02D00DC4240B9E3C449EA91AB0D7B6DCA8EC3 + A19F097C9154BAD5D6D6C9ECCDEF95C9CBFF54AAAB2607DB000051AAAC6A9486 + D9BF206327D549D7A92DD2A7999FF5BBDDEDC386FA78594BE25F3AFC0DB747FC + DAF21DF5A7A46ECA3C997BD75F4ACD9835C11C00E09BBEAEDD72E0876F97EEB3 + 8782594FD0063B1BA04DC7CA3D2390181A7049922FFCC3A13F10FC2235326DF9 + 4FC89C3BBF245535DCE10F00BEAA4C4D93C9F3EE978A1BFBE56ABA0808B3077B + 968E35F4ED36F763652F490540F81BEC86BF6DD9C1AF6DEEAB1E90494B3E1E7C + 98D7F70280F782DFD563A7FF8C8C995425970EEB7D014385BA7E3C914540520A + 80F03776E8F0AF6998280BEFFB828C9DF6FA600E008893DAF16D3271D60AB972 + EA71E9BBAE970206A37990B82220090540F81B1A0E7FDD0736FCB5D5C898C933 + 65DE7D7F17FC006D0CE6008038AA1EB340C6CFDD249D671E97DEAEAE608B7B8D + 3F1CF23A4F541150EE0540F81B3958F8678EFCC74EBD5DE6BEFAEF2555BB3498 + 0300E2AC2A353D2802EE93AEB34F49CFD58B666B3E9A0F892902925000D86F60 + BEF0D79679CC6FECD43B64FE6BFE49AAAA6E0BE6008072A08F0A4E5CF0D372F5 + F4134111D06EB6BA67035C9A136E1150B6CAB9001849F8EB91BF86FF5758C407 + 00CA504545BD5304D83301892E02CAB50020FC0100D9B28B80C49F0928C702C0 + 7EB3B47783DF2D00DC6BFE1AFE5F26FC0120013245C04FE52802F2150256D915 + 02E5560084C3DF2D00EC51BF0DFF948C993453E6BDF62B5259393D9803009240 + 8B80F1F35F2D1D27BE25BD5D9D66AB6BB0B30265A39C0A80E1867FE651BFD4D8 + 89B2E827BF2A55D5F382390020492A2BC6CBC479F7C8C5438F497F8FBE3678A8 + 330056D91401E55600D86F8C0D7EB7001838F2AFA9A99705AFFD1BA9AE6F0EE6 + 008024AAA89A2CE367AE942B87BE257D7DEEBA00B98A01DD5636E1AFCAA500B0 + DF14ED35F06D6F8FFCB565C25F8FFE676F7E50EAA7FCCF600C0048B2AADAB952 + 3BA15E2E1E7E3298D9E0770B003BD65C71C7B1570E05801BFE36F8C347FE99D3 + FE5A00CC6CFD059938FFFDC11800007D6DF05AA9AE3B26574EBC64B6E42A04C2 + 625F04944B01E0B65CE19F39FA1F77DB0A99DCFC05A9AED039000019558D9BE5 + 7AFBE372FDCAB960A6C1EF1601831502B115F702C086BED2D0D7B1FE9D74EC86 + 7F8DA42636CA827BBF28A96AEEF8070064D303C3F1B7AD978BC7BF2EFDDDD783 + 2DE12220DCDBEC89AD38170076E7DB22C01EF987C33F5300CCDDF021A99DF8AA + 600C00C0CDF4A6C0BA8646B978E8F160962FFCC3625B08C4BD00709B06BFFE7D + 6C1B38FA9FBAF2B53269D11F06630000F2AB19B722F873AF5C3D7328E835F46D + B3F21502B1A3A119476EC5E516006E2190390B503F61924C5CF191600C00C0D0 + 3433343B06CE266BA6B8196373C772C7B1A17FA938B23B5F9B7E336C738FFC33 + 6DEEAB3F2675F52DC1180080A1555734C898A6A97261FF7782997B16C0B6B2A0 + A1193736F855B810D00260E0E87FF2C24D3266D2CF05630000864FB3A371715B + 3072CF0268D3AC71B347B9E3D888630160B9DF00FD7BB8054095D4D4D4C9B4D6 + 0F07630000466EC6BA8FA7B3C4CD9681BC71332896E25600B83BDB8EC3E19FA9 + D6A6ACF965A9AA9A1F8C01001839CD10CD92DC6701DC2240B9E358885B0160D9 + 1D6D5B7601A0376F4C5AF0CE600C00C0ADD32C19B821D02D00C239143B712A00 + DC9D6CC7FAF5DB96097FED9B56FD4ED08D0BC600008C429025E94C7132263B7B + 7265532CE8171F377607DB66C33FD3EA1AA7CB84396F08C600008C9E668A668B + 9B35D9E16F5BACC4A5007077AE1DEBD79E1DFE5A9D4D5BF55B41AF0BFF000050 + 0835265BDCCB00DA6C0EE5CA28EFC5A500B0EC8EB52DBB08D00A6DFCAC5F0AC6 + 0000148E664BF6598070F8DB161B712800DC1D6A777076F0675AB54C59F6E6A0 + E7E81F00506835266386731640B9632FC5A1005076C7BA2DBB08484D182F1367 + FF62300600A0F03463346BF287BFDBBCE77B01E0EE4477C76687BF56644D0B7F + 3E1872E73F00A048F48900CD9AACB300B98A00CB1D7BC7F70240B93BD48E6DF8 + 0F1401931673F40F0028AE4CD6B8E16FFB5C59E5B538140096DDA176470F847F + E382B55259BD28180300503C9A359A39D945809B4DDA62C1E702C0DD8976A76A + B3C13F50004C5AF80B410F0040F16532C72D00DC42C036CB1D7BC5E70240B93B + D336FD9A07C23F555F2FB5537E3A180300507C9A399A3DD94540B800B0CD5BBE + 1700CAEE407787DA9D5D2913E7DD2D55156382310000C5A799A3D9E366517646 + 29DB7B4BBF681F85779CDDA9EECECE545EE3E7FF44D00300503A99EC099F01D0 + 66F3CA159E7B41BF585FD99DE836772757664EFF4F7875300600A074347B3297 + 01B2732977767949BFD8387077A47ECDE6E87F761BA7FF010025A7D9A319947D + 16C0CD2AEFF95E00B83B53BFD6EC3676EAAB821E0080D2CB64D0CDD9949D5DDE + D22FD437E11DE7CEDD1D5C25E36EDB10F40000945E2683F2DD03A04D85E7DED0 + 2FD667B976606627374C9F2A9555F382310000A5A719A4596473293BAB94EDBD + E47301E0EE406D760767DA98C6F5410F0040743259949D4F03B9A56CEF1DFD42 + 7D667762B8554ADDE4D5410F0040743259E4867EB879CBB70220BCB3EC5C7B5B + 5965DAF899CD410F0040743259949D4FD9D9E50ACF23A55FA86F7407D9A6DC79 + 66E7A65229A94CB1F80F00205A9A459A49369FB2334B85E7DEF0B10070D99DE6 + EED44AA99FBD30E86B82060040946A4C2665E7D4C0D85BBE1600EE4EB3E3811D + 5A53BB38BD050080A855D72D08FEB4816F7335578E79C5D70240D99D6977A8ED + 2BA57AECFCA00700207A35F57A493A934FD999659B97F48BF49DBB13B555CAB8 + 1973821E0080E86532291CFADABCE6530110DE69F9E7A95A0A0000801F2A5233 + F54FA7A9A1E691F3F50C80BBC36CAF2D5361F555EA9B970000885EAA7A5AF0E7 + 4046659A0AF75EF1B50070D99D39D052290A0000801F2A5233F4CF1CCD6B3E17 + 00B97666858C9D3625E80100F047269B72E796A7E2700640D91DA8D7FFEBCD18 + 00003F64B26920AB62C0C702C0AD986E1E57D44DCF4C0100F044269B06CF2FCF + F87E09C0F272E701001012CE2B6FB32B2E37015A155255C1250000805F2A2B6B + 833F6311FC569CEE01303BB36A62A60700C013159593EDC834EFF95E00847762 + 2C762A00209162955971BB040000401C789F5D71B904A0ECCEA4200000F82676 + 1915A70200000014080500000009440100004002510000009040140000002410 + 0500000009440100004002510000009040140000002410050000000944010000 + 4002510000009040140000002410050000000944010000400251000000904014 + 0000002410050000000944010000400251000000904014000000241005000000 + 0944010000400251000000904014000000241005000000094401000040025100 + 0000904015A6F7817E2DDAB428D15615B454D06A4CAB4BB7A665F7CB8CE68782 + 31F0DF162C5C24A994FEB8C44B5F7FBF1C3B7258BABBBBCD1600B17472FB4372 + 6EEF23C148FFCFACEDBA693D41EB0B5ABF69374C8B1C050062EFCD6FF92DD9B0 + E92E338B9FAECE4EF9F4A73E2E47834200404CC5B000E0120062AF6DC326338A + A731F5F572EF6B5E6B6600501A140088BDCACAF8FF18AF6E6E91544A4F740140 + 695000001E68686890E52B57991900141F0500E089B85FCA00102F140088B5BA + 3ABD37B43CAC5ABDA6ACFE3E00FC460180581BDB30CE8CE2AF3A959296B60D66 + 0600C5450180589B306182199587D6F5779A110014170500626DC2848966541E + EE58B65C1A274D323300281E0A00C4DAC4320CCB562E030028010A00C4DAD4A9 + D3CCA87CF034008052A00040AC4D99567E05C0ACD97364C68C99660600C54101 + 80589B397396199597F51B390B00A0B82800105B7AB3DCE4A626332B2F6D7752 + 0000282E0A00C4D6BA96F566547EB4B059B4E476330380C2A300406C35977101 + A0B81910403151002096F4F4FFA2C54BCCAC3CAD0D0A9CAAAA2A330380C2A200 + 402CAD59DB6246E54B57085CB9BAD9CC00A0B02800104B6B9AD79951795BDB5A + DE97390044870200B1D3306E9C2CB963A99995B775EB5A592110405150002076 + F455B99595C9F8D1D5150257AF4DC6D90E00A5450180D86949D88A791B37DD6D + 460050381400889524DCFD1FA6973BCA6DD54300D1A30040AC6CD89CBCA361BD + DCD1DA96ACB31E008A8F0200B152CE6FFF1BCC7A5E0A04A0C02800101BBA429E + AE94974473E7CD97A9D3A69B19008C1E05006223E92BE46DD87C971901C0E851 + 0020365A1376F77F58D2FFFE000A8B0200B1306FFE029932759A992593FEFD17 + 2C5C6C6600303A1400880556C6CBE06900008542018058D095F190791A801502 + 0114020500BCB774F90A99D8D86866C9A62B042E5DB6C2CC00E0D65100C07B51 + 9FF67EF2074F98911F92FE340480C2A00080D7F474F7EAE668D7FEFFFE77BF2D + 17DBDBCD2C7ABA14322B0402182D0A00786DE5EAE6F469EFA85CBB764D8E1E39 + 2C7B9EDF69B644AFB6B6961502018C1A0500BCB6B635DA9BFF0E1F3A98EEF7EC + DE95EE7D71E786CD660400B7860200DE4AA56AD2A7BBA374F095FDE95E0B80FE + FEFEF4D807772C5B2E0DE3C69919008C1C0500BCB5B6B5357DBA3B4AFB5F7E29 + DD77777707E37DE9B10F322B046E30330018390A0078CB8795FFF6EF1B08FD17 + F63E6F467E68E1D5C000468102005ED2D3DBCB57AC32B3681C3B7A443A3BAF9A + 997FF7012C5ABC84150201DC320A007869CDDA16A94EA5CC2C1AFB5E7CC18C32 + 0E1F3C20972F5D32333FB4F06A6000B7C8A7778A56849A1627FAF5D9569D6EF5 + 5396CBB819F7046394B19FFFDFAF97A62953CD2C1AFFF9AD6FCAA99327CC2C63 + F6DC79326BD66C338BDEE4C993E57BDFF9B6990143D37748CC98799B2C5E7CBB + 2C5BB15256AD6E960D9BEE4A17DD9BEFBE57EEBAE75ED9B8F96E59B172B59C3D + 73DABBA2D75B1DA71E97CEB37B8351AF697DA6E9DDC3379CE60D0D5A5FB8C16F + C35F0F016B4CD3379FD449D3B2FB6546F343C11865AA71D224F9C4C39F4DDFE8 + 16A577FDCE6F655D02506D1B37C9AFFFE6DBCCCC0F9FFCC807E5D0C103660664 + 5BB07091CC0FDAA220F067CF9933A255353B3A3AE48FDEF3CEF44DB018C2C9ED + 0FC9B9BD8F0423DD59DAAE9BD613345B08B8C540E42800E09DD7BCEE27E5FED7 + FF8A994543AFFF7FF4830F9AD900BD37E1D39FFB8299F9E17BFFF59FF2D52F7F + C9CC926D7970D43A61C204338BC699E0A879FFBECCD32351D023FCD5CDEBD2FB + 62D5EA3532A6BEDE7CE4D6FCD9273F2A2F47F8F7890D0A8051A10040DA7B1EFC + 60FA06B728E9E9FF471FF92733CBF6E0873E2A73E7CD37B3E8E96B8A1F0C8ED2 + FAFAF4774C72AD6B5D2F6F7DFB3BCC2C5A2FEEDD235FF8CBCF94F4C8F9F63B96 + CAA6BBEF95752DAD05BD7FE6CF3FF5717929743F0C7288610110ED39562044EF + 6A8F3AFCD5608FFCED79DEAFA70174A5C425C12FFFA49B79DB2C338A9EBEA8E9 + 577FED2D66563CFAB2AC7BEF7B9D7CE4930FCB1FBCEF8FA46DC3C6C86F9E457C + 5000C02B3EDCD5DEDBD393F5FC7F986F8F03AAB60DAC1078FEDC3933F283BEA7 + 61EAB4E15F6F1F090DFED7BCEEA7E4130F7F467EE957DE28D3A6CF301F01868F + 02005E69F5E0E536FB5E7A417A7AF4CC5D6EFA7AE0AECE4E33F3C3DA96F5E950 + 48B2F3E7CE9A913FF4E8BC9074754CBD435F83FFFED7BF41C6477CBF03E28D02 + 00DE983D67AE17A77177EDDC6146B9E9B576DF2E03E82B93D7247C85C0739E9D + 01505A9815CAD2E52BE48F3FFC7179D36FBC95E047415000C01B51AFFC670DE7 + 14BF8F97015A13FE52201F9F57D7FB3366CC986966B7461F8BFDCDB7FDAEBCF3 + DDEFF7EA3E07C41F0500BCD17667F4D7B1F5C527674E9F32B3FC7C2C0056AE6E + 4EF40A817AD9C6B74B336AE192DBCD68E4EE7DCDEBE4C39F7898751F50141400 + F0C2A2E097E4E4A626338BCEB6AD5BCC6870972E5D9483075E31333FE88B937C + 5840294AFAE21ADFE88B78464A8FFA1F78FF1FC92FBDE18D91AF8889F2450100 + 2FF8125CBB766E37A3A18DE4734B657DC29F06686F3F6F46FE98357B8E190D8F + BECFE0431FFD1359723B8F76A2B828001039BDB3D987539C7A0D79246F70DBBD + C3BF0240DFA1A0478F49E5E31980DB8679DD5EFF7FF0FA5F7953FA6546A37D7B + 1F301C1400889CBEC4C687BB9A77EF1A59A01F3D72582E7878E7F986CD779B51 + F25CF3F09DF5FA629EA1966D9E306162FA0D98F7DCF75AB305283E0A0044CE97 + BBD7B73CF3B4190DDF8EEDCF99913F7C789742547C5DB96EEA200BF0E8E3AF0F + 7EE823327FC142B305280D0A00444A5F5ED3B27E839945E7DAB56B83BEFD2F1F + 1FEF03D047C534549268B017384529DF192E7DB65F8FFC273626F7B20DA24301 + 80482D5FB9CA8BBB9CF548FE56C263DF8B2F7879DD59972D4E222DE47C94EB09 + 9775AD6DF28E3F782F77F92332140088942FA7FFF7ECDE694623A36F05DCEDE1 + 5980560FCEAA44A1E3CA1533F24B6D9D2E663AE0CE8D9BE52DBFFD3BE9473781 + A8F0D387C8E8BAE56B9AA37F7D6D7F7FBFECDC76EBD7F2778CE29F2D167D039D + 9E5E861F1A1A065ED0D41684FFAFFDE66F13FE881C3F8188CCEAB5EBBC58BA54 + 4FE38F66DD767D2BA08FA79E93FE6A609FD833007ADAFFCDBFF1D6F418881A05 + 0022E3CB69EAD1DEC9AFF70EF87819406FAE4CDA0A813EBE0A58353434A4CFC8 + 70DA1F3EE1271191D077D6EB0D803ED8B16DAB19DD3A1F9F06D09BCB7CD9C7A5 + D2D979D58CFCA28F01BEEDF7DE45F8C32BFC3422126BD6B678F1CBF0D8D123D2 + 7EE18299DD3ABD87A0B7A7C7CCFCB171F35D668428E9637EDCED0FDF50002012 + 1B36F9114C85BA814FEF21D8F7D20B66E68FE52B56497DFD5833038001140028 + 397D57BDBEB3DE078538FD6F3D37CC95044B496FB25CDB9AEC150201E4460180 + 92F365E5BF8BEDEDE9F7F9174A218B89426A4BF80A810072A30040C9F9B258CD + 8EED850D6C7D09CDFE9747FE3AE1625B72FB1D895921D0D73701023EA2004049 + E9AA68235D1FBD588AF1029F9D1E2E0EA4DA366C36A3F276C5D33701023EA200 + 4049B578F2721A3D52D41700159A8F6F0554BC1408401805004A6AA32F77FF07 + 47EAFA1EFF423B73FA949C387ECCCCFCA1675D6E9B35DBCC0080020025A44BD4 + 4E19645DF452BAD5C57F8663B46F162C165FCEBE1493AEEB00607828005032BE + 2C51AB2FEC19CDE23F43F1F532C0C64D7EDC7C594CED17CE9B1180A15000A064 + 7C79F7BFDEA93F9AC57F8672F8E081F42386BED11502172DB9DDCC00241D0500 + 4A42834703C8075B9E7DDA8C8AA7D08F18160AAF0606605100A0247C7A194D31 + AFFF5BBE5E0658DDDC92B8150201E4460180A2ABAAAA92B59EBCFD4F4FFF1762 + F19FA1E823861D1D1D66E60F5D96B6DC5708E46540C0F05000A0E896DCB1341D + 3C3ED8F3FC2E332A2E7DC470A7A79701CAFDD5C0FA46460043A30040D1F9F2EA + 5FB5F599E25FFFB776EDD861467E59B57A8DD4D5D5991930381EAD2C5F140028 + 2ABDDEBCA6799D9945EBF4C993E917F594CA8B7B9F4F3F72E89BF40A819E5C92 + 81DF4E9D3A29870E1E3433949B0AD3FB40BF166D5A9468AB0A5A2A687AC79236 + 3D64A993A665F7CB8CE687823162605DEB7A79EBDBDF6166D1FAD6371F93C7FE + E511332B8DDF7FE0BDB26C857FD7DC5FDCBB473EF3F027CDACBC7CE2E1CFCAE4 + A626334B36BD0FE5F4C91372EEDCD9F4A3A97A79A4A3E38A7476764A57E755F3 + 59D9B4681F3F61829C0FFE9903AFBC223D3DD7CD4730A893DB1F92737BF5178C + 3E63AC4D779C363D0AD0D78EEAA9146D374C8B1C05008AEAEDEF7897ACF6E40C + C0A73EF650F00B6DBF9995C6ABEEBD4F7EF98DBF6666FED0D3BA0FBEE79D25B9 + 21B2D4925A009C3D733A1DD8870F1D08DA413971EC5810F4B9431E4510C30280 + 4B00281ABDCEBCDC93A3DFAEE088477F2996DAAE9DDBCDC82F959595B28ECB00 + B176FEDC39F9C1E3DF93BFFDEBBF92F7BEF377E58FDFF7807CF16F3E2FDFFDF6 + 7FC8FE7D2F11FE181205008A46AF33EBF5661FE8DDFFC558FC67287A841D45E1 + 311C3EDD9C89E13976F4887CFDD1FF271FF9C01FA6CFE0FCE3DF7F51B63CF394 + 5CBA74D17C06307C1400281ABF5EFE539AC7FF72F17571205D2170C68C996606 + 5FE991FEBF7FE331F9C0FBDF2D1FFDE083F26FDFF89A1C3F76D47C14B8751400 + 288A8671E3D2CFFFFB22CA02A0980B0F8DD67A4F16684236BD47636750387EEE + CF1F4E1FE97FEDD1474AFA040B9281020045D1DAB6217D9DD9077A0A3ECA53A4 + 7AB4A63768F9A8ED4E0A009FE863A3DFFBAFFF940FBCEF01F9FCE73E5392D756 + 23B9280050142DEBFD597BBE546FFF1BCCB6AD5BCCC82F7AB73C2B0446CF06FF + 83EF79977CF5CB5F4A3FB607141B05000AAE71D22459B4788999456FF78EE8EF + C4F7F56900D5DAE64FB19634E1E0E7663E941205000ACEA7BBCB2F5FBA54F267 + FF73D1C7B2F4452C3E6A59BF21BD60134A4B6F0EFDF007DE4FF0233214002838 + 9F9E2FDFBDCB9F23EF6D5B9F3523BF246185409F6851FA577FF169F9C2E73E23 + 674EFB796F089281020005A58F95E9E365BEF069419EE73C2D00544BDB063342 + 31E972D41FFBD01F053F97FE5E1242725000A0A07C7AAC4CD7858FF2F1BFB083 + AFEC4FBF9BDD47EBD6B5B2426091ED7BE945F9ECC37FC2E97E7883020005D5EA + D1DDFFBA1A9F4F0B99E89B089F7DEA4933F38BBEB171F55A3FD66C2857FB5EDC + CBC23AF00A05000A66DEFC053265EA34338B9E8FA7DC7DBE0CB07113AF060692 + 84020005E3D3AB7FF54D6ABB3DBAFE6FF9FC3480BEB951DFE008201928005030 + BAF88F2FF6BDF882B7ABA1F9FA3480BEB9F14E8F8A3800C54501808258BA7C85 + 4C6C6C34B3E86D79F66933F20F4F0300F00105000AC2A7B7C9E9E9FF1DDBB69A + 997F7CBE0C307FC142993A6DBA99012867140018357D8BDCEAE616338B9E9EFE + EFB872C5CCFCB4DBE35703FB742F0780E2A100C0A8AD5CDD9C7E9B9C2F7C3EFD + 6FF97C19A06DC346330250CE2800306A6B5BFDB9F9CFF7D3FF969EA5E8EAEC34 + 33BFE8A39C0B162E363300E58A0200A3924AD5C89A667F5E20F3E2DE3DDE9FFE + 57FA52A05DBBFC7B4CD1628540A0FC51006054D6B6B64A6D6DAD9945EFE9A77E + 6446FEDBB37BA719F967FD864DAC100894390A008C8A4F2BFFE9DAEA3BB73D67 + 66FED31715E9250B1FE93D1DFA622000E5ABC2F43ED0AF459B1625DAF4F02315 + B41AD374A5923A695A76BFCC687E28182362FAD6B84F7DFA73E9F7C8FB409759 + DDF3BC3F8BFF0C87BE3CC9A73328AE679EFEB17CF1FF7CDECCE2E3130F7F5626 + 373599993FBEF9D8A3F28DAF3D6A66283B27B73F24E7F63E128CBA4DD3851FB4 + F504AD2F685AED6BBB615AE4280070CB36BFEA5EF9D537FF8699A1DCE86A8A0F + FCDEDB62B7800D05002211C302804B00B8653EADFC87C2D333137A8F0780F244 + 01805BD2386912D78813A0753DAF0606CA1505006E89DEFCA78BC7A0BC2D5FB9 + 8A15028132C56F70DC92668FEEFE47F16891D7CA02414059A200C088E962318B + 162F313394BB16EEF500CA12050046AC85B7C4258A167BAC1008941F0A008C18 + 77FF270F451F507E28003022B3E7CC9599B7CD323324C59D2C110C941D0A008C + 884F2BFFA174A64D9F912EFE00940F0A008C48DB9D1C0926D5C6CD779B118072 + 400180615BB4E4762F5FB18AD2D0750B582110281F140018369F56FE43E94D6C + 6CE4ED8F4019A100C0B0E8911FCF83A38D9B0181B241018061D123BFF1132698 + 19924A2F03A452BA382780B8A300C0B0B4F21C3802BA42E0AA356BCC0C409C51 + 0060487AC4D7C2AA7030B80C0094070A000C495784D3233F402D5FC10A814039 + A000C09038FD0F57752A256BD6B6981980B8A200C0A0EAEAEA644DF33A330332 + 366CBACB8C00C415050006B57AEDBAF4111FE0D215021B274D32330071440180 + 41B572F31FF2D8C0AB818158A300405E7AA397DE0008E4C2B2D040BC5100202F + BDD1ABB2921F11E4A6CB42B34220105FFC76475EDCE885A1B4B6718908882B0A + 00E4A43778E98D5EC060782910105F1400C88995FF301CBA42E0ED772C333300 + 714201809CB8C31BC3D5B671A3190188130A00DC64EAB4E9326BF61C330306B7 + 761D2B0402714401809BB4F0EA5F8CC098FA7A1E17056288020037D9C8DDFF18 + A18D9BF99901E286020059F4B9EE2953A79919303CBA42607DFD583303100714 + 00C8D2B691C7BA3072BA5EC4DA569E1C01E28402005978F73F6E15AF0606E2A5 + C2F43ED0AF459B1625DAAA82A6CBD0E9EDC5DAEAD2AD69D9FD32A3F9A1608C02 + 5BB4E47679CF1F7EC0CCFCB173FB7372F4C861334BA631F563E5BED7FE8499F9 + EBFD0FBC43DA2F5C30B3687CE2E1CFCAE4A62633F3C7371F7B54BEF1B547CD0C + 65E7E4F687E4DCDE478251B769D74DEB095A5FD0FA4DBB615AE42800F0DFDEF0 + A65F97BBEF79B599F9E303EF7FB79C397DCACC92EB639FFAB4F7F767FCCB3F7F + 45BEFDEFFF6666D1A000402462580070090069555555B2D6C3B7FF1D3B7A84F0 + 37B63CFBB419F98B570303F1410180B425772C9586860633F3C7735B9F35236C + DBE2FFBED01748DD366BB69901F0190500D27C7DF5EFCE6DCF9911F43E88B367 + 4E9B99BF789114100F140048BFC6754DF33A33F38786DDF16347CD0CEAC74FFE + D08CFCB57113EB48007140010059B5668DD4D6D69A993FE270CDBBD4B63EE3FF + 3ED11502F58912007EA30080B7376EC5E19A77A9E90D917A63A4EFB81910F01F + 0540C2D5D5D5A55FE3EA9B8BEDED897FF63F9F38DC18A94F94E8932500FC4501 + 9070FA8B5A5FE3EA9B6DDCFD9FD7533FFA8119F94B9F2859B9BAD9CC00F88802 + 20E17C3D55CBE37FF9E99BF6F6BFBCCFCCFCD5CAD30080D7280012AC61DCB8F4 + F3FFBEB97CE992ECDFF792992197ED312890F4C912BDC404C04F140009D6DAB6 + 412A2BFDFB11D8BD6BBB19219F389C2149AF10E8E1DB250164500024588BA7AB + B76D89C1A36E51D3CB00FB5E7AD1CCFCC5D30080BF280012AA71D22459B47889 + 99F9A3A3A343F6BDF882996130CF3CF5A419F94B2F31E9CF1A00FF50002494AF + AFFEDDBD73BBF4F5E9C25918CA8E6D5BA5BF5F1717F3975E625AC76500C04B14 + 0009E5EB2FE51DBCFB7FD83AAE5C89C5D992F55C0600BC440190403366CC4CAF + DAE69B6BD7AEC99EDDBBCC0CC31187D725CF9D375FA64E9B6E66007C41019040 + EB37FA7944B663FB73D2D373DDCC301C5B9F794A7A7B7ACCCC5F1B36DF654600 + 7C41019040AD9EDEFDBF67F74E33C270757777CB9EE7FD3F6BE2EBCF1C906414 + 0009336FFE029932759A99F9438F6259FBFFD6C4E19D00FA33C70A81805F2800 + 12C6D7E7B2F528568F6631725A38C5E13200AF0606FC42019030BEBE998D77FF + DF3A2D9C9E7B6E8B99F9AB65FD065608043C420190204B97AF90898D8D66E60F + 7D969DBBFF4767DB16FF0B285D2170F94AFF969E06928A0220417C3D05ABCFB2 + EB33EDB8755A40E96394BE6B69DB604600A2460190107AEA7575738B99F9250E + CFB2FB4E1F9FD4C7287DC70A81803F28001262E5EAE6F429581FEDDEC1EA7F85 + F0EC8FFD5F1BA0B6B65656AF5D676600A2440190106B5BFDBCF96FFFCBFBE4D2 + A58B6686D17861EFF3E9C5947C77E786CD6604204A140009904AD5A44FBDFA68 + 3B77FF178C2EA2B473FB5633F3D71DCB964BC3B8716606202A140009B0B6B535 + 7DEAD5473CFE57585B9EF1FF7E0A5D21F04E1608022247019000BEAEFC77F8D0 + 4169BF70C1CC5008FA44C5E54B97CCCC5F3C0D00448F02A0CCE9A9D6E52BFC7C + F63A0E77ADC78D5E06D81A83A72AE62F58C80A8140C42800CADC9AB52D529D4A + 99995FB6C6E074751CC5E5B24A0BAF060622450150E67C5D85EDC4F16372E6F4 + 29334321EDDFF7925C6C6F37337F6DDCC412C140942800CA58E3A449B2E48EA5 + 66E6174EFF17D7B698AC10A8AB53028806054019D39BFFF48E6B1FC5E1DDF571 + F6E31FFDC08CFCE6EBEA944012500094B1664FEFFE3F7BE6B41C3D72D8CC500C + BA7F753FFBAE65FD9DAC1008448402A04CE91DD68B162F3133BF6CDBEAFFD2B5 + E5200E6B2C8C9F30C1DBCB5440B9A30028533EDF61BD6B27EFFE2F85B85C66D9 + B0F96E3302504A140065CAD7BBFFF5EE74BD4B1DC5A797018E1D3D6266FED2D7 + 54EBEBAA0194160540199A3D67AECCBC6D9699F9250E77A7979338BC13405F53 + ADAFAB06505A140065485FFEE32B4EFF97565C5EB6E4EBEBAA81724601508626 + 373599915F74A95A7D573D4A475FB61487CB00F3172C32A3D1EBEFEF3723BFC4 + 618D06240B0540193A7FEE9C19F9437F29FFF357FE6FFA5DF528ADC71E7DC4DB + 50B4AE5DBB6646A3F7D4937EBE03E1C02BAF9811E0870AD3FB40BF166D5A9468 + D38783F525F67A7790B6BA746B5A76BFCC687E2818230FBDA16AF3DDF7C8EC39 + 73A4D28367AC3B3B3B65EB334F05BF00F79B2D28B5454B6E4FDF185A5BA7FF37 + F24BC7952B4168FF508E1F3B6AB68C5EDBC64D72FBED4BBDF9F9DFBD73BBBCB0 + E779B30565E9E4F687E4DCDE478251B769D74DEB099A1EF96815AEED866991A3 + 00000060B4625800700900008004A200000020812800000048200A0000001288 + 0200008004A200000020812800000048200A00000012880200008004A2000000 + 20812800000048200A00000012880200008004A200000020812800000048200A + 00000012880200008004A200000020812800000048200A000000128802000080 + 04A200000020812800000048200A00000012880200008004A200000020812800 + 000048200A00000012880200008004A200000020812800000048200A00000012 + 880200008004A200000020812800000048200A00000012880200008004A20000 + 0020812800000048200A00000012880200008004A20000002081280000004820 + 0A00000012880200008004A200000020812800000048A01816007D17CD000000 + 4FC42F9B625800F4779A0100009E885F36C5A900B8617A00007C159BAC8A4301 + 90BD337BBBCF981100007EB8399BBC2F047C2F00C23BF086F45CE3120000C02F + 996CBA39B33C16974B00BA13333BF2EA99F3E91E00005F0C64D3405E792E6E97 + 00323BB6AFFF6C660A0040C46EF49CD43F4DB3BC2F027C2E006E0EFE8CA0EFE5 + 3E0000801F7AFB35939C8CFAEFB172C75EF1B10070775EAEF10DE9E93A9ADE02 + 0040D4FABADD3300E1CC52EED81B71BA07C0F637E4CAF1639929000011CB6492 + 1BF2DE857D2EBE5F02C8DD7ABB0F053D0000D1EBE97A25F833775E659A97E272 + 136076BBDEB53FE80100885E4FF7C1E0CF9BB3CA73BE160076C7B9BDB6FE74DF + 794CCF005C0F1A000051BA6E326920A3324D857BAFF85400D89DE6EEB0DCF3DE + DE1EE9BD7E20BD150080A868166926B9199531D43C7271BC0490A9B0AE9EDC19 + F400004427934503D994DDBC16979B00ED8ED53ED33ACFEF0E7A0000A293C9A2 + 816CCACE2CDBBCE4FB3D00CA8EDD1D1A140067B7E94600002293C9A2EC7CCAB0 + D9A5DCB1377CBF04E0EE50771C1400E7CE4A7FEF91600C0040E969066916D95C + CA9D59DEF2B100B03BCDEE38776E7772A6759C7836E8010028BD4C0665E75276 + 66A9F0DC1BBE1500E11DE4EEC0F04EEE97ABA79F0C7A00004A2F934137675376 + 76B9C2F348C5E51240B8E90EEE938B47B64ADF8DAE600C0040E968F668066916 + 0D847EAEE62D9F0B00BBE3EC4E74ABAB4CEBEDEE96EEF33F0CC60000948E668F + 6650AE6CCA0E7FDB7B270E67006C6F9BBB93FBE4D2C1EF063D0000A593C91E7B + F46F9B9B55CAF65E8AF34D80991D7FE9C8535C060000948C668E668F9B4503CD + CD2C159E7B234EF700B83BD8B63EE9EDEE92EED3DF09C60000149F668E66CFCD + E16F9B9B5DDEF2BD00B0DC9DA93B5777FA406B3FF0F5A00700A0F83299939D43 + 310A7ECBF79B00C3CDADB0060A81F683BBA5AF4797630400A078346B3473B283 + DF6DB9B2CB4BBE1600E11D6677A2BB93EDCED7D62BE7F7FD6BD00300503C99AC + E90D9A9B416E36E50AFDF0DC0B71B80460779CDDA9DADC9D9DF9065C7CF9DF82 + 0F75046300008A20C89874D60C1AFCDA94EDBD15A79B006DCB0E7EDBAE5DBD22 + 170F3E168C0100283CCD18CD9A70FEE42E026CF396EFF70058EECEB4E1EF1601 + 7A3AA6574EBFF04F417F3D68000014D275933199BCC90E7FDBBB5965B963AFC4 + E112806577AADDC96E019069D72F9E91CB47380B0000282CCD16CD9870EE6467 + 92CDA95888CB3D007687DAB10D7FB708C8546527777F29E8390B00002894EB26 + 5B8673F4AFDCB1B7E2700F806577A836DDD9E1F0CFF4D72F9E964B471E0DC600 + 008C9E668A668B9B3503F963F3C8CD28CB1D7B272E9700DC1D6B5BFE22E0F4CE + BF0B3E8527020000A31464493A53861DFEB679AFCAF4BEAB304DB9BD6D5AC8D8 + BE52FAAEF54A454D8F8C6DBA33980300706BCEBCF479B974684B30D24BCB3DA6 + D722C0365B088483DFFB22202E67002CBB836DCB751620D3CEEF7C54FA7B8E04 + 630000464E3344B3C4CD96A18FFE63236E9700941D87C33FBB00E8EDED96E3CF + FE5930060060E43443344BDC6CC9CE9C7011A0DCB1D7E2760640D99D6B5BFE22 + E0E2A1ADD271E63F82310000C3A7D9A119E2664A76D6B8C16F5BACC4A9007077 + B01DDBEACB1601F61BA4D76932DFB013CFFC85F4F59D0DC600000C4D3343B363 + 20F83553DC8C71B3275736C5425C6E02B4EC4D7FCA8EF3352D6E2AA4EF5A8FF4 + F79E9271335F13CC010018DCA9ED1F932BC75F0846EE8D7F030796D94540AC42 + DF15B702C0D280CFD7875BA5749D3B2E63264D91DAF1B70773000072BB7CECEB + 72F2B92F07231BFC36FCDD0220F647FF2A8EF7005876676BB3DF0CADCA6CB3DF + A8CC37EED496BF92BEEE43C11800809B69466856DC1CF86EB684C35F5B2CC5F5 + 0C80D2A37BDBDBB1B273B7554A5F4F9F74B73F2F1367FCA448AA3AD8060080D1 + D52D477EFC6EE96C3F114C34FC073BFA0F877F2C0B81B85F0250769CABD766CF + 7254CAF58E4B5259735EC64EBDCB6C030040E4EC4B7F2A175E793A1869E85F0B + 9A0D7EDBEC19000D7ACE0044CC06BCCBDD66C7DA068A808ED30765CC8406A99D + B8DC6C030024D9E5C3FF2CC7B7FC633072C33F7CF46F4FFDBBE16FC5B2082887 + 4B00963B77C35FB9F30AE938BE531A6E5B2EA931B7E907010009D5D5BE458E3C + FE49B971435FF8E39EF6D73E7C0F40F8C83F96C16FC5B90050E190CFD767B71B + C1F7ECEAF1A764E2FCCD52593D31D80600489A9EEE57E4F077DE233DD775F138 + 1BFEB600B047FEF94EFD5BB12D02E25E005836ECC3DCEDB6005015D2D7D32B1D + 279E94B173EE91EAEA06B31D009004D7BA4FCB91EFFCBE74779C0F666EF0DB3E + 7CE41F0EFF7021103BE5500084C3DF0D7A3510FAE1BEF75AB7749DD92AF5B705 + 45406A8CD90E002867DD5DED72FC893F90AEF6A3C12C1CFE1AFC3A76C3DF86BD + DB62AF1CCF00E41BBB068A809EAECBD27DFA59A99F45110000E52E1DFE8FBF53 + 3A2FBC12CCC2E1AFBD7BF46F8FFCC345808A7D11502E0580D250D7A6DF143B0E + 0B6FCBCC290200A0FCE50E7FB708D0E00F9FFAB7A1AF632BF6E1AFCAAD00707B + 57AEE077B771260000CA59FEF0B747FDF98EFC6D11A0CA22F8AD722A0054AEF0 + 1FAE8122A061768B54554F30DB01007176BDFBA81C7FE28120FC0FEA2C68FAAC + 7FB808C875F46FC3DF3655364540B915006AA8A37DD7CD9FAB4540E7891F49C3 + F45552553BC56C0700C4D1F5CB2FC891EFBF573ADB8FEB2C686EF8E73BFA7743 + DF3665FBB2508E05807243FFE690CFB0DFC8F0C7831F836B5D72E5D813523B75 + BED4D6CF365B010071D279FA8772F8071F906B598FFAB9E16FFB7CA7FDDDC02F + ABF057E55A00581AEEFA4DBB39E433F21701FA9E808BFB9F909A719532A671B5 + D90A008883F683FF20879FF84CF0BBBC33980D15FEB94EFB6BAF745C76E1AFCA + BD0050C32D02ACECF9E5A3BBA4B77BBFA41ADB2495AA315B01003EEAEABC2A67 + B67F444EEF7C2C980D16FC890E7F95843300B6D76FE2708B002BB3BDEBC231E9 + 3CF503193F73B954D534A5B70100FCD2D3F1A21C79FC3D72E5C4EE60160E7D37 + F8871BFE652D2967006C9FAF08B0DF68F7E33A1EF801E8EDEE90F6FDFF25A9B1 + D5523766B94875BE6202005052DDFD72F1E857E4F0F73F213D5D7ABDDF0D7D37 + F8756CEFF6D7A01F2AFC0732A00C25A10050C32902ACF0375CE7996D376EF4CB + E5A33BA4FBCA36193B739554558D4F6F070044431FF13BF6CC07E4EC9E7F0F7E + 47DB3BFC6D6F83DF36F7513F1BFC890C7F959402400DB708D08FB9DF78F78721 + D3AE5D3E2BEDAFFC87A4C65472360000A2608FFA9FF8B87467BDD3DF06BF3BB6 + E11F3EE59FD8F057492A00D4708A804CC80F3415DE76436EF4F5A6CF06745DF8 + A18C993447AAEB6604DB0100C576EDE27639F6F41FCBD917BF13FC2E76D7F177 + 9B0D7E37FCDDE04F74F8AB241EB9BA4580AA0C9A8EB5E9589B1646B655072DE5 + F4B6B9F36A99B2F45E99BAF22D5299A210008062E8EF39296776FFAD9C7DE1FB + C14C43DD0DF870E0DBDE1EF5BB05803D984B6CF8AB2416002A5C04840B807021 + A0616FDBCDE16FFBAAAABAA008F8196958F0CB5237A631D80600182D7D8F7FC7 + 812F07E1FF75E94B1FF1BB019F2BF46D0B077FB80050890C7F95D402C0B2C1AF + DC22C0F66E11E0160236F8DDF1C0B6AA9A7A99BA222804E6FD22850000DCA274 + F01FFAAA9C793E08FEEBFA421F1BECE1C0CF17FCE1A3FE5CE19FB8E0B76CF825 + 59B800B0CD16003A768B00B710C80EFE70ABAAAA95A665AF93494B7E4EAAEB16 + 04DB000043E9ED3E2017F6FDAB9CDBFBEDE0885FEFE877C3DDB670E86B73835F + 9B0D7D37F8DDD0B77D2269B861603FD8DE06BF365B08D8162E02062B08063ED6 + B8B059262FFC59A9686893BA31FA390000ABBBAB476E743C23E75F794CDA5FD9 + 1E6C09877BBEA6416F7B6D36F0C3C1AF6345F81B140003C245805B00D8DE2D02 + B477433E5C0884B765C635132649E3FCD7C8F885AF96BABAC5C1360048AEEEEE + 97E5F22BDF93F683DF91EB972E045BDC500F877C78EEF6B982DFF6E1D04F7CF8 + 2B1B76C870C3DFF66E738B005B08849B1BFCB60F6FCBB471D3664BC3EC7B64E2 + DC36A9AEBB23D80600E5AFB7FB45B978F819E938FAB85C39ADCFF06B80DBE606 + 7BBEB0B74DE71AF23ACE15FAB6A9709F7836E890CDEE17B7B70540B81FAA1018 + 6C6C5BA5D43536C9B8E9AD326ED66AA9695C25A9D4D4603B00C45F4FCF19B9DE + BE4BAE1CDB29574E6D91EEF673C1561BDCE1401F6AEC36FD77B8C11F0E7F15EE + 61D880C3CDECBE71FB70B305805B08E42B086C730B00F773DD7FBE52EAA7CF90 + FAF14B654CD352A99FB624F8519F2B63EAC7061F03007FE96A7C5572583A4FEF + 93AE732F48E7E5A09D3A197CC406B40D6E37C4ED385FD0DBE6FEF36E7343DF36 + 15EEE1D010C3E0EC3E727BB76960DBDEB670A0DB90B72DDF36F79FB16DE0BF51 + D73459C64C9C2F95B533A56EEC34A99B3049520DD3A4B27ABCF4578C91545F93 + 489D7E2E00149EDEA85755DD2E9537BAA4BFF7B2F4749C96EE4B17A4FBEA69E9 + BF7642BA2E1E94EE73BA188F06AE0D6637A8DDF07683DD6ECFB72DFCCF6A73FF + 1B6E53E11E3968B86068763FB9FBCB06ED40400F8CDD66033D1CF2E1EDEEC773 + B5F07FC736657BE58E01A090DC407543D66D6E38E76BB9C23D57D0BB63DBC2FF + 1DDB94ED953B460E84C5C88403577B77EC06B41BDADA72057C785BAECF71FF1D + F6DF1D6ECAF6CA1D034021E40A57ED733537ACEDD8B670A80F35B7FF0EF7DFAD + BDB2DB54B8C710088A5B130E5DEDC3636D6E68DB101F6E0BFF33B9FE9DCA1D2B + 770C0085E4866B387CB58583DAB6F07C382DD7BF539B0A8FDD1EC34458DCBA5C + A1AB7D78EC3637D86D6F9B3BCFF5B9E1B16DCA1D0340B18503D86DB9C2DBEDC3 + 6377EEF6E1A6C263CB1D6398088DD173F7A11BC8B6B7630DEF706F3FAEE3F0DC + ED076B961DBBDB00A090F285EF602D57B0EB383C57E1DE7E5C9B956F8C11222C + 0A2757182B1DDBB91DE79A6BCB15F8769BD2B1B21F53E11E008ACD06AFDBDBB1 + 1BDE6EC8DB966B9BCA37B7F28D718B088DE270F76B786CE7761C9E2BF763B99A + 0AF7CA1D034031E40A62B71FACA95CE35C1F53F9C6280002A3B8F285B31DE7EA + C39F97EB63E15EB9630028A65CC1ECF6B9C62AFCB15CBDCA374601111AA53358 + 58DB79B857C3DD060051182CC007DBE67E4CE5FA5C141101128DF07ECF371FEE + E7014054060B7265E7C3FD3C94080112BD5CDF83E16CE37B07C017C309F3E16E + 43891022FEC9F73DE17B05202EF2053B81EF117DF52C00008544D00300000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000888EC8FF076923705B230375FA0000000049454E44AE426082} + 000000000000000000101D91FF0FE47B6F59FFDB0BC70000000049454E44AE42 + 6082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512.png' @@ -852,7 +853,7 @@ object AboutForm: TAboutForm PNG = { 89504E470D0A1A0A0000000D49484452000004000000040008060000007F1D2B 83000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000 - 73AB49444154785EEDFD0BB465D75918E8AE7AA954A5A755256CBDC10659328F + 73A949444154785EEDFD0BB465D75918E8AE7AA954A5A755256CBDC10659328F AA1206BB54926E2795424A8FA443C0309A1ED0816B06DC8CBEF4C01006B771BA 496EC7A48943C36D46060D17F348B8CD1884100881183B1E21966599604B2503 B2243FF5B0655B25590FEB592AD5DDFFD97BFACC33CF5CFB71CE3EFBECBDD7F7 @@ -886,889 +887,888 @@ object AboutForm: TAboutForm 648379D4B62E6BF3F95C2D2EE7DAC6B5BE2D2EFB61C7F23ED4E69272AEF61900 80455026C0B58438CDE5C7CAB95A3FEEB1DAF1D4A738D4C6791FDAE2A43617DA E6615B483098276DEB7158B25C1E8B713E376C3CCDB8ECDB8E35CDE547AE6ACE - 3970D54ABCF7FCA32BFD8E1D1736BBF6BEE12BFF3F62E7CBBDF8DC0BFB030080 - 45F3C2D3CD2BBBEFEDC7BD3F83CEBC786F73F6ECD32BC317BF7CE74AFFD2E30F - 379FBBFBE195B82F25CB795F9B4BFDB4E3306A1CD2B89C0FB5B9D0360F33B59A - 94C0F6A9ADC35173B578583F6E5C9B0BF9B1722EAC8D2F3F72E54A921F09FE4A - 727FCE1B9A3367AF6CF6ECB972F0190000C2E9D38F34BB763CD29C79A95F2488 - 0241BF38F048EF689E6C0F8B6B73213F56CE8561F1B03EB4C5C9B87330332961 - 81ED505B7FC3E6CA6331CEE7F2F1A8787A735FFD378E367BCF7B43B363F7D737 - BB765FD9ECDCFDE6C131000036E395973FD49C79F991E6ECCB7FD5BCF8ECBDCD - 67FE63EC1E484974F4790BD3980B6D7128C721FF6C69DC39D87229898159AAAD - BB6173F9B1722EFAB6B9DA38CDED1CF4E5B1D4C2FAF9CB0F5FD59C7FE59B9B9D - 7BBEBED9BDF7CDCD8E5D6FE8CD0300302B67CFDCDBBCFCE2879A574EFF55F3E5 - 473ED47CEE64DC46100975D9426D3E5A7865D0D78ED5C6A9AFCD25B5B964DC39 - D83229D18159A8ADB76173F9B1722EFA6171D9C2A8A47F7D8B84FFBC2B8E36BB - F77F5B7376C71B6CE107009833710BC18EB3F7362F3FF79EE6D9CFDE39A420D0 - D6425B3120B5302CCEFB509B4BC69D83A98B240766A15C6BB5B597E6F26311D7 - C669AE1C8F9BE4A7CFE5FD8EE655AFBDA8B9E4F5479B3DBD84BFD9F566093F00 - C08289824073E643CDE9E7DED33C71FF9DCD973EF5546F3612EC94E4E77DCC0F - 6BA1561C08E538D4C6799F2BE76A9F81A98A4408B6526D8D9573699CCF475CCE - A7B9DA789CB636D94F2DAEF25F70CDADCDCE73DEDCEC3EA797F80300B0345E7E - E93DCD2B2F7DA879E6C13FA9EC0E98A41850B6501BA73EC5A13C9E94E3509B83 - A9880408B6426D6D9573699CCF479CCFD7E294C8A7B9D4D626F66B5B25E9BFFA - B666CFFEEF741F3F004047C4F3034E3FF76F9A671E7A774B31201FE7AD762C94 - BB03425B1CF2F95C390EB539D8944886609A6A6BAA9C4BE37C3EE27CBE8CF3B9 - F113FD7C2EB6F71FBCEEB666EF853F20E90700E8B82806BCF8F4AF37A7EE7B77 - 719B40F4791B551808E57C688B433E9F2BC7A136071B12C9114C4BB99E6AEB2B - 25E5493EAEC5A35A99F0AF1FBFEE6FDEDAECBDE0BB9A5D7B4EF4C60000B0D699 - D3EF6D5E7CE65F379FFC0F7FD21B9509FFA8F1B016DAE2508E9372AEF6199858 - 2448B059B57554CEA571AD4F2DE4E3B6362CE9EFC7971DBABAB9E8B5FFF7A6D9 - F36D1EE40700C058561E2078FA3DCD539FFAB5E6D17B1EEACD44E29D27FC1B2D - 0684DAB8D627E538D4E6606C9130C166946BA86D3CAC1FA7AD4FF26BF1EBBEED - B666EFC56F71B51F00804D59D915F0E4EF369F7CCFBB7BA3B622C0B0E2C0B016 - 46F5C9A8318C2D9226D888DADA29E752629EE4E3148F6AB5647F6D7FF1D75CDC - BCFA1BBFABD971EE0FB8DA0F00C054C5AE80B32FFC7AF385BFF8D7CD939F7EB2 - 371309784AF6CBBE8C47B590C7A11C87721C6A733054245130A972DDB48DF3BE - 8CF3B93CC94F6D54E2BFB3B9ECD055CD45AFFDAE66CFCE1F689A732FECCD0100 - C01679E1E9E6F42BBFDE7CFEE4BB9A273F1D0F0D8C447FD24240CC85723E9471 - DE27A3C63054245330AEDA7AC9E7525CEB530BF9385A2DD9CFE3F589FFC55FF7 - B666F7DEEFEC8D010060B65E7EF1DF344F7EFCE79B47EF89570946525F1600F2 - E4BF2D4E2DD4C6B53EE471529B837522A98271946BA56D9CF765DCD66A897ED9 - F712FF6FBABAB9F8DA1F95F803003017560A010FFC42F3E847E3818191DC9705 - 80B67E580B659CF7C9A831AC13C9158C52AE937C9CE25A3FAAA5043FC5127F00 - 0016CF7885803CF9CFE3612DB4F5218F4339863522C98236E5FA681BE77D19A7 - 9627FBF9B89EF4478B87FBBDE6C88F367BF6FD406F0C0000F3EDF4F3BFDE7CFE - EE5F183C2C3025FD29D96FEB532BC7D14219E77D326A0C2B22E1829A726DD4C6 - 692EEFDB5A4AF0F3787DD21FE395C4FFF05B3DDC0F0080C5B3E66181F95B0352 - 4BE3BC2FE35A0B799FE264D41856922F2895EB221FA738EFCB38B594E0D7E2D5 - 843F1F7FDD7FFD5DCD9E8B7EB4D9B5F38ADE18000016D399573EDB9C7EEA179A - 8FFFF1BFEE8D52F29F27FEF938CDD5E2D4421987D4873C0EE5988E8BE40B92DA - 7AC8E7529CF7C35A4AF0535C26FCABF115377E4373F115FF4BB3F39C37F5C600 - 00B01C5E79E9CF9A273FFBFF6E3EFBC1BF8CD1A04562DE16A7718ADB5A28FB90 - C7496D8E0E8A040C42B9166AE334578B534B897D1EAF4DF6F3E63E7F0000BAA0 - FDF900A945925EF6659C5A688B9351633A28923228D7413E4E71DEE72DA4043F - 5A19A7568E7736AFFBB65B9BFD17BCD37DFE000074C30B4F37CF3DF313CD27DF - F327BD414AFC538B04BD1CA7B93C0E699C5A28FB90C7A11CD3319194D16DE51A - C8C729CEFBB69627F965BFB6C56BFD2E79FD3FB7DD1F00804E8ADB029EB8FF1F - 14AF0DCC5B24EA6D7D5B0B651FF23894633A64D7A0A79B2241CFE5E388F39612 - FADA7CD9625DA53E6FBB9B6BFFF60F36177ED5FFD1ECD8FBBADE180000BA67C7 - AE2B9BFD17BDA5B9F86B5F6E1E7FE09E349BB590FA509BCBD53E9B8C1AD3217E - F8DD35EA97449ACBE348EA539FE6531C7D19AFB6CBBEF19AE692EBDEE9AA3F00 - 0064567603DCF713CDA37FF1608C2A2DAED89771F4290EA94FF3218F937C5C1E - A303E2AA2CDD9212F7A48CF3E3F9384FEE539F5AACA33CCEDBEEE6EBFEEBEF6E - 2E7CCDFFE9AA3F000014FABB01BEB3B9E86B9E689EF8F87D69366B492D2EFB5C - ED5819D7BE8E25E607DE2DE5CFBBFC0550F6B516497ED9D75B3CE1FFF26FF9E7 - CDAE3D277A630000609833A7DFDB7CEECFFFC1903705A41657EFCBBED642D987 - 3C0EE5982515091CDD50FEACF3718AA34F2DA43812FA324E897E8AF35D003B9B - 6BFEDA8DCD79AF7967B36BE715BD3100003096179E6E9E7EE2FFD13CF89F3ED8 - 1BE449FF99411FC97A9A4B71F4651C529C8F933C0EE5982514491BCB2F92F45C - 3E8EB86C214FEED3FC6A82BFDAF2EDFEFD76DDDFF9B166FF817FD6ECDCE1F57E - 00003091DD7B9BBD177C6773C96B7736A7EEFFB3DE44FE377AEA93B671F491D0 - E7C7C7FD5A96981FF2F21B7662479CC629AEB548F453DFDE2EFEEA5735577CCB - 2F7BD01F00004C413C20F0B37FFEC3CD939FF9528C46B448F853DFD6421E873C - 0EE5982512491DCBABFCF9E6E388D338C5658BC4BEECCB1657FD7736571FFD86 - E6A2CBFFAFA639D7557F0000989A179E6E9EFADC7FD73C74E75FF60691E0A75B - 01CA16897BD9D75AC8E390C7A11CB3242279633945C29ECBC711A7718ACB16C9 - 7DEA53A25FB6DD2B7D3CE5FFFCCB7F7D65BB1200003045BDBFB1CF7DD57FD75C - 74D5E79A273EFEB1DE44FC8D1EF2BFDDD35C528E4BA33E3FEAEB595091C4B17C - 869DC011A7718ACB9692FE5A5B5B04B8FE2D3FD79C73FEFFD88B010080ADB27B - DF89E6C0EBAF6E4EDDFB1F0733E96FF79AB6F95CF999516396801FEAF21976E2 - 469CC629CE5B24F8A9CFE348F6D35C7F7CF1575FDC5CF9E6DF6E76ECBABE3706 - 000066E1EC998F358F7CE87B9A273F13AF0A2C6F0718E74D01790B791CF23894 - 6316981D00CB2512F65C3E8E388D539C5A4AECF3B89FE8AF4DFEFBE3B8DFFFC0 - 37FE76B373D76B7B630000605676ECBCB439FFCABFDDECBBE0BF344F3D722A66 - FA0756A4BFEF4B6DF3A19C1F35668129002C8F61276AC4699CE2D422B1CFE35A - 4B85807EF21F0FFBDBB9E7D2DE18000098B578DDF6B9FBFE5673EEC5B70F8A00 - 21FE9E1FA5ED33E5FCA8310B4A0160390C3B41234EE314A716C97DEADBDA6AF2 - FFB57FD3C3FE0000602E0C1E0E78E1958F364F7C227F38609B74BCED73E5FCA8 - 310B480160F10D3B31234EE314A716C97DD9E76D35F18F7124FFFB2EF9D95E0C - 0000CC8B3DFB4E0C8A00F7F646F1777D487D69DCE3C9A8310B460160B10D3B21 - 234EE314A79627FDA9CF5B9EFCF79FF4BFF7024FFA07008079144580F56F0868 - 938EB57DA69C1F35668128002CAE612762C4699CE2D4F2A43FF5B5C4BF3FBEFE - 2DFFBCD9BDF73B7A31000030AF76EEBEBE39F0FAAB2A4580D4E7861D0BE5FCA8 - 310B42016071E5275D19A7718A53CB93FED4A7B69AF4A75EF20F00008B63B645 - 00169002C062CA4FBE324EE314A716497DD9A726F90700806530BB2240DBD730 - C71400164FDB4917711AA738B548EACB3EB53CF98FB65BF20F00000B6CB508F0 - BEC14C12B94029CDD58E85723E1FB77D0D734A0160B1B49D6C11A7718A53CB93 - FED4A75626FF71E5FF9D927F00005870EB770224911394D25CED5828E7F371DB - D7308714001647DB4916711AA738B53CE94F7D6A927F000058668A0014140016 - 43DBC996F7B5564BFC53D29F7AC93F00002CABC98A00E368FBBA8DFE7BCC9002 - C062C84FA614E77DAD45829FFABC49FE0100A04B262F02B4CD27E9F8A8CF3167 - 1400E65F7E529571DE4224F6699C27FD794B897FC4BB9B6BBFFD479B73F67D7F - 2F060000965514012E7EDDCEE6F1FBFE4B6F74B6D7520E318E619FCFE727F937 - D9060A00F3ADED648A388D23914F7D9A4FC97ED9F2E47F57F3B57FF3BB9A732F - 7A7B2F06000096DDEE73DED45C78E5E79A273EF1B1C14C9E630C139F4B45805A - 31201F8FFB6FB20D1400E657DB4914711AA73812FA3CAEB5F5C9FFBE4B7EB617 - 0300005DB167DF894D160192F2EBF2F1B8FF2633A600309FDA4EA6E8CB38B594 - E8E7714AF853DC6F97BFF91B9A0B5FF3FFE94DEFED8D0100802ED973CE9B9BDD - E77FA079E691538399522DD1CFE79274AC66D831B68902C07CCA4F9614E77DD9 - CAC43F4FFA53DF6FAFF986AB9B83D7FE6E2FBCA0370600003A67E7DE66FF457F - AB9729FC71F3E52F3E33981C25F28D36E9D8B0CF30071400E64F7ED29471AD45 - 829FFAB2AD2D005C74CDAB9ACBBEF9D79A1DBBAEE88D010080CE8A22C0A56F6A - 5E7CE68F9B179F7A7130394AE41DA3E49F19E7F3CC502487CC8FB69325E234CE - FBB6B63EF98F76C5B7FCB35EF27F7D2F060000BA2E7283C811F29C616D2E51CB - 35520B799FE2D016B3CDE207CBFCA89D28D197717E32465CB6FCE4DDBDD25FFB - 77DED6ECD9FFDFF662000080BE9DBB5FDB5CFCDA9DCDE3F7FF596F14F945ED5E - FF9AF2B33166CE2900CC8FFC844971DE97AD4CFAF3960A00FDF635C76F6DF65F - F28F7B310000C05ABBCFF9D6E6BCAFBABF79F2D39F1ACC8CA3AD5010B94ADE87 - 3C661B2900CC87B69323E25A8B243FF579D29F27FF11EF6EAE7AD33734175EF1 - 4BBDA127FE03000075E7ECBBA5D97BDE079AA73F1B6F0688E43EF28D5C99F097 - C76BF2CF8CF379B69802C07C4827437982A47124F3A98FB9E8CB561600763517 - 5DFDAAE6C037FC52B373B787FE01000043ECDCDBECBEE048737AA2870226A960 - 502B1C9463B69102C0F6CB4F8814475FC691DCE771DE52D29FC7BB9BD7FE8DFF - B5D9BDF7E65E0C000030DCCE5D079BF35EFD55CDA98FBDAF37AA6DF1AFCD85C8 - 51F26331AE699B67461400B6577E029471AD95897F6A29E95F6D5F7BDB5B9ABD - 17FE482F06000018CFCEDDD737175EF1B9E6894FDC379819475B6120895C26C9 - 63664C01607BA5C55F9E10691CC97D1AA7B84CFC53BFDA2EFBD66F6C2EBAECE7 - 7B87DCF70F00004C66CFDE3735BBF6DFD17CF9B38F0D664A65C29FF297248E97 - 73E5986D10C923DBA37602C45C9ACFFBB2E54580BCF50B00177FF5FFD6EB2EE8 - C500000013EAE5122B39C5572E32D6728F68B55C25E47D8A73B53966207E98CC - 5EBEE0CBB8D66A275B7E32C6BBFEFBE3D77FFBFFDCEC39F7782F060000D89878 - 1EC0AB5E7751F3F87DB70F66427EE5BFB6EDDFAD00734E01607BD4167EF4298E - A43E8D539C27FEA95F1B5FFD7F3BDA9C77D0FBFE010080CDDB75CEA1E6DC4BFE - BC79EAC1CF0E664625FD299F49E25839C7368AE491D9CA4F8014B7CD952D7E5E - A94FAD5F04B8F0AA5735E75F1EDB74000000A623728CC835F2DC63B5E5394AD9 - 42EAC3B03966247E586C8F72B1C7386F21C5E509B6BE5DF6CD3FD2ECDAE97DFF - 0000C0F4448E11B9462D07E9B7325F8916529CCF25E59819890A0EB3932FF414 - E727447ED29427D3DAEDFEAB6DF760EBFF3FEAC5000000D3D5BF15E0C3835B01 - DAEEF3DFE8AD006DF36C814828998D7C61D716799A8BBE8CCB62C06ABBF0AA8B - 9BF32FFFA7BD180000606B44CE11B9472D27599BB3440B655CCAE76AC7D902F1 - 4362FBA493226F21FADA0955B65DB6FE0300005B6EF55680B433B96CB51C2644 - 5F36B649FC60D87AF9224F716DF1A7B9BCE52751DE7AC9FFB77E7D73CE79FF7D - 2F060000D85A917B440ED25E048856CB6972F95C7EACFC1C5B207E40CC4E6D51 - A71360584B27527E62ED6C2EFE6A5BFF010080D9B9E8EA9FEAFDCFB579C9DA9C - 65542BD5E6D82251B9616BE50B3AC5F9E24F7179F29455B518AFB6AFFD5B3FD0 - ECDDFF777B310000C06CECDA7D4573E1355F6E9E78E0E46026C443FE524BF238 - E4E3940B95DAE69992482C998DDA628EB9BC857C9C170056DB8557BEAAD977FE - FFB317030000CC56E4229193D472957ECB739A908FD35CAE36C716881F0E5BA7 - 6D71A7F914A7563B69F2B97EBBEC8DBDE47FD705BD18000060C67AB9C84A4E52 - C95586E736A9853CCED5E69892F861B0F5862DECB4F0CB969F30ABEDABAEBFDA - 83FF0000806D153949E426B59CA5DF6A394EB490FA5C6D8E298B1F0C5BA36D51 - E78BBE8C53CB4F9A14F7DB255FEFC17F0000C0F6EBE7266BF395F5F94CDE425B - 9CABCD3105F143616B0D5BD069C1E72D3F51D289D36F57DDF2E666CFDE6FE9C5 - 000000DB2B7293C851CABCA59EDBE42DA43E579B638AE207C2F4B52DE67CB197 - 71DECA93A71F9FFF9AFFA9D7030000CC877E8EB23E77591D972DB4C5B9DA1C9B - 143F14B6CEB0859C167ADECA9364F5E479DDADDFD9ECDE735D2F060000980F91 - A344AE92E72EEB739A7C9C5A487DAE36C794C40F83E96A5BC4F9222FE368E9C4 - 4827CDDAB6EF12AFFD030000E64F3F57A9E7316B739DD4425B9CABCDB109F183 - 606B0C5BC06981A7969F18EBDBEB6EFD8E66C7CECB7B310000C07C895C257296 - 5A2ED36F79CE93B790FA5C6D8E29881F02D3D3B678F3C55DC66D6DF58471F51F - 00009867EB7701D4729CBC85B638579B6383E207C3F40D5BB86961A7964E8EFC - 64596DAEFE030000F3CE2E8085103F00A6A36DD1E68BBA8CDBDAEA49E2EA3F00 - 00B008FAB9CBDA7C66780B6D71AE36C70628004CDFB0059B16746AE9A44827C8 - DAE6EA3F0000B028EC02987BF1CD67F3DA166BBE98CBB8ADAD9E20AEFE030000 - 8BC4B300E65AFC40D85AE5422E5B7E72ACB6AB6E7E93ABFF0000C042891C2672 - 995A8ED36FB59C285A483D5B247E004C4FBE7087C56D6DF5C438EFD5FF43AF07 - 0000582CFD5C6635B7A9E73E790BC362A6247E186CCEB005991F4B8B38B57422 - E42746BF5DF92DD7377BF67E4B2F060000582C91CB444E53CB75D6E642794BF2 - B834EC1863886F3CD3316AA1D65ABEF057E3F3AFFA7BBD1E00006031F5739AE1 - 79CFFAD666D83126A000B039B585982FE0BC8514978B3E8D7736175E7951B367 - DFDFE9C50000008B29729AC86DF25CA79E03450BF9B1BC956A738C29BEE96CAD - B470DB167CDEEF6C5E7D285E9B010000B0D8FAB94D3FCFA9E740A9E563B6507C - A3D9BCB450F3455B5BC0692EB5FC04E8B7BD177E5FAF070000586CFDDC6635D7 - 599B03E52D97CF95319B14DF7C3666D8022C176C5BCB4F841DCD55377FAB57FF - 0100004BA1FF4AC06F8D68D0D6E63FED2DA4BE66D831865000D8BCDAE22B176E - 6D9C2FFCFE8970DEA57FB7D70300002C877E8E5326FE791C525C8E4BB5392610 - DF78A6232DD27C51E673D1D2422F17FFCEE6822B3CFC0F0000582E91E344AE93 - F29EE1B9516A496D8E4D886F36931B6701E68B356FE5A2EFB7AFFAFABFD1EB01 - 0000964B3FD759CD7DEAB951D94619E73314E21BCEC6A545972FD23C4ED25CDE - D62EF6BDAFF2F03F000060F9F4739DF65C68B5E5F2B93266831400A6AB5CA06D - 2D2DF8E87736977EFD55CDAEDDAFEFC5000000CB25729DC87952FEB336271AD6 - 42EA9982F8A633997117606DE1D6DBC557FFF55E0F0000B09CFA394F3D1FEAB7 - 508E4719F7730C28006C5CB948431E2769AE6CA9FAB5B3D973E1B7F77A000080 - E5D4CF795673A07A8E142D97CF95311B10DF78A6A35C986D6DED82BFF4EBAFB4 - FD1F0000586AFDDB00AEEC45F5BCA8BD85D4B3490A00931977E1D5166CB47C81 - F717FCC5D71CEFF5000000CBAD9FFB94897F1E8714A7F128E37E8E9EF86633B9 - 7271863C4E629C1674BEB057DB9E0BBCFB1F0000587EFDDC677D4EB43E67CAA5 - CF843266420A00D3512EC8BC85BC8FEF797F615F729DEDFF0000403744EE1339 - 509917F5E57DD942EAD9040580F18DBBE06A0B355A5ADCABE303AFB5FD1F0000 - E88E7E0EB43E375A8D437E6C1CE37EAEF3140026575B5CB5C599E6DADBEEFDDF - D2EB010000BAA19F03D5F3A3B52D579B0BB539865000D8B8B408F34597CFD5DA - DA4AD7EEBD7FADD703000074433F076ACF91EA2DA9CD31010580E9C917635A90 - ED735FFD5FD9FE0F0000744F3F175A9F238D9E63931400C6B39105572ED868F1 - FDEEB73D177D6BAF070000E8967E2EB49A1BD573A7496DE46B3A27BED98C2F2D - AA7C51A6B8366E6F7BCE7D63AF070000E8967E2E54CF93D6B7D0360EA9670C0A - 009B532EBA5ABFBE5D70F9855EFF0700007452E4429113D572A57E0BA37A3640 - 01607A6221A616F27E6D3B709DEDFF00004077F573A2F5B9525FDEE7F36C9202 - C068C3165BDB624CF3F5B6E702AFFF030000BAAB9F13D5F3A5D5566A9B4F861D - A34701607C6931D5165D9A1BA7ED74FF3F0000D069FD9C28F2D15ACED4D672F9 - 5C798C160A001B575B6C6911E62DAC1DBBFF1F0000E8B2D59C686DAEB4769CCF - 8714E7734C4001603ACA8599C45C5ED5DAD95C79CCFDFF000000FDDC686DBED4 - EF4BE9389BA400307D6971E68B7435DE7F89FBFF0100005673A35AEE94CF3125 - 0A00C30D5B70E5824CE3616D67B36BAFEDFF000000FDDC28DF0130AC25E5B834 - EC58E729008C272DA2DA62CBE76A9F4B717FBC6B8F02000000C06A6EB436675A - 1FA73EC549ED730CA100B031B54556CE45BFB69D7FD945CD8E9D97F762000080 - 6E8BDC2872A4326FEAB750F6A136C7981400362F165EBE08DBC63B9A8B5FEBEA - 3F000040D2CF91D6E64D7D6D6336410160E3CAC5575B9C6BDBDE0BAFEBF50000 - 00847E8E54CF9FFAF23829C78C4901A0DDB045552EC6FCB3B563FDB6679F1D00 - 000000C9CE73E216E9F5B9535FEAC3B063A561C73A4D0160B47C818DB3C8DA3E - B7A3D9B9FB8A410C0000C09EBD69074029CFAB6AC793713F478F02C0E46A8BAB - 9C8B7E7DDBB9F3DA5E0F000040E8E748F5FCA9AFEC436D8E3128006C4E2CB87C - F1B58DE30D0017343B765D1007000000E8891C2972A5327FEA6B1BB3410A00D3 - 575FA417BFD603000100004AFD5C697D0EB53A664A140036A65C88E5025DDFEF - DA7DE12006000020E9E74AEDB9D46ACB9563C6A00050376C31A5636911B67D76 - EDF1BD177A03000000406935575A9B43AD571E6FFB5C1876ACB3140086CB17D6 - 388B2B7D2EFF6C7FBC7377BCDE02000080B5F2670024699CE6F263A5713FD779 - 0A0093A92DAA722EEF57630500000080F5769F1B3B00EA7954BD0FB539465000 - D8B858686D8B2D1D5BFDCC8E57BC01000000A0DDFA3C6ABD61C7184101603A46 - 2FD29DE7C6FB2D010000C8ED3AE79B7BFFB33D971A9E6B31010580E9CA1767DE - 00000018AE964B45634A140026572EC07261AE3F7EF0EBAE18C400000094FA39 - 532DD74A7D6AB972CC080A009BD3B6E0D62ED0732FF5004000008036AB39D3DA - 5C6ABDB679C6A000B0DEB005958EB52DC8FAD79E1DFA6F020000745B7BCED496 - 77A5F961B9D6B0639DA400B079C3165ECCED6876EF39BF3F040000609D7ECED4 - CF9FD61B967331010580D1DA16612E3F9E3E9FE676347B2FB86E1003000050EA - E74CAB39D4DA9C2AE4714DF9792A1400DA958BA7B698467DC60204000018DF46 - 722C79D898140026971653DBA28AF9D400000098CCA89C2ACDCBB926A400B031 - E5421BB638010000D8B85ABE25FFDA000580CD1BB5F02C4C000080D1E4565B4C - 01606BF517E8AE735EBFD203000050B1E7F24120C9DF420A00D3952FD6D578C7 - 2EAF0104000068B37BF7658328D4F32A364D01607AD2C28CDE82050000984C99 - 47A5B19C6A4A1400000000A00314003627AF4AD5A8540100008C6F547E25C7DA - 040500000000E8000580C9B4559BD27C7E5C650A00006072B5BCAA2DBF92774D - 400160FA6201168BF0AC45090000D06A5DCE54C9ABD82C0500000000E8000500 - 000000E8000500000000E8000500000000E80005808D1BF781141E5C01000030 - 9A1C6B8B29000000004007280000000040072800000000400728000000004007 - 2800000000400728000000004007280000000040072800000000400728000000 - 0040072800000000400728000000004007280000000040072800000000400728 - 0000000040072800000000400728000000004007280000000040072800000000 - 4007280000000040072800000000400728000000004007280000000040072800 - 0000004007280000000040072800000000400728000000004007280000000040 - 0728000000004007280000000040072800000000400728000000004007280000 - 0000400728000000004007280000000040072800000000400728000000004007 - 2800000000400728000000004007280000000040072800000000400728000000 - 0040072800000000400728000000004007280000000040072800000000400728 - 0000000040072800000000400728000000004007280000000040072800000000 - 4007280000000040072800000000400728000000004007EC18F4AC4ADF93BC4F - 2D0A26A9DF95F5A9EDAEB43DCD1BDEF2ABCDAEBD37F4628056476FBAA53978F0 - E060C42C3CF7DC73CD03F77DAC79F8A107073300C0B638F3E25DCDBDBFFB83BD - E874AFBD5C6967B2F64AD69F1D8CA34F2D943D3D29C96555FA9EE47D6A0A00C0 - D4EDDFBFBFF9B19F7C7B73D5D5D70C6698B52802FCD22FFEFC4A410000D8060A - 003311092C00DBE8BBBFE7FB24FFDBECDAEBAE6FFEDE5B7F78300200584E0A00 - 00DBECD00DDF3C88D84E877B3F87D88D0100B0AC140000B699A4737E1CBAE18D - 83080060F9280000C0C0E12376630000CB4B01000006E2368003072F1D8C0000 - 968B02000064A2080000B08C1400002073F4D8CD83080060B928000040265EC9 - E8360000601929000040E1F8895B071100C0F250000080C261AF030400969002 - 00C0368AEDE6CC9F03070FFAD900004B470100601BEDDBBF7F10316F8E9FB86D - 1001002C07050000A838E4758000C092510000D8469E363FBFF6EFDFDF1C5604 - 000096880200C0363A78F0E020621E1D3EE2618000C0F25000008016476FBA79 - 65270000C032500000D846D7BEFEFA41C4BC3AE4958000C09250000080210E1F - F11C000060392800006CA32BBD6B7EEEC583003DAC110058060A0000DBC8FDE5 - 8BC1DB00008065A00000B04DAEBDCEFDFF8BE2E8B19B071100C0E2520000D826 - AEFE2F8EABAEBEC66D0000C0C2530000D8269154B2386EBCC92E000060B12900 - 006C932BAF52005824478FDD3288000016930200C0363970F0E0206211C4CFCB - AE0D0060912900006C83B8FF5F32B9783C0C100058640A0000DBE0D00D6F1C44 - 2C92A337B90D0000585C0A0000DBE0F011EF955F44B173E3F00D7E7600C06252 - 0000983149E4623B7CC4EE0D006031290000CC98EDFF8BEDD00DDFBC52C40100 - 58340A00003366FBFF628BE45F11070058440A00003364FBFF7250C401001691 - 0200C00CB972BC1CA288E336000060D1280000CC902BC7CBC32B01018045A300 - 003043B6FF2F8FA3C76E1E4400008B410100604624FFCBE5AAABAF690E1CBC74 - 300200987F0A000033E2FDF1CB4751070058240A00003312EF8F67B91C3F71DB - 200200987F0A000033E0A9F1CBE9C0C1832BB70200002C0205008019B0FD7F79 - 79182000B028140000B6585CF93F7A932471591DBE41710700580C0A00005BEC - 900471A9C56D001E0608002C020500802D76F888E470D9B9C5030058040A0000 - 5B28B6FFBB3ABCFCBCE1010058040A00005BC8F6FF6EE83FE7E196C10800603E - 2900006CA1E3276E1D442C3BB77A0000F34E0100608B1C3878A977C47748DCEA - 113B010000E6950200C01671EF7FF7B8E5030098670A00005BE4E831EFFEEF1A - B77C0000F34C0100600BD8FEDF4DF1338F9F3D00C03C520000D80237DEE4EA7F - 57B9F5030098570A00005BE0E831AF84EBAAE3276E1B440000F345010060CAFA - DBC00F0E46744DFCECDDFE0100CC2305008029F3F03FAC0100601E2900004CD9 - 61AF82EB3C6B000098470A00005364FB3F21D6C0B5D75D3F180100CC07050080 - 29F20038921B3D08120098330A00005374C82BE018B016008079A300003025F1 - FEF7FDFBF70F46745DAC8558130000F3420100604A0E1FF1E037D63AEA360000 - 608E2800004C892DDF94EC0A0100E6890200C0141CBDE916891E5587BC121000 - 98130A00005370F888ABFFD4DD78ECE6410400B0BD14000036A9EB0F7B7BEEB9 - E79A3B3F70FB6044E9DAEBAE6F0E1CBC74300200D83E0A00009BD4F52DDE0FDC - F7B1E67DEF7DF760448DB7010000F34001006093BABEFDFF91871F6C1E7EE8C1 - 959D00D41D751B0000300714000036C1BBDE9BE6FEFB3EB6D2DF73D747567AD6 - BBEAEA6B561A00C076520000D88478FA7FD7C52D00E1FEFBFB3D7576010000DB - 4D01006013BA9ED4C5D6FFE49EBB3E3C88A839EC758000C036530000D8A078B2 - 7BD7B7753FF2D04383A8FF3680BC20C05A070E1E5C79230000C076510000D820 - 4F765FBFEDFF9EBB3D0760981B8FB9650400D83E0A00001BE49EEED801B0F68A - FF490F021CEA90A21100B08D14000036C0F6FFFA967FAF031CCE5B230080EDA4 - 0000B001C74FDC3A88BA2B3DFDBFE47580C31D3EE2618000C0F6500000D8004F - 746F9A471EAE3FF0CFEB00873B7AD3CD2B3B010000664D01006042B1F53F9EE8 - DE75F7B7EC0068DB19C0AA430A4800C036500000989087FFF5B525FA8F9F7ACC - EB0047387CC473000080D95300009890EDFFA3AFF2DB05305C3C08301E240900 - 304B0A000013E8276EB6FF3F30E23EFF93777B10E028DE060000CC9A0200C004 - 3CC1BDAFEDFEFF247600781DE0706E250100664D01006002875CB55D31CE167F - B7010CD77F98A4DB000080D9D935E859B5A3D2D75A144F523FACED6A2E7DC37F - D3ECDC7D592F0616586CD9BEF1A65B06A3EE8AC4FECE3B6E1F8CDA5D74F1C5CD - D77FE3370D46B4F9ABBFFCE8200298BD782DE9D7BCEE6B570A92A94581F25BDE - 74B479FD75D7AF6931FFF2E9D3CDD34F3D35F86A98A2B3671E6D1EBBF7DFF5A2 - 575ADAD9961652CF0891C0B256FA9EE47D6A91D0A73E8A27A94F6D77A5ED69DE - F0965F6D76EDBDA117030BECFBDFFAC32BEF70EFBA7FFF07BFD7FCE1EFFFDE60 - D42EFE88FC9977FEFC6044CDE3A74E353FF5133F3A18014C5F24EDFB7A497E24 - F0FBF6ED5F19876B7BE38D3A79D7479ADF7CD72FBBD58BE93AF3E25DCDBDBFFB - 83BDE874AFBD5C6967B2160581D447F25F160842D9D393925C56A5EF49DEA7A6 - 00001D155748DEF1CE5F58E9BBEEE77EF61D636FEFFF99DEF7CC431387FB273F - FD76AF4D04A62292FA48F0AFBAEA9AE6CAABAFFE4AB2BF15A208F04BBFA8C8CB - 142900CC4424B0008C70E886374AFE0726B9B7FFE45D1F1E44B4397EE2B64104 - 3099B835EDBBBFE77B9B1FFFC9B737BFFCEBBFB5D2C73876AB6D65F21FE2BFBD - D5FF0D60FA140000C670F88887FF85491FEC37EA758178B02430BEB8B5EAF8B7 - DDF69584FFEFFFC8DB56C69BD9CEBF19DBF5DF05362E6D736755FA9EE47D6A6E - 01800E8A2BFF3FFF2F7E6530EAB671EFFFCFC51FA90C17DB68633B2D24476FBA - A5B9D1AB22579E9371F2EE0F77FAFC88ABECF1DAD0C337BC71EE6EA9DAC8FF4F - 80566E01988994E4B22A7D4FF23E350500E8A0F843FCFBDFFA438351B76DE47E - F5B852E52AD170777EE0F6E637DEF5CB83115D175774631B37ABE2F7CE6FBEEB - 573AF3BC8CB8D21F5BECE316A1797E8E8A020053A500301391C0023084EDFF7D - F1B4E78DFCF17DF26E57B64789DB003C6382C47321D68BABE03FF6936F5FFA7B - CE23E98F6DFDF10695280279882A306D0A000043A4AB304C7EFF7FB2D1AFEB92 - 48FEE3419310247D75719E441160D98A65F17FCFDFFEF6EF58796B4A24FFFE7F - 0EB09514000086F087D8AA8D5EC98F5D03711F2FC3D96902A345B2FCDDDFF37D - 83D1628B02F3F7BFF587579E31F3B7FECE7728FC0033A1000030443C7889BECD - 5CC9B70B60B428362DDB954D36C6F9325CBCE26E91CF9594F8C736FFF8BF0560 - 961400005AC41F69DE71DC1757F01F3FF5D86034B9788A37A3C5032781D1E241 - 898B46E20FCC0305008016B6FFAF3A79D7E612785734C763C709E181FB9D2FA3 - FCF5057A5062EC5690F803F3420100A0852771AFDA6C42126F105004182D769C - C4554260B848AAE7BD481BFF3BC6C3FDDEF1CE5F90F80373430100A0A29F8879 - 205372F2AECDBFCACFEB00C773A344A1F3EE572C1BCBE123F3FBE68CB89D2712 - FF78B89F677B00F3440100A0C256EC55D348FE831D00E3397ACC7300601C87E6 - 7007C0B5D75DDFFCC37FFC8EE6FBDFFA43127F602E290000541CF64EF6AF98D6 - FDC85E07389ED879E2E193DDE63C194F24D8F372AEC4FF2E719FFF8FFFE4DB9D - BFC05C53000028D8FEBFD6B4760004BB00C663074AB76DE68D1B5D1357DCB75B - BC91C07DFEC0A25000002848BE566DF6F57F25AF031C8FD701C278AE7DFDF615 - 00A2581CDBFDBFFB7BBED7767F606128000014245FAB36FBFABF921D00E38964 - C26B28BBCDB9329EEDDA6E1F4FF78FE4DF767F60D12800006422E9722567D59D - 77DC3E88A6235E0738CD5B0A96D93C3FE11CE645DCAE35CB5767A6ABFEF1747F - 8045A40000909174AD8A643D1EDC376DD37AA8E0B28B279C2B4675579C7F8CE7 - AAABAF1E445B2BEEF577D51F58740A000099797CADD476B9678BAED4DB01309E - 48FE0F791B45673DF2F0F48B6FCB6AAB13F23817E3E9FE71AF3FC0A253000018 - B0FD7FADAD7A605F3C54702B76162CA3C34714A460942BAFDABA0240FCFF8578 - C2FF3CBC6D00601A140000066CFF5FB5D5F7EA7BC0D97814A5BACB2D00E3DBAA - 1D0071C5FFEFFFC8DB9C83C052510000E8893FF0BCC379D55627E8D37EB8E032 - 731B4037D92533BE7810E034A52DFF71CF3FC0B2510000E89164AD75F2EEADBD - 4F3F929BC74F9D1A8C18E6F8895B0711D0665A5BF46337812DFFC032530000E8 - 71AFF55AF7DCB535F7FFE7DC06309E484866F99A335844D3D8A67FF4A65B569E - F26FCB3FB0CC140080CE8B3FF6E25E6BFAE2DEFF59DC7FBC550F195C46D667F7 - D8213399CD3E0720EEF7FFFEB7FED06004B0BC140080CEB3FD7FADADDEFE9FCC - AAD0B00C8E9F702F72D7C4DB3218DF81031BDB251305E078D09FFBFD81AE5000 - 003ACF3DD66BCD726BBEDB00C6130F39DBEA779DC322DBC8830023F9FFB19F7C - BB1D3640A72800009D16F7564BAC56F51FCE37BB2B8FB3DA6DB00C8E1EF3960A - 9896F8BD1FC9BFDFFF40D72800009DE6CACF5AB37E3DDF2C1E36B82C0EBB5505 - 5A4DF2D47EC93FD0650A0040A7B9AABA56DC973F4BF10C8059FF3717556C7156 - B0EA96D891C374A5E4DF93FE81AE5200003ACBF6FFB5E2A9E3DBF1E031B7018C - EFF011BB00BAE4790FC99C2AC93F800200D06137DEE4EA7FEEE4366DC7F720C0 - F11DB203005A0D2BE8C6EE19C93F800200D061478FDD328808B3BEFF3F895D07 - B63A8F279297A33759B750B3AF25B98FE43F5EF527F9075000003A2AAE146DE4 - B551CB2AEEC5DFCE247CBB8A0F8BE8F011BB00605CF1BBFEEFBDF58707230014 - 00804EF2F0BFB5EED9E607F17910E0F8E26AA62B99309A7BFE01D65300003AC9 - 2BD5D63A79F7F6BE8ECF6D00933964FDC23AF9330024FF00750A0040E7D8FEBF - DE3C5C81771BC0F88E9FB8751001494AF625FF00ED140080CE397EE2B6414498 - 97EDF7DE0630BE7E11EBD2C18865F5C0FDCE894945D2FFF7DEFA43927F80160A - 0040E77895DA5AF3F21EFEB805E0F153A706234689670100ABF6EDDBBF72E53F - BF150080B51400804EF100B5F5EEB96B7BEFFFCF9D9CA3FF5DE69D0759C25AC7 - BFED36C93FC0080A0040A71C3EE2E169B9B8EA1EAF009C179E0330BE4874243B - 00C0241400804EB1FD7FAD794BB8DD063019BB000080492800009D71F4A65B6C - FF2FCCE3FBF7DD06303EAFB3040026A1000074C6E123AEFEE7E24A7BBC7F7FDE - 78F2F9F8E27596D75E77FD600400309C0200D00971E5DF53D3D79AD72BEDB12B - 619E9E4B30EF6E3C76CB200200184E0100E88443B64AAF33CF0FDCBB670E6F4D - 98579E6B01008C4B0100E804DBFFD78A2BECF1C0BD7975F26ECF011897DD2D00 - C0B8140080A527415A6FDEAFB0CFE3C309E7D951B701000063500000965E3CFD - 9FB516E10ABB22C0F8A2C0E50D1700C0280A00C0D2F3AEF4F51621B93E79B702 - C0243CE762F9CCF36D3A002C26050060A91D38786973D5D5D70C468445B9B27E - CF9CBEA5605EDDA8D0B574BC0D038069530000969A7BFFD75B942BEB91FC3C70 - DFC7062346B9F6BAEB570A5E00006D140080A566FBFF7A8B7465DD6D009351F0 - 0200865100009696EDFFEBC53DC58BB4ADD8830027A3E005000CA300002CADE3 - 276E1D442477DE71FB205A0C8F9F7ACC83D02610052FB70100006D140080A575 - D853D1D759C42BEAF7B80D60220A5F00401B05006029F5AF841E1C8C088F9F3A - B572457DD1B80D60320A5F00401B05006029B9177ABD930BFA5ABDB805208A17 - 8C270A5F9E7DB11C9EF71A4000A64C0100584AAE82AEB768F7FFE716B578B15D - 8E9FB86D10B1C83CFF028069530000964EBC0ACDF6FFB5E20AFA2227135E0738 - 99435E070800542800004BE7F01157FF4B0FDCF7B141B498E27FFF457A7DE176 - DBBF7FFF4A210C0020A700002C1D573FD73B79F7E26FA1BFC7C30027A2100600 - 94140080A512573DE3EA27ABE2CAF9323C497F198A18B374F4A69B9D0B00C01A - 0A00C05271D573BD65B972EE7580933BE461980040460100581A71B5D3F6FFF5 - EEBF7FB1EFFFCF29024CE6F011E70300B04A0100581A71B5D396E7F5EE59A257 - E8791BC064FA6FC4B874300200BA4E0100581AAE76AE1757CC97E9E9F9CB54CC - 98156F030000120500602978ED59DDB25D315F96071ACED2D163370F2216D1C3 - 0F3D38880060F3140080A5E0616775F1FEFC65E33680C95C75F5356E035860CF - 2FD10E1E00B69F0200B0146CFF5F2FAE1C3E7EEAB1C16879B80D6072C74FDC3A - 8800802E530000165E5CDDB4FD7FBD3BEFB87D102D97B80DC0B6E8C91CB64306 - 00E8510000169EE4BF6E99EF955FD6E2C6563970F0E0CAAD0000D3B44C0F9985 - AE500000169E879CADB7ACDBFF93657CB6C156739E00D3E6A1ACB07814008085 - 16DBFF5DD95C6FD913E47E81E3D460C4388EDE74CB2002D8BCDF78D7AF2C75A1 - 1996D58E41CFAAF43DC9FBD4A26092FA5D599FDAEE4ADBD3BCE12DBFDAECDA7B - 432F06A6ECF8B7DDD67CF7F77CEF6044F24F7EFAED4B7F9F7CFCDCE3E7CFF87E - E9177FDE15BB05F3E33FF9F6E6DAEBAE1F8C607CF1FF03F2B7483C70FFC60AC3 - 070E5CBA721B515829BE3E7E6AE5F788E49FA93BF3E25DCDBDBFFB83BDE874AF - BD5C6967B2F64AD69FCDFAD442D9D393925C56A5EF49DEA7A6000073E667DEF9 - 0B5FF9C384BEB832FE533FF1A383D1F28A673FFCFD1F79DB60C438EEFCC0EDCD - 6FBCEB970723168102003571EFFD23BD647C25C97FBEFF60D4988BDFFF127316 - 9602C04CA4249755E97B92F7A92900C01C89ADFFFFF01FBF63302279DF7BDEDD - FCCE6FFFD660B4DC7EFE5FFC4AB37FFFFEC18851224178FB4FFCA807772D1005 - 00E296AE48F01F7EF8A195E4DE3350585A0A003311092CC042F250B3BA8D6EF3 - 5C44FE109E4C144B0E792520CCAD48F4FB3B757E65E556AE1FFE81EF6D7EEE67 - DFB152D4BDF303EFF73B0FD8340500606179B7795D97FE403C79B7FBD92775F8 - 88D766C2BC88843F766DC5F339DEF63FFCD04AD21FB7E944B21FC700A64D0100 - 5848B1FDDFBDFFEB45F2DFA5EDDDF7DCF5E141C4B8E2D9096E9B80ED11F7E8C7 - 15FE3CE18FABFBF1503DB7E600B3A000002C24DBFFEBBA76453CFE60B6257672 - 5E0908B31357F2FFFD1FFCDE4AB21F0F688D2BFC127E60BB2800000B490253D7 - C564D86D0093534083AD15497F5CD9FFA99F78DB4AE2FF87BFFF7BB6F4037341 - 01005838B630D7C5D6D22EFE81E9BDF693EBDF4273E960044C43FC0ECE93FEB8 - B7DF2BF98079A300002C9CC3473CFCAFA6AB5BE1E30F6C57D62677E34D7601C0 - 66C536FE48F4D3F67E493F30EF1400808573E8064F31AF397977771F88778FDB - 002676F498DB6860A3A2E01AAFEA8B07F9C5557F454860512800000BC5F6FF76 - 5D7E189EDB0026176FD1885B0180F1C4D5FE78827F6CF18F77F3C7ABFA00168D - 0200B0506CFFAF8BE4BFCB4F948EAB6F71FF2D93F13040182DDDDBFFF6C113FC - 6DF10716990200B030E2CAFF51F72D5779127EEC02E8EE2D101BE56D1AD02E12 - FFD8E69FEEEDF7DA3E60192800000BE3D00DAEFEB7E9F2F6FFE4CE3B6E1F448C - 2B8A6A715B0DB02A4FFC6DF307968D0200B0300E1F91A8D4C41FAB1E40D5BF0D - C015BAC9B9AD06FA24FE40172800000BC195CA76B6BEAFBAC7C30027E6AD1A74 - 9DC41FE81205006021D8FEDFEE81FB6DFF4FBAFC2AC48DEA3F5BC3B300E81E89 - 3FD0450A00C042387EE2D641442EB6BC7B05DEAAF85EB80D60726EAFA14BE277 - C4BFFF83DF6BFEC94FFF94C41FE81C050060EE1D3878A9F795B7F0F0BFF5DC06 - 30B9B8BD267602C0B28B22E13FF9E9B7377FF8FBBFA758087492020030F7DCFB - DFCEEBFFD6731BC0C6B8CD866516DBFD7FEE67DFD1FCD22FFE7C2FF61E7FA0BB - 140080B977F49877FFB7B9C70300D7711BC0C6B8CD866575E7076E5FD9EE6FC7 - 1480020030E76CFF6FE7B577EDDC0630B938CFE27C836511BF1FE3217FBFF1AE - 5FF6BB1260400100986B37DEE4EA7F9B3BEFB87D1051721BC0C6B8DD86651109 - FFFFFEB3EFF0903F8082020030D78E1EF37AB2369EFEDFCE56DF8D397EE2B641 - 048B2B7647C583FEA207602D0500606EF5B7241F1C8CC8C51FB61E64D52EAEFE - 29904C2ECE37B7DCB0E87EF35DBFE2F723400B0500606E79F85F3B57B847BBF3 - 0E5B7F37C279C7A273E51FA09D020030B70E7B2D592BF7FF8FE66D001BE3BC03 - 80E5A50000CC25DBFFDBC5FBAC5DE11A8FB7014C2ECE3B0F030480E5A40000CC - 250F236B77D2BBFFC7E66D001B73F8885D0000B08C140080B974C815C85627EF - 76557B5C6E03D818E71F002C27050060EEC4F6E3FDFBF70F46E42299F500C0C9 - B80D607271FEB90D0000968F020030776C3F6E27999D9CDB0036E6E8B15B0611 - 00B02C140080B963FB713BC9ECE4DC06B03176E200C0F2510000E6CAD19B6E91 - 74B488243692592667E7C4C61CF24A4000582A0A00C05C397CC4D5FF3692D88D - B37362636E3C76F32002009681020030373C786C3849ECC6B90D6063AEBDEEFA - E6C0C14B07230060D129000073C376E376B6FF6F9E1D141BA3280700CB430100 - 981BB6FFB793BC6E9E1D141B73D46D0000B034140080B960FBFF7092D7CD7BE0 - BE8F0D222671D5D5D7AC340060F129000073219EFE4F9DEDFFD3E1FBB8717601 - 00C072500000E68204A39DEDFFD373F26EDFCB8D38ECF91C00B0141400806D17 - 4F19B7C5B89DEDFFD373CF5DBE971B71E0E0C195370200008B4D0100D876EEFD - 6F67DBFA74C5F7D3B30036E6C6636ED3018045A700006C3BDBFFDBD9FE3F7D6E - 03D898430A7500B0F01400806D65FBFF701FBCE3FD838869B1A36263BCA90300 - 169F0200B0AD8E9FB87510517AFCD429DBD5B7C0E3A71E5BF9DE32B9A36E0300 - 8085A600006C2B4F176F77D203EBB68CEFEDC6C40E80D80900002C26050060DB - C4D6FF78BA387577DE71FB2062DA3C0760E30E29DA01C0C2520000B68D87FFB5 - 8B2DEA0F3FF4E060C4B4C5AD15F146002677F888E70000C0A2DA31E85995BE27 - 799F5A144C52BF2BEB53DB5D697B9A37BCE5579B5D7B6FE8C540E667DEF90B76 - 00B4B8F303B77B00E016FBEEEFF95E0FA0DCA09FFA89B7AD3C4B81ADF7E33FF9 - F6E6DAEBAE1F8C18C70FFFC0F70E2260A19C79F1AEE6DEDFFDC15E74BAD75EAE - B433597B25EBCF667D6AA1ECE949492EABD2F724EF5353008029897B89FFFE8F - BC6D300216C9EFFCF66F35EF7BCFBB0723B69202C0E4140060412900CC4424B0 - 003377F888FB886151B97D070016930200B02D0E799F382CACFE033C2F1D8C00 - 8045A10000CC9C5789C1E23B7EE2D64104002C0A050060E66CFF87C577D8EB00 - 0160E1280000331557FE6DFF87C5176FF0F0160500582C0A00C04C1DBAE18DB6 - FFC392387EE2B64104002C02050060A60E1F71F51F9685DD3C00B05814008099 - 892BFFF10040603938A70160B12800003313DBFF81E5E2A19E00B03814008099 - B1FD1F96CFD19B6EF65C0F0058100A00C04C1C3878A9ADC2B0A4ECEE0180C5A0 - 0000CC84E41F9697DD3D00B01814008099387AECE641042C9B28F0C52E1F0060 - BE2900005B2E1283ABAEBE66300296915D3E0030FF1400802D273180E567970F - 00CC3F050060CB1D3F71DB20029655ECF2711B0000CC370500604BF593828383 - 11B0CC6EBCC92E000098670A00C096B22D18BAE3E8B15B061100308F1400802D - 75D8FBC1A13362B78F077E02C0FC520000B68CEDFFD03D76FD00C0FC520000B6 - 8C4400BAE7E84D6E03008079A500006C19890074CFFEFDFBBDFA1300E6940200 - B0252201884400E89EC3473CFB0300E6910200B0252400D05D87140001602E29 - 00005B221200A09B22F93FE40D20003077140080A9B3FD1F387C44111000E68D - 02003075B6FF030A8100307F140080A98A3FF88FDEE4F57F80378100C0BC5100 - 00A6CA7DBF4072F498622000CC13050060AADCF70B24575D7D4D73E0E0A58311 - 00B0DD140080A989EDFF71DF2F40E2770200CC0F0500606A6CFF074AC74FDC36 - 880080EDA600004CCDF113B70E2280BE03070FAEDC0A00006C3F0500602AE23E - 5F7FE403351E060800F3410100980AF7F9026D0EBB3D0800E68202003015AEF0 - 016DE23600454200D87E0A00C0A6D9FE0F8C72F8885D0000B0DD1400804DBBF1 - 2657FF81E10ED9010000DB4E0100D8B4A3C76E19440075FBF7EF6F8EDEE47705 - 006C270500605362EB7FDCDF0B30CAE123760100C07652000036C5C3FF8071C5 - 830063270000B03D1400804DF17A2F601287FCCE00806DA300006C98EDFFC0A4 - 8E9FB875100100B3A600006CD8F113B70D2280F1F40B87970E4600C02C290000 - 1BE6B55EC046C4B3000080D953000036C4C3BC808DB27B0800B6870200B02187 - 8F789017B031F1EC90B8150000982D050060436CFF0736C32B440160F6140080 - 891DBDE916DBFF814DF10A5100983D05006062878FB8FA0F6C4EDC0670ED75D7 - 0F4600C02C28000013892BFF9EE00D4CC38DC76E194400C02C280000133964DB - 2E30259E250200B3A500004CC4F67F605AEC280280D9520000C6E68F7560DA8E - BA0D000066460100185B3CFD1F609AA2A8E8AD2200301B0A00C0D8BCB71BD80A - 9E2D0200B3A100008CE5C0C14B9BABAEBE663002989E1B1517016026140080B1 - B8F71FD82AD75E77FD4A911100D85A0A00C0586CFF07B6922223006C3D050060 - 24DBFF81ADA6C808005B4F010018E9F8895B0711C0D68822A34223006C2D0500 - 60A4C39ED00DCC805D0000B0B5140080A1E28ADC818307072380ADA3D808005B - 4B010018CA15396056A2D8186F040000B686020030942B72C02CDD78EC964104 - 004C9B0200D02A5ECB65FB3F304B87BC0E1000B68C0200D0EAF01157FF81D9DA - BF7FFF4AF11100983E0500A0952B71C076507C0480ADA1000054C515B8B81207 - 306B476FBAD9EF1F00D8023B063DABD2F724EF538B8249EA77657D6ABB2B6D4F - F386B7FC6AB36BEF0DBD1816C6F7BFF58757FE0867B407EEFB58F3733FFB8EC1 - 882E8B27D8FFF84FBE7D3062337EE35DBFD2DCF981F70F46DD15EBC99B1126F3 - C33FF0BD83085828675EBCABB9F7777FB0179DEEB5972BED4CD65EC9FAB3599F - 5A287B7AEC0000D6892B6FB6FF8FEFE4DD1F1944745D14831E3F756A3062330E - 1FF13B0800A64D010058E7D00D6FB4FD760227EF520060D5C9BB3E3C88D88CFE - 5B482E1D8C008069500000D671E56D7C0F3FF460F3F8A9C70623689A3BEFB87D - 10B159DE060000D3A50000ACE1155C9391EC51EA1785DC06300D478F790E0900 - 4C930200B0466CFF677CB6FF53E33680E9B8EAEA6BDC06000053A40000AC61FB - FFF86CFFA78D9D21D373FCC4AD830800D82C0500E02BE24A9BEDFFE3BBC7D3FF - 69E13680E9396C5712004C8D0200F01592FFC9D8FECF306E03988E03070FAEDC - 0A00006C9E0200F0151EB835BEB8BA1B5779A1CDFBDEFB278388CD3A7EE2B641 - 04006C860200B022B6FFBBCA363E577719259E0FA148341D87EC4E0280A95000 - 0056D8FE3F190F79631CD6C974783D29004C870200B0C216DBF1D9FECFB83C27 - 627A0E1FF1304000D82C050060F0AEED838311A3D8FECFB8DC06303D711B40EC - 040000364E0100F0F0BF09D9D6CD24AC97E988E4FF90570202C0A6280000DEB3 - 3D81E79E7BCE155D26E23680E9397CC473000060331400A0E36CFF9FCC3D9239 - 26E43680E9890701BA0D0000364E01003ACEF6FFC99CBCDBFDFF4CEE7DEFFD93 - 41C4661DBDE9964104004C4A01003ACE1FD3E38BEDFFB673B311F77870E4D428 - 5A02C0C629004087D94E3B19DBFFD928C5A3E9E9DFB674E96004004C4201003A - CC7BB52763FB3F9B71F26E058069B9F126BB000060231400A0C3E2BDDA8CC715 - 5C36CB6D00D373F4985B970060231400A0A36CFF9FCC03F77D6C10C1C628224D - 4FBCB9246E05000026A300001D65FBFF646CDF661AACA3E9F1304000989C0200 - 74505CF93FEA1EDA89D8BECD345847D3E30D260030390500E8A04337B8FA3F89 - D8B61DDBB761B3DC06303D51C88C5B990080F1290040071D3EE28FE649D8B6CD - 34DD79C7FB07119BE5562600988C0200748CAB6693B36D9B69B2A3647AE24D26 - 1E660A00E35300808EB1FD7F329235B6C23D6E03988A48FEFD4E0380F1290040 - C71C3F71EB20621CB6FFB3154EDE6D57C9B4B8A50900C6A700001D72E0E0A5DE - 9D3DA107EEFBD82082E9B1B3647AE29626B70100C0781400A043DCFB3F99871F - 7AB079FCD46383114C97DB00A6C76D0000301E0500E890A3C7BCFB7F1277DE71 - FB2082E9731BC0F4B8B50900C6A300001D61FBFFE4BCAF9DADE43680E989DF6D - F13B0E00184E01003AE2C69B5CFD9F84EDFFCC82DB00A6C72D4E00309A020074 - C4D163B70C22C661FB3FB3F0BEF7BE7B10B159C74FDC36880080360A00D001FD - EDB1070723C661FB3FB3D0DF69726A306233E2779CDB9C0060380500E8000FFF - 9B4C2464B6FF332B27EFF230C069F1BB0E00865300800E38EC1559139190314B - 6E37991EBFEB00603805005872B6FF4F4E42C62CB90D607AE2779D870102403B - 050058721E8C359948C422218359B2EB647A0E1FB10B0000DA2800C0923BE46A - D84424626C07BB4EA6C7EF3C0068A700004B2CB6C2EEDFBF7F30621C1231B683 - DB00A6277EE71DBDC96B4F01A04601009698ADB093B1FD9FEDF4BEF7BE7B10B1 - 59878FD8050000350A00B0C46C859D8CEDFF6CA793777D6410B159763F01409D - 02002CA9D802EB0FE0C93C70FFC70611CCDEE3A71EB303658A0E79252000ACA3 - 00004BCA16D8C93CF7DC73AEC0B2ED3C83627A8E9FB8751001008902002CA1B8 - F2EF5DD893B947F2CF1C50849A9EABAEBEA63970F0D2C10800080A00B0846C7D - 9DDCC9BBDDFFCFF6731BC074298402C05A0A00B0846CFF9F8CEDFFCC13B7014C - CFD163370F2200202800C092B1FD7F72B6FF334F14A3A6276E03880600F42900 - C09289A7FF3319DBFF9927711BC003F77923C5B4D8050000AB140060C9F86377 - 72922DE6CD07DD063035873D130500BE42010096483CF1DA76D7C9C476EB7806 - 00CC937BEEB22B655A0E1C3CD85C7BDDF5831100749B02002C11F7FE4FEEE4DD - EEB766FE7830E574DD78CCAD51001014006089D8FE3F39575A99578A53D37348 - 711400562800C092B0FD7F72B6FF33CF14A7A6C7DB5100A04F010096C4F113B7 - 0E22C6E50A2BF3CC6D00D375D46D0000A00000CBC293AE27E70A2BF34E916A7A - 620740EC0400802E53008025105BFFE349D78C2F5EFD67FB3FF34E916ABA0E29 - 9402D0710A00B0043CFC6F72AEACB208A24875E7076E1F8CD8AC1BFDAE04A0E3 - 14006009D8FE3F39F756B3284EDE6D17C0B45C7BDDF52B0F4C0580AE52008005 - 17F7B5DAFE3F99871F7AB079FCD4638311CC376FAB982E6F0300A0CB140060C1 - 1D3EE2EAFFA4EEBCC3966A16CB3D76AC4C8D5BA600E83205005870875CCD9A98 - EDFF2C1AB7014C4FFFA1A96E0300A09B1400608179ADD5E46CFF6711B90D60BA - 8E9FB875100140B72800C002B3FD7F72F778FA3F0BCA6D00D3E3C1A900749502 - 002CA8B8F26FFBFFE46CFF6751B90D607AE2C1A9712B0000748D02002CA84337 - BCD1F6FF093D7EEAD4CA2D00B088DC06305DC74FDC368800A03B140060411D3E - E2EAFFA44EDEE50A2A8BEDCE0FBC7F10B159765001D0450A00B080E2CABF7759 - 4FCEEBFF5874D6F0F4F83D0A40172900C0028AEDFF4CC6F67F9641FF2D16A706 - 2336CB835401E81A05005840B6FF4FCEF67F9685B53C3D476FBAD9B35400E814 - 05005830070E5E6ADBEA06D83ACDB2B096A7CB8E2A00BA440100168CE47F72F1 - E474DBFF59166E03982E3BAA00E81205005830478FDD3C8818D73DDEFDCF9271 - 1BC0F444513576560140172800C002893F52AFBAFA9AC188719DBC5BB2C47271 - 1BC074D9590540572800C002F147EAE462FBFF493B005832711B80DB5AA6C7CE - 2A00BA42010016C8F113B70D22C665FB3FCBCA2E80E9899D556E0300A00B1400 - 6041F4FF403D3818312EDBFF595676B64CD7F113B70E2200585E0A00B0206C51 - 9D9CEDFF2CB3C74F3DE63680293AEC758000748002002C087F9C4EEE81FB3E36 - 886039B90D607A62879587AC02B0EC14006001C4BDA9B6FF4FEEE4DDAEFEB3DC - EC70992E3BAD0058760A00B00024FF1B738F77A5B3E4DC06305D76002CBEC74F - 9D1A4400D42800004B29AE8CC6330060D9B90D607AE6F14D007E8F4D268A6200 - B453008005F0BC3F0027127F30FFCE6FFFD66004CBEDCE0FBC5F923825CF3DF7 - EC209A1F77DEF1FE41C438EC0000184E010016406CF1B5CD773C29F9771588AE - 8835FFBFFFEC3B1401A6E091871E1A44F3237633DDF901BB3CC6F5877FF07B83 - 08809A5D839E553B2A7DAD45F124F5C3DAAEE6D237FC37CDCEDD97F562D8B0BF - FACBBF58D99EFA9ACB2E1FCC508A3F947FF35DBFD2FCD55F7C743003DDF0F453 - 4F35F7FEE547577E3FCCE336F6451049F6EFFCF6BF6A4E9F3E3D98991FF140D3 - 1DBDBF38AEBCFA9A66CF9E3D8359725124FFD5FFF35F348F2896C3E23A7BE6D1 - E6B17BFF5D2F7AA5A59D6D6921F58C10092C6BA5EF49DEA716097DEAA37892FA - D47657DA9EE60D6FF9D566D7DE1B7A314C453CA86ADFFEFD8311C12BFFA06F7F - EF7743248A8C276EB15AA41D567EFFAFE7F73F2C89332FDED5DCFBBB3FD88BA2 - 12FB72A59DC95A1404521FC97F592008654F4F4A725995BE27799F9A02000000 - C0B42900CC4424B0000000C0925300000000800E5000000000800E5000000000 - 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 - 000000800E5000000000800E5000000000800E5000000000800E500000000080 - 0E5000000000800E5000000000800E5000000000800E5000000000800E500000 - 0000800E5000000000800E5000000000800E5000000000800E5000000000800E - 5000000000800E5000000000800E5000000000800E5000000000800E50000000 - 00800E5000000000800E5000000000800E5000000000800E5000000000800E50 - 00000000800E5000000000800E5000000000800E5000000000800E5000000000 - 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 - 000000800E5000000000800E5000000000800E5000000000800E500000000080 - 0E5000000000800E5000000000800E5000000000800E5000000000800E500000 - 0000800E5000000000800E5000000000800E5000000000800E5000000000800E - 5000000000800E5000000000800E5000000000800E5000000000800E50000000 - 00800E5000000000800E5000000000800E5000000000800E5000000000800E50 - 00000000800E5000000000800E5000000000800E5000000000800E5000000000 - 800E5000000000800E5000000000800E5000000000800E5000000000800E5000 - 000000800E5000000000800E5000000000800E5000000000800E500000000080 - 0E5000000000800E5000000000800E5000000000800E5000000000800E500000 - 0000800E5000000000800E5000000000800E5000000000800E5000000000800E - 5000000000800E5000000000800E5000000000800E5000000000800E50000000 - 00800E5000000000800E5000000000800E5000000000800E5000D8B8B3837E94 - 713F070000D06572AC2DA600300B675F796610010000509233CD8402C02C9C7E - E181410400004049CE34130A00000000D0010A00000000D0010A00D3170FA428 - 1E4AE1DB0C0000D06E5DCE54C9ABD82C99E964DA16609ACF8F5BAC00000093AB - E5556DF995BC6B020A00B370FAE9FB07110000002539D34C28006C4E549B8655 - 9CFAC75E7EE9CB2B3D000000EBADE64CA3F2AB61C7194101000000003A400160 - 7A5225AAAC4A9D6D5E38F5B9410C000040A99F33ADCDA356C7F93C9BA000305D - E582ED7BFC138F0E220000004A6B73A67A5EC5A629006CADB4582D5A00008076 - 72A7195000D8BC510BB47FFC95D31F5FE90100005875E6C5BB06D178B9151BA6 - 00B031E5C28BF1B0C578B639FBCA338318000080B586E753EB8F0FFB3C2D1400 - 2697165ADB824B8B73EDF133A73D07000000A074E68507065152CFA956A5F9B6 - E3B4500068572EA6DAE21AF599D5F1999715000000004A67CE7E791085F173AC - 55E37C861E0580D162F18C5A40F9F1F4F934D78F5F7ABAAC6A010000D0CF95D6 - E750ABE390C735E5E7A95000D8BCB4C86A8B6D7511BE7CDA33000000004AABB9 - D26AFEB4569AAB1D63020A00EB0D5B54F9C2AB7DAEED6BCF364F7DDA0E000000 - 80523F576ACFA5D6CBF3B1B6AF0BC38E759202C0E6B42DA8B420578F3FFB85A7 - 9BB36BEE6D010000E8B6C89122575AB53E975AAB6D9E3128004CAE5C70E5026D - 3BDE34AFBC641700000040B29A23E5395592C6E958DB71C6A400305DF9C2CC5B - 38EB558000000099975EFC78EF7FAEE64CF5C69428004CC7A8C5D93FF6F20BB1 - B801000008675F8A8BA4A373A9F6E34C400160E3C65DA4AB9F79FEA9FB071100 - 00006B73A47A1EB5D6B0638CA0003099B4D0F20557CEE5FDDAF8A94FD9010000 - 0090F473A4F5B9535F5B1F6A738CA000305CBEA8862DACF273F96757E79EFDE2 - D3CD59CF0100000058C98D2247CA73A655E55C7EAC34EEE73A4F01A06ED4E24A - 7D6A35B5E3679BD367EC02000000E8E7466BF3A5F53954AE3CDEF6B930EC5867 - 29006C4CB998D2224CF3B5BE1FBFE24180000000596EB49A2FD5FBFC78528E19 - 8302C0F4950B341F9F6D9E3DF59198040000E8B47E6EB4365FEA2BC74C8902C0 - E60C5BA4F97875EE737FA600000000D0CF8D86E74FF5311BA40030B97CF125E5 - 5CF4EDED95D36E03000000BAAB9F13D5F3A5D516CA3ED4E6188302C068F9E21A - B6C0467D2ECD9F6D5E7CFEAE95190000802EEAE744AB39D27AF97CED7832EEE7 - E8510068376A91A53EB5A4762C6F4DF3D2971400000080EE5ACD896A3953B490 - FA30EC5869D8B14E5300D8B87251958BB1BD3DFE8002000000D05DFD9CA89E2F - ADB690C74939664C0A009B575B9CB5F1EADCB35F7CDA73000000804E8A5C2872 - A23C475ADB42DB984D5000D8987C1126E55CF4657BE52BB1E7000000005DB4F6 - FEFFD51C696D0B651F6A738C4901603CF9222B175A3E57FB5C8AD78E3D070000 - 00E8A27E2EB43E475A3F0EB5B9A4F639865000186ED822CA175B48E3616DB5BA - F5D007FE73AF070000E8967E2EB43E471ADE92725C1A76ACF31400A62F2DC87C - 61D6E2B3CD4BCFBE7F65060000A00BFA39D06A4ED4578BF339A64401603ADA16 - 67CCE515AD8857C72F3F7777AF070000E8867E0E54CF8F56E3523ACE2629006C - 5C5A80F9424C0B336FA13EFED227DC0600000074473F075A9F1BD5C7F97C4871 - 3EC7041400C6972FB672C1A5B971DA6A95EB894F7DCEEB000100804E88DC2772 - A0322F1ABFE5F2B9F2182D1400461BB698F245974BF3A3DB0B4FFE71AF070000 - 586EFDDCA79E17D55BA96D3E19768C1E0580E9498B312DBABCAFB57EB5EB4B9F - F02040000060F9F5739FD55CA8DE42DEE7F36C9202C0E6D41668D90F6BAFB80D - 000000587AABDBFFC7D9F61F46F56C8002C064F24557C6B5F138ED15B7010000 - 004BAD9FF34C7ACF7FB4D0360EA9670C0A00E3D9C8A24A8B326FB1E0F3D69F77 - 1B000000B0CC56B7FFB7E7456BDBA436F2359DA300303DB5053BCE9CB7010000 - 00CB6BEDD3FFCB16C69D6393140036AEB618F3B95A2BAB5BAB55AF671FFBD7BD - 1E000060B9F4739DD5DC677D4E948F6B2DA9CD31010580C9D5165B6D11A6B9F1 - DA637FF5A7BD1E000060B9F4739D7A1ED4DE72B5B9509B63080580F18DBBB8D2 - E24C9F4FF1F04AD7B35F7CA679E999FFD08B0100009643E43891EBE4B9CFF0DC - 28E4C7C631EEE73A4F01603A6A0B35B590F7B1B8D3024F71BF3DF3F93FEAF500 - 0000CBA19FE3ACCD7BD6E74521EFCB1652CF2628006C4CBE086B7112E37C81A7 - CFD4DBE7FECB5DCDD9339FEFC50000008B2D729BC871CABC677D2B73A65CFA4C - 286326A40030997117595A98F9E28C96170122CE5B7FFEF9277EA7D70300002C - B67E6E333CFF591B8714A7F128E37E8E1E0580E9A92DD85A2B17FCDAF947EF76 - 1B000000B0F8FAB9CDF0FC67FD7CD942EAD92405808DCB17632D4ED25CD9D282 - 5FDB9E7BEC690F03040000165AE43491DBD4729E7EABE548D172F95C19B3010A - 00931B77B1A5059A2FD2F1DA139F761B000000B0B8FA394D3DDFA9B7508E4719 - F7730C28004C576DE1D65AAA789555B07E7BEC2FEE6F5E7AFE642F060000582C - 91CB444E53CB75FA2DCF8986B5907AA640016073F245598B933497B7E10BFEE9 - 877FADD70300002C967E2E53CF73FAAD2D17CAE57365CC0629006CCC388B2E2D - D2B2E58B3DE27A7BF4CF3FD2BCE295800000C002891C26729932BF59DB6AB951 - D94619E733141400A6A7B658F3B9686981978BBEDE9EFD825D000000C0E2E8E7 - 30F5FCA6DF86E546A925B53936410160F36A8B315FA4292EC7E5E25FDF3EF39F - FEC82E000000602144EE12394C99D7ACB65A2E14525C8E4BB53926A000B071C3 - 165FB970DB5A7922AC6F76010000008BA09FBBD4F39A7E1B9DFFF45B487DCDB0 - 630CA100301DF922ADC5499A4B2D2DFE7422AC6F9FF94F7F6C1700000030D7FA - 57FFFF38A2212DCF81F296CBE7CA984D5200D87A69D1960BBD3C01A2AFB7673F - FFEBBD1E0000603EF573967A3ED36FB51C28B57CCC165200D89CDA024D0BB76C - 21C56D0B3EFAF5ED337FEA59000000C07C5AB9FADFCB59CA3C66B50DCB81A285 - FC58DE4AB539C6A400303DC31662BE80F3962FFA325EDBEC02000000E651FBD5 - FFB65C27C5656B33EC18135000D8BC71176A5AD4A9A5859F4E8EBCAD9F5FD905 - 70FA13BD180000603E448E52BFFA3F2AD7893E6F491E97861D630C0A00D39516 - 64BE886B715B2B4F8EB5ED894FFF62AF070000980FFD1CA59EBFACB65AEE93B7 - 302C664A1400B65EB988CB563B41A2AD3FF6E89F7FA479E9F993BD180000607B - 456E12394A99B78CCE736A2DA49E2DA200301DB5855A2EE4326E6BB59364B53D - 76F7CFF47A000080EDD5CF4DEA79CB6AABE53C790B6D71AE36C7841400A66FD8 - 624D8B39B574429427497B7BE2D39F6B5E78EA777B310000C0F6889C2472935A - CED2DEF21C286F21F5B9DA1C9BA000303D6D0B365FD065DCD6CA13646DFBEC9F - BDAB397BF6CBBD18000060B62217899CA496ABACCF6786B5D016E76A736C8002 - C0D618B668D3A24EAD3C4946B7E71E7BBA79F631AF05040000662F7291C8496A - B94A7BCB739FBC85D4E76A736C9202C074B52DDC7C6197715B2B4F98D4CEACF4 - 9F7EEFEF782D20000030539183442E92E726F556CB71F216DAE25C6D8E0D5200 - D83AC3166F5ADCA9A513A43C6986B72FDCFB4F7B3D0000C06CF473907A7ED2DE - F29C276F21F5B9DA1C53A000307D6D0B385FE0651C2D3F31DADADA0ADBA9BF7C - C003010100809988DC2372903C2719BE0B205A9EEBA416DAE25C6D8E4D5000D8 - 5AC316715AE4792B4F8CFCC4A99F589FFDD0AF35AF9CF97C2F060000D81A9173 - 44EE51E623FD56E62A654E938F530BA9CFD5E698925D839EE9DB51F4493ECE3F - 93B790E228D2E4C7F2D634A79F3BDDEC3EF753CDFE83B7AD8C010000A6EDF18F - FFC3E64B9FF8742F4AC97EF4794BC97F1E47329FFAD4425B9CABCDB1490A005B - A79FA0F7A57835715F7FBC3C56C6650BFDF8CB9FFB7C73D1351736BBCF7D437F - 1A0000604A62EBFF837FFA6F7B514AF053929FE23CE98F3892F7344E097EDE42 - EA73B539A6C82D005BA76D41E70BBE8C53CB4F9614E7AD3CC1E256805F772B00 - 00003055FDADFFF10AF27A1EB2BE95F94CDE425B9CABCD310576006CAD74A53E - ACBD6ADF571ECF5B28E7CAF9D08FDD0A0000004C5B7FEBFF677A5124FCA94572 - 5FC629E94F2D25F7650BA9CFD5E698320580AD9727EAB971C6F9D7962DAC1D7F - F9735F682EBAE602B7020000009BD6DFFAFFFBBDA84CFACBC43FF529F14F713E - 97B790C7B9DA1C53A200B0F552B21ECAC43D97CF95C7D3389FAF8D9BE689073E - DC5C72ED2DCDAEDD97AC8C0100002675FA854F360FFCC1DB7B512DD94F2D25F8 - 791C2D92F8D48794ECA756AACDB1053C0360EBB52DF0723ECDA5969F3CF9386F - F989B77AD27DE9BE7FDA9C7DE5CBBD1800006032914B444EB136EF28F38FB2B5 - E531A9E56A73A136C714D901301BE92A7DC8AFD8E7F3A13C967FA69CCB5B588D - 9F7DEC4BCDBE034F367B2FBC69650C000030AE673EFBF3CD67FFFC43BDA896F8 - 977DDE22814F7D5B2BD5E6D8220A00B39312F550C6ABC97BDFA8B9349FF76BE7 - 9E7AF093CD455F7D79B37BEFD7AE8C0100004679E1E93F693EF59E5FEB45B584 - 7F58F29F5A99F097097E3E971F2B3FC7165000989D94A0873C2ED58EE5C97DDE - 42ADEFC72F3CF1D1E6822BDFE479000000C04871DFFF231FF8C7CDE9E79EEF8D - 22994F49FF38C97F24F0E538445F36B68902C06CA5243DAC4FD8DB8F977DAD85 - B5F1E9E75E6A76EEBCAF39EFABFE7AB363C7398379000080B5E2BEFF537FF53F - 374F3EF8D9DE2812F83CE1CF93FE5A012092FAD4A704BF8C4BF95CED385B4001 - 60F6F2643D578E434AE8F363F95C6D3EACF6CF3EF64473CE058F34FB5EF5D707 - 730000006B3DF9E9FFB579F4AE8FF4A248E4F3E43FF5A9C5B8D652C21FAD1C87 - 3CCED5E6D8220A00B35726ED799FAB1DCBE76A2DC9C73B9AA71F79B8B9F0F25D - CD9EFD8706730000007DCF9FFA97CD6756DEF71F897B5BD2DF96FC47029FC729 - A14F713E979463664401607B94C97AEAF33829E7F2BE9C0BF5CF3DF1C97B9A4B - 5EFB75CDAE73AEEE4F0300009D77FACB77340FFCD1CFF5A248E0F3A43F4FFCF3 - 3825FBD122914F7DD942EAC3B039664401607BD412F6A41C877E12BFFEEBD2B8 - 3C5EEF9F7BFCC31E0A080000AC8887FE3D74FB3F1C3CF4AF96E897097F398E16 - 497C6AE538E431DB4C0160FBA4E43CE4897A3E1FF263496D2EC4B8EDF3FD8702 - 9E792E8A00B7792820000074583CF4EFD13F7B5BF3CCA38FF54691B8A702402D - F9CFE7538BA43E8FCB843F8D73F95CED385B4C01607BD592F5D096C4E77DC8E7 - 6AF321FF4CD3BCF0D4B3CD2BAF7CA439FFD57F4D110000003A2892FFCFDFF363 - CD139FF84C6F9492FB94E0B7C5B59627FBA985BC4F71AE36C70C28006CAFB6A4 - 3D94E31073794B86CD2729DED13CF7D813CDBE034F367B2FBC69300700007445 - 3CF1FFF377DFD58B52829FB748ECF3B8D652629F5A3917F238E431DB440160FB - D593F4B5F3A11CE7467D7E7DFCD4839F6CF65DF258B3F7C2632B63000060F93D - FDC83F6B1EFEC07FEC4579D29F92FD5A9CC66DAD4CF86B897E3E573BCE8C2800 - CC8794A0B725F1D1C789928FF316CA63497B1C45800B2FDFE9F5800000D001F1 - BABF4FBFEF777A5124EEB564BF8CCB9612FCB2C5B11071EA539CABCD31430A00 - F3A12D490F693CEC3321FF5CED6BC2FAF9783DE0455F7D59B37BEFD70E660000 - 8065F3C2D37FD27CE28F7FB117D592FDBCA5F994F4B7B594E4A7A43EEF531CF2 - 986DA600303FF264BD2D81CFC5B1BC9546CDADC64F3CF0C1E6E2AFB9BCD9BDF7 - 75831900006059BCF8CC7B9A8FFFE1FFD68BF244FFE5629CB748F0F3B84CF8A3 - D5E6A2E5F271798C6DA000305F6A097AF4F97C28C7A5FC6BCA3EAC8F1FBFFF0E - 45000000583291FC3FF0EFFE692FAA25F6659CF7C35A4AE653D25F4BF46B736C - 330580F9D296A487348E3E4EA07C5C8AB97CBEED33493F5604000080E5B136F9 - 8F965FF52F770044629FFAB61679486A310E29B94FF3CC310580F9332C714FE3 - DA67A24F2DC9E35CFB671401000060F1AD4FFEF324BF8CF396E6CB84BF6C21EF - 531CDA62B69902C07CAA25E86DC97C683B967F6DDE4A6BE7140100006071D593 - FF68B5ABFEE3B648E4535FB65C3E2E8FB1CD1400E65399A4A7715B021F6AC7DA - 3E9BAB7F4611000000164F7BF29F12FEDA7C6A79C29F5A4AF2F338B524C5F91C - 734801607EE589F9A8C4BEFC6C6AB9DA5C529BDFA1080000000B6435F98F64BD - 96E0D79EFC9F27FBA9E5497E1A877C3EE471A96D9E6DA40030DFF2C4BC96D0A7 - 3E4EAE5A125FD3F6B9FABC22000000CCBFE79EFABDE6137FF873BDA84CF0536B - 4BFEF3B8D652921F7148897D9A4FDA62E68802C0FCCB13F332494FE3E8E324AB - 27F1EBE55F97FAF6AF8F22C0BE573DD6ECBDE8D86006000098174F3FFCCEE6D3 - EFFDFFF5A23CB9CF5B24FF91C0475CF629AEB5C811A2451C52629FE693B69839 - A300B018F2C4BC4CDE9351E3A4FCFAE8E324CDFBF59E7AF0938A000000306722 - F97FF0FD7FDC8B52325FB694FCB715016A2DF282BC85729CE4E3F21873460160 - 319449799EBC0FD376BCF6EFC5C99AF7EB4511E095337736E7BFFAAF353B769C - 339805000066EDEC2B5F6E3E7FF2479A473FFCA1DE284FF8F3564BFE534BE394 - F4A716F940EA6B2D943D0B42016071E4497919D713F6D5F9DAF1722EC67102E7 - FD7ACF3DF6A5E695573EDC9CF3AA6F6D76EF3E7F300B0000CCCAE9173ED97CF1 - 2FFF97E6D4BD1FEF8DF2A43E6F9326FF91030C6B491EE7DAE699230A008B254F - CA6B097C4D9AAF1DAFFD1BF9899BC66BFB28023CF7C5F736175CF9ADCDAEDD97 - F4E60000805988E4FFC13FFDB1E6E9873ED71BA524BE4CF6A32F93FD721C7D6A - F1B77ED9E72DE471688B99630A008B274FDAF33894E324CDD78E8FFB6FACF5F2 - F32F35A73EF647CDC55F739937040000C00CC46BFEEEFFFDFF57EF6FF1E77BA3 - 3CA96F6B91CCD7C6D1A716C97BD9E72DE471688B99730A008B294FD2C74DE0D3 - 7CED783E37D909FCF8FD1F6CF6BDEA8B1E0E0800005B281EF6F7A9F7FC662FCA - 13FA715A24F5659F5AFCED5FF6790B791CDA62168002C0E2CA93F632A9AF25F9 - 21CDD78E0F3B968B933C3EB37AB2C7C301CFAC3C1CF0BFF27040000098A278D8 - DFA327FFC7E6D10FFF596F5426F6B5FBFBF3968EE57D6AF1F77CD9E72DE47168 - 8B59100A008BAB4CD4478D93345F3BDE762C4EEE986B3FC99F7FEC89E69947FF - B8B9F0B237343BCF79F560160000D8A8979FFD68F3E9FFF423CDD30F7DB6378A - 243D4FEEF316C7CA62408AF33EB5F8BBBEECF316F238E4310B4A0160B19589FA - A87192E6DB8E87FC58C4B5133EE6568FAD3C17E0BEF734E75FB1B33967FFA195 - 3900006072CF3EFEAF9A8FFFFB9FEDFD8DFD426F9427F56D57FDF3B932CE5BFC - ED5EF6790B791CF2389463168402C0E22B93F851E324CDB71DCFD54EF0F6B92F - 7DE2A3CDCE3D7FD1ECBEE09057050200C0045E7CE10BCD973EFE8F9A876F7F77 - 6F544BE8C799CBFBBCC5DFEB659FB790C7218F4339668128002C87AD2E0294C7 - 6B27FDDA5F125F7EF40BCD735FFC8FCD05975FDDECDA73D5601E00006873FAB9 - 0F360FFDE79F6A9EFCD4677AA33C912FE3DA5C19972DFE5E2FFBBC853C0E791C - CA310B460160798C4AFADB92FC51C97F69D82F84B03AF7F2F32F36A7EEFBCF2B - 6F09387BCEA166F71E0F08040080D20BCF3FDB3CF7F9FFA3F9E49FFC7F07AFF8 - 8B04BD96D8D7E6529CF7B5167FA747CBE3D4421E873C0EE59805A400B05C6655 - 0408C37E3984347776E52D01AF3CFBA7CD7907BFD60302010020130FFAFBC247 - FEA7E60B1FBDBB37AA25F479CBE7CACF45DFD6E26FF368799C5AC8E390C7A11C - B3A0140096CF468B00A13C964EF4615FD3F68B626DFCC253CFAE3C20F0BCAF7A - AE7965D7F576030000D06971D5FFF953EF6A3EF11F7EA1F7B7F2D3BD9932C1CF - 5B3E9FE2BC4F2D8DE36FF13497E2E8CB16F238E47128C72C300580E5B49922C0 - 286D5FDBF64B23C5FDFEC94F7FCC6E0000003A2D5DF5FFFCC9FFD21BE5897BDE - 8F8A532BC7D1E26FEF3CAEB590C7218F433966C16D261164BE0D4BFA234EE314 - 976D67D6B7B52820E5711A9771ADDFD95C71F4E666FF65FFA03977DF79BD3100 - 002CB7957BFD1FFDE7CD67EFBCBD374A097A5B729F8F6BC7525C6B91B8A7BED6 - 421E873C0EE5982510C918CB2B12F8DCA871293F5EFB05D0F64BA2ECC3FAB967 - 1E79A879FE8B7FD4ECBB646FB367DFF583590000583ECF3FF16F9BCF7EF0A79B - 271E78A0374A897A4AEC53429F8FF3B95A5FB6F83BBBEC6B2DE471C8E3508E59 - 120A00CB6FB3458071E5BF4CF23E445C1FBFFCFC4BCD139FF8702FB8B339F7C2 - ABDD160000C05289EDFE8FFDE53F6A1EBEF3DDBDBF7D5FE8CDA4E43EB548D66B - E35A3FACC5DFD7A96F6B218F431E8772CC129956F2C77C1B96F4479CC6791CDB - F4539FE6FB5BF7D7C6A9AD6EED5F3B1ED5AF8DAFB9E5D666EFA5DFD7EC3D5721 - 000080C5F5E20B5F685E7CEC5F350FBEFF4F7AA394A4D712FAB6643FFF4C6D1C - 2D92F53C4EE390FA341FF238E47128C72C9994ECB1FCCA9F753E4E71F4A98514 - 47725EC629794F719ED097E361497FF9753B9B7D072E6C2EFBE6EF6C769DFF77 - 3D1F0000808512F7F99FF9F2BF6D1EFDC8BF699E7F3C9EEE9F12F4D46A09FEB0 - B9328E24BD8CA32FE390E27C9CE47128C72CA148DEE88EF2E79D8F539CF7B516 - 497AD90F6B9324FF6BC7FB2EB9B0B9E2CDFF7DB3EF55DFDE1B0300C07C7BFE4B - BFDF7CF643FFB279FE893CF1CF93F7725C8BCBCFD75A24EB655F6BA1EC431E87 - 72CC928A048E6E297FE6F938C579DFD622494F7D19E7AD2DC91F9EFCE7E30BAE - BEACB9ECF0F7357B2F38D11B0300C07C79F199F7365F3CF92F9B271FFA7C6F14 - 09F9B0A43F1F8FFA5CDE22492FE3E8DB5A28FB90C7A11CB3C42269A39BF29F7D - B90E629CE6F23812F2D4A7F914F793F5B571DEF2047FFCE43F6F0A010000CC93 - 48FC1F3DF9AF9A671E7AB4374AC979DEF2847E58B23F2CF18F16497AD9A738A4 - 3ECD873C4EF271798C0E48891DDD54FEFCF371C4695C8B538BE4BCECCB38B55A - 623F5EF29F3785000000B6D3E8C43FB56149FFB0B96891A097E33497E2D4425B - 1CF23894633A229234BAAD5C03F938C579DFD622396FEBDBDAE4C97FDEE21901 - 97BDF1EF7A582000005BEE2B0FF7FBF0BF2DEEF11FD5C62902942D12F4BC4FF1 - B016CA3EE47128C77448246850AE837C9CE2BCCF5B88843C8DCB38B5729CB7C9 - 12FFB24521E0E01B6E6CF6BDFA7BBD3E100080A98AD7F93DFF85DF6A4EDDFBC1 - 0913FFBC8D93F4478BE43C8FD3388F431AA716CA3EE47128C7744C246510CAB5 - 501BA7B95A9C5A24E5659CF71B696581A0EDDFDAD15CF1A69B9AF32E3FD1ECDD - 7FB4370600808D79F1B93B9B673FF7DEE6B37FF681DE2812E794986F554BFF8D - BC2FE3D4425B9C8C1AD341914841525B0FF95C8AF37E58EB27E5AB711AD7E2B6 - D6B63BA0F6B5AB73175CFD9AE6D5DFF01DCDCE7D47ED0A0000602C71B5FF95E7 - EF6CBEF097BFD73CF39527FAE749F9345BFE6FA638FA326E6BA1EC431E27B539 - 3A2812262895EB221FA738EFCB38B59494D7E2D4CAF1B8ADEDEBF2FF567FEE8A - 371DB32B00008056AB57FBEFE88D6A49799A1BD6C6FD5CB4FCB3F97F27B5721C - 2D9471DE873C0EE5988E8B24096ACAB5511BA7B9BC6F6B2929CFE3B5897A7DDC - D6DA3E97CFAFFD6FECBBE482E6D2AF3FD69CF79A6F6F769FF3DADE1C00005DF5 - F24B9F6A9EFDFCEF378FFDD51DCDF34F3CD39B2993F1E8CBB8D636723CE6CAFF - C6A816F23EC5C9A831AC2446D0A65C1F6DE3BC2FE3D452225E8E6B7DDE6A73E3 - CE97711AEF58B945E0E0D71D6BCEBDE484620000404744D2FFC213EF6D4E7DFC - 8EC116FF489253025EEBCBB86C6DC7CAF9B67F379FAFB550C6799F8C1AC38A48 - 886094729DE4E314D7FA51AD4CCCD338EFCBF9B671395FFB7C79AC3F77F15597 - 35AFBAF6C666CF85DFE4360100802513DBFB4F3FFDD1E64B0F7CB079F2E1786F - 7F24C7D16A8979EA87C56D73C33E93F7B538A43ECD470B6D7DC8E3508E618D48 - 80601CE55A691BE77D19B7B53229AFF5A9E5E3F2583E57FBDCB0BEDFE236814B - BEEE5073DEAB8F36CD9E6FF20041008005130FF26B4E7FB479F60B77364F7CFC - 9EC1F6FE488C532B13F25A3F2C1EF758F9997C7E580B659CF7C9A831AC13490F - 8CABB65EF2B914D7FAD4423E8E9627E1B538EF87C5F9B8F699617DDE56E72EBE - EA35CD855F7DA839F7A26F6A9ABDDFA820000030675612FE17FFA279E1A98F36 - 4F7FE69EE6C987D3D6FE68B5843B4FCEDBFA61713EAE7DA6D6A7568EA385DA5C - C88F27799CD4E6609D48726052E5BA691BE77D19E773C393F0F5C97AF49B998B - 7EDC786D4B0581732E786DB3E7BC6FF2FC000080198BFBF84F3FFBD1E6A5673E - 5549F8CB9627DCA3E2BC6F9BABCDD7FA32CEE742EAD37C28E3BC4F468D61A848 - 6A60236A6BA79C4B8973928F533CAAD512F349FA14B78D47C5A35AD3BCFA8643 - CDFE57BDAED9B3EF75CDAE735EDDECDEF78D2BF300006CCECBCFFF4573E6A52F - 34A79FFF64F3DC973ED97CE1AE7B064722F11DA7B525E465DC36CEFBB6CFE49F - 2BE3512DE47128C7A11C87DA1C0CD54F6060E3CA35D4361ED68FD3C64DDC478D - 6B7D190F9B2B5B583F173B05F61E7C4D73FE577D53B363D779CD9E735FD79CD9 - F1556E21000028C416FE5D67BFD89C7EE193CDD933CF365FFEE2479B174F7D7E - 70653FA48438B550CE95AD9684D792F4B24FF1A871DE97F3E3B490C7219FCF8D - 1AC3D85202039B515B47E55C1AD7FAD4423E6E6B65625E4BE4CB7ED4B1D4CACF - 87DAE7423A5E3B56C6ABFD4A71E0D257F77E77EF58291084952241DC4EB0B3FF - 99979BD736E7EE3B6F250600583429A95FF1CAD9E6F44B9F5A49EE4324F8CD8E - B3CD8B8F7DA148F2CBBE8CF3B948B643792CCDE7C9782D314F73653FEEB1321E - A78532AEF549390EB539185B4A4C601ACAF5545B5F3197CFE7E35A3CAA95C979 - DB389F6F8B6BE3BCC5B190FADA67A285321ED627E538D4E60000E6D938896B1A - 0FEBCBB86C2192F0D4D73E13AD3CD696C4A7B8EDF8B0B9B61686C5799F94E350 - 9B8389492E98B67192D834CEE723CEE7CB389F1B95A40F9B2B8F8F1A4FD2426D - 9CFA1487729C9473B5CF0000CCB37113DA7C3E1FE77D39BF915626ECC3C6A33E - 5BB6381ECAF9D016877C3E376A0C9B22B960AB4C92DCE6F311E7F3B53892F490 - E6521B96BCD78EB5CD8561FF56D9C2B0B930AACF8D3B0700304F6AC9EAB0B961 - 7D190F9B6B6B2939AF25F193CC85DAB1908EE7736D71C8E773E538D4E6605324 - 156CB57192D934CEE7232EE7D35C6D3C4E1B27B99FA4001046CD85723E298FE7 - 6A73B951C70100B6DAA8047558529B1F8BB89C4F73B571DB5CD98625EFA98DF3 - 99B6166AE3D4A73894C793721C6A733015920866A55C6BC392DEFC58C4B5719A - 2BC72981CFE76B2D4FF4535FFB5CAD85DA7CB4302CCEFB509BCBB5CD0300CCAB - B604B696049773D10F8BCB166AF3B59627FBA9AF7D2E6F217DBE9C2FC7A136CE - FB5C3957FB0C4C95E48259AAADB76173F9B1722EFA6171D9C2B8C581512D4C32 - 37AC0F6D719B713E0300300BE324ADF9676AF1B03E6F619CB9495BA825F9790B - C3E2BC0FB5B964DC39983A8904DBA1B6EE86CDE5C7CAB9E8DBE66AE33437AA18 - 106AF3D1C2B0B9D016877C3E698B010016592D290E292EE7F2F961F1B0B9D442 - 6D3E5A684BFA43DB38B4F5A136978C3B075B46A2C176AAADBF6173E5B118E773 - F978543CEDB9304E1CF2F9DCA83100C0A22813DBB6713E1F713E3F6E3CEDB9D0 - 1687DA38C9E364DC39D872120CE6416D1D8E9AABC5C3FA71E3DA5CC88F9573A1 - 8CCB3EC5A13C9E1B770E00601E4D9A00E7C7222EE7F37E585C9B0BF9B1722E0C - 8B87F5A13697ABCDB77D16664262C13C695B8FC392E2F2588CF3B961E369C665 - DF762CD4E69271E70000E6D1B8496F9ACB8F9573D1D7E6523FED388C1A87342E - E7436D2EB4CDC34C492C98476DEB7254725C8BCBB9B671AD6F8BCB7ED8B1BC0F - B5B9A49CAB7D06006011B425CDB934971F2BE76AFDB8C76AC7539FE2501BE77D - 688B93DA5C689B876D21C1609EB5ADCF71E66BF1B0B95A9FE2908F47F521E272 - 9CF7C9A83100C0A22B93E0B6713E1F71391ED5A738E4E3517D183617F23837E9 - 3C6C2BC9068BA26DAD8E9A2F8FD7E6C7991BD587713E136A5F5333EC1800C03C - 1B96000F4BACD3B8AD0FA33E53F661DCB9D0369F4C3A0F734382C1A2695BB3E3 - CC979F49E371E6A73117F23819770E006091D412E25173B5785A7361D47C288F - 2593CEC3DC9164B0C8DAD6EFB8F36DE3CDCCB7C561D8B1DCB06300008B645872 - 3C2CE96E3B96E2B6CF4F3A9F94E364D279986B120D96C14693E9FC58ED73696E - 9263F978D8D785DAF1716CF4EB0000A66DA38970FE75B57F63D8F1341EF675C3 - 8E85DAF164A3C760EE49245836C3D6F424C76A9FCDE7367B3CA9CD01002CB351 - C97992CF6DF678A87D26D9E8315828920F96D9B0F53D6AED97C7DB3EBFD1CF85 - B6CF02002CBB7112F6A49CDFECE79261C7477D2D2C2409085D316AAD6FE4F8B0 - AF99F4F36D36F2350000DB6923C973ED6B264DD047FD77377B1C169EE4822E1A - 67DD6FE633D3FAF7010096D9380977DB6736F3B539493F9DB26BD04397CD3A61 - 97FC0300F48D4AC02749D025FC30820200AC376E822E910700D89C8D26E4E37E - 9D841F321218186DD2F3C4790500301D9326F0127E1842A2021BB39973C77907 - 00D0B799845DB20F139288C07439A70000A64BA20F53225981D972CE0100AC25 - C107000000000000000000000000000000000000000000000000000000000000 + 3970D54ABCF7FCA32BFD8E1D1736BBF6BEE12BFF3F62E7E95EBCEFC2FE000060 + D13CFF74F3CA9E7BFB71EFCFA0332FDEDB9C3DFBF4CAF0C52FDFB9D2BFF4F8C3 + CDE7EE7E7825EE4BC972DED7E6523FED388C1A87342EE7436D2EB4CDC34CAD26 + 25B07D6AEB70D45C2D1ED68F1BD7E6427EAC9C0B6BE3CB8F5CB992E44782BF92 + DC9FF386E6CCD92B9B3D7BAE1C7C06008070FAF423CDAE1D8F34675EEA1709A2 + 40D02F0E3CD23B9A27DBC3E2DA5CC88F957361583CAC0F6D7132EE1CCC4C4A58 + 603BD4D6DFB0B9F2588CF3B97C3C2A9EDEDC57FF8DA3CDDEF3DED0ECD8FDF5CD + AEDD57363B77BF79700C0080CD78E5E50F35675E7EA439FBF25F352F3E7B6FF3 + 99FF18BB0752121D7DDEC234E6425B1CCA71C83F5B1A770EB65C4A6260966AEB + 6ED85C7EAC9C8BBE6DAE364E733B077D792CB5B07EFEF2C35735E75FF9E666E7 + 9EAF6F76EF7D73B363D71B7AF30000CCCAD933F7362FBFF8A1E695D37FD57CF9 + 910F359F3B19B71144425DB6509B8F165E19F4B563B571EA6B73496D2E19770E + B64C4A7460166AEB6DD85C7EAC9C8B7E585CB6302AE95FDF22E13FEF8AA3CDEE + FDDFD69CDDF1065BF80100E64CDC42B0E3ECBDCDCBCFBDA779F6B3770E2908B4 + B5D0560C482D0C8BF33ED4E69271E760EA22C9815928D75A6DEDA5B9FC58C4B5 + 719A2BC7E326F9E97379BFA379D56B2F6A2E79FDD1664F2FE16F76BD59C20F00 + B060A220D09CF95073FAB9F7344FDC7F67F3A54F3DD59B8D043B25F9791FF3C3 + 5AA8150742390EB571DEE7CAB9DA6760AA221182AD545B63E55C1AE7F31197F3 + 69AE361EA7AD4DF6538BABFC175C736BB3F39C3737BBCFE925FE00002C8D975F + 7A4FF3CA4B1F6A9E79F04F2ABB03262906942DD4C6A94F71288F27E538D4E660 + 2A220182AD505B5BE55C1AE7F311E7F3B53825F2692EB5B589FDDA5649FAAFBE + ADD9B3FF3BDDC70F00D011F1FC80D3CFFD9BE69987DEDD520CC8C779AB1D0BE5 + EE80D016877C3E578E436D0E3625922198A6DA9A2AE7D2389F8F389F2FE37C6E + FC443F9F8BEDFD07AFBBADD97BE10F48FA01003A2E8A012F3EFDEBCDA9FBDE5D + DC26107DDE46150642391FDAE290CFE7CA71A8CDC186447204D352AEA7DAFA4A + 4979928F6BF1A85626FCEBC7AFFB9BB7367B2FF8AE66D79E13BD310000AC75E6 + F47B9B179FF9D7CD27FFC39FF44665C23F6A3CAC85B63894E3A49CAB7D062616 + 09126C566D1D9573695CEB530BF9B8AD0D4BFAFBF16587AE6E2E7AEDFFBD69F6 + 7C9B07F9010030969507089E7E4FF3D4A77EAD79F49E877A339178E709FF468B + 01A136AEF549390EB539185B244CB019E51A6A1B0FEBC769EB93FC5AFCBA6FBB + ADD97BF15B5CED070060535676053CF9BBCD27DFF3EEDEA8AD0830AC3830AC85 + 517D326A0C638BA40936A2B676CAB9949827F938C5A35A2DD95FDB5FFC351737 + AFFEC6EF6A769CFB03AEF603003055B12BE0EC0BBFDE7CE12FFE75F3E4A79FEC + CD44029E92FDB22FE3512DE47128C7A11C87DA1C0C1549144CAA5C376DE3BC2F + E37C2E4FF2531B95F8EF6C2E3B745573D16BBFABD9B3E3079A66DF85BD390000 + D822CF3FDD9C3EFBEBCDE74FBEAB79F2D3F1D0C048F4272D04C45C28E74319E7 + 7D326A0C43453205E3AAAD977C2EC5B53EB5908FA3D592FD3C5E9FF85FFC756F + 6B76EFFDCEDE18000066EBE517FF4DF3E4C77FBE79F49E78956024F56501204F + FEDBE2D4426D5CEB431E27B5395827922A1847B956DAC6795FC66DAD96E8977D + 2FF1FFA6AB9B8BAFFD51893F00007361A510F0C02F348F7E341E1818C97D5900 + 68EB87B550C6799F8C1AC33A915CC128E53AC9C729AEF5A35A4AF0532CF10700 + 60F18C5708C893FF3C1ED6425B1FF23894635823922C6853AE8FB671DE97716A + 79B29F8FEB497FB478B8DF6B8EFC68B367DF0FF4C6000030DF4E3FFFEBCDE7EF + FE85C1C30253D29F92FDB63EB5721C2D9471DE27A3C6B022122EA829D7466D9C + E6F2BEADA5043F8FD727FD315E49FC0FBFD5C3FD0000583C6B1E1698BF3520B5 + 34CEFB32AEB590F7294E468D6125F98252B92EF2718AF3BE8C534B097E2D5E4D + F8F3F1D7FDD7DFD5ECB9E8479B5D3BAFE88D010060319D79E5B3CDE9A77EA1F9 + F81FFFEBDE2825FF79E29F8FD35C2D4E2D9471487DC8E3508EE9B848BE20A9AD + 877C2EC5793FACA5043FC565C2BF1A5F71E33734175FF1BF343BCF79536F0C00 + 00CBE19597FEAC79F2B3FFEFE6B31FFCCB180D5A24E66D711AA7B8AD85B20F79 + 9CD4E6E8A048C020946BA1364E73B538B594D8E7F1DA643F6FEEF30700A00BDA + 9F0F905A24E9655FC6A985B6381935A683222983721DE4E314E77DDE424AF0A3 + 95716AE57867F3BA6FBBB5D97FFE3BDDE70F0040373CFF74F3DC977FA2F9E47B + FEA43748897F6A91A097E33497C7218D530B651FF23894633A269232BAAD5C03 + F938C579DFD6F224BFECD7B678ADDF25AFFFE7B6FB0300D049715BC013F7FF83 + E2B581798B44BDAD6F6BA1EC431E87724C87EC1AF4745324E8B97C1C71DE5242 + 5F9B2F5BACABD4E76D7773EDDFFEC1E6C24BFF8F66C7B9AFEB8D0100A07B76EC + BAB2D97FE15B9A8BBFF6E5E6F107EE49B3590BA90FB5B95CEDB3C9A8311DE287 + DF5DA37E49A4B93C8EA43EF5693EC5D197F16ABBEC1BAF692EB9EE9DAEFA0300 + 40666537C07D3FD13CFA170FC6A8D2E28A7D19479FE290FA341FF238C9C7E531 + 3A20AECAD22D29714FCA383F9E8FF3E43EF5A9C53ACAE3BCED6EBEEEBFFEEEE6 + C257FF9FAEFA030040A1BF1BE03B9B8BBEE689E6898FDF9766B396D4E2B2CFD5 + 8E9571EDEB58627EE0DD52FEBCCB5F00655F6B91E4977DBDC513FE2FFF967FDE + ECDA73A237060000863973FABDCDE7FEFC1F0C7953406A71F5BEEC6B2D947DC8 + E3508E595291C0D10DE5CF3A1FA738FAD4428A23A12FE394E8A738DF05B0B3B9 + E6AFDDD89CF79A7736BB765ED11B0300006379FEE9E6E92FFD3F9A07FFD3077B + 833CE93F33E823594F73298EBE8C438AF37192C7A11CB384226963F945929ECB + C711972DE4C97D9A5F4DF0575BBEDDBFDFAEFB3B3FD6EC3FF0CF9A9D3BBCDE0F + 000026B2676FB3F782EF6C2E79EDCEE6D4FD7FD69BC8FF464F7DD2368E3E12FA + FCF8B85FCB12F3435E7EC34EEC88D338C5B516897EEADBDBC55FFDAAE68A6FF9 + 650FFA030080298807047EF6CF7FB879F2335F8AD18816097FEADB5AC8E390C7 + A11CB34422A96379953FDF7C1C711AA7B86C91D8977DD9E2AAFFCEE6EAA3DFD0 + 5C74D9FFD534FB5CF5070080A979FEE9E6A947FFBBE6A13BFFB23788043FDD0A + 50B648DCCBBED6421E873C0EE5982511C91BCB2912F65C3E8E388D535CB648EE + 539F12FDB2ED5EE9E329FFE75FFEEB2BDB9500008029EAFD8D7DEEABFEBBE6A2 + AB3ED73CF1F18FF526E26FF490FFED9EE692725C1AF5F9515FCF828A248EE533 + EC048E388D535CB694F4D7DADA22C0F56FF9B9E69CF3FFC75E0C00006C95DDFB + 4E34075E7F7573EADEFF3898497FBBD7B4CDE7CACF8C1AB304FC5097CFB01337 + E2344E71DE22C14F7D1E47B29FE6FAE38BBFFAE2E6CA37FF76B363D7F5BD3100 + 00300B67CF7CAC79E443DFD33CF999785560793BC0386F0AC85BC8E390C7A11C + B3C0EC00582E91B0E7F271C4699CE2D452629FC7FD447F6DF2DF1FC7FDFE07BE + F1B79B9DBB5EDB1B030000B3B263E7A5CDF957FEED66DF05FFA579EA915331D3 + 3FB022FD7D5F6A9B0FE5FCA8310B4C0160790C3B51234EE314A716897D1ED75A + 2A04F493FF78D8DFCE732EED8D010080598BD76D9F7BEEDF6ACEBDF8F6411120 + C4DFF3A3B47DA69C1F35664129002C87612768C4699CE2D422B94F7D5B5B4DFE + BFF66F7AD81F0000CC85C1C3012FBCF2D1E6894FE40F076C938EB77DAE9C1F35 + 660129002CBE612766C4699CE2D422B92FFBBCAD26FE318EE47FDF253FDB8B01 + 008079B167DF894111E0DEDE28FEAE0FA92F8D7B3C193566C128002CB6612764 + C4699CE2D4F2A43FF579CB93FFFE93FEF75EE049FF0000308FA208B0FE0D016D + D2B1B6CF94F3A3C62C100580C535EC448C388D539C5A9EF4A7BE96F8F7C7D7BF + E59F37BBF77E472F060000E6D5CEDDD737075E7F55A50890FADCB063A19C1F35 + 664128002CAEFCA42BE3344E716A79D29FFAD45693FED44BFE01006071CCB608 + C0025200584CF9C957C6699CE2D422A92FFBD424FF0000B00C66570468FB1AE6 + 9802C0E2693BE9224EE314A716497DD9A79627FFD1764BFE01006081AD1601DE + 379849221728A5B9DAB150CEE7E3B6AF614E29002C96B6932DE2344E716A79D2 + 9FFAD4CAE43FAEFCBF53F20F00000B6EFD4E80247282529AAB1D0BE57C3E6EFB + 1AE69002C0E2683BC9224EE314A79627FDA94F4DF20F0000CB4C11808202C062 + 683BD9F2BED66A897F4AFA532FF907008065355911601C6D5FB7D17F8F195200 + 580CF9C994E2BCAFB548F0539F37C93F000074C9E44580B6F9241D1FF539E68C + 02C0FCCB4FAA32CE5B88C43E8DF3A43F6F29F18F787773EDB7FF6873CEBEEFEF + C50000C0B28A22C0C5AFDBD93C7EDF7FE98DCEF65ACA21C631ECF3F9FC24FF26 + DB400160BEB59D4C11A77124F2A94FF329D92F5B9EFCEF6ABEF66F7E5773EE45 + 6FEFC50000C0B2DB7DCE9B9A0BAFFC5CF3C4273E3698C9738C61E273A908502B + 06E4E371FF4DB68102C0FC6A3B89224EE31447429FC7B5B63EF9DF77C9CFF662 + 0000A02BF6EC3BB1C92240527E5D3E1EF7DF64C61400E653DBC9147D19A79612 + FD3C4E097F8AFBEDF2377F4373E16BFE3FBDE9BDBD310000D0257BCE7973B3FB + FC0F34CF3C726A3053AA25FAF95C928ED50C3BC6365100984FF9C992E2BC2F5B + 99F8E7497FEAFBED35DF707573F0DADFED8517F4C6000040E7ECDCDBECBFE86F + F532853F6EBEFCC5670693A344BED1261D1BF619E68002C0FCC94F9A32AEB548 + F0535FB6B505808BAE795573D937FF5AB363D715BD310000D0595104B8F44DCD + 8BCFFC71F3E2532F0E264789BC6394FC33E37C9E198AE490F9D176B2449CC679 + DFD6D627FFD1AEF8967FD64BFEAFEFC5000040D7456E1039429E33ACCD256AB9 + 466A21EF531CDA62B659FC60991FB51325FA32CE4FC688CB969FBCBB57FA6BFF + CEDB9A3DFBFFDB5E0C0000D0B773F76B9B8B5FBBB379FCFE3FEB8D22BFA8DDEB + 5F537E36C6CC390580F9919F3029CEFBB295497FDE5201A0DFBEE6F8ADCDFE4B + FE712F060000586BF739DFDA9CF755F7374F7EFA53839971B4150A2257C9FB90 + C76C230580F9D07672445C6B91E4A73E4FFAF3E43FE2DDCD556FFA86E6C22B7E + A937F4C47F0000A0EE9C7DB7347BCFFB40F3F467E3CD0091DC47BE912B13FEF2 + 784DFE99713ECF165300980FE964284F90348E643EF531177DD9CA02C0AEE6A2 + AB5FD51CF8865F6A76EEF6D03F000060889D7B9BDD171C694E4FF450C024150C + 6A858372CC365200D87EF90991E2E8CB3892FB3CCE5B4AFAF37877F3DABFF1BF + 36BBF7DEDC8B01000086DBB9EB6073DEABBFAA39F5B1F7F546B52DFEB5B91039 + 4A7E2CC6356DF3CC8802C0F6CA4F8032AEB532F14F2D25FDABED6B6F7B4BB3F7 + C21FE9C5000000E3D9B9FBFAE6C22B3ED73CF189FB0633E3682B0C2491CB2479 + CC8C29006CAFB4F8CB13228D23B94FE31497897FEA57DB65DFFA8DCD4597FD7C + EF90FBFE010080C9ECD9FBA666D7FE3B9A2F7FF6B1C14CA94CF853FE92C4F172 + AE1CB30D2279647BD44E80984BF3795FB6BC0890B77E01E0E2AFFEDF7ADD05BD + 1800006042BD5C6225A7F8CA45C65AEE11AD96AB84BC4F71AE36C70CC40F93D9 + CB177C19D75AED64CB4FC678D77F7FFCFA6FFF9F9B3DE71EEFC50000001B13CF + 0378D5EB2E6A1EBFEFF6C14CC8AFFCD7B6FDBB1560CE29006C8FDAC28F3EC591 + D4A7718AF3C43FF56BE3ABFF6F479BF30E7ADF3F0000B079BBCE39D49C7BC99F + 374F3DF8D9C1CCA8A43FE533491C2BE7D846913C325BF90990E2B6B9B2C5CF2B + F5A9F58B00175EF5AAE6FCCB639B0E0000C074448E11B9469E7BACB63C47295B + 487D1836C78CC40F8BED512EF618E72DA4B83CC1D6B7CBBEF9479A5D3BBDEF1F + 0000989EC83122D7A8E520FD56E62BD1428AF3B9A41C332351C16176F2859EE2 + FC84C84F9AF2645ABBDD7FB5ED1E6CFDFF47BD18000060BAFAB7027C78702B40 + DB7DFE1BBD15A06D9E2D100925B3912FECDA224F73D19771590C586D175E7571 + 73FEE5FFB4170300006C8DC83922F7A8E5246B739668A18C4BF95CED385B207E + 486C9F7452E42D445F3BA1CAB6CBD67F000060CBADDE0A90762697AD96C384E8 + CBC636891F0C5B2F5FE429AE2DFE3497B7FC24CA5B2FF9FFD6AF6FCE39EFBFEF + C50000005B2B728FC841DA8B00D16A394D2E9FCB8F959F630BC40F88D9A92DEA + 74020C6BE944CA4FAC9DCDC55F6DEB3F0000303B175DFD53BDFFB9362F599BB3 + 8C6AA5DA1C5B242A376CAD7C41A7385FFC292E4F9EB2AA16E3D5F6B57FEB079A + BDFBFF6E2F060000988D5DBBAF682EBCE6CBCD130F9C1CCC8478C85F6A491E87 + 7C9C72A152DB3C53128925B3515BCC3197B7908FF302C06ABBF0CA5735FBCEFF + 7FF662000080D98A5C2472925AAED26F794E13F2719ACBD5E6D802F1C361EBB4 + 2DEE349FE2D46A274D3ED76F97BDB197FCEFBAA017030000CC582F1759C9492A + B9CAF0DC26B590C7B9DA1C53123F0CB6DEB0859D167ED9F21366B57DD5F5577B + F01F0000B0AD222789DCA496B3F45B2DC78916529FABCD3165F183616BB42DEA + 7CD197716AF94993E27EBBE4EB3DF80F0000D87EFDDC646DBEB23E9FC95B688B + 73B539A6207E286CAD610B3A2DF8BCE5274A3A71FAEDAA5BDEDCECD9FB2DBD18 + 0000607B456E12394A99B7D4739BBC85D4E76A734C51FC4098BEB6C59C2FF632 + CE5B79F2F4E3F35FF33FF57A000080F9D0CF51D6E72EABE3B285B638579B6393 + E287C2D619B690D342CF5B7992AC9E3CAFBBF53B9BDD7BAEEBC5000000F32172 + 94C855F2DC657D4E938F530BA9CFD5E69892F861305D6D8B385FE4651C2D9D18 + E9A459DBF65DE2B57F0000C0FCE9E72AF53C666DAE935A688B73B53936217E10 + 6C8D610B382DF0D4F213637D7BDDADDFD1ECD879792F060000982F91AB44CE52 + CB65FA2DCF79F216529FABCD3105F143607ADA166FBEB8CBB8ADAD9E30AEFE03 + 0000F36CFD2E805A8E93B7D016E76A736C50FC6098BE610B372DECD4D2C9919F + 2CABCDD57F000060DED905B010E207C074B42DDA7C5197715B5B3D495CFD0700 + 0016413F77599BCF0C6FA12DCED5E6D8000580E91BB660D3824E2D9D14E90459 + DB5CFD07000016855D00732FBEF96C5EDB62CD177319B7B5D513C4D57F000060 + 917816C05C8B1F085BAB5CC865CB4F8ED576D5CD6F72F51F0000582891C3442E + 53CB71FAAD9613450BA9678BC40F80E9C917EEB0B8ADAD9E18E7BDFA7FE8F500 + 00008BA59FCBACE636F5DC276F6158CC94C40F83CD19B620F3636911A7964E84 + FCC4E8B72BBFE5FA66CFDE6FE9C50000008B257299C8696AB9CEDA5C286F491E + 97861D630CF18D673A462DD45ACB17FE6A7CFE557FAFD70300002CA67E4E333C + EF59DFDA0C3BC604140036A7B610F3059CB790E272D1A7F1CEE6C22B2F6AF6EC + FB3BBD1800006031454E13B94D9EEBD473A068213F96B7526D8E31C5379DAD95 + 166EDB82CFFB9DCDAB0FC56B33000000165B3FB7E9E739F51C28B57CCC168A6F + 349B97166ABE686B0B38CDA5969F00FDB6F7C2EFEBF50000008BAD9FDBACE63A + 6B73A0BCE5F2B9326693E29BCFC60C5B80E5826D6BF989B0A3B9EAE66FF5EA3F + 00006029F45F09F8AD110DDADAFCA7BD85D4D70C3BC6100A009B575B7CE5C2AD + 8DF385DF3F11CEBBF4EFF67A000080E5D0CF71CAC43F8F438ACB71A936C704E2 + 1BCF74A4459A2FCA7C2E5A5AE8E5E2DFD95C708587FF010000CB25729CC87552 + DE333C374A2DA9CDB109F1CD6672E32CC07CB1E6AD5CF4FDF6555FFF377A3D00 + 00C072E9E73AABB94F3D372ADB28E37C86427CC3D9B8B4E8F2459AC7499ACBDB + DAC5BEF7551EFE0700002C9F7EAED39E0BADB65C3E57C66C9002C074950BB4AD + A5051FFDCEE6D2AFBFAAD9B5FBF5BD18000060B944AE13394FCA7FD6E644C35A + 483D5310DF742633EE02AC2DDC7ABBF8EABFDEEB01000096533FE7A9E743FD16 + CAF128E37E8E0105808D2B1769C8E324CD952D55BF76367B2EFCF65E0F0000B0 + 9CFA39CF6A0E54CF91A2E5F2B9326603E21BCF74940BB3ADAD5DF0977EFD95B6 + FF0300004BAD7F1BC095BDA89E17B5B7907A3649016032E32EBCDA828D962FF0 + FE82BFF89AE3BD1E000060B9F5739F32F1CFE390E2341E65DCCFD113DF6C2657 + 2ECE90C7498CD382CE17F66ADB738177FF030000CBAF9FFBACCF89D6E74CB9F4 + 9950C64C4801603ACA0599B790F7F13DEF2FEC4BAEB3FD1F0000E886C87D2207 + 2AF3A2BEBC2F5B483D9BA00030BE71175C6DA1464B8B7B757CE0B5B6FF030000 + DDD1CF81D6E746AB71C88F8D63DCCF759E02C0E46A8BABB638D35C7BDBBDFF5B + 7A3D00004037F473A07A7EB4B6E56A73A136C7100A001B971661BEE8F2B95A5B + 5BE9DABDF7AFF57A0000806EE8E740ED3952BD25B53926A000303DF9624C0BB2 + 7DEEABFF2BDBFF010080EEE9E742EB73A4D1736C9202C07836B2E0CA051B2DBE + DFFDB6E7A26FEDF5000000DDD2CF855673A37AEE34A98D7C4DE7C4379BF1A545 + 952FCA14D7C6ED6DCFB96FECF5000000DDD2CF85EA79D2FA16DAC621F58C4101 + 6073CA4557EBD7B70B2EBFD0EBFF0000804E8A5C2872A25AAED46F6154CF0628 + 004C4F2CC4D442DEAF6D07AEB3FD1F0000E8AE7E4EB43E57EACBFB7C9E4D5200 + 186DD8626B5B8C69BEDEF65CE0F57F00004077F573A27ABEB4DA4A6DF3C9B063 + F428008C2F2DA6DAA24B73E3B49DEEFF0700003AAD9F13453E5ACB99DA5A2E9F + 2B8FD1420160E36A8B2D2DC2BC85B563F7FF0300005DB69A13ADCD95D68EF3F9 + 90E27C8E0928004C47B9309398CBAB5A3B9B2B8FB9FF1F0000A09F1BADCD97FA + 7D291D67931400A62F2DCE7C91AEC6FB2F71FF3F0000C06A6E54CB9DF239A644 + 0160B8610BAE5C90693CACED6C76EDB5FD1F0000A09F1BE53B0086B5A41C9786 + 1DEB3C0580F1A445545B6CF95CED7329EE8F77ED510000000058CD8DD6E64CEB + E3D4A738A97D8E21140036A6B6C8CAB9E8D7B6F32FBBA8D9B1F3F25E0C0000D0 + 6D911B458E54E64DFD16CA3ED4E6189302C0E6C5C2CB1761DB784773F16B5DFD + 07000048FA39D2DABCA9AF6DCC2628006C5CB9F86A8B736DDB7BE175BD1E0000 + 80D0CF91EAF9535F1E27E598312900B41BB6A8CAC5987FB676ACDFF6ECB30300 + 000020D9794EDC22BD3E77EA4B7D1876AC34EC58A729008C962FB0711659DBE7 + 76343B775F3188010000D8B337ED0028E57955ED7832EEE7E85100985C6D7195 + 73D1AF6F3B775EDBEB01000008FD1CA99E3FF5957DA8CD31060580CD8905972F + BEB671BC01E08266C7AE0BE2000000003D912345AE54E64F7D6D6336480160FA + EA8BF4E2D77A0020000040A99F2BADCFA156C74C8902C0C6940BB15CA0EBFB5D + BB2F1CC400000024FD5CA93D975A6DB972CC181400EA862DA6742C2DC2B6CFAE + 3DBEF7426F0000000028ADE64A6B73A8F5CAE36D9F0BC38E759602C070F9C21A + 6771A5CFE59FED8F77EE8ED75B000000B056FE0C80248DD35C7EAC34EEE73A4F + 016032B54555CEE5FD6AAC00000000B0DEEE736307403D8FAAF7A136C7080A00 + 1B170BAD6DB1A563AB9FD9F18A3700000000B45B9F47AD37EC182328004CC7E8 + 45BAF3DC78BF25000000B95DE77C73EF7FB6E752C3732D26A000305DF9E2CC1B + 000000C3D572A9684C8902C0E4CA05582ECCF5C70F7EDD158318000080523F67 + AAE55AA94F2D578E1941016073DA16DCDA057AEEA51E00080000D06635675A9B + 4BADD736CF181400D61BB6A0D2B1B60559FFDAB343FF4D0000806E6BCF99DAF2 + AE343F2CD71A76AC931400366FD8C28BB91DCDEE3DE7F787000000ACD3CF99FA + F9D37AC3722E26A000305ADB22CCE5C7D3E7D3DC8E66EF05D70D620000004AFD + 9C6935875A9B53853CAE293F4F850240BB72F1D416D3A8CF5880000000E3DB48 + 8E250F1B9302C0E4D2626A5B54319F1A00000093199553A57939D784140036A6 + 5C68C316270000001B57CBB7E45F1BA000B079A3169E85090000309ADC6A8B29 + 006CADFE02DD75CEEB577A0000002AF65C3E0824F95B480160BAF2C5BA1AEFD8 + E535800000006D76EFBE6C10857A5EC5A629004C4F5A98D15BB00000009329F3 + A83496534D890200000000748002C0E6E455A91A952A000080F18DCAAFE4589B + A000000000001DA0003099B66A539ACF8FAB4C0100004CAE9657B5E557F2AE09 + 28004C5F2CC062119EB5280100005AADCB992A79159BA500000000001DA00000 + 0000001DA000000000001DA000000000001DA000B071E33E90C2832B00000046 + 93636D310500000000E8000500000000E8000500000000E8000500000000E800 + 0500000000E8000500000000E8000500000000E8000500000000E80005000000 + 00E8000500000000E8000500000000E8000500000000E8000500000000E80005 + 00000000E8000500000000E8000500000000E8000500000000E8000500000000 + E8000500000000E8000500000000E8000500000000E8000500000000E8000500 + 000000E8000500000000E8000500000000E8000500000000E8000500000000E8 + 000500000000E8000500000000E8000500000000E8000500000000E800050000 + 0000E8000500000000E8000500000000E8000500000000E8000500000000E800 + 0500000000E8000500000000E8000500000000E8000500000000E80005000000 + 00E8000500000000E8000500000000E8000500000000E8000500000000E80005 + 00000000E8000500000000E8000500000000E8000500000000E8000500000000 + E8000500000000E8000500000000E8000500000000E8801D839E55E97B92F7A9 + 45C124F5BBB23EB5DD95B6A779C35B7EB5D9B5F7865E0CD0EAE84DB734070F1E + 1C8C9885E79E7BAE79E0BE8F350F3FF4E0600600D816675EBCABB9F7777FB017 + 9DEEB5972BED4CD65EC9FAB38371F4A985B2A72725B9AC4ADF93BC4F4D010098 + BAFDFBF7373FF6936F6FAEBAFA9AC10CB31645805FFAC59F5F29080000DB4001 + 6026228105601B7DF7F77C9FE47F9B5D7BDDF5CDDF7BEB0F0F460000CB490100 + 609B1DBAE19B0711DBE970EFE710BB31000096950200C0369374CE8F4337BC71 + 1001002C1F05000018387CC46E0C006079290000C040DC0670E0E0A5831100C0 + 72510000804C140100009691020000648E1EBB791001002C17050000C8C42B19 + DD0600002C23050000281C3F71EB200200581E0A00005038EC758000C0125200 + 00D846B1DD9CF973E0E0413F1B0060E92800006CA37DFBF70F22E6CDF113B70D + 220080E5A00000001587BC0E100058320A0000DBC8D3E6E7D7FEFDFB9BC38A00 + 00C012510000D846070F1E1C44CCA3C3473C0C1000581E0A0000D0E2E84D37AF + EC04000058060A0000DBE8DAD75F3F88985787BC12100058120A000030C4E123 + 9E0300002C070500806D74A577CDCFBD7810A087350200CB400100601BB9BF7C + 31781B0000B00C140000B6C9B5D7B9FF7F511C3D76F3200200585C0A0000DBC4 + D5FFC571D5D5D7B80D000058780A0000DB24924A16C78D37D90500002C360500 + 806D72E5550A008BE4E8B15B061100C062520000D826070E1E1C442C82F879D9 + B501002C320500806D10F7FF4B26178F870102008B4C0100601B1CBAE18D8388 + 4572F426B70100008B4B0100601B1C3EE2BDF28B28766E1CBEC1CF0E00584C0A + 00003326895C6C878FD8BD01002C2605008019B3FD7FB11DBAE19B578A380000 + 8B46010060C66CFF5F6C91FC2BE200008B48010060866CFF5F0E8A3800C02252 + 00009821578E97431471DC0600002C1A0500801972E5787978252000B0681400 + 0066C8F6FFE571F4D8CD8308006031280000CC88E47FB95C75F535CD8183970E + 460000F34F01006046BC3F7EF928EA00008B4401006046E2FDF12C97E3276E1B + 440000F34F010060063C357E391D387870E55600008045A000003003B6FF2F2F + 0F03040016850200C0168B2BFF476F92242EABC33728EE00008B410100608B1D + 92202EB5B80DC0C300018045A00000B0C50E1F911C2E3BB77800008B40010060 + 0BC5F67F5787979F373C00008B400100600BD9FEDF0DFDE73CDC32180100CC27 + 0500802D74FCC4AD838865E7560F0060DE2900006C9103072FF58EF80E895B3D + 62270000C0BC520000D822EEFDEF1EB77C0000F34C0100608B1C3DE6DDFF5DE3 + 960F00609E2900006C01DBFFBB297EE6F1B3070098470A00005BE0C69B5CFDEF + 2AB77E0000F34A0100600B1C3DE695705D75FCC46D83080060BE2800004C597F + 1BF8C1C188AE899FBDDB3F008079A4000030651EFE87350000CC23050080293B + EC55709D670D0000F3480100608A6CFF27C41AB8F6BAEB07230080F9A0000030 + 451E004772A30741020073460100608A0E79051C03D60200306F140000A624DE + FFBE7FFFFEC188AE8BB5106B0200605E2800004CC9E1231EFCC65A47DD060000 + CC1105008029B1E59B925D2100C03C5100009882A337DD22D1A3EA9057020200 + 73420100600A0E1F71F59FBA1B8FDD3C880000B6970200C02675FD616FCF3DF7 + 5C73E7076E1F8C285D7BDDF5CD8183970E460000DB4701006093BABEC5FB81FB + 3ED6BCEFBDEF1E8CA8F1360000601E2800006C52D7B7FF3FF2F083CDC30F3DB8 + B21380BAA36E030000E6800200C02678D77BD3DC7FDFC756FA7BEEFAC84ACF7A + 575D7DCD4A0300D84E0A00009B104FFFEFBAB80520DC7F7FBFA7CE2E000060BB + 2900006C42D793BAD8FA9FDC73D78707113587BD0E1000D8660A00001B144F76 + EFFAB6EE471E7A6810F5DF0690170458EBC0C1832B6F040000D82E0A00001BE4 + C9EEEBB7FDDF73B7E7000C73E331B78C0000DB4701006083DCD31D3B00D65EF1 + 3FE94180431D52340200B6910200C006D8FE5FDFF2EF7580C3796B0400B09D14 + 000036E0F8895B075177A5A7FF97BC0E70B8C3473C0C1000D81E0A00001BE089 + EE4DF3C8C3F507FE791DE070476FBA7965270000C0AC2900004C28B6FEC713DD + BBEEFE961D006D3B03587548010900D8060A000013F2F0BFBEB644FFF1538F79 + 1DE008878F780E0000307B0A000013B2FD7FF4557EBB00868B0701C683240100 + 664901006002FDC4CDF6FF0746DCE77FF26E0F021CC5DB000080595300009880 + 27B8F7B5DDFF9FC40E00AF031CCEAD2400C0AC2900004CE090ABB62BC6D9E2EF + 3680E1FA0F93741B0000303BBB063DAB7654FA5A8BE249EA87B55DCDA56FF86F + 9A9DBB2FEBC5C0028B2DDB37DE74CB60D45D91D8DF79C7ED8351BB8B2EBEB8F9 + FA6FFCA6C188367FF5971F1D4400B317AF25FD9AD77DED4A4132B528507ECB9B + 8E36AFBFEEFA352DE65F3E7DBA79FAA9A7065F0D5374F6CCA3CD63F7FEBB5EF4 + 4A4B3BDBD242EA19211258D64ADF93BC4F2D12FAD447F124F5A9EDAEB43DCD1B + DEF2ABCDAEBD37F46260817DFF5B7F78E51DEE5DF7EFFFE0F79A3FFCFDDF1B8C + DAC51F913FF3CE9F1F8CA879FCD4A9E6A77EE247072380E98BA47D5F2FC98F04 + 7EDFBEFD2BE3706D6FBC5127EFFA48F39BEFFA65B77A315D675EBCABB9F7777F + B0179DEEB5972BED4CD6A22090FA48FECB0241287B7A5292CBAAF43DC9FBD414 + 00A0A3E20AC93BDEF90B2B7DD7FDDCCFBE63ECEDFD3FD3FB9E7968E270FFE4A7 + DFEEB589C05444521F09FE55575DD35C79F5D55F49F6B74214017EE917157999 + 2205809988041680110EDDF046C9FFC024F7F69FBCEBC3838836C74FDC368800 + 2613B7A67DF7F77C6FF3E33FF9F6E6977FFDB756FA18C76EB5AD4CFE43FCB7B7 + FABF014C9F0200C0180E1FF1F0BF30E983FD46BD2E100F9604C617B7561DFFB6 + DBBE92F0FFFD1F79DBCA7833DBF93763BBFEBBC0C6A56DEEAC4ADF93BC4FCD2D + 00D04171E5FFE7FFC5AF0C46DD36EEFDFFB9F82395E1621B6D6CA785E4E84DB7 + 34377A55E4CA73324EDEFDE14E9F1F71953D5E1B7AF88637CEDD2D551BF9FF09 + D0CA2D003391925C56A5EF49DEA7A600001D147F887FFF5B7F6830EAB68DDCAF + 1E57AA5C251AEECE0FDCDEFCC6BB7E7930A2EBE28A6E6CE36655FCDEF9CD77FD + 4A679E971157FA638B7DDC2234CFCF51510060AA1400662212580086B0FDBF2F + 9EF6BC913FBE4FDEEDCAF628711B80674C90782EC47A7115FCC77EF2ED4B7FCF + 7924FDB1AD3FDEA01245200F5105A64D01006088741586C9EFFF4F36FA755D12 + C97F3C681282A4AF2ECE9328022C5BB12CFEEFF9DBDFFE1D2B6F4D89E4DFFFCF + 01B6920200C010FE105BB5D12BF9B16B20EEE365383B4D60B44896BFFB7BBE6F + 305A6C5160FEFEB7FEF0CA3366FED6DFF90E851F60261400008688072FD1B799 + 2BF976018C16C5A665BBB2C9C6385F868B57DC2DF2B99212FFD8E61FFFB700CC + 920200408BF823CD3B8EFBE20AFEE3A71E1B8C26174FF166B478E024305A3C28 + 71D148FC8179A00000D0C2F6FF5527EFDA5C02EF8AE678EC38213C70BFF36594 + BFBE400F4A8CDD0A127F605E280000B4F024EE559B4D48E20D028A00A3C58E93 + B84A080C1749F5BC1769E37FC778B8DF3BDEF90B127F606E28000054F413310F + 644A4EDEB5F957F9791DE0786E942874DEFD8A6563397C647EDF9C11B7F344E2 + 1F0FF7F36C0F609E28000054D88ABD6A1AC97FB003603C478F790E008CE3D01C + EE00B8F6BAEB9B7FF88FDFD17CFF5B7F48E20FCC250500808AC3DEC9FE15D3BA + 1FD9EB00C7133B4F3C7CB2DB9C27E389047B5ECE95F8DF25EEF3FFF19F7CBBF3 + 17986B0A000005DBFFD79AD60E806017C078EC40E9B6CDBC71A36BE28AFB768B + 3712B8CF1F58140A000005C9D7AACDBEFEAFE47580E3F13A4018CFB5AFDFBE02 + 40148B63BBFF777FCFF7DAEE0F2C0C05008082E46BD5665FFF57B203603C914C + 780D65B73957C6B35DDBEDE3E9FE91FCDBEE0F2C1A0500804C245DAEE4ACBAF3 + 8EDB07D174C4EB00A7794BC1329BE7279CC3BC88DBB566F9EACC74D53F9EEE0F + B0881400003292AE5591ACC783FBA66D5A0F155C76F18473C5A8EE8AF38FF15C + 75F5D583686BC5BDFEAEFA038B4E010020338FAF95DA2EF76CD1957A3B00C613 + C9FF216FA3E8AC471E9E7EF16D596D75421EE7623CDD3FEEF50758740A000003 + B6FFAFB5550FEC8B870A6EC5CE826574F88882148C72E5555B570088FFBF104F + F89F87B70D004C830200C080EDFFABB6FA5E7D0F381B8FA25477B905607C5BB5 + 0320AEF8FFFD1F799B7310582A0A00003DF1079E7738AFDAEA047DDA0F175C66 + 6E03E826BB64C6170F029CA6B4E53FEEF90758360A00003D92ACB54EDEBDB5F7 + E94772F3F8A9538311C31C3F71EB2002DA4C6B8B7EEC26B0E51F58660A00003D + EEB55EEB9EBBB6E6FEFF9CDB00C61309C92C5F73068B681ADBF48FDE74CBCA53 + FE6DF90796990200D079F1C75EDC6B4D5FDCFB3F8BFB8FB7EA2183CBC8FAEC1E + 3B6426B3D9E700C4FDFEDFFFD61F1A8C0096970200D079B6FFAFB5D5DBFF9359 + 151A96C1F113EE45EE9A785B06E33B706063BB64A2001C0FFA73BF3FD0150A00 + 40E7B9C77AAD596ECD771BC078E221675BFDAE7358641B79106024FF3FF6936F + B7C306E8140500A0D3E2DE6A89D5AAFEC3F96677E57156BB0D96C1D163DE5201 + D312BFF723F9F7FB1FE81A0500A0D35CF9596BD6AFE79BC5C30697C561B7AA40 + AB499EDA2FF907BA4C0100E8345755D78AFBF267299E0130EBFFE6A28A2DCE0A + 56DD123B7298AE94FC7BD23FD0550A004067D9FEBF563C757C3B1E3CE63680F1 + 1D3E621740973CEF21995325F9075000003AECC69B5CFDCF9DDCA6EDF81E0438 + BE43760040AB6105DDD83D23F9075000003AECE8B15B061161D6F7FF27B1EBC0 + 56E7F144F272F426EB166AF6B524F791FCC7ABFE24FF000A004047C595A28DBC + 366A59C5BDF8DB99846F57F161111D3E6217008C2B7ED7FFBDB7FEF060048002 + 00D0491EFEB7D63DDBFC203E0F021C5F5CCD7425134673CF3FC07A0A00402779 + A5DA5A27EFDEDED7F1B90D603287AC5F58277F0680E41FA04E0100E81CDBFFD7 + 9B872BF06E0318DFF113B70E222049C9BEE41FA09D0200D039C74FDC368808F3 + B2FDDEDB00C6D72F625D3A18B1AC1EB8DF3931A948FAFFDE5B7F48F20FD04201 + 00E81CAF525B6B5EDEC31FB7003C7EEAD460C428F12C0060D5BE7DFB57AEFCE7 + B70200B0960200D0291EA0B6DE3D776DEFFDFFB99373F4BFCBBCF3204B58EBF8 + B7DD26F90718410100E894C3473C3C2D1757DDE31580F3C27300C617898E6407 + 0098840200D029B6FFAF356F09B7DB00266317000030090500A0338EDE748BED + FF85797CFFBEDB00C6E7759600C024140080CE387CC4D5FF5C5C698FF7EFCF1B + 4F3E1F5FBCCEF2DAEBAE1F8C0000865300003A21AEFC7B6AFA5AF37AA53D7625 + CCD37309E6DD8DC76E19440000C32900009D70C856E975E6F9817BF7CCE1AD09 + F3CA732D0080712900009D60FBFF5A71853D1EB837AF4EDEED3900E3B2BB0500 + 18970200B0F42448EBCDFB15F6797C38E13C3BEA360000600C0A00C0D28BA7FF + B3D6225C615704185F14B8BCE1020018450100587ADE95BEDE2224D727EF5600 + 9884E75C2C9F79BE4D0780C5A400002CB503072F6DAEBAFA9AC188B02857D6EF + 99D3B714CCAB1B15BA968EB76100306D0A00C05273EFFF7A8B72653D929F07EE + FBD860C428D75E77FD4AC10B00A08D0200B0D46CFF5F6F91AEACBB0D60320A5E + 00C0300A00C0D2B2FD7FBDB8A77891B6157B10E06414BC008061140080A575FC + C4AD8388E4CE3B6E1F448BE1F1538F7910DA04A2E0E5360000A08D0200B0B40E + 7B2AFA3A8B7845FD1EB7014C44E10B0068A300002CA5FE95D0838311E1F153A7 + 56AEA82F1AB7014C46E10B0068A300002C25F742AF7772415FAB17B70044F182 + F144E1CBB32F96C3F35E0308C0942900004BC955D0F516EDFEFFDCA2162FB6CB + F113B70D221699E75F00306D0A00C0D28957A1D9FEBF565C415FE464C2EB0027 + 73C8EB0001800A050060E91C3EE2EA7FE981FB3E36881653FCEFBF48AF2FDC6E + FBF7EF5F29840100E4140080A5E3EAE77A27EF5EFC2DF4F77818E04414C20080 + 920200B054E2AA675CFD64555C395F8627E92F431163968EDE74B37301005843 + 0100582AAE7AAEB72C57CEBD0E7072873C0C1300C82800004B23AE76DAFEBFDE + FDF72FF6FDFF394580C91C3EE27C0000562900004B23AE76DAF2BCDE3D4BF40A + 3D6F03984CFF8D18970E460040D72900004BC3D5CEF5E28AF9323D3D7F998A19 + B3E26D000040A200002C05AF3DAB5BB62BE6CBF240C3593A7AECE641C4227AF8 + A1070711006C9E0200B0143CECAC2EDE9FBF6CDC063099ABAEBEC66D000BECF9 + 25DAC103C0F65300009682EDFFEBC595C3C74F3D36182D0FB7014CEEF8895B07 + 1100D0650A00C0C28BAB9BB6FFAF77E71DB70FA2E512B701D8163D99C376C800 + 003D0A00C0C293FCD72DF3BDF2CB5ADCD82A070E1E5CB91500609A96E921B3D0 + 150A00C0C2F390B3F59675FB7FB28CCF36D86ACE1360DA3C9415168F0200B0D0 + 62FBBF2B9BEB2D7B82DC2F709C1A8C18C7D19B6E1944009BF71BEFFA95A52E34 + C3B2DA31E85995BE27799F5A144C52BF2BEB53DB5D697B9A37BCE5579B5D7B6F + E8C5C0941DFFB6DB9AEFFE9EEF1D8C48FEC94FBF7DE9EF938F9F7BFCFC19DF2F + FDE2CFBB62B7607EFC27DFDE5C7BDDF583118C2FFE7F40FE168907EEDF5861F8 + C0814B576E230A2BC5D7C74FADFC1E91FC3375675EBCABB9F7777FB0179DEEB5 + 972BED4CD65EC9FAB3599F5A287B7A5292CBAAF43DC9FBD4140060CEFCCC3B7F + E12B7F98D01757C67FEA277E74305A5EF1EC87BFFF236F1B8C18C79D1FB8BDF9 + 8D77FDF260C4225000A026EEBD7FA4978CAF24F9CFF71F8C1A73F1FB5F62CEC2 + 5200988994E4B22A7D4FF23E3505009823B1F5FF1FFEE3770C4624EF7BCFBB9B + DFF9EDDF1A8C96DBCFFF8B5F69F6EFDF3F18314A24086FFF891FF5E0AE05A200 + 40DCD21509FEC30F3FB492DC7B060A4B4B01602622810558481E6A56B7D16D9E + 8BC81FC2938962C921AF0484B915897E7FA7CEAFACDCCAF5C33FF0BDCDCFFDEC + 3B568ABA777EE0FD7EE7019BA600002C2CEF36AFEBD21F8827EF763FFBA40E1F + F1DA4C981791F0C7AEAD783EC7DBFE871F5A49FAE3369D48F6E318C0B4290000 + 0B29B6FFBBF77FBD48FEBBB4BDFB9EBB3E3C8818573C3BC16D13B03DE21EFDB8 + C29F27FC71753F1EAAE7D61C60161400808564FB7F5DD7AE88C71FCCB6C44ECE + 2B016176E24AFEBFFF83DF5B49F6E301AD71855FC20F6C17050060214960EABA + 980CBB0D60720A68B0B522E98F2BFB3FF5136F5B49FCFFF0F77FCF967E602E28 + 00000BC716E6BAD85ADAC53F30BDD77E72FD5B682E1D8C806988DFC179D21FF7 + F67B251F306F1400808573F88887FFD574752B7CFC81EDCADAE46EBCC92E00D8 + ACD8C61F897EDADE2FE907E69D0200B0700EDDE029E63527EFEEEE03F1EE711B + C0C48E1E731B0D6C54145CE3557DF120BFB8EAAF08092C0A050060A1D8FEDFAE + CB0FC3731BC0E4E22D1A712B00309EB8DA1F4FF08F2DFEF16EFE78551FC0A251 + 0000168AEDFF7591FC77F989D271F52DEEBF65321E0608A3A57BFBDF3E7882BF + 2DFEC02253000016465CF93FEABEE52A4FC28F5D00DDBD0562A3BC4D03DA45E2 + 1FDBFCD3BDFD5EDB072C03050060611CBAC1D5FF365DDEFE9FDC79C7ED838871 + 45512D6EAB0156E589BF6DFEC0B251000016C6E12312959AF863D503A8FAB701 + B8423739B7D5409FC41FE80205006021B852D9CED6F755F77818E0C4BC5583AE + 93F8035DA200002C04DBFFDB3D70BFEDFF49975F85B851FD676B781600DD23F1 + 07BA4801005808C74FDC3A88C8C59677AFC05B15DF0BB7014CCEED357449FC8E + F8F77FF07BCD3FF9E99F92F8039DA30000CCBD03072FF5BEF2161EFEB79EDB00 + 2617B7D7C44E0058765124FC273FFDF6E60F7FFFF7140B814E520000E69E7BFF + DB79FDDF7A6E03D818B7D9B0CC62BBFFCFFDEC3B9A5FFAC59FEFC5DEE30F7497 + 020030F78E1EF3EEFF36F77800E03A6E03D818B7D9B0ACEEFCC0ED2BDBFDED98 + 02500000E69CEDFFEDBCF6AE9DDB002617E7599C6FB02CE2F7633CE4EF37DEF5 + CB7E57020C28000073EDC69B5CFD6F73E71DB70F224A6E03D818B7DBB02C22E1 + FFDF7FF61D1EF20750500000E6DAD1635E4FD6C6D3FFDBD9EABB31C74FDC3688 + 6071C5EEA878D05FF400ACA50000CCADFE96E4838311B9F8C3D683ACDAC5D53F + 0592C9C5F9E6961B16DD6FBEEB57FC7E0468A10000CC2D0FFF6BE70AF76877DE + 61EBEF4638EF5874AEFC03B4530000E6D661AF256BE5FEFFD1BC0D60639C7700 + B0BC140080B964FB7FBB789FB52B5CE3F13680C9C579E7618000B09C140080B9 + E46164ED4E7AF7FFD8BC0D60630E1FB10B00009691020030970EB902D9EAE4DD + AE6A8FCB6D001BE3FC0380E5A40000CC9DD87EBC7FFFFEC1885C24B31E003819 + B7014C2ECE3FB70100C0F2510000E68EEDC7ED24B393731BC0C61C3D76CB2002 + 009685020030776C3F6E27999D9CDB0036C64E1C00583E0A00C05C397AD32D92 + 8E1691C44632CBE4EC9CD898435E0908004B450100982B878FB8FADF4612BB71 + 764E6CCC8DC76E1E4400C032500000E686078F0D2789DD38B7016CCCB5D75DDF + 1C3878E96004002C3A0500606ED86EDCCEF6FFCDB383626314E5006079280000 + 73C3F6FF7692D7CDB38362638EBA0D00009686020030176CFF1F4EF2BA790FDC + F7B141C424AEBAFA9A9506002C3E0500602EC4D3FFA9B3FD7F3A7C1F37CE2E00 + 00580E0A00C05C9060B4B3FD7F7A4EDEED7BB911873D9F030096820200B0EDE2 + 29E3B618B7B3FD7F7AEEB9CBF772230E1C3CB8F246000060B1290000DBCEBDFF + ED6C5B9FAEF87E7A16C0C6DC78CC6D3A00B0E81400806D67FB7F3BDBFFA7CF6D + 001B7348A10E00169E0200B0AD6CFF1FEE8377BC7F10312D76546C8C377500C0 + E2530000B6D5F113B70E224A8F9F3A65BBFA1678FCD4632BDF5B2677D46D0000 + B0D01400806DE5E9E2ED4E7A60DD96F1BDDD98D801103B010080C5A400006C9B + D8FA1F4F17A7EECE3B6E1F444C9BE7006CDC21453B0058580A00C0B6F1F0BF76 + B145FDE1871E1C8C98B6B8B522DE08C0E40E1FF11C000058543B063DABD2F724 + EF538B8249EA77657D6ABB2B6D4FF386B7FC6AB36BEF0DBD18C8FCCC3B7FC10E + 8016777EE0760F00DC62DFFD3DDFEB01941BF4533FF1B6956729B0F57EFC27DF + DE5C7BDDF58311E3F8E11FF8DE41042C94332FDED5DCFBBB3FD88B4EF7DACB95 + 76266BAF64FDD9AC4F2D943D3D29C96555FA9EE47D6A0A003025712FF1DFFF91 + B70D46C022F99DDFFEADE67DEF79F760C4565200989C02002C28058099880416 + 60E60E1F711F312C2AB7EF00C062520000B6C521EF138785D57F80E7A5831100 + B02814008099F32A31587CC74FDC3A88008045A10000CC9CEDFFB0F80E7B1D20 + 002C1C050060A6E2CABFEDFFB0F8E20D1EDEA200008B45010098A94337BCD1F6 + 7F5812C74FDC3688008045A00000CCD4E123AEFEC3B2B09B0700168B02003033 + 71E53F1E00082C07E734002C160500606662FB3FB05C3CD41300168702003033 + B6FFC3F2397AD3CD9EEB01000B420100988903072FB555189694DD3D00B01814 + 00809990FCC3F2B2BB0700168302003013478FDD3C8880651305BED8E50300CC + 37050060CB456270D5D5D70C46C032B2CB0700E69F0200B0E52406B0FCECF201 + 80F9A700006CB9E3276E1B44C0B28A5D3E6E030080F9A600006CA97E52707030 + 0296D98D37D9050000F34C0100D852B60543771C3D76CB200200E6910200B0A5 + 0E7B3F387446ECF6F1C04F00985F0A00C096B1FD1FBAC7AE1F00985F0A00C096 + 910840F71CBDC96D000030AF1400802D231180EED9BF7FBF577F02C09C520000 + B6442400910800DD73F888677F00C03C520000B6840400BAEB90022000CC2505 + 00604B440200745324FF87BC010400E68E02003075B6FF03878F280202C0BC51 + 0000A6CEF67F40211000E68F02003055F107FFD19BBCFE0FF026100098370A00 + C054B9EF17488E1E530C048079A200004C95FB7E81E4AAABAF690E1CBC743002 + 00B69B02003035B1FD3FEEFB0548FC4E0080F9A100004C8DEDFF40E9F889DB06 + 1100B0DD140080A9397EE2D64104D077E0E0C1955B010080EDA700004C45DCE7 + EB8F7CA0C6C30001603E28000053E13E5FA0CD61B70701C05C500000A6C2153E + A04DDC06A0480800DB4F0100D834DBFF81510E1FB10B0000B69B0200B06937DE + E4EA3F30DC213B000060DB2900009B76F4D82D8308A06EFFFEFDCDD19BFCAE00 + 80EDA400006C4A6CFD8FFB7B0146397CC42E0000D84E0A00C0A678F81F30AE78 + 1060EC040000B6870200B0295EEF054CE290DF1900B06D1400800DB3FD1F98D4 + F113B70E220060D61400800D3B7EE2B64104309E7EE1F0D2C108009825050060 + C3BCD60BD88878160000307B0A00C086789817B051760F01C0F650000036E4F0 + 110FF20236269E1D12B7020000B3A500006C88EDFFC06678852800CC9E020030 + B1A337DD62FB3FB0295E210A00B3A700004CECF01157FF81CD89DB00AEBDEEFA + C1080098050500602271E5DF13BC8169B8F1D82D830800980505006022876CDB + 05A6C4B3440060B614008089D8FE0F4C8B1D4500305B0A00C0D8FCB10E4CDB51 + B70100C0CC280000638BA7FF034C531415BD55040066430100189BF776035BC1 + B345006036140080B11C38786973D5D5D70C4600D373A3E22200CC8402003016 + F7FE035BE5DAEBAE5F293202005B4B0100188BEDFFC05652640480ADA700008C + 64FB3FB0D514190160EB290000231D3F71EB2002D81A516454680480ADA50000 + 8C74D813BA8119B00B0000B696020030545C913B70F0E06004B075141B01606B + 29000043B92207CC4A141BE38D0000C0D65000008672450E98A51B8FDD328800 + 80695300005AC56BB96CFF0766E990D70102C0965100005A1D3EE2EA3F305BFB + F7EF5F293E0200D3A70000B472250ED80E8A8F00B035140080AAB8021757E200 + 66EDE84D37FBFD03005B60C7A06755FA9EE47D6A513049FDAEAC4F6D77A5ED69 + DEF0965F6D76EDBDA117C3C2F8FEB7FEF0CA1FE18CF6C07D1F6B7EEE67DF3118 + D165F104FB1FFFC9B70F466CC66FBCEB579A3B3FF0FEC1A8BB623D7933C2647E + F807BE7710010BE5CC8B7735F7FEEE0FF6A2D3BDF672A59DC9DA2B597F36EB53 + 0B654F8F1D00C03A71E5CDF6FFF19DBCFB238388AE8B62D0E3A74E0D466CC6E1 + 237E0701C0B4290000EB1CBAE18DB6DF4EE0E45D0A00AC3A79D78707119BD17F + 0BC9A5831100300D0A00C03AAEBC8DEFE1871E6C1E3FF5D860044D73E71DB70F + 2236CBDB000060BA14008035BC826B32923D4AFDA290DB00A6E1E831CF210180 + 69520000D688EDFF8CCFF67F6ADC06301D575D7D8DDB0000608A140080356CFF + 1F9FEDFFB4B133647A8E9FB8751001009BA500007C455C69B3FD7F7CF778FA3F + 2DDC06303D87ED4A0280A9510000BE42F23F19DBFF19C66D00D371E0E0C1955B + 010080CD530000BEC203B7C6175777E32A2FB479DF7BFF6410B159C74FDC3688 + 0080CD50000056C4F67F57D9C6E7EA2EA3C4F3211489A6E390DD490030150A00 + C00ADBFF27E3216F8CC33A990EAF270580E950000056D8623B3EDBFF1997E744 + 4CCFE1231E0608009BA500000CDEB57D70306214DBFF1997DB00A6276E03889D + 0000C0C62900001EFE3721DBBA9984F5321D91FC1FF24A4000D8140500C07BB6 + 27F0DC73CFB9A2CB44DC06303D878F780E00006C860200749CEDFF93B94732C7 + 84DC06303DF12040B70100C0C6290040C7D9FE3F999377BBFF9FC9BDEFBD7F32 + 88D8ACA337DD3288008049290040C7F9637A7CB1FDDF766E36E21E0F8E9C1A45 + 4B00D8380500E830DB692763FB3F1BA578343DFDDB962E1D8C00804928004087 + 79AFF6646CFF67334EDEAD00302D37DE641700006C8402007458BC579BF1B882 + CB66B90D607A8E1E73EB12006C8402007494EDFF9379E0BE8F0D22D81845A4E9 + 893797C4AD0000C0641400A0A36CFF9F8CEDDB4C8375343D1E06080093530080 + 0E8A2BFF47DD433B11DBB79906EB687ABCC1040026A700001D74E80657FF2711 + DBB663FB366C96DB00A6270A99712B1300303E0500E8A0C347FCD13C09DBB699 + A63BEF78FF2062B3DCCA0400935100808E71D56C72B66D334D76944C4FBCC9C4 + C34C01607C0A00D031B6FF4F46B2C656B8C76D005311C9BFDF6900303E0500E8 + 98E3276E1D448CC3F67FB6C2C9BBED2A9916B73401C0F81400A0430E1CBCD4BB + B327F4C07D1F1B44303D76964C4FDCD2E4360000188F020074887BFF27F3F043 + 0F368F9F7A6C3082E9721BC0F4B80D0000C6A300001D72F49877FF4FE2CE3B6E + 1F44307D6E03981EB73601C0781400A0236CFF9F9CF7B5B395DC06303DF1BB2D + 7EC70100C329004047DC7893ABFF93B0FD9F59701BC0F4B8C50900465300808E + 387AEC9641C4386CFF6716DEF7DE770F2236EBF889DB061100D04601003AA0BF + 3DF6E060C4386CFF6716FA3B4D4E0D466C46FC8E739B13000CA700001DE0E17F + 938984CCF67F66E5E45D1E06382D7ED701C0700A00D00187BD226B22123266C9 + ED26D3E3771D000CA700004BCEF6FFC949C89825B7014C4FFCAEF330400068A7 + 00004BCE83B1261389582464304B769D4CCFE123760100401B05005872875C0D + 9B88448CED60D7C9F4F89D0700ED14006089C556D8FDFBF70F468C4322C67670 + 1BC0F4C4EFBCA33779ED2900D42800C012B3157632B6FFB39DDEF7DE770F2236 + EBF011BB0000A04601009698ADB093B1FD9FED74F2AE8F0C2236CBEE2700A853 + 008025155B60FD013C9907EEFFD82082D97BFCD46376A04CD121AF0404807514 + 006049D9023B99E79E7BCE1558B69D67504CCFF113B70E220020510080251457 + FEBD0B7B32F748FE99038A50D373D5D5D734070E5E3A1801004101009690ADAF + 933B79B7FBFFD97E6E03982E855000584B01009690EDFF93B1FD9F79E23680E9 + 397AECE64104000405005832B6FF4FCEF67FE68962D4F4C46D00D100803E0500 + 5832F1F47F2663FB3FF3246E0378E03E6FA49816BB0000609502002C197FEC4E + 4EB2C5BCF9A0DB00A6E6B067A200C0572800C01289275EDBEE3A99D86E1DCF00 + 807972CF5D76A54CCB8183079B6BAFBB7E3002806E53008025E2DEFFC99DBCDB + FDD6CC1F0FA69CAE1B8FB9350A008202002C11DBFF27E74A2BF34A716A7A0E29 + 8E02C00A05005812B6FF4FCEF67FE699E2D4F4783B0A00F42900C092387EE2D6 + 41C4B85C61659EB90D60BA8EBA0D00001400605978D2F5E45C6165DE29524D4F + EC00889D0000D0650A00B00462EB7F3CE99AF1C5ABFF6CFF67DE29524DD72185 + 52003A4E0100968087FF4DCE9555164114A9EEFCC0ED83119B75A3DF9500749C + 02002C01DBFF27E7DE6A16C5C9BBED0298966BAFBB7EE581A900D0550A00B0E0 + E2BE56DBFF27F3F0430F368F9F7A6C3082F9E66D15D3E56D0000749902002CB8 + C3475CFD9FD49D77D852CD62B9C78E95A971CB14005DA600000BEE90AB5913B3 + FD9F45E33680E9E93F34D56D0000749302002C30AFB59A9CEDFF2C22B7014CD7 + F113B70E2200E81605005860B6FF4FEE1E4FFF6741B90D607A3C381580AE5200 + 80051557FE6DFF9F9CEDFF2C2AB7014C4F3C38356E050080AE5100800575E886 + 37DAFE3FA1C74F9D5AB905001691DB00A6EBF889DB061100748702002CA8C347 + 5CFD9FD4C9BB5C4165B1DDF981F70F2236CB0E2A00BA48010016505CF9F72EEB + C979FD1F8BCE1A9E1EBF4701E82205005840B1FD9FC9D8FECF32E8BFC5E2D460 + C46679902A005DA300000BC8F6FFC9D9FECFB2B096A7E7E84D377B960A009DA2 + 00000BE6C0C14B6D5BDD005BA75916D6F274D9510540972800C08291FC4F2E9E + 9C6EFB3FCBC26D00D3654715005DA200000BE6E8B19B0711E3BAC7BBFF59326E + 03989E28AAC6CE2A00E80205005820F147EA55575F331831AE93774B96582E6E + 03982E3BAB00E80A05005820FE489D5C6CFF3F6907004B266E03705BCBF4D859 + 0540572800C002397EE2B641C4B86CFF6759D905303DB1B3CA6D000074810200 + 2C88FE1FA8070723C665FB3FCBCACE96E93A7EE2D6410400CB4B010016842DAA + 93B3FD9F65F6F8A9C7DC06304587BD0E10800E50008005E18FD3C93D70DFC706 + 112C27B7014C4FECB0F2905500969D02002C80B837D5F6FFC99DBCDBD57F969B + 1D2ED365A71500CB4E01001680E47F63EEF1AE74969CDB00A6CB0E80C5F7F8A9 + 538308801A05006029C595D17806002C3BB7014CCF3CBE09C0EFB1C944510C80 + 760A00B0009EF707E044E20FE6DFF9EDDF1A8C60B9DDF981F74B12A7E4B9E79E + 1D44F3E3CE3BDE3F8818871D0000C32900C002882DBEB6F98E2725FFAE02D115 + B1E6FFF79F7D8722C0143CF2D04383687EC46EA63B3F6097C7B8FEF00F7E6F10 + 0150B36BD0B36A47A5AFB5289EA47E58DBD55CFA86FFA6D9B9FBB25E0C1BF657 + 7FF9172BDB535F73D9E583194AF187F26FBEEB579ABFFA8B8F0E66A01B9E7EEA + A9E6DEBFFCE8CAEF8779DCC6BE0822C9FE9DDFFE57CDE9D3A70733F3231E68BA + A3F717C795575FD3ECD9B367304B2E8AE4BFFA7FFE8BE611C572585C67CF3CDA + 3C76EFBFEB45AFB4B4B32D2DA49E11228165ADF43DC9FBD422A14F7D144F529F + DAEE4ADBD3BCE12DBFDAECDA7B432F86A9880755EDDBBF7F302278E51FF4EDEF + FD6E884491F1C42D568BB4C3CAEFFFF5FCFE872571E6C5BB9A7B7FF7077B5154 + 625FAEB433598B8240EA23F92F0B04A1ECE949492EABD2F724EF535300000000 + 983605809988041600000058720A00000000D0010A00000000D0010A00000000 + D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A00 + 000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0 + 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 + 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 + 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 + 00D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A + 00000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000 + D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A00 + 000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0 + 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 + 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 + 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 + 00D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A + 00000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000 + D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A00 + 000000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D0 + 010A00000000D0010A00000000D0010A00000000D0010A00000000D0010A0000 + 0000D0010A00000000D0010A00000000D0010A00000000D0010A00000000D001 + 0A00000000D0010A00000000D0010A00000000D0010A00000000D0010A000000 + 00D0010A00000000D0010A00000000D0010A00000000D0010A001B7776D08F32 + EEE7000000BA4C8EB5C5140066E1EC2BCF0C220000004A72A69950009885D32F + 3C308800000028C999664201000000003A4001000000003A400160FAE28114C5 + 43297C9B010000DAADCB992A79159B25339D4CDB024CF3F9718B1500006072B5 + BCAA2DBF92774D400160164E3F7DFF20020000A024679A090580CD896AD3B08A + 53FFD8CB2F7D79A507000060BDD59C69547E35EC38232800000000400728004C + 4FAA449555A9B3CD0BA73E378801000028F573A6B579D4EA389F67131400A6AB + 5CB07D8F7FE2D14104000040696DCE54CFABD8340580AD9516AB450B0000D04E + EE34030A009B376A81F68FBF72FAE32B3D000000ABCEBC78D7201A2FB762C314 + 0036A65C78311EB618CF36675F796610030000B0D6F07C6AFDF1619FA78502C0 + E4D2426B5B706971AE3D7EE6B4E70000000094CEBCF0C0204AEA39D5AA34DF76 + 9C160A00EDCAC5545B5CA33EB33A3EF3B20200000040E9CCD92F0FA2307E8EB5 + 6A9CCFD0A300305A2C9E510B283F9E3E9FE6FAF14B4F97552D000000FAB9D2FA + 1C6A751CF2B8A6FC3C150A009B9716596DB1AD2EC2974F7B0600000040693557 + 5ACD9FD64A73B5634C400160BD618B2A5F78B5CFB57DEDD9E6A94FDB01000000 + 50EAE74AEDB9D47A793ED6F67561D8B14E5200D89CB6059516E4EAF167BFF074 + 7376CDBD2D000000DD163952E44AABD6E7526BB5CD33060580C9950BAE5CA06D + C79BE69597EC02000000485673A43CA74AD2381D6B3BCE981400A62B5F98790B + 67BD0A10000020F3D28B1FEFFDCFD59CA9DE98120580E918B538FBC75E7E2116 + 37000000E1EC4B719174742ED57E9C0928006CDCB88B74F533CF3F75FF200200 + 00606D8E54CFA3D61A768C1114002693165ABEE0CAB9BC5F1B3FF5293B000000 + 00927E8EB43E77EA6BEB436D8E11140086CB17D5B085557E2EFFECEADCB35F7C + BA39EB39000000002BB951E44879CEB4AA9CCB8F95C6FD5CE72900D48D5A5CA9 + 4FADA676FC6C73FA8C5D00000000FDDC686DBEB43E87CA95C7DB3E17861DEB2C + 05808D2917535A8469BED6F7E3573C0810000020CB8D56F3A57A9F1F4FCA3163 + 500098BE7281E6E3B3CDB3A73E12930000009DD6CF8DD6E64B7DE598295100D8 + 9C618B341FAFCE7DEECF1400000000FAB9D1F0FCA93E6683140026972FBEA49C + 8BBEBDBD72DA6D0000004077F573A27ABEB4DA42D987DA1C635000182D5F5CC3 + 16D8A8CFA5F9B3CD8BCFDFB532030000D045FD9C6835475A2F9FAF1D4FC6FD1C + 3D0A00ED462DB2D4A796D48EE5AD695EFA9202000000D05DAB39512D678A1652 + 1F861D2B0D3BD6690A001B572EAA7231B6B7C71F5000000000BAAB9F13D5F3A5 + D516F23829C78C490160F36A8BB3365E9D7BF68B4F7B0E000000D049910B454E + 94E7486B5B681BB3090A001B932FC2A49C8BBE6CAF7C25F61C000000A08BD6DE + FFBF9A23AD6DA1EC436D8E3129008C275F64E542CBE76A9F4BF1DAB1E7000000 + 005DD4CF85D6E748EBC7A13697D43EC7100A00C30D5B44F9620B693CACAD56B7 + 1EFAC07FEEF5000000DDD2CF85D6E748C35B528E4BC38E759E02C0F4A505992F + CC5A7CB679E9D9F7AFCC00000074413F075ACD89FA6A713EC79428004C47DBE2 + 8CB9BCA215F1EAF8E5E7EEEEF5000000DDD0CF81EAF9D16A5C4AC7D92405808D + 4B0B305F886961E62DD4C75FFA84DB00000080EEE8E740EB73A3FA389F0F29CE + E7988002C0F8F2C5562EB834374E5BAD723DF1A9CF791D200000D00991FB440E + 54E645E3B75C3E571EA38502C068C31653BEE872697E747BE1C93FEEF5000000 + CBAD9FFBD4F3A27A2BB5CD27C38ED1A300303D6931A64597F7B5D6AF767DE913 + 1E040800002CBF7EEEB39A0BD55BC8FB7C9E4D5200D89CDA022DFB61ED15B701 + 0000004B6F75FBFF38DBFEC3A89E0D5000984CBEE8CAB8361EA7BDE236000000 + 60A9F5739E49EFF98F16DAC621F58C4101603C1B59546951E62D167CDEFAF36E + 0300000096D9EAF6FFF6BC686D9BD446BEA6731400A6A7B660C799F336000000 + 6079AD7DFA7FD9C2B8736C9202C0C6D516633E576B65756BB5EAF5EC63FFBAD7 + 0300002C977EAEB39AFBACCF89F271AD25B53926A00030B9DA62AB2DC234375E + 7BECAFFEB4D70300002C977EAE53CF83DA5BAE36176A730CA10030BE7117575A + 9CE9F3291E5EE97AF68BCF342F3DF31F7A310000C072881C27729D3CF7199E1B + 85FCD838C6FD5CE729004C476DA1A616F23E16775AE029EEB7673EFF47BD1E00 + 006039F4739CB579CFFABC28E47DD942EAD90405808DC917612D4E629C2FF0F4 + 997AFBDC7FB9AB397BE6F3BD18000060B1456E13394E99F7AC6F65CE944B9F09 + 65CC8414002633EE224B0B335F9CD1F22240C479EBCF3FFFC4EFF47A000080C5 + D6CF6D86E73F6BE390E2341E65DCCFD1A300303DB5055B6BE5825F3BFFE8DD6E + 03000000165F3FB7199EFFAC9F2F5B483D9BA400B071F962ACC5499A2B5B5AF0 + 6BDB738F3DED61800000C0428B9C26729B5ACED36FB51C295A2E9F2B63364001 + 6072E32EB6B440F3453A5E7BE2D36E0300000016573FA7A9E73BF516CAF128E3 + 7E8E010580E9AA2DDC5A4B15AFB20AD66F8FFDC5FDCD4BCF9FECC50000008B25 + 7299C8696AB94EBFE539D1B01652CF1428006C4EBE286B7192E6F2367CC13FFD + F0AFF57A000080C5D2CF65EA794EBFB5E542B97CAE8CD92005808D1967D1A545 + 5AB67CB1475C6F8FFEF9479A57BC12100000582091C3442E53E6376B5B2D372A + DB28E37C868202C0F4D4166B3E172D2DF072D1D7DBB35FB00B000000581CFD1C + A69EDFF4DBB0DC28B5A436C72628006C5E6D31E68B34C5E5B85CFCEBDB67FED3 + 1FD9050000002C84C85D228729F39AD556CB85428ACB71A936C7041400366ED8 + E22B176E5B2B4F84F5CD2E0000006011F473977A5ED36FA3F39F7E0BA9AF1976 + 8C211400A6235FA4B5384973A9A5C59F4E84F5ED33FFE98FED02000000E65AFF + EAFF1F4734A4E53950DE72F95C19B3490A005B2F2DDA72A1972740F4F5F6ECE7 + 7FBDD7030000CCA77ECE52CF67FAAD9603A5968FD9420A009B535BA069E1962D + A4B86DC147BFBE7DE64F3D0B000000984F2B57FF7B394B99C7ACB6613950B490 + 1FCB5BA936C7981400A667D842CC1770DEF2455FC66B9B5D000000C03C6ABFFA + DF96EBA4B86C6D861D63020A009B37EE424D8B3AB5B4F0D3C991B7F5F32BBB00 + 4E7FA217030000CC87C851EA57FF47E53AD1E72DC9E3D2B0638C410160BAD282 + CC17712D6E6BE5C9B1B63DF1E95FECF5000000F3A19FA3D4F397D556CB7DF216 + 86C54C8902C0D62B1771D96A2748B4F5C71EFDF38F342F3D7FB2170300006CAF + C84D224729F396D1794EAD85D4B3451400A6A3B650CB855CC66DAD7692ACB6C7 + EEFE995E0F0000B0BDFAB9493D6F596DB59C276FA12DCED5E6989002C0F40D5B + AC6931A7964E88F224696F4F7CFA73CD0B4FFD6E2F060000D81E9193446E52CB + 59DA5B9E03E52DA43E579B63131400A6A76DC1E60BBA8CDB5A7982AC6D9FFDB3 + 773567CF7EB917030000CC56E4229193D47295F5F9CCB016DAE25C6D8E0D5000 + D81AC3166D5AD4A99527C9E8F6DC634F37CF3EE6B5800000C0EC452E1239492D + 57696F79EE93B790FA5C6D8E4D520098AEB6859B2FEC326E6BE50993DA9995FE + D3EFFD1DAF05040000662A7290C845F2DCA4DE6A394EDE425B9CABCDB1410A00 + 5B67D8E24D8B3BB574829427CDF0F6857BFF69AF070000988D7E0E52CF4FDA5B + 9EF3E42DA43E579B630A1400A6AF6D01E70BBC8CA3E527465B5B5B613BF5970F + 78202000003013917B440E92E724C3770144CB739DD4425B9CABCDB1090A005B + 6BD8224E8B3C6FE589919F38F513EBB31FFAB5E695339FEFC50000005B23728E + C83DCA7CA4DFCA5CA5CC69F2716A21F5B9DA1C53B26BD0337D3B8A3EC9C7F967 + F216521C459AFC58DE9AE6F473A79BDDE77EAAD97FF0B695310000C0B43DFEF1 + 7FD87CE9139FEE4529D98F3E6F29F9CFE348E6539F5A688B73B53936490160EB + F413F4BE14AF26EEEB8F97C7CAB86CA11F7FF9739F6F2EBAE6C266F7B96FE84F + 0300004C496CFD7FF04FFF6D2F4A097E4AF2539C27FD1147F29EC629C1CF5B48 + 7DAE36C714B90560EBB42DE87CC197716AF9C992E2BC952758DC0AF0EB6E0500 + 0000A6AABFF53F5E415ECF43D6B7329FC95B688B73B539A6C00E80AD95AED487 + B557EDFBCAE3790BE55C391FFAB15B0100008069EB6FFDFF4C2F8A843FB548EE + CB3825FDA9A5E4BE6C21F5B9DA1C53A600B0F5F2443D37CE38FFDAB285B5E32F + 7FEE0BCD45D75CE05600000060D3FA5BFF7FBF1795497F99F8A73E25FE29CEE7 + F216F238579B634A1400B65E4AD64399B8E7F2B9F2781AE7F3B571D33CF1C087 + 9B4BAEBDA5D9B5FB9295310000C0A44EBFF0C9E6813F787B2FAA25FBA9A5043F + 8FA345129FFA9092FDD44AB539B68067006CBDB6055ECEA7B9D4F293271FE72D + 3FF1564FBA2FDDF74F9BB3AF7CB9170300004C267289C829D6E61D65FE51B6B6 + 3C26B55C6D2ED4E698223B0066235DA50FF915FB7C3E94C7F2CF9473790BABF1 + B38F7DA9D977E0C966EF8537AD8C010000C6F5CC677FBEF9EC9F7FA817D512FF + B2CF5B24F0A96F6BA5DA1C5B4401607652A21ECA783579EF1B3597E6F37EEDDC + 530F7EB2B9E8AB2F6F76EFFDDA95310000C0282F3CFD27CDA7DEF36BBDA896F0 + 0F4BFE532B13FE32C1CFE7F263E5E7D8020A00B39312F490C7A5DAB13CB9CF5B + A8F5FDF885273EDA5C70E59B3C0F0000001829EEFB7FE403FFB839FDDCF3BD51 + 24F329E91F27F98F04BE1C87E8CBC636510098AD94A487F5097BFBF1B2AFB5B0 + 363EFDDC4BCDCE9DF735E77DD55F6F76EC3867300F0000B056DCF77FEAAFFEE7 + E6C9073FDB1B45029F27FC79D25F2B0044529FFA94E09771299FAB1D670B2800 + CC5E9EACE7CA7148097D7E2C9FABCD87D5FED9C79E68CEB9E09166DFABFEFA60 + 0E000060AD273FFDBF368FDEF5915E14897C9EFCA73EB518D75A4AF8A395E390 + C7B9DA1C5B440160F6CAA43DEF73B563F95CAD25F97847F3F4230F37175EBEAB + D9B3FFD0600E0000A0EFF953FFB2F9CCCAFBFE23716F4BFADB92FF48E0F33825 + F429CEE79272CC8C28006C8F32594F7D1E27E55CDE9773A1FEB9273E794F73C9 + 6BBFAED975CED5FD690000A0F34E7FF98EE6813FFAB95E14097C9EF4E7897F1E + A7643F5A24F2A92F5B487D1836C78C28006C8F5AC29E94E3D04FE2D77F5D1A97 + C7EBFD738F7FD8430101008015F1D0BF876EFF878387FED512FD32E12FC7D122 + 894FAD1C873C669B29006C9F949C873C51CFE7437E2CA9CD8518B77DBEFF50C0 + 33CF4511E0360F050400800E8B87FE3DFA676F6B9E79F4B1DE2812F75400A825 + FFF97C6A91D4E77199F0A7712E9FAB1D678B29006CAF5AB21EDA92F8BC0FF95C + 6D3EE49F699A179E7AB679E5958F34E7BFFAAF29020000400745F2FFF97B7EAC + 79E2139FE98D52729F12FCB6B8D6F2643FB590F729CED5E698010580EDD596B4 + 87721C622E6FC9B0F924C53B9AE71E7BA2D977E0C966EF85370DE6000080AE88 + 27FE7FFEEEBB7A514AF0F316897D1ED75A4AEC532BE7421E873C669B28006CBF + 7A92BE763E94E3DCA8CFAF8F9F7AF093CDBE4B1E6BF65E786C650C00002CBFA7 + 1FF967CDC31FF88FBD284FFA53B25F8BD3B8AD95097F2DD1CFE76AC799110580 + F99012F4B6243EFA3851F271DE42792C698FA30870E1E53BBD1E1000003A205E + F7F7E9F7FD4E2F8AC4BD96EC9771D952825FB63816224E7D8A73B53966480160 + 3EB425E9218D877D26E49FAB7D4D583F1FAF07BCE8AB2F6B76EFFDDAC10C0000 + B06C5E78FA4F9A4FFCF12FF6A25AB29FB7349F92FEB69692FC94D4E77D8A431E + B3CD1400E6479EACB725F0B93896B7D2A8B9D5F889073ED85CFC359737BBF7BE + 6E300300002C8B179F794FF3F13FFCDF7A519EE8BF5C8CF316097E1E97097FB4 + DA5CB45C3E2E8FB10D1400E64B2D418F3E9F0FE5B8947F4DD987F5F1E3F7DFA1 + 080000004B2692FF07FEDD3FED45B5C4BE8CF37E584BC97C4AFA6B897E6D8E6D + A600305FDA92F490C6D1C709948F4B3197CFB77D26E9C78A000000B03CD626FF + D1F2ABFEE50E8048EC53DFD6220F492DC62125F7699E39A600307F8625EE695C + FB4CF4A925799C6BFF8C220000002CBEF5C97F9EE49771DED27C99F0972DE47D + 8A435BCC365300984FB504BD2D990F6DC7F2AFCD5B69ED9C220000002CAE7AF2 + 1FAD76D57FDC16897CEACB96CBC7E531B69902C07C2A93F4346E4BE043ED58DB + 6773F5CF28020000C0E2694FFE53C25F9B4F2D4FF8534B497E1EA796A4389F63 + 0E2900CCAF3C311F95D8979F4D2D579B4B6AF33B140100006081AC26FF91ACD7 + 12FCDA93FFF3643FB53CC94FE390CF873C2EB5CDB38D1400E65B9E98D712FAD4 + C7C9554BE26BDA3E579F5704000080F9F7DC53BFD77CE20F7FAE1795097E6A6D + C97F1ED75A4AF2230E29B14FF3495BCC1C5100987F79625E26E9691C7D9C64F5 + 247EBDFCEB52DFFEF55104D8F7AAC79ABD171D1BCC000000F3E2E987DFD97CFA + BDFFBF5E9427F7798BE43F12F888CB3EC5B5163942B488434AECD37CD2163367 + 140016439E9897C97B326A9C945F1F7D9CA479BFDE530F7E5211000000E64C24 + FF0FBEFF8F7B514AE6CB9692FFB62240AD455E90B7508E937C5C1E63CE28002C + 863229CF93F761DA8ED7FEBD3859F37EBD2802BC72E6CEE6FC57FFB566C78E73 + 06B30000C0AC9D7DE5CBCDE74FFE48F3E8873FD41BE5097FDE6AC97F6A699C92 + FED4221F487DAD85B2674128002C8E3C292FE37AC2BE3A5F3B5ECEC5384EE0BC + 5FEFB9C7BED4BCF2CA879B735EF5ADCDEEDDE70F660100805939FDC2279B2FFE + E5FFD29CBAF7E3BD519ED4E76DD2E43F7280612DC9E35CDB3C73440160B1E449 + 792D81AF49F3B5E3B57F233F71D3786D1F4580E7BEF8DEE6822BBFB5D9B5FB92 + DE1C0000300B91FC3FF8A73FD63CFDD0E77AA394C497C97EF465B25F8EA34F2D + FED62FFBBC853C0E6D31734C0160F1E4497B1E87729CA4F9DAF171FF8DB55E7E + FEA5E6D4C7FEA8B9F86B2EF386000000988178CDDFFDBFFFFFEAFD2DFE7C6F94 + 27F56D2D92F9DA38FAD422792FFBBC853C0E6D31734E016031E549FAB8097C9A + AF1DCFE7263B811FBFFF83CDBE577DD1C3010100600BC5C3FE3EF59EDFEC4579 + 423F4E8BA4BEEC538BBFFDCB3E6F218F435BCC025000585C79D25E26F5B5243F + A4F9DAF161C7727192C767564FF67838E099958703FE571E0E08000053140FFB + 7BF4E4FFD83CFAE13FEB8DCAC4BE767F7FDED2B1BC4F2DFE9E2FFBBC853C0E6D + 310B420160719589FAA87192E66BC7DB8EC5C91D73ED27F9F38F3DD13CF3E81F + 37175EF68666E739AF1ECC0200001BF5F2B31F6D3EFD9F7EA479FAA1CFF64691 + A4E7C97DDEE258590C4871DEA7167FD7977DDE421E873C664129002CB632511F + 354ED27CDBF1901F8BB876C2C7DCEAB195E702DCF79EE6FC2B7636E7EC3FB432 + 0700004CEED9C7FF55F3F17FFFB3BDBFB15FE88DF2A4BEEDAA7F3E57C6798BBF + DDCB3E6F218F431E8772CC825000587C65123F6A9CA4F9B6E3B9DA09DE3EF7A5 + 4F7CB4D9B9E72F9ADD171CF2AA40000098C08B2F7CA1F9D2C7FF51F3F0EDEFEE + 8D6A09FD3873799FB7F87BBDECF316F238E47128C72C100580E5B0D54580F278 + EDA45FFB4BE2CB8F7EA179EE8BFFB1B9E0F2AB9B5D7BAE1ACC0300006D4E3FF7 + C1E6A1FFFC53CD939FFA4C6F9427F2655C9B2BE3B2C5DFEB659FB790C7218F43 + 3966C128002C8F51497F5B923F2AF92F0DFB851056E75E7EFEC5E6D47DFF79E5 + 2D01AFEC39D4ECD9E301810000507AFEB9679BE73FFF7F349FFC93FFEFE0157F + 91A0D712FBDA5C8AF3BED6E2EFF468799C5AC8E390C7A11CB380140096CBAC8A + 0061D82F8790E6CEAEBC25E095E7FEB439EFE0D77A4020000064E2417F5FBCEB + 7F6ABEF0D1BB7BA35A429FB77CAEFC5CF46D2DFE368F96C7A9853C0E791CCA31 + 0B4A0160F96CB40810CA63E9441FF6356DBF28D6C62F3CF5ECCA0302CFFBAAE7 + 9A333BAFB71B0000804E8BABFE2F9C7A57F389FFF00BBDBF959FEECD94097EDE + F2F914E77D6A691C7F8BA7B914475FB690C7218F4339668129002CA7CD140146 + 69FBDAB65F1A29EEF74F7EFA6376030000D069E9AAFFE74FFE97DE284FDCF37E + 549C5A398E167F7BE771AD853C0E791CCA310B6E338920F36D58D21F711AA7B8 + 6C3BB3BEAD4501298FD3B88C6BFDCEE68AA33737FB5EF30F9A7DFBCFEB8D0100 + 60B9F5EFF5FFE7CD67EFBCBD374A097A5B729F8F6BC7525C6B91B8A7BED6421E + 873C0EE5982510C918CB2B12F8DCA871293F5EFB05D0F64BA2ECC3FAB9671E79 + A879FEB13F6AF65DB2B7D9B3EFFAC12C00002C9FE79FF8B7CD673FF8D3CD130F + 3CD01BA5443D25F629A1CFC7F95CAD2F5BFC9D5DF6B516F238E47128C72C0905 + 80E5B7D922C0B8F25F26791F22AE8F5F7EFEA5E6894F7CB817DCD99C7BE1D56E + 0B000060A9C476FFC7FEF21F350FDFF9EEDEDFBE2FF46652729F5A24EBB571AD + 1FD6E2EFEBD4B7B590C7218F433966894C2BF963BE0D4BFA234EE33C8E6DFAA9 + 4FF3FDADFB6BE3D456B7F6AF1D8FEAD7C6D7DC726BB3F7D2EF6BF69EAB100000 + C0E27AF1852F342F3EF6AF9A07DFFF27BD514AD26B097D5BB29F7FA6368E16C9 + 7A1EA771487D9A0F791CF2389463964C4AF6587EE5CF3A1FA738FAD4428A2339 + 2FE394BCA7384FE8CBF1B0A4BFFCBA9DCDBE031736977DF377363BCFFBBB9E0F + 0000C04289FBFC5F79F6DF368F7EE4DF34CF3F1E4FF74F097A6AB5047FD85C19 + 47925EC6D1977148713E4EF23894639650246F7447F9F3CEC729CEFB5A8B24BD + EC87B54992FFB5E37D975CD85CF1E6FFBED9F7AA6FEF8D010060BE3DFFA5DF6F + 3EFBA17FD93CFF449EF8E7C97B39AEC5E5E76B2D92F5B2AFB550F6218F433966 + 49450247B7943FF37C9CE2BC6F6B91A4A7BE8CF3D696E40F4FFEF3F105575FD6 + 5C76F8FB9ABD179CE88D010060BEBCF8CC7B9B2F9EFC97CD930F7DBE378A847C + 58D29F8F477D2E6F91A49771F46D2D947DC8E3508E596291B4D14DF9CFBE5C07 + 314E73791C0979EAD37C8AFBC9FADA386F79823F7EF29F3785000000E64924FE + 8F9EFC57CD330F3DDA1BA5E43C6F79423F2CD91F96F8478B24BDEC531C529FE6 + 431E27F9B83C4607A4C48E6E2A7FFEF938E234AEC5A945725EF6659C5A2DB11F + 2FF9CF9B42000000DB6974E29FDAB0A47FD85CB448D0CB719A4B716AA12D0E79 + 1CCA311D11491ADD56AE817C9CE2BC6F6B919CB7F56D6DF2E43F6FF18C80CBDE + F8773D2C1000802DF79587FB7DF8DF16F7F88F6AE31401CA16097ADEA778580B + 651FF23894633A24123428D7413E4E71DEE72D44429EC6659C5A39CEDB64897F + D9A21070F00D3736FB5EFDBD5E1F0800C054C5EBFC9EFFC26F35A7EEFDE08489 + 7FDEC649FAA345729EC7699CC7218D530B651FF23894633A26923208E55AA88D + D35C2D4E2D92F232CEFB8DB4B240D0F66FED68AE78D34DCD79979F68F6EE3FDA + 1B0300C0C6BCF8DC9DCDB39F7B6FF3D93FFB406F1489734ACCB7AAA5FF46DE97 + 716AA12D4E468DE9A048A420A9AD877C2EC5793FACF593F2D5388D6B715B6BDB + 1D50FBDAD5B90BAE7E4DF3EA6FF88E66E7BEA3760500003096B8DAFFCAF37736 + 5FF8CBDF6B9EF9CA13FDF3A47C9A2DFF37531C7D19B7B550F6218F93DA1C1D14 + 091394CA75918F539CF7659C5A4ACA6B716AE578DCD6F675F97FAB3F77C59B8E + D915000040ABD5ABFD77F446B5A43CCD0D6BE37E2E5AFED9FCBF935A398E16CA + 38EF431E87724CC745920435E5DAA88DD35CDEB7B59494E7F1DA44BD3E6E6B6D + 9FCBE7D7FE37F65D724173E9D71F6BCE7BCDB737BBCF796D6F0E0080AE7AF9A5 + 4F35CF7EFEF79BC7FEEA8EE6F9279EE9CD94C978F4655C6B1B391E73E57F6354 + 0B799FE264D4185612236853AE8FB671DE97716A29112FC7B53E6FB5B971E7CB + 388D77ACDC2270F0EB8E35E75E7242310000A02322E97FE189F736A73E7EC760 + 8B7F24C92901AFF5655CB6B663E57CDBBF9BCFD75A28E3BC4F468D6145244430 + 4AB94EF2718A6BFDA85626E6699CF7E57CDBB89CAF7DBE3CD69FBBF8AACB9A57 + 5D7B63B3E7C26F729B0000C09289EDFDA79FFE68F3A5073ED83CF970BCB73F92 + E368B5C43CF5C3E2B6B9619FC9FB5A1C529FE6A385B63EE47128C7B046244030 + 8E72ADB48DF3BE8CDB5A9994D7FAD4F271792C9FAB7D6E58DF6F719BC0255F77 + A839EFD5479B66CF3779802000C0828907F935A73FDA3CFB853B9B273E7ECF60 + 7B7F24C6A9950979AD1F168F7BACFC4C3E3FAC8532CEFB64D418D689A407C655 + 5B2FF95C8A6B7D6A211F47CB93F05A9CF7C3E27C5CFBCCB03E6FAB73175FF59A + E6C2AF3ED49C7BD13735CDDE6F5410000098332B09FF8B7FD1BCF0D4479BA73F + 734FF3E4C3696B7FB45AC29D27E76DFDB0381FD73E53EB532BC7D1426D2EE4C7 + 933C4E6A73B04E243930A972DDB48DF3BE8CF3B9E149F8FA643DFACDCC453F6E + BCB6A582C03917BCB6D973DE37797E0000C08CC57DFCA79FFD68F3D2339FAA24 + FC65CB13EE5171DEB7CDD5E66B7D19E77321F5693E9471DE27A3C630542435B0 + 11B5B553CEA5C439C9C7291ED56A89F9247D8ADBC6A3E251AD695E7DC3A166FF + AB5ED7ECD9F7BA66D739AF6E76EFFBC69579000036E7E5E7FFA239F3D2179AD3 + CF7FB279EE4B9F6CBE70D73D832391F88ED3DA12F2326E1BE77DDB67F2CF95F1 + A816F23894E3508E436D0E86EA2730B071E51A6A1B0FEBC769E326EEA3C6B5BE + 8C87CD952DAC9F8B9D027B0FBEA639FFABBEA9D9B1EBBC66CFB9AF6BCEECF82A + B710000014620BFFAEB35F6C4EBFF0C9E6EC99679B2F7FF1A3CD8BA73E3FB8B2 + 1F52429C5A28E7CA564BC26B497AD9A778D438EFCBF9715AC8E390CFE7468D61 + 6C298181CDA8ADA3722E8D6B7D6A211FB7B53231AF25F2653FEA586AE5E743ED + 73211DAF1D2BE3D57EA53870E9AB7BBFBB77AC1408C24A91206E27D8D9FFCCE9 + B3AF6DF6ED3F6F250600583429A95FF1CAD9E6F44B9F5A49EE4324F8CD8EB3CD + 8B8F7DA148F2CBBE8CF3B948B643792CCDE7C9782D314F73653FEEB1321EA785 + 32AEF549390EB539185B4A4C601ACAF5545B5F3197CFE7E35A3CAA95C979DB38 + 9F6F8B6BE3BCC5B190FADA67A285321ED627E538D4E60000E6D938896B1A0FEB + CBB86C2192F0D4D73E13AD3CD696C4A7B8EDF8B0B9B61686C5799F94E3509B83 + 89492E98B67192D834CEE723CEE7CB389F1B95A40F9B2B8F8F1A4FD2426D9CFA + 1487729C9473B5CF0000CCB37113DA7C3E1FE77D39BF915626ECC3C6A33E5BB6 + 381ECAF9D016877C3E376A0C9B22B960AB4C92DCE6F311E7F3B53892F490E652 + 1B96BCD78EB5CD8561FF56D9C2B0B930AACF8D3B0700304F6AC9EAB0B9617D19 + 0F9B6B6B2939AF25F193CC85DAB1908EE7736D71C8E773E538D4E6605324156C + B57192D934CEE7232EE7D35C6D3C4E1B27B99FA4001046CD85723E298FE76A73 + B951C70100B6DAA8047558529B1F8BB89C4F73B571DB5CD98625EFA98DF399B6 + 166AE3D4A73894C793721C6A733015920866A55C6BC392DEFC58C4B5719A2BC7 + 2981CFE76B2D4FF4535FFB5CAD85DA7CB4302CCEFB509BCBB5CD0300CCABB604 + B696049773D10F8BCB166AF3B59627FBA9AF7D2E6F217DBE9C2FC7A136CEFB5C + 3957FB0C4C95E48259AAADB76173F9B1722EFA6171D9C2B8C581512D4C3237AC + 0F6D719B713E0300300BE324ADF9676AF1B03E6F619CB9495BA825F9790BC3E2 + BC0FB5B964DC39983A8904DBA1B6EE86CDE5C7CAB9E8DBE66AE33437AA18106A + F3D1C2B0B9D016877C3E698B010016592D290E292EE7F2F961F1B0B9D4426D3E + 5A684BFA43DB38B4F5A136978C3B075B46A2C176AAADBF6173E5B118E773F978 + 543CEDB9304E1CF2F9DCA83100C0A22813DBB6713E1F713E3F6E3CEDB9D01687 + DA38C9E364DC39D872120CE6416D1D8E9AABC5C3FA71E3DA5CC88F9573A18CCB + 3EC5A13C9E1B770E00601E4D9A00E7C7222EE7F37E585C9B0BF9B1722E0C8B87 + F5A13697ABCDB77D16664262C13C695B8FC392E2F2588CF3B961E369C665DF76 + 2CD4E69271E70000E6D1B8496F9ACB8F9573D1D7E6523FED388C1A87342EE743 + 6D2EB4CDC34C492C98476DEB7254725C8BCBB9B671AD6F8BCB7ED8B1BC0FB5B9 + A49CAB7D06006011B425CDB934971F2BE76AFDB8C76AC7539FE2501BE77D688B + 93DA5C689B876D21C1609EB5ADCF71E66BF1B0B95A9FE2908F47F521E2729CF7 + C9A83100C0A22B93E0B6713E1F71391ED5A738E4E3517D183617F23837E93C6C + 2BC9068BA26DAD8E9A2F8FD7E6C7991BD587713E136A5F5333EC1800C03C1B96 + 000F4BACD3B8AD0FA33E53F661DCB9D0369F4C3A0F734382C1A2695BB3E3CC97 + 9F49E371E6A73117F23819770E006091D412E25173B5785A7361D47C288F2593 + CEC3DC9164B0C8DAD6EFB8F36DE3CDCCB7C561D8B1DCB06300008B6458723C2C + E96E3B96E2B6CF4F3A9F94E364D279986B120D96C14693E9FC58ED73696E9263 + F978D8D785DAF1716CF4EB0000A66DA38970FE75B57F63D8F1341EF675C38E85 + DAF164A3C760EE49245836C3D6F424C76A9FCDE7367B3CA9CD01002CB351C979 + 92CF6DF678A87D26D9E8315828920F96D9B0F53D6AED97C7DB3EBFD1CF85B6CF + 02002CBB7112F6A49CDFECE79261C7477D2D2C2409085D316AAD6FE4F8B0AF99 + F4F36D36F2350000DB6923C973ED6B264DD047FD77377B1C169EE4822E1A67DD + 6FE633D3FAF7010096D9380977DB6736F3B539493F9DB26BD04397CD3A6197FC + 0300F48D4AC02749D025FC30820200AC376E822E910700D89C8D26E4E37E9D84 + 1F321218186DD2F3C4790500301D9326F0127E1842A2021BB39973C7790700D0 + B799845DB20F139288C07439A70000A64BA20F53225981D972CE0100AC25C107 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1777,8 +1777,8 @@ object AboutForm: TAboutForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000060DB35CDFF1FEBD97F311E8C0D150000000049454E44AE4260 - 82} + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000060DB35CDFF1F71B080365A1F75440000000049454E44AE426082} FileName = 'C:\YandexDisk\Development\Delphi\AErender Launcher\icons\png\ps\' + 'icon_512@2x.png' diff --git a/src/AboutUnit.pas b/src/AboutUnit.pas index fb5a3d9..acb3316 100644 --- a/src/AboutUnit.pas +++ b/src/AboutUnit.pas @@ -46,6 +46,7 @@ interface FMX.Effects, AErenderLauncher.IO, + AErenderLauncher.Types, {$IFDEF MSWINDOWS} FMX.Platform.Win, Winapi.ShellAPI, Winapi.Windows; @@ -120,12 +121,12 @@ procedure TAboutForm.FormShow(Sender: TObject); if MainUnit.FFMPEG then begin FFmpegLabel.FontColor := $FF1E90FF; - FFmpegLabel.Text := Language[LANG].AboutForm.FFMPEG + MainUnit.ffmpegPath; + FFmpegLabel.Text := Language[Settings.Language].AboutForm.FFMPEG + MainUnit.ffmpegPath; end else begin FFmpegLabel.FontColor := $FFDDDDDD; - FFmpegLabel.Text := Language[LANG].AboutForm.FFMPEGNotFound; + FFmpegLabel.Text := Language[Settings.Language].AboutForm.FFMPEGNotFound; end; end; diff --git a/src/HelpUnit.pas b/src/HelpUnit.pas index 0683967..91ca972 100644 --- a/src/HelpUnit.pas +++ b/src/HelpUnit.pas @@ -47,6 +47,8 @@ interface FMX.Memo, FMX.WebBrowser, + AErenderLauncher.Types, + {$IFDEF MSWINDOWS} FMX.Platform.Win, Winapi.Windows, Winapi.TlHelp32; {$ENDIF MSWINDOWS} diff --git a/src/ImportUnit.fmx b/src/ImportUnit.fmx index 9ff66b1..02f758b 100644 --- a/src/ImportUnit.fmx +++ b/src/ImportUnit.fmx @@ -197,7 +197,7 @@ object ImportForm: TImportForm Size.Height = 16.000000000000000000 Size.PlatformDefault = False Text = 'Name: ' - TabOrder = 5 + TabOrder = 6 end object compResolution: TLabel Align = Top diff --git a/src/ImportUnit.pas b/src/ImportUnit.pas index efefb66..747e7bb 100644 --- a/src/ImportUnit.pas +++ b/src/ImportUnit.pas @@ -68,6 +68,7 @@ interface AErenderLauncher.Rendering, AErenderLauncher.Math, + AErenderLauncher.Types, {$IFDEF MSWINDOWS}Fmx.Platform.Win, WinApi.Windows;{$ENDIF MSWINDOWS} {$IFDEF MACOS}MacApi.Foundation;{$ENDIF MACOS} @@ -316,18 +317,18 @@ procedure TImportForm.compListBoxChange(Sender: TObject); begin case FormSender of FS_JSON: begin - compName.Text := Language[LANG].ImportForm.Name + ': ' + Project.A[compListBox.ItemIndex].P['Name'].Value; - compResolution.Text := Language[LANG].ImportForm.Resolution + ': ' + Project.A[compListBox.ItemIndex].P['FootageDimensions'].A[0].Value + 'x' + Project.A[compListBox.ItemIndex].P['FootageDimensions'].A[1].Value; - compFramerate.Text := Language[LANG].ImportForm.Framerate + ': ' + Project.A[compListBox.ItemIndex].P['FootageFramerate'].Value; - compRangeIn.Text := Language[LANG].ImportForm.RangeStart + ': ' + Project.A[compListBox.ItemIndex].P['Frames'].A[0].Value; - compRangeOut.Text := Language[LANG].ImportForm.RangeEnd + ': ' + Project.A[compListBox.ItemIndex].P['Frames'].A[1].Value; + compName.Text := Language[Settings.Language].ImportForm.Name + ': ' + Project.A[compListBox.ItemIndex].P['Name'].Value; + compResolution.Text := Language[Settings.Language].ImportForm.Resolution + ': ' + Project.A[compListBox.ItemIndex].P['FootageDimensions'].A[0].Value + 'x' + Project.A[compListBox.ItemIndex].P['FootageDimensions'].A[1].Value; + compFramerate.Text := Language[Settings.Language].ImportForm.Framerate + ': ' + Project.A[compListBox.ItemIndex].P['FootageFramerate'].Value; + compRangeIn.Text := Language[Settings.Language].ImportForm.RangeStart + ': ' + Project.A[compListBox.ItemIndex].P['Frames'].A[0].Value; + compRangeOut.Text := Language[Settings.Language].ImportForm.RangeEnd + ': ' + Project.A[compListBox.ItemIndex].P['Frames'].A[1].Value; end; FS_XML: begin - compName.Text := Language[LANG].ImportForm.Name + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['name'].Text; - compResolution.Text := Language[LANG].ImportForm.Resolution + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['resolution'].Text; - compFramerate.Text := Language[LANG].ImportForm.Framerate + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['framerate'].Text; - compRangeIn.Text := Language[LANG].ImportForm.RangeStart + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['rangeStart'].Text; - compRangeOut.Text := Language[LANG].ImportForm.RangeEnd + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['rangeEnd'].Text; + compName.Text := Language[Settings.Language].ImportForm.Name + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['name'].Text; + compResolution.Text := Language[Settings.Language].ImportForm.Resolution + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['resolution'].Text; + compFramerate.Text := Language[Settings.Language].ImportForm.Framerate + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['framerate'].Text; + compRangeIn.Text := Language[Settings.Language].ImportForm.RangeStart + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['rangeStart'].Text; + compRangeOut.Text := Language[Settings.Language].ImportForm.RangeEnd + ': ' + RootNode.ChildNodes['compositions'].ChildNodes[compListBox.ItemIndex].ChildNodes['rangeEnd'].Text; end; end; end; @@ -404,7 +405,7 @@ procedure TImportForm.FormShow(Sender: TObject); compListBox.Items.Add(RootNode.ChildNodes['compositions'].ChildNodes[i].ChildNodes['name'].Text); except on Exception do begin - TDialogServiceSync.MessageDialog(Language[LANG].Errors.IncompatibleFile, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); + TDialogServiceSync.MessageDialog(Language[Settings.Language].Errors.IncompatibleFile, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); ImportForm.Close; end; end; diff --git a/src/MainUnit.fmx b/src/MainUnit.fmx index e44feac..7f122ff 100644 --- a/src/MainUnit.fmx +++ b/src/MainUnit.fmx @@ -18812,8 +18812,8 @@ object MainForm: TMainForm ItemHeight = 24.000000000000000000 OnDragChange = TasksTreeViewDragChange OnKeyDown = TasksTreeViewKeyDown - Viewport.Width = 1280.000000000000000000 - Viewport.Height = 537.000000000000000000 + Viewport.Width = 1282.000000000000000000 + Viewport.Height = 538.000000000000000000 object TasksIsEmpty: TLayout Align = Client Size.Width = 1280.000000000000000000 @@ -19579,8 +19579,8 @@ object MainForm: TMainForm RowCount = 1 Options = [Editing, RowLines, RowSelect, Header] OnEditingDone = compGridEditingDone - Viewport.Width = 299.000000000000000000 - Viewport.Height = 206.000000000000000000 + Viewport.Width = 303.000000000000000000 + Viewport.Height = 231.000000000000000000 object StringColumn1: TStringColumn Header = 'Compositions list' end @@ -19734,8 +19734,8 @@ object MainForm: TMainForm Visible = False RowCount = 2 Options = [ColLines, RowLines, AutoDisplacement] - Viewport.Width = 289.000000000000000000 - Viewport.Height = 187.000000000000000000 + Viewport.Width = 293.000000000000000000 + Viewport.Height = 191.000000000000000000 object StringColumn2: TStringColumn Header = 'In' Size.Width = 145.000000000000000000 @@ -20188,8 +20188,8 @@ object MainForm: TMainForm RowCount = 1 Options = [Editing, AlwaysShowEditor, ColumnResize, ColLines, RowLines, RowSelect, Tabs, Header, CancelEditingByDefault, AutoDisplacement] OnEditingDone = TaskEditorCompGridEditingDone - Viewport.Width = 628.000000000000000000 - Viewport.Height = 289.000000000000000000 + Viewport.Width = 632.000000000000000000 + Viewport.Height = 314.000000000000000000 object CompNumCol: TIntegerColumn Header = '#' ReadOnly = True diff --git a/src/MainUnit.pas b/src/MainUnit.pas index 6dc8459..591ac46 100644 --- a/src/MainUnit.pas +++ b/src/MainUnit.pas @@ -431,39 +431,37 @@ TMainForm = class(TForm) function GetPlatformMemorySize: Int64; function GetFFMPEGPath: WideString; function KillProcess(ProcessName: String): Integer; - procedure InitOutputModules; - procedure InitRenderSettings; - procedure InitConfiguration(Path: String); - procedure LoadConfiguration(Path: String); - procedure LoadLegacyConfiguration(Path: String); - procedure SaveConfiguration(Path: String); +// procedure InitOutputModules; +// procedure InitConfiguration(Path: String); +// procedure LoadConfiguration(Path: String); +// procedure LoadLegacyConfiguration(Path: String); +// procedure SaveConfiguration(Path: String); procedure ChangeLanguage(LanguageCode: Integer); procedure InitLanguage(PATH: String); const APPVERSION = 'v0.8.9-beta'; AERL_REPO_RELEASES = 'https://api.github.com/repos/lilystilson/aerender-launcher/releases'; - PLATFORMPATHSEPARATOR = {$IFDEF MSWINDOWS}'\'{$ENDIF MSWINDOWS} - {$IFDEF MACOS}'/'{$ENDIF MACOS}; AWAIT_TIMEOUT = 10000; //MAX_SIMULTANEOUS_THREADS = 8; var MainForm: TMainForm; (* Main Form Declaration *) - APPFOLDER, VER, AERPATH, DEFPRGPATH, DEFOUTPATH, - ERR, gitResponse, gitVersion, gitDownload, ffmpegPath, - AERH, tempSavePath, DelTempFiles: String; (* Required variables for configuration file *) +// APPFOLDER, VER, AERPATH, DEFPRGPATH, DEFOUTPATH, +// ERR, +// AERH, tempSavePath, DelTempFiles: String; (* Required variables for configuration file *) + gitResponse, gitVersion, gitDownload, ffmpegPath: String; gitRelease: TJsonValue; (* GitHub API's returning JSON file *) UpdateAvailable: Boolean = False; (* Represents app updates availability *) FFMPEG: Boolean = False; (* Represents FFMPEG availability *) AEParser: String = ''; RenderWindowSender: TButton; (* Who opened Rendering window? *) - LANG, STYLE, ONRENDERSTART: Integer; (* Language, Theme and OnRenderStart values *) - LogFiles: TArray; (* All the aerender log files here *) - OutputModules: TArray; (* All the After Effects output modules here *) - RenderSettings: TArray; - OMCount: Cardinal; +// Settings.Language, STYLE, ONRENDERSTART: Integer; (* Language, Theme and OnRenderStart values *) +// LogFiles: TArray; (* All the aerender log files here *) +// Settings.OutputModules: TArray; (* All the After Effects output modules here *) +// RenderSettings: TArray; +// OMCount: Cardinal; //TempOutputModule: OutputModule; (* Temporary Output Module used from import *) //TMathParser: TExpressionParser; (* Mathematical parser for frames calculation *) @@ -501,10 +499,6 @@ implementation {$R *.fmx} - - - - {$REGION ' Routines '} /// @@ -609,7 +603,7 @@ function KillProcess(ProcessName: String): Integer; procedure InitLanguage(PATH: String); begin - //LANG := 1; + //Settings.Language := 1; var ResourceEN: TResourceStream := TResourceStream.Create(HInstance, 'Language_EN', RT_RCDATA); var ResourceRU: TResourceStream := TResourceStream.Create(HInstance, 'Language_RU', RT_RCDATA); Language := [ @@ -617,334 +611,301 @@ procedure InitLanguage(PATH: String); LauncherText.InitFromResourceStream(ResourceRU) ]; - ChangeLanguage(LANG); -end; - -procedure InitOutputModules; -begin - SetLength (OutputModules, 10); - - OutputModules[0].Module := 'Lossless'; - OutputModules[0].Mask := '[compName].[fileExtension]'; - OutputModules[0].Imported := False; - - OutputModules[1].Module := 'AIFF 48kHz'; - OutputModules[1].Mask := '[compName].[fileExtension]'; - OutputModules[1].Imported := False; - - OutputModules[2].Module := 'Alpha Only'; - OutputModules[2].Mask := '[compName].[fileExtension]'; - OutputModules[2].Imported := False; - - OutputModules[3].Module := 'AVI DV NTSC 48kHz'; - OutputModules[3].Mask := '[compName].[fileExtension]'; - OutputModules[3].Imported := False; - - OutputModules[4].Module := 'AVI DV PAL 48kHz'; - OutputModules[4].Mask := '[compName].[fileExtension]'; - OutputModules[4].Imported := False; - - OutputModules[5].Module := 'Lossless with Alpha'; - OutputModules[5].Mask := '[compName].[fileExtension]'; - OutputModules[5].Imported := False; - - OutputModules[6].Module := 'Multi-Machine Sequence'; - OutputModules[6].Mask := '[compName]_[#####].[fileExtension]'; - OutputModules[6].Imported := False; - - OutputModules[7].Module := 'Photoshop'; - OutputModules[7].Mask := '[compName]_[#####].[fileExtension]'; - OutputModules[7].Imported := False; - - OutputModules[8].Module := 'Save Current Preview'; - OutputModules[8].Mask := '[compName].[fileExtension]'; - OutputModules[8].Imported := False; - - OutputModules[9].Module := 'TIFF Sequence with Alpha'; - OutputModules[9].Mask := '[compName]_[#####].[fileExtension]'; - OutputModules[9].Imported := False; + ChangeLanguage(Settings.Language); end; -procedure InitRenderSettings; -begin - SetLength (RenderSettings, 5); - - RenderSettings[0].Setting := 'Current Settings'; - RenderSettings[0].Imported := False; - - RenderSettings[1].Setting := 'Best Settings'; - RenderSettings[1].Imported := False; - - RenderSettings[2].Setting := 'DV Settings'; - RenderSettings[2].Imported := False; - - RenderSettings[3].Setting := 'Draft Settings'; - RenderSettings[3].Imported := False; - - RenderSettings[4].Setting := 'Multi-Machine Settings'; - RenderSettings[4].Imported := False; - - //RenderSettings[4].Setting := 'Custom'; - //RenderSettings[4].Imported := False; -end; - -procedure InitConfiguration(Path: String); -var - Config: IXMLDocument; - RootNode: IXMLNode; - ChildNode: IXMLNode; -begin - //InitLanguage; - InitOutputModules; - InitRenderSettings; - - Config := TXMLDocument.Create(nil); - Config.Active := True; - Config.Encoding := 'utf-8'; - Config.Options := [doNodeAutoIndent]; - - RootNode := Config.AddChild('launcherconfig'); - - RootNode.AddChild('lang').Text := '0'; - RootNode.AddChild('style').Text := '0'; - RootNode.AddChild('aerender').Text := ''; - RootNode.AddChild('onRenderStart').Text := '0'; - RootNode.AddChild('defprgpath').Text := ''; - RootNode.AddChild('defoutpath').Text := ''; - RootNode.AddChild('handle').Text := 'True'; - RootNode.AddChild('delTempFiles').Text := 'True'; - - RootNode.AddChild('projectPath').Text := ''; - RootNode.AddChild('outputPath').Text := ''; - RootNode.AddChild('tempSavePath').Text := ''; - - RootNode.AddChild('comp').Text := ''; - RootNode.AddChild('startFrame').Text := ''; - RootNode.AddChild('endFrame').Text := ''; - - RootNode.AddChild('missingFiles').Text := 'False'; - RootNode.AddChild('sound').Text := 'False'; - RootNode.AddChild('thread').Text := 'False'; - RootNode.AddChild('prop').Text := ''; - RootNode.ChildNodes['prop'].Attributes['enabled'] := 'False'; - - RootNode.AddChild('memoryLimit').Text := '100'; - RootNode.AddChild('cacheLimit').Text := '100'; - - ChildNode := RootNode.AddChild('outputModule'); - ChildNode.Attributes['selected'] := '0'; - - for var i := 0 to High(OutputModules) do begin - var ModuleNode: IXMLNode := RootNode.ChildNodes['outputModule'].AddChild('module'); - ModuleNode.AddChild('moduleName').Text := OutputModules[i].Module; - ModuleNode.Attributes['imported'] := 'False'; - ModuleNode.AddChild('filemask').Text := OutputModules[i].Mask; - end; - - MainForm.outputModuleBox.ItemIndex := 0; - - ChildNode := RootNode.AddChild('renderSettings'); - ChildNode.Attributes['selected'] := '0'; - - for var i := 0 to High(RenderSettings) do begin - var SettingNode: IXMLNode := RootNode.ChildNodes['renderSettings'].AddChild('setting'); - SettingNode.Text := RenderSettings[i].Setting; - SettingNode.Attributes['imported'] := 'False'; - end; - - MainForm.renderSettingsEdit.Text := 'Best Settings'; - - ChildNode := RootNode.AddChild('recentProjects'); - for var i := 0 to 9 do - ChildNode.AddChild('project').Text := '(empty)'; - - Config.SaveToFile(Path); -end; - -procedure LoadLegacyConfiguration(Path: String); -var - Config: IXMLDocument; - RootNode: IXMLNode; -begin - Config := TXMLDocument.Create(nil); - Config.LoadFromFile(Path); - Config.Active := True; - RootNode := Config.DocumentElement; - - LANG := 0; - STYLE := RootNode.ChildNodes['style'].Text.ToInteger(); - AErenderPath := RootNode.ChildNodes['aerender'].Text; - ONRENDERSTART := RootNode.ChildNodes['onRenderStart'].Text.ToInteger(); - DEFPRGPATH := RootNode.ChildNodes['defprgpath'].Text; - DEFOUTPATH := RootNode.ChildNodes['defoutpath'].Text; - AERH := RootNode.ChildNodes['handle'].Text; - DelTempFiles := RootNode.ChildNodes['delTempFiles'].Text; - - MainForm.projectPath.Text := RootNode.ChildNodes['projectPath'].Text; - MainForm.outputPath.Text := RootNode.ChildNodes['outputPath'].Text; - tempSavePath := RootNode.ChildNodes['tempSavePath'].Text; - - MainForm.compName.Text := RootNode.ChildNodes['comp'].Text; - MainForm.inFrame.Text := RootNode.ChildNodes['startFrame'].Text; - MainForm.outFrame.Text := RootNode.ChildNodes['endFrame'].Text; - - MainForm.missingFilesCheckbox.IsChecked := RootNode.ChildNodes['missingFiles'].Text.ToBoolean(); - MainForm.soundCheckbox.IsChecked := RootNode.ChildNodes['sound'].Text.ToBoolean(); - MainForm.threadedRender.IsChecked := RootNode.ChildNodes['thread'].Text.ToBoolean(); - MainForm.customCheckbox.IsChecked := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); - MainForm.customProp.Enabled := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); - MainForm.customProp.Text := RootNode.ChildNodes['prop'].Text; - - MainForm.memUsageTrackBar.Value := RootNode.ChildNodes['memoryLimit'].Text.ToSingle(); - MainForm.cacheUsageTrackBar.Value := RootNode.ChildNodes['cacheLimit'].Text.ToSingle(); - - //MainUnit.OMCount := RootNode.ChildNodes['outputModule'].ChildNodes.Count; - SetLength (OutputModules, RootNode.ChildNodes['outputModule'].ChildNodes.Count); - for var i := 0 to High(OutputModules) do - begin - OutputModules[i].Module := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['moduleName'].Text; - OutputModules[i].Mask := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['filemask'].Text; - OutputModules[i].Imported := False; - end; - - InitRenderSettings; - - MainForm.outputModuleBox.ItemIndex := StrToInt(RootNode.ChildNodes['outputModule'].Attributes['selected']); - MainForm.renderSettingsEdit.Text := RootNode.ChildNodes['renderSettings'].ChildNodes[StrToInt(RootNode.ChildNodes['renderSettings'].Attributes['selected'])].Text; -end; - -procedure LoadConfiguration(Path: String); -var - Config: IXMLDocument; - RootNode: IXMLNode; -begin - Config := TXMLDocument.Create(nil); - Config.LoadFromFile(Path); - Config.Active := True; - RootNode := Config.DocumentElement; - - LANG := RootNode.ChildNodes['lang'].Text.ToInteger(); - STYLE := RootNode.ChildNodes['style'].Text.ToInteger(); - AErenderPath := RootNode.ChildNodes['aerender'].Text; - ONRENDERSTART := RootNode.ChildNodes['onRenderStart'].Text.ToInteger(); - DEFPRGPATH := RootNode.ChildNodes['defprgpath'].Text; - DEFOUTPATH := RootNode.ChildNodes['defoutpath'].Text; - AERH := RootNode.ChildNodes['handle'].Text; - DelTempFiles := RootNode.ChildNodes['delTempFiles'].Text; - - MainForm.projectPath.Text := RootNode.ChildNodes['projectPath'].Text; - MainForm.outputPath.Text := RootNode.ChildNodes['outputPath'].Text; - tempSavePath := RootNode.ChildNodes['tempSavePath'].Text; - - MainForm.compName.Text := RootNode.ChildNodes['comp'].Text; - MainForm.inFrame.Text := RootNode.ChildNodes['startFrame'].Text; - MainForm.outFrame.Text := RootNode.ChildNodes['endFrame'].Text; - - MainForm.missingFilesCheckbox.IsChecked := RootNode.ChildNodes['missingFiles'].Text.ToBoolean(); - MainForm.soundCheckbox.IsChecked := RootNode.ChildNodes['sound'].Text.ToBoolean(); - MainForm.threadedRender.IsChecked := RootNode.ChildNodes['thread'].Text.ToBoolean(); - MainForm.customCheckbox.IsChecked := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); - MainForm.customProp.Enabled := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); - MainForm.customProp.Text := RootNode.ChildNodes['prop'].Text; - - MainForm.memUsageTrackBar.Value := RootNode.ChildNodes['memoryLimit'].Text.ToSingle(); - MainForm.cacheUsageTrackBar.Value := RootNode.ChildNodes['cacheLimit'].Text.ToSingle(); - - if RootNode.ChildNodes['outputModule'].ChildNodes.Count <> 0 then begin - SetLength (OutputModules, RootNode.ChildNodes['outputModule'].ChildNodes.Count); - for var i := 0 to High(OutputModules) do begin - OutputModules[i].Module := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['moduleName'].Text; - OutputModules[i].Mask := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['filemask'].Text; - OutputModules[i].Imported := StrToBool(RootNode.ChildNodes['outputModule'].ChildNodes[i].Attributes['imported']); - end; - MainForm.outputModuleBox.ItemIndex := StrToInt(RootNode.ChildNodes['outputModule'].Attributes['selected']); - end else - InitOutputModules; - - MainForm.renderSettingsEdit.Text := RootNode.ChildNodes['renderSettings'].Text; - - for var i := 0 to 9 do begin - Recents[i] := RootNode.ChildNodes['recentProjects'].ChildNodes[i].Text; - end; -end; - -procedure SaveConfiguration(Path: String); -var - Config: IXMLDocument; - RootNode: IXMLNode; - ChildNode: IXMLNode; -begin - Config := TXMLDocument.Create(nil); - Config.Active := True; - Config.Encoding := 'utf-8'; - Config.Options := [doNodeAutoIndent]; - - RootNode := Config.AddChild('launcherconfig'); - - RootNode.AddChild('lang').Text := LANG.ToString; - RootNode.AddChild('style').Text := STYLE.ToString; - RootNode.AddChild('aerender').Text := AErenderPath; - RootNode.AddChild('onRenderStart').Text := ONRENDERSTART.ToString; - RootNode.AddChild('defprgpath').Text := DEFPRGPATH; - RootNode.AddChild('defoutpath').Text := DEFOUTPATH; - RootNode.AddChild('handle').Text := AERH; - RootNode.AddChild('delTempFiles').Text := DelTempFiles; - - RootNode.AddChild('projectPath').Text := MainForm.projectPath.Text; - RootNode.AddChild('outputPath').Text := MainForm.outputPath.Text; - RootNode.AddChild('tempSavePath').Text := tempSavePath; - - RootNode.AddChild('comp').Text := MainForm.compName.Text; - RootNode.AddChild('startFrame').Text := MainForm.inFrame.Text; - RootNode.AddChild('endFrame').Text := MainForm.outFrame.Text; - RootNode.AddChild('missingFiles').Text := BoolToStr(MainForm.missingFilesCheckbox.IsChecked, True); - - RootNode.AddChild('sound').Text := BoolToStr(MainForm.soundCheckbox.IsChecked, True); - RootNode.AddChild('thread').Text := BoolToStr(MainForm.threadedRender.IsChecked, True); - RootNode.AddChild('prop').Text := MainForm.customProp.Text; - RootNode.ChildNodes['prop'].Attributes['enabled'] := BoolToStr(MainForm.customCheckbox.IsChecked, True); - - RootNode.AddChild('memoryLimit').Text := MainForm.memUsageTrackBar.Value.ToString; - RootNode.AddChild('cacheLimit').Text := MainForm.cacheUsageTrackBar.Value.ToString; - - ChildNode := RootNode.AddChild('outputModule'); - ChildNode.Attributes['selected'] := MainForm.outputModuleBox.ItemIndex.ToString; - for var i := 0 to High(OutputModules) do begin - var ModuleNode: IXMLNode := RootNode.ChildNodes['outputModule'].AddChild('module'); - ModuleNode.Attributes['imported'] := BoolToStr(OutputModules[i].Imported, True); - ModuleNode.AddChild('moduleName').Text := OutputModules[i].Module; - ModuleNode.AddChild('filemask').Text := OutputModules[i].Mask; - end; - - ChildNode := RootNode.AddChild('renderSettings'); - ChildNode.Text := MainForm.renderSettingsEdit.Text; - - ChildNode := RootNode.AddChild('recentProjects'); - for var i := 0 to 9 do begin - if Recents[i] = '' then - ChildNode.AddChild('project').Text := '(empty)' - else - ChildNode.AddChild('project').Text := Recents[i] - end; - - Config.SaveToFile(Path); -end; +//procedure InitOutputModules; +//begin +// SetLength (Settings.OutputModules, 10); +// +// Settings.OutputModules[0].Module := 'Lossless'; +// Settings.OutputModules[0].Mask := '[compName].[fileExtension]'; +// Settings.OutputModules[0].Imported := False; +// +// Settings.OutputModules[1].Module := 'AIFF 48kHz'; +// Settings.OutputModules[1].Mask := '[compName].[fileExtension]'; +// Settings.OutputModules[1].Imported := False; +// +// Settings.OutputModules[2].Module := 'Alpha Only'; +// Settings.OutputModules[2].Mask := '[compName].[fileExtension]'; +// Settings.OutputModules[2].Imported := False; +// +// Settings.OutputModules[3].Module := 'AVI DV NTSC 48kHz'; +// Settings.OutputModules[3].Mask := '[compName].[fileExtension]'; +// Settings.OutputModules[3].Imported := False; +// +// Settings.OutputModules[4].Module := 'AVI DV PAL 48kHz'; +// Settings.OutputModules[4].Mask := '[compName].[fileExtension]'; +// Settings.OutputModules[4].Imported := False; +// +// Settings.OutputModules[5].Module := 'Lossless with Alpha'; +// Settings.OutputModules[5].Mask := '[compName].[fileExtension]'; +// Settings.OutputModules[5].Imported := False; +// +// Settings.OutputModules[6].Module := 'Multi-Machine Sequence'; +// Settings.OutputModules[6].Mask := '[compName]_[#####].[fileExtension]'; +// Settings.OutputModules[6].Imported := False; +// +// Settings.OutputModules[7].Module := 'Photoshop'; +// Settings.OutputModules[7].Mask := '[compName]_[#####].[fileExtension]'; +// Settings.OutputModules[7].Imported := False; +// +// Settings.OutputModules[8].Module := 'Save Current Preview'; +// Settings.OutputModules[8].Mask := '[compName].[fileExtension]'; +// Settings.OutputModules[8].Imported := False; +// +// Settings.OutputModules[9].Module := 'TIFF Sequence with Alpha'; +// Settings.OutputModules[9].Mask := '[compName]_[#####].[fileExtension]'; +// Settings.OutputModules[9].Imported := False; +//end; +// +//procedure InitConfiguration(Path: String); +//var +// Config: IXMLDocument; +// RootNode: IXMLNode; +// ChildNode: IXMLNode; +//begin +// //InitLanguage; +// InitOutputModules; +// InitRenderSettings; +// +// Config := TXMLDocument.Create(nil); +// Config.Active := True; +// Config.Encoding := 'utf-8'; +// Config.Options := [doNodeAutoIndent]; +// +// RootNode := Config.AddChild('launcherconfig'); +// +// RootNode.AddChild('lang').Text := '0'; +// RootNode.AddChild('style').Text := '0'; +// RootNode.AddChild('aerender').Text := ''; +// RootNode.AddChild('onRenderStart').Text := '0'; +// RootNode.AddChild('defprgpath').Text := ''; +// RootNode.AddChild('defoutpath').Text := ''; +// RootNode.AddChild('handle').Text := 'True'; +// RootNode.AddChild('delTempFiles').Text := 'True'; +// +// RootNode.AddChild('projectPath').Text := ''; +// RootNode.AddChild('outputPath').Text := ''; +// RootNode.AddChild('tempSavePath').Text := ''; +// +// RootNode.AddChild('comp').Text := ''; +// RootNode.AddChild('startFrame').Text := ''; +// RootNode.AddChild('endFrame').Text := ''; +// +// RootNode.AddChild('missingFiles').Text := 'False'; +// RootNode.AddChild('sound').Text := 'False'; +// RootNode.AddChild('thread').Text := 'False'; +// RootNode.AddChild('prop').Text := ''; +// RootNode.ChildNodes['prop'].Attributes['enabled'] := 'False'; +// +// RootNode.AddChild('memoryLimit').Text := '100'; +// RootNode.AddChild('cacheLimit').Text := '100'; +// +// ChildNode := RootNode.AddChild('outputModule'); +// ChildNode.Attributes['selected'] := '0'; +// +// for var i := 0 to High(Settings.OutputModules) do begin +// var ModuleNode: IXMLNode := RootNode.ChildNodes['outputModule'].AddChild('module'); +// ModuleNode.AddChild('moduleName').Text := Settings.OutputModules[i].Module; +// ModuleNode.Attributes['imported'] := 'False'; +// ModuleNode.AddChild('filemask').Text := Settings.OutputModules[i].Mask; +// end; +// +// MainForm.outputModuleBox.ItemIndex := 0; +// +// ChildNode := RootNode.AddChild('renderSettings'); +// ChildNode.Attributes['selected'] := '0'; +// +// for var i := 0 to High(RenderSettings) do begin +// var SettingNode: IXMLNode := RootNode.ChildNodes['renderSettings'].AddChild('setting'); +// SettingNode.Text := RenderSettings[i].Setting; +// SettingNode.Attributes['imported'] := 'False'; +// end; +// +// MainForm.renderSettingsEdit.Text := 'Best Settings'; +// +// ChildNode := RootNode.AddChild('recentProjects'); +// for var i := 0 to 9 do +// ChildNode.AddChild('project').Text := '(empty)'; +// +// Config.SaveToFile(Path); +//end; +// +//procedure LoadLegacyConfiguration(Path: String); +//var +// Config: IXMLDocument; +// RootNode: IXMLNode; +//begin +// Config := TXMLDocument.Create(nil); +// Config.LoadFromFile(Path); +// Config.Active := True; +// RootNode := Config.DocumentElement; +// +// Settings.Language := 0; +// STYLE := RootNode.ChildNodes['style'].Text.ToInteger(); +// AErenderPath := RootNode.ChildNodes['aerender'].Text; +// ONRENDERSTART := RootNode.ChildNodes['onRenderStart'].Text.ToInteger(); +// DEFPRGPATH := RootNode.ChildNodes['defprgpath'].Text; +// DEFOUTPATH := RootNode.ChildNodes['defoutpath'].Text; +// AERH := RootNode.ChildNodes['handle'].Text; +// DelTempFiles := RootNode.ChildNodes['delTempFiles'].Text; +// +// MainForm.projectPath.Text := RootNode.ChildNodes['projectPath'].Text; +// MainForm.outputPath.Text := RootNode.ChildNodes['outputPath'].Text; +// tempSavePath := RootNode.ChildNodes['tempSavePath'].Text; +// +// MainForm.compName.Text := RootNode.ChildNodes['comp'].Text; +// MainForm.inFrame.Text := RootNode.ChildNodes['startFrame'].Text; +// MainForm.outFrame.Text := RootNode.ChildNodes['endFrame'].Text; +// +// MainForm.missingFilesCheckbox.IsChecked := RootNode.ChildNodes['missingFiles'].Text.ToBoolean(); +// MainForm.soundCheckbox.IsChecked := RootNode.ChildNodes['sound'].Text.ToBoolean(); +// MainForm.threadedRender.IsChecked := RootNode.ChildNodes['thread'].Text.ToBoolean(); +// MainForm.customCheckbox.IsChecked := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); +// MainForm.customProp.Enabled := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); +// MainForm.customProp.Text := RootNode.ChildNodes['prop'].Text; +// +// MainForm.memUsageTrackBar.Value := RootNode.ChildNodes['memoryLimit'].Text.ToSingle(); +// MainForm.cacheUsageTrackBar.Value := RootNode.ChildNodes['cacheLimit'].Text.ToSingle(); +// +// //MainUnit.OMCount := RootNode.ChildNodes['outputModule'].ChildNodes.Count; +// SetLength (Settings.OutputModules, RootNode.ChildNodes['outputModule'].ChildNodes.Count); +// for var i := 0 to High(Settings.OutputModules) do +// begin +// Settings.OutputModules[i].Module := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['moduleName'].Text; +// Settings.OutputModules[i].Mask := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['filemask'].Text; +// Settings.OutputModules[i].Imported := False; +// end; +// +// InitRenderSettings; +// +// MainForm.outputModuleBox.ItemIndex := StrToInt(RootNode.ChildNodes['outputModule'].Attributes['selected']); +// MainForm.renderSettingsEdit.Text := RootNode.ChildNodes['renderSettings'].ChildNodes[StrToInt(RootNode.ChildNodes['renderSettings'].Attributes['selected'])].Text; +//end; +// +//procedure LoadConfiguration(Path: String); +//var +// Config: IXMLDocument; +// RootNode: IXMLNode; +//begin +// Config := TXMLDocument.Create(nil); +// Config.LoadFromFile(Path); +// Config.Active := True; +// RootNode := Config.DocumentElement; +// +// Settings.Language := RootNode.ChildNodes['lang'].Text.ToInteger(); +// STYLE := RootNode.ChildNodes['style'].Text.ToInteger(); +// AErenderPath := RootNode.ChildNodes['aerender'].Text; +// ONRENDERSTART := RootNode.ChildNodes['onRenderStart'].Text.ToInteger(); +// DEFPRGPATH := RootNode.ChildNodes['defprgpath'].Text; +// DEFOUTPATH := RootNode.ChildNodes['defoutpath'].Text; +// AERH := RootNode.ChildNodes['handle'].Text; +// DelTempFiles := RootNode.ChildNodes['delTempFiles'].Text; +// +// MainForm.projectPath.Text := RootNode.ChildNodes['projectPath'].Text; +// MainForm.outputPath.Text := RootNode.ChildNodes['outputPath'].Text; +// tempSavePath := RootNode.ChildNodes['tempSavePath'].Text; +// +// MainForm.compName.Text := RootNode.ChildNodes['comp'].Text; +// MainForm.inFrame.Text := RootNode.ChildNodes['startFrame'].Text; +// MainForm.outFrame.Text := RootNode.ChildNodes['endFrame'].Text; +// +// MainForm.missingFilesCheckbox.IsChecked := RootNode.ChildNodes['missingFiles'].Text.ToBoolean(); +// MainForm.soundCheckbox.IsChecked := RootNode.ChildNodes['sound'].Text.ToBoolean(); +// MainForm.threadedRender.IsChecked := RootNode.ChildNodes['thread'].Text.ToBoolean(); +// MainForm.customCheckbox.IsChecked := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); +// MainForm.customProp.Enabled := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); +// MainForm.customProp.Text := RootNode.ChildNodes['prop'].Text; +// +// MainForm.memUsageTrackBar.Value := RootNode.ChildNodes['memoryLimit'].Text.ToSingle(); +// MainForm.cacheUsageTrackBar.Value := RootNode.ChildNodes['cacheLimit'].Text.ToSingle(); +// +// if RootNode.ChildNodes['outputModule'].ChildNodes.Count <> 0 then begin +// SetLength (Settings.OutputModules, RootNode.ChildNodes['outputModule'].ChildNodes.Count); +// for var i := 0 to High(Settings.OutputModules) do begin +// Settings.OutputModules[i].Module := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['moduleName'].Text; +// Settings.OutputModules[i].Mask := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['filemask'].Text; +// Settings.OutputModules[i].Imported := StrToBool(RootNode.ChildNodes['outputModule'].ChildNodes[i].Attributes['imported']); +// end; +// MainForm.outputModuleBox.ItemIndex := StrToInt(RootNode.ChildNodes['outputModule'].Attributes['selected']); +// end else +// InitOutputModules; +// +// MainForm.renderSettingsEdit.Text := RootNode.ChildNodes['renderSettings'].Text; +// +// for var i := 0 to 9 do begin +// Recents[i] := RootNode.ChildNodes['recentProjects'].ChildNodes[i].Text; +// end; +//end; +// +//procedure SaveConfiguration(Path: String); +//var +// Config: IXMLDocument; +// RootNode: IXMLNode; +// ChildNode: IXMLNode; +//begin +// Config := TXMLDocument.Create(nil); +// Config.Active := True; +// Config.Encoding := 'utf-8'; +// Config.Options := [doNodeAutoIndent]; +// +// RootNode := Config.AddChild('launcherconfig'); +// +// RootNode.AddChild('lang').Text := Settings.Language.ToString; +// RootNode.AddChild('style').Text := STYLE.ToString; +// RootNode.AddChild('aerender').Text := AErenderPath; +// RootNode.AddChild('onRenderStart').Text := ONRENDERSTART.ToString; +// RootNode.AddChild('defprgpath').Text := DEFPRGPATH; +// RootNode.AddChild('defoutpath').Text := DEFOUTPATH; +// RootNode.AddChild('handle').Text := AERH; +// RootNode.AddChild('delTempFiles').Text := DelTempFiles; +// +// RootNode.AddChild('projectPath').Text := MainForm.projectPath.Text; +// RootNode.AddChild('outputPath').Text := MainForm.outputPath.Text; +// RootNode.AddChild('tempSavePath').Text := tempSavePath; +// +// RootNode.AddChild('comp').Text := MainForm.compName.Text; +// RootNode.AddChild('startFrame').Text := MainForm.inFrame.Text; +// RootNode.AddChild('endFrame').Text := MainForm.outFrame.Text; +// RootNode.AddChild('missingFiles').Text := BoolToStr(MainForm.missingFilesCheckbox.IsChecked, True); +// +// RootNode.AddChild('sound').Text := BoolToStr(MainForm.soundCheckbox.IsChecked, True); +// RootNode.AddChild('thread').Text := BoolToStr(MainForm.threadedRender.IsChecked, True); +// RootNode.AddChild('prop').Text := MainForm.customProp.Text; +// RootNode.ChildNodes['prop'].Attributes['enabled'] := BoolToStr(MainForm.customCheckbox.IsChecked, True); +// +// RootNode.AddChild('memoryLimit').Text := MainForm.memUsageTrackBar.Value.ToString; +// RootNode.AddChild('cacheLimit').Text := MainForm.cacheUsageTrackBar.Value.ToString; +// +// ChildNode := RootNode.AddChild('outputModule'); +// ChildNode.Attributes['selected'] := MainForm.outputModuleBox.ItemIndex.ToString; +// for var i := 0 to High(Settings.OutputModules) do begin +// var ModuleNode: IXMLNode := RootNode.ChildNodes['outputModule'].AddChild('module'); +// ModuleNode.Attributes['imported'] := BoolToStr(Settings.OutputModules[i].Imported, True); +// ModuleNode.AddChild('moduleName').Text := Settings.OutputModules[i].Module; +// ModuleNode.AddChild('filemask').Text := Settings.OutputModules[i].Mask; +// end; +// +// ChildNode := RootNode.AddChild('renderSettings'); +// ChildNode.Text := MainForm.renderSettingsEdit.Text; +// +// ChildNode := RootNode.AddChild('recentProjects'); +// for var i := 0 to 9 do begin +// if Recents[i] = '' then +// ChildNode.AddChild('project').Text := '(empty)' +// else +// ChildNode.AddChild('project').Text := Recents[i] +// end; +// +// Config.SaveToFile(Path); +//end; function GetOMIndex(AOutputModule: OutputModule): Integer; begin Result := -1; - for var i := 0 to High(OutputModules) do - if (AOutputModule.Module = OutputModules[i].Module) and (AOutputModule.Mask = OutputModules[i].Mask) then begin - Result := i; - break; - end; -end; - -function GetRSIndex(ARenderSetting: RenderSetting): Integer; -begin - Result := -1; - for var i := 0 to High(RenderSettings) do - if ARenderSetting.Setting = RenderSettings[i].Setting then begin + for var i := 0 to High(Settings.OutputModules) do + if AOutputModule = Settings.OutputModules[i] then begin Result := i; break; end; @@ -1316,7 +1277,7 @@ procedure TMainForm.TaskEditorSaveButtonClick(Sender: TObject); end; if ErrorStr <> '' then begin - raise AERParamException.Create(Format('%s%s%s', [Language[LANG].Errors.errorsOccured, #13#10, ErrorStr])); + raise AERParamException.Create(Format('%s%s%s', [Language[Settings.Language].Errors.errorsOccured, #13#10, ErrorStr])); end else begin var TaskIndex: Integer := RenderTasks.IndexOf(GetTaskByProject(ExtractFileName(projectPath.Text))); var Compositions: TList := TList.Create; @@ -1472,12 +1433,12 @@ procedure TMainForm.UpdateOutputModules; if (outputModuleBox.Count <> 0) then outputModuleBox.Clear; - for var i := 0 to High(OutputModules) do - if OutputModules[i].Imported then - outputModuleBox.Items.Add(OutputModules[i].Module + ' ' + Language[LANG].OutputModuleConfiguratorForm.Imported) + for var i := 0 to High(Settings.OutputModules) do + if Settings.OutputModules[i].Imported then + outputModuleBox.Items.Add(Settings.OutputModules[i].Module + ' ' + Language[Settings.Language].OutputModuleConfiguratorForm.Imported) else - outputModuleBox.Items.Add(OutputModules[i].Module); - outputModuleBox.Items.Add(Language[LANG].MainForm.ConfigureOutputModules); + outputModuleBox.Items.Add(Settings.OutputModules[i].Module); + outputModuleBox.Items.Add(Language[Settings.Language].MainForm.ConfigureOutputModules); outputModuleBox.ItemIndex := Index; end; @@ -1495,7 +1456,7 @@ function TMainForm.ReadAERQ(Path: String): TObjectList; for var i := 0 to RootNode.ChildNodes.Count - 1 do begin outputPath.Text := RootNode.ChildNodes[i].Attributes['outputFolder']; - tempSavePath := RootNode.ChildNodes[i].Attributes['outputFolder'] + PLATFORMPATHSEPARATOR; + Settings.TemporarySavePath := RootNode.ChildNodes[i].Attributes['outputFolder'] + PLATFORMPATHSEPARATOR; /// Add new Output Module to library if it don't exist if StrToBool(RootNode.ChildNodes[i].ChildNodes['outputModule'].Attributes['use']) then begin @@ -1506,12 +1467,12 @@ function TMainForm.ReadAERQ(Path: String): TObjectList; if GetOMIndex(TempOutputModule) <> -1 then outputModuleBox.ItemIndex := GetOMIndex(TempOutputModule) else begin - SetLength(OutputModules, Length(OutputModules) + 1); - OutputModules[High(OutputModules)].Module := RootNode.ChildNodes[i].ChildNodes['outputModule'].ChildNodes['module'].Text; - OutputModules[High(OutputModules)].Mask := RootNode.ChildNodes[i].ChildNodes['outputModule'].ChildNodes['mask'].Text; - OutputModules[High(OutputModules)].Imported := True; + SetLength(Settings.OutputModules, Length(Settings.OutputModules) + 1); + Settings.OutputModules[High(Settings.OutputModules)].Module := RootNode.ChildNodes[i].ChildNodes['outputModule'].ChildNodes['module'].Text; + Settings.OutputModules[High(Settings.OutputModules)].Mask := RootNode.ChildNodes[i].ChildNodes['outputModule'].ChildNodes['mask'].Text; + Settings.OutputModules[High(Settings.OutputModules)].Imported := True; - outputModuleBox.Items.Insert(outputModuleBox.Items.Count - 1, OutputModules[High(OutputModules)].Module + ' ' + Language[LANG].OutputModuleConfiguratorForm.Imported); + outputModuleBox.Items.Insert(outputModuleBox.Items.Count - 1, Settings.OutputModules[High(Settings.OutputModules)].Module + ' ' + Language[Settings.Language].OutputModuleConfiguratorForm.Imported); outputModuleBox.ItemIndex := outputModuleBox.Items.Count - 2; end; end; @@ -1559,9 +1520,9 @@ function TMainForm.ReadAER(Path: String): TRenderTask; var RootNode: IXMLNode := AERXMLDocument.DocumentElement; - if DEFOUTPATH <> '' then begin - outputPath.Text := DEFOUTPATH; - tempSavePath := DEFOUTPATH + PLATFORMPATHSEPARATOR; + if Settings.DefaultOutputPath <> '' then begin + outputPath.Text := Settings.DefaultOutputPath; + Settings.TemporarySavePath := Settings.DefaultOutputPath + PLATFORMPATHSEPARATOR; end; outputModuleBoxChange(Self); @@ -1621,9 +1582,9 @@ procedure TMainForm.calculateButtonClick(Sender: TObject); except on Exception do if outFrame.Text = '' then - TDialogServiceSync.MessageDialog(Language[LANG].Errors.CalculateFrameError, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0) + TDialogServiceSync.MessageDialog(Language[Settings.Language].Errors.CalculateFrameError, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0) else - TDialogServiceSync.MessageDialog(Language[LANG].Errors.CalculateUnknownError, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0) + TDialogServiceSync.MessageDialog(Language[Settings.Language].Errors.CalculateUnknownError, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0) end; end; @@ -1644,7 +1605,7 @@ procedure TMainForm.compSwitchSwitch(Sender: TObject); // if MainForm.Height <= 450 then // MainForm.Height := 580;//MainForm.Height + 130; // -// compSwitchLabel.Text := Language[LANG].MainForm.MultiComp; +// compSwitchLabel.Text := Language[Settings.Language].MainForm.MultiComp; // // compGrid.RowCount := Round(compCount.Value); // compGrid.Cells[0, 0] := compName.Text; @@ -1657,7 +1618,7 @@ procedure TMainForm.compSwitchSwitch(Sender: TObject); // if MainForm.WindowState <> TWindowState.wsMaximized then // MainForm.Height := 450;//MainForm.Height - 130; // -// compSwitchLabel.Text := Language[LANG].MainForm.SingleComp; +// compSwitchLabel.Text := Language[Settings.Language].MainForm.SingleComp; // compName.Text := compGrid.Cells[0, 0]; // end; end; @@ -1690,8 +1651,9 @@ procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); {$IFDEF MACOS}KillProcess('aerendercore');{$ENDIF MACOS} end; - SaveConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); - if StrToBool(DelTempFiles) = True then + //SaveConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + Settings.SaveToFile(APPFOLDER + 'AErenderConfiguration.xml'); + if Settings.DeleteTemporary then begin var LauncherDirectory: TArray := GetDirectoryFiles(APPFOLDER); for var i := 0 to High(LauncherDirectory) do @@ -1744,11 +1706,13 @@ procedure TMainForm.FormCreate(Sender: TObject); if FileExists(APPFOLDER + 'AErenderConfiguration.xml') then begin try - LoadConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + //LoadConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + Settings.LoadFromXMLFile(APPFOLDER + 'AErenderConfiguration.xml'); except on Exception do begin try - LoadLegacyConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + //LoadLegacyConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + Settings.LoadFromXMLFileLegacy(APPFOLDER + 'AErenderConfiguration.xml'); except on Exception do begin if (TDialogServiceSync.MessageDialog( @@ -1767,12 +1731,11 @@ procedure TMainForm.FormCreate(Sender: TObject); end; end; end else begin - InitConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); - AERH := 'True'; - DelTempFiles := 'True'; + //InitConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + Settings.ResetAndSave(APPFOLDER + 'AErenderConfiguration.xml'); end; - AEPOpenDialog.InitialDir := DEFPRGPATH; - SaveDialog1.InitialDir := DEFOUTPATH; + AEPOpenDialog.InitialDir := Settings.DefaultProjectPath; + SaveDialog1.InitialDir := Settings.DefaultOutputPath; if not FileExists(APPFOLDER + {$IFDEF MSWINDOWS}'aeparser_win.exe'{$ELSE MACOS}'aeparser_mac'{$ENDIF}) then begin ExtractParserToAppDir; @@ -1867,28 +1830,27 @@ procedure TMainForm.FormShow(Sender: TObject); end; UpdateOutputModules; - UpdateRenderSettings; - SettingsForm.styleBox.ItemIndex := STYLE; - SettingsForm.onRenderStartBox.ItemIndex := ONRENDERSTART; - SettingsForm.HandleCheckBox.IsChecked := StrToBool(AERH); - SettingsForm.delFilesCheckBox.IsChecked := StrToBool(DelTempFiles); + SettingsForm.styleBox.ItemIndex := Settings.Style; + SettingsForm.onRenderStartBox.ItemIndex := Settings.OnRenderStart; + SettingsForm.HandleCheckBox.IsChecked := Settings.AErenderHandle; + SettingsForm.delFilesCheckBox.IsChecked := Settings.DeleteTemporary; var FormVisualUpdateThread: TThread :=TThread.CreateAnonymousThread(procedure begin {$IFDEF MACOS} - if LANG = 1 then begin + if Settings.Language = 1 then begin outputModuleLabel.Width := 148; renderSettingsLabel.Width := 148; end; {$ENDIF MACOS} if memUsageTrackBar.Value = 100 then - memUsageInfo.Text := Language[LANG].MainForm.Unlimited + memUsageInfo.Text := Language[Settings.Language].MainForm.Unlimited else memUsageInfo.Text := Trunc(memUsageTrackBar.Value).ToString + '% (' + Trunc((GetPlatformMemorySize/1024/1024) * (memUsageTrackBar.Value / 100)).ToString + ' MB)'; if cacheUsageTrackBar.Value = 100 then - cacheUsageInfo.Text := Language[LANG].MainForm.Unlimited + cacheUsageInfo.Text := Language[Settings.Language].MainForm.Unlimited else cacheUsageInfo.Text := Trunc(cacheUsageTrackBar.Value).ToString + '%'; @@ -2000,28 +1962,28 @@ exec = record if not (SettingsForm.HandleCheckBox.IsChecked and isRendering) then begin {emptyComps := 0; if AErenderPath.IsEmpty then - ERR := ERR + #13#10 + '[Error 1]: ' + Language[LANG].Errors.aerenderIsEmpty; + ERR := ERR + #13#10 + '[Error 1]: ' + Language[Settings.Language].Errors.aerenderIsEmpty; if projectPath.Text.IsEmpty then - ERR := ERR + #13#10 + '[Error 2]: ' + Language[LANG].Errors.projectIsEmpty; + ERR := ERR + #13#10 + '[Error 2]: ' + Language[Settings.Language].Errors.projectIsEmpty; if outputPath.Text.IsEmpty then - ERR := ERR + #13#10 + '[Error 3]: ' + Language[LANG].Errors.outputIsEmpty; + ERR := ERR + #13#10 + '[Error 3]: ' + Language[Settings.Language].Errors.outputIsEmpty; if compName.Text.IsEmpty then - ERR := ERR + #13#10 + '[Error 4]: ' + Language[LANG].Errors.compositionIsEmpty; + ERR := ERR + #13#10 + '[Error 4]: ' + Language[Settings.Language].Errors.compositionIsEmpty; if compSwitch.IsChecked then begin for var i := 0 to compCount.Value.ToString.ToInteger - 1 do if compGrid.Cells[0, i].IsEmpty then inc(emptyComps); if emptyComps > 0 then - ERR := ERR + #13#10 + '[Error 5]: ' + Language[LANG].Errors.multiCompIsEmpty; + ERR := ERR + #13#10 + '[Error 5]: ' + Language[Settings.Language].Errors.multiCompIsEmpty; end; if StrToInt(threadsCount.Text) > 128 then - ERR := ERR + #13#10 + '[Error 6]: ' + Language[LANG].Errors.tooManyThreads; + ERR := ERR + #13#10 + '[Error 6]: ' + Language[Settings.Language].Errors.tooManyThreads; //Proceed if no errors occured if not ERR.IsEmpty then begin - TDialogServiceSync.MessageDialog((Language[LANG].Errors.errorsOccured + ERR), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); + TDialogServiceSync.MessageDialog((Language[Settings.Language].Errors.errorsOccured + ERR), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); ERR := ''; end else } @@ -2059,7 +2021,7 @@ exec = record end end; end else begin - TDialogServiceSync.MessageDialog(Language[LANG].Errors.isCurrentlyRendering, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); + TDialogServiceSync.MessageDialog(Language[Settings.Language].Errors.isCurrentlyRendering, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); RenderWindowSender := infoButton; RenderingForm.ShowModal; end; @@ -2132,17 +2094,17 @@ procedure TMainForm.outputModuleBoxChange(Sender: TObject); end else if not outputPath.Text.IsEmpty then - if tempSavePath.Contains('Def') or tempSavePath.Contains('def') then - outputPath.Text := ExtractFilePath(tempSavePath) + OutputModules[outputModuleBox.ItemIndex].Mask + if Settings.TemporarySavePath.ToLower.Contains('def') then + outputPath.Text := ExtractFilePath(Settings.TemporarySavePath) + Settings.OutputModules[outputModuleBox.ItemIndex].Mask else - if ExtractFileName(tempSavePath).IsEmpty then - outputPath.Text := tempSavePath + OutputModules[outputModuleBox.ItemIndex].Mask + if ExtractFileName(Settings.TemporarySavePath).IsEmpty then + outputPath.Text := Settings.TemporarySavePath + Settings.OutputModules[outputModuleBox.ItemIndex].Mask else - if ExtractFileExt(tempSavePath).IsEmpty then - outputPath.Text := ExtractFilePath(tempSavePath) + ExtractFileName(tempSavePath) + '_' + OutputModules[outputModuleBox.ItemIndex].Mask + if ExtractFileExt(Settings.TemporarySavePath).IsEmpty then + outputPath.Text := ExtractFilePath(Settings.TemporarySavePath) + ExtractFileName(Settings.TemporarySavePath) + '_' + Settings.OutputModules[outputModuleBox.ItemIndex].Mask else - outputPath.Text := ExtractFilePath(tempSavePath) + StringReplace(ExtractFileName(tempSavePath), ExtractFileExt(tempSavePath), '', [rfReplaceAll, rfIgnoreCase]) - + '_' + OutputModules[outputModuleBox.ItemIndex].Mask; + outputPath.Text := ExtractFilePath(Settings.TemporarySavePath) + StringReplace(ExtractFileName(Settings.TemporarySavePath), ExtractFileExt(Settings.TemporarySavePath), '', [rfReplaceAll, rfIgnoreCase]) + + '_' + Settings.OutputModules[outputModuleBox.ItemIndex].Mask; end; procedure TMainForm.TaskEditorPopupPopup(Sender: TObject); @@ -2242,7 +2204,7 @@ procedure TMainForm._saveFileClick(Sender: TObject); NSWin := WindowHandleToPlatform(Screen.ActiveForm.Handle).Wnd; FSaveFile :=TNSSavePanel.Wrap(TNSSavePanel.OCClass.savePanel); - FSaveFile.setAccessoryView(CreateMessageView(Language[LANG].MainForm.DarwinDialogTip)); + FSaveFile.setAccessoryView(CreateMessageView(Language[Settings.Language].MainForm.DarwinDialogTip)); //FSaveFile.setAccessoryView(); FSaveFile.setDirectory(StrToNSStr(DEFOUTPATH)); FSaveFile.setNameFieldLabel(StrToNSStr('Output file name:')); @@ -2260,13 +2222,13 @@ procedure TMainForm._saveFileClick(Sender: TObject); else tempSavePath := NSStrToStr(FSaveFile.URL.relativePath); if tempSavePath.Contains('Def') or tempSavePath.Contains('def') then - outputPath.Text := ExtractFilePath(tempSavePath) + OutputModules[outputModuleBox.ItemIndex].Mask + outputPath.Text := ExtractFilePath(tempSavePath) + Settings.OutputModules[outputModuleBox.ItemIndex].Mask else if ExtractFileExt(tempSavePath) = '' then - outputPath.Text := tempSavePath + '_' + OutputModules[outputModuleBox.ItemIndex].Mask + outputPath.Text := tempSavePath + '_' + Settings.OutputModules[outputModuleBox.ItemIndex].Mask else outputPath.Text := ExtractFilePath(tempSavePath) + StringReplace(ExtractFileName(tempSavePath), ExtractFileExt(tempSavePath), '', [rfReplaceAll, rfIgnoreCase]) - + ExtractFileExt(OutputModules[outputModuleBox.ItemIndex].Mask); + + ExtractFileExt(Settings.OutputModules[outputModuleBox.ItemIndex].Mask); end)); {$ENDIF MACOS} {$IFDEF MSWINDOWS} @@ -2274,16 +2236,16 @@ procedure TMainForm._saveFileClick(Sender: TObject); with SaveDialog1 do if Execute then begin - tempSavePath := SaveDialog1.FileName; + Settings.TemporarySavePath := SaveDialog1.FileName; - if tempSavePath.Contains('Def') or tempSavePath.Contains('def') then - outputPath.Text := ExtractFilePath(tempSavePath) + OutputModules[outputModuleBox.ItemIndex].Mask + if Settings.TemporarySavePath.ToLower.Contains('def') then + outputPath.Text := ExtractFilePath(Settings.TemporarySavePath) + Settings.OutputModules[outputModuleBox.ItemIndex].Mask else - if ExtractFileExt(tempSavePath) = '' then - outputPath.Text := tempSavePath + '_' + OutputModules[outputModuleBox.ItemIndex].Mask + if ExtractFileExt(Settings.TemporarySavePath) = '' then + outputPath.Text := Settings.TemporarySavePath + '_' + Settings.OutputModules[outputModuleBox.ItemIndex].Mask else - outputPath.Text := ExtractFilePath(tempSavePath) + StringReplace(ExtractFileName(tempSavePath), ExtractFileExt(tempSavePath), '', [rfReplaceAll, rfIgnoreCase]) - + ExtractFileExt(OutputModules[outputModuleBox.ItemIndex].Mask); + outputPath.Text := ExtractFilePath(Settings.TemporarySavePath) + StringReplace(ExtractFileName(Settings.TemporarySavePath), ExtractFileExt(Settings.TemporarySavePath), '', [rfReplaceAll, rfIgnoreCase]) + + ExtractFileExt(Settings.OutputModules[outputModuleBox.ItemIndex].Mask); end; {$ENDIF MSWINDOWS} end; @@ -2564,8 +2526,8 @@ procedure TMainForm.threadsSwitchSwitch(Sender: TObject); // if MainForm.Height <= 450 then // MainForm.Height := 580; // -// threadsSwitchLabel.Text := Language[LANG].MainForm.SplitRender; -// outFrame.TextPrompt := Language[LANG].MainForm.EndFrameHint; +// threadsSwitchLabel.Text := Language[Settings.Language].MainForm.SplitRender; +// outFrame.TextPrompt := Language[Settings.Language].MainForm.EndFrameHint; // threadsGrid.AniCalculations.AutoShowing := False; // threadsGrid.Model.ScrollDirections := TScrollDirections.Vertical; // end @@ -2580,7 +2542,7 @@ procedure TMainForm.threadsSwitchSwitch(Sender: TObject); // if MainForm.WindowState <> TWindowState.wsMaximized then // MainForm.Height := 450; // -// threadsSwitchLabel.Text := Language[LANG].MainForm.SingleRener; +// threadsSwitchLabel.Text := Language[Settings.Language].MainForm.SingleRener; // outFrame.TextPrompt := ''; // end; end; @@ -2599,7 +2561,7 @@ procedure TMainForm.UpdateNetHTTPClientRequestCompleted(const Sender: TObject; c MainForm.Height := SizeConstraints.MIN_HEIGHT_UPD; MainForm.UpdateInfo.Visible := True; MainForm.UpdateInfo.Enabled := True; - MainForm.downloadButton.Text := Language[LANG].MainForm.Download + ' (' + gitVersion + ')'; + MainForm.downloadButton.Text := Language[Settings.Language].MainForm.Download + ' (' + gitVersion + ')'; {$IFDEF MSWINDOWS}gitDownload := gitRelease.A[0].P['assets'].A[1].P['browser_download_url'].Value;{$ENDIF MSWINDOWS} {$IFDEF MACOS}gitDownload := gitRelease.A[0].P['assets'].A[0].P['browser_download_url'].Value;{$ENDIF MACOS} end else begin @@ -2672,7 +2634,7 @@ procedure TMainForm.memUsageInfoEditValidate(Sender: TObject; memUsageTrackBar.Value := (100 * memUsageInfoEdit.Text.ToInteger()) / (GetPlatformMemorySize / 1024 / 1024); except on Exception do - TDialogServiceSync.MessageDialog((Text + ' ' + Language[LANG].Errors.MemoryValueInvalid), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); + TDialogServiceSync.MessageDialog((Text + ' ' + Language[Settings.Language].Errors.MemoryValueInvalid), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); end; end; memUsageInfo.Visible := True; @@ -2684,7 +2646,7 @@ procedure TMainForm.memUsageInfoEditValidate(Sender: TObject; procedure TMainForm.memUsageTrackBarChange(Sender: TObject); begin if memUsageTrackBar.Value = 100 then - memUsageInfo.Text := Language[LANG].MainForm.Unlimited + memUsageInfo.Text := Language[Settings.Language].MainForm.Unlimited else memUsageInfo.Text := Trunc(memUsageTrackBar.Value).ToString + '% (' + Trunc((GetPlatformMemorySize/1024/1024) * (memUsageTrackBar.Value / 100)).ToString + ' MB)'; end; @@ -2712,7 +2674,7 @@ procedure TMainForm.TaskEditorCreateTaskButtonClick(Sender: TObject); end; if ErrorStr <> '' then begin - raise AERParamException.Create(Format('%s%s%s', [Language[LANG].Errors.errorsOccured, #13#10, ErrorStr])); + raise AERParamException.Create(Format('%s%s%s', [Language[Settings.Language].Errors.errorsOccured, #13#10, ErrorStr])); end else begin /// Create all the compositions beforehand /// to append them to [Task] @@ -2804,7 +2766,7 @@ procedure TMainForm.cacheUsageInfoEditValidate(Sender: TObject; cacheUsageInfoEdit.Text := '100'; except on Exception do - TDialogServiceSync.MessageDialog((Text + ' ' + Language[LANG].Errors.CacheValueInvalid), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); + TDialogServiceSync.MessageDialog((Text + ' ' + Language[Settings.Language].Errors.CacheValueInvalid), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0); end; tempText := ''; cacheUsageTrackBar.Value := cacheUsageInfoEdit.Text.ToSingle(); @@ -2818,7 +2780,7 @@ procedure TMainForm.cacheUsageInfoEditValidate(Sender: TObject; procedure TMainForm.cacheUsageTrackBarChange(Sender: TObject); begin if cacheUsageTrackBar.Value = 100 then - cacheUsageInfo.Text := Language[LANG].MainForm.Unlimited + cacheUsageInfo.Text := Language[Settings.Language].MainForm.Unlimited else cacheUsageInfo.Text := Trunc(cacheUsageTrackBar.Value).ToString + '%'; end; diff --git a/src/OutputModuleEditorUnit.pas b/src/OutputModuleEditorUnit.pas index 4ce0805..98198fe 100644 --- a/src/OutputModuleEditorUnit.pas +++ b/src/OutputModuleEditorUnit.pas @@ -194,8 +194,8 @@ procedure TOutputModuleEditorForm.SetLanguage(LanguageCode: Integer); procedure TOutputModuleEditorForm.cancelButtonClick(Sender: TObject); begin - MainUnit.OutputModules := TempOutputModules; - SetLength(MainUnit.OutputModules, Length(TempOutputModules)); + Settings.OutputModules := TempOutputModules; + SetLength(Settings.OutputModules, Length(TempOutputModules)); OutputModuleEditorForm.Close; end; @@ -225,7 +225,7 @@ procedure TOutputModuleEditorForm.fileMaskDragOver(Sender: TObject; procedure TOutputModuleEditorForm.fileMaskTyping(Sender: TObject); begin - MainUnit.OutputModules[outputModulesBox.ItemIndex].Mask := fileMask.Text; + Settings.OutputModules[outputModulesBox.ItemIndex].Mask := fileMask.Text; {$IFDEF MACOS}NSWindowEditStateChange(True);{$ENDIF MACOS} end; @@ -239,8 +239,8 @@ procedure TOutputModuleEditorForm.FormClose(Sender: TObject; procedure TOutputModuleEditorForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin - if not CompareOutputModules(MainUnit.OutputModules, TempOutputModules) then - case TDialogServiceSync.MessageDialog(Language[LANG].OutputModuleConfiguratorForm.CloseDialog, TMsgDlgType.mtConfirmation, mbYesNoCancel, TMsgDlgBtn.mbYes, 0) of + if not CompareOutputModules(Settings.OutputModules, TempOutputModules) then + case TDialogServiceSync.MessageDialog(Language[Settings.Language].OutputModuleConfiguratorForm.CloseDialog, TMsgDlgType.mtConfirmation, mbYesNoCancel, TMsgDlgBtn.mbYes, 0) of 6: begin CanClose := True; saveModulesButtonClick(Sender); end; 7: begin CanClose := True; cancelButtonClick(Sender); end; 2: CanClose := False; @@ -288,13 +288,13 @@ procedure TOutputModuleEditorForm.FormCreate(Sender: TObject); procedure TOutputModuleEditorForm.FormShow(Sender: TObject); begin - TempOutputModules := MainUnit.OutputModules; - SetLength(TempOutputModules, Length(MainUnit.OutputModules)); - for var i := 0 to High(MainUnit.OutputModules) do - if MainUnit.OutputModules[i].Imported then - outputModulesBox.Items.Add(MainUnit.OutputModules[i].Module + ' ' + Language[LANG].OutputModuleConfiguratorForm.Imported) + TempOutputModules := Settings.OutputModules; + SetLength(TempOutputModules, Length(Settings.OutputModules)); + for var i := 0 to High(Settings.OutputModules) do + if Settings.OutputModules[i].Imported then + outputModulesBox.Items.Add(Settings.OutputModules[i].Module + ' ' + Language[Settings.Language].OutputModuleConfiguratorForm.Imported) else - outputModulesBox.Items.Add(MainUnit.OutputModules[i].Module); + outputModulesBox.Items.Add(Settings.OutputModules[i].Module); outputModulesBox.ItemIndex := 0; {$IFDEF MACOS}NSWindowEditStateChange(False);{$ENDIF MACOS} end; @@ -303,9 +303,9 @@ procedure TOutputModuleEditorForm.outputModulesBoxChange(Sender: TObject); begin if outputModulesBox.ItemIndex > -1 then begin - outputModule.Text := MainUnit.OutputModules[outputModulesBox.ItemIndex].Module; - fileMask.Text := MainUnit.OutputModules[outputModulesBox.ItemIndex].Mask; - if MainUnit.OutputModules[outputModulesBox.ItemIndex].Imported then + outputModule.Text := Settings.OutputModules[outputModulesBox.ItemIndex].Module; + fileMask.Text := Settings.OutputModules[outputModulesBox.ItemIndex].Mask; + if Settings.OutputModules[outputModulesBox.ItemIndex].Imported then outputModule.Enabled := False else outputModule.Enabled := True; @@ -315,7 +315,7 @@ procedure TOutputModuleEditorForm.outputModulesBoxChange(Sender: TObject); procedure TOutputModuleEditorForm.outputModuleTyping(Sender: TObject); begin outputModulesBox.Items[outputModulesBox.ItemIndex] := outputModule.Text; - MainUnit.OutputModules[outputModulesBox.ItemIndex].Module := outputModule.Text; + Settings.OutputModules[outputModulesBox.ItemIndex].Module := outputModule.Text; {$IFDEF MACOS}NSWindowEditStateChange(True);{$ENDIF MACOS} end; @@ -323,14 +323,14 @@ procedure TOutputModuleEditorForm.removeModuleButtonClick(Sender: TObject); begin var tempIndex: Integer := outputModulesBox.ItemIndex; - MainUnit.OutputModules[tempIndex].Module := ''; - MainUnit.OutputModules[tempIndex].Mask := ''; + Settings.OutputModules[tempIndex].Module := ''; + Settings.OutputModules[tempIndex].Mask := ''; - if tempIndex <> High(MainUnit.OutputModules) then - for var i := tempIndex + 1 to High(MainUnit.OutputModules) - 1 do - MainUnit.OutputModules[i - 1] := MainUnit.OutputModules[i]; + if tempIndex <> High(Settings.OutputModules) then + for var i := tempIndex + 1 to High(Settings.OutputModules) - 1 do + Settings.OutputModules[i - 1] := Settings.OutputModules[i]; - SetLength (MainUnit.OutputModules, Length(MainUnit.OutputModules) - 1); + SetLength (Settings.OutputModules, Length(Settings.OutputModules) - 1); outputModulesBox.Items.Delete(tempIndex); outputModulesBox.ItemIndex := tempIndex - 1; @@ -340,17 +340,17 @@ procedure TOutputModuleEditorForm.removeModuleButtonClick(Sender: TObject); procedure TOutputModuleEditorForm.saveModulesButtonClick(Sender: TObject); begin - TempOutputModules := MainUnit.OutputModules; - SetLength(TempOutputModules, Length(MainUnit.OutputModules)); + TempOutputModules := Settings.OutputModules; + SetLength(TempOutputModules, Length(Settings.OutputModules)); MainForm.UpdateOutputModules; OutputModuleEditorForm.Close; end; procedure TOutputModuleEditorForm.addModuleButtonClick(Sender: TObject); begin - SetLength (MainUnit.OutputModules, Length(MainUnit.OutputModules) + 1); - outputModulesBox.Items.Insert(High(MainUnit.OutputModules), 'Untitled'); - outputModulesBox.ItemIndex := High(MainUnit.OutputModules); + SetLength (Settings.OutputModules, Length(Settings.OutputModules) + 1); + outputModulesBox.Items.Insert(High(Settings.OutputModules), 'Untitled'); + outputModulesBox.ItemIndex := High(Settings.OutputModules); {$IFDEF MACOS}NSWindowEditStateChange(True);{$ENDIF MACOS} end; diff --git a/src/RenderingUnit.pas b/src/RenderingUnit.pas index 7775235..347af9e 100644 --- a/src/RenderingUnit.pas +++ b/src/RenderingUnit.pas @@ -56,6 +56,7 @@ interface AErenderLauncher.AerenderParser, AErenderLauncher.Rendering, AErenderLauncher.Math, + AErenderLauncher.Types, {$IFDEF MSWINDOWS} System.Notification, FMX.TaskBar, FMX.Platform.Win, Winapi.Windows, Winapi.TlHelp32; @@ -175,10 +176,10 @@ procedure TRenderingForm.RenderQueueNotify(Sender: TObject; const Item: String; Progress.Align := TAlignLayout.Top; Progress.Margins := TBounds.Create(TRectF.Create(8, 8, 8, 0)); Progress.Composition := Format('%s[%s]', [RegExmatch.Groups[2].Value, (RenderQueue.IndexOf(Item) + 1).ToString]); - Progress.ST_WaitingForAErender := Language[LANG].RenderingForm.WaitingForAerender; - Progress.ST_Rendering := Language[LANG].RenderingForm.Rendering; - Progress.ST_FinishedRender := Language[LANG].RenderingForm.RenderingFinished; - Progress.ST_RenderError := Language[LANG].RenderingForm.RenderingError; + Progress.ST_WaitingForAErender := Language[Settings.Language].RenderingForm.WaitingForAerender; + Progress.ST_Rendering := Language[Settings.Language].RenderingForm.Rendering; + Progress.ST_FinishedRender := Language[Settings.Language].RenderingForm.RenderingFinished; + Progress.ST_RenderError := Language[Settings.Language].RenderingForm.RenderingError; Progress.InFrame := -1; Progress.OutFrame := 1; Progress.Value := -1; @@ -448,7 +449,7 @@ TRenderData = record /// The type itself totalProgressPercentage.Text := Trunc((TotalProgressBar.Value / TotalProgressBar.Max) * 100).ToString + '%'; {$IFDEF MSWINDOWS}MainTaskBar.TaskBarProgress := Trunc((TotalProgressBar.Value / TotalProgressBar.Max) * 100);{$ENDIF MSWINDOWS} if (TotalProgressBar.Max = 0) or (TotalProgressBar.Max = 1) then - framesLabel.Text := Language[LANG].RenderingForm.WaitingForAerender + framesLabel.Text := Language[Settings.Language].RenderingForm.WaitingForAerender else framesLabel.Text := TotalProgressBar.Value.ToString + ' / ' + (TotalProgressBar.Max - 1).ToString; end; @@ -509,7 +510,7 @@ procedure TRenderingForm.StopwatchTimerTimer(Sender: TObject); // This causes on macOS // [dccosx64 Fatal Error] RenderingUnit.pas(587): F2084 Internal Error: URW1237 // Workaround: Get string that is already in array and pass it through an inline variable - var TimeElapsed: String := Language[LANG].RenderingForm.TimeElapsed; + var TimeElapsed: String := Language[Settings.Language].RenderingForm.TimeElapsed; timeElapsedLabel.Text := TimeElapsed + FormatDateTime('hh:nn:ss', Now - CurrentTime); end; diff --git a/src/SettingsUnit.pas b/src/SettingsUnit.pas index aac98ce..96cffa7 100644 --- a/src/SettingsUnit.pas +++ b/src/SettingsUnit.pas @@ -56,6 +56,7 @@ interface {$ENDREGION} AErenderLauncher.SysUtils, + AErenderLauncher.Types, {$REGION ' Windows Only Libraries '}{$IFDEF MSWINDOWS} Winapi.ShellAPI, Winapi.Windows, FMX.Platform.Win, Winapi.TlHelp32; @@ -284,7 +285,7 @@ procedure TSettingsForm.SetLanguage(LanguageCode: Integer); Language[LanguageCode].SettingsForm.MinimizeLauncher, Language[LanguageCode].SettingsForm.CloseLauncher ]); - onRenderStartBox.ItemIndex := ONRENDERSTART; + onRenderStartBox.ItemIndex := Settings.OnRenderStart; end; @@ -324,7 +325,7 @@ procedure TSettingsForm.aerenderPathSelectClick(Sender: TObject); //AERPATH := OpenDialog1.FileName; end; {$ENDIF MSWINDOWS} - AERPATH := aerenderPath.Text; + Settings.AErenderPath := aerenderPath.Text; end; procedure TSettingsForm.Button1Click(Sender: TObject); @@ -409,7 +410,7 @@ procedure TSettingsForm.Button3Click(Sender: TObject); procedure TSettingsForm.delFilesCheckBoxChange(Sender: TObject); begin - MainUnit.DelTempFiles := BoolToStr(delFilesCheckBox.IsChecked, True); + Settings.DeleteTemporary := delFilesCheckBox.IsChecked; end; procedure TSettingsForm.dpi100Change(Sender: TObject); @@ -440,11 +441,11 @@ procedure TSettingsForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := True; SettingsForm.Close; - AERPATH := aerenderPath.Text; - LANG := langBox.ItemIndex; - DEFPRGPATH := defaultProjectsPath.Text; - DEFOUTPATH := defaultOutputPath.Text; - ONRENDERSTART := onRenderStartBox.ItemIndex; + Settings.AErenderPath := aerenderPath.Text; + Settings.Language := langBox.ItemIndex; + Settings.DefaultProjectPath := defaultProjectsPath.Text; + Settings.DefaultOutputPath := defaultOutputPath.Text; + Settings.OnRenderStart := onRenderStartBox.ItemIndex; end; procedure TSettingsForm.FormCreate(Sender: TObject); @@ -453,12 +454,12 @@ procedure TSettingsForm.FormCreate(Sender: TObject); begin var AErenderDetectionThread: TThread := TThread.CreateAnonymousThread(procedure begin try - if AERPATH.IsEmpty then - AERPATH := DetectAerender + {$IFDEF MSWINDOWS}'\Support Files\aerender.exe'{$ENDIF MSWINDOWS} + if Settings.AErenderPath.IsEmpty then + Settings.AErenderPath := DetectAerender + {$IFDEF MSWINDOWS}'\Support Files\aerender.exe'{$ENDIF MSWINDOWS} {$IFDEF MACOS}'/aerender'{$ENDIF MACOS}; except on Exception do - AERPATH := ''; + Settings.AErenderPath := ''; end; {$IFDEF MSWINDOWS}OpenDialog1.InitialDir := 'C:\Program Files\Adobe';{$ENDIF MSWINDOWS} limitRenderEdit.Text := (GetPlatformThreadsCount / 2).ToString; @@ -479,13 +480,13 @@ procedure TSettingsForm.FormKeyDown(Sender: TObject; var Key: Word; procedure TSettingsForm.FormShow(Sender: TObject); begin - aerenderPath.Text := AERPATH; - defaultProjectsPath.Text := DEFPRGPATH; - defaultOutputPath.Text := DEFOUTPATH; - HandleCheckBox.IsChecked := StrToBool(AERH); - delFilesCheckBox.IsChecked := StrToBool(DelTempFiles); - langBox.ItemIndex := LANG; - onRenderStartBox.ItemIndex := ONRENDERSTART; + aerenderPath.Text := Settings.AErenderPath; + defaultProjectsPath.Text := Settings.DefaultProjectPath; + defaultOutputPath.Text := Settings.DefaultOutputPath; + HandleCheckBox.IsChecked := Settings.AErenderHandle; + delFilesCheckBox.IsChecked := Settings.AErenderHandle; + langBox.ItemIndex := Settings.Language; + onRenderStartBox.ItemIndex := Settings.OnRenderStart; {$IFDEF MSWINDOWS} aerenderPath.TextPrompt := 'C:\Program Files\Adobe\Adobe After Effects CC\Support Files\aerender.exe'; OpenDialog1.Filter := 'After Effects Render Engine|aerender.exe'; @@ -499,16 +500,13 @@ procedure TSettingsForm.FormShow(Sender: TObject); procedure TSettingsForm.HandleCheckBoxChange(Sender: TObject); begin - if HandleCheckBox.IsChecked then - begin - AERH := 'True'; - RenderingForm.emptyLabel.Text := Language[LANG].RenderingForm.QueueIsEmpty; - end - else - begin - AERH := 'False'; - RenderingForm.emptyLabel.Text := Language[LANG].RenderingForm.HandleDisabled; - end; + if HandleCheckBox.IsChecked then begin + Settings.AErenderHandle := True; + RenderingForm.emptyLabel.Text := Language[Settings.Language].RenderingForm.QueueIsEmpty; + end else begin + Settings.AErenderHandle := False; + RenderingForm.emptyLabel.Text := Language[Settings.Language].RenderingForm.HandleDisabled; + end; end; procedure TSettingsForm.langBoxChange(Sender: TObject); @@ -517,8 +515,8 @@ procedure TSettingsForm.langBoxChange(Sender: TObject); /// will be invoked by the OnShow event of the form if (not langChangeLabel.Visible) and (langBox.IsFocused) then begin UIExpander.Height := 112; - LANG := langBox.ItemIndex; - langChangeLabel.Text := Language[LANG].SettingsForm.LangChange; + Settings.Language := langBox.ItemIndex; + langChangeLabel.Text := Language[Settings.Language].SettingsForm.LangChange; langChangeLabel.Visible := True; end; //MainUnit.ChangeLanguage(langBox.ItemIndex); @@ -540,7 +538,7 @@ procedure TSettingsForm.refreshAerenderClick(Sender: TObject); aerenderPath.Text := DetectAerender + {$IFDEF MSWINDOWS}'\Support Files\aerender.exe'{$ENDIF MSWINDOWS} {$IFDEF MACOS}'/aerender'{$ENDIF MACOS}; except on E: Exception do begin - TDialogServiceSync.MessageDialog((Language[LANG].Errors.aerenderUndetectable + #13#10 + E.ToString()), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0) + TDialogServiceSync.MessageDialog((Language[Settings.Language].Errors.aerenderUndetectable + #13#10 + E.ToString()), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0) end; end; end; @@ -560,7 +558,7 @@ procedure TSettingsForm.resetLanucherClick(Sender: TObject); if (TDialogServiceSync.MessageDialog(('Launcher configuration will be renewed. This will delete all your setting and output modules. Application will be restarted' + #13#10 + 'This action is irreversible! Proceed?'), TMsgDlgType.mtWarning, mbOKCancel, TMsgDlgBtn.mbOK, 0) = 1) then begin - InitConfiguration(APPFOLDER + 'AErenderConfiguration.xml'); + Settings.ResetAndSave(APPFOLDER + 'AErenderConfiguration.xml'); {$IFDEF MSWINDOWS}ShellExecute(0, 'OPEN', PChar(ParamStr(0)), '', '', SW_SHOWNORMAL);{$ENDIF MSWINDOWS} {$IFDEF MACOS}_system(PAnsiChar('open "' + AnsiString(ParamStr(0)) + '" &'));{$ENDIF MACOS} Halt; @@ -571,7 +569,7 @@ procedure TSettingsForm.styleBoxChange(Sender: TObject); begin case styleBox.ItemIndex of 0:begin - STYLE := 0; + Settings.Style := 0; MainForm.SettingsIcon.Fill.Color := $FFFFFFFF; MainForm.InfoIcon.Fill.Color := $FFFFFFFF; @@ -592,7 +590,7 @@ procedure TSettingsForm.styleBoxChange(Sender: TObject); OutputModuleEditorForm.StyleBook := MainForm.AERModernStyle; end; 1:begin - STYLE := 1; + Settings.Style := 1; MainForm.SettingsIcon.Fill.Color := $FFFFFFFF; MainForm.InfoIcon.Fill.Color := $FFFFFFFF; @@ -613,7 +611,7 @@ procedure TSettingsForm.styleBoxChange(Sender: TObject); OutputModuleEditorForm.StyleBook := MainForm.AERModernAnimatedStyle; end; 2:begin - STYLE := 2; + Settings.Style := 2; MainForm.SettingsIcon.Fill.Color := $FF000000; MainForm.InfoIcon.Fill.Color := $FF000000; diff --git a/src/lib/AErenderLauncher.Rendering.pas b/src/lib/AErenderLauncher.Rendering.pas index d0bd1df..b790c2a 100644 --- a/src/lib/AErenderLauncher.Rendering.pas +++ b/src/lib/AErenderLauncher.Rendering.pas @@ -6,7 +6,10 @@ interface uses System.SysUtils, System.Classes, System.Generics.Collections, System.JSON, - AErenderLauncher.Math, AErenderLauncher.IO, AErenderLauncher.AerenderParser; + + AErenderLauncher.Math, + AErenderLauncher.IO, + AErenderLauncher.AerenderParser; type AERParamException = class(Exception); @@ -141,7 +144,7 @@ TRenderTask = class(TObject) implementation uses - MainUnit; + AErenderLauncher.Types; (****************) (* TFrameSpan *) diff --git a/src/lib/AErenderLauncher.SysUtils.pas b/src/lib/AErenderLauncher.SysUtils.pas index 9617079..76b470c 100644 --- a/src/lib/AErenderLauncher.SysUtils.pas +++ b/src/lib/AErenderLauncher.SysUtils.pas @@ -43,7 +43,7 @@ interface implementation uses - MainUnit; + AErenderLauncher.Types; function GetPlatformMemorySize: Int64; begin diff --git a/src/lib/AErenderLauncher.Types.pas b/src/lib/AErenderLauncher.Types.pas index bb0bc38..b60d3a3 100644 --- a/src/lib/AErenderLauncher.Types.pas +++ b/src/lib/AErenderLauncher.Types.pas @@ -3,21 +3,28 @@ interface uses - System.Generics.Collections, AErenderLauncher.Rendering; + System.SysUtils, System.Generics.Collections, AErenderLauncher.Rendering, + Xml.xmldom, + Xml.XMLIntf, + Xml.adomxmldom, + Xml.XMLDoc, + Xml.omnixmldom; type + AERSettingsException = class(Exception); + OutputModule = record Module, Mask: String; Imported: Boolean; - end; - - RenderSetting = record - Setting: String; - Imported: Boolean; + class operator Equal(a: OutputModule; b: OutputModule): Boolean; + class operator NotEqual(a: OutputModule; b: OutputModule): Boolean; end; TSettings = record + private + procedure InitOutputModules; + public Language: Integer; Style: Integer; AErenderPath: String; @@ -36,31 +43,292 @@ TSettings = record MissingFiles: Boolean; Sound: Boolean; Multithreaded: Boolean; + CustomPropertiesEnabled: Boolean; CustomProperties: String; MemoryLimit: Single; CacheLimit: Single; + SelectedOutputModule: Integer; OutputModules: TArray; - RenderSettings: TArray; - - RecentProjects: TArray; + RenderSettings: String; - constructor LoadFromXMLFile(const APath: String; const Skip: Boolean); - function SaveToFile(const APath: String): Boolean; + RecentProjects: array [0..9] of String; + constructor LoadFromXMLFile(const APath: String; const Skip: Boolean = True); + constructor LoadFromXMLFileLegacy(const APath: String); + procedure SaveToFile(const APath: String); + procedure Reset; + procedure ResetAndSave(const APath: String); end; +const + PLATFORMPATHSEPARATOR = {$IFDEF MSWINDOWS}'\'{$ELSE MACOS}'/'{$ENDIF}; +var + APPFOLDER: String; + Settings: TSettings; implementation -constructor TSettings.LoadFromXMLFile(const APath: string; const Skip: Boolean); +{$REGION ' OutputModule '} + +class operator OutputModule.Equal(a: OutputModule; b: OutputModule): Boolean; +begin + Result := (a.Module = b.Module) and (a.Mask = b.Mask); +end; + +class operator OutputModule.NotEqual(a: OutputModule; b: OutputModule): Boolean; begin - // + Result := (a.Module <> b.Module) or (a.Mask <> b.Mask); +end; + +{$ENDREGION} + +{$REGION ' TSettings '} + +procedure TSettings.InitOutputModules; +begin + SetLength(Self.OutputModules, 10); + + Self.OutputModules[0].Module := 'Lossless'; + Self.OutputModules[0].Mask := '[compName].[fileExtension]'; + Self.OutputModules[0].Imported := False; + + Self.OutputModules[1].Module := 'AIFF 48kHz'; + Self.OutputModules[1].Mask := '[compName].[fileExtension]'; + Self.OutputModules[1].Imported := False; + + Self.OutputModules[2].Module := 'Alpha Only'; + Self.OutputModules[2].Mask := '[compName].[fileExtension]'; + Self.OutputModules[2].Imported := False; + + Self.OutputModules[3].Module := 'AVI DV NTSC 48kHz'; + Self.OutputModules[3].Mask := '[compName].[fileExtension]'; + Self.OutputModules[3].Imported := False; + + Self.OutputModules[4].Module := 'AVI DV PAL 48kHz'; + Self.OutputModules[4].Mask := '[compName].[fileExtension]'; + Self.OutputModules[4].Imported := False; + + Self.OutputModules[5].Module := 'Lossless with Alpha'; + Self.OutputModules[5].Mask := '[compName].[fileExtension]'; + Self.OutputModules[5].Imported := False; + + Self.OutputModules[6].Module := 'Multi-Machine Sequence'; + Self.OutputModules[6].Mask := '[compName]_[#####].[fileExtension]'; + Self.OutputModules[6].Imported := False; + + Self.OutputModules[7].Module := 'Photoshop'; + Self.OutputModules[7].Mask := '[compName]_[#####].[fileExtension]'; + Self.OutputModules[7].Imported := False; + + Self.OutputModules[8].Module := 'Save Current Preview'; + Self.OutputModules[8].Mask := '[compName].[fileExtension]'; + Self.OutputModules[8].Imported := False; + + Self.OutputModules[9].Module := 'TIFF Sequence with Alpha'; + Self.OutputModules[9].Mask := '[compName]_[#####].[fileExtension]'; + Self.OutputModules[9].Imported := False; end; -function TSettings.SaveToFile(const APath: string): Boolean; +constructor TSettings.LoadFromXMLFile(const APath: String; const Skip: Boolean = True); +var + Config: IXMLDocument; + RootNode: IXMLNode; begin + Config := TXMLDocument.Create(nil); + Config.LoadFromFile(APath); + Config.Active := True; + + RootNode := Config.DocumentElement; + + Self.Language := RootNode.ChildNodes['Language'].Text.ToInteger; + Self.Style := RootNode.ChildNodes['Style'].Text.ToInteger; + Self.AErenderPath := RootNode.ChildNodes['AErenderPath'].Text; + Self.OnRenderStart := RootNode.ChildNodes['OnRenderStart'].Text.ToInteger; + Self.DefaultProjectPath := RootNode.ChildNodes['DefaultProjectPath'].Text; + Self.DefaultOutputPath := RootNode.ChildNodes['DefaultOutputPath'].Text; + Self.AErenderHandle := RootNode.ChildNodes['AErenderHandle'].Text.ToBoolean; + Self.DeleteTemporary := RootNode.ChildNodes['DeleteTemporary'].Text.ToBoolean; + + Self.LastProjectPath := RootNode.ChildNodes['LastProjectPath'].Text; + Self.LastOutputPath := RootNode.ChildNodes['LastOutputPath'].Text; + Self.TemporarySavePath := RootNode.ChildNodes['TemporarySavePath'].Text; + + Self.MissingFiles := RootNode.ChildNodes['MissingFiles'].Text.ToBoolean; + Self.Sound := RootNode.ChildNodes['Sound'].Text.ToBoolean; + Self.Multithreaded := RootNode.ChildNodes['Multithreaded'].Text.ToBoolean; + Self.CustomPropertiesEnabled := StrToBool(RootNode.ChildNodes['CustomProperties'].Attributes['Enabled']); + Self.CustomProperties := RootNode.ChildNodes['CustomProperties'].Text; + Self.MemoryLimit := RootNode.ChildNodes['MemoryLimit'].Text.ToSingle; + Self.CacheLimit := RootNode.ChildNodes['CacheLimit'].Text.ToSingle; + + if RootNode.ChildNodes['OutputModules'].ChildNodes.Count <> 0 then begin + SetLength(Self.OutputModules, RootNode.ChildNodes['OutputModules'].ChildNodes.Count); + for var i := 0 to High(Self.OutputModules) do begin + Self.OutputModules[i].Module := RootNode.ChildNodes['OutputModules'].ChildNodes[i].ChildNodes['Module'].Text; + Self.OutputModules[i].Mask := RootNode.ChildNodes['OutputModules'].ChildNodes[i].ChildNodes['Mask'].Text; + Self.OutputModules[i].Imported := StrToBool(RootNode.ChildNodes['OutputModules'].ChildNodes[i].Attributes['Imported']); + end; + Self.SelectedOutputModule := StrToInt(RootNode.ChildNodes['OutputModules'].Attributes['Selected']); + end else + Self.InitOutputModules; + + Self.RenderSettings := RootNode.ChildNodes['RenderSettings'].Text; + + for var i := 0 to 9 do begin + Self.RecentProjects[i] := RootNode.ChildNodes['RecentProjects'].ChildNodes[i].Text; + end; end; +constructor TSettings.LoadFromXMLFileLegacy(const APath: String); +var + Config: IXMLDocument; + RootNode: IXMLNode; +begin + Config := TXMLDocument.Create(nil); + Config.LoadFromFile(APath); + Config.Active := True; + + RootNode := Config.DocumentElement; + + Self.Language := RootNode.ChildNodes['lang'].Text.ToInteger; + Self.Style := RootNode.ChildNodes['style'].Text.ToInteger; + Self.AErenderPath := RootNode.ChildNodes['aerender'].Text; + Self.OnRenderStart := RootNode.ChildNodes['onRenderStart'].Text.ToInteger; + Self.DefaultProjectPath := RootNode.ChildNodes['defprgpath'].Text; + Self.DefaultOutputPath := RootNode.ChildNodes['defoutpath'].Text; + Self.AErenderHandle := RootNode.ChildNodes['handle'].Text.ToBoolean; + Self.DeleteTemporary := RootNode.ChildNodes['delTempFiles'].Text.ToBoolean; + + Self.LastProjectPath := RootNode.ChildNodes['projectPath'].Text; + Self.LastOutputPath := RootNode.ChildNodes['outputPath'].Text; + Self.TemporarySavePath := RootNode.ChildNodes['tempSavePath'].Text; + + Self.MissingFiles := RootNode.ChildNodes['missingFiles'].Text.ToBoolean; + Self.Sound := RootNode.ChildNodes['sound'].Text.ToBoolean; + Self.Multithreaded := RootNode.ChildNodes['thread'].Text.ToBoolean; + Self.CustomPropertiesEnabled := StrToBool(RootNode.ChildNodes['prop'].Attributes['enabled']); + Self.CustomProperties := RootNode.ChildNodes['prop'].Text; + Self.MemoryLimit := RootNode.ChildNodes['memoryLimit'].Text.ToSingle; + Self.CacheLimit := RootNode.ChildNodes['cacheLimit'].Text.ToSingle; + + if RootNode.ChildNodes['outputModule'].ChildNodes.Count <> 0 then begin + SetLength(Self.OutputModules, RootNode.ChildNodes['outputModule'].ChildNodes.Count); + for var i := 0 to High(Self.OutputModules) do begin + Self.OutputModules[i].Module := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['moduleName'].Text; + Self.OutputModules[i].Mask := RootNode.ChildNodes['outputModule'].ChildNodes[i].ChildNodes['filemask'].Text; + Self.OutputModules[i].Imported := StrToBool(RootNode.ChildNodes['outputModule'].ChildNodes[i].Attributes['imported']); + end; + Self.SelectedOutputModule := StrToInt(RootNode.ChildNodes['outputModule'].Attributes['selected']); + end else + Self.InitOutputModules; + + Self.RenderSettings := RootNode.ChildNodes['renderSettings'].Text; + + for var i := 0 to 9 do begin + Self.RecentProjects[i] := RootNode.ChildNodes['recentProjects'].ChildNodes[i].Text; + end; +end; + +procedure TSettings.SaveToFile(const APath: string); +var + Config: IXMLDocument; + RootNode: IXMLNode; +begin + Config := TXMLDocument.Create(nil); + Config.Active := True; + Config.Encoding := 'utf-8'; + Config.Options := [doNodeAutoIndent]; + + RootNode := Config.AddChild('LauncherConfig'); + + RootNode.AddChild('Language').Text := Self.Language.ToString; + RootNode.AddChild('Style').Text := Self.Style.ToString; + RootNode.AddChild('AErenderPath').Text := Self.AErenderPath; + RootNode.AddChild('OnRenderStart').Text := Self.OnRenderStart.ToString; + RootNode.AddChild('DefaultProjectPath').Text := Self.DefaultProjectPath; + RootNode.AddChild('DefaultOutputPath').Text := Self.DefaultOutputPath; + RootNode.AddChild('AErenderHandle').Text := BoolToStr(Self.AErenderHandle, True); + RootNode.AddChild('DeleteTemporary').Text := BoolToStr(Self.DeleteTemporary, True); + + RootNode.AddChild('LastProjectPath').Text := Self.LastProjectPath; + RootNode.AddChild('LastOutputPath').Text := Self.LastOutputPath; + RootNode.AddChild('TemporarySavePath').Text := Self.TemporarySavePath; + + RootNode.AddChild('MissingFiles').Text := BoolToStr(Self.MissingFiles, True); + RootNode.AddChild('Sound').Text := BoolToStr(Self.Sound, True); + RootNode.AddChild('Multithreaded').Text := BoolToStr(Self.Multithreaded, True); + RootNode.AddChild('CustomProperties').Text := Self.CustomProperties; + RootNode.ChildNodes['CustomProperties'].Attributes['Enabled'] := BoolToStr(Self.CustomPropertiesEnabled, True); + + RootNode.AddChild('MemoryLimit').Text := Self.MemoryLimit.ToString; + RootNode.AddChild('CacheLimit').Text := Self.CacheLimit.ToString; + + var ChildNode: IXMLNode := RootNode.AddChild('OutputModules'); + ChildNode.Attributes['Selected'] := Self.SelectedOutputModule; + for var i := 0 to High(OutputModules) do begin + var ModuleNode: IXMLNode := RootNode.ChildNodes['OutputModules'].AddChild('OutputModule'); + ModuleNode.Attributes['Imported'] := BoolToStr(OutputModules[i].Imported, True); + ModuleNode.AddChild('Module').Text := OutputModules[i].Module; + ModuleNode.AddChild('Mask').Text := OutputModules[i].Mask; + end; + + ChildNode := RootNode.AddChild('RenderSettings'); + ChildNode.Text := Self.RenderSettings; + + ChildNode := RootNode.AddChild('RecentProjects'); + for var i := 0 to 9 do begin + if Self.RecentProjects[i] = '' then + ChildNode.AddChild('Project').Text := '(empty)' + else + ChildNode.AddChild('Project').Text := Self.RecentProjects[i] + end; + + Config.SaveToFile(APath); +end; + +procedure TSettings.Reset; +begin + Self.InitOutputModules; + + Self.Language := 0; + Self.Style := 0; + Self.AErenderPath := ''; + Self.OnRenderStart := 0; + Self.DefaultProjectPath := ''; + Self.DefaultOutputPath := ''; + Self.AErenderHandle := True; + Self.DeleteTemporary := True; + + Self.LastProjectPath := ''; + Self.LastOutputPath := ''; + Self.TemporarySavePath := ''; + + Self.MissingFiles := False; + Self.Sound := True; + Self.Multithreaded := False; + Self.CustomPropertiesEnabled := False; + Self.CustomProperties := ''; + Self.MemoryLimit := 100; + Self.CacheLimit := 100; + + Self.RenderSettings := 'Best Settings'; + + for var i := 0 to 9 do begin + Self.RecentProjects[i] := '(empty)'; + end; +end; + +procedure TSettings.ResetAndSave(const APath: string); +begin + Self.Reset; + Self.SaveToFile(APath); +end; + +{$ENDREGION} + +initialization + APPFOLDER := {$IFDEF MSWINDOWS}'C:\ProgramData\AErender'{$ELSE MACOS}GetEnvironmentVariable('HOME') + '/Documents/AErender/'{$ENDIF}; + end. From 29e2f6136e6c298a39a0f026b369c45bd76e91b0 Mon Sep 17 00:00:00 2001 From: LilyStilson Date: Wed, 3 Nov 2021 23:48:26 +1000 Subject: [PATCH 25/29] Updated signing, reorganized dir --- src/lib/{ => FMX/DX 10.4.3}/FMX.Ani.pas | 0 src/lib/{ => FMX/DX 10.4.3}/FMX.Graphics.pas | 0 src/lib/{ => FMX/DX 10.4.3}/FMX.Platform.Win.pas | 0 src/lib/{ => FMX/DX 10.4.3}/FMX.Taskbar.pas | 0 src/lib/{ => FMX/DX 10.4.3}/FMX.TreeView.pas | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename src/lib/{ => FMX/DX 10.4.3}/FMX.Ani.pas (100%) rename src/lib/{ => FMX/DX 10.4.3}/FMX.Graphics.pas (100%) rename src/lib/{ => FMX/DX 10.4.3}/FMX.Platform.Win.pas (100%) rename src/lib/{ => FMX/DX 10.4.3}/FMX.Taskbar.pas (100%) rename src/lib/{ => FMX/DX 10.4.3}/FMX.TreeView.pas (100%) diff --git a/src/lib/FMX.Ani.pas b/src/lib/FMX/DX 10.4.3/FMX.Ani.pas similarity index 100% rename from src/lib/FMX.Ani.pas rename to src/lib/FMX/DX 10.4.3/FMX.Ani.pas diff --git a/src/lib/FMX.Graphics.pas b/src/lib/FMX/DX 10.4.3/FMX.Graphics.pas similarity index 100% rename from src/lib/FMX.Graphics.pas rename to src/lib/FMX/DX 10.4.3/FMX.Graphics.pas diff --git a/src/lib/FMX.Platform.Win.pas b/src/lib/FMX/DX 10.4.3/FMX.Platform.Win.pas similarity index 100% rename from src/lib/FMX.Platform.Win.pas rename to src/lib/FMX/DX 10.4.3/FMX.Platform.Win.pas diff --git a/src/lib/FMX.Taskbar.pas b/src/lib/FMX/DX 10.4.3/FMX.Taskbar.pas similarity index 100% rename from src/lib/FMX.Taskbar.pas rename to src/lib/FMX/DX 10.4.3/FMX.Taskbar.pas diff --git a/src/lib/FMX.TreeView.pas b/src/lib/FMX/DX 10.4.3/FMX.TreeView.pas similarity index 100% rename from src/lib/FMX.TreeView.pas rename to src/lib/FMX/DX 10.4.3/FMX.TreeView.pas From dec155e66410d9b4c257ddd06c234cb36f39d003 Mon Sep 17 00:00:00 2001 From: LilyStilson Date: Wed, 3 Nov 2021 23:57:13 +1000 Subject: [PATCH 26/29] Updated project config, added macOS ARM target --- src/AErender_Launcher.dpr | 5 ++--- src/AErender_Launcher.dproj | 7 +++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/AErender_Launcher.dpr b/src/AErender_Launcher.dpr index 3bc3441..97d131d 100644 --- a/src/AErender_Launcher.dpr +++ b/src/AErender_Launcher.dpr @@ -58,9 +58,8 @@ uses AErenderLauncher.IO in 'lib\AErenderLauncher.IO.pas', AErenderLauncher.Math in 'lib\AErenderLauncher.Math.pas' {/System.Types.Nullable in 'lib\System.Types.Nullable.pas';}, AErenderLauncher.SysUtils in 'lib\AErenderLauncher.SysUtils.pas', - AErenderLauncher.Types in 'lib\AErenderLauncher.Types.pas'; - -//System.Types.Nullable in 'lib\System.Types.Nullable.pas'; + AErenderLauncher.Types in 'lib\AErenderLauncher.Types.pas', + MacApi.Dialogs in 'lib\MacApi.Dialogs.pas'; {$R *.res} diff --git a/src/AErender_Launcher.dproj b/src/AErender_Launcher.dproj index d26ac6d..f6ab92f 100644 --- a/src/AErender_Launcher.dproj +++ b/src/AErender_Launcher.dproj @@ -228,6 +228,8 @@ 8 true 6 + 65001 + true Debug @@ -267,9 +269,9 @@ true 1033 0 - 8 + 9 true - 5 + 65001 ..\icons\platform\Launcher2020.icns @@ -410,6 +412,7 @@ + ResourceItem RCDATA From b42e9ef20d26340924b92a2fcd4a173aad343e3b Mon Sep 17 00:00:00 2001 From: LilyStilson Date: Thu, 4 Nov 2021 00:38:06 +1000 Subject: [PATCH 27/29] Migrated to RAD Studio 11.0 Alexandria Added backwards compilation compability with RAD Studio 10.4 Seattle --- src/AErender_Launcher.dpr | 32 +- src/AErender_Launcher.dproj | 432 +- .../FMX/{DX 10.4.3 => DX 10.4}/FMX.Ani.pas | 0 .../{DX 10.4.3 => DX 10.4}/FMX.Graphics.pas | 1 + .../FMX.Platform.Win.pas | 14 + .../{DX 10.4.3 => DX 10.4}/FMX.TreeView.pas | 0 src/lib/FMX/DX 11.0/FMX.Graphics.pas | 7439 +++++++++++++++++ src/lib/FMX/DX 11.0/FMX.Platform.Win.pas | 4444 ++++++++++ src/lib/FMX/DX 11.0/FMX.TreeView.pas | 2824 +++++++ src/lib/FMX/{DX 10.4.3 => }/FMX.Taskbar.pas | 0 10 files changed, 15040 insertions(+), 146 deletions(-) rename src/lib/FMX/{DX 10.4.3 => DX 10.4}/FMX.Ani.pas (100%) rename src/lib/FMX/{DX 10.4.3 => DX 10.4}/FMX.Graphics.pas (99%) rename src/lib/FMX/{DX 10.4.3 => DX 10.4}/FMX.Platform.Win.pas (99%) rename src/lib/FMX/{DX 10.4.3 => DX 10.4}/FMX.TreeView.pas (100%) create mode 100644 src/lib/FMX/DX 11.0/FMX.Graphics.pas create mode 100644 src/lib/FMX/DX 11.0/FMX.Platform.Win.pas create mode 100644 src/lib/FMX/DX 11.0/FMX.TreeView.pas rename src/lib/FMX/{DX 10.4.3 => }/FMX.Taskbar.pas (100%) diff --git a/src/AErender_Launcher.dpr b/src/AErender_Launcher.dpr index 97d131d..ce708cc 100644 --- a/src/AErender_Launcher.dpr +++ b/src/AErender_Launcher.dpr @@ -31,9 +31,29 @@ uses System.StartUpCopy, System.SysUtils, FMX.Forms, - FMX.Graphics in 'lib\FMX.Graphics.pas', - FMX.Ani in 'lib\FMX.Ani.pas', - FMX.TreeView in 'lib\FMX.TreeView.pas', + + /// RAD Studio 10.4 Sydney + {$IF CompilerVersion = 34.0} + FMX.Graphics in 'lib\FMX\DX 10.4\FMX.Graphics.pas', + FMX.Ani in 'lib\FMX\DX 10.4\FMX.Ani.pas', + FMX.TreeView in 'lib\FMX\DX 10.4\FMX.TreeView.pas', + {$IFDEF MSWINDOWS} + FMX.Platform.Win in 'lib\FMX\DX 10.4\FMX.Platform.Win.pas', + {$ENDIF MSWINDOWS} + + /// RAD Studio 11.0 Alexandria + /// + /// Bug with double animation on text fields in FMX.Ani was fixed, + /// no need to include it anymore + {$ELSE CompilerVersion = 35.0} + FMX.Graphics in 'lib\FMX\DX 11.0\FMX.Graphics.pas', + FMX.TreeView in 'lib\FMX\DX 11.0\FMX.TreeView.pas', + {$IFDEF MSWINDOWS} + FMX.Platform.Win in 'lib\FMX\DX 11.0\FMX.Platform.Win.pas', + {$ENDIF MSWINDOWS} + + {$ENDIF} + FMX.CompLabel in 'lib\Components\TCompLabel\Package\FMX.CompLabel.pas', FMX.RenderProgress in 'lib\Components\TRenderProgress\Package\FMX.RenderProgress.pas', SplashScreenUnit in 'SplashScreenUnit.pas' {SplashScreenForm}, @@ -47,9 +67,10 @@ uses OutputModuleEditorUnit in 'OutputModuleEditorUnit.pas' {OutputModuleEditorForm}, {$IFDEF MACOS} Mac.CodeBlocks in 'lib\Mac.CodeBlocks.pas', + MacApi.Dialogs in 'lib\MacApi.Dialogs.pas', {$ENDIF MACOS} {$IFDEF MSWINDOWS} - FMX.Taskbar in 'lib\FMX.Taskbar.pas', + FMX.Taskbar in 'lib\FMX\FMX.Taskbar.pas', {$ENDIF MSWINDOWS} AErenderLauncher.Localization in 'lib\AErenderLauncher.Localization.pas', AErenderLauncher.AerenderParser in 'lib\AErenderLauncher.AerenderParser.pas', @@ -58,8 +79,7 @@ uses AErenderLauncher.IO in 'lib\AErenderLauncher.IO.pas', AErenderLauncher.Math in 'lib\AErenderLauncher.Math.pas' {/System.Types.Nullable in 'lib\System.Types.Nullable.pas';}, AErenderLauncher.SysUtils in 'lib\AErenderLauncher.SysUtils.pas', - AErenderLauncher.Types in 'lib\AErenderLauncher.Types.pas', - MacApi.Dialogs in 'lib\MacApi.Dialogs.pas'; + AErenderLauncher.Types in 'lib\AErenderLauncher.Types.pas'; {$R *.res} diff --git a/src/AErender_Launcher.dproj b/src/AErender_Launcher.dproj index f6ab92f..5f3d023 100644 --- a/src/AErender_Launcher.dproj +++ b/src/AErender_Launcher.dproj @@ -7,8 +7,8 @@ AErender_Launcher.dpr Win32 {C2DB1030-533B-41FD-8468-632CB85028C7} - 19.2 - 4099 + 19.3 + 135171 true @@ -18,6 +18,11 @@ Base true + + true + Base + true + true Base @@ -39,6 +44,12 @@ true true + + true + Cfg_1 + true + true + true Cfg_1 @@ -62,6 +73,12 @@ true true + + true + Cfg_2 + true + true + true Cfg_2 @@ -85,6 +102,12 @@ true true + + true + Cfg_3 + true + true + true Cfg_3 @@ -108,6 +131,12 @@ true true + + true + Cfg_4 + true + true + true Cfg_4 @@ -156,6 +185,23 @@ ..\icons\platform\Launcher2020.ico /usr/X11/bin/xterm -e "%debuggee%" + + CFBundleVersion=0.8.9;NSHighResolutionCapable=true;NSLocationUsageDescription=;CFBundleShortVersionString=0.8.9;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Not used;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used + Debug + true + true + Base + true + true + ..\icons\platform\Launcher2020.icns + 9 + 8 + 0 + (None) + true + ..\icons\platform\Launcher2020.ico + /usr/X11/bin/xterm -e "%debuggee%" + PerMonitorV2 Debug @@ -213,6 +259,19 @@ 0 8 + + true + Cfg_1 + true + true + ..\icons\platform\Launcher2020.icns + ..\icons\platform\Launcher2020.ico + ..\(None) + 6 + true + 0 + 8 + true false @@ -260,6 +319,19 @@ 0 8 + + true + Cfg_2 + true + true + ..\icons\platform\Launcher2020.icns + ..\icons\platform\Launcher2020.ico + ..\(None) + 5 + true + 0 + 8 + true ..\icons\platform\Launcher2020.icns @@ -303,6 +375,24 @@ 0 9 + + true + true + Cfg_3 + true + true + true + true + true + true + ..\icons\platform\Launcher2020.icns + ..\icons\platform\Launcher2020.ico + ..\(None) + true + CFBundleVersion=0.9.0;NSHighResolutionCapable=true;NSCalendarsUsageDescription=Not used;NSRemindersUsageDescription=Not used;NSCameraUsageDescription=Not used;NSMicrophoneUsageDescription=Not used;NSMotionUsageDescription=Not used;NSDesktopFolderUsageDescription=Not used;NSDocumentsFolderUsageDescription=Data saving;NSDownloadsFolderUsageDescription=Not used;NSNetworkVolumesUsageDescription=Not used;NSRemovableVolumesUsageDescription=Not used;NSSpeechRecognitionUsageDescription=Not used;CFBundleShortVersionString=0.9.0 + 0 + 9 + true ..\icons\platform\Launcher2020.icns @@ -342,6 +432,18 @@ 0 8 + + true + true + Cfg_4 + true + ..\icons\platform\Launcher2020.icns + ..\icons\platform\Launcher2020.ico + 5 + true + 0 + 8 + ..\icons\platform\Launcher2020.icns ..\icons\platform\Launcher2020.ico @@ -436,22 +538,22 @@ Base - - Cfg_4 + + Cfg_1 Base Cfg_2 Base - - Cfg_1 - Base - Cfg_3 Base + + Cfg_4 + Base + Delphi.Personality.12 @@ -467,41 +569,43 @@ - - - C:\ProgramData\AErender\Docs - false + + + AErender_Launcher.exe true - - - C:\ProgramData\AErender\Docs - false + + + Assets\ + Logo44x44.png true - - - Contents\Resources\StartUp\ + + + Assets\ + Logo44x44.png true - - - AErender_Launcher.icns + + + false true - - - Contents\Resources\StartUp\ + + + false + AErender_Launcher.exe true - - - AErender_Launcher + + + false + AErender_Launcher.exe true @@ -511,40 +615,45 @@ true - - + + + AErender_Launcher + true + + + + .\ true - + Contents\Resources\StartUp\ true - - - C:\ProgramData\AErender\Docs - false + + + AErender_Launcher true - - - .\ + + true - + - AErender_Launcher + Contents\Resources\StartUp\ true - + - .\ + C:\ProgramData\AErender\Docs + false true @@ -555,94 +664,109 @@ true - + .\ true - + + + Contents\Resources\StartUp\ + true + + + - Assets\ - Logo44x44.png true - - - .\ + + true - + - AErender_Launcher.icns + Contents\Resources\StartUp\ true - - - AErender_Launcher.exe + + true - - + + + AErender_Launcher true - - + + + C:\ProgramData\AErender\Docs + false true - - - .\ + + + AErender_Launcher.icns true - + - Info.plist + AErender_Launcher.icns true - + - false + .\ true - + Contents\Resources\StartUp\ true - - - AErender_Launcher + + + C:\ProgramData\AErender\Docs + false true - + + + true + + + - Assets\ - Logo150x150.png + .\ true - + - AErender_Launcher + Info.plist true - + + + Contents\Resources\StartUp\ + true + + + - Assets\ - Logo44x44.png + AErender_Launcher.rsm true @@ -652,29 +776,31 @@ true - - - C:\ProgramData\AErender\Docs - false + + true - - - false + + AErender_Launcher.exe true - - - false - AErender_Launcher.exe + + + .\ true - - + + + true + + + + + .\ true @@ -685,37 +811,33 @@ - + .\ true - + - Contents\Resources\StartUp\ + AErender_Launcher.icns true - + .\ true - + - Info.plist - true - - - - + AErender_Launcher true - + - .\ + Assets\ + Logo150x150.png true @@ -725,36 +847,33 @@ true - - - Contents\Resources\StartUp\ - true - - - + C:\ProgramData\AErender\Docs false true - + - AErender_Launcher.icns + Info.plist true - + + .\ true - - + + + C:\ProgramData\AErender\Docs + false true - + C:\ProgramData\AErender\Docs false @@ -768,23 +887,6 @@ true - - - AErender_Launcher.rsm - true - - - - - true - - - - - AErender_Launcher.exe - true - - 1 @@ -797,6 +899,16 @@ 0 + + + classes + 64 + + + classes + 64 + + classes @@ -1098,6 +1210,11 @@ 1 .framework + + Contents\MacOS + 1 + .framework + 0 @@ -1125,6 +1242,11 @@ 1 .dylib + + Contents\MacOS + 1 + .dylib + 0 .dll;.bpl @@ -1153,6 +1275,11 @@ 1 .dylib + + Contents\MacOS + 1 + .dylib + 0 .bpl @@ -1182,6 +1309,10 @@ Contents\Resources\StartUp\ 0 + + Contents\Resources\StartUp\ + 0 + 0 @@ -1447,6 +1578,10 @@ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + @@ -1457,6 +1592,10 @@ ..\ 1 + + ..\ + 1 + @@ -1467,6 +1606,10 @@ Contents 1 + + Contents + 1 + @@ -1477,6 +1620,10 @@ Contents\Resources 1 + + Contents\Resources + 1 + @@ -1507,6 +1654,10 @@ Contents\MacOS 1 + + Contents\MacOS + 1 + 0 @@ -1545,23 +1696,24 @@ 1 + + + + + - + - + - - - - False False False - False True + True True True diff --git a/src/lib/FMX/DX 10.4.3/FMX.Ani.pas b/src/lib/FMX/DX 10.4/FMX.Ani.pas similarity index 100% rename from src/lib/FMX/DX 10.4.3/FMX.Ani.pas rename to src/lib/FMX/DX 10.4/FMX.Ani.pas diff --git a/src/lib/FMX/DX 10.4.3/FMX.Graphics.pas b/src/lib/FMX/DX 10.4/FMX.Graphics.pas similarity index 99% rename from src/lib/FMX/DX 10.4.3/FMX.Graphics.pas rename to src/lib/FMX/DX 10.4/FMX.Graphics.pas index c09addd..9fa5e64 100644 --- a/src/lib/FMX/DX 10.4.3/FMX.Graphics.pas +++ b/src/lib/FMX/DX 10.4/FMX.Graphics.pas @@ -4307,6 +4307,7 @@ function TBitmap.GetCanvas: TCanvas; TMonitor.Enter(Self); try CopyToNewReference; + //! Launcher Fix FCanvas := CanvasClass.CreateFromBitmap(Self, TCanvasQuality.HighQuality); finally TMonitor.Exit(Self); diff --git a/src/lib/FMX/DX 10.4.3/FMX.Platform.Win.pas b/src/lib/FMX/DX 10.4/FMX.Platform.Win.pas similarity index 99% rename from src/lib/FMX/DX 10.4.3/FMX.Platform.Win.pas rename to src/lib/FMX/DX 10.4/FMX.Platform.Win.pas index a42f3b0..785616d 100644 --- a/src/lib/FMX/DX 10.4.3/FMX.Platform.Win.pas +++ b/src/lib/FMX/DX 10.4/FMX.Platform.Win.pas @@ -2136,6 +2136,20 @@ function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESUL Result := 0; LForm := FindWindow(hwnd); + //! Launcher Fix + if LForm <> nil then + begin + TMsg.Msg := uMsg; + TMsg.WParam := wParam; + TMsg.LParam := lParam; + TMsg.Result := 0; + + LForm.Dispatch(TMsg); + + uMsg := TMsg.Msg; + wParam := TMsg.WParam; + lParam := TMsg.LParam; + end; Message.Msg := uMsg; Message.WParam := wParam; diff --git a/src/lib/FMX/DX 10.4.3/FMX.TreeView.pas b/src/lib/FMX/DX 10.4/FMX.TreeView.pas similarity index 100% rename from src/lib/FMX/DX 10.4.3/FMX.TreeView.pas rename to src/lib/FMX/DX 10.4/FMX.TreeView.pas diff --git a/src/lib/FMX/DX 11.0/FMX.Graphics.pas b/src/lib/FMX/DX 11.0/FMX.Graphics.pas new file mode 100644 index 0000000..a2dcf12 --- /dev/null +++ b/src/lib/FMX/DX 11.0/FMX.Graphics.pas @@ -0,0 +1,7439 @@ +{*******************************************************} +{ } +{ Delphi FireMonkey Platform } +{ } +{ Copyright(c) 2011-2021 Embarcadero Technologies, Inc. } +{ All rights reserved } +{ } +{*******************************************************} + +unit FMX.Graphics; + +{$MINENUMSIZE 4} +{$H+} + +interface + +{$SCOPEDENUMS ON} + +uses + System.Types, System.UITypes, System.Classes, System.Messaging, System.Generics.Collections, System.SysUtils, + FMX.Types, FMX.Surfaces, System.Math.Vectors; + +type + TCanvas = class; + TCanvasClass = class of TCanvas; + TBitmap = class; + TBitmapImage = class; + TTextSettings = class; + +{ TGradientPoint } + + TGradientPoint = class(TCollectionItem) + private + FColor: TAlphaColor; + FOffset: Single; + procedure SetColor(const Value: TAlphaColor); + procedure SetOffset(const Value: Single); + public + procedure Assign(Source: TPersistent); override; + property IntColor: TAlphaColor read FColor write FColor; + published + property Color: TAlphaColor read FColor write SetColor; + property Offset: Single read FOffset write SetOffset nodefault; + end; + +{ TGradientPoints } + + TGradientPoints = class(TCollection) + private + function GetPoint(Index: Integer): TGradientPoint; + protected + procedure Update(Item: TCollectionItem); override; + public + property Points[Index: Integer]: TGradientPoint read GetPoint; default; + end; + +{ TGradient } + + TGradientStyle = (Linear, Radial); + + TGradient = class(TPersistent) + private + FPoints: TGradientPoints; + FOnChanged: TNotifyEvent; + FStartPosition: TPosition; + FStopPosition: TPosition; + FStyle: TGradientStyle; + FRadialTransform: TTransform; + procedure SetStartPosition(const Value: TPosition); + procedure SetStopPosition(const Value: TPosition); + procedure PositionChanged(Sender: TObject); + procedure SetColor(const Value: TAlphaColor); + procedure SetColor1(const Value: TAlphaColor); + function IsLinearStored: Boolean; + procedure SetStyle(const Value: TGradientStyle); + function IsRadialStored: Boolean; + procedure SetRadialTransform(const Value: TTransform); + procedure SetPoints(const Value: TGradientPoints); + public + constructor Create; + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + procedure Change; + procedure ApplyOpacity(const AOpacity: Single); + function InterpolateColor(Offset: Single): TAlphaColor; overload; + function InterpolateColor(X, Y: Single): TAlphaColor; overload; + function Equal(const AGradient: TGradient): Boolean; + property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; + { fast access } + property Color: TAlphaColor write SetColor; + property Color1: TAlphaColor write SetColor1; + published + property Points: TGradientPoints read FPoints write SetPoints; + property Style: TGradientStyle read FStyle write SetStyle default TGradientStyle.Linear; + { linear } + property StartPosition: TPosition read FStartPosition write SetStartPosition stored IsLinearStored; + property StopPosition: TPosition read FStopPosition write SetStopPosition stored IsLinearStored; + { radial } + property RadialTransform: TTransform read FRadialTransform write SetRadialTransform stored IsRadialStored; + end; + +{ TBrushResource } + + TBrush = class; + TBrushObject = class; + + TBrushResource = class(TInterfacedPersistent, IFreeNotification) + private + FStyleResource: TBrushObject; + FStyleLookup: string; + FOnChanged: TNotifyEvent; + function GetBrush: TBrush; + procedure SetStyleResource(const Value: TBrushObject); + function GetStyleLookup: string; + procedure SetStyleLookup(const Value: string); + { IFreeNotification } + procedure FreeNotification(AObject: TObject); + public + destructor Destroy; override; + property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; + procedure Assign(Source: TPersistent); override; + property Brush: TBrush read GetBrush; + published + property StyleResource: TBrushObject read FStyleResource write SetStyleResource stored False; + property StyleLookup: string read GetStyleLookup write SetStyleLookup; + end; + +{ TBrushBitmap } + + TWrapMode = (Tile, TileOriginal, TileStretch); + + TBrushBitmap = class(TInterfacedPersistent) + private + FOnChanged: TNotifyEvent; + FBitmap: TBitmap; + FWrapMode: TWrapMode; + procedure SetWrapMode(const Value: TWrapMode); + procedure SetBitmap(const Value: TBitmap); + function GetBitmapImage: TBitmapImage; + protected + procedure DoChanged; virtual; + public + constructor Create; + destructor Destroy; override; + property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; + procedure Assign(Source: TPersistent); override; + published + property Bitmap: TBitmap read FBitmap write SetBitmap; + /// Image to be used by the brush. + property Image: TBitmapImage read GetBitmapImage; + property WrapMode: TWrapMode read FWrapMode write SetWrapMode; + end; + +{ TBrush } + + TBrushKind = (None, Solid, Gradient, Bitmap, Resource); + + TBrush = class(TPersistent) + private + FColor: TAlphaColor; + FKind: TBrushKind; + FOnChanged: TNotifyEvent; + FGradient: TGradient; + FDefaultKind: TBrushKind; + FDefaultColor: TAlphaColor; + FResource: TBrushResource; + FBitmap: TBrushBitmap; + FOnGradientChanged: TNotifyEvent; + procedure SetColor(const Value: TAlphaColor); + procedure SetKind(const Value: TBrushKind); + procedure SetGradient(const Value: TGradient); + function IsColorStored: Boolean; + function IsGradientStored: Boolean; + function GetColor: TAlphaColor; + function IsKindStored: Boolean; + procedure SetResource(const Value: TBrushResource); + function IsResourceStored: Boolean; + function IsBitmapStored: Boolean; + protected + procedure GradientChanged(Sender: TObject); + procedure ResourceChanged(Sender: TObject); + procedure BitmapChanged(Sender: TObject); + public + constructor Create(const ADefaultKind: TBrushKind; const ADefaultColor: TAlphaColor); + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; + property OnGradientChanged: TNotifyEvent read FOnGradientChanged write FOnGradientChanged; + property DefaultColor: TAlphaColor read FDefaultColor write FDefaultColor; + property DefaultKind: TBrushKind read FDefaultKind write FDefaultKind; + published + property Color: TAlphaColor read GetColor write SetColor stored IsColorStored; + property Bitmap: TBrushBitmap read FBitmap write FBitmap stored IsBitmapStored; + property Kind: TBrushKind read FKind write SetKind stored IsKindStored; + property Gradient: TGradient read FGradient write SetGradient stored IsGradientStored; + property Resource: TBrushResource read FResource write SetResource stored IsResourceStored; + end; + + TStrokeCap = (Flat, Round); + + TStrokeJoin = (Miter, Round, Bevel); + + TStrokeDash = (Solid, Dash, Dot, DashDot, DashDotDot, Custom); + + TDashArray = TArray; + + TStrokeBrush = class(TBrush) + public type + TDashData = record + DashArray: TDashArray; + DashOffset: Single; + constructor Create(const ADashArray: TDashArray; ADashOffset: Single); + end; + + TDashDevice = (Screen, Printer); + TStdDashes = array [TDashDevice, TStrokeDash] of TDashData; + private class var + FStdDash: TStdDashes; + FStdDashCreated: Boolean; + private + FJoin: TStrokeJoin; + FThickness: Single; + FCap: TStrokeCap; + FDash: TStrokeDash; + FDashArray: TDashArray; + FDashOffset: Single; + function IsThicknessStored: Boolean; + procedure SetCap(const Value: TStrokeCap); + procedure SetDash(const Value: TStrokeDash); + procedure SetJoin(const Value: TStrokeJoin); + procedure SetThickness(const Value: Single); + function GetDashArray: TDashArray; + class function GetStdDash(const Device: TDashDevice; const Dash: TStrokeDash): TDashData; static; + procedure ReadCustomDash(AStream: TStream); + procedure WriteCustomDash(AStream: TStream); + protected + procedure DefineProperties(Filer: TFiler); override; + public + constructor Create(const ADefaultKind: TBrushKind; const ADefaultColor: TAlphaColor); reintroduce; + procedure Assign(Source: TPersistent); override; + procedure SetCustomDash(const Dash: array of Single; Offset: Single); + property DashArray: TDashArray read GetDashArray; + property DashOffset: Single read FDashOffset; + class property StdDash[const Device: TDashDevice; const Dash: TStrokeDash]: TDashData read GetStdDash; + published + property Thickness: Single read FThickness write SetThickness stored IsThicknessStored nodefault; + property Cap: TStrokeCap read FCap write SetCap default TStrokeCap.Flat; + property Dash: TStrokeDash read FDash write SetDash default TStrokeDash.Solid; + property Join: TStrokeJoin read FJoin write SetJoin default TStrokeJoin.Miter; + end; + + IFMXSystemFontService = interface(IInterface) + ['{62017F22-ADF1-44D9-A21D-796D8C7F3CF0}'] + function GetDefaultFontFamilyName: string; + function GetDefaultFontSize: Single; + end; + +{ TFont } + + TFontClass = class of TFont; + + TFontWeight = (Thin, UltraLight, Light, SemiLight, Regular, Medium, Semibold, Bold, UltraBold, Black, UltraBlack); + + /// + /// Font weight type helper + /// + TFontWeightHelper = record helper for TFontWeight + /// + /// Checks wherever current weight value is TFontWeight.Regular + /// + function IsRegular: Boolean; + end; + + TFontSlant = (Regular, Italic, Oblique); + + /// + /// Font slant type helper + /// + TFontSlantHelper = record helper for TFontSlant + /// + /// Checks wherever current slant value is TFontSlant.Regular + /// + function IsRegular: Boolean; + end; + + TFontStretch = (UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, Regular, SemiExpanded, Expanded, + ExtraExpanded, UltraExpanded); + + /// + /// Font stretch type helper + /// + TFontStretchHelper = record helper for TFontStretch + /// + /// Checks wherever current stretch value is TFontStretch.Regular + /// + function IsRegular: Boolean; + end; + + /// + /// Extended font style based on TFontStyles. Support multi-weight and multi-stretch fonts + /// + TFontStyleExt = record + /// + /// Set of regular TFontStyle. May contains any TFontStyle value but TFont will process only + /// fsOutline and fsStrikeOut values + /// + SimpleStyle: TFontStyles; + /// + /// Default font weight value + /// + Weight: TFontWeight; + /// + /// Default font slant value + /// + Slant: TFontSlant; + /// + /// Default font stretch value + /// + Stretch: TFontStretch; + + /// + /// Common extended font style constructor. + /// Initialy new style is initializing using AOtherStyles values. After that AWeight, ASlant + /// and AStretch values are applying + /// + /// + /// Basicaly bsBold or fsItalic values in AOtherStyles are ignoring. Because after creating result from the set of + /// TFontStyle values system will set styles from AWeight, ASlant and AStretch which + /// will replace style values. + /// + class function Create(const AWeight: TFontWeight = TFontWeight.Regular; + const AStant: TFontSlant = TFontSlant.Regular; const AStretch: TFontStretch = TFontStretch.Regular; + const AOtherStyles: TFontStyles = []): TFontStyleExt; overload; static; inline; + /// Constructor that allows to create extended style from the regular TFontStyles + class function Create(const AStyle: TFontStyles): TFontStyleExt; overload; static; inline; + /// Default style with regular parameters without any decorations + class function Default: TFontStyleExt; static; inline; + // Operators + /// Overriding equality check operator + class operator Equal(const A, B: TFontStyleExt): Boolean; + /// Overriding inequality check operator + class operator NotEqual(const A, B: TFontStyleExt): Boolean; + /// Overriding implicit conversion to TFontStyles + class operator Implicit(const AStyle: TFontStyleExt): TFontStyles; + /// Overriding addition operator with both extended styles + class operator Add(const A, B: TFontStyleExt): TFontStyleExt; + /// Overriding addition operator with single font style item + class operator Add(const A: TFontStyleExt; const B: TFontStyle): TFontStyleExt; + /// Overriding addition operator with set of font styles + class operator Add(const A: TFontStyleExt; const B: TFontStyles): TFontStyleExt; + /// Overriding subtraction operator with single font style item + class operator Subtract(const A: TFontStyleExt; const B: TFontStyle): TFontStyleExt; + /// Overriding subtraction operator with set of font styles + class operator Subtract(const A: TFontStyleExt; const B: TFontStyles): TFontStyleExt; + /// Overriding check whether TFontStyle contains in TFontStyleExt + class operator In(const A: TFontStyle; const B: TFontStyleExt): Boolean; + /// Overriding Multiply set of TFontStyle to the TFontStyleExt + class operator Multiply(const A: TFontStyles; const B: TFontStyleExt): TFontStyles; + + /// + /// Overriding Multiply set of TFontStyle to the TFontStyleExt + /// + function IsRegular: Boolean; + end; + + TFont = class(TPersistent) + private const + DefaultFontSize: Single = 12.0; + DefaultFontFamily = 'Tahoma'; + MaxFontSize: Single = 512.0; + public + class var FontService: IFMXSystemFontService; + private + FSize: Single; + FFamily: TFontName; + FStyleExt: TFontStyleExt; + FUpdating: Boolean; + FChanged: Boolean; + FOnChanged: TNotifyEvent; + procedure SetFamily(const Value: TFontName); + procedure SetSize(const Value: Single); + function GetStyle: TFontStyles; + procedure SetStyle(const Value: TFontStyles); + procedure SetStyleExt(const Value: TFontStyleExt); + procedure ReadStyleExt(AStream: TStream); + procedure WriteStyleExt(AStream: TStream); + protected + procedure DefineProperties(Filer: TFiler); override; + function DefaultFamily: string; virtual; + function DefaultSize: Single; virtual; + procedure DoChanged; virtual; + public + constructor Create; + procedure AfterConstruction; override; + procedure Change; + procedure Assign(Source: TPersistent); override; + procedure SetSettings(const AFamily: string; const ASize: Single; const AStyle: TFontStyleExt); + function Equals(Obj: TObject): Boolean; override; + function IsFamilyStored: Boolean; + function IsSizeStored: Boolean; + property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; + /// + /// Refrects current font style, including underline and strikeout + /// + property StyleExt: TFontStyleExt read FStyleExt write SetStyleExt; + published + property Family: TFontName read FFamily write SetFamily stored IsFamilyStored; + property Size: Single read FSize write SetSize stored IsSizeStored nodefault; + property Style: TFontStyles read GetStyle write SetStyle stored False; + end; + +{ TBitmapCodec } + + TBitmapCodecSaveParams = record + // encode quality 0..100 + Quality: Integer; + end; + PBitmapCodecSaveParams = ^TBitmapCodecSaveParams; + + TCustomBitmapCodec = class abstract + public + class function GetImageSize(const AFileName: string): TPointF; virtual; abstract; + class function IsValid(const AStream: TStream): Boolean; virtual; abstract; + function LoadFromFile(const AFileName: string; const ABitmap: TBitmapSurface; + const AMaxSizeLimit: Cardinal = 0): Boolean; virtual; abstract; + function LoadThumbnailFromFile(const AFileName: string; const AFitWidth, AFitHeight: Single; + const UseEmbedded: Boolean; const ABitmap: TBitmapSurface): Boolean; virtual; abstract; + function LoadFromStream(const AStream: TStream; const ABitmap: TBitmapSurface; + const AMaxSizeLimit: Cardinal = 0): Boolean; virtual; abstract; + function SaveToFile(const AFileName: string; const ABitmap: TBitmapSurface; const ASaveParams: PBitmapCodecSaveParams = nil): Boolean; virtual; abstract; + function SaveToStream(const AStream: TStream; const ABitmap: TBitmapSurface; const AExtension: string; + const ASaveParams: PBitmapCodecSaveParams = nil): Boolean; virtual; abstract; + end; + TCustomBitmapCodecClass = class of TCustomBitmapCodec; + +{ TBitmapCodecManager } + + EBitmapCodecManagerException = class(Exception); + + TBitmapCodecManager = class sealed + private type + TCodecDescriptor = record + Extension: string; + Description: string; + CodecClass: TCustomBitmapCodecClass; + CanSave: Boolean; + function ToFilterString: string; + end; + strict private + class var FCodecsDescriptors: TList; + class function SameExtension(const ALeft, ARight: string): Boolean; + class function FindCodecClass(const AFileExtension: string; var ACodecClass: TCustomBitmapCodecClass): Boolean; + class function FindWritableCodecClass(const AFileExtension: string; var ACodecClass: TCustomBitmapCodecClass): Boolean; + class function GuessCodecClass(const AFileExtension: string): TCustomBitmapCodecClass; + class function GetCodecsDescriptors: TList; static; + class property CodecsDescriptors: TList read GetCodecsDescriptors; + public + // Reserved for internal use only - do not call directly! + class procedure UnInitialize; + + { Registration and Unregistration } + + /// Register a bitmap codec class with a specified file extension and description. + /// If codec with specified AFileExtension was already registered or AFileExtension is empty + /// or ACodecClass is nil will raise EBitmapCodecManagerException. + class procedure RegisterBitmapCodecClass(const AFileExtension, ADescription: string; const ACanSave: Boolean; + const ACodecClass: TCustomBitmapCodecClass); + /// Unregisters codec with specified file extension AFileExtension. + class procedure UnregisterBitmapCodecClass(const AFileExtension: string); + + { Helpers } + + /// Returns list of supported image file extensions separated by ';'. + class function GetFileTypes: string; + /// Returns filter presentation of supported image types for TXXXDialog components. + class function GetFilterString: string; + /// Returns true, if codec with specified file extension was registered. + class function CodecExists(const AFileName: string): Boolean; overload; + /// Returns image size for specified file by AFileName. + class function GetImageSize(const AFileName: string): TPointF; + + { Loading } + + /// Loads image from file by AFileName to Bitmap surface ABitmap. If image successfully + /// loaded, it returns true, otherwise - false. + /// If ABitmap is nil, it will raise EBitmapCodecManagerException. + class function LoadFromFile(const AFileName: string; const ABitmap: TBitmapSurface; + const AMaxSizeLimit: Cardinal = 0): Boolean; + /// Loads image thumbnail with specified size AFitWidth and AFitHeight by file name + /// AFileName. If image successfully loaded, it returns true, otherwise - false. + /// If ABitmap is nil, it will raise EBitmapCodecManagerException. + class function LoadThumbnailFromFile(const AFileName: string; const AFitWidth, AFitHeight: Single; + const AUseEmbedded: Boolean; const ABitmap: TBitmapSurface): Boolean; + /// Loads image from the stream AStream. If image successfully loaded, it returns true, + /// otherwise - false. + /// If ABitmap or AStream is nil, it will raise EBitmapCodecManagerException. + class function LoadFromStream(const AStream: TStream; const ABitmap: TBitmapSurface; + const AMaxSizeLimit: Cardinal = 0): Boolean; + + { Saving } + + /// Saves bitmap ABitmap to the stream AStream with using codec with specified extension + /// AExtension. Optionally, you can specify save options. For example, the quality. If image successfully + /// saved to the stream, it returns true, otherwise - false. + /// If ABitmap or AStream is nil, it will raise EBitmapCodecManagerException. + class function SaveToStream(const AStream: TStream; const ABitmap: TBitmapSurface; const AExtension: string; + const ASaveParams: PBitmapCodecSaveParams = nil): Boolean; overload; + /// Saves bitmap ABitmap to the file AFileName . It uses codec extracted by FileName + /// extension. Optionally, you can specify save options. For example, the quality. If image successfully saved to + /// the file, it returns true, otherwise - false. + /// If ABitmap is nil, it will raise EBitmapCodecManagerException. + class function SaveToFile(const AFileName: string; const ABitmap: TBitmapSurface; + const ASaveParams: PBitmapCodecSaveParams = nil): Boolean; + end; + +{ TImageTypeChecker } + + /// Helper class for BitmapCodec. + TImageTypeChecker = class + private type + TImageData = record + DataType: string; + Length: Integer; + Header: array [0..3] of Byte; + end; + public + /// Analyzes the header to guess the image format of he given file. + class function GetType(const AFileName: string): string; overload; + /// Analyzes the header to guess the image format of he given stream. + class function GetType(const AData: TStream): string; overload; + end; + +{ TBitmap } + + IBitmapObject = interface(IFreeNotificationBehavior) + ['{5C17D001-47C1-462F-856D-8358B7B2C842}'] + function GetBitmap: TBitmap; + property Bitmap: TBitmap read GetBitmap; + end; + + TBitmapData = record + private + FPixelFormat: TPixelFormat; + FWidth: Integer; + FHeight: Integer; + function GetBytesPerPixel: Integer; + function GetBytesPerLine: Integer; + public + Data: Pointer; + Pitch: Integer; + constructor Create(const AWidth, AHeight: Integer; const APixelFormat: TPixelFormat); + function GetPixel(const X, Y: Integer): TAlphaColor; + procedure SetPixel(const X, Y: Integer; const AColor: TAlphaColor); + procedure Copy(const Source: TBitmapData); + // Access to scanline in PixelFormat + function GetScanline(const I: Integer): Pointer; + function GetPixelAddr(const I, J: Integer): Pointer; + property PixelFormat: TPixelFormat read FPixelFormat; + property BytesPerPixel: Integer read GetBytesPerPixel; + property BytesPerLine: Integer read GetBytesPerLine; + property Width: Integer read FWidth; + property Height: Integer read FHeight; + end; + + TMapAccess = (Read, Write, ReadWrite); + + TBitmapImage = class + private + FRefCount: Integer; + FHandle: THandle; + FCanvasClass: TCanvasClass; + FWidth: Integer; + FHeight: Integer; + FBitmapScale: Single; + FPixelFormat: TPixelFormat; + procedure CreateHandle; + procedure FreeHandle; + function GetCanvasClass: TCanvasClass; + public + constructor Create; + procedure IncreaseRefCount; inline; + procedure DecreaseRefCount; + property RefCount: Integer read FRefCount; + property CanvasClass: TCanvasClass read GetCanvasClass; + property Handle: THandle read FHandle; + property BitmapScale: Single read FBitmapScale; + property PixelFormat: TPixelFormat read FPixelFormat; + property Height: Integer read FHeight; + property Width: Integer read FWidth; + end; + + TBitmap = class(TInterfacedPersistent, IStreamPersist) + private + FImage: TBitmapImage; + FCanvas: TCanvas; + FMapped: Boolean; + FMapAccess: TMapAccess; + FOnChange: TNotifyEvent; + function GetBytesPerLine: Integer; + function GetBytesPerPixel: Integer; + function GetCanvas: TCanvas; + function GetPixelFormat: TPixelFormat; + function GetImage: TBitmapImage; + function GetHeight: Integer; + function GetWidth: Integer; + function GetBitmapScale: Single; + function GetHandle: THandle; + procedure SetWidth(const Value: Integer); + procedure SetHeight(const Value: Integer); + procedure SetBitmapScale(const Scale: Single); + procedure ReadBitmap(Stream: TStream); + procedure WriteBitmap(Stream: TStream); + function GetCanvasClass: TCanvasClass; + function GetBounds: TRect; + function GetSize: TSize; + function GetBoundsF: TRectF; + protected + procedure CreateNewReference; + procedure CopyToNewReference; + procedure DestroyResources; virtual; + procedure BitmapChanged; virtual; + procedure AssignFromSurface(const Source: TBitmapSurface); + procedure DoChange; virtual; + protected + procedure AssignTo(Dest: TPersistent); override; + procedure DefineProperties(Filer: TFiler); override; + procedure ReadStyleLookup(Reader: TReader); virtual; + public + constructor Create; overload; virtual; + constructor Create(const AWidth, AHeight: Integer); overload; virtual; + constructor CreateFromStream(const AStream: TStream); virtual; + constructor CreateFromFile(const AFileName: string); virtual; + constructor CreateFromBitmapAndMask(const Bitmap, Mask: TBitmap); + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + function EqualsBitmap(const Bitmap: TBitmap): Boolean; + procedure SetSize(const ASize: TSize); overload; + procedure SetSize(const AWidth, AHeight: Integer); overload; + procedure CopyFromBitmap(const Source: TBitmap); overload; + procedure CopyFromBitmap(const Source: TBitmap; SrcRect: TRect; DestX, DestY: Integer); overload; + + function IsEmpty: Boolean; + function HandleAllocated: Boolean; + procedure FreeHandle; + + procedure Clear(const AColor: TAlphaColor); virtual; + procedure ClearRect(const ARect: TRectF; const AColor: TAlphaColor = 0); + procedure Rotate(const Angle: Single); + procedure Resize(const AWidth, AHeight: Integer); + procedure FlipHorizontal; + procedure FlipVertical; + procedure InvertAlpha; + procedure ReplaceOpaqueColor(const Color: TAlphaColor); + + function CreateMask: PByteArray; + procedure ApplyMask(const Mask: PByteArray; const DstX: Integer = 0; const DstY: Integer = 0); + + function CreateThumbnail(const AWidth, AHeight: Integer): TBitmap; + + function Map(const Access: TMapAccess; var Data: TBitmapData): Boolean; + procedure Unmap(var Data: TBitmapData); + + procedure LoadFromFile(const AFileName: string); + procedure LoadThumbnailFromFile(const AFileName: string; const AFitWidth, AFitHeight: Single; + const UseEmbedded: Boolean = True); + procedure SaveToFile(const AFileName: string; const SaveParams: PBitmapCodecSaveParams = nil); + procedure LoadFromStream(Stream: TStream); + procedure SaveToStream(Stream: TStream); + + property Canvas: TCanvas read GetCanvas; + property CanvasClass: TCanvasClass read GetCanvasClass; + property Image: TBitmapImage read GetImage; + property Handle: THandle read GetHandle; + property PixelFormat: TPixelFormat read GetPixelFormat; + property BytesPerPixel: Integer read GetBytesPerPixel; + property BytesPerLine: Integer read GetBytesPerLine; + /// Helper property that returns bitmap bounds in TRect + property Bounds: TRect read GetBounds; + /// Helper property that returns bitmap bounds in TRectF + property BoundsF: TRectF read GetBoundsF; + property BitmapScale: Single read GetBitmapScale write SetBitmapScale; + property Width: Integer read GetWidth write SetWidth; + property Height: Integer read GetHeight write SetHeight; + /// Helper property that returns dimention of bitmap as TSize + property Size: TSize read GetSize write SetSize; + property OnChange: TNotifyEvent read FOnChange write FOnChange; + end; + +{ TPathData } + + TPathData = class; + + IPathObject = interface(IFreeNotificationBehavior) + ['{8C014863-4F69-48F2-9CF7-E336BFD3F06B}'] + function GetPath: TPathData; + property Path: TPathData read GetPath; + end; + + TPathPointKind = (MoveTo, LineTo, CurveTo, Close); + + TPathPoint = packed record + Kind: TPathPointKind; + Point: TPointF; + class function Create(const AKind: TPathPointKind; const APoint: TPointF): TPathPoint; static; inline; + class operator Equal(const APoint1, APoint2: TPathPoint): Boolean; + class operator NotEqual(const APoint1, APoint2: TPathPoint): Boolean; + end; + + TPathObject = class; + + TPathData = class(TInterfacedPersistent, IFreeNotification) + private const + MinFlatness = 0.05; + public const + DefaultFlatness = 0.25; + private + FOnChanged: TNotifyEvent; + FStyleResource: TObject; + FStyleLookup: string; + FStartPoint: TPointF; + FPathData: TList; + FRecalcBounds: Boolean; + FBounds: TRectF; + function GetPathString: string; + procedure SetPathString(const Value: string); + procedure CalculateBezierCoefficients(const Bezier: TCubicBezier; out AX, BX, CX, AY, BY, CY: Single); + function PointOnBezier(const StartPoint: TPointF; const AX, BX, CX, AY, BY, CY, T: Single): TPointF; + function CreateBezier(const Bezier: TCubicBezier; const PointCount: Integer): TPolygon; + procedure AddArcSvgPart(const Center, Radius: TPointF; StartAngle, SweepAngle: Single); + procedure AddArcSvg(const P1, Radius: TPointF; Angle: Single; const LargeFlag, SweepFlag: Boolean; const P2: TPointF); + function GetStyleLookup: string; + procedure SetStyleLookup(const Value: string); + function GetPath: TPathData; + function GetCount: Integer; inline; + function GetPoint(AIndex: Integer): TPathPoint; inline; + function GetTokensFromString(const PathString: string; var Pos: Integer): string; + function GetNumberFromString(const PathString: string; var Pos: Integer): string; + function GetPointFromString(const PathString: string; var Pos: Integer): TPointF; + function HasRelativeOffset(const PathString: string; const Pos: Integer): Boolean; + protected + { rtl } + procedure DefineProperties(Filer: TFiler); override; + procedure ReadPath(Stream: TStream); + procedure WritePath(Stream: TStream); + { IFreeNotification } + procedure FreeNotification(AObject: TObject); + procedure DoChanged(NeedRecalcBounds: Boolean = True); virtual; + public + constructor Create; virtual; + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + function EqualsPath(const Path: TPathData): Boolean; + property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; + { creation } + function LastPoint: TPointF; + procedure MoveTo(const P: TPointF); + procedure MoveToRel(const P: TPointF); + procedure LineTo(const P: TPointF); + procedure LineToRel(const P: TPointF); + procedure HLineTo(const X: Single); + procedure HLineToRel(const X: Single); + procedure VLineTo(const Y: Single); + procedure VLineToRel(const Y: Single); + procedure CurveTo(const ControlPoint1, ControlPoint2, EndPoint: TPointF); + procedure CurveToRel(const ControlPoint1, ControlPoint2, EndPoint: TPointF); + procedure SmoothCurveTo(const ControlPoint2, EndPoint: TPointF); + procedure SmoothCurveToRel(const ControlPoint2, EndPoint: TPointF); + procedure QuadCurveTo(const ControlPoint, EndPoint: TPointF); + procedure ClosePath; + { shapes } + procedure AddEllipse(const ARect: TRectF); + procedure AddRectangle(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const ACornerType: TCornerType = TCornerType.Round); + procedure AddArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single); + { modification } + procedure AddPath(APath: TPathData); + procedure Clear; + procedure Flatten(const Flatness: Single = DefaultFlatness); + procedure Scale(const ScaleX, ScaleY: Single); overload; + procedure Scale(const AScale: TPointF); overload; inline; + procedure Translate(const DX, DY: Single); overload; + procedure Translate(const Delta: TPointF); overload; inline; + procedure FitToRect(const ARect: TRectF); + procedure ApplyMatrix(const M: TMatrix); + { params } + function GetBounds: TRectF; + { convert } + function FlattenToPolygon(var Polygon: TPolygon; const Flatness: Single = DefaultFlatness): TPointF; + function IsEmpty: Boolean; + { access } + property Count: Integer read GetCount; + property Points[AIndex: Integer]: TPathPoint read GetPoint; default; + { resoruces } + property ResourcePath: TPathData read GetPath; + published + property Data: string read GetPathString write SetPathString stored False; + { This property allow to link path with PathObject by name. } + property StyleLookup: string read GetStyleLookup write SetStyleLookup; + end; + +{ TCanvasSaveState } + + TCanvasSaveState = class(TPersistent) + protected + FAssigned: Boolean; + FFill: TBrush; + FStroke: TStrokeBrush; + FDash: TDashArray; + FDashOffset: Single; + FFont: TFont; + FMatrix: TMatrix; + FOffset: TPointF; + procedure AssignTo(Dest: TPersistent); override; + public + constructor Create; + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + property Assigned: Boolean read FAssigned; + end; + + TRegion = array of TRectF; + TRegionArray = array of TRegion; + +{ TCanvas } + + ECanvasException = class(Exception); + + TFillTextFlag = (RightToLeft); + TFillTextFlags = set of TFillTextFlag; + + TAbstractPrinter = class(TPersistent); + + PClipRects = ^TClipRects; + TClipRects = array of TRectF; + + ICanvasObject = interface + ['{61166E3B-9BC3-41E3-9D9A-5C6AB6460950}'] + function GetCanvas: TCanvas; + property Canvas: TCanvas read GetCanvas; + end; + + IModulateCanvas = interface + ['{B7CFFA1B-FBCF-4B36-AA32-93856F621F28}'] + function GetModulateColor: TAlphaColor; + procedure SetModulateColor(const AColor: TAlphaColor); + property ModulateColor: TAlphaColor read GetModulateColor write SetModulateColor; + end; + + TCanvasStyle = (NeedGPUSurface, SupportClipRects, SupportModulation); + TCanvasStyles = set of TCanvasStyle; + + TCanvasAttribute = (MaxBitmapSize); + + TCanvasQuality = (SystemDefault, HighPerformance, HighQuality); + + TCanvas = class abstract(TInterfacedPersistent) + public const + MaxAllowedBitmapSize = $FFFF; + DefaultScale = 1; + protected + class var FLock: TObject; + private + FBeginSceneCount: Integer; + FFill: TBrush; + FStroke: TStrokeBrush; + FParent: TWindowHandle; + [Weak] FBitmap: TBitmap; + FScale: Single; + FQuality: TCanvasQuality; + FMatrix: TMatrix; + procedure SetFill(const Value: TBrush); + protected type + TMatrixMeaning = (Unknown, Identity, Translate); + + TCustomMetaBrush = class + private + FValid: Boolean; + public + property Valid: Boolean read FValid write FValid; + end; + + TMetaBrush = class(TCustomMetaBrush) + private + FKind: TBrushKind; + FColor: TAlphaColor; + FOpacity: Single; + FGradient: TGradient; + FRect: TRectF; + [Weak] FBitmapImage: TBitmapImage; + FWrapMode: TWrapMode; + function GetGradient: TGradient; + public + destructor Destroy; override; + property Kind: TBrushKind read FKind write FKind; + property Color: TAlphaColor read FColor write FColor; + property Opacity: Single read FOpacity write FOpacity; + property Rect: TRectF read FRect write FRect; + property WrapMode: TWrapMode read FWrapMode write FWrapMode; + property Gradient: TGradient read GetGradient; + property Image: TBitmapImage read FBitmapImage write FBitmapImage; + end; + + TMetaStrokeBrush = class(TCustomMetaBrush) + private + FCap: TStrokeCap; + FDash: TStrokeDash; + FJoin: TStrokeJoin; + FDashArray: TDashArray; + FDashOffset: Single; + public + property Cap: TStrokeCap read FCap write FCap; + property Dash: TStrokeDash read FDash write FDash; + property Join: TStrokeJoin read FJoin write FJoin; + property DashArray: TDashArray read FDashArray write FDashArray; + property DashOffset: Single read FDashOffset write FDashOffset; + end; + private + FMatrixMeaning: TMatrixMeaning; + FMatrixTranslate: TPointF; + FBlending: Boolean; + /// Indicates offset of drawing area + FOffset: TPointF; + procedure SetBlending(const Value: Boolean); + class constructor Create; + class destructor Destroy; + type + TCanvasSaveStateList = TObjectList; + protected + FClippingChangeCount: Integer; + FSavingStateCount: Integer; + FWidth, FHeight: Integer; + FFont: TFont; + FCanvasSaveData: TCanvasSaveStateList; + FPrinter: TAbstractPrinter; + procedure FontChanged(Sender: TObject); virtual; + { Window } + function CreateSaveState: TCanvasSaveState; virtual; + procedure Initialize; + procedure UnInitialize; + function GetCanvasScale: Single; virtual; + { scene } + function DoBeginScene(AClipRects: PClipRects = nil; AContextHandle: THandle = 0): Boolean; virtual; + procedure DoEndScene; virtual; + /// Checks if we are in BeginScene/EndScene process and raises exception, if we are not. + procedure RaiseIfBeginSceneCountZero; + procedure DoFlush; virtual; + { constructors } + constructor CreateFromWindow(const AParent: TWindowHandle; const AWidth, AHeight: Integer; + const AQuality: TCanvasQuality = TCanvasQuality.SystemDefault); virtual; + constructor CreateFromBitmap(const ABitmap: TBitmap; const AQuality: TCanvasQuality = TCanvasQuality.SystemDefault); virtual; + constructor CreateFromPrinter(const APrinter: TAbstractPrinter); virtual; + { bitmap } + class function DoInitializeBitmap(const Width, Height: Integer; const Scale: Single; var PixelFormat: TPixelFormat): THandle; virtual; abstract; + class procedure DoFinalizeBitmap(var Bitmap: THandle); virtual; abstract; + class function DoMapBitmap(const Bitmap: THandle; const Access: TMapAccess; var Data: TBitmapData): Boolean; virtual; abstract; + class procedure DoUnmapBitmap(const Bitmap: THandle; var Data: TBitmapData); virtual; abstract; + class procedure DoCopyBitmap(const Source, Dest: TBitmap); virtual; + { states } + procedure DoBlendingChanged; virtual; + { drawing } + /// Apply a new matrix transformations to the canvas. + procedure DoSetMatrix(const M: TMatrix); virtual; + procedure DoFillRect(const ARect: TRectF; const AOpacity: Single; const ABrush: TBrush); virtual; abstract; + procedure DoFillRoundRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ABrush: TBrush; const ACornerType: TCornerType = TCornerType.Round); virtual; + procedure DoFillPath(const APath: TPathData; const AOpacity: Single; const ABrush: TBrush); virtual; abstract; + procedure DoFillEllipse(const ARect: TRectF; const AOpacity: Single; const ABrush: TBrush); virtual; abstract; + function DoFillPolygon(const Points: TPolygon; const AOpacity: Single; const ABrush: TBrush): Boolean; virtual; + procedure DoDrawBitmap(const ABitmap: TBitmap; const SrcRect, DstRect: TRectF; const AOpacity: Single; const HighSpeed: Boolean); virtual; abstract; + procedure DoDrawLine(const APt1, APt2: TPointF; const AOpacity: Single; const ABrush: TStrokeBrush); virtual; abstract; + procedure DoDrawRect(const ARect: TRectF; const AOpacity: Single; const ABrush: TStrokeBrush); virtual; abstract; + function DoDrawPolygon(const Points: TPolygon; const AOpacity: Single; const ABrush: TStrokeBrush): Boolean; virtual; + procedure DoDrawPath(const APath: TPathData; const AOpacity: Single; const ABrush: TStrokeBrush); virtual; abstract; + procedure DoDrawEllipse(const ARect: TRectF; const AOpacity: Single; const ABrush: TStrokeBrush); virtual; abstract; + { Clipping } + procedure DoIntersectClipRect(const ARect: TRectF); virtual; + procedure DoExcludeClipRect(const ARect: TRectF); virtual; + { Clearing } + procedure DoClear(const Color: TAlphaColor); virtual; + procedure DoClearRect(const ARect: TRectF; const AColor: TAlphaColor = 0); virtual; + property Parent: TWindowHandle read FParent; + protected + function TransformPoint(const P: TPointF): TPointF; inline; + function TransformRect(const Rect: TRectF): TRectF; inline; + property MatrixMeaning: TMatrixMeaning read FMatrixMeaning; + property MatrixTranslate: TPointF read FMatrixTranslate; + public + destructor Destroy; override; + { lock } + class procedure Lock; + class procedure Unlock; + { caps } + class function GetCanvasStyle: TCanvasStyles; virtual; + class function GetAttribute(const Value: TCanvasAttribute): Integer; virtual; + { scene } + procedure SetSize(const AWidth, AHeight: Integer); virtual; + function BeginScene(AClipRects: PClipRects = nil; AContextHandle: THandle = 0): Boolean; + procedure EndScene; + property BeginSceneCount: Integer read FBeginSceneCount; + procedure Flush; + { buffer } + /// Clear whole canvas using Color. + procedure Clear(const AColor: TAlphaColor); virtual; + /// Clear rectangular area of canvas using Color. + procedure ClearRect(const ARect: TRectF; const AColor: TAlphaColor = 0); virtual; + /// Return True if Scale is integer value. + function IsScaleInteger: Boolean; + { matrix } + procedure SetMatrix(const M: TMatrix); + procedure MultiplyMatrix(const M: TMatrix); + { state } + function SaveState: TCanvasSaveState; + procedure RestoreState(const State: TCanvasSaveState); + { bitmap } + class function InitializeBitmap(const Width, Height: Integer; const Scale: Single; var PixelFormat: TPixelFormat): THandle; + class procedure FinalizeBitmap(var Bitmap: THandle); + class function MapBitmap(const Bitmap: THandle; const Access: TMapAccess; var Data: TBitmapData): Boolean; + class procedure UnmapBitmap(const Bitmap: THandle; var Data: TBitmapData); + class procedure CopyBitmap(const Source, Dest: TBitmap); + { aligning } + function AlignToPixel(const Value: TPointF): TPointF; overload; inline; + function AlignToPixel(const Rect: TRectF): TRectF; overload; inline; + function AlignToPixelVertically(const Value: Single): Single; inline; + function AlignToPixelHorizontally(const Value: Single): Single; inline; + { clipping } + /// Set current clipping area using intersection of current area and rectangle. + procedure IntersectClipRect(const ARect: TRectF); virtual; + /// Exclude rectangular area from current clipping area. + procedure ExcludeClipRect(const ARect: TRectF); virtual; + { drawing } + procedure FillArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single; const AOpacity: Single); overload; + procedure FillArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single; + const AOpacity: Single; const ABrush: TBrush); overload; + procedure FillRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ACornerType: TCornerType = TCornerType.Round); overload; + procedure FillRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ABrush: TBrush; const ACornerType: TCornerType = TCornerType.Round); overload; + procedure FillRect(const ARect: TRectF; const AOpacity: Single); overload; + procedure FillRect(const ARect: TRectF; const AOpacity: Single; const ABrush: TBrush); overload; + procedure FillPath(const APath: TPathData; const AOpacity: Single); overload; + procedure FillPath(const APath: TPathData; const AOpacity: Single; const ABrush: TBrush); overload; + procedure FillEllipse(const ARect: TRectF; const AOpacity: Single); overload; + procedure FillEllipse(const ARect: TRectF; const AOpacity: Single; const ABrush: TBrush); overload; + procedure DrawBitmap(const ABitmap: TBitmap; const SrcRect, DstRect: TRectF; const AOpacity: Single; + const HighSpeed: Boolean = False); + procedure DrawLine(const APt1, APt2: TPointF; const AOpacity: Single); overload; + procedure DrawLine(const APt1, APt2: TPointF; const AOpacity: Single; const ABrush: TStrokeBrush); overload; + procedure DrawRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ACornerType: TCornerType = TCornerType.Round); overload; + procedure DrawRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ABrush: TStrokeBrush; const ACornerType: TCornerType = TCornerType.Round); overload; + procedure DrawRect(const ARect: TRectF; const AOpacity: Single); overload; + procedure DrawRect(const ARect: TRectF; const AOpacity: Single; const ABrush: TStrokeBrush); overload; + procedure DrawPath(const APath: TPathData; const AOpacity: Single); overload; + procedure DrawPath(const APath: TPathData; const AOpacity: Single; const ABrush: TStrokeBrush); overload; + procedure DrawEllipse(const ARect: TRectF; const AOpacity: Single); overload; + procedure DrawEllipse(const ARect: TRectF; const AOpacity: Single; const ABrush: TStrokeBrush); overload; + procedure DrawArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single; const AOpacity: Single); overload; + procedure DrawArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single; const AOpacity: Single; const ABrush: TStrokeBrush); overload; + { mesauring } + function PtInPath(const APoint: TPointF; const APath: TPathData): Boolean; virtual; abstract; + { helpers } + procedure DrawRectSides(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ASides: TSides; const ACornerType: TCornerType = TCornerType.Round); overload; + procedure DrawRectSides(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ASides: TSides; const ABrush: TStrokeBrush; const ACornerType: TCornerType = TCornerType.Round); overload; + procedure DrawDashRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const AColor: TAlphaColor); + { linear polygon } + procedure FillPolygon(const Points: TPolygon; const AOpacity: Single); virtual; + procedure DrawPolygon(const Points: TPolygon; const AOpacity: Single); virtual; + { text } + function LoadFontFromStream(const AStream: TStream): Boolean; virtual; + { deprecated, use TTextLayout } + procedure FillText(const ARect: TRectF; const AText: string; const WordWrap: Boolean; const AOpacity: Single; + const Flags: TFillTextFlags; const ATextAlign: TTextAlign; const AVTextAlign: TTextAlign = TTextAlign.Center); virtual; + procedure MeasureText(var ARect: TRectF; const AText: string; const WordWrap: Boolean; const Flags: TFillTextFlags; + const ATextAlign: TTextAlign; const AVTextAlign: TTextAlign = TTextAlign.Center); virtual; + procedure MeasureLines(const ALines: TLineMetricInfo; const ARect: TRectF; const AText: string; const WordWrap: Boolean; const Flags: TFillTextFlags; + const ATextAlign: TTextAlign; const AVTextAlign: TTextAlign = TTextAlign.Center); virtual; + function TextToPath(Path: TPathData; const ARect: TRectF; const AText: string; const WordWrap: Boolean; + const ATextAlign: TTextAlign; const AVTextAlign: TTextAlign = TTextAlign.Center): Boolean; virtual; + function TextWidth(const AText: string): Single; + function TextHeight(const AText: string): Single; + { properties } + property Blending: Boolean read FBlending write SetBlending; + property Quality: TCanvasQuality read FQuality; + property Stroke: TStrokeBrush read FStroke; + property Fill: TBrush read FFill write SetFill; + property Font: TFont read FFont; + property Matrix: TMatrix read FMatrix; + property Width: Integer read FWidth; + property Height: Integer read FHeight; + property Bitmap: TBitmap read FBitmap; + property Scale: Single read FScale; + /// Allows to offset drawing area + property Offset: TPointF read FOffset write FOffset; + { statistics } + property ClippingChangeCount: Integer read FClippingChangeCount; + property SavingStateCount: Integer read FSavingStateCount; + end; + + ECanvasManagerException = class(Exception); + + TCanvasDestroyMessage = class(TMessage); + + TCanvasManager = class sealed + private type + TCanvasClassRec = record + CanvasClass: TCanvasClass; + Default: Boolean; + PrinterCanvas: Boolean; + end; + strict private + class var FCanvasList: TList; + class var FDefaultCanvasClass: TCanvasClass; + class var FDefaultPrinterCanvasClass: TCanvasClass; + class var FMeasureBitmap: TBitmap; + class var FEnableSoftwareCanvas: Boolean; + private + class function GetDefaultCanvas: TCanvasClass; static; + class function GetMeasureCanvas: TCanvas; static; + class function GetDefaultPrinterCanvas: TCanvasClass; static; + public + // Reserved for internal use only - do not call directly! + class procedure UnInitialize; + // Register a rendering Canvas class + class procedure RegisterCanvas(const CanvasClass: TCanvasClass; const ADefault: Boolean; const APrinterCanvas: Boolean); + // Return default Canvas + class property DefaultCanvas: TCanvasClass read GetDefaultCanvas; + // Return default Canvas + class property DefaultPrinterCanvas: TCanvasClass read GetDefaultPrinterCanvas; + // Return canvas instance used for text measuring for example + class property MeasureCanvas: TCanvas read GetMeasureCanvas; + // Creation helper + class function CreateFromWindow(const AParent: TWindowHandle; const AWidth, AHeight: Integer; + const AQuality: TCanvasQuality = TCanvasQuality.SystemDefault): TCanvas; + class function CreateFromBitmap(const ABitmap: TBitmap; + const AQuality: TCanvasQuality = TCanvasQuality.SystemDefault): TCanvas; + class function CreateFromPrinter(const APrinter: TAbstractPrinter): TCanvas; + class procedure RecreateFromPrinter(const Canvas: TCanvas; const APrinter: TAbstractPrinter); + class procedure EnableSoftwareCanvas(const Enable: Boolean); + end; + + TPrinterCanvas = class(TCanvas); + TPrinterCanvasClass = class of TPrinterCanvas; + +{ TBrushObject } + + IBrushObject = interface(IFreeNotificationBehavior) + ['{BB870DB6-0228-4165-9906-CF75BFF8C7CA}'] + function GetBrush: TBrush; + property Brush: TBrush read GetBrush; + end; + + TBrushObject = class(TFmxObject, IBrushObject) + private + FBrush: TBrush; + { IBrushObject } + function GetBrush: TBrush; + protected + procedure SetName(const NewName: TComponentName); override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + published + property Brush: TBrush read FBrush write FBrush; + end; + +{ TFontObject } + + IFontObject = interface(IFreeNotificationBehavior) + ['{F87FBCFE-CE5F-430C-8F46-B20B2E395C1B}'] + function GetFont: TFont; + property Font: TFont read GetFont; + end; + + TFontObject = class(TFmxObject, IFontObject) + private + FFont: TFont; + { IFontObject } + function GetFont: TFont; + protected + procedure SetName(const NewName: TComponentName); override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + published + property Font: TFont read FFont write FFont; + end; + +{ TPathObject } + + TPathObject = class(TFmxObject, IPathObject) + private + FPath: TPathData; + { IPathObject } + function GetPath: TPathData; + protected + procedure SetName(const NewName: TComponentName); override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + published + property Path: TPathData read FPath write FPath; + end; + +{ TBitmapObject } + + TBitmapObject = class(TFmxObject, IBitmapObject) + private + FBitmap: TBitmap; + { IBitmapObject } + function GetBitmap: TBitmap; + protected + procedure SetName(const NewName: TComponentName); override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + published + property Bitmap: TBitmap read FBitmap write FBitmap; + end; + +{ TColorObject } + + TColorObject = class(TFmxObject) + private + FColor: TAlphaColor; + protected + procedure SetName(const NewName: TComponentName); override; + published + property Color: TAlphaColor read FColor write FColor; + end; + + TFontColorForStateClass = class of TFontColorForState; + + TFontColorForState = class(TPersistent) + public type + TIndex = (Normal, Hot, Pressed, Focused, Active); + private + [Weak] FOwner: TTextSettings; + FColor: array [TIndex] of TAlphaColor; + FUpdateCount: Integer; + FChanged: Boolean; + function GetColor(const Index: TIndex): TAlphaColor; + procedure SetColor(const Index: TIndex; const Value: TAlphaColor); + protected + function GetOwner: TPersistent; override; + function GetCurrentColor(const Index: TIndex): TAlphaColor; virtual; + procedure DoChanged; virtual; + public + constructor Create(const AOwner: TTextSettings); virtual; + procedure AfterConstruction; override; + procedure BeginUpdate; + procedure EndUpdate; + procedure Change; + property Owner: TTextSettings read FOwner; + procedure Assign(Source: TPersistent); override; + function Equals(Obj: TObject): Boolean; override; + property CurrentColor[const Index: TIndex]: TAlphaColor read GetCurrentColor; + property Color[const Index: TIndex]: TAlphaColor read GetColor write SetColor; default; + property Normal: TAlphaColor index TIndex.Normal read GetColor write SetColor default TAlphaColorRec.Null; + property Hot: TAlphaColor index TIndex.Hot read GetColor write SetColor default TAlphaColorRec.Null; + property Pressed: TAlphaColor index TIndex.Pressed read GetColor write SetColor default TAlphaColorRec.Null; + property Focused: TAlphaColor index TIndex.Focused read GetColor write SetColor default TAlphaColorRec.Null; + property Active: TAlphaColor index TIndex.Active read GetColor write SetColor default TAlphaColorRec.Null; + end; + + TTextSettingsClass = class of TTextSettings; + + /// + /// This class combines some of properties that relate to the text + /// + TTextSettings = class(TPersistent) + private + [Weak] FOwner: TPersistent; + FFont: TFont; + FUpdateCount: Integer; + FHorzAlign: TTextAlign; + FVertAlign: TTextAlign; + FWordWrap: Boolean; + FFontColor: TAlphaColor; + FIsChanged: Boolean; + FIsAdjustChanged: Boolean; + FOnChanged: TNotifyEvent; + FTrimming: TTextTrimming; + FFontColorForState: TFontColorForState; + procedure SetFontColor(const Value: TAlphaColor); + procedure SetHorzAlign(const Value: TTextAlign); + procedure SetVertAlign(const Value: TTextAlign); + procedure SetWordWrap(const Value: Boolean); + procedure SetTrimming(const Value: TTextTrimming); + procedure SetFontColorForState(const Value: TFontColorForState); + function StoreFontColorForState: Boolean; + function CreateFontColorForState: TFontColorForState; + protected + procedure DoChanged; virtual; + procedure SetFont(const Value: TFont); virtual; + function GetOwner: TPersistent; override; + function GetTextColorsClass: TFontColorForStateClass; virtual; + procedure DoAssign(const Source: TTextSettings); virtual; + procedure DoAssignNotStyled(const TextSettings: TTextSettings; const StyledSettings: TStyledSettings); virtual; + public + constructor Create(const AOwner: TPersistent); virtual; + destructor Destroy; override; + procedure AfterConstruction; override; + procedure Assign(Source: TPersistent); override; + procedure AssignNotStyled(const TextSettings: TTextSettings; const StyledSettings: TStyledSettings); + function Equals(Obj: TObject): Boolean; override; + procedure Change; + procedure BeginUpdate; + procedure EndUpdate; + procedure UpdateStyledSettings(const OldTextSettings, DefaultTextSettings: TTextSettings; + var StyledSettings: TStyledSettings); virtual; + property UpdateCount: Integer read FUpdateCount; + property IsChanged: Boolean read FIsChanged write FIsChanged; + property IsAdjustChanged: Boolean read FIsAdjustChanged write FIsAdjustChanged; + property Font: TFont read FFont write SetFont; + property FontColor: TAlphaColor read FFontColor write SetFontColor default TAlphaColorRec.Black; + property FontColorForState: TFontColorForState read FFontColorForState write SetFontColorForState + stored StoreFontColorForState; + property HorzAlign: TTextAlign read FHorzAlign write SetHorzAlign default TTextAlign.Leading; + property VertAlign: TTextAlign read FVertAlign write SetVertAlign default TTextAlign.Center; + property WordWrap: Boolean read FWordWrap write SetWordWrap default False; + property Trimming: TTextTrimming read FTrimming write SetTrimming default TTextTrimming.None; + property Owner: TPersistent read FOwner; + property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; + end; + + ITextSettings = interface + ['{FD99635D-D8DB-4E26-B36F-97D3AABBCCB3}'] + function GetDefaultTextSettings: TTextSettings; + function GetTextSettings: TTextSettings; + procedure SetTextSettings(const Value: TTextSettings); + function GetResultingTextSettings: TTextSettings; + function GetStyledSettings: TStyledSettings; + procedure SetStyledSettings(const Value: TStyledSettings); + + property DefaultTextSettings: TTextSettings read GetDefaultTextSettings; + property TextSettings: TTextSettings read GetTextSettings write SetTextSettings; + property ResultingTextSettings: TTextSettings read GetResultingTextSettings; + property StyledSettings: TStyledSettings read GetStyledSettings write SetStyledSettings; + end; + +implementation + +uses + System.UIConsts, System.Math, System.TypInfo, System.Character, System.Generics.Defaults, FMX.Consts, FMX.Platform, + FMX.TextLayout, FMX.Utils; + +{ TImageTypeChecker } + +class function TImageTypeChecker.GetType(const AFileName: string): string; +var + LStream: TStream; +begin + LStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite); + try + Result := GetType(LStream); + if Result.IsEmpty then + Result := ExtractFileExt(AFileName); + finally + LStream.Free; + end; +end; + +class function TImageTypeChecker.GetType(const AData: TStream): String; +var + LBuffer: TBytes; + I: Integer; + LOldPos: Int64; +const + MaxImageDataLength = 4; + ImageData: array[0..6] of TImageData = ( + (DataType: SGIFImageExtension; Length: 3; Header: (71,73,70,0)), // gif + (DataType: SBMPImageExtension; Length: 2; Header: (66,77,0,0)), // bmp + (DataType: SPNGImageExtension; Length: 4; Header: (137,80,78,71)), // png + (DataType: STIFFImageExtension; Length: 3; Header: (73,73,42,0)), // tiff + (DataType: STIFFImageExtension; Length: 3; Header: (77,77,42,0)), // tiff 2 + (DataType: SJPGImageExtension; Length: 4; Header: (255,216,255,224)), // jpg + (DataType: SJPGImageExtension; Length: 4; Header: (255,216,255,225)) // jpg (canon) + ); +begin + Result := string.Empty; + SetLength(LBuffer, MaxImageDataLength); + LOldPos := AData.Position; + try + if AData.Read(LBuffer, MaxImageDataLength) = MaxImageDataLength then + begin + for I := Low(ImageData) to High(ImageData) do + begin + if (CompareMem(@ImageData[I].Header[0], LBuffer, ImageData[I].Length)) then + begin + Result := ImageData[I].DataType; + Break; + end; + end; + end; + finally + AData.Position := LOldPos; + end; +end; + +{ TGradientPoint } + +procedure TGradientPoint.Assign(Source: TPersistent); +begin + if Source is TGradientPoint then + begin + FColor := TGradientPoint(Source).FColor; + FOffset := TGradientPoint(Source).FOffset; + end + else + inherited; +end; + +procedure TGradientPoint.SetColor(const Value: TAlphaColor); +begin + if FColor <> Value then + begin + FColor := Value; + Changed(False); + end; +end; + +procedure TGradientPoint.SetOffset(const Value: Single); +begin + if not SameValue(FOffset, Value, Single.Epsilon) then + begin + FOffset := Value; + Changed(False); + end; +end; + +{ TGradientPoints } + +function TGradientPoints.GetPoint(Index: Integer): TGradientPoint; +begin + Result := TGradientPoint(Items[Index]); +end; + +procedure TGradientPoints.Update(Item: TCollectionItem); +begin + inherited; + if Item = nil then + Exit; + + Sort(TComparer.Construct(function(const Left, Right: TCollectionItem): Integer + begin + Result := CompareValue(TGradientPoint(Left).Offset, TGradientPoint(Right).Offset); + end)); +end; + +{ TGradient } + +constructor TGradient.Create; +var + P: TGradientPoint; +begin + inherited; + FStartPosition := TPosition.Create(PointF(0, 0)); + FStartPosition.OnChange := PositionChanged; + FStopPosition := TPosition.Create(PointF(0, 1)); + FStopPosition.OnChange := PositionChanged; + FRadialTransform := TTransform.Create; + FRadialTransform.OnChanged := PositionChanged; + FPoints := TGradientPoints.Create(TGradientPoint); + P := TGradientPoint(FPoints.Add); + P.IntColor := $FF000000; + P := TGradientPoint(FPoints.Add); + P.IntColor := $FFFFFFFF; + P.Offset := 1; +end; + +procedure TGradient.ApplyOpacity(const AOpacity: Single); +var + I: Integer; +begin + if AOpacity < 1.0 then + for I := 0 to FPoints.Count - 1 do + FPoints[I].Color := MakeColor(FPoints[I].Color, AOpacity); +end; + +procedure TGradient.Assign(Source: TPersistent); +var + SaveChanged: TNotifyEvent; +begin + if Source is TGradient then + begin + SaveChanged := FOnChanged; + FOnChanged := nil; + FPoints.Clear; + FPoints.Assign(TGradient(Source).FPoints); + FStyle := TGradient(Source).Style; + if FStyle = TGradientStyle.Linear then + begin + FStopPosition.Assign(TGradient(Source).StopPosition); + FStartPosition.Assign(TGradient(Source).StartPosition); + end + else + begin + FRadialTransform.Assign(TGradient(Source).RadialTransform); + end; + FOnChanged := SaveChanged; + if Assigned(FOnChanged) then + FOnChanged(Self); + end + else + inherited; +end; + +destructor TGradient.Destroy; +begin + FreeAndNil(FStartPosition); + FreeAndNil(FStopPosition); + FreeAndNil(FRadialTransform); + FreeAndNil(FPoints); + inherited; +end; + +function TGradient.Equal(const AGradient: TGradient): Boolean; +var + I: Integer; +begin + Result := True; + if FPoints.Count <> AGradient.FPoints.Count then + Exit(False); + if not SameValue(FStartPosition.X, AGradient.FStartPosition.X, TEpsilon.Position) then + Exit(False); + if not SameValue(FStartPosition.Y, AGradient.FStartPosition.Y, TEpsilon.Position) then + Exit(False); + if not SameValue(FStopPosition.X, AGradient.FStopPosition.X, TEpsilon.Position) then + Exit(False); + if not SameValue(FStopPosition.Y, AGradient.FStopPosition.Y, TEpsilon.Position) then + Exit(False); + for I := 0 to FPoints.Count - 1 do + begin + if FPoints[I].Color <> AGradient.FPoints[I].Color then + Exit(False); + if not SameValue(FPoints[I].Offset, AGradient.FPoints[I].Offset, TEpsilon.Position) then + Exit(False); + end; + { Radial gradient } + if not SameValue(RadialTransform.RotationAngle, AGradient.RadialTransform.RotationAngle, TEpsilon.Angle) then + Exit(False); + if not SameValue(RadialTransform.RotationCenter.X, AGradient.RadialTransform.RotationCenter.X, TEpsilon.Position) or + not SameValue(RadialTransform.RotationCenter.Y, AGradient.RadialTransform.RotationCenter.Y, TEpsilon.Position) then + Exit(False); +end; + +procedure TGradient.Change; +begin + if Assigned(FOnChanged) then + FOnChanged(Self); +end; + +function TGradient.InterpolateColor(X, Y: Single): TAlphaColor; +var + A, B: TPointF; + Projection: Single; +begin + case Style of + TGradientStyle.Linear: + begin + A := StopPosition.Point - StartPosition.Point; + B := TPointF.Create(X, Y) - StartPosition.Point; + Projection := A.Normalize.DotProduct(B) / A.Length; + Result := InterpolateColor(Projection); + end; + TGradientStyle.Radial: + begin + A := TPointF.Create(X, Y) - RadialTransform.RotationCenter.Point; + Result := InterpolateColor(1 - (A.Length * 2)); + end; + else + Result := 0; + end; +end; + +function TGradient.InterpolateColor(Offset: Single): TAlphaColor; +var + I: Integer; +begin + Result := 0; + if FPoints.Count > 1 then + begin + if Offset < 0 then + Offset := 0; + if Offset > 1 then + Offset := 1; + if Offset < FPoints[0].Offset then + begin + Result := Points[0].IntColor; + Exit; + end; + if Offset > FPoints[FPoints.Count - 1].Offset then + begin + Result := FPoints[FPoints.Count - 1].IntColor; + Exit; + end; + for I := 0 to FPoints.Count - 2 do + begin + if (Offset < Points[I].Offset) then + Continue; + if Offset > Points[I + 1].Offset then + Continue; + if Points[I + 1].Offset - Points[I].Offset <= 0 then + Result := Points[I].IntColor + else if (I = FPoints.Count - 2) and (Offset > Points[Points.Count - 1].Offset) then // last + Result := Points[Points.Count - 1].IntColor + else + Result := FMX.Utils.InterpolateColor(Points[I].IntColor, Points[I + 1].IntColor, + (Offset - Points[I].Offset) / (Points[I + 1].Offset - Points[I].Offset)); + end; + end; +end; + +procedure TGradient.PositionChanged(Sender: TObject); +begin + if Assigned(FOnChanged) then + FOnChanged(Self); +end; + +function TGradient.IsLinearStored: Boolean; +begin + Result := FStyle = TGradientStyle.Linear; +end; + +function TGradient.IsRadialStored: Boolean; +begin + Result := FStyle = TGradientStyle.Radial; +end; + +procedure TGradient.SetRadialTransform(const Value: TTransform); +begin + FRadialTransform.Assign(Value); +end; + +procedure TGradient.SetStartPosition(const Value: TPosition); +begin + FStartPosition.Assign(Value); +end; + +procedure TGradient.SetStopPosition(const Value: TPosition); +begin + FStopPosition.Assign(Value); +end; + +procedure TGradient.SetColor(const Value: TAlphaColor); +begin + if (FPoints.Count > 0) and (Points[0].Color <> Value) then + begin + Points[0].Color := Value; + if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +procedure TGradient.SetColor1(const Value: TAlphaColor); +begin + if (FPoints.Count > 1) and (Points[1].Color <> Value) then + begin + Points[1].Color := Value; + if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +procedure TGradient.SetPoints(const Value: TGradientPoints); +begin + FPoints.Assign(Value); +end; + +procedure TGradient.SetStyle(const Value: TGradientStyle); +begin + if FStyle <> Value then + begin + FStyle := Value; + if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +{ TBrushResource } + +destructor TBrushResource.Destroy; +begin + if FStyleResource <> nil then + begin + FStyleResource.RemoveFreeNotify(Self); + FStyleResource := nil; + end; + inherited; +end; + +procedure TBrushResource.FreeNotification(AObject: TObject); +begin + if AObject = FStyleResource then + FStyleResource := nil; +end; + +procedure TBrushResource.Assign(Source: TPersistent); +begin + if Source is TBrushResource then + begin + StyleResource := TBrushResource(Source).StyleResource; + FStyleLookup := TBrushResource(Source).StyleLookup; + end + else + inherited; +end; + +procedure TBrushResource.SetStyleResource(const Value: TBrushObject); +begin + if FStyleResource <> Value then + begin + if FStyleResource <> nil then + FStyleResource.RemoveFreeNotify(Self); + FStyleResource := Value; + if FStyleResource <> nil then + begin + FStyleLookup := FStyleResource.StyleName; + FStyleResource.AddFreeNotify(Self); + end; + end; +end; + +function TBrushResource.GetStyleLookup: string; +begin + Result := FStyleLookup; +end; + +procedure TBrushResource.SetStyleLookup(const Value: string); +begin + if Value <> FStyleLookup then + begin + FStyleLookup := Value; + end; +end; + +function TBrushResource.GetBrush: TBrush; +var + O: TFmxObject; +begin + Result := nil; + if FStyleResource <> nil then + Result := TBrushObject(FStyleResource).Brush + else if FStyleLookup <> '' then + begin + O := FindStyleResource(FStyleLookup); + if O is TBrushObject then + StyleResource := TBrushObject(O); + if FStyleResource <> nil then + Result := TBrushObject(FStyleResource).Brush; + end; +end; + +{ TBrushBitmap } + +constructor TBrushBitmap.Create; +begin + inherited Create; + FBitmap := TBitmap.Create(0, 0); +end; + +destructor TBrushBitmap.Destroy; +begin + FBitmap.DisposeOf; + inherited; +end; + +procedure TBrushBitmap.DoChanged; +begin + if Assigned(FOnChanged) then + FOnChanged(Self); +end; + +function TBrushBitmap.GetBitmapImage: TBitmapImage; +begin + if FBitmap <> nil then + Result := FBitmap.Image + else + Result := nil; +end; + +procedure TBrushBitmap.Assign(Source: TPersistent); +begin + if Source is TBrushBitmap then + begin + FWrapMode := TBrushBitmap(Source).FWrapMode; + FBitmap.Assign(TBrushBitmap(Source).FBitmap); + DoChanged; + end + else + inherited; +end; + +procedure TBrushBitmap.SetWrapMode(const Value: TWrapMode); +begin + if FWrapMode <> Value then + begin + FWrapMode := Value; + DoChanged; + end; +end; + +procedure TBrushBitmap.SetBitmap(const Value: TBitmap); +begin + FBitmap.Assign(Value); + DoChanged; +end; + +{ TBrush } + +constructor TBrush.Create; +begin + inherited Create; + FDefaultKind := ADefaultKind; + FDefaultColor := ADefaultColor; + FColor := ADefaultColor; + FKind := FDefaultKind; + FGradient := TGradient.Create; + FGradient.OnChanged := GradientChanged; + FResource := TBrushResource.Create; + FResource.OnChanged := ResourceChanged; + FBitmap := TBrushBitmap.Create; + FBitmap.OnChanged := BitmapChanged; + FBitmap.Bitmap.OnChange := BitmapChanged; +end; + +destructor TBrush.Destroy; +begin + FBitmap.DisposeOf; + FResource.DisposeOf; + FGradient.DisposeOf; + inherited; +end; + +procedure TBrush.Assign(Source: TPersistent); +var + SaveChange: TNotifyEvent; +begin + if Source is TBrush then + begin + SaveChange := FOnChanged; + FOnChanged := nil; + FDefaultKind := TBrush(Source).FDefaultKind; + FDefaultColor := TBrush(Source).FDefaultColor; + FColor := TBrush(Source).FColor; + FKind := TBrush(Source).FKind; + case FKind of + TBrushKind.Gradient: + FGradient.Assign(TBrush(Source).Gradient); + TBrushKind.Resource: + FResource.Assign(TBrush(Source).Resource); + TBrushKind.Bitmap: + FBitmap.Assign(TBrush(Source).Bitmap); + end; + FOnChanged := SaveChange; + if Assigned(FOnChanged) then + FOnChanged(Self); + end + else + inherited; +end; + +procedure TBrush.GradientChanged(Sender: TObject); +begin + if Assigned(FOnChanged) then + FOnChanged(Self); + if Assigned(FOnGradientChanged) then + FOnGradientChanged(Self); +end; + +procedure TBrush.ResourceChanged(Sender: TObject); +begin + if Assigned(FOnChanged) then + FOnChanged(Self); +end; + +procedure TBrush.BitmapChanged(Sender: TObject); +begin + if Assigned(FOnChanged) then + FOnChanged(Self); +end; + +function TBrush.IsBitmapStored: Boolean; +begin + Result := (FKind = TBrushKind.Bitmap); +end; + +function TBrush.IsColorStored: Boolean; +begin + Result := (FKind = TBrushKind.Solid) and (FColor <> FDefaultColor); +end; + +function TBrush.IsGradientStored: Boolean; +begin + Result := FKind = TBrushKind.Gradient; +end; + +function TBrush.IsKindStored: Boolean; +begin + Result := FKind <> FDefaultKind; +end; + +function TBrush.IsResourceStored: Boolean; +begin + Result := FKind = TBrushKind.Resource; +end; + +procedure TBrush.SetResource(const Value: TBrushResource); +begin + FResource.Assign(Value); +end; + +procedure TBrush.SetGradient(const Value: TGradient); +begin + FGradient.Assign(Value); +end; + +function TBrush.GetColor: TAlphaColor; +begin + Result := FColor; +end; + +procedure TBrush.SetColor(const Value: TAlphaColor); +begin + if FColor <> Value then + begin + FColor := Value; + if FKind = TBrushKind.Gradient then + FGradient.Color := Value + else if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +procedure TBrush.SetKind(const Value: TBrushKind); +begin + if FKind <> Value then + begin + FKind := Value; + if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +{ TStrokeBrush.TDashData } + +constructor TStrokeBrush.TDashData.Create(const ADashArray: TDashArray; ADashOffset: Single); +begin + DashArray := ADashArray; + DashOffset := ADashOffset; +end; + +{ TStrokeBrush } + +constructor TStrokeBrush.Create(const ADefaultKind: TBrushKind; const ADefaultColor: TAlphaColor); +begin + inherited; + FThickness := 1; +end; + +procedure TStrokeBrush.ReadCustomDash(AStream: TStream); +var + Len: Integer; +begin + AStream.Read(Len, SizeOf(Len)); + SetLength(FDashArray, Len); + if Len > 0 then + AStream.Read(FDashArray[0], SizeOf(Single) * Len); + AStream.Read(FDashOffset, SizeOf(FDashOffset)); +end; + +procedure TStrokeBrush.WriteCustomDash(AStream: TStream); +var + Len: Integer; +begin + Len := Length(FDashArray); + AStream.Write(Len, SizeOf(Len)); + if Len > 0 then + AStream.Write(FDashArray[0], SizeOf(Single) * Len); + AStream.Write(FDashOffset, SizeOf(FDashOffset)); +end; + +procedure TStrokeBrush.DefineProperties(Filer: TFiler); +begin + inherited; + Filer.DefineBinaryProperty('CustomDash', ReadCustomDash, WriteCustomDash, Dash = TStrokeDash.Custom); +end; + +function TStrokeBrush.GetDashArray: TDashArray; +begin + Result := Copy(FDashArray); +end; + +class function TStrokeBrush.GetStdDash(const Device: TDashDevice; const Dash: TStrokeDash): TDashData; +begin + if not FStdDashCreated then + begin + // create the screen line dashes + FStdDash[TDashDevice.Screen, TStrokeDash.Solid] := TDashData.Create(nil, 0); + FStdDash[TDashDevice.Screen, TStrokeDash.Dash] := TDashData.Create(TDashArray.Create(3, 1), 0); + FStdDash[TDashDevice.Screen, TStrokeDash.Dot] := TDashData.Create(TDashArray.Create(1, 1), 0); + FStdDash[TDashDevice.Screen, TStrokeDash.DashDot] := TDashData.Create(TDashArray.Create(3, 1, 1, 1), 0); + FStdDash[TDashDevice.Screen, TStrokeDash.DashDotDot] := TDashData.Create(TDashArray.Create(3, 1, 1, 1, 1, 1), 0); + FStdDash[TDashDevice.Screen, TStrokeDash.Custom] := TDashData.Create(nil, 0); + + // create the printer line dashes +{$IFDEF MACOS} + // MacOS dashes work strange; these values are experimental values that + // seem to work correctly + FStdDash[TDashDevice.Printer, TStrokeDash.Solid] := TDashData.Create(nil, 0); + FStdDash[TDashDevice.Printer, TStrokeDash.Dash] := TDashData.Create(TDashArray.Create(3 * 2, 6 * 2), 0); + FStdDash[TDashDevice.Printer, TStrokeDash.Dot] := TDashData.Create(TDashArray.Create(1 * 2, 3 * 2), 0); + FStdDash[TDashDevice.Printer, TStrokeDash.DashDot] := + TDashData.Create(TDashArray.Create(3 * 3, 6 * 3, 1 * 3, 3 * 3), 0); + FStdDash[TDashDevice.Printer, TStrokeDash.DashDotDot] := + TDashData.Create(TDashArray.Create(3 * 2, 9 * 2, 1 * 2, 3 * 2, 1 * 2, 3 * 2), 0); + FStdDash[TDashDevice.Printer, TStrokeDash.Custom] := TDashData.Create(nil, 0); +{$ELSE} + FStdDash[TDashDevice.Printer] := FStdDash[TDashDevice.Screen]; +{$ENDIF} + FStdDashCreated := True; + end; + + Result.DashArray := Copy(FStdDash[Device, Dash].DashArray); + Result.DashOffset := FStdDash[Device, Dash].DashOffset; +end; + +procedure TStrokeBrush.Assign(Source: TPersistent); +var + SaveChange: TNotifyEvent; +begin + if Source is TStrokeBrush then + begin + SaveChange := FOnChanged; + FOnChanged := nil; + + FDefaultKind := TStrokeBrush(Source).FDefaultKind; + FDefaultColor := TStrokeBrush(Source).FDefaultColor; + FColor := TStrokeBrush(Source).Color; + FKind := TStrokeBrush(Source).Kind; + case FKind of + TBrushKind.Gradient: + FGradient.Assign(TStrokeBrush(Source).Gradient); + TBrushKind.Resource: + FResource.Assign(TStrokeBrush(Source).Resource); + TBrushKind.Bitmap: + FBitmap.Assign(TStrokeBrush(Source).Bitmap); + end; + + FThickness := TStrokeBrush(Source).Thickness; + FCap := TStrokeBrush(Source).Cap; + FDash := TStrokeBrush(Source).Dash; + FJoin := TStrokeBrush(Source).Join; + FDashArray := Copy(TStrokeBrush(Source).FDashArray); + FDashOffset := TStrokeBrush(Source).FDashOffset; + FOnChanged := SaveChange; + if Assigned(FOnChanged) then + FOnChanged(Self); + end + else + inherited; +end; + +procedure TStrokeBrush.SetCustomDash(const Dash: array of Single; Offset: Single); +var + I: Integer; +begin + FDash := TStrokeDash.Custom; + SetLength(FDashArray, Length(Dash)); + for I := 0 to High(Dash) do + FDashArray[I] := Dash[I]; + FDashOffset := Offset; +end; + +function TStrokeBrush.IsThicknessStored: Boolean; +begin + Result := Thickness <> 1; +end; + +procedure TStrokeBrush.SetCap(const Value: TStrokeCap); +begin + if FCap <> Value then + begin + FCap := Value; + if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +procedure TStrokeBrush.SetDash(const Value: TStrokeDash); +begin + if FDash <> Value then + begin + FDash := Value; + case FDash of + TStrokeDash.Solid: + begin + FDashOffset := 0; + SetLength(FDashArray, 0); + end; + TStrokeDash.Dash: + begin + FDashOffset := 0; + SetLength(FDashArray, 2); + FDashArray[0] := 1 * 3; + FDashArray[1] := 1; + end; + TStrokeDash.Dot: + begin + FDashOffset := 0; + SetLength(FDashArray, 2); + FDashArray[0] := 1; + FDashArray[1] := 1; + end; + TStrokeDash.DashDot: + begin + FDashOffset := 0; + SetLength(FDashArray, 4); + FDashArray[0] := 1 * 3; + FDashArray[1] := 1; + FDashArray[2] := 1; + FDashArray[3] := 1; + end; + TStrokeDash.DashDotDot: + begin + FDashOffset := 0; + SetLength(FDashArray, 6); + FDashArray[0] := 1 * 3; + FDashArray[1] := 1; + FDashArray[2] := 1; + FDashArray[3] := 1; + FDashArray[4] := 1; + FDashArray[5] := 1; + end; + TStrokeDash.Custom: + ; + else + FDashOffset := 0; + SetLength(FDashArray, 0); + end; + if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +procedure TStrokeBrush.SetJoin(const Value: TStrokeJoin); +begin + if FJoin <> Value then + begin + FJoin := Value; + if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +procedure TStrokeBrush.SetThickness(const Value: Single); +var + NewValue: Single; +begin + NewValue := Max(Value, 0); + if not SameValue(FThickness, NewValue, TEpsilon.Vector) then + begin + FThickness := NewValue; + if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +{ TFontWeightHelper } + +function TFontWeightHelper.IsRegular: Boolean; +begin + Result := Self = TFontWeight.Regular; +end; + +{ TFontSlantHelper } + +function TFontSlantHelper.IsRegular: Boolean; +begin + Result := Self = TFontSlant.Regular; +end; + +{ TFontStretchHelper } + +function TFontStretchHelper.IsRegular: Boolean; +begin + Result := Self = TFontStretch.Regular; +end; + +{ TFontStyleExt } + +class function TFontStyleExt.Create(const AWeight: TFontWeight; const AStant: TFontSlant; const AStretch: TFontStretch; + const AOtherStyles: TFontStyles): TFontStyleExt; +begin + Result := TFontStyleExt.Create(AOtherStyles); + Result.Weight := AWeight; + Result.Slant := AStant; + Result.Stretch := AStretch; +end; + +class function TFontStyleExt.Create(const AStyle: TFontStyles): TFontStyleExt; +begin + Result.Weight := TFontWeight.Regular; + Result.Slant := TFontSlant.Regular; + Result.Stretch := TFontStretch.Regular; + if AStyle <> [] then + begin + if TFontStyle.fsBold in AStyle then + Result.Weight := TFontWeight.Bold; + if TFontStyle.fsItalic in AStyle then + Result.Slant := TFontSlant.Oblique; + end; + Result.SimpleStyle := AStyle - [TFontStyle.fsBold, TFontStyle.fsItalic]; +end; + +class function TFontStyleExt.Default: TFontStyleExt; +begin + Result := TFontStyleExt.Create([]); +end; + +class operator TFontStyleExt.Equal(const A, B: TFontStyleExt): Boolean; +begin + Result := (A.SimpleStyle = B.SimpleStyle) and (A.Weight = B.Weight) and (A.Slant = B.Slant) + and (A.Stretch = B.Stretch); +end; + +class operator TFontStyleExt.NotEqual(const A, B: TFontStyleExt): Boolean; +begin + Result := (A.SimpleStyle <> B.SimpleStyle) or (A.Weight <> B.Weight) or (A.Slant <> B.Slant) + or (A.Stretch <> B.Stretch); +end; + +class operator TFontStyleExt.Implicit(const AStyle: TFontStyleExt): TFontStyles; +begin + Result := AStyle.SimpleStyle; + if not AStyle.Weight.IsRegular then + Include(Result, TFontStyle.fsBold); + if not AStyle.Slant.IsRegular then + Include(Result, TFontStyle.fsItalic); +end; + +class operator TFontStyleExt.Add(const A, B: TFontStyleExt): TFontStyleExt; +begin + Result := A; + Result.SimpleStyle := Result.SimpleStyle + B.SimpleStyle; +end; + +class operator TFontStyleExt.Add(const A: TFontStyleExt; const B: TFontStyle): TFontStyleExt; +begin + Result := A; + Result.SimpleStyle := Result.SimpleStyle + [B] - [TFontStyle.fsBold, TFontStyle.fsItalic]; + if B = TFontStyle.fsBold then + Result.Weight := TFontWeight.Bold; + if B = TFontStyle.fsItalic then + Result.Slant := TFontSlant.Oblique; +end; + +class operator TFontStyleExt.Add(const A: TFontStyleExt; const B: TFontStyles): TFontStyleExt; +begin + Result := A; + Result.SimpleStyle := Result.SimpleStyle + B - [TFontStyle.fsBold, TFontStyle.fsItalic]; + if TFontStyle.fsBold in B then + Result.Weight := TFontWeight.Bold; + if TFontStyle.fsItalic in B then + Result.Slant := TFontSlant.Oblique; +end; + +class operator TFontStyleExt.Subtract(const A: TFontStyleExt; const B: TFontStyle): TFontStyleExt; +begin + Result := A; + Result.SimpleStyle := Result.SimpleStyle - [B] - [TFontStyle.fsBold, TFontStyle.fsItalic]; + if B = TFontStyle.fsBold then + Result.Weight := TFontWeight.Regular; + if B = TFontStyle.fsItalic then + Result.Slant := TFontSlant.Regular; +end; + +class operator TFontStyleExt.Subtract(const A: TFontStyleExt; const B: TFontStyles): TFontStyleExt; +begin + Result := A; + Result.SimpleStyle := Result.SimpleStyle - B - [TFontStyle.fsBold, TFontStyle.fsItalic]; + if TFontStyle.fsBold in B then + Result.Weight := TFontWeight.Regular; + if TFontStyle.fsItalic in B then + Result.Slant := TFontSlant.Regular; +end; + +class operator TFontStyleExt.In(const A: TFontStyle; const B: TFontStyleExt): Boolean; +begin + if A in [TFontStyle.fsUnderline, TFontStyle.fsStrikeOut] then + Result := A in B.SimpleStyle + else if A = TFontStyle.fsBold then + Result := B.Weight > TFontWeight.Regular + else if A = TFontStyle.fsItalic then + Result := not B.Slant.IsRegular + else + Result := False; +end; + +class operator TFontStyleExt.Multiply(const A: TFontStyles; const B: TFontStyleExt): TFontStyles; +begin + Result := A * B; +end; + +function TFontStyleExt.IsRegular: Boolean; +begin + Result := (Weight = TFontWeight.Regular) and (Stretch = TFontStretch.Regular) and (Slant = TFontSlant.Regular); +end; + +{ TFont } + +procedure TFont.SetFamily(const Value: TFontName); +begin + if FFamily <> Value then + begin + FFamily := Value; + Change; + end; +end; + +procedure TFont.SetSize(const Value: Single); +var + LSize: Single; +begin + LSize := EnsureRange(Value, 1, MaxFontSize); + if not SameValue(FSize, LSize, TEpsilon.FontSize) then + begin + FSize := LSize; + Change; + end; +end; + +function TFont.GetStyle: TFontStyles; +begin + Result := FStyleExt; +end; + +procedure TFont.SetStyle(const Value: TFontStyles); +var + LStyle: TFontStyleExt; +begin + LStyle := TFontStyleExt.Create(Value); + if FStyleExt <> LStyle then + begin + FStyleExt := LStyle; + Change; + end; +end; + +procedure TFont.SetStyleExt(const Value: TFontStyleExt); +begin + if FStyleExt <> Value then + begin + FStyleExt := Value; + Change; + end; +end; + +procedure TFont.ReadStyleExt(AStream: TStream); +begin + AStream.Read(FStyleExt.SimpleStyle, SizeOf(TFontStyles)); + AStream.Read(FStyleExt.Weight, SizeOf(TFontWeight)); + AStream.Read(FStyleExt.Slant, SizeOf(TFontSlant)); + AStream.Read(FStyleExt.Stretch, SizeOf(TFontStretch)); +end; + +procedure TFont.WriteStyleExt(AStream: TStream); +begin + AStream.Write(FStyleExt.SimpleStyle, SizeOf(TFontStyles)); + AStream.Write(FStyleExt.Weight, SizeOf(TFontWeight)); + AStream.Write(FStyleExt.Slant, SizeOf(TFontSlant)); + AStream.Write(FStyleExt.Stretch, SizeOf(TFontStretch)); +end; + +procedure TFont.DefineProperties(Filer: TFiler); +begin + Filer.DefineBinaryProperty('StyleExt', ReadStyleExt, WriteStyleExt, not FStyleExt.IsRegular or (FStyleExt.SimpleStyle <> [])); + inherited; +end; + +function TFont.DefaultFamily: string; +var + Service: IFMXSystemFontService; +begin + if FontService = nil then + begin + TPlatformServices.Current.SupportsPlatformService(IFMXSystemFontService, Service); + FontService := Service; + end; + if FontService <> nil then + Result := FontService.GetDefaultFontFamilyName + else + Result := DefaultFontFamily; +end; + +function TFont.DefaultSize: Single; +var + Service: IFMXSystemFontService; +begin + if FontService = nil then + begin + TPlatformServices.Current.SupportsPlatformService(IFMXSystemFontService, Service); + FontService := Service; + end; + if FontService <> nil then + Result := FontService.GetDefaultFontSize + else + Result := DefaultFontSize; +end; + +procedure TFont.DoChanged; +begin + if Assigned(FOnChanged) then + FOnChanged(Self); +end; + +constructor TFont.Create; +begin + inherited; + FUpdating := True; + SetSettings(DefaultFamily, DefaultSize, TFontStyleExt.Default); +end; + +procedure TFont.AfterConstruction; +begin + inherited; + FChanged := False; + FUpdating := False; +end; + +procedure TFont.Change; +begin + if not FUpdating then + begin + FChanged := False; + DoChanged; + end + else + FChanged := True; +end; + +procedure TFont.Assign(Source: TPersistent); +var + LFont: TFont; +begin + if (Source = nil) or (Source is TFont) then + begin + if Source = nil then + LFont := TFontClass(ClassType).Create + else + LFont := TFont(Source); + try + SetSettings(LFont.Family, LFont.Size, LFont.StyleExt); + finally + if Source = nil then + LFont.Free; + end; + end + else + inherited; +end; + +procedure TFont.SetSettings(const AFamily: string; const ASize: Single; const AStyle: TFontStyleExt); +var + LUpdating: Boolean; +begin + LUpdating := FUpdating; + try + FUpdating := True; + Family := AFamily; + Size := ASize; + StyleExt := AStyle; + finally + FUpdating := LUpdating; + end; + if not FUpdating and FChanged then + Change; +end; + +function TFont.Equals(Obj: TObject): Boolean; +begin + Result := (Obj is TFont) and SameValue(Size, TFont(Obj).Size, TEpsilon.FontSize) and (Family = TFont(Obj).Family) and + (StyleExt = TFont(Obj).StyleExt); +end; + +function TFont.IsFamilyStored: Boolean; +begin + Result := FFamily <> DefaultFamily; +end; + +function TFont.IsSizeStored: Boolean; +begin + Result := not SameValue(FSize, DefaultSize, TEpsilon.FontSize); +end; + +{ TFontColorForState } + +constructor TFontColorForState.Create(const AOwner: TTextSettings); +begin + inherited Create; + FOwner := AOwner; + BeginUpdate; +end; + +procedure TFontColorForState.AfterConstruction; +begin + inherited; + FChanged := False; + EndUpdate; +end; + +procedure TFontColorForState.Assign(Source: TPersistent); +var + LFontColors: TFontColorForState; + I: TIndex; +begin + if (Source is TFontColorForState) or (Source = nil) then + begin + if Source = nil then + LFontColors := TFontColorForStateClass(ClassType).Create(Owner) + else + LFontColors := TFontColorForState(Source); + try + BeginUpdate; + try + for I := Low(TIndex) to High(TIndex) do + Color[I] := LFontColors.Color[I]; + finally + EndUpdate; + end; + finally + if Source = nil then + LFontColors.Free; + end; + end + else + inherited; +end; + +function TFontColorForState.Equals(Obj: TObject): Boolean; +var + I: TIndex; +begin + Result := Obj is TFontColorForState; + if Result then + for I := Low(TIndex) to High(TIndex) do + if FColor[I] <> TFontColorForState(Obj).FColor[I] then + Exit(False); +end; + +procedure TFontColorForState.BeginUpdate; +begin + Inc(FUpdateCount); +end; + +procedure TFontColorForState.EndUpdate; +begin + if FUpdateCount > 0 then + begin + Dec(FUpdateCount); + if (FUpdateCount = 0) and FChanged then + try + DoChanged; + finally + FChanged := False; + end; + end; +end; + +procedure TFontColorForState.Change; +begin + if FUpdateCount = 0 then + begin + try + DoChanged; + finally + FChanged := False; + end; + end + else + FChanged := True; +end; + +procedure TFontColorForState.DoChanged; +begin + if FOwner <> nil then + FOwner.Change; +end; + +function TFontColorForState.GetColor(const Index: TIndex): TAlphaColor; +begin + Result := FColor[Index]; +end; + +procedure TFontColorForState.SetColor(const Index: TIndex; const Value: TAlphaColor); +begin + if FColor[Index] <> Value then + begin + FColor[Index] := Value; + Change; + end; +end; + +function TFontColorForState.GetCurrentColor(const Index: TIndex): TAlphaColor; +begin + Result := FColor[Index]; + if (Result = claNull) and (Owner <> nil) then + Result := Owner.FontColor; +end; + +function TFontColorForState.GetOwner: TPersistent; +begin + Result := FOwner; +end; + +{ TTextSettings } + +type + TSettingsFont = class(TFont) + private + [Weak] FTextSettings: TTextSettings; + protected + procedure DoChanged; override; + public + constructor Create(const ATextSettings: TTextSettings); + property TextSettings: TTextSettings read FTextSettings; + end; + +{ TSettingsFont } + +constructor TSettingsFont.Create(const ATextSettings: TTextSettings); +begin + inherited Create; + FTextSettings := ATextSettings; +end; + +procedure TSettingsFont.DoChanged; +begin + if FTextSettings <> nil then + begin + FTextSettings.IsAdjustChanged := True; + FTextSettings.Change; + end; + inherited; +end; + +constructor TTextSettings.Create(const AOwner: TPersistent); +begin + inherited Create; + FOwner := AOwner; + BeginUpdate; + FFontColorForState := CreateFontColorForState; + FFont := TSettingsFont.Create(Self); + FontColor := TAlphaColorRec.Black; + HorzAlign := TTextAlign.Leading; + VertAlign := TTextAlign.Center; + Trimming := TTextTrimming.None; + WordWrap := False; +end; + +procedure TTextSettings.AfterConstruction; +begin + inherited; + FIsChanged := False; + FIsAdjustChanged := False; + EndUpdate; +end; + +destructor TTextSettings.Destroy; +begin + FFont.Free; + FFontColorForState.Free; + inherited; +end; + +function TTextSettings.GetOwner: TPersistent; +begin + Result := FOwner; +end; + +procedure TTextSettings.DoAssign(const Source: TTextSettings); +begin + Font.Assign(Source.Font); + FontColor := Source.FontColor; + FontColorForState.Assign(Source.FontColorForState); + HorzAlign := Source.HorzAlign; + VertAlign := Source.VertAlign; + WordWrap := Source.WordWrap; + Trimming := Source.Trimming; +end; + +procedure TTextSettings.Assign(Source: TPersistent); +var + LTextSettings: TTextSettings; +begin + if (Source = nil) or (Source is TTextSettings) then + begin + if Source = nil then + LTextSettings := TTextSettingsClass(ClassType).Create(Owner) + else + LTextSettings := TTextSettings(Source); + try + BeginUpdate; + try + DoAssign(LTextSettings); + finally + EndUpdate; + end; + finally + if Source = nil then + LTextSettings.Free; + end; + end + else + inherited; +end; + +function TTextSettings.Equals(Obj: TObject): Boolean; +var + Source: TTextSettings; +begin + Result := Obj is TTextSettings; + if Result then + begin + Source := TTextSettings(Obj); + Result := (HorzAlign = Source.HorzAlign) and (VertAlign = Source.VertAlign) and (WordWrap = Source.WordWrap) and + (FontColor = Source.FontColor) and (Trimming = Source.Trimming) and (Font.Equals(Source.Font)) and + (FontColorForState.Equals(Source.FontColorForState)); + end; +end; + +procedure TTextSettings.DoAssignNotStyled(const TextSettings: TTextSettings; const StyledSettings: TStyledSettings); +begin + if not (TStyledSetting.Family in StyledSettings) then + Font.Family := TextSettings.Font.FFamily; + if not (TStyledSetting.Size in StyledSettings) then + Font.Size := TextSettings.Font.Size; + if not (TStyledSetting.Style in StyledSettings) then + Font.StyleExt := TextSettings.Font.StyleExt; + if not (TStyledSetting.FontColor in StyledSettings) then + begin + FontColor := TextSettings.FontColor; + FontColorForState := TextSettings.FontColorForState; + end; + if not (TStyledSetting.Other in StyledSettings) then + begin + HorzAlign := TextSettings.HorzAlign; + VertAlign := TextSettings.VertAlign; + WordWrap := TextSettings.WordWrap; + Trimming := TextSettings.Trimming; + end; +end; + +procedure TTextSettings.AssignNotStyled(const TextSettings: TTextSettings; const StyledSettings: TStyledSettings); +var + LTextSettings: TTextSettings; +begin + if StyledSettings <> AllStyledSettings then + begin + if StyledSettings = [] then + Assign(TextSettings) + else + begin + if TextSettings = nil then + LTextSettings := TTextSettingsClass(ClassType).Create(Owner) + else + LTextSettings := TextSettings; + try + BeginUpdate; + try + DoAssignNotStyled(LTextSettings, StyledSettings); + finally + EndUpdate; + end; + finally + if TextSettings = nil then + LTextSettings.Free; + end; + end; + end; +end; + +procedure TTextSettings.UpdateStyledSettings(const OldTextSettings, DefaultTextSettings: TTextSettings; var StyledSettings: TStyledSettings); +begin + // If the user changed the value of the property, and it differs from the default, + // then delete the corresponding value from StyledSettings + if (not SameText(OldTextSettings.Font.Family, Font.Family)) and + (not SameText(DefaultTextSettings.Font.Family, Font.Family)) then + Exclude(StyledSettings, TStyledSetting.Family); + + if (not SameValue(OldTextSettings.Font.Size, Font.Size, TEpsilon.FontSize)) and + (not SameValue(DefaultTextSettings.Font.Size, Font.Size, TEpsilon.FontSize)) then + Exclude(StyledSettings, TStyledSetting.Size); + + if (OldTextSettings.Font.StyleExt <> Font.StyleExt) and (DefaultTextSettings.Font.StyleExt <> Font.StyleExt) then + Exclude(StyledSettings, TStyledSetting.Style); + + if ((OldTextSettings.FontColor <> FontColor) and (DefaultTextSettings.FontColor <> FontColor)) then + Exclude(StyledSettings, TStyledSetting.FontColor); + + if ((OldTextSettings.HorzAlign <> HorzAlign) and (DefaultTextSettings.HorzAlign <> HorzAlign)) or + ((OldTextSettings.VertAlign <> VertAlign) and (DefaultTextSettings.VertAlign <> VertAlign)) or + ((OldTextSettings.Trimming <> Trimming) and (DefaultTextSettings.Trimming <> Trimming)) or + ((OldTextSettings.WordWrap <> WordWrap) and (DefaultTextSettings.WordWrap <> WordWrap)) then + Exclude(StyledSettings, TStyledSetting.Other); + + if (not OldTextSettings.FontColorForState.Equals(FontColorForState)) and + (not DefaultTextSettings.FontColorForState.Equals(FontColorForState)) then + Exclude(StyledSettings, TStyledSetting.FontColor); +end; + +procedure TTextSettings.BeginUpdate; +begin + Inc(FUpdateCount); +end; + +procedure TTextSettings.EndUpdate; +begin + if FUpdateCount > 0 then + begin + Dec(FUpdateCount); + if (FUpdateCount = 0) and (FIsChanged or FIsAdjustChanged) then + try + DoChanged; + finally + FIsChanged := False; + FIsAdjustChanged := False; + end; + end; +end; + +procedure TTextSettings.Change; +begin + FIsChanged := True; + if (FUpdateCount = 0) then + begin + try + DoChanged; + finally + FIsChanged := False; + FIsAdjustChanged := False; + end; + end; +end; + +procedure TTextSettings.DoChanged; +begin + if Assigned(OnChanged) then + OnChanged(Self); +end; + +procedure TTextSettings.SetFont(const Value: TFont); +begin + if not (((Font = nil) and (Value = nil)) or ((Font <> nil) and Font.Equals(Value))) then + begin + Font.Assign(Value); + IsAdjustChanged := True; + Change; + end; +end; + +procedure TTextSettings.SetFontColor(const Value: TAlphaColor); +begin + if FFontColor <> Value then + begin + FFontColor := Value; + Change; + end; +end; + +procedure TTextSettings.SetHorzAlign(const Value: TTextAlign); +begin + if FHorzAlign <> Value then + begin + FHorzAlign := Value; + IsAdjustChanged := True; + Change; + end; +end; + +procedure TTextSettings.SetVertAlign(const Value: TTextAlign); +begin + if FVertAlign <> Value then + begin + FVertAlign := Value; + IsAdjustChanged := True; + Change; + end; +end; + +procedure TTextSettings.SetTrimming(const Value: TTextTrimming); +begin + if FTrimming <> Value then + begin + FTrimming := Value; + IsAdjustChanged := True; + Change; + end; +end; + +procedure TTextSettings.SetWordWrap(const Value: Boolean); +begin + if FWordWrap <> Value then + begin + FWordWrap := Value; + IsAdjustChanged := True; + Change; + end; +end; + +function TTextSettings.GetTextColorsClass: TFontColorForStateClass; +begin + Result := nil; +end; + +function TTextSettings.CreateFontColorForState: TFontColorForState; +var + LClass: TFontColorForStateClass; +begin + LClass := GetTextColorsClass; + if LClass = nil then + LClass := TFontColorForState; + Result := LClass.Create(Self); +end; + +procedure TTextSettings.SetFontColorForState(const Value: TFontColorForState); +begin + FFontColorForState.Assign(Value); +end; + +function TTextSettings.StoreFontColorForState: Boolean; +var + LFontColors: TFontColorForState; +begin + LFontColors := CreateFontColorForState; + try + Result := not FFontColorForState.Equals(LFontColors); + finally + LFontColors.Free; + end; +end; + +{ TBitmapCodecManager } + +class procedure TBitmapCodecManager.UnInitialize; +begin + FreeAndNil(FCodecsDescriptors); +end; + +class function TBitmapCodecManager.FindCodecClass(const AFileExtension: string; var ACodecClass: TCustomBitmapCodecClass): Boolean; +var + Descriptor: TCodecDescriptor; +begin + Result := False; + ACodecClass := nil; + for Descriptor in CodecsDescriptors do + if SameExtension(AFileExtension, Descriptor.Extension) then + begin + ACodecClass := Descriptor.CodecClass; + Exit(True); + end; +end; + +class function TBitmapCodecManager.FindWritableCodecClass(const AFileExtension: string; + var ACodecClass: TCustomBitmapCodecClass): Boolean; +var + Descriptor: TCodecDescriptor; +begin + Result := False; + ACodecClass := nil; + for Descriptor in CodecsDescriptors do + if Descriptor.CanSave and SameExtension(AFileExtension, Descriptor.Extension) then + begin + ACodecClass := Descriptor.CodecClass; + Exit(True); + end; +end; + +class function TBitmapCodecManager.GuessCodecClass(const AFileExtension: string): TCustomBitmapCodecClass; +begin + if not FindCodecClass(AFileExtension, Result) and (CodecsDescriptors.Count > 0) then + // If none found, fallback to the first one. + Result := CodecsDescriptors.First.CodecClass; +end; + +class procedure TBitmapCodecManager.RegisterBitmapCodecClass(const AFileExtension, ADescription: string; const ACanSave: Boolean; + const ACodecClass: TCustomBitmapCodecClass); +var + LDescriptor: TCodecDescriptor; +begin + if AFileExtension.Trim.IsEmpty then + raise EBitmapCodecManagerException.CreateRes(@SCodecFileExtensionCannotEmpty); + + if ACodecClass = nil then + raise EBitmapCodecManagerException.CreateRes(@SCodecClassCannotBeNil); + + if CodecExists(AFileExtension) then + raise EBitmapCodecManagerException.CreateResFmt(@SCodecAlreadyExists, [AFileExtension]); + + LDescriptor.Extension := AFileExtension; + LDescriptor.Description := ADescription; + LDescriptor.CodecClass := ACodecClass; + LDescriptor.CanSave := ACanSave; + CodecsDescriptors.Add(LDescriptor); +end; + +class procedure TBitmapCodecManager.UnregisterBitmapCodecClass(const AFileExtension: string); +var + I: Integer; +begin + for I := CodecsDescriptors.Count - 1 downto 0 do + if SameText(AFileExtension, CodecsDescriptors[I].Extension) then + begin + CodecsDescriptors.Delete(I); + Exit; + end; +end; + +class function TBitmapCodecManager.CodecExists(const AFileName: string): Boolean; +var + CodecClass: TCustomBitmapCodecClass; +begin + Result := FindCodecClass(ExtractFileExt(AFileName), CodecClass); +end; + +class function TBitmapCodecManager.GetCodecsDescriptors: TList; +begin + if FCodecsDescriptors = nil then + FCodecsDescriptors := TList.Create; + + Result := FCodecsDescriptors; +end; + +class function TBitmapCodecManager.GetFileTypes: string; +var + Descriptor: TCodecDescriptor; +begin + Result := string.Empty; + for Descriptor in CodecsDescriptors do + if Result.IsEmpty then + Result := '*' + Descriptor.Extension + else + Result := Result + ';' + '*' + Descriptor.Extension; +end; + +class function TBitmapCodecManager.GetFilterString: string; +var + Descriptor: TCodecDescriptor; + CodecFilter: string; + FileTypes: string; +begin + Result := string.Empty; + for Descriptor in CodecsDescriptors do + begin + CodecFilter := Descriptor.ToFilterString; + if Result.IsEmpty then + Result := CodecFilter + else + Result := Result + '|' + CodecFilter; + end; + // all files + FileTypes := GetFileTypes; + Result := SVAllFiles + ' (' + FileTypes + ')|' + FileTypes + '|' + Result; +end; + +class function TBitmapCodecManager.GetImageSize(const AFileName: string): TPointF; +var + CodecClass: TCustomBitmapCodecClass; + DataType: string; +begin + DataType := TImageTypeChecker.GetType(AFileName); + CodecClass := GuessCodecClass(DataType); + if CodecClass <> nil then + Result := CodecClass.GetImageSize(AFileName) + else + Result := TPointF.Zero; +end; + +class function TBitmapCodecManager.LoadFromFile(const AFileName: string; const ABitmap: TBitmapSurface; + const AMaxSizeLimit: Cardinal = 0): Boolean; +var + CodecClass: TCustomBitmapCodecClass; + Codec: TCustomBitmapCodec; + DataType: string; +begin + if ABitmap = nil then + raise EBitmapCodecManagerException.CreateResFmt(@SWrongParameter, ['ABitmap']); + + DataType := TImageTypeChecker.GetType(AFileName); + CodecClass := GuessCodecClass(DataType); + if CodecClass <> nil then + begin + Codec := CodecClass.Create; + try + Result := Codec.LoadFromFile(AFileName, ABitmap, AMaxSizeLimit); + finally + Codec.Free; + end; + end + else + Result := False; +end; + +class function TBitmapCodecManager.LoadThumbnailFromFile(const AFileName: string; const AFitWidth, AFitHeight: Single; + const AUseEmbedded: Boolean; const ABitmap: TBitmapSurface): Boolean; +var + CodecClass: TCustomBitmapCodecClass; + Codec: TCustomBitmapCodec; + DataType: string; +begin + if ABitmap = nil then + raise EBitmapCodecManagerException.CreateResFmt(@SWrongParameter, ['ABitmap']); + + DataType := TImageTypeChecker.GetType(AFileName); + CodecClass := GuessCodecClass(DataType); + if CodecClass <> nil then + begin + Codec := CodecClass.Create; + try + Result := Codec.LoadThumbnailFromFile(AFileName, AFitWidth, AFitHeight, AUseEmbedded, ABitmap); + finally + Codec.Free; + end; + end + else + Result := False; +end; + +class function TBitmapCodecManager.LoadFromStream(const AStream: TStream; const ABitmap: TBitmapSurface; + const AMaxSizeLimit: Cardinal = 0): Boolean; +var + CodecClass: TCustomBitmapCodecClass; + Codec: TCustomBitmapCodec; + DataType: string; +begin + if AStream = nil then + raise EBitmapCodecManagerException.CreateResFmt(@SWrongParameter, ['AStream']); + if ABitmap = nil then + raise EBitmapCodecManagerException.CreateResFmt(@SWrongParameter, ['ABitmap']); + + Result := False; + DataType := TImageTypeChecker.GetType(AStream); + CodecClass := GuessCodecClass(DataType); + if CodecClass <> nil then + begin + Codec := CodecClass.Create; + try + Result := Codec.LoadFromStream(AStream, ABitmap, AMaxSizeLimit); + finally + Codec.Free; + end; + end +end; + +class function TBitmapCodecManager.SameExtension(const ALeft, ARight: string): Boolean; +begin + Result := SameText(ALeft, ARight, loUserLocale) or SameText('.' + ALeft, ARight, loUserLocale); +end; + +class function TBitmapCodecManager.SaveToFile(const AFileName: string; const ABitmap: TBitmapSurface; + const ASaveParams: PBitmapCodecSaveParams = nil): Boolean; +var + Codec: TCustomBitmapCodec; + CodecClass: TCustomBitmapCodecClass; +begin + if ABitmap = nil then + raise EBitmapCodecManagerException.CreateResFmt(@SWrongParameter, ['ABitmap']); + + Result := False; + if FindWritableCodecClass(ExtractFileExt(AFileName), CodecClass) then + begin + Codec := CodecClass.Create; + try + Result := Codec.SaveToFile(AFileName, ABitmap, ASaveParams); + finally + Codec.Free; + end; + end; +end; + +class function TBitmapCodecManager.SaveToStream(const AStream: TStream; const ABitmap: TBitmapSurface; const AExtension: string; + const ASaveParams: PBitmapCodecSaveParams = nil): Boolean; +var + Codec: TCustomBitmapCodec; + CodecClass: TCustomBitmapCodecClass; +begin + if AStream = nil then + raise EBitmapCodecManagerException.CreateResFmt(@SWrongParameter, ['AStream']); + if ABitmap = nil then + raise EBitmapCodecManagerException.CreateResFmt(@SWrongParameter, ['ABitmap']); + + Result := False; + if FindWritableCodecClass(AExtension, CodecClass) then + begin + Codec := CodecClass.Create; + try + Result := Codec.SaveToStream(AStream, ABitmap, AExtension, ASaveParams); + finally + Codec.Free; + end; + end; +end; + +{ TBitmapData } + +constructor TBitmapData.Create(const AWidth, AHeight: Integer; const APixelFormat: TPixelFormat); +begin + Self.FWidth := AWidth; + Self.FHeight := AHeight; + Self.FPixelFormat := APixelFormat; +end; + +function TBitmapData.GetBytesPerLine: Integer; +begin + Result := Width * BytesPerPixel; +end; + +function TBitmapData.GetBytesPerPixel: Integer; +begin + Result := PixelFormatBytes[PixelFormat]; +end; + +function TBitmapData.GetPixel(const X, Y: Integer): TAlphaColor; +begin + Result := PixelToAlphaColor(GetPixelAddr(X, Y), PixelFormat); +end; + +function TBitmapData.GetPixelAddr(const I, J: Integer): Pointer; +begin + Result := Pointer(NativeInt(GetScanline(J)) + I * BytesPerPixel); +end; + +function TBitmapData.GetScanline(const I: Integer): Pointer; +begin + Result := Pointer(NativeInt(Data) + I * Pitch); +end; + +procedure TBitmapData.Copy(const Source: TBitmapData); +var + I: Integer; +begin + for I := 0 to Height - 1 do + Move(Source.GetScanline(I)^, GetScanline(I)^, BytesPerLine); +end; + +procedure TBitmapData.SetPixel(const X, Y: Integer; const AColor: TAlphaColor); +begin + AlphaColorToPixel(AColor, GetPixelAddr(X, Y), PixelFormat); +end; + +{ TBitmapImage } + +constructor TBitmapImage.Create; +begin + inherited; + FBitmapScale := 1; +end; + +procedure TBitmapImage.CreateHandle; +begin + FHandle := CanvasClass.InitializeBitmap(Width, Height, BitmapScale, FPixelFormat); +end; + +procedure TBitmapImage.FreeHandle; +begin + FCanvasClass.FinalizeBitmap(FHandle); + FHandle := 0; +end; + +function TBitmapImage.GetCanvasClass: TCanvasClass; +begin + if FCanvasClass = nil then + FCanvasClass := TCanvasManager.GetDefaultCanvas; + Result := FCanvasClass; +end; + +procedure TBitmapImage.IncreaseRefCount; +begin + AtomicIncrement(FRefCount); +end; + +procedure TBitmapImage.DecreaseRefCount; +begin + if Self <> nil then + begin + AtomicDecrement(FRefCount); + if FRefCount = 0 then + begin + if FHandle <> 0 then + FreeHandle; + DisposeOf; + end; + end; +end; + +{ TBitmap } + +constructor TBitmap.Create; +begin + inherited; + FImage := TBitmapImage.Create; + FImage.IncreaseRefCount; +end; + +constructor TBitmap.Create(const AWidth, AHeight: Integer); +begin + Create; + SetSize(AWidth, AHeight); +end; + +constructor TBitmap.CreateFromStream(const AStream: TStream); +begin + Create; + LoadFromStream(AStream); +end; + +constructor TBitmap.CreateFromFile(const AFileName: string); +begin + Create; + LoadFromFile(AFileName); +end; + +constructor TBitmap.CreateFromBitmapAndMask(const Bitmap, Mask: TBitmap); + + function GetBrightness(const Color: TAlphaColor): Integer; + begin + { Faster integer variant of formula: + Result = R * 0.2126 + G * 0.7152 + B * 0.0722 } + Result := ((Integer(TAlphaColorRec(Color).R) * 54) + (Integer(TAlphaColorRec(Color).G) * 183) + + (Integer(TAlphaColorRec(Color).B) * 19)) div 256; + end; + +var + I, J: Integer; + D, B, M: TBitmapData; + C: TAlphaColor; +begin + Create(Bitmap.Width, Bitmap.Height); + if (Bitmap.Width <> Mask.Width) or (Bitmap.Height <> Mask.Height) then + raise EBitmapIncorrectSize.Create(SBitmapIncorrectSize); + if Map(TMapAccess.Write, D) then + try + if Bitmap.Map(TMapAccess.Read, B) then + try + if Mask.Map(TMapAccess.Read, M) then + try + for J := 0 to Height - 1 do + for I := 0 to Width - 1 do + begin + C := B.GetPixel(I, J); + TAlphaColorRec(C).A := GetBrightness(M.GetPixel(I, J)); + D.SetPixel(I, J, C); + end; + finally + Mask.Unmap(M); + end; + finally + Bitmap.Unmap(B); + end; + finally + Unmap(D); + end; +end; + +destructor TBitmap.Destroy; +begin + DestroyResources; + FImage.DecreaseRefCount; + inherited; +end; + +function TBitmap.GetImage: TBitmapImage; +begin + if FImage.Handle = 0 then + FImage.CreateHandle; + Result := FImage; +end; + +function TBitmap.GetHandle: THandle; +begin + Result := Image.Handle; +end; + +function TBitmap.GetHeight: Integer; +begin + Result := FImage.Height; +end; + +function TBitmap.GetPixelFormat: TPixelFormat; +begin + Result := Image.PixelFormat; +end; + +function TBitmap.GetSize: TSize; +begin + Result := TSize.Create(Width, Height); +end; + +function TBitmap.GetWidth: Integer; +begin + Result := FImage.Width; +end; + +function TBitmap.HandleAllocated: Boolean; +begin + Result := (FImage <> nil) and (Image.Handle <> 0); +end; + +procedure TBitmap.SetWidth(const Value: Integer); +begin + SetSize(Value, Height); +end; + +function TBitmap.GetBitmapScale: Single; +begin + Result := FImage.BitmapScale; +end; + +function TBitmap.GetBounds: TRect; +begin + Result := TRect.Create(0, 0, Width, Height); +end; + +function TBitmap.GetBoundsF: TRectF; +begin + Result := TRectF.Create(0, 0, Width, Height); +end; + +function TBitmap.GetBytesPerLine: Integer; +begin + Result := BytesPerPixel * Width; +end; + +function TBitmap.GetBytesPerPixel: Integer; +begin + Result := PixelFormatBytes[PixelFormat]; +end; + +procedure TBitmap.SetBitmapScale(const Scale: Single); +begin + if BitmapScale <> Scale then + begin + TMonitor.Enter(Self); + try + CopyToNewReference; + FImage.FBitmapScale := Scale; + finally + TMonitor.Exit(Self); + end; + end; +end; + +procedure TBitmap.SetHeight(const Value: Integer); +begin + SetSize(Width, Value); +end; + +procedure TBitmap.SetSize(const ASize: TSize); +begin + SetSize(ASize.Width, ASize.Height); +end; + +procedure TBitmap.SetSize(const AWidth, AHeight: Integer); +var + SaveBitmapScale: Single; + SavePixelFormat: TPixelFormat; +begin + if (FImage.FWidth <> AWidth) or (FImage.FHeight <> AHeight) then + begin + if (AWidth > CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize)) or + (AHeight > CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize)) then + raise EBitmapSizeTooBig.CreateRes(@SBitmapSizeTooBig); + + TMonitor.Enter(Self); + try + SaveBitmapScale := BitmapScale; + SavePixelFormat := FImage.PixelFormat; + try + CreateNewReference; + FImage.FWidth := Max(0, AWidth); + FImage.FHeight := Max(0, AHeight); + finally + FImage.FBitmapScale := SaveBitmapScale; + FImage.FPixelFormat := SavePixelFormat; + end; + BitmapChanged; + finally + TMonitor.Exit(Self); + end; + end; +end; + +procedure TBitmap.DestroyResources; +begin + TMonitor.Enter(Self); + try + if FCanvas <> nil then + FCanvas.DisposeOf; + FCanvas := nil; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.FreeHandle; +begin + TMonitor.Enter(Self); + try + CreateNewReference; + BitmapChanged; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.CreateNewReference; +begin + TMonitor.Enter(Self); + try + DestroyResources; + FImage.DecreaseRefCount; + FImage := TBitmapImage.Create; + FImage.IncreaseRefCount; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.CopyToNewReference; +var + OldHandle: TBitmapImage; + Source, Dest: TBitmapData; +begin + if FImage.RefCount > 1 then + begin + TMonitor.Enter(Self); + try + OldHandle := FImage; + OldHandle.IncreaseRefCount; + try + CreateNewReference; + + FImage.FWidth := OldHandle.Width; + FImage.FHeight := OldHandle.Height; + FImage.FPixelFormat := OldHandle.PixelFormat; + FImage.FBitmapScale := OldHandle.BitmapScale; + + if CanvasClass.MapBitmap(Handle, TMapAccess.Write, Dest) then + begin + if CanvasClass.MapBitmap(OldHandle.Handle, TMapAccess.Read, Source) then + begin + Move(Source.Data^, Dest.Data^, Source.Pitch * FImage.Height); + CanvasClass.UnmapBitmap(OldHandle.Handle, Source); + end; + CanvasClass.UnmapBitmap(Handle, Dest); + end; + finally + OldHandle.DecreaseRefCount; + end; + finally + TMonitor.Exit(Self); + end; + end; +end; + +function TBitmap.GetCanvasClass: TCanvasClass; +begin + Result := Image.CanvasClass; +end; + +procedure TBitmap.Clear(const AColor: TAlphaColor); +begin + ClearRect(TRectF.Create(0, 0, Width, Height), AColor); +end; + +procedure TBitmap.ClearRect(const ARect: TRectF; const AColor: TAlphaColor); +var + R: TRectF; + M: TBitmapData; + C: Cardinal; +begin + TMonitor.Enter(Self); + try + R := ARect; + if R.Left < 0 then + R.Left := 0; + if R.Top < 0 then + R.Top := 0; + if R.Right > Width then + R.Right := Width; + if R.Bottom > Height then + R.Bottom := Height; + if R.Bottom < R.Top then + R.Bottom := R.Top; + if R.Right < R.Left then + R.Right := R.Left; + if (R.Right < 0) or (R.Top < 0) or (R.Left > Width) or (R.Top > Height) then + Exit; + if not R.IsEmpty and Map(TMapAccess.Write, M) then + try + AlphaColorToPixel(PremultiplyAlpha(AColor), @C, PixelFormat); + FillAlphaColorRect(PAlphaColorArray(M.Data), M.Pitch div 4, Height, Trunc(R.Left), Trunc(R.Top), Trunc(R.Right), + Trunc(R.Bottom), C); + finally + Unmap(M); + end; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.CopyFromBitmap(const Source: TBitmap); +begin + TMonitor.Enter(Self); + try + TCanvas.CopyBitmap(Source, Self); + BitmapChanged; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.CopyFromBitmap(const Source: TBitmap; SrcRect: TRect; DestX, DestY: Integer); +var + I, MoveBytes: Integer; + SrcData, DestData: TBitmapData; +begin + if Map(TMapAccess.Write, DestData) then + try + if Source.Map(TMapAccess.Read, SrcData) then + try + if SrcRect.Left < 0 then + begin + Dec(DestX, SrcRect.Left); + SrcRect.Left := 0; + end; + if SrcRect.Top < 0 then + begin + Dec(DestY, SrcRect.Top); + SrcRect.Top := 0; + end; + SrcRect.Right := Min(SrcRect.Right, Source.Width); + SrcRect.Bottom := Min(SrcRect.Bottom, Source.Height); + if DestX < 0 then + begin + Dec(SrcRect.Left, DestX); + DestX := 0; + end; + if DestY < 0 then + begin + Dec(SrcRect.Top, DestY); + DestY := 0; + end; + if DestX + SrcRect.Width > Width then + SrcRect.Width := Width - DestX; + if DestY + SrcRect.Height > Height then + SrcRect.Height := Height - DestY; + + if (SrcRect.Left < SrcRect.Right) and (SrcRect.Top < SrcRect.Bottom) then + begin + MoveBytes := SrcRect.Width * SrcData.BytesPerPixel; + for I := 0 to SrcRect.Height - 1 do + Move(SrcData.GetPixelAddr(SrcRect.Left, SrcRect.Top + I)^, + DestData.GetPixelAddr(DestX, DestY + I)^, MoveBytes); + end; + finally + Source.Unmap(SrcData); + end; + finally + Unmap(DestData); + end; +end; + +procedure TBitmap.DoChange; +begin + if Assigned(FOnChange) then + FOnChange(Self); +end; + +function TBitmap.EqualsBitmap(const Bitmap: TBitmap): Boolean; +var + MyMap, BitmapMap: TBitmapData; + I: Integer; +begin + if IsEmpty or Bitmap.IsEmpty then + begin + Result := IsEmpty and Bitmap.IsEmpty; + Exit; + end; + Result := (Width = Bitmap.Width) and (Height = Bitmap.Height) and (PixelFormat = Bitmap.PixelFormat); + if Result then + begin + if Map(TMapAccess.Read, MyMap) then + try + if Bitmap.Map(TMapAccess.Read, BitmapMap) then + try + for I := 0 to Height - 1 do + if not CompareMem(MyMap.GetScanline(I), BitmapMap.GetScanline(I), MyMap.BytesPerLine) then + begin + Result := False; + Exit; + end; + finally + Bitmap.Unmap(BitmapMap); + end; + finally + Unmap(MyMap); + end; + end; +end; + +procedure TBitmap.BitmapChanged; +begin + DoChange; +end; + +function TBitmap.IsEmpty: Boolean; +begin + Result := (Width = 0) or (Height = 0); +end; + +procedure TBitmap.Assign(Source: TPersistent); +begin + TMonitor.Enter(Self); + try + if Source = nil then + SetSize(0, 0) + else if Source is TBitmap then + begin + DestroyResources; + TBitmap(Source).FImage.IncreaseRefCount; + FImage.DecreaseRefCount; + FImage := TBitmap(Source).FImage; + BitmapChanged; + end + else if Source is TBitmapSurface then + AssignFromSurface(TBitmapSurface(Source)) + else + inherited; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.AssignFromSurface(const Source: TBitmapSurface); +var + BitmapData: TBitmapData; + MaxSize: Integer; + ResampledSurface: TBitmapSurface; + I: Integer; + SourceRect: TRectF; +begin + TMonitor.Enter(Self); + try + MaxSize := CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize); + if (Source.Width > MaxSize) or (Source.Height > MaxSize) then + begin + SourceRect := TRectF.Create(0, 0, Source.Width, Source.Height); + SourceRect.Fit(TRectF.Create(0, 0, MaxSize, MaxSize)); + ResampledSurface := TBitmapSurface.Create; + try + ResampledSurface.StretchFrom(Source, Trunc(SourceRect.Width), Trunc(SourceRect.Height), PixelFormat); + AssignFromSurface(ResampledSurface); + finally + ResampledSurface.Free; + end; + end + else + begin + if Source.PixelFormat <> TPixelFormat.None then + FImage.FPixelFormat := Source.PixelFormat; + SetSize(Source.Width, Source.Height); + if Map(TMapAccess.Write, BitmapData) then + try + for I := 0 to TBitmapSurface(Source).Height - 1 do + Move(TBitmapSurface(Source).Scanline[I]^, BitmapData.GetScanline(I)^, BitmapData.BytesPerLine); + finally + Unmap(BitmapData); + end; + end; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.AssignTo(Dest: TPersistent); +var + I: Integer; + BitmapData: TBitmapData; +begin + if Dest is TBitmapSurface then + begin + TMonitor.Enter(Self); + try + TBitmapSurface(Dest).SetSize(Width, Height, PixelFormat); + if Map(TMapAccess.Read, BitmapData) then + try + for I := 0 to Height - 1 do + Move(BitmapData.GetScanline(I)^, TBitmapSurface(Dest).Scanline[I]^, BitmapData.BytesPerLine); + finally + Unmap(BitmapData); + end; + finally + TMonitor.Exit(Self); + end; + end + else + inherited; +end; + +procedure TBitmap.DefineProperties(Filer: TFiler); + + function DoWrite: Boolean; + begin + if Filer.Ancestor <> nil then + Result := not (Filer.Ancestor is TBitmap) or not EqualsBitmap(TBitmap(Filer.Ancestor)) + else + Result := not IsEmpty; + end; + +begin + inherited; + Filer.DefineBinaryProperty('PNG', ReadBitmap, WriteBitmap, DoWrite); + Filer.DefineProperty('StyleLookup', ReadStyleLookup, nil, False); +end; + +procedure TBitmap.ReadStyleLookup(Reader: TReader); +begin + Reader.ReadString; +end; + +procedure TBitmap.ReadBitmap(Stream: TStream); +begin + LoadFromStream(Stream); +end; + +procedure TBitmap.WriteBitmap(Stream: TStream); +begin + SaveToStream(Stream); +end; + +procedure TBitmap.Rotate(const Angle: Single); +var + Temp: TBitmap; + M, M2: TMatrix; + Pts: array of TPointF; + R: TRectF; +begin + if Angle = 0 then + Exit; + + TMonitor.Enter(Self); + try + M := TMatrix.Identity; + M.m31 := -Width / 2; + M.m32 := -Height / 2; + M := M * TMatrix.CreateRotation(DegToRad(Angle)); + { calc new size } + SetLength(Pts, 4); + Pts[0] := TPointF.Zero * M; + Pts[1] := TPointF.Create(Width, 0) * M; + Pts[2] := TPointF.Create(Width, Height) * M; + Pts[3] := TPointF.Create(0, Height) * M; + R := NormalizeRectF(Pts); + { translate } + M2 := TMatrix.Identity; + M2.m31 := R.Width / 2; + M2.m32 := R.Height / 2; + M := M * M2; + + Temp := TBitmap.Create(Trunc(R.Width), Trunc(R.Height)); + try + if Temp.Canvas.BeginScene then + try + Temp.Canvas.Clear(0); + Temp.Canvas.SetMatrix(M); + Temp.Canvas.DrawBitmap(Self, TRectF.Create(0, 0, Width, Height), TRectF.Create(0, 0, Width, Height), 1); + finally + Temp.Canvas.EndScene; + end; + Assign(Temp); + finally + Temp.DisposeOf; + end; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.FlipHorizontal; +var + I, J: Integer; + Tmp: TAlphaColor; + M: TBitmapData; +begin + if Map(TMapAccess.ReadWrite, M) then + try + for J := 0 to Height - 1 do + for I := 0 to (Width - 1) div 2 do + begin + Tmp := PAlphaColorArray(M.Data)[J * (M.Pitch div 4) + Width - 1 - I]; + PAlphaColorArray(M.Data)[J * (M.Pitch div 4) + Width - 1 - I] := PAlphaColorArray(M.Data)[J * (M.Pitch div 4) + I]; + PAlphaColorArray(M.Data)[J * (M.Pitch div 4) + I] := Tmp; + end; + finally + Unmap(M); + end; +end; + +procedure TBitmap.FlipVertical; +var + I: Integer; + Tmp: PAlphaColorArray; + M: TBitmapData; +begin + GetMem(Tmp, Width * 4); + if Map(TMapAccess.ReadWrite, M) then + try + for I := 0 to (Height - 1) div 2 do + begin + System.Move(PAlphaColorArray(M.Data)[(Height - 1 - I) * (M.Pitch div 4)], Tmp[0], M.Pitch); + System.Move(PAlphaColorArray(M.Data)[I * (M.Pitch div 4)], PAlphaColorArray(M.Data)[(Height - 1 - I) * (M.Pitch div 4)], M.Pitch); + System.Move(Tmp[0], PAlphaColorArray(M.Data)[I * (M.Pitch div 4)], M.Pitch); + end; + finally + Unmap(M); + end; + FreeMem(Tmp, Width * 4); +end; + +procedure TBitmap.InvertAlpha; +var + I, J: Integer; + M: TBitmapData; + C: PAlphaColorRec; +begin + if Map(TMapAccess.ReadWrite, M) then + try + for J := 0 to Height - 1 do + for I := 0 to Width - 1 do + begin + C := @PAlphaColorArray(M.Data)[J * (M.Pitch div 4) + I]; + C^.Color := UnpremultiplyAlpha(C^.Color); + C^.A := $FF - C^.A; + C^.Color := PremultiplyAlpha(C^.Color); + end; + finally + Unmap(M); + end; +end; + +procedure TBitmap.ReplaceOpaqueColor(const Color: TAlphaColor); +var + I, J: Integer; + M: TBitmapData; + C: PAlphaColorRec; +begin + if Map(TMapAccess.ReadWrite, M) then + try + for J := 0 to Height - 1 do + for I := 0 to Width - 1 do + begin + C := @PAlphaColorArray(M.Data)[J * (M.Pitch div 4) + I]; + if C^.A > 0 then + C^.Color := PremultiplyAlpha(MakeColor(Color, C^.A / $FF)); + end; + finally + Unmap(M); + end; +end; + +procedure TBitmap.Resize(const AWidth, AHeight: Integer); +var + BufferTmp: TBitmap; +begin + if not IsEmpty then + begin + TMonitor.Enter(Self); + try + BufferTmp := CreateThumbnail(AWidth, AHeight); + try + Assign(BufferTmp); + finally + BufferTmp.Free; + end; + finally + TMonitor.Exit(Self); + end; + end + else + SetSize(AWidth, AHeight); +end; + +function TBitmap.CreateMask: PByteArray; +var + I, J: Integer; + M: TBitmapData; + C: PAlphaColorRec; +begin + GetMem(Result, Width * Height); + if Map(TMapAccess.ReadWrite, M) then + try + for J := 0 to Height - 1 do + for I := 0 to Width - 1 do + begin + C := @PAlphaColorArray(M.Data)[J * (M.Pitch div 4) + I]; + Result[I + (J * Width)] := C^.A; + end; + finally + Unmap(M); + end; +end; + +procedure TBitmap.ApplyMask(const Mask: PByteArray; const DstX: Integer = 0; const DstY: Integer = 0); +var + I, J: Integer; + M: TBitmapData; + C: PAlphaColorRec; +begin + if Map(TMapAccess.ReadWrite, M) then + try + for J := 0 to Height - 1 do + for I := 0 to Width - 1 do + begin + if (I - DstX < 0) or (I - DstX > Width - 1) or (J - DstY < 0) or (J - DstY > Height - 1) then + Continue; + if Mask[I - DstX + ((J - DstY) * Width)] > 0 then + begin + C := @PAlphaColorArray(M.Data)[J * (M.Pitch div 4) + I]; + C^.Color := PremultiplyAlpha(MakeColor(UnpremultiplyAlpha(C^.Color), ($FF - Mask[I - DstX + ((J - DstY) * Width)]) / $FF)); + end; + end; + finally + Unmap(M); + end; +end; + +function TBitmap.CreateThumbnail(const AWidth, AHeight: Integer): TBitmap; +var + FitRect: TRectF; +begin + TMonitor.Enter(Self); + try + Result := TBitmap.Create(AWidth, AHeight); + if not IsEmpty and Result.Canvas.BeginScene then + try + FitRect := TRectF.Create(0, 0, Width, Height); + FitRect := FitRect.FitInto(TRectF.Create(0, 0, AWidth, AHeight)); + Result.Canvas.DrawBitmap(Self, TRectF.Create(0, 0, Width, Height), FitRect, 1); + finally + Result.Canvas.EndScene; + end; + finally + TMonitor.Exit(Self); + end; +end; + +function TBitmap.Map(const Access: TMapAccess; var Data: TBitmapData): Boolean; +begin + Result := False; + TMonitor.Enter(Self); + try + if Access in [TMapAccess.Write, TMapAccess.ReadWrite] then + CopyToNewReference; + + if CanvasClass.MapBitmap(Handle, Access, Data) then + begin + Data.Create(Width, Height, PixelFormat); + FMapped := True; + FMapAccess := Access; + Result := True; + end; + finally + if not Result then + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.Unmap(var Data: TBitmapData); +begin + if FMapped then + try + CanvasClass.UnmapBitmap(Handle, Data); + FMapped := False; + if FMapAccess in [TMapAccess.Write, TMapAccess.ReadWrite] then + BitmapChanged; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.LoadFromFile(const AFileName: string); +var + Surf: TBitmapSurface; +begin + TMonitor.Enter(Self); + try + Surf := TBitmapSurface.Create; + try + if TBitmapCodecManager.LoadFromFile(AFileName, Surf, CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize)) then + Assign(Surf) + else + raise EBitmapLoadingFailed.CreateFMT(SBitmapLoadingFailedNamed, [AFileName]); + finally + Surf.Free; + end; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.LoadThumbnailFromFile(const AFileName: string; const AFitWidth, AFitHeight: Single; + const UseEmbedded: Boolean = True); +var + Surf: TBitmapSurface; +begin + TMonitor.Enter(Self); + try + Surf := TBitmapSurface.Create; + try + if TBitmapCodecManager.LoadThumbnailFromFile(AFileName, AFitWidth, AFitHeight, UseEmbedded, Surf) then + Assign(Surf) + else + raise EThumbnailLoadingFailed.CreateFMT(SThumbnailLoadingFailedNamed, [AFileName]); + finally + Surf.Free; + end; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.LoadFromStream(Stream: TStream); +var + S: TStream; + Surf: TBitmapSurface; +begin + TMonitor.Enter(Self); + try + if Stream.Position > 0 then + begin + // need to create temp stream + S := TMemoryStream.Create; + try + S.CopyFrom(Stream, Stream.Size - Stream.Position); + S.Position := 0; + Surf := TBitmapSurface.Create; + try + if TBitmapCodecManager.LoadFromStream(S, Surf, CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize)) then + Assign(Surf) + else + raise EBitmapLoadingFailed.Create(SBitmapLoadingFailed); + finally + Surf.Free; + end; + finally + S.Free; + end; + end + else if Stream.Size = 0 then + Clear(0) + else + begin + Surf := TBitmapSurface.Create; + try + if TBitmapCodecManager.LoadFromStream(Stream, Surf, CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize)) then + Assign(Surf) + else + raise EBitmapLoadingFailed.Create(SBitmapLoadingFailed); + finally + Surf.Free; + end; + end; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.SaveToFile(const AFileName: string; const SaveParams: PBitmapCodecSaveParams = nil); +var + Surf: TBitmapSurface; +begin + TMonitor.Enter(Self); + try + Surf := TBitmapSurface.Create; + try + Surf.Assign(Self); + if not TBitmapCodecManager.SaveToFile(AFileName, Surf, SaveParams) then + raise EBitmapSavingFailed.CreateFMT(SBitmapSavingFailedNamed, [AFileName]); + finally + Surf.Free; + end; + finally + TMonitor.Exit(Self); + end; +end; + +procedure TBitmap.SaveToStream(Stream: TStream); +var + Surf: TBitmapSurface; +begin + TMonitor.Enter(Self); + try + Surf := TBitmapSurface.Create; + try + Surf.Assign(Self); + if not TBitmapCodecManager.SaveToStream(Stream, Surf, SPNGImageExtension) then + raise EBitmapSavingFailed.Create(SBitmapSavingFailed); + finally + Surf.Free; + end; + finally + TMonitor.Exit(Self); + end; +end; + +function TBitmap.GetCanvas: TCanvas; +begin + if FCanvas = nil then + begin + TMonitor.Enter(Self); + try + CopyToNewReference; + //! Launcher Fix + FCanvas := CanvasClass.CreateFromBitmap(Self, TCanvasQuality.HighQuality); + finally + TMonitor.Exit(Self); + end; + end; + Result := FCanvas; +end; + +{ TPathPoint } + +class function TPathPoint.Create(const AKind: TPathPointKind; const APoint: TPointF): TPathPoint; +begin + Result.Kind := AKind; + Result.Point := APoint; +end; + +class operator TPathPoint.Equal(const APoint1, APoint2: TPathPoint): Boolean; +begin + Result := (APoint1.Kind = APoint2.Kind) and (APoint1.Point = APoint2.Point); +end; + +class operator TPathPoint.NotEqual(const APoint1, APoint2: TPathPoint): Boolean; +begin + Result := not (APoint1 = APoint2); +end; + +{ TPath } + +constructor TPathData.Create; +begin + inherited Create; + FPathData := TList.Create; + FRecalcBounds := True; +end; + +destructor TPathData.Destroy; +var + PathObject: IPathObject; +begin + if FStyleResource <> nil then + begin + if Supports(FStyleResource, IPathObject, PathObject) then + PathObject.RemoveFreeNotify(Self); + FStyleResource := nil; + end; + FPathData.Free; + inherited; +end; + +function TPathData.EqualsPath(const Path: TPathData): Boolean; +var + I: Integer; +begin + if IsEmpty or Path.IsEmpty then + Exit(True); + Result := Count = Path.Count; + if Result then + for I := 0 to Count - 1 do + if Points[I] <> Path.Points[I] then + Exit(False); +end; + +procedure TPathData.Assign(Source: TPersistent); +var + I: Integer; +begin + if Source is TPathData then + begin + if TPathData(Source).ResourcePath <> nil then + begin + FStyleLookup := TPathData(Source).StyleLookup; + DoChanged(False); + end + else + begin + FPathData.Count := TPathData(Source).Count; + for I := 0 to TPathData(Source).Count - 1 do + FPathData[I] := TPathData(Source)[I]; + DoChanged; + end; + end + else + inherited +end; + +function TPathData.GetStyleLookup: string; +begin + Result := FStyleLookup; +end; + +procedure TPathData.SetStyleLookup(const Value: string); +begin + if Value <> FStyleLookup then + begin + FStyleLookup := Value; + if Assigned(FOnChanged) then + FOnChanged(Self); + end; +end; + +function TPathData.GetPath: TPathData; +var + O: TFmxObject; + PO: IPathObject; +begin + Result := nil; + if (FStyleResource <> nil) and Supports(FStyleResource, IPathObject, PO) then + Result := PO.Path + else if FStyleLookup <> '' then + begin + O := FindStyleResource(FStyleLookup); + if Supports(O, IPathObject, PO) then + begin + if FStyleResource <> nil then + PO.RemoveFreeNotify(Self); + FStyleResource := O; + if FStyleResource <> nil then + PO.AddFreeNotify(Self); + Result := PO.Path; + end; + end; +end; + +function TPathData.GetCount: Integer; +begin + Result := FPathData.Count; +end; + +function TPathData.GetPoint(AIndex: Integer): TPathPoint; +begin + Result := FPathData[AIndex]; +end; + +procedure TPathData.DefineProperties(Filer: TFiler); + + function DoWrite: Boolean; + begin + if Filer.Ancestor <> nil then + Result := not (Filer.Ancestor is TPathData) or not EqualsPath(TPathData(Filer.Ancestor)) + else + Result := Count > 0; + end; + +begin + inherited; + Filer.DefineBinaryProperty('Path', ReadPath, WritePath, DoWrite); +end; + +procedure TPathData.DoChanged(NeedRecalcBounds: Boolean); +begin + if NeedRecalcBounds then + FRecalcBounds := True; + if Assigned(FOnChanged) then + FOnChanged(Self); +end; + +procedure TPathData.ReadPath(Stream: TStream); +var + ReadCount: Cardinal; + I: Integer; + ByteKind: Byte; + Point: TPointF; + PathPoint: TPathPoint; +begin + Stream.Read(ReadCount, SizeOf(ReadCount)); + FPathData.Count := ReadCount; + if ReadCount > 0 then + if (Stream.Size - 4) div ReadCount = 9 then + for I := 0 to ReadCount - 1 do + begin + Stream.Read(ByteKind, SizeOf(Byte)); + Stream.Read(Point, SizeOf(TPointF)); + FPathData[I] := TPathPoint.Create(TPathPointKind(ByteKind), Point); + end + else + for I := 0 to ReadCount - 1 do + begin + Stream.Read(PathPoint, SizeOf(PathPoint)); + FPathData[I] := PathPoint; + end; + DoChanged; +end; + +procedure TPathData.WritePath(Stream: TStream); +var + WriteCount: Cardinal; + PathPoint: TPathPoint; + I: Integer; +begin + WriteCount := Count; + Stream.Write(WriteCount, SizeOf(WriteCount)); + for I := 0 to WriteCount - 1 do + begin + PathPoint := FPathData[I]; + Stream.Write(PathPoint, SizeOf(PathPoint)); + end; +end; + +function TPathData.LastPoint: TPointF; +begin + if Count > 0 then + Result := FPathData[FPathData.Count - 1].Point + else + Result := TPointF.Zero; +end; + +procedure TPathData.MoveTo(const P: TPointF); +begin + FPathData.Add(TPathPoint.Create(TPathPointKind.MoveTo, P)); + FStartPoint := FPathData[FPathData.Count - 1].Point; + DoChanged; +end; + +procedure TPathData.MoveToRel(const P: TPointF); +begin + FPathData.Add(TPathPoint.Create(TPathPointKind.MoveTo, LastPoint + P)); + FStartPoint := FPathData[FPathData.Count - 1].Point; + DoChanged; +end; + +procedure TPathData.LineTo(const P: TPointF); +begin + FPathData.Add(TPathPoint.Create(TPathPointKind.LineTo, P)); + DoChanged; +end; + +procedure TPathData.LineToRel(const P: TPointF); +begin + FPathData.Add(TPathPoint.Create(TPathPointKind.LineTo, LastPoint + P)); + DoChanged; +end; + +procedure TPathData.HLineTo(const X: Single); +begin + FPathData.Add(TPathPoint.Create(TPathPointKind.LineTo, TPointF.Create(X, LastPoint.Y))); + DoChanged; +end; + +procedure TPathData.HLineToRel(const X: Single); +begin + LineToRel(TPointF.Create(X, 0)); +end; + +procedure TPathData.VLineTo(const Y: Single); +begin + FPathData.Add(TPathPoint.Create(TPathPointKind.LineTo, TPointF.Create(LastPoint.X, Y))); + DoChanged; +end; + +procedure TPathData.VLineToRel(const Y: Single); +begin + LineToRel(TPointF.Create(0, Y)); +end; + +procedure TPathData.QuadCurveTo(const ControlPoint, EndPoint: TPointF); +const + OneThird = 1 / 3; + TwoThirds = 2 / 3; +var + LP, CP1, CP2: TPointF; +begin + LP := LastPoint; + CP1.X := OneThird * LP.X + TwoThirds * ControlPoint.X; + CP1.Y := OneThird * LP.Y + TwoThirds * ControlPoint.Y; + CP2.X := TwoThirds * ControlPoint.X + OneThird * EndPoint.X; + CP2.Y := TwoThirds * ControlPoint.Y + OneThird * EndPoint.Y; + CurveTo(CP1, CP2, EndPoint); +end; + +procedure TPathData.CurveTo(const ControlPoint1, ControlPoint2, EndPoint: TPointF); +begin + FPathData.Add(TPathPoint.Create(TPathPointKind.CurveTo, ControlPoint1)); + FPathData.Add(TPathPoint.Create(TPathPointKind.CurveTo, ControlPoint2)); + FPathData.Add(TPathPoint.Create(TPathPointKind.CurveTo, EndPoint)); + DoChanged; +end; + +procedure TPathData.CurveToRel(const ControlPoint1, ControlPoint2, EndPoint: TPointF); +var + LP: TPointF; +begin + LP := LastPoint; + CurveTo(LP + ControlPoint1, LP + ControlPoint2, LP + EndPoint); +end; + +procedure TPathData.SmoothCurveTo(const ControlPoint2, EndPoint: TPointF); +var + ControlPoint1: TPointF; +begin + if Count > 2 then + ControlPoint1 := LastPoint + (LastPoint - FPathData[FPathData.Count - 2].Point) + else + ControlPoint1 := ControlPoint2; + CurveTo(ControlPoint1, ControlPoint2, EndPoint); +end; + +procedure TPathData.SmoothCurveToRel(const ControlPoint2, EndPoint: TPointF); +var + ControlPoint1: TPointF; +begin + if Count > 2 then + ControlPoint1 := LastPoint - FPathData[FPathData.Count - 2].Point + else + ControlPoint1 := ControlPoint2; + CurveToRel(ControlPoint1, ControlPoint2, EndPoint); +end; + +procedure TPathData.ClosePath; +begin + FPathData.Add(TPathPoint.Create(TPathPointKind.Close, FStartPoint)); + DoChanged; +end; + +procedure TPathData.AddPath(APath: TPathData); +var + I: Integer; +begin + FPathData.Capacity := FPathData.Count + APath.Count; + for I := 0 to APath.Count - 1 do + FPathData.Add(APath.Points[I]); + DoChanged; +end; + +procedure TPathData.Clear; +begin + FPathData.Clear; + DoChanged; +end; + +function TPathData.GetBounds: TRectF; +const + SmallAmount = 0.001; +var + I: Integer; +begin + if FPathData.Count < 1 then + Exit(TRectF.Create(0, 0, 0, 0)); + if FRecalcBounds then + begin + Result := TRectF.Create($FFFF, $FFFF, -$FFFF, -$FFFF); + for I := 0 to FPathData.Count - 1 do + begin + if FPathData[I].Kind = TPathPointKind.Close then + Continue; + + if FPathData[I].Point.X < Result.Left then + Result.Left := FPathData[I].Point.X; + if FPathData[I].Point.X > Result.Right then + Result.Right := FPathData[I].Point.X; + if FPathData[I].Point.Y < Result.Top then + Result.Top := FPathData[I].Point.Y; + if FPathData[I].Point.Y > Result.Bottom then + Result.Bottom := FPathData[I].Point.Y; + end; + // add small amount + if SameValue(Result.Width, 0, TEpsilon.Position) then + Result.Right := Result.Left + SmallAmount; + if SameValue(Result.Height, 0, TEpsilon.Position) then + Result.Bottom := Result.Top + SmallAmount; + FBounds := Result; + FRecalcBounds := False; + end + else + Result := FBounds; +end; + +procedure TPathData.Scale(const ScaleX, ScaleY: Single); +var + I: Integer; + ScalePoint: TPointF; +begin + if FPathData.Count > 0 then + begin + ScalePoint := TPointF.Create(ScaleX, ScaleY); + for I := 0 to FPathData.Count - 1 do + if FPathData[I].Kind in [TPathPointKind.MoveTo, TPathPointKind.LineTo, TPathPointKind.CurveTo] then + FPathData[I] := TPathPoint.Create(FPathData[I].Kind, FPathData[I].Point * ScalePoint); + DoChanged; + end; +end; + +procedure TPathData.Scale(const AScale: TPointF); +begin + Scale(AScale.X, AScale.Y); +end; + +procedure TPathData.Translate(const DX, DY: Single); +var + I: Integer; + TranslatePoint: TPointF; +begin + if FPathData.Count > 0 then + begin + TranslatePoint := TPointF.Create(DX, DY); + for I := 0 to FPathData.Count - 1 do + if FPathData[I].Kind in [TPathPointKind.MoveTo, TPathPointKind.LineTo, TPathPointKind.CurveTo] then + FPathData[I] := TPathPoint.Create(FPathData[I].Kind, FPathData[I].Point + TranslatePoint); + DoChanged; + end; +end; + +procedure TPathData.Translate(const Delta: TPointF); +begin + Translate(Delta.X, Delta.Y); +end; + +procedure TPathData.FitToRect(const ARect: TRectF); +var + FitBounds, Bounds: TRectF; + Ratio: Single; +begin + Bounds := GetBounds; + FitBounds := Bounds.FitInto(ARect, Ratio); + if not SameValue(Ratio, 0, TEpsilon.Scale) then + begin + Ratio := 1 / Ratio; + Translate(-Bounds.Left, -Bounds.Top); + Scale(Ratio, Ratio); + Translate(FitBounds.Left, FitBounds.Top); + end; +end; + +procedure TPathData.ApplyMatrix(const M: TMatrix); +var + I: Integer; +begin + if FPathData.Count > 0 then + begin + for I := 0 to FPathData.Count - 1 do + if FPathData[I].Kind in [TPathPointKind.MoveTo, TPathPointKind.LineTo, TPathPointKind.CurveTo] then + FPathData[I] := TPathPoint.Create(FPathData[I].Kind, FPathData[I].Point * M); + DoChanged; + end; +end; + +procedure TPathData.CalculateBezierCoefficients(const Bezier: TCubicBezier; out AX, BX, CX, AY, BY, CY: Single); +begin + CX := 3 * (Bezier[1].X - Bezier[0].X); + CY := 3 * (Bezier[1].Y - Bezier[0].Y); + BX := 3 * (Bezier[2].X - Bezier[1].X) - CX; + BY := 3 * (Bezier[2].Y - Bezier[1].Y) - CY; + AX := Bezier[3].X - Bezier[0].X - CX - BX; + AY := Bezier[3].Y - Bezier[0].Y - CY - BY; +end; + +function TPathData.PointOnBezier(const StartPoint: TPointF; const AX, BX, CX, AY, BY, CY, T: Single): TPointF; +var + SquareT, CubeT: Single; +begin + SquareT := T * T; + CubeT := SquareT * T; + Result.X := (AX * CubeT) + (BX * SquareT) + (CX * T) + StartPoint.X; + Result.Y := (AY * CubeT) + (BY * SquareT) + (CY * T) + StartPoint.Y; +end; + +function TPathData.CreateBezier(const Bezier: TCubicBezier; const PointCount: Integer): TPolygon; +var + AX, BX, CX, AY, BY, CY, DT, T: Single; + I: Integer; +begin + if PointCount = 0 then + Exit; + DT := 1 / (1 * PointCount - 1); + T := 0; + SetLength(Result, PointCount); + CalculateBezierCoefficients(Bezier, AX, BX, CX, AY, BY, CY); + for I := 0 to PointCount - 1 do + begin + Result[I] := PointOnBezier(Bezier[0], AX, BX, CX, AY, BY, CY, T); + T := T + DT; + end; +end; + +procedure TPathData.Flatten(const Flatness: Single); +var + J, I: Integer; + BPts: TPolygon; + B: TCubicBezier; + F, Len: Single; + SegCount: Integer; + OldPathData: TList; + CurPoint: TPointF; +begin + if FPathData.Count > 0 then + begin + F := Max(Flatness, MinFlatness); + OldPathData := TList.Create; + try + OldPathData.Count := FPathData.Count; + for J := 0 to FPathData.Count - 1 do + OldPathData.Add(FPathData[J]); + FPathData.Clear; + J := 0; + while J < OldPathData.Count do + begin + case OldPathData[J].Kind of + TPathPointKind.MoveTo: + begin + MoveTo(OldPathData[J].Point); + CurPoint := OldPathData[J].Point; + end; + TPathPointKind.LineTo: + begin + LineTo(OldPathData[J].Point); + CurPoint := OldPathData[J].Point; + end; + TPathPointKind.CurveTo: + begin + B[0] := CurPoint; + B[1] := OldPathData[J].Point; + Inc(J); + B[2] := OldPathData[J].Point; + Inc(J); + B[3] := OldPathData[J].Point; + BPts := CreateBezier(B, 6); + Len := 0; + for I := 0 to High(BPts) - 1 do + Len := Len + (BPts[I] - BPts[I + 1]).Length; + SegCount := Round(Len / F); + if SegCount < 2 then + LineTo(B[3]) + else + begin + BPts := CreateBezier(B, SegCount); + for I := 0 to High(BPts) do + LineTo(BPts[I]); + CurPoint := OldPathData[J].Point; + end; + end; + TPathPointKind.Close: + ClosePath; + end; + Inc(J); + end; + DoChanged(False); + finally + OldPathData.Free; + end; + end; +end; + +function TPathData.FlattenToPolygon(var Polygon: TPolygon; const Flatness: Single = 0.25): TPointF; + + procedure AddPoint(const P: TPointF); + begin + if (Length(Polygon) > 0) and (SameValue(P.X, Polygon[High(Polygon)].X, TEpsilon.Position) and + SameValue(P.Y, Polygon[High(Polygon)].Y, TEpsilon.Position)) then + Exit; + SetLength(Polygon, Length(Polygon) + 1); + Polygon[High(Polygon)] := P; + end; + +var + J, I: Integer; + BPts: TPolygon; + B: TCubicBezier; + SP, CurPoint: TPointF; + F, Len: Single; + SegCount: Integer; + CurBounds: TRectF; +begin + Result := TPointF.Zero; + SetLength(Polygon, 0); + if FPathData.Count > 0 then + begin + F := Max(Flatness, MinFlatness); + J := 0; + while J < FPathData.Count do + begin + case FPathData[J].Kind of + TPathPointKind.MoveTo: + begin + if Length(Polygon) > 0 then + AddPoint(PolygonPointBreak); + AddPoint(FPathData[J].Point); + CurPoint := FPathData[J].Point; + SP := CurPoint; + end; + TPathPointKind.LineTo: + begin + AddPoint(FPathData[J].Point); + CurPoint := FPathData[J].Point; + end; + TPathPointKind.CurveTo: + begin + B[0] := CurPoint; + B[1] := FPathData[J].Point; + Inc(J); + B[2] := FPathData[J].Point; + Inc(J); + B[3] := FPathData[J].Point; + BPts := CreateBezier(B, 6); + Len := 0; + for I := 0 to High(BPts) - 1 do + Len := Len + (BPts[I] - BPts[I + 1]).Length; + SegCount := Round(Len / F); + if SegCount < 2 then + begin + AddPoint(B[0]); + AddPoint(B[3]); + end + else + begin + BPts := CreateBezier(B, SegCount); + for I := 0 to High(BPts) do + AddPoint(BPts[I]); + end; + CurPoint := FPathData[J].Point; + end; + TPathPointKind.Close: + begin + AddPoint(SP); + AddPoint(PolygonPointBreak); + end; + end; + Inc(J); + end; + CurBounds := GetBounds; + Result := TPointF.Create(Abs(CurBounds.Width), Abs(CurBounds.Height)); + end; +end; + +procedure TPathData.FreeNotification(AObject: TObject); +begin + if FStyleResource = AObject then + FStyleResource := nil; +end; + +procedure TPathData.AddEllipse(const ARect: TRectF); +var + CX, CY, PX, PY: Single; +begin + CX := (ARect.Left + ARect.Right) / 2; + CY := (ARect.Top + ARect.Bottom) / 2; + PX := CurveKappa * (ARect.Width / 2); + PY := CurveKappa * (ARect.Height / 2); + MoveTo(TPointF.Create(ARect.Left, CY)); + CurveTo(TPointF.Create(ARect.Left, CY - PY), TPointF.Create(CX - PX, ARect.Top), TPointF.Create(CX, ARect.Top)); + CurveTo(TPointF.Create(CX + PX, ARect.Top), TPointF.Create(ARect.Right, CY - PY), TPointF.Create(ARect.Right, CY)); + CurveTo(TPointF.Create(ARect.Right, CY + PY), TPointF.Create(CX + PX, ARect.Bottom), TPointF.Create(CX, ARect.Bottom)); + CurveTo(TPointF.Create(CX - PX, ARect.Bottom), TPointF.Create(ARect.Left, CY + PY), TPointF.Create(ARect.Left, CY)); +end; + +procedure TPathData.AddRectangle(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const ACornerType: TCornerType = TCornerType.Round); +var + X1, X2, Y1, Y2: Single; +begin + if SameValue(XRadius, 0, TEpsilon.Vector) or SameValue(YRadius, 0, TEpsilon.Vector) then + begin + MoveTo(ARect.TopLeft); + LineTo(TPointF.Create(ARect.Right, ARect.Top)); + LineTo(ARect.BottomRight); + LineTo(TPointF.Create(ARect.Left, ARect.Bottom)); + end + else + begin + X1 := XRadius; + if ARect.Width - (X1 * 2) < 0 then + X1 := XRadius * (ARect.Width / (X1 * 2)); + X2 := X1 / 2; + Y1 := YRadius; + if ARect.Height - (Y1 * 2) < 0 then + Y1 := YRadius * (ARect.Height / (Y1 * 2)); + Y2 := Y1 / 2; + MoveTo(TPointF.Create(ARect.Left, ARect.Top + Y1)); + if TCorner.TopLeft in ACorners then + begin + case ACornerType of + TCornerType.Bevel: + LineTo(TPointF.Create(ARect.Left + X1, ARect.Top)); + TCornerType.InnerRound: + CurveTo(TPointF.Create(ARect.Left + X2, ARect.Top + Y1), TPointF.Create(ARect.Left + X1, ARect.Top + Y2), + TPointF.Create(ARect.Left + X1, ARect.Top)); + TCornerType.InnerLine: + begin + LineTo(TPointF.Create(ARect.Left + X2, ARect.Top + Y1)); + LineTo(TPointF.Create(ARect.Left + X1, ARect.Top + Y2)); + LineTo(TPointF.Create(ARect.Left + X1, ARect.Top)); + end; + else + CurveTo(TPointF.Create(ARect.Left, ARect.Top + Y2), TPointF.Create(ARect.Left + X2, ARect.Top), + TPointF.Create(ARect.Left + X1, ARect.Top)); + end; + end + else + begin + LineTo(TPointF.Create(ARect.Left, ARect.Top)); + LineTo(TPointF.Create(ARect.Left + X1, ARect.Top)); + end; + LineTo(TPointF.Create(ARect.Right - X1, ARect.Top)); + if TCorner.TopRight in ACorners then + begin + case ACornerType of + TCornerType.Bevel: + LineTo(TPointF.Create(ARect.Right, ARect.Top + Y1)); + TCornerType.InnerRound: + CurveTo(TPointF.Create(ARect.Right - X1, ARect.Top + Y2), TPointF.Create(ARect.Right - X2, ARect.Top + Y1), + TPointF.Create(ARect.Right, ARect.Top + Y1)); + TCornerType.InnerLine: + begin + LineTo(TPointF.Create(ARect.Right - X1, ARect.Top + Y2)); + LineTo(TPointF.Create(ARect.Right - X2, ARect.Top + Y1)); + LineTo(TPointF.Create(ARect.Right, ARect.Top + Y1)); + end; + else + CurveTo(TPointF.Create(ARect.Right - X2, ARect.Top), TPointF.Create(ARect.Right, ARect.Top + Y2), + TPointF.Create(ARect.Right, ARect.Top + Y1)); + end; + end + else + begin + LineTo(TPointF.Create(ARect.Right, ARect.Top)); + LineTo(TPointF.Create(ARect.Right, ARect.Top + Y1)); + end; + LineTo(TPointF.Create(ARect.Right, ARect.Bottom - Y1)); + if TCorner.BottomRight in ACorners then + begin + case ACornerType of + TCornerType.Bevel: + LineTo(TPointF.Create(ARect.Right - X1, ARect.Bottom)); + TCornerType.InnerRound: + CurveTo(TPointF.Create(ARect.Right - X2, ARect.Bottom - Y1), TPointF.Create(ARect.Right - X1, ARect.Bottom - Y2), + TPointF.Create(ARect.Right - X1, ARect.Bottom)); + TCornerType.InnerLine: + begin + LineTo(TPointF.Create(ARect.Right - X2, ARect.Bottom - Y1)); + LineTo(TPointF.Create(ARect.Right - X1, ARect.Bottom - Y2)); + LineTo(TPointF.Create(ARect.Right - X1, ARect.Bottom)); + end; + else + CurveTo(TPointF.Create(ARect.Right, ARect.Bottom - Y2), TPointF.Create(ARect.Right - X2, ARect.Bottom), + TPointF.Create(ARect.Right - X1, ARect.Bottom)); + end; + end + else + begin + LineTo(TPointF.Create(ARect.Right, ARect.Bottom)); + LineTo(TPointF.Create(ARect.Right - X1, ARect.Bottom)); + end; + LineTo(TPointF.Create(ARect.Left + X1, ARect.Bottom)); + if TCorner.BottomLeft in ACorners then + begin + case ACornerType of + TCornerType.Bevel: + LineTo(TPointF.Create(ARect.Left, ARect.Bottom - Y1)); + TCornerType.InnerRound: + CurveTo(TPointF.Create(ARect.Left + X1, ARect.Bottom - Y2), TPointF.Create(ARect.Left + X2, ARect.Bottom - Y1), + TPointF.Create(ARect.Left, ARect.Bottom - Y1)); + TCornerType.InnerLine: + begin + LineTo(TPointF.Create(ARect.Left + X1, ARect.Bottom - Y2)); + LineTo(TPointF.Create(ARect.Left + X2, ARect.Bottom - Y1)); + LineTo(TPointF.Create(ARect.Left, ARect.Bottom - Y1)); + end; + else + CurveTo(TPointF.Create(ARect.Left + X2, ARect.Bottom), TPointF.Create(ARect.Left, ARect.Bottom - (Y2)), + TPointF.Create(ARect.Left, ARect.Bottom - Y1)); + end; + end + else + begin + LineTo(TPointF.Create(ARect.Left, ARect.Bottom)); + LineTo(TPointF.Create(ARect.Left, ARect.Bottom - Y1)); + end; + end; + ClosePath; +end; + +procedure DrawArcWithBezier(Path: TPathData; CenterX, CenterY, RadiusX, RadiusY, StartAngle, SweepRange: Single; + UseMoveTo: Boolean); +var + Coord: array of TPointF; + Pts: array of TPointF; + A, B, C, X, Y: Single; + SS, CC: Single; + I: Integer; +begin + if SweepRange = 0 then + begin + if UseMoveTo then + begin + if Path.FPathData.Count < 1 then + Path.MoveTo(TPointF.Create(CenterX + RadiusX * Cos(StartAngle), CenterY - RadiusY * Sin(StartAngle))) + else + Path.LineTo(TPointF.Create(CenterX + RadiusX * Cos(StartAngle), CenterY - RadiusY * Sin(StartAngle))); + end; + Path.LineTo(TPointF.Create(CenterX + RadiusX * Cos(StartAngle), CenterY - RadiusY * Sin(StartAngle))); + Exit; + end; + SinCos(SweepRange / 2, B, C); + A := 1 - C; + X := A * 4 / 3; + Y := B - X * C / B; + SinCos(StartAngle + SweepRange / 2, SS, CC); + SetLength(Coord, 4); + Coord[0] := TPointF.Create(C, -B); + Coord[1] := TPointF.Create(C + X, -Y); + Coord[2] := TPointF.Create(C + X, Y); + Coord[3] := TPointF.Create(C, B); + SetLength(Pts, 4); + for I := 0 to 3 do + begin + Pts[I] := TPointF.Create(CenterX + RadiusX * (Coord[I].X * CC - Coord[I].Y * SS), CenterY + RadiusY * (Coord[I].X * + SS + Coord[I].Y * CC)); + end; + if UseMoveTo then + begin + if Path.FPathData.Count < 1 then + Path.MoveTo(Pts[0]) + else + Path.LineTo(Pts[0]); + end; + Path.CurveTo(Pts[1], Pts[2], Pts[3]); +end; + +procedure TPathData.AddArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single); +const + BezierArcAngleEpsilon = 0.01; + MinSweepAngle = 1E-10; +var + UseMoveTo: Boolean; + I: Integer; + F: Single; + TotalSweep, LocalSweep, PrevSweep: Single; + Done: Boolean; +begin + StartAngle := DegToRad(StartAngle); + SweepAngle := DegToRad(SweepAngle); + I := Trunc(StartAngle / (2 * Pi)); + F := StartAngle - (I * 2 * Pi); + StartAngle := F; + if SweepAngle >= 2 * Pi then + SweepAngle := 2 * Pi; + if SweepAngle <= -2 * Pi then + SweepAngle := -2 * Pi; + if Abs(SweepAngle) < MinSweepAngle then + Exit; + TotalSweep := 0; + Done := False; + UseMoveTo := True; + repeat + if SweepAngle < 0 then + begin + PrevSweep := TotalSweep; + LocalSweep := -Pi / 2; + TotalSweep := TotalSweep - (Pi / 2); + if TotalSweep <= SweepAngle + BezierArcAngleEpsilon then + begin + LocalSweep := SweepAngle - PrevSweep; + Done := True; + end; + end + else + begin + PrevSweep := TotalSweep; + LocalSweep := Pi / 2; + TotalSweep := TotalSweep + (Pi / 2); + if TotalSweep >= SweepAngle - BezierArcAngleEpsilon then + begin + LocalSweep := SweepAngle - PrevSweep; + Done := True; + end; + end; + DrawArcWithBezier(Self, Center.X, Center.Y, Radius.X, Radius.Y, StartAngle, LocalSweep, UseMoveTo); + UseMoveTo := False; + StartAngle := StartAngle + LocalSweep; + until Done; +end; + +procedure TPathData.AddArcSvgPart(const Center, Radius: TPointF; StartAngle, SweepAngle: Single); +const + BezierArcAngleEpsilon = 0.01; + MinSweepAngle = 1E-10; +var + UseMoveTo: Boolean; + I: Integer; + F: Single; + TotalSweep, LocalSweep, PrevSweep: Single; + Done: Boolean; +begin + StartAngle := DegToRad(StartAngle); + SweepAngle := DegToRad(SweepAngle); + I := Trunc(StartAngle / (2 * Pi)); + F := StartAngle - (I * 2 * Pi); + StartAngle := F; + if SweepAngle >= 2 * Pi then + SweepAngle := 2 * Pi; + if SweepAngle <= -2 * Pi then + SweepAngle := -2 * Pi; + if Abs(SweepAngle) < MinSweepAngle then + Exit; + TotalSweep := 0; + Done := False; + UseMoveTo := False; + repeat + if SweepAngle < 0 then + begin + PrevSweep := TotalSweep; + LocalSweep := -Pi / 2; + TotalSweep := TotalSweep - (Pi / 2); + if TotalSweep <= SweepAngle + BezierArcAngleEpsilon then + begin + LocalSweep := SweepAngle - PrevSweep; + Done := True; + end; + end + else + begin + PrevSweep := TotalSweep; + LocalSweep := Pi / 2; + TotalSweep := TotalSweep + (Pi / 2); + if TotalSweep >= SweepAngle - BezierArcAngleEpsilon then + begin + LocalSweep := SweepAngle - PrevSweep; + Done := True; + end; + end; + DrawArcWithBezier(Self, Center.X, Center.Y, Radius.X, Radius.Y, StartAngle, LocalSweep, UseMoveTo); + UseMoveTo := False; + StartAngle := StartAngle + LocalSweep; + until Done; +end; + +procedure TPathData.AddArcSvg(const P1, Radius: TPointF; Angle: Single; const LargeFlag, SweepFlag: Boolean; + const P2: TPointF); +var + I: Integer; + RadOk: Boolean; + V, P, N, Sq, Rx, Ry, X0, Y0, X1, Y1, X2, Y2, CX, CY, Ux, Uy, Vx, Vy: Single; + Dx2, Dy2, Prx, Pry, Px1, Py1, Cx1, Cy1, Sx2, Sy2, Sign, Coef: Single; + RadCheck, StartAngle, SweepAngle, CosA, SinA: Single; + M: TMatrix; + Len: Integer; +begin + // Trivial case: Arc transformate to point + if P1 = P2 then + Exit; + Rx := Radius.X; + Ry := Radius.Y; + X0 := P1.X; + Y0 := P1.Y; + X2 := P2.X; + Y2 := P2.Y; + Angle := DegToRad(Angle); + RadOk := True; + if Rx < 0 then + Rx := -Rx; + if Ry < 0 then + Ry := -Rx; + // Calculate the middle point between the current and the final points + Dx2 := (X0 - X2) / 2; + Dy2 := (Y0 - Y2) / 2; + // Convert angle from degrees to radians + SinCos(Angle, SinA, CosA); + // Calculate (x1, y1) + X1 := CosA * Dx2 + SinA * Dy2; + Y1 := -SinA * Dx2 + CosA * Dy2; + // Ensure radii are large enough + Prx := Rx * Rx; + Pry := Ry * Ry; + Px1 := X1 * X1; + Py1 := Y1 * Y1; + // Check that radii are large enough + RadCheck := Px1 / Prx + Py1 / Pry; + if RadCheck > 1 then + begin + Rx := Sqrt(RadCheck) * Rx; + Ry := Sqrt(RadCheck) * Ry; + Prx := Rx * Rx; + Pry := Ry * Ry; + if RadCheck > 10 then + RadOk := False; + end; + // Calculate (Cx1, Cy1) + if LargeFlag = SweepFlag then + Sign := -1 + else + Sign := 1; + Sq := (Prx * Pry - Prx * Py1 - Pry * Px1) / (Prx * Py1 + Pry * Px1); + if Sq < 0 then + Coef := Sign * Sqrt(0) + else + Coef := Sign * Sqrt(Sq); + Cx1 := Coef * ((Rx * Y1) / Ry); + Cy1 := Coef * -((Ry * X1) / Rx); + // Calculate (CX, CY) from (Cx1, Cy1) + Sx2 := (X0 + X2) / 2; + Sy2 := (Y0 + Y2) / 2; + CX := Sx2 + (CosA * Cx1 - SinA * Cy1); + CY := Sy2 + (SinA * Cx1 + CosA * Cy1); + // Calculate the StartAngle (angle1) and the SweepAngle (dangle) + Ux := (X1 - Cx1) / Rx; + Uy := (Y1 - Cy1) / Ry; + Vx := (-X1 - Cx1) / Rx; + Vy := (-Y1 - Cy1) / Ry; + // Calculate the angle start + N := Sqrt(Ux * Ux + Uy * Uy); + P := Ux; // (1 * Ux ) + (0 * Uy ) + if Uy < 0 then + Sign := -1 + else + Sign := 1; + V := P / N; + if V < -1 then + V := -1; + if V > 1 then + V := 1; + StartAngle := Sign * ArcCos(V); + // Calculate the sweep angle + N := Sqrt((Ux * Ux + Uy * Uy) * (Vx * Vx + Vy * Vy)); + P := Ux * Vx + Uy * Vy; + if Ux * Vy - Uy * Vx < 0 then + Sign := -1 + else + Sign := 1; + V := P / N; + if V < -1 then + V := -1; + if V > 1 then + V := 1; + SweepAngle := Sign * ArcCos(V); + if (not SweepFlag) and (SweepAngle > 0) then + SweepAngle := SweepAngle - Pi * 2 + else if SweepFlag and (SweepAngle < 0) then + SweepAngle := SweepAngle + Pi * 2; + Len := Count; + AddArcSvgPart(TPointF.Zero, TPointF.Create(Rx, Ry), RadToDeg(StartAngle), RadToDeg(SweepAngle)); + M := TMatrix.Identity; + M.m31 := CX; + M.m32 := CY; + M := TMatrix.CreateRotation(Angle) * M; + I := Len; + while I < Count do + begin + FPathData[I] := TPathPoint.Create(FPathData[I].Kind, FPathData[I].Point * M); + Inc(I); + end; +end; + +function TPathData.IsEmpty: Boolean; +begin + Result := (FPathData.Count < 1) or (GetBounds.Width * GetBounds.Height = 0); +end; + +function TPathData.GetPathString: string; +var + I: Integer; + Builder: TStringBuilder; +begin + Builder := TStringBuilder.Create; + try + I := 0; + while I < Count do + begin + case FPathData[I].Kind of + TPathPointKind.MoveTo: + Builder.Append('M') + .Append(FloatToStr(FPathData[I].Point.X, USFormatSettings)) + .Append(',') + .Append(FloatToStr(FPathData[I].Point.Y, USFormatSettings)) + .Append(' '); + TPathPointKind.LineTo: + Builder.Append('L') + .Append(FloatToStr(FPathData[I].Point.X, USFormatSettings)) + .Append(',') + .Append(FloatToStr(FPathData[I].Point.Y, USFormatSettings)) + .Append(' '); + TPathPointKind.CurveTo: + begin + Builder.Append('C') + .Append(FloatToStr(FPathData[I].Point.X, USFormatSettings)) + .Append(',') + .Append(FloatToStr(FPathData[I].Point.Y, USFormatSettings)) + .Append(' '); + + Builder.Append(FloatToStr(FPathData[I + 1].Point.X, USFormatSettings)) + .Append(',') + .Append(FloatToStr(FPathData[I + 1].Point.Y, USFormatSettings)) + .Append(' '); + + Builder.Append(FloatToStr(FPathData[I + 2].Point.X, USFormatSettings)) + .Append(',') + .Append(FloatToStr(FPathData[I + 2].Point.Y, USFormatSettings)) + .Append(' '); + + Inc(I, 2); + end; + TPathPointKind.Close: + Builder.Append('Z '); + end; + Inc(I); + end; + Result := Builder.ToString(True); + finally + Builder.Free; + end; +end; + +function TPathData.GetTokensFromString(const PathString: string; var Pos: Integer): string; +var + StringBuilder: TStringBuilder; +begin + if Pos < PathString.Length then + begin + StringBuilder := TStringBuilder.Create; + try + while (Pos < PathString.Length) and (PathString.Chars[Pos] = ' ') do + Inc(Pos); + while (Pos < PathString.Length) and ('zmlchvsqtaZMLCHVSQTA'.Contains(PathString.Chars[Pos])) do + begin + StringBuilder.Append(PathString.Chars[Pos]); + Inc(Pos); + end; + Result := StringBuilder.ToString(True); + finally + StringBuilder.Free; + end; + end + else + Result := string.Empty; +end; + +function TPathData.GetNumberFromString(const PathString: string; var Pos: Integer): string; +const + ExponentChar = 'E'; +var + StringBuilder: TStringBuilder; + CurrentChar: Char; +begin + if Pos < PathString.Length then + begin + StringBuilder := TStringBuilder.Create; + try + while (Pos < PathString.Length) and (PathString.Chars[Pos] = ' ') do + Inc(Pos); + while Pos < PathString.Length do + begin + CurrentChar := PathString.Chars[Pos]; + if CurrentChar.ToUpper = ExponentChar then + begin + StringBuilder.Append(ExponentChar); + Inc(Pos); + Continue; + end; + if (CurrentChar = '-') and (StringBuilder.Length > 0) and + (StringBuilder.Chars[StringBuilder.Length - 1] = ExponentChar) then + begin + StringBuilder.Append(CurrentChar); + Inc(Pos); + Continue; + end; + if (StringBuilder.Length > 0) and (CurrentChar = '-') then + Break; + if not '0123456789.'.Contains(CurrentChar) and not (CurrentChar = '-') then + Break; + StringBuilder.Append(CurrentChar); + Inc(Pos); + end; + while PathString.Chars[Pos] = ' ' do + Inc(Pos); + Result := StringBuilder.ToString(True); + finally + StringBuilder.Free; + end; + end + else + Result := string.Empty; +end; + +function TPathData.GetPointFromString(const PathString: string; var Pos: Integer): TPointF; +var + X, Y: string; +begin + Result := TPointF.Zero; + if Pos < PathString.Length then + begin + while (Pos < PathString.Length) and PathString.Chars[Pos].IsInArray([',', ' ']) do + Inc(Pos); + X := GetNumberFromString(PathString, Pos); + while (Pos < PathString.Length) and PathString.Chars[Pos].IsInArray([',', ' ']) do + Inc(Pos); + Y := GetNumberFromString(PathString, Pos); + while (Pos < PathString.Length) and PathString.Chars[Pos].IsInArray([',', ' ']) do + Inc(Pos); + Result := TPointF.Create(StrToFloat(X, USFormatSettings), StrToFloat(Y, USFormatSettings)); + end; +end; + +function TPathData.HasRelativeOffset(const PathString: string; const Pos: Integer): Boolean; +begin + Result := PathString.Chars[Pos].IsDigit or (PathString.Chars[Pos] = '-'); +end; + +procedure TPathData.SetPathString(const Value: string); +var + Builder, TokenBuilder: TStringBuilder; + PathString, Tokens: string; + Radius, CurvePoint1, CurvePoint2, TempPoint: TPointF; + Large, Sweet: Boolean; + Pos, I, LastLength: Integer; + Angle: Single; + Token: Char; +begin + Builder := TStringBuilder.Create; + TokenBuilder := TStringBuilder.Create; + try + for I := 0 to Value.Length - 1 do + begin + if Value.Chars[I].IsInArray([#9, #10, #13]) then + Builder.Append(' ') + else + Builder.Append(Value.Chars[I]); + end; + PathString := Builder.ToString; + FPathData.Clear; + Pos := 0; + LastLength := -1; + while (Builder.Length > Pos) and (LastLength <> Pos) do + begin + LastLength := Pos; + Tokens := GetTokensFromString(PathString, Pos); + TokenBuilder.Clear; + TokenBuilder.Append(Tokens); + while TokenBuilder.Length > 0 do + begin + Token := TokenBuilder.Chars[0]; + TokenBuilder.Remove(0, 1); + case Token of + 'z', 'Z': + ClosePath; + 'M': + begin + MoveTo(GetPointFromString(PathString, Pos)); + while HasRelativeOffset(PathString, Pos) do + LineTo(GetPointFromString(PathString, Pos)); + end; + 'm': + begin + MoveToRel(GetPointFromString(PathString, Pos)); + while HasRelativeOffset(PathString, Pos) do + LineToRel(GetPointFromString(PathString, Pos)); + end; + 'L': + begin + LineTo(GetPointFromString(PathString, Pos)); + while HasRelativeOffset(PathString, Pos) do + LineTo(GetPointFromString(PathString, Pos)); + end; + 'l': + begin + LineToRel(GetPointFromString(PathString, Pos)); + while HasRelativeOffset(PathString, Pos) do + LineToRel(GetPointFromString(PathString, Pos)); + end; + 'C': + begin + CurvePoint1 := GetPointFromString(PathString, Pos); + CurvePoint2 := GetPointFromString(PathString, Pos); + CurveTo(CurvePoint1, CurvePoint2, GetPointFromString(PathString, Pos)); + while HasRelativeOffset(PathString, Pos) do + begin + CurvePoint1 := GetPointFromString(PathString, Pos); + CurvePoint2 := GetPointFromString(PathString, Pos); + CurveTo(CurvePoint1, CurvePoint2, GetPointFromString(PathString, Pos)); + end; + end; + 'c': + begin + CurvePoint1 := GetPointFromString(PathString, Pos); + CurvePoint2 := GetPointFromString(PathString, Pos); + CurveToRel(CurvePoint1, CurvePoint2, GetPointFromString(PathString, Pos)); + while HasRelativeOffset(PathString, Pos) do + begin + CurvePoint1 := GetPointFromString(PathString, Pos); + CurvePoint2 := GetPointFromString(PathString, Pos); + CurveToRel(CurvePoint1, CurvePoint2, GetPointFromString(PathString, Pos)); + end; + end; + 'S': + begin + CurvePoint2 := GetPointFromString(PathString, Pos); + SmoothCurveTo(CurvePoint2, GetPointFromString(PathString, Pos)); + while HasRelativeOffset(PathString, Pos) do + begin + CurvePoint2 := GetPointFromString(PathString, Pos); + SmoothCurveTo(CurvePoint2, GetPointFromString(PathString, Pos)); + end; + end; + 's': + begin + CurvePoint2 := GetPointFromString(PathString, Pos); + SmoothCurveToRel(CurvePoint2, GetPointFromString(PathString, Pos)); + while HasRelativeOffset(PathString, Pos) do + begin + CurvePoint2 := GetPointFromString(PathString, Pos); + SmoothCurveToRel(CurvePoint2, GetPointFromString(PathString, Pos)); + end; + end; + 'H': + HLineTo(StrToFloat(GetNumberFromString(PathString, Pos), USFormatSettings)); + 'h': + HLineToRel(StrToFloat(GetNumberFromString(PathString, Pos), USFormatSettings)); + 'V': + VLineTo(StrToFloat(GetNumberFromString(PathString, Pos), USFormatSettings)); + 'v': + VLineToRel(StrToFloat(GetNumberFromString(PathString, Pos), USFormatSettings)); + 'Q', 'q': + begin + GetPointFromString(PathString, Pos); + GetPointFromString(PathString, Pos); + end; + 'T', 't': + GetPointFromString(PathString, Pos); + 'A', 'a': + begin + if Count > 0 then + CurvePoint1 := FPathData[FPathData.Count - 1].Point + else + CurvePoint1 := TPointF.Zero; + Radius := GetPointFromString(PathString, Pos); + Angle := StrToFloat(GetNumberFromString(PathString, Pos), USFormatSettings); + TempPoint := GetPointFromString(PathString, Pos); + Large := TempPoint.X = 1; + Sweet := TempPoint.Y = 1; + CurvePoint2 := GetPointFromString(PathString, Pos); + if Token = 'a' then + CurvePoint2 := CurvePoint1 + CurvePoint2; + AddArcSvg(CurvePoint1, Radius, Angle, Large, Sweet, CurvePoint2); + end; + end; + end; + end; + DoChanged; + finally + TokenBuilder.Free; + Builder.Free; + end; +end; + +{ TCanvasManager } + +class procedure TCanvasManager.UnInitialize; +var + CanvasSrv: IFMXCanvasService; +begin + FreeAndNil(FMeasureBitmap); + FreeAndNil(FCanvasList); + if (TPlatformServices.Current <> nil) and TPlatformServices.Current.SupportsPlatformService(IFMXCanvasService, + CanvasSrv) then + CanvasSrv.UnregisterCanvasClasses; +end; + +class function TCanvasManager.CreateFromBitmap(const ABitmap: TBitmap; const AQuality: TCanvasQuality = TCanvasQuality.SystemDefault): TCanvas; +begin + Result := DefaultCanvas.CreateFromBitmap(ABitmap, AQuality); +end; + +class function TCanvasManager.CreateFromPrinter(const APrinter: TAbstractPrinter): TCanvas; +begin + Result := DefaultPrinterCanvas.CreateFromPrinter(APrinter); +end; + +class function TCanvasManager.CreateFromWindow(const AParent: TWindowHandle; const AWidth, AHeight: Integer; + const AQuality: TCanvasQuality = TCanvasQuality.SystemDefault): TCanvas; +begin + Result := DefaultCanvas.CreateFromWindow(AParent, AWidth, AHeight, AQuality); +end; + +class function TCanvasManager.GetDefaultCanvas: TCanvasClass; +var + CanvasSrv: IFMXCanvasService; + CanvasClassRec: TCanvasClassRec; +begin + if FDefaultCanvasClass = nil then + begin + Result := nil; + if (FCanvasList = nil) and TPlatformServices.Current.SupportsPlatformService(IFMXCanvasService, CanvasSrv) then + CanvasSrv.RegisterCanvasClasses; + if (FCanvasList <> nil) and (FCanvasList.Count > 0) then + begin + for CanvasClassRec in FCanvasList do + begin + if CanvasClassRec.Default and + (not FEnableSoftwareCanvas and (TCanvasStyle.NeedGPUSurface in CanvasClassRec.CanvasClass.GetCanvasStyle)) then + begin + Result := CanvasClassRec.CanvasClass; + Break; + end; + if CanvasClassRec.Default and + (FEnableSoftwareCanvas and not (TCanvasStyle.NeedGPUSurface in CanvasClassRec.CanvasClass.GetCanvasStyle)) then + begin + Result := CanvasClassRec.CanvasClass; + Break; + end; + end; + if (Result = nil) and FEnableSoftwareCanvas then + begin + for CanvasClassRec in FCanvasList do + begin + if not (TCanvasStyle.NeedGPUSurface in CanvasClassRec.CanvasClass.GetCanvasStyle) then + begin + Result := CanvasClassRec.CanvasClass; + Break; + end; + end; + end; + if Result = nil then + Result := FCanvasList[0].CanvasClass; + FDefaultCanvasClass := Result; + end + else + raise ECanvasManagerException.Create('No TCanvas implementation found'); + end + else + Result := FDefaultCanvasClass; +end; + +class function TCanvasManager.GetDefaultPrinterCanvas: TCanvasClass; +var + CanvasSrv: IFMXCanvasService; + CanvasClassRec: TCanvasClassRec; +begin + if FDefaultPrinterCanvasClass = nil then + begin + Result := nil; + if FCanvasList = nil then + if TPlatformServices.Current.SupportsPlatformService(IFMXCanvasService, CanvasSrv) then + CanvasSrv.RegisterCanvasClasses; + if (FCanvasList <> nil) and (FCanvasList.Count > 0) then + begin + for CanvasClassRec in FCanvasList do + if CanvasClassRec.PrinterCanvas then + begin + Result := CanvasClassRec.CanvasClass; + Break; + end; + FDefaultPrinterCanvasClass := Result; + end + else + raise ECanvasManagerException.Create('No TCanvas for printer implementation found'); + end + else + Result := FDefaultPrinterCanvasClass; +end; + +class function TCanvasManager.GetMeasureCanvas: TCanvas; +begin + if FMeasureBitmap = nil then + FMeasureBitmap := TBitmap.Create(1, 1); + Result := FMeasureBitmap.Canvas +end; + +class procedure TCanvasManager.RecreateFromPrinter(const Canvas: TCanvas; const APrinter: TAbstractPrinter); +begin + Canvas.UnInitialize; + Canvas.CreateFromPrinter(APrinter); +end; + +class procedure TCanvasManager.EnableSoftwareCanvas(const Enable: Boolean); +begin + FEnableSoftwareCanvas := Enable; + FDefaultCanvasClass := nil; +end; + +class procedure TCanvasManager.RegisterCanvas(const CanvasClass: TCanvasClass; const ADefault: Boolean; const APrinterCanvas: Boolean); +var + Rec: TCanvasClassRec; +begin + if FCanvasList = nil then + FCanvasList := TList.Create; + Rec.CanvasClass := CanvasClass; + Rec.Default := ADefault; + Rec.PrinterCanvas := APrinterCanvas; + FCanvasList.Add(Rec); +end; + +{ TCanvas.TMetaBrush } + +destructor TCanvas.TMetaBrush.Destroy; +begin + FGradient.Free; + inherited; +end; + +function TCanvas.TMetaBrush.GetGradient: TGradient; +begin + if FGradient = nil then + begin + FGradient := TGradient.Create; + FValid := False; + end; + + Result := FGradient; +end; + +{ TCanvas } + +constructor TCanvas.CreateFromWindow(const AParent: TWindowHandle; const AWidth, AHeight: Integer; + const AQuality: TCanvasQuality = TCanvasQuality.SystemDefault); +begin + inherited Create; + FQuality := AQuality; + FParent := AParent; + FWidth := AWidth; + FHeight := AHeight; + Initialize; +end; + +procedure TCanvas.RaiseIfBeginSceneCountZero; +begin + if BeginSceneCount = 0 then + raise ECanvasException.Create(SCannotPaintOnCanvasWithoutBeginScene); +end; + +procedure TCanvas.Clear(const AColor: TAlphaColor); +begin + RaiseIfBeginSceneCountZero; + + DoClear(AColor); +end; + +procedure TCanvas.ClearRect(const ARect: TRectF; const AColor: TAlphaColor); +begin + RaiseIfBeginSceneCountZero; + + DoClearRect(ARect, AColor); +end; + +class procedure TCanvas.CopyBitmap(const Source, Dest: TBitmap); +var + S, D: TBitmapData; +begin + if (Source.Width = Dest.Width) and (Source.Height = Dest.Height) then + begin + if not Source.IsEmpty then + begin + if Source.CanvasClass = Dest.CanvasClass then + Source.CanvasClass.DoCopyBitmap(Source, Dest) + else if Source.Map(TMapAccess.Read, S) and Dest.Map(TMapAccess.Write, D) then + try + D.Copy(S); + finally + Source.Unmap(S); + Dest.Unmap(D); + end; + end; + end + else + raise ECanvasException.Create(SBitmapSizeNotEqual); +end; + +class constructor TCanvas.Create; +begin + FLock := TObject.Create; +end; + +constructor TCanvas.CreateFromBitmap(const ABitmap: TBitmap; const AQuality: TCanvasQuality = TCanvasQuality.SystemDefault); +begin + inherited Create; + FQuality := AQuality; + FBitmap := ABitmap; + FWidth := ABitmap.Width; + FHeight := ABitmap.Height; + Initialize; +end; + +constructor TCanvas.CreateFromPrinter(const APrinter: TAbstractPrinter); +begin + inherited Create; + Initialize; + FPrinter := APrinter; +end; + +procedure TCanvas.Initialize; +begin + FScale := GetCanvasScale; + FStroke := TStrokeBrush.Create(TBrushKind.Solid, $FF000000); + FFill := TBrush.Create(TBrushKind.Solid, $FFFFFFFF); + FFont := TFont.Create; + FFont.OnChanged := FontChanged; + FCanvasSaveData := TCanvasSaveStateList.Create; + FMatrixMeaning := TMatrixMeaning.Identity; + FBlending := True; +end; + +procedure TCanvas.UnInitialize; +begin + FCanvasSaveData.DisposeOf; + FFont.DisposeOf; + FStroke.DisposeOf; + FFill.DisposeOf; +end; + +destructor TCanvas.Destroy; +begin + TMessageManager.DefaultManager.SendMessage(Self, TCanvasDestroyMessage.Create); + UnInitialize; + inherited; +end; + +class destructor TCanvas.Destroy; +begin + FLock.Free; +end; + +function TCanvas.DoBeginScene(AClipRects: PClipRects = nil; AContextHandle: THandle = 0): Boolean; +begin + FClippingChangeCount := 0; + FSavingStateCount := 0; + + Stroke.Thickness := 1; + Stroke.Cap := TStrokeCap.Flat; + Stroke.Join := TStrokeJoin.Miter; + Stroke.Dash := TStrokeDash.Solid; + Stroke.Kind := TBrushKind.Solid; + Fill.Kind := TBrushKind.Solid; + SetMatrix(TMatrix.Identity); + Result := True; +end; + +procedure TCanvas.DoBlendingChanged; +begin + +end; + +procedure TCanvas.DoClear(const Color: TAlphaColor); +begin +end; + +procedure TCanvas.DoClearRect(const ARect: TRectF; const AColor: TAlphaColor); +begin +end; + +class procedure TCanvas.DoCopyBitmap(const Source, Dest: TBitmap); +var + S, D: TBitmapData; +begin + if Source.Map(TMapAccess.Read, S) and Dest.Map(TMapAccess.Write, D) then + try + D.Copy(S); + finally + Source.Unmap(S); + Dest.Unmap(D); + end; +end; + +procedure TCanvas.DoEndScene; +begin + if FBitmap <> nil then + FBitmap.BitmapChanged; +end; + +procedure TCanvas.DoExcludeClipRect(const ARect: TRectF); +begin +end; + +function TCanvas.AlignToPixel(const Value: TPointF): TPointF; +begin + case FMatrixMeaning of + TMatrixMeaning.Identity: + Result := TPointF.Create(Round(Value.X * FScale + TEpsilon.Vector) / FScale, + Round(Value.Y * FScale + TEpsilon.Vector) / FScale); + TMatrixMeaning.Translate: + Result := TPointF.Create(Round((Matrix.m31 + Value.X) * FScale + TEpsilon.Vector) / FScale - Matrix.m31, + Round((Matrix.m32 + Value.Y) * FScale + TEpsilon.Vector) / FScale - Matrix.m32); + else + Result := Value; + end; +end; + +function TCanvas.AlignToPixel(const Rect: TRectF): TRectF; +begin + Result.Left := AlignToPixelHorizontally(Rect.Left); + Result.Top := AlignToPixelVertically(Rect.Top); + Result.Right := Result.Left + Round(Rect.Width * Scale) / Scale; // keep ratio horizontally + Result.Bottom := Result.Top + Round(Rect.Height * Scale) / Scale; // keep ratio vertically +end; + +function TCanvas.AlignToPixelHorizontally(const Value: Single): Single; +begin + case FMatrixMeaning of + TMatrixMeaning.Identity: + Result := Round(Value * FScale + TEpsilon.Vector) / FScale; + TMatrixMeaning.Translate: + Result := Round((Matrix.m31 + Value) * FScale + TEpsilon.Vector) / FScale - Matrix.m31; + else + Result := Value; + end; +end; + +function TCanvas.AlignToPixelVertically(const Value: Single): Single; +begin + case FMatrixMeaning of + TMatrixMeaning.Identity: + Result := Round(Value * FScale + TEpsilon.Vector) / FScale; + TMatrixMeaning.Translate: + Result := Round((Matrix.m32 + Value) * FScale + TEpsilon.Vector) / FScale - Matrix.m32; + else + Result := Value; + end; +end; + +class procedure TCanvas.Lock; +begin + TMonitor.Enter(FLock); +end; + +class procedure TCanvas.Unlock; +begin + TMonitor.Exit(FLock); +end; + +function TCanvas.BeginScene(AClipRects: PClipRects = nil; AContextHandle: THandle = 0): Boolean; +begin + Lock; + try + if FBeginSceneCount = 0 then + begin + Result := (Width > 0) and (Height > 0) and DoBeginScene(AClipRects, AContextHandle); + if not Result then + begin + Unlock; + Exit; + end; + end + else + Result := FBeginSceneCount > 0; + Inc(FBeginSceneCount); + except + Unlock; + raise; + end; +end; + +procedure TCanvas.EndScene; +begin + try + if FBeginSceneCount = 1 then + DoEndScene; + Dec(FBeginSceneCount); + finally + Unlock; + end; +end; + +procedure TCanvas.ExcludeClipRect(const ARect: TRectF); +begin + RaiseIfBeginSceneCountZero; + + DoExcludeClipRect(ARect); +end; + +procedure TCanvas.DoSetMatrix(const M: TMatrix); +begin +end; + +procedure TCanvas.SetMatrix(const M: TMatrix); +begin + FMatrixMeaning := TMatrixMeaning.Unknown; + if not SameValue(FOffset.X, 0, TEpsilon.Matrix) or not SameValue(FOffset.Y, 0, TEpsilon.Matrix) then + FMatrix := TMatrix.CreateTranslation(FOffset.X, FOffset.Y) * M + else + FMatrix := M; + { Check for identity matrix values. It is assumed that the matrix is composed of + three vectors of unit length, so by comparing some specific values with one, + we discard any other possibility of other vectors. } + if SameValue(FMatrix.m11, 1, TEpsilon.Matrix) and SameValue(FMatrix.m22, 1, TEpsilon.Matrix) and + SameValue(FMatrix.m33, 1, TEpsilon.Matrix) then + begin + if SameValue(FMatrix.m31, 0, TEpsilon.Matrix) and SameValue(FMatrix.m32, 0, TEpsilon.Matrix) then + begin // If no translation is present, we have an identity matrix. + FMatrixMeaning := TMatrixMeaning.Identity; + end + else + begin // Translation information is present in the matrix. + FMatrixMeaning := TMatrixMeaning.Translate; + + FMatrixTranslate.X := FMatrix.m31; + FMatrixTranslate.Y := FMatrix.m32; + end; + end; + DoSetMatrix(FMatrix); +end; + +procedure TCanvas.MultiplyMatrix(const M: TMatrix); +var + MulMatrix: TMatrix; +begin + MulMatrix := M * FMatrix; + SetMatrix(MulMatrix); +end; + +function TCanvas.CreateSaveState: TCanvasSaveState; +begin + Result := TCanvasSaveState.Create; +end; + +procedure TCanvas.RestoreState(const State: TCanvasSaveState); +begin + RaiseIfBeginSceneCountZero; + + if FCanvasSaveData.IndexOf(State) >= 0 then + Assign(State); +end; + +procedure TCanvas.FontChanged(Sender: TObject); +begin +end; + +class function TCanvas.InitializeBitmap(const Width, Height: Integer; const Scale: Single; var PixelFormat: TPixelFormat): THandle; +begin + if (Width > 0) and (Height > 0) then + Result := DoInitializeBitmap(Width, Height, Scale, PixelFormat) + else + Result := 0; +end; + +procedure TCanvas.IntersectClipRect(const ARect: TRectF); +begin + RaiseIfBeginSceneCountZero; + + DoIntersectClipRect(ARect); +end; + +function TCanvas.IsScaleInteger: Boolean; +begin + Result := SameValue(Frac(Scale), 0, TEpsilon.Scale); +end; + +class procedure TCanvas.FinalizeBitmap(var Bitmap: THandle); +begin + if Bitmap <> 0 then + DoFinalizeBitmap(Bitmap); +end; + +procedure TCanvas.Flush; +begin + RaiseIfBeginSceneCountZero; + + DoFlush; +end; + +class function TCanvas.MapBitmap(const Bitmap: THandle; const Access: TMapAccess; var Data: TBitmapData): Boolean; +begin + if Bitmap <> 0 then + Result := DoMapBitmap(Bitmap, Access, Data) + else + Result := False; +end; + +class procedure TCanvas.UnmapBitmap(const Bitmap: THandle; var Data: TBitmapData); +begin + if Bitmap <> 0 then + DoUnmapBitmap(Bitmap, Data); +end; + +function TCanvas.LoadFontFromStream(const AStream: TStream): Boolean; +begin + Result := False; + +end; + +procedure TCanvas.MeasureLines(const ALines: TLineMetricInfo; const ARect: TRectF; const AText: string; const WordWrap: Boolean; const Flags: TFillTextFlags; + const ATextAlign: TTextAlign; const AVTextAlign: TTextAlign = TTextAlign.Center); +var + WStartChar, WSaveChar, WCurChar, WCutOffChar: Integer; + LCurChar: Integer; + TmpS: string; + WWidth: Single; + LEditRectWidth: Single; + Tok, LText: string; + + function _IsSurrogate(Surrogate: WideChar): Boolean; + begin + Result := (Integer(Surrogate) >= $D800) and (Integer(Surrogate) <= $DFFF); + end; + + procedure _SkipSeparators(var Pos: Integer; const S: string); + const + // #$0020 SPACE + // #$0021 ! EXCLAMATION MARK + // #$002C , COMMA + // #$002D - HYPHEN-MINUS + // #$002E . FULL STOP + // #$003A : COLON + // #$003B ; SEMICOLON + // #$003F ? QUESTION MARK + BasicSeparatos: string = #$0020#$0021#$002C#$002D#$002E#$003A#$003B#$003F; + MaxBasicSeparators: WideChar = #$003F; + var + ch: WideChar; + begin + while Pos < S.Length do + begin + ch := S.Chars[Pos]; + if (ch > MaxBasicSeparators) or not BasicSeparatos.Contains(ch) then + Break; + if _IsSurrogate(ch) then + Inc(Pos, 2) + else + Inc(Pos); + end; + end; + + function _WideGetToken(var Pos: Integer; const S: string): string; + const + // #$0020 SPACE + // #$0021 ! EXCLAMATION MARK + // #$002C , COMMA + // #$002D - HYPHEN-MINUS + // #$002E . FULL STOP + // #$003A : COLON + // #$003B ; SEMICOLON + // #$003F ? QUESTION MARK + BasicSeparatos: string = #$0020#$0021#$002C#$002D#$002E#$003A#$003B#$003F; + MaxBasicSeparators: WideChar = #$003F; + var + ch: WideChar; + begin + Result := ''; + { skip first separators } + _SkipSeparators(Pos, S); + + { get } + while Pos < S.Length do + begin + ch := S.Chars[Pos]; + if (ch <= MaxBasicSeparators) and BasicSeparatos.Contains(ch) then + Break; + if _IsSurrogate(ch) then + begin + Result := Result + S.Substring(Pos, 2); + Inc(Pos, 2) + end + else + begin + Result := Result + S.Chars[Pos]; + Inc(Pos); + end; + end; + + { skip separators } + _SkipSeparators(Pos, S); + end; + + function RoundToPowerOf2(I: Integer): Integer; + begin + I := I or (I shr 1); + I := I or (I shr 2); + I := I or (I shr 4); + I := I or (I shr 8); + I := I or (I shr 16); + Result := I + 1; + end; + + function CutOffPoint(TmpS: string; Width: Single): Integer; + var + W: Single; + Delta: Integer; + begin + Delta := RoundToPowerOf2(TmpS.Length) div 2; + Result := Delta; + + while Delta > 0 do + begin + W := TextWidth(TmpS.Substring(0, Result)); + if W > Width then + Result := Result - Delta; + Delta := Delta div 2; + Result := Result + Delta; + end; + end; + +begin + ALines.Count := 0; + if AText = '' then + Exit; + + ALines.Count := 1; + LEditRectWidth := ARect.Width; + + // first check linecreaks + LText := AText; + TmpS := ''; + + LCurChar := 0; + + ALines.Count := 1; + ALines.Metrics[0].Index := 1; + while LCurChar < LText.Length do + begin + if (LText.Chars[LCurChar] = #13) or (LText.Chars[LCurChar] = #10) then + begin + if (LText.Chars[LCurChar] = #13) and (LCurChar + 1 < LText.Length) then + if LText.Chars[LCurChar + 1] = #10 then + Inc(LCurChar); + + if WordWrap and (TextWidth(TmpS) > LEditRectWidth) then + begin + WCurChar := 0; + WStartChar := 0; + WSaveChar := 0; + Tok := _WideGetToken(WCurChar, TmpS); + while Tok <> '' do + begin + WWidth := TextWidth(TmpS.Substring(WStartChar, WCurChar - WStartChar)); + if WWidth > LEditRectWidth then + begin + if WSaveChar = WStartChar then + begin + WCutOffChar := CutOffPoint(TmpS.Substring(WStartChar, WCurChar - WStartChar), LEditRectWidth); + ALines.Metrics[ALines.Count - 1].Len := WCutOffChar; + WCurChar := WStartChar + WCutOffChar; + WStartChar := WStartChar + WCutOffChar; + end + else + begin + ALines.Metrics[ALines.Count - 1].Len := WSaveChar - WStartChar; + WStartChar := WSaveChar; + end; + ALines.Count := ALines.Count + 1; + ALines.Metrics[ALines.Count - 1].Index := + ALines.Metrics[ALines.Count - 2].Index + ALines.Metrics[ALines.Count - 2].Len; + end; + WSaveChar := WCurChar; + Tok := _WideGetToken(WCurChar, TmpS); + if WSaveChar = WCurChar then + Break; { !!! - error } + end; + + ALines.Metrics[ALines.Count - 1].Len := WCurChar - WStartChar; + end + else + ALines.Metrics[ALines.Count - 1].Len := Length(TmpS); + + ALines.Count := ALines.Count + 1; + ALines.Metrics[ALines.Count - 1].Index := LCurChar + 2; + + TmpS := ''; + end + else + TmpS := TmpS + LText.Chars[LCurChar]; + Inc(LCurChar); + end; + + // last line + if WordWrap and (TextWidth(TmpS) > LEditRectWidth) then + begin + WCurChar := 0; + WStartChar := 0; + WSaveChar := 0; + Tok := _WideGetToken(WCurChar, TmpS); + while Tok <> '' do + begin + Tok := TmpS.Substring(WStartChar, WCurChar - WStartChar); + WWidth := TextWidth(TmpS.Substring(WStartChar, WCurChar - WStartChar)); + if WWidth > LEditRectWidth then + begin + if WSaveChar = WStartChar then + begin + WCutOffChar := CutOffPoint(TmpS.Substring(WStartChar, WCurChar - WStartChar), LEditRectWidth); + ALines.Metrics[ALines.Count - 1].Len := WCutOffChar; + WCurChar := WStartChar + WCutOffChar; + WStartChar := WStartChar + WCutOffChar; + end + else + begin + ALines.Metrics[ALines.Count - 1].Len := WSaveChar - WStartChar; + WStartChar := WSaveChar; + end; + ALines.Count := ALines.Count + 1; + ALines.Metrics[ALines.Count - 1].Index := + ALines.Metrics[ALines.Count - 2].Index + ALines.Metrics[ALines.Count - 2].Len; + end; + + WSaveChar := WCurChar; + Tok := _WideGetToken(WCurChar, TmpS); + if WSaveChar = WCurChar then + Break; { !!! - error } + end; + ALines.Metrics[ALines.Count - 1].Len := WCurChar - WStartChar; + end + else + ALines.Metrics[ALines.Count - 1].Len := Length(TmpS); +end; + +procedure TCanvas.MeasureText(var ARect: TRectF; const AText: string; const WordWrap: Boolean; + const Flags: TFillTextFlags; const ATextAlign, AVTextAlign: TTextAlign); +var + Layout: TTextLayout; +begin + if AText.IsEmpty then + begin + ARect.Right := ARect.Left; + ARect.Bottom := ARect.Top; + Exit; + end; + + Layout := TTextLayoutManager.TextLayoutByCanvas(Self.ClassType).Create(Self); + try + Layout.BeginUpdate; + try + Layout.TopLeft := ARect.TopLeft; + Layout.MaxSize := PointF(ARect.Width, ARect.Height); + Layout.Text := AText; + Layout.WordWrap := WordWrap; + Layout.HorizontalAlign := ATextAlign; + Layout.VerticalAlign := AVTextAlign; + Layout.Font := Self.Font; + Layout.Color := Self.Fill.Color; + Layout.RightToLeft := TFillTextFlag.RightToLeft in Flags; + finally + Layout.EndUpdate; + end; + ARect := Layout.TextRect; + finally + FreeAndNil(Layout); + end; +end; + +function TCanvas.TextHeight(const AText: string): Single; +var + R: TRectF; +begin + R := RectF(0, 0, 10000, 10000); + MeasureText(R, AText, False, [], TTextAlign.Leading, TTextAlign.Leading); + Result := R.Bottom; +end; + +function TCanvas.TextToPath(Path: TPathData; const ARect: TRectF; const AText: string; const WordWrap: Boolean; + const ATextAlign, AVTextAlign: TTextAlign): Boolean; +var + Layout: TTextLayout; +begin + if AText.IsEmpty then + Exit(False); + + Layout := TTextLayoutManager.TextLayoutByCanvas(Self.ClassType).Create; + try + Layout.BeginUpdate; + try + Layout.TopLeft := ARect.TopLeft; + Layout.MaxSize := PointF(ARect.Width, ARect.Height); + Layout.Text := AText; + Layout.WordWrap := WordWrap; + Layout.HorizontalAlign := ATextAlign; + Layout.VerticalAlign := AVTextAlign; + Layout.Font := Self.Font; + Layout.Color := Self.Fill.Color; + finally + Layout.EndUpdate; + end; + Layout.ConvertToPath(Path); + Result := True; + finally + FreeAndNil(Layout); + end; +end; + +function TCanvas.TextWidth(const AText: string): Single; +var + R: TRectF; +begin + R := RectF(0, 0, 10000, 20); + MeasureText(R, AText, False, [], TTextAlign.Leading, TTextAlign.Center); + Result := R.Right; +end; + +function TCanvas.TransformPoint(const P: TPointF): TPointF; +begin + case FMatrixMeaning of + TMatrixMeaning.Unknown: + Result := P * FMatrix; + TMatrixMeaning.Identity: + Result := P; + TMatrixMeaning.Translate: + begin + Result.X := P.X + FMatrixTranslate.X; + Result.Y := P.Y + FMatrixTranslate.Y; + end; + end; +end; + +function TCanvas.TransformRect(const Rect: TRectF): TRectF; +var + V: TPointF; +begin + case FMatrixMeaning of + TMatrixMeaning.Unknown: + begin + Result.TopLeft := Rect.TopLeft * FMatrix; + + V := TPointF.Create(Rect.Right, Rect.Top) * FMatrix; + Result.Right := V.X; + Result.Bottom := V.Y; + + V := Rect.BottomRight * FMatrix; + Result.Right := V.X; + Result.Bottom := V.Y; + + V := TPointF.Create(Rect.Left, Rect.Bottom) * FMatrix; + Result.Left := V.X; + Result.Bottom := V.Y; + end; + TMatrixMeaning.Identity: + Result := Rect; + TMatrixMeaning.Translate: + begin + Result := Rect; + Result.Offset(FMatrixTranslate); + end; + end; +end; + +procedure TCanvas.FillArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single; const AOpacity: Single); +begin + FillArc(Center, Radius, StartAngle, SweepAngle, AOpacity, FFill); +end; + +procedure TCanvas.FillArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single; const AOpacity: Single; + const ABrush: TBrush); +var + P: TPathData; +begin + RaiseIfBeginSceneCountZero; + + P := TPathData.Create; + try + P.AddArc(Center, Radius, StartAngle, SweepAngle); + FillPath(P, AOpacity, ABrush); + finally + P.Free; + end; +end; + +procedure TCanvas.DrawArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single; const AOpacity: Single); +begin + DrawArc(Center, Radius, StartAngle, SweepAngle, AOpacity, FStroke); +end; + +procedure TCanvas.DrawArc(const Center, Radius: TPointF; StartAngle, SweepAngle: Single; const AOpacity: Single; + const ABrush: TStrokeBrush); +var + P: TPathData; +begin + RaiseIfBeginSceneCountZero; + + P := TPathData.Create; + try + P.AddArc(Center, Radius, StartAngle, SweepAngle); + DrawPath(P, AOpacity, ABrush); + finally + P.Free; + end; +end; + +procedure TCanvas.DrawBitmap(const ABitmap: TBitmap; const SrcRect, DstRect: TRectF; const AOpacity: Single; + const HighSpeed: Boolean); +begin + RaiseIfBeginSceneCountZero; + + DoDrawBitmap(ABitmap, SrcRect, DstRect, AOpacity, HighSpeed); +end; + +procedure TCanvas.DrawEllipse(const ARect: TRectF; const AOpacity: Single); +begin + DrawEllipse(ARect, AOpacity, FStroke); +end; + +procedure TCanvas.DrawEllipse(const ARect: TRectF; const AOpacity: Single; const ABrush: TStrokeBrush); +begin + RaiseIfBeginSceneCountZero; + + if ABrush.Kind <> TBrushKind.None then + DoDrawEllipse(ARect, AOpacity, ABrush); +end; + +procedure TCanvas.DrawLine(const APt1, APt2: TPointF; const AOpacity: Single); +begin + DrawLine(APt1, APt2, AOpacity, FStroke); +end; + +procedure TCanvas.DrawLine(const APt1, APt2: TPointF; const AOpacity: Single; const ABrush: TStrokeBrush); +begin + RaiseIfBeginSceneCountZero; + + if ABrush.Kind <> TBrushKind.None then + DoDrawLine(APt1, APt2, AOpacity, ABrush); +end; + +function TCanvas.SaveState: TCanvasSaveState; +var + SaveData: TCanvasSaveState; +begin + RaiseIfBeginSceneCountZero; + + FSavingStateCount := FSavingStateCount + 1; + for SaveData in FCanvasSaveData do + begin + if not SaveData.Assigned then + begin + SaveData.Assign(Self); + Result := SaveData; + Exit; + end; + end; + Result := CreateSaveState; + try + Result.Assign(Self); + FCanvasSaveData.Add(Result); + except + Result.Free; + raise; + end; +end; + +procedure TCanvas.SetBlending(const Value: Boolean); +begin + if FBlending <> Value then + begin + FBlending := Value; + DoBlendingChanged; + end; +end; + +procedure TCanvas.SetFill(const Value: TBrush); +begin + FFill.Assign(Value); +end; + +procedure TCanvas.FillPath(const APath: TPathData; const AOpacity: Single); +begin + FillPath(APath, AOpacity, FFill); +end; + +procedure TCanvas.FillPath(const APath: TPathData; const AOpacity: Single; const ABrush: TBrush); +begin + RaiseIfBeginSceneCountZero; + + if (ABrush.Kind <> TBrushKind.None) and not APath.IsEmpty then + DoFillPath(APath, AOpacity, ABrush); +end; + +function TCanvas.DoFillPolygon(const Points: TPolygon; const AOpacity: Single; const ABrush: TBrush): Boolean; +begin + Result := False; +end; + +procedure TCanvas.FillPolygon(const Points: TPolygon; const AOpacity: Single); +var + I: Integer; + Path: TPathData; + PathBreakFound: Boolean; +begin + RaiseIfBeginSceneCountZero; + + if not DoFillPolygon(Points, AOpacity, FFill) then + begin + Path := TPathData.Create; + try + PathBreakFound := False; + for I := 0 to High(Points) do + begin + if I = 0 then + Path.MoveTo(Points[I]) + else if (Points[I].X = PolygonPointBreak.X) and (Points[I].Y = PolygonPointBreak.Y) then + begin + Path.ClosePath; + PathBreakFound := True; + end + else + Path.LineTo(Points[I]); + end; + if not PathBreakFound then + Path.ClosePath; + FillPath(Path, AOpacity); + finally + Path.Free; + end; + end; +end; + +procedure TCanvas.FillRect(const ARect: TRectF; const AOpacity: Single; const ABrush: TBrush); +begin + FillRect(ARect, 0, 0, [], AOpacity, ABrush); +end; + +procedure TCanvas.FillRect(const ARect: TRectF; const AOpacity: Single); +begin + FillRect(ARect, 0, 0, [], AOpacity); +end; + +procedure TCanvas.DoFillRoundRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ABrush: TBrush; const ACornerType: TCornerType = TCornerType.Round); +var + Path: TPathData; + X1, X2, Y1, Y2: Single; + R: TRectF; +begin + R := ARect; + X1 := XRadius; + if RectWidth(R) - (X1 * 2) < 0 then + X1 := RectWidth(R) / 2; + X2 := XRadius * CurveKappaInv; + Y1 := YRadius; + if RectHeight(R) - (Y1 * 2) < 0 then + Y1 := RectHeight(R) / 2; + Y2 := YRadius * CurveKappaInv; + Path := TPathData.Create; + Path.MoveTo(PointF(R.Left, R.Top + Y1)); + if TCorner.TopLeft in ACorners then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(PointF(R.Left + X1, R.Top)); + TCornerType.InnerRound: + Path.CurveTo(PointF(R.Left + X2, R.Top + Y1), PointF(R.Left + X1, R.Top + Y2), PointF(R.Left + X1, R.Top)); + TCornerType.InnerLine: + begin + Path.LineTo(PointF(R.Left + X2, R.Top + Y1)); + Path.LineTo(PointF(R.Left + X1, R.Top + Y2)); + Path.LineTo(PointF(R.Left + X1, R.Top)); + end; + else + Path.CurveTo(PointF(R.Left, R.Top + (Y2)), PointF(R.Left + X2, R.Top), PointF(R.Left + X1, R.Top)) + end; + end + else + begin + Path.LineTo(PointF(R.Left, R.Top)); + Path.LineTo(PointF(R.Left + X1, R.Top)); + end; + Path.LineTo(PointF(R.Right - X1, R.Top)); + if TCorner.TopRight in ACorners then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(PointF(R.Right, R.Top + Y1)); + TCornerType.InnerRound: + Path.CurveTo(PointF(R.Right - X1, R.Top + Y2), PointF(R.Right - X2, R.Top + Y1), PointF(R.Right, R.Top + Y1)); + TCornerType.InnerLine: + begin + Path.LineTo(PointF(R.Right - X1, R.Top + Y2)); + Path.LineTo(PointF(R.Right - X2, R.Top + Y1)); + Path.LineTo(PointF(R.Right, R.Top + Y1)); + end; + else + Path.CurveTo(PointF(R.Right - X2, R.Top), PointF(R.Right, R.Top + (Y2)), PointF(R.Right, R.Top + Y1)) + end; + end + else + begin + Path.LineTo(PointF(R.Right, R.Top)); + Path.LineTo(PointF(R.Right, R.Top + Y1)); + end; + Path.LineTo(PointF(R.Right, R.Bottom - Y1)); + if TCorner.BottomRight in ACorners then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(PointF(R.Right - X1, R.Bottom)); + TCornerType.InnerRound: + Path.CurveTo(PointF(R.Right - X2, R.Bottom - Y1), PointF(R.Right - X1, R.Bottom - Y2), + PointF(R.Right - X1, R.Bottom)); + TCornerType.InnerLine: + begin + Path.LineTo(PointF(R.Right - X2, R.Bottom - Y1)); + Path.LineTo(PointF(R.Right - X1, R.Bottom - Y2)); + Path.LineTo(PointF(R.Right - X1, R.Bottom)); + end; + else + Path.CurveTo(PointF(R.Right, R.Bottom - (Y2)), PointF(R.Right - X2, R.Bottom), PointF(R.Right - X1, R.Bottom)) + end; + end + else + begin + Path.LineTo(PointF(R.Right, R.Bottom)); + Path.LineTo(PointF(R.Right - X1, R.Bottom)); + end; + Path.LineTo(PointF(R.Left + X1, R.Bottom)); + if TCorner.BottomLeft in ACorners then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(PointF(R.Left, R.Bottom - Y1)); + TCornerType.InnerRound: + Path.CurveTo(PointF(R.Left + X1, R.Bottom - Y2), PointF(R.Left + X2, R.Bottom - Y1), + PointF(R.Left, R.Bottom - Y1)); + TCornerType.InnerLine: + begin + Path.LineTo(PointF(R.Left + X1, R.Bottom - Y2)); + Path.LineTo(PointF(R.Left + X2, R.Bottom - Y1)); + Path.LineTo(PointF(R.Left, R.Bottom - Y1)); + end; + else + Path.CurveTo(PointF(R.Left + X2, R.Bottom), PointF(R.Left, R.Bottom - (Y2)), PointF(R.Left, R.Bottom - Y1)) + end; + end + else + begin + Path.LineTo(PointF(R.Left, R.Bottom)); + Path.LineTo(PointF(R.Left, R.Bottom - Y1)); + end; + Path.ClosePath; + DoFillPath(Path, AOpacity, ABrush); + Path.Free; +end; + +procedure TCanvas.DoFlush; +begin + +end; + +procedure TCanvas.DoIntersectClipRect(const ARect: TRectF); +begin +end; + +procedure TCanvas.FillRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ACornerType: TCornerType); +begin + FillRect(ARect, XRadius, YRadius, ACorners, AOpacity, FFill, ACornerType); +end; + +procedure TCanvas.FillRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ABrush: TBrush; const ACornerType: TCornerType); +begin + RaiseIfBeginSceneCountZero; + + if ABrush.Kind = TBrushKind.None then + Exit; + + if ((XRadius = 0) and (YRadius = 0)) or (ACorners = []) then + DoFillRect(ARect, AOpacity, ABrush) + else + DoFillRoundRect(ARect, XRadius, YRadius, ACorners, AOpacity, ABrush, ACornerType) +end; + +procedure TCanvas.FillEllipse(const ARect: TRectF; const AOpacity: Single); +begin + FillEllipse(ARect, AOpacity, FFill); +end; + +procedure TCanvas.FillEllipse(const ARect: TRectF; const AOpacity: Single; const ABrush: TBrush); +begin + RaiseIfBeginSceneCountZero; + + if ABrush.Kind <> TBrushKind.None then + DoFillEllipse(ARect, AOpacity, ABrush); +end; + +procedure TCanvas.FillText(const ARect: TRectF; const AText: string; const WordWrap: Boolean; const AOpacity: Single; + const Flags: TFillTextFlags; const ATextAlign, AVTextAlign: TTextAlign); +var + Layout: TTextLayout; +begin + Layout := TTextLayoutManager.TextLayoutByCanvas(Self.ClassType).Create(Self); + try + Layout.BeginUpdate; + Layout.TopLeft := ARect.TopLeft; + Layout.MaxSize := PointF(ARect.Width, ARect.Height); + Layout.Text := AText; + Layout.WordWrap := WordWrap; + Layout.Opacity := AOpacity; + Layout.HorizontalAlign := ATextAlign; + Layout.VerticalAlign := AVTextAlign; + Layout.Font := Self.Font; + Layout.Color := Self.Fill.Color; + Layout.RightToLeft := TFillTextFlag.RightToLeft in Flags; + Layout.EndUpdate; + Layout.RenderLayout(Self); + finally + FreeAndNil(Layout); + end; +end; + +procedure TCanvas.DrawPath(const APath: TPathData; const AOpacity: Single); +begin + DrawPath(APath, AOpacity, FStroke); +end; + +procedure TCanvas.DrawPath(const APath: TPathData; const AOpacity: Single; const ABrush: TStrokeBrush); +begin + RaiseIfBeginSceneCountZero; + + if (ABrush.Kind <> TBrushKind.None) and not APath.IsEmpty then + DoDrawPath(APath, AOpacity, ABrush); +end; + +function TCanvas.DoDrawPolygon(const Points: TPolygon; const AOpacity: Single; const ABrush: TStrokeBrush): Boolean; +begin + Result := False; +end; + +procedure TCanvas.DrawPolygon(const Points: TPolygon; const AOpacity: Single); +var + I: Integer; + Path: TPathData; + PathBreakFound: Boolean; +begin + RaiseIfBeginSceneCountZero; + + if not DoDrawPolygon(Points, AOpacity, FStroke) then + begin + Path := TPathData.Create; + try + PathBreakFound := False; + for I := 0 to High(Points) do + begin + if I = 0 then + Path.MoveTo(Points[I]) + else if (Points[I].X = PolygonPointBreak.X) and (Points[I].Y = PolygonPointBreak.Y) then + begin + Path.ClosePath; + PathBreakFound := True; + end + else + Path.LineTo(Points[I]); + end; + if not PathBreakFound then + Path.ClosePath; + DrawPath(Path, AOpacity); + finally + Path.Free; + end; + end; +end; + +procedure TCanvas.DrawRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ACornerType: TCornerType); +begin + DrawRect(ARect, XRadius, YRadius, ACorners, AOpacity, FStroke, ACornerType); +end; + +procedure TCanvas.DrawRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ABrush: TStrokeBrush; const ACornerType: TCornerType); +var + Path: TPathData; + X1, X2, Y1, Y2: Single; + R: TRectF; +begin + RaiseIfBeginSceneCountZero; + + if ABrush.Kind = TBrushKind.None then + Exit; + + R := ARect; + if ((XRadius = 0) and (YRadius = 0)) or (ACorners = []) then + DoDrawRect(ARect, AOpacity, ABrush) + else + begin + R := ARect; + X1 := XRadius; + if RectWidth(R) - (X1 * 2) < 0 then + X1 := RectWidth(R) / 2; + X2 := XRadius * CurveKappaInv; + Y1 := YRadius; + if RectHeight(R) - (Y1 * 2) < 0 then + Y1 := RectHeight(R) / 2; + Y2 := YRadius * CurveKappaInv; + Path := TPathData.Create; + Path.MoveTo(PointF(R.Left, R.Top + Y1)); + if TCorner.TopLeft in ACorners then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(PointF(R.Left + X1, R.Top)); + TCornerType.InnerRound: + Path.CurveTo(PointF(R.Left + X2, R.Top + Y1), PointF(R.Left + X1, R.Top + Y2), PointF(R.Left + X1, R.Top)); + TCornerType.InnerLine: + begin + Path.LineTo(PointF(R.Left + X2, R.Top + Y1)); + Path.LineTo(PointF(R.Left + X1, R.Top + Y2)); + Path.LineTo(PointF(R.Left + X1, R.Top)); + end; + else + Path.CurveTo(PointF(R.Left, R.Top + (Y2)), PointF(R.Left + X2, R.Top), PointF(R.Left + X1, R.Top)) + end; + end + else + begin + Path.LineTo(PointF(R.Left, R.Top)); + Path.LineTo(PointF(R.Left + X1, R.Top)); + end; + Path.LineTo(PointF(R.Right - X1, R.Top)); + if TCorner.TopRight in ACorners then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(PointF(R.Right, R.Top + Y1)); + TCornerType.InnerRound: + Path.CurveTo(PointF(R.Right - X1, R.Top + Y2), PointF(R.Right - X2, R.Top + Y1), PointF(R.Right, R.Top + Y1)); + TCornerType.InnerLine: + begin + Path.LineTo(PointF(R.Right - X1, R.Top + Y2)); + Path.LineTo(PointF(R.Right - X2, R.Top + Y1)); + Path.LineTo(PointF(R.Right, R.Top + Y1)); + end; + else + Path.CurveTo(PointF(R.Right - X2, R.Top), PointF(R.Right, R.Top + (Y2)), PointF(R.Right, R.Top + Y1)) + end; + end + else + begin + Path.LineTo(PointF(R.Right, R.Top)); + Path.LineTo(PointF(R.Right, R.Top + Y1)); + end; + Path.LineTo(PointF(R.Right, R.Bottom - Y1)); + if TCorner.BottomRight in ACorners then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(PointF(R.Right - X1, R.Bottom)); + TCornerType.InnerRound: + Path.CurveTo(PointF(R.Right - X2, R.Bottom - Y1), PointF(R.Right - X1, R.Bottom - Y2), + PointF(R.Right - X1, R.Bottom)); + TCornerType.InnerLine: + begin + Path.LineTo(PointF(R.Right - X2, R.Bottom - Y1)); + Path.LineTo(PointF(R.Right - X1, R.Bottom - Y2)); + Path.LineTo(PointF(R.Right - X1, R.Bottom)); + end; + else + Path.CurveTo(PointF(R.Right, R.Bottom - (Y2)), PointF(R.Right - X2, R.Bottom), PointF(R.Right - X1, R.Bottom)) + end; + end + else + begin + Path.LineTo(PointF(R.Right, R.Bottom)); + Path.LineTo(PointF(R.Right - X1, R.Bottom)); + end; + Path.LineTo(PointF(R.Left + X1, R.Bottom)); + if TCorner.BottomLeft in ACorners then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(PointF(R.Left, R.Bottom - Y1)); + TCornerType.InnerRound: + Path.CurveTo(PointF(R.Left + X1, R.Bottom - Y2), PointF(R.Left + X2, R.Bottom - Y1), + PointF(R.Left, R.Bottom - Y1)); + TCornerType.InnerLine: + begin + Path.LineTo(PointF(R.Left + X1, R.Bottom - Y2)); + Path.LineTo(PointF(R.Left + X2, R.Bottom - Y1)); + Path.LineTo(PointF(R.Left, R.Bottom - Y1)); + end; + else + Path.CurveTo(PointF(R.Left + X2, R.Bottom), PointF(R.Left, R.Bottom - (Y2)), PointF(R.Left, R.Bottom - Y1)) + end; + end + else + begin + Path.LineTo(PointF(R.Left, R.Bottom)); + Path.LineTo(PointF(R.Left, R.Bottom - Y1)); + end; + Path.ClosePath; + DoDrawPath(Path, AOpacity, ABrush); + Path.Free; + end; +end; + +procedure TCanvas.DrawDashRect(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const AColor: TAlphaColor); +var + Brush: TStrokeBrush; +begin + RaiseIfBeginSceneCountZero; + + Brush := TStrokeBrush.Create(TBrushKind.Solid, AColor); + try + Brush.Thickness := 1; + Brush.Dash := TStrokeDash.Dash; + Brush.Kind := TBrushKind.Solid; + DrawRect(ARect, XRadius, YRadius, ACorners, AOpacity, Brush); + finally + Brush.Free; + end; +end; + +procedure TCanvas.DrawRectSides(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ASides: TSides; const ACornerType: TCornerType = TCornerType.Round); +begin + DrawRectSides(ARect, XRadius, YRadius, ACorners, AOpacity, ASides, FStroke, ACornerType); +end; + +procedure TCanvas.DrawRectSides(const ARect: TRectF; const XRadius, YRadius: Single; const ACorners: TCorners; + const AOpacity: Single; const ASides: TSides; const ABrush: TStrokeBrush; + const ACornerType: TCornerType = TCornerType.Round); +var + Path: TPathData; + X1, X2, Y1, Y2: Single; + DrawingRect: TRectF; +begin + RaiseIfBeginSceneCountZero; + + DrawingRect := ARect; + X1 := XRadius; + if DrawingRect.Width - (X1 * 2) < 0 then + if X1 <> 0 then // guard divide by zero + X1 := (XRadius * (DrawingRect.Width / (X1 * 2))); + X2 := X1 / 2; + Y1 := YRadius; + if DrawingRect.Height - (Y1 * 2) < 0 then + if Y1 <> 0 then // guard divide by zero + Y1 := (YRadius * (DrawingRect.Height / (Y1 * 2))); + Y2 := Y1 / 2; + Path := TPathData.Create; + try + Path.MoveTo(PointF(DrawingRect.Left, DrawingRect.Top + Y1)); + if TCorner.TopLeft in ACorners then + begin + if (TSide.Top in ASides) or (TSide.Left in ASides) or (XRadius > 0) or (YRadius > 0) then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Top)); + TCornerType.InnerRound: + Path.CurveTo(TPointF.Create(DrawingRect.Left + X2, DrawingRect.Top + Y1), + TPointF.Create(DrawingRect.Left + X1, DrawingRect.Top + Y2), + TPointF.Create(DrawingRect.Left + X1, DrawingRect.Top)); + TCornerType.InnerLine: + begin + Path.LineTo(TPointF.Create(DrawingRect.Left + X2, DrawingRect.Top + Y1)); + Path.LineTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Top + Y2)); + Path.LineTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Top)); + end; + else + Path.CurveTo(TPointF.Create(DrawingRect.Left, DrawingRect.Top + (Y2)), + TPointF.Create(DrawingRect.Left + X2, DrawingRect.Top), TPointF.Create(DrawingRect.Left + X1, + DrawingRect.Top)) + end; + end + else + Path.MoveTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Top)); + end + else + begin + if TSide.Left in ASides then + Path.LineTo(TPointF.Create(DrawingRect.Left, DrawingRect.Top)) + else + Path.MoveTo(TPointF.Create(DrawingRect.Left, DrawingRect.Top)); + if TSide.Top in ASides then + Path.LineTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Top)) + else + Path.MoveTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Top)); + end; + if not(TSide.Top in ASides) then + Path.MoveTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Top)) + else + Path.LineTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Top)); + if TCorner.TopRight in ACorners then + begin + if (TSide.Top in ASides) or (TSide.Right in ASides) or (XRadius > 0) or (YRadius > 0) then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(TPointF.Create(DrawingRect.Right, DrawingRect.Top + Y1)); + TCornerType.InnerRound: + Path.CurveTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Top + Y2), + TPointF.Create(DrawingRect.Right - X2, DrawingRect.Top + Y1), + TPointF.Create(DrawingRect.Right, DrawingRect.Top + Y1)); + TCornerType.InnerLine: + begin + Path.LineTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Top + Y2)); + Path.LineTo(TPointF.Create(DrawingRect.Right - X2, DrawingRect.Top + Y1)); + Path.LineTo(TPointF.Create(DrawingRect.Right, DrawingRect.Top + Y1)); + end; + else + Path.CurveTo(TPointF.Create(DrawingRect.Right - X2, DrawingRect.Top), + TPointF.Create(DrawingRect.Right, DrawingRect.Top + (Y2)), + TPointF.Create(DrawingRect.Right, DrawingRect.Top + Y1)) + end; + end + else + Path.MoveTo(TPointF.Create(DrawingRect.Right, DrawingRect.Top + Y1)); + end + else + begin + if TSide.Top in ASides then + Path.LineTo(TPointF.Create(DrawingRect.Right, DrawingRect.Top)) + else + Path.MoveTo(TPointF.Create(DrawingRect.Right, DrawingRect.Top)); + if TSide.Right in ASides then + Path.LineTo(TPointF.Create(DrawingRect.Right, DrawingRect.Top + Y1)) + else + Path.MoveTo(TPointF.Create(DrawingRect.Right, DrawingRect.Top + Y1)); + end; + if not(TSide.Right in ASides) then + Path.MoveTo(TPointF.Create(DrawingRect.Right, DrawingRect.Bottom - Y1)) + else + Path.LineTo(TPointF.Create(DrawingRect.Right, DrawingRect.Bottom - Y1)); + if TCorner.BottomRight in ACorners then + begin + if (TSide.Bottom in ASides) or (TSide.Right in ASides) or (XRadius > 0) or (YRadius > 0) then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Bottom)); + TCornerType.InnerRound: + Path.CurveTo(TPointF.Create(DrawingRect.Right - X2, DrawingRect.Bottom - Y1), + TPointF.Create(DrawingRect.Right - X1, DrawingRect.Bottom - Y2), + TPointF.Create(DrawingRect.Right - X1, DrawingRect.Bottom)); + TCornerType.InnerLine: + begin + Path.LineTo(TPointF.Create(DrawingRect.Right - X2, DrawingRect.Bottom - Y1)); + Path.LineTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Bottom - Y2)); + Path.LineTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Bottom)); + end; + else + Path.CurveTo(TPointF.Create(DrawingRect.Right, DrawingRect.Bottom - (Y2)), + TPointF.Create(DrawingRect.Right - X2, DrawingRect.Bottom), TPointF.Create(DrawingRect.Right - X1, + DrawingRect.Bottom)) + end; + end + else + Path.MoveTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Bottom)); + end + else + begin + if TSide.Right in ASides then + Path.LineTo(TPointF.Create(DrawingRect.Right, DrawingRect.Bottom)) + else + Path.MoveTo(TPointF.Create(DrawingRect.Right, DrawingRect.Bottom)); + if TSide.Bottom in ASides then + Path.LineTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Bottom)) + else + Path.MoveTo(TPointF.Create(DrawingRect.Right - X1, DrawingRect.Bottom)); + end; + if not(TSide.Bottom in ASides) then + Path.MoveTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Bottom)) + else + Path.LineTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Bottom)); + if TCorner.BottomLeft in ACorners then + begin + if (TSide.Bottom in ASides) or (TSide.Left in ASides) or (XRadius > 0) or (YRadius > 0) then + begin + case ACornerType of + // TCornerType.Round - default + TCornerType.Bevel: + Path.LineTo(TPointF.Create(DrawingRect.Left, DrawingRect.Bottom - Y1)); + TCornerType.InnerRound: + Path.CurveTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Bottom - Y2), + TPointF.Create(DrawingRect.Left + X2, DrawingRect.Bottom - Y1), + TPointF.Create(DrawingRect.Left, DrawingRect.Bottom - Y1)); + TCornerType.InnerLine: + begin + Path.LineTo(TPointF.Create(DrawingRect.Left + X1, DrawingRect.Bottom - Y2)); + Path.LineTo(TPointF.Create(DrawingRect.Left + X2, DrawingRect.Bottom - Y1)); + Path.LineTo(TPointF.Create(DrawingRect.Left, DrawingRect.Bottom - Y1)); + end; + else + Path.CurveTo(TPointF.Create(DrawingRect.Left + X2, DrawingRect.Bottom), + TPointF.Create(DrawingRect.Left, DrawingRect.Bottom - (Y2)), + TPointF.Create(DrawingRect.Left, DrawingRect.Bottom - Y1)) + end; + end + else + Path.MoveTo(TPointF.Create(DrawingRect.Left, DrawingRect.Bottom - Y1)); + end + else + begin + if TSide.Bottom in ASides then + Path.LineTo(TPointF.Create(DrawingRect.Left, DrawingRect.Bottom)) + else + Path.MoveTo(TPointF.Create(DrawingRect.Left, DrawingRect.Bottom)); + if TSide.Left in ASides then + Path.LineTo(TPointF.Create(DrawingRect.Left, DrawingRect.Bottom - Y1)) + else + Path.MoveTo(TPointF.Create(DrawingRect.Left, DrawingRect.Bottom - Y1)); + end; + if (TSide.Left in ASides) then + begin + Path.LineTo(TPointF.Create(DrawingRect.Left, DrawingRect.Top + Y1)); + end; + DrawPath(Path, AOpacity, ABrush); + finally + Path.Free; + end; +end; + +function TCanvas.GetCanvasScale: Single; +begin + if Parent <> nil then + Result := Parent.Scale + else if Bitmap <> nil then + Result := Bitmap.BitmapScale + else + Result := DefaultScale; +end; + +class function TCanvas.GetCanvasStyle: TCanvasStyles; +begin + Result := [TCanvasStyle.SupportClipRects]; +end; + +class function TCanvas.GetAttribute(const Value: TCanvasAttribute): Integer; +begin + case Value of + TCanvasAttribute.MaxBitmapSize: + Result := MaxAllowedBitmapSize; + else + raise EArgumentException.CreateRes(@SInvalidCanvasParameter); + end; +end; + +procedure TCanvas.SetSize(const AWidth, AHeight: Integer); +begin + FWidth := AWidth; + FHeight := AHeight; +end; + +procedure TCanvas.DrawRect(const ARect: TRectF; const AOpacity: Single; const ABrush: TStrokeBrush); +begin + DrawRect(ARect, 0, 0, AllCorners, AOpacity, ABrush); +end; + +procedure TCanvas.DrawRect(const ARect: TRectF; const AOpacity: Single); +begin + DrawRect(ARect, 0, 0, AllCorners, AOpacity); +end; + +{ TBrushObject } + +constructor TBrushObject.Create(AOwner: TComponent); +begin + inherited; + FBrush := TBrush.Create(TBrushKind.Solid, $FFFFFFFF); +end; + +destructor TBrushObject.Destroy; +begin + FreeAndNil(FBrush); + inherited; +end; + +function TBrushObject.GetBrush: TBrush; +begin + Result := FBrush; +end; + +procedure TBrushObject.SetName(const NewName: TComponentName); +begin + inherited; + if FStyleName = '' then + FStyleName := Name; +end; + +{ TFontObject } + +constructor TFontObject.Create(AOwner: TComponent); +begin + inherited; + FFont := TFont.Create; +end; + +destructor TFontObject.Destroy; +begin + FreeAndNil(FFont); + inherited; +end; + +function TFontObject.GetFont: TFont; +begin + Result := FFont; +end; + +procedure TFontObject.SetName(const NewName: TComponentName); +begin + inherited; + if FStyleName = '' then + FStyleName := Name; +end; + +{ TPathObject } + +constructor TPathObject.Create(AOwner: TComponent); +begin + inherited; + FPath := TPathData.Create(); +end; + +destructor TPathObject.Destroy; +begin + FreeAndNil(FPath); + inherited; +end; + +function TPathObject.GetPath: TPathData; +begin + Result := FPath; +end; + +procedure TPathObject.SetName(const NewName: TComponentName); +begin + inherited; + if FStyleName = '' then + FStyleName := Name; +end; + +{ TBitmapObject } + +constructor TBitmapObject.Create(AOwner: TComponent); +begin + inherited; + FBitmap := TBitmap.Create(1, 1); +end; + +destructor TBitmapObject.Destroy; +begin + FreeAndNil(FBitmap); + inherited; +end; + +function TBitmapObject.GetBitmap: TBitmap; +begin + Result := FBitmap; +end; + +procedure TBitmapObject.SetName(const NewName: TComponentName); +begin + inherited; + if FStyleName = '' then + FStyleName := Name; +end; + +{ TCanvasSaveState } + +procedure TCanvasSaveState.Assign(Source: TPersistent); +var + LCanvas: TCanvas; +begin + if Source is TCanvas then + begin + LCanvas := TCanvas(Source); + Self.FAssigned := True; + Self.FOffset := LCanvas.FOffset; + Self.FMatrix := LCanvas.FMatrix; + Self.FFill.Assign(LCanvas.Fill); + Self.FStroke.Assign(LCanvas.Stroke); + Self.FFont.Assign(LCanvas.Font); + end + else + inherited; +end; + +procedure TCanvasSaveState.AssignTo(Dest: TPersistent); +var + LCanvas: TCanvas; +begin + if Dest is TCanvas then + begin + LCanvas := TCanvas(Dest); + Self.FAssigned := False; + LCanvas.Offset := FOffset; + LCanvas.SetMatrix(Self.FMatrix); + LCanvas.Fill.Assign(Self.FFill); + LCanvas.Stroke.Assign(Self.FStroke); + LCanvas.Font.Assign(Self.FFont); + end + else + inherited; +end; + +constructor TCanvasSaveState.Create; +begin + inherited Create; + FFont := TFont.Create; + FFill := TBrush.Create(TBrushKind.Solid, TAlphaColors.Black); + FStroke := TStrokeBrush.Create(TBrushKind.Solid, TAlphaColors.White); +end; + +destructor TCanvasSaveState.Destroy; +begin + FFont.Free; + FFill.Free; + FStroke.Free; + inherited; +end; + +{ TColorObject } + +procedure TColorObject.SetName(const NewName: TComponentName); +begin + inherited; + if StyleName = '' then + StyleName := Name; +end; + +{ TBitmapCodecManager.TBitmapCodecClassDescriptor } + +function TBitmapCodecManager.TCodecDescriptor.ToFilterString: string; +begin + Result := Format('%s (*%s)|*%s', [Description, Extension, Extension]); +end; + +initialization + RegisterFmxClasses([TBrushObject, TFontObject, TPathObject, TBitmapObject, TColorObject]); +finalization + TFont.FontService := nil; +end. diff --git a/src/lib/FMX/DX 11.0/FMX.Platform.Win.pas b/src/lib/FMX/DX 11.0/FMX.Platform.Win.pas new file mode 100644 index 0000000..400a52b --- /dev/null +++ b/src/lib/FMX/DX 11.0/FMX.Platform.Win.pas @@ -0,0 +1,4444 @@ +{*******************************************************} +{ } +{ Delphi FireMonkey Platform } +{ } +{ Copyright(c) 2011-2021 Embarcadero Technologies, Inc. } +{ All rights reserved } +{ } +{*******************************************************} + +unit FMX.Platform.Win; + +(*$HPPEMIT '#if defined(WIN32) && defined(CreateWindow)'*) +(*$HPPEMIT ' #define __SAVE_CREATEWINDOW CreateWindow'*) +(*$HPPEMIT ' #undef CreateWindow'*) +(*$HPPEMIT '#endif'*) + +(*$HPPEMIT END '#if defined(__SAVE_CREATEWINDOW)'*) +(*$HPPEMIT END ' #define CreateWindow __SAVE_CREATEWINDOW'*) +(*$HPPEMIT END ' #undef __SAVE_CREATEWINDOW'*) +(*$HPPEMIT END '#endif'*) + +{$HPPEMIT NOUSINGNAMESPACE} +{$R-} + +interface + +{$SCOPEDENUMS ON} + +uses + System.Messaging, Winapi.CommCtrl, Winapi.Windows, Winapi.ActiveX, System.Types, Winapi.Messages, System.Classes, + System.UITypes, System.UIConsts, System.Generics.Collections, FMX.Forms, FMX.Platform, FMX.Types, FMX.Graphics, + FMX.ZOrder.Win; + +type + TWinDropTarget = class; + + PRgnRects = ^TRgnRects; + TRgnRects = array [0..MaxInt div SizeOf(TRect) - 1] of TRect; + + TUpdateRects = array of TRectF; + + TWinWindowHandle = class(TWindowHandle) + private class var + FForcedScale: Single; + private + FForm: TCommonCustomForm; + FWnd: HWND; + FZOrderManager: TWinZOrderManager; + FBufferBitmap: THandle; + FBitmapInfo: TBitmapInfo; + FBufferBits: Pointer; + FBufferHandle: THandle; + FBufferSize: TSize; + FDisableDeactivate: Boolean; + FWinDropTarget: TWinDropTarget; + FCurrentScale: Single; + FClientSize: TSizeF; + FWndClientSize: TSize; + FBounds: TRectF; + FWndBounds: TRect; + FNearestIntegerMultiple: Integer; + procedure UpdateLayer; + function GetZOrderManager: TWinZOrderManager; + procedure SetBounds(const Value: TRectF); + procedure SetWndBounds(const Value: TRect); + procedure SetClientSize(const Value: TSizeF); + procedure CalculateClientSizeFromWindow; + procedure ApplyWndBoundsToWnd; + procedure ApplyWndClientSizeToWnd; + procedure CalcNearestIntegerMultiple; + function GetNearestIntegerMultiple: Integer; + function GetWndBorderSize: TSize; + protected + function GetBounds: TRectF; virtual; + function GetClientSize: TSizeF; virtual; + function GetWndBounds: TRect; virtual; + function GetWndClientSize: TSize; virtual; + function GetTransparency: Boolean; virtual; + function GetScale: Single; override; + { WinAPI Messages } + procedure WMDpiChanged(var AMessage: TWMDpi); message WM_DPICHANGED; + procedure WMWindowPosChanging(var AMessage: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING; + procedure WMWindowPosChanged(var AMessage: TWMWindowPosChanged); message WM_WINDOWPOSCHANGED; + procedure WMSize(var AMessage: TWMSize); message WM_SIZE; + procedure WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); message WM_GETMINMAXINFO; + public + constructor Create(const AForm: TCommonCustomForm; const AWnd: HWND); + destructor Destroy; override; + class procedure SetForcedScale(const ANewScale: Single); + procedure SetForcedScaleForForm(const ANewScale: Single); + { Buffer } + procedure CreateBuffer(const Width, Height: Integer); + procedure ResizeBuffer(const Width, Height: Integer); + procedure FreeBuffer; + { Rounding to match scale } + /// Rounds physical size of client window to match scale and logical client window size. + function RoundWndClientSizeToMatchScale(const AWndClientSize: TSize): TSize; + /// Rounds physical size of window to match scale and logical window bounds. + function RoundWndSizeToMatchScale(const AWndSize: TSize): TSize; + { PX to DP conversions } + /// Converts physical rect to logical. + function WndToForm(const Rect: TRect): TRectF; overload; + /// Converts physical rect to logical. + function WndToForm(const Rect: TRectF): TRectF; overload; + /// Converts logical rect to physical. + function FormToWnd(const Rect: TRectF): TRectF; + property NearestIntegerMultiple: Integer read GetNearestIntegerMultiple; + public + /// Native WinAPI window handle. + property Wnd: HWND read FWnd; + /// Returns related FMX form. + property Form: TCommonCustomForm read FForm; + /// The Z-Order manager responsible for using native controls on this form. + property ZOrderManager: TWinZOrderManager read GetZOrderManager; + /// Is form transparent or not? + property Transparency: Boolean read GetTransparency; + { Buffer } + property BufferBits: Pointer read FBufferBits; + property BufferHandle: THandle read FBufferHandle; + /// Allocated buffer size for native window. + property BufferSize: TSize read FBufferSize; + { Frame/Bounds } + /// Logical form's client size (dp). + property ClientSize: TSizeF read GetClientSize write SetClientSize; + /// Logical form bounds (dp). + property Bounds: TRectF read GetBounds write SetBounds; + /// Physical size of client part (px). + property WndClientSize: TSize read GetWndClientSize; + /// Physical form bounds (px). + property WndBounds: TRect read GetWndBounds write SetWndBounds; + /// Total physical thickness of window frame (px). + property WndBorderSize: TSize read GetWndBorderSize; + end; + + TWinDropTarget = class(TComponent, IDropTarget) + private + Form: TCommonCustomForm; + function GetDataObject: TDragObject; + function DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; + function DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; + function DragLeave: HRESULT; stdcall; + function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; + end; + +function PxToDp(const AValue: TPoint): TPointF; +function DpToPx(const AValue: TPointF): TPoint; + +function FindWindow(Handle: HWND): TCommonCustomForm; +function WindowHandleToPlatform(const AHandle: TWindowHandle): TWinWindowHandle; + +function FmxHandleToHWND(const FmxHandle: TWindowHandle): HWND; +function FormToHWND(Form: TCommonCustomForm): HWND; +function ApplicationHWND: HWND; + +procedure RegisterCorePlatformServices; +procedure UnregisterCorePlatformServices; + +const + IDC_NODROP = PChar(32760); + IDC_DRAG = PChar(32759); + IDC_MULTIDRAG = PChar(32756); + IDC_SQLWAIT = PChar(32755); + +type + TApplicationHWNDProc = function: HWND; + +procedure RegisterApplicationHWNDProc(const Proc: TApplicationHWNDProc); + +procedure ShutDown; cdecl; + +implementation + +{$SCOPEDENUMS OFF} + +uses + System.IOUtils, Winapi.CommDlg, Winapi.ShlObj, Winapi.MMSystem, Winapi.ShellAPI, + Winapi.MultiMon, Winapi.Imm, Winapi.UxTheme, Winapi.ShellScaling, System.Variants, System.SysUtils, System.Math, + System.Math.Vectors, System.StrUtils, System.DateUtils, System.RTLConsts, System.SyncObjs, System.Rtti, System.Devices, + FMX.Consts, FMX.Menus, FMX.Helpers.Win, FMX.Printer, FMX.Printer.Win, FMX.Dialogs.Win, FMX.Canvas.GDIP, FMX.Canvas.D2D, + FMX.Context.DX9, FMX.Context.DX11, FMX.Canvas.GPU, FMX.Forms.Border.Win, FMX.Controls.Win, FMX.Gestures.Win, + FMX.TextLayout, FMX.Text, FMX.Types3D, FMX.VirtualKeyboard, FMX.Controls, FMX.BehaviorManager, FMX.Styles, + FMX.MultiTouch.Win, FMX.ImgList, FMX.WebBrowser, FMX.Surfaces, FMX.Utils, FMX.KeyMapping, FMX.AcceleratorKey, + FMX.AcceleratorKey.Win, FMX.Platform.Screen.Win, FMX.Platform.SaveState.Win, FMX.Platform.Device.Win, + FMX.Platform.Metrics.Win, FMX.VirtualKeyboard.Win, FMX.Platform.Timer.Win, FMX.Platform.Logger.Win, + FMX.Platform.Menu.Win; + +type + MySTGMEDIUM = record // for compatibility + Tymed: DWORD; + case Integer Of + 0: + (HBITMAP: HBITMAP; UnkForRelease: Pointer { IUnknown } ); + 1: + (HMETAFILEPICT: THandle); + 2: + (HENHMETAFILE: THandle); + 3: + (HGLOBAL: HGLOBAL); + 4: + (lpszFileName: POleStr); + 5: + (stm: Pointer { IStream } ); + 6: + (stg: Pointer { IStorage } ); + end; + + { TDropSource } + + TDataObjectInfo = record + FormatEtc: TFormatEtc; + StgMedium: TStgMedium; + OwnedByDataObject: Boolean; + end; + + TDataObjectInfoArray = array of TDataObjectInfo; + + TDropSource = class(TComponent, IDataObject, IDropSource) + private + Data: TDragObject; + Formats: TDataObjectInfoArray; + { IDropSource } + function QueryContinueDrag(fEscapePressed: BOOL; grfKeyState: Longint): HRESULT; stdcall; + function GiveFeedback(dwEffect: Longint): HRESULT; stdcall; + { IDataObject } + function GetData(const FormatEtcIn: TFormatEtc; out Medium: TStgMedium): HRESULT; stdcall; + function GetDataHere(const FormatEtc: TFormatEtc; out Medium: TStgMedium): HRESULT; stdcall; + function QueryGetData(const FormatEtc: TFormatEtc): HRESULT; stdcall; + function GetCanonicalFormatEtc(const FormatEtc: TFormatEtc; out FormatEtcout: TFormatEtc): HRESULT; stdcall; + function SetData(const FormatEtc: TFormatEtc; var Medium: TStgMedium; fRelease: BOOL): HRESULT; stdcall; + function EnumFormatEtc(dwDirection: Longint; out EnumFormatEtc: IEnumFormatEtc): HRESULT; stdcall; + function dAdvise(const FormatEtc: TFormatEtc; advf: Longint; const advsink: IAdviseSink; + out dwConnection: Longint): HRESULT; stdcall; + function dUnadvise(dwConnection: Longint): HRESULT; stdcall; + function EnumdAdvise(out EnumAdvise: IEnumStatData): HRESULT; stdcall; + { For IDropSourceHelper } + function FindFormatEtc(TestFormatEtc: TFormatEtc): Integer; + function EqualFormatEtc(FormatEtc1, FormatEtc2: TFormatEtc): Boolean; + function HGlobalClone(HGLOBAL: THandle): THandle; + function RetrieveOwnedStgMedium(Format: TFormatEtc; var StgMedium: TStgMedium): HRESULT; + function StgMediumIncRef(const InStgMedium: TStgMedium; var OutStgMedium: TStgMedium; + CopyInMedium: Boolean): HRESULT; + function CanonicalIUnknown(const TestUnknown: IUnknown): IUnknown; + end; + +type + { TPlatformWin } + + TFullScreenParams = record + BorderStyle: TFmxFormBorderStyle; + WindowState: TWindowState; + Position: TPointF; + Size: TSizeF; + public + function IsFullScreen: Boolean; + procedure Clean; + end; + + TFormInfo = class + WasLeftMouseButtonPressed: Boolean; + end; + + TImmManager = class; + + TPlatformWin = class(TInterfacedObject, IFMXApplicationService, IFMXWindowService, IFMXDragDropService, + IFMXCursorService, IFMXMouseService, IFMXTextService, IFMXContextService, IFMXCanvasService, IFMXWindowBorderService, + IFMXFullScreenWindowService, IFMXGestureRecognizersService, IFMXWindowsTouchService, IFMXKeyMappingService, + IFMXWindowConstraintsService) + private + FTitle: string; + FDefaultTitle: string; + FApplicationHWNDProc: TApplicationHWNDProc; + FApplicationHWND: HWND; + FIsOutApplicationHWND: Boolean; + FFullScreenSupport: TDictionary; + FDiableUpdateState: Boolean; + FThreadSyncHandle: HWND; + FInPaintUpdateRects: TDictionary; + FTerminating: Boolean; + FRunning: Boolean; + FCursor: TCursor; + FCaptionChangedId: Integer; + FMultiTouchManager: TMultiTouchManagerWin; + FEnabledInteractiveGestures: TInteractiveGestures; + FDragAndDropActive: Boolean; + FKeyMapping: TKeyMapping; + FAcceleratorKeyRegistry: IFMXAcceleratorKeyRegistryService; + FIsPostQuitMessage: Boolean; + FTimerService: TWinTimerService; + FFormsInfo: TObjectDictionary; + { IMM } + FImmManagers: TObjectDictionary; + procedure ThreadSync(var Msg: TMessage); + procedure WakeMainThread(Sender: TObject); + function CreateAppHandle: HWND; + procedure MinimizeApp; + procedure RestoreApp; + procedure UpdateAppTitle; + procedure CaptionChangedHandler(const Sender: TObject; const Msg: System.Messaging.TMessage); + function GetApplicationHWND: HWND; + procedure SetApplicationHWNDProc(const Value: TApplicationHWNDProc); + procedure UpdateApplicationHwnd; + + { IFMXKeyMappingService } + /// Registers a platform key as the given virtual key. + function RegisterKeyMapping(const PlatformKey, VirtualKey: Word; const KeyKind: TKeyKind): Boolean; + /// Unegisters a platform key as the given virtual key. + function UnregisterKeyMapping(const PlatformKey: Word): Boolean; + /// Obtains the virtual key from a given platform key. + function PlatformKeyToVirtualKey(const PlatformKey: Word; var KeyKind: TKeyKind): Word; + /// Obtains the platform key from a given virtual key. + function VirtualKeyToPlatformKey(const VirtualKey: Word): Word; + function GetImmManager(const Index: TCommonCustomForm): TImmManager; + function GetFormInfo(const Index: TCommonCustomForm): TFormInfo; + public + constructor Create; + destructor Destroy; override; + { IFMXApplicationService } + procedure Run; + function HandleMessage: Boolean; + procedure WaitMessage; + function GetDefaultTitle: string; + function GetTitle: string; + procedure SetTitle(const Value: string); + function Terminating: Boolean; + function Running: Boolean; + procedure Terminate; + function GetVersionString: string; + property ApplicationHWND: HWND read GetApplicationHWND; + property ApplicationHWNDProc: TApplicationHWNDProc read FApplicationHWNDProc write SetApplicationHWNDProc; + { IFMXWindowService } + function FindForm(const AHandle: TWindowHandle): TCommonCustomForm; + function CreateWindow(const AForm: TCommonCustomForm): TWindowHandle; + procedure DestroyWindow(const AForm: TCommonCustomForm); + procedure ReleaseWindow(const AForm: TCommonCustomForm); + procedure SetWindowState(const AForm: TCommonCustomForm; const AState: TWindowState); + procedure ShowWindow(const AForm: TCommonCustomForm); + procedure HideWindow(const AForm: TCommonCustomForm); + procedure BringToFront(const AForm: TCommonCustomForm); + procedure SendToBack(const AForm: TCommonCustomForm); + procedure Activate(const AForm: TCommonCustomForm); + function ShowWindowModal(const AForm: TCommonCustomForm): TModalResult; + function CanShowModal: Boolean; + procedure InvalidateWindowRect(const AForm: TCommonCustomForm; R: TRectF); + procedure InvalidateImmediately(const AForm: TCommonCustomForm); + procedure SetWindowRect(const AForm: TCommonCustomForm; ARect: TRectF); + function GetWindowRect(const AForm: TCommonCustomForm): TRectF; + function GetClientSize(const AForm: TCommonCustomForm): TPointF; + procedure SetClientSize(const AForm: TCommonCustomForm; const ASize: TPointF); + procedure SetWindowCaption(const AForm: TCommonCustomForm; const ACaption: string); + procedure SetCapture(const AForm: TCommonCustomForm); + procedure ReleaseCapture(const AForm: TCommonCustomForm); + function ClientToScreen(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; + function ScreenToClient(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; + function GetWindowScale(const AForm: TCommonCustomForm): Single; + { IFMXWindowConstraintsService } + procedure SetConstraints(const AForm: TCommonCustomForm; const AMinWidth, AMinHeight, AMaxWidth, AMaxHeight: Single); + { IFMXFullScreenWindowService } + // for desingtime and testing only + procedure SetFullScreen(const AForm: TCommonCustomForm; const AValue: Boolean); + function GetFullScreen(const AForm: TCommonCustomForm): Boolean; + procedure SetShowFullScreenIcon(const AForm: TCommonCustomForm; const AValue: Boolean); + { IFMXWindowBorderService } + function CreateWindowBorder(const AForm: TCommonCustomForm): TWindowBorder; + { IFMXDragDropService } + procedure BeginDragDrop(AForm: TCommonCustomForm; const Data: TDragObject; ABitmap: TBitmap); + { IFMXCursorService } + procedure SetCursor(const ACursor: TCursor); + function GetCursor: TCursor; + { IFMXMouseService } + function GetMousePos: TPointF; + { IFMXTextService } + function GetTextServiceClass: TTextServiceClass; + { IFMXContextService } + procedure RegisterContextClasses; + procedure UnregisterContextClasses; + { IFMXCanvasService } + procedure RegisterCanvasClasses; + procedure UnregisterCanvasClasses; + { IFMXGestureRecognizersService } + procedure AddRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); + procedure RemoveRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); + { IFMXWindowsTouchService } + procedure HookTouchHandler(const AForm: TCommonCustomForm); + procedure UnhookTouchHandler(const AForm: TCommonCustomForm); + + property ImmManager[const Index: TCommonCustomForm]: TImmManager read GetImmManager; + property TimerService: TWinTimerService read FTimerService; + /// Returns additional platform dependent data about fmx form. + property FormInfo[const Index: TCommonCustomForm]: TFormInfo read GetFormInfo; + end; + + TOpenForm = class(TCommonCustomForm); + TTextServiceWin = class; + + TImmManager = class + private + [Weak] FForm: TCommonCustomForm; + function GetFormHandle: HWND; + procedure UpdateCompositionAttributes(const AContext: HIMC; const ATextService: TTextServiceWin); + procedure UpdateCompositionCursorPos(const AContext: HIMC; const ATextService: TTextServiceWin); + procedure ProcessImeParameters(const AContext: HIMC; const AParameters: LPARAM; const ATextService: TTextServiceWin); + protected + procedure WMStartComposition(var Message: TMessage); message WM_IME_STARTCOMPOSITION; + procedure WMComposition(var Message: TMessage); message WM_IME_COMPOSITION; + procedure WMEndComposition(var Message: TMessage); message WM_IME_ENDCOMPOSITION; + procedure WMSetContext(var Message: TMessage); message WM_IME_SETCONTEXT; + procedure WMNotify(var Message: TMessage); message WM_IME_NOTIFY; + + function GetComposition(const AContext: HIMC): string; + function GetResultComposition(const AContext: HIMC): string; + public + constructor Create(const AForm: TCommonCustomForm); + + function UpdateIMEWindowPosition: LRESULT; + + property Form: TCommonCustomForm read FForm; + property FormHandle: HWND read GetFormHandle; + end; + +{ Text Service } + + TTextServiceWin = class(TTextService) + private const + LCID_Korean_Default = (SUBLANG_KOREAN shl 10) + LANG_KOREAN; + private + FMarkedText: string; + FIsInputting: Boolean; + FMarkedTextCursorPosition: Integer; + procedure SetMarkedTextCursorPosition(const Value: Integer); + procedure RecreateImmContext(const AFormHandle: TWindowHandle); + procedure Reset; + protected + procedure MarkedTextPositionChanged; override; + procedure CaretPositionChanged; override; + function GetMarketTextAttributes: TArray; override; + public + CompAttrBuf: array of Byte; + + procedure InternalSetMarkedText(const AMarkedText: string); override; + function InternalGetMarkedText: string; override; + procedure InternalStartIMEInput; + procedure InternalEndIMEInput; + + procedure RefreshImePosition; override; + + function TargetClausePosition: TPoint; override; + + procedure EnterControl(const AFormHandle: TWindowHandle); override; + procedure ExitControl(const AFormHandle: TWindowHandle); override; + + function HasMarkedText: Boolean; override; + + { Deprecated } + procedure DrawSingleLine(const ACanvas: TCanvas; const ARect: TRectF; const AFirstVisibleChar: Integer; + const AFont: TFont; const AOpacity: Single; const AFlags: TFillTextFlags; const ATextAlign: TTextAlign; + const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); overload; override; + procedure DrawSingleLine(const ACanvas: TCanvas; const S: string; const ARect: TRectF; const Font: TFont; + const AOpacity: Single; const Flags: TFillTextFlags; const ATextAlign: TTextAlign; + const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); overload; override; + + /// Returns caret position in MarkedText bounds. + property MarkedTextCursorPosition: Integer read FMarkedTextCursorPosition write SetMarkedTextCursorPosition; + end; + +var + VirtualKeyboardWin: TWinVirtualKeyboard; + MultiDisplayWin: TWinMultiDisplay; + MenuServiceWin: TWinMenuService; + +const + CF_FMOBJECT = CF_PRIVATEFIRST + 1; + +var + WindowAtom: TAtom; + WindowAtomString: string; + PlatformWin: TPlatformWin; + CapturedGestureControl: TComponent; + +function PxToDp(const AValue: TPoint): TPointF; +begin + if MultiDisplayWin = nil then + Result := AValue + else + Result := MultiDisplayWin.PxToDp(AValue); +end; + +function DpToPx(const AValue: TPointF): TPoint; +begin + if MultiDisplayWin = nil then + Result := AValue.Truncate + else + Result := MultiDisplayWin.DpToPx(AValue); +end; + +procedure DisableProcessWindowsGhosting; +var + DisableProcessWindowsGhostingProc: procedure; +begin + DisableProcessWindowsGhostingProc := GetProcAddress(GetModuleHandle('user32.dll'), 'DisableProcessWindowsGhosting'); + if Assigned(DisableProcessWindowsGhostingProc) then + DisableProcessWindowsGhostingProc; +end; + +procedure RegisterCorePlatformServices; +var + MetricsService: TWinMetricsServices; +begin + PlatformWin := TPlatformWin.Create; + TPlatformServices.Current.AddPlatformService(IFMXApplicationService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXTimerService, PlatformWin.TimerService); + TPlatformServices.Current.AddPlatformService(IFMXWindowService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXWindowConstraintsService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXDragDropService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXCursorService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXMouseService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXTextService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXContextService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXCanvasService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXWindowBorderService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXLoggingService, TWinLoggerService.Create); + TPlatformServices.Current.AddPlatformService(IFMXFullScreenWindowService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXGestureRecognizersService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXWindowsTouchService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXKeyMappingService, PlatformWin); + TPlatformServices.Current.AddPlatformService(IFMXDeviceService, TWinDeviceServices.Create); + TPlatformServices.Current.AddPlatformService(IFMXSaveStateService, TWinSaveStateService.Create); + + MetricsService := TWinMetricsServices.Create; + TPlatformServices.Current.AddPlatformService(IFMXLocaleService, MetricsService); + TPlatformServices.Current.AddPlatformService(IFMXDefaultMetricsService, MetricsService); + TPlatformServices.Current.AddPlatformService(IFMXSystemInformationService, MetricsService); + TPlatformServices.Current.AddPlatformService(IFMXSystemFontService, MetricsService); + TPlatformServices.Current.AddPlatformService(IFMXListingService, MetricsService); + + VirtualKeyboardWin := TWinVirtualKeyboard.Create; + TPlatformServices.Current.AddPlatformService(IFMXVirtualKeyboardService, VirtualKeyboardWin); + + MultiDisplayWin := TWinMultiDisplay.Create; + TPlatformServices.Current.AddPlatformService(IFMXMultiDisplayService, MultiDisplayWin); + TPlatformServices.Current.AddPlatformService(IFMXScreenService, MultiDisplayWin); + TPlatformServices.Current.AddPlatformService(IFMXDeviceMetricsService, MultiDisplayWin); + + MenuServiceWin := TWinMenuService.Create; + TPlatformServices.Current.AddPlatformService(IFMXMenuService, MenuServiceWin); + + // If application becomes inactive while a modal dialog is opened it may hang, so we have to DisableProcessWindowsGhosting + DisableProcessWindowsGhosting; +end; + +procedure UnregisterCorePlatformServices; +begin + TPlatformServices.Current.RemovePlatformService(IFMXMenuService); + TPlatformServices.Current.RemovePlatformService(IFMXDeviceService); + TPlatformServices.Current.RemovePlatformService(IFMXDeviceMetricsService); + TPlatformServices.Current.RemovePlatformService(IFMXApplicationService); + TPlatformServices.Current.RemovePlatformService(IFMXSystemFontService); + TPlatformServices.Current.RemovePlatformService(IFMXTimerService); + TPlatformServices.Current.RemovePlatformService(IFMXWindowConstraintsService); + TPlatformServices.Current.RemovePlatformService(IFMXWindowService); + TPlatformServices.Current.RemovePlatformService(IFMXDragDropService); + TPlatformServices.Current.RemovePlatformService(IFMXCursorService); + TPlatformServices.Current.RemovePlatformService(IFMXMouseService); + TPlatformServices.Current.RemovePlatformService(IFMXScreenService); + TPlatformServices.Current.RemovePlatformService(IFMXLocaleService); + TPlatformServices.Current.RemovePlatformService(IFMXTextService); + TPlatformServices.Current.RemovePlatformService(IFMXContextService); + TPlatformServices.Current.RemovePlatformService(IFMXCanvasService); + TPlatformServices.Current.RemovePlatformService(IFMXWindowBorderService); + TPlatformServices.Current.RemovePlatformService(IFMXSystemInformationService); + TPlatformServices.Current.RemovePlatformService(IFMXFullScreenWindowService); + TPlatformServices.Current.RemovePlatformService(IFMXVirtualKeyboardService); + TPlatformServices.Current.RemovePlatformService(IFMXDefaultMetricsService); + TPlatformServices.Current.RemovePlatformService(IFMXLoggingService); + TPlatformServices.Current.RemovePlatformService(IFMXListingService); + TPlatformServices.Current.RemovePlatformService(IFMXSaveStateService); + TPlatformServices.Current.RemovePlatformService(IFMXGestureRecognizersService); + TPlatformServices.Current.RemovePlatformService(IFMXWindowsTouchService); + TPlatformServices.Current.RemovePlatformService(IFMXDefaultMetricsService); + TPlatformServices.Current.RemovePlatformService(IFMXKeyMappingService); +end; + +procedure RaiseIfNil(const AObject: TObject; const AArgumentName: string); +begin + if AObject = nil then + raise EArgumentException.CreateFmt(SParamIsNil, [AArgumentName]); +end; + +{ TPlatformWin } + +constructor TPlatformWin.Create; +begin + inherited; + FIsOutApplicationHWND := False; + WindowAtomString := Format('FIREMONKEY%.8X', [GetCurrentProcessID]); + WindowAtom := GlobalAddAtomW(PChar(WindowAtomString)); + + FFullScreenSupport := TDictionary.Create; + FInPaintUpdateRects := TDictionary.Create; + FThreadSyncHandle := AllocateHWnd(ThreadSync); + FKeyMapping := TKeyMapping.Create; + FAcceleratorKeyRegistry := TWinAcceleratorKeyRegistry.Create; + System.Classes.WakeMainThread := WakeMainThread; + Application := TApplication.Create(nil); + FCaptionChangedId := TMessageManager.DefaultManager.SubscribeToMessage(TMainCaptionChangedMessage, + CaptionChangedHandler); + FRunning := False; + + FImmManagers := TObjectDictionary.Create([doOwnsValues]); + FFormsInfo := TObjectDictionary.Create([doOwnsValues]); + FTimerService := TWinTimerService.Create; +end; + +destructor TPlatformWin.Destroy; +begin + TMessageManager.DefaultManager.Unsubscribe(TMainCaptionChangedMessage, FCaptionChangedId); + FreeAndNil(FFormsInfo); + FreeAndNil(FImmManagers); + FreeAndNil(Application); + FInPaintUpdateRects.Free; + FFullScreenSupport.Free; + FAcceleratorKeyRegistry := nil; + FTimerService := nil; + FKeyMapping.Free; + GlobalDeleteAtom(WindowAtom); + + if FThreadSyncHandle <> 0 then + DeallocateHWnd(FThreadSyncHandle); + if PlatformWin = Self then + PlatformWin := nil; + inherited; +end; + +{ App } + +{$WARN SYMBOL_PLATFORM OFF} +procedure TPlatformWin.Run; +var + MainForm: TCommonCustomForm; +begin + FRunning := True; + Application.RealCreateForms; + UpdateAppTitle; + if Application.MainForm <> nil then + begin + MainForm := Application.MainForm; + case CmdShow of + SW_SHOWMINNOACTIVE: + MainForm.WindowState := TWindowState.wsMinimized; + SW_SHOWMAXIMIZED: + MainForm.WindowState := TWindowState.wsMaximized; + end; + end; + + repeat + try + Application.HandleMessage; + except + Application.HandleException(Self); + end; + until Application.Terminated; +end; +{$WARN SYMBOL_PLATFORM DEFAULT} + +function TPlatformWin.Terminating: Boolean; +begin + Result := FTerminating; +end; + +function TPlatformWin.Running: Boolean; +begin + Result := FRunning; +end; + +procedure TPlatformWin.Terminate; +begin + FRunning := False; + FTerminating := True; + FIsPostQuitMessage := True; + TMessageManager.DefaultManager.SendMessage(nil, TApplicationTerminatingMessage.Create); + + FMultiTouchManager.Free; // release multitouch early so that it does not hold reference to services + + // We don't need destroy application handle, if we receive it from out through ApplicationHWNDProc. + if IsLibrary and FIsOutApplicationHWND and (FApplicationHWND <> 0) then + begin + WinApi.Windows.DestroyWindow(FApplicationHWND); + FApplicationHWND := 0; + end; +end; + +function TPlatformWin.HandleMessage: Boolean; +var + Msg: TMsg; +begin + Result := False; + if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then + begin + Result := True; + if Msg.Message <> WM_QUIT then + begin + TranslateMessage(Msg); + DispatchMessage(Msg); + if FIsPostQuitMessage then + PostQuitMessage(0); + end + else + Application.Terminated := True; + end; +end; + +procedure TPlatformWin.WaitMessage; +begin + Winapi.Windows.WaitMessage; +end; + +function TPlatformWin.GetDefaultTitle: string; +begin + Result := FDefaultTitle; +end; + +function TPlatformWin.GetTitle: string; +begin + Result := FTitle; +end; + +procedure TPlatformWin.SetTitle(const Value: string); +begin + if FTitle <> Value then + begin + if (Value = SAppDefault) and (FDefaultTitle <> '') then + FTitle := FDefaultTitle + else + FTitle := Value; + UpdateAppTitle; + end; +end; + +function TPlatformWin.GetVersionString: string; +const + UndefinedVersionInfo = Cardinal(-1); +var + VersionInfo: Cardinal; +begin + VersionInfo := GetFileVersion(ParamStr(0)); + if VersionInfo <> UndefinedVersionInfo then + Result := Format('%d.%d', [HiWord(VersionInfo), LoWord(VersionInfo)]) + else + Result := string.Empty; +end; + +procedure TPlatformWin.UpdateApplicationHwnd; +var + OldApplicationHandler: HWND; +begin + OldApplicationHandler := FApplicationHWND; + + // The first, we try to extract application handle from IDE. + if Assigned(FApplicationHWNDProc) then + begin + FApplicationHWND := FApplicationHWNDProc; + FIsOutApplicationHWND := FApplicationHWND <> 0; + end; + + // If IDE or user doesn't set outter application handle, we create our own, if it wasn't created before. + if FApplicationHWND = 0 then + begin + FApplicationHWND := CreateAppHandle; + FIsOutApplicationHWND := False; + end; + + if OldApplicationHandler <> FApplicationHWND then + UpdateAppTitle; +end; + +procedure TPlatformWin.UpdateAppTitle; +begin + if FApplicationHWND <> 0 then + begin + { Don't update the title when working in the IDE } + if (Application <> nil) and (Application.MainForm <> nil) and ((FTitle = SAppDefault) or + (FTitle = GetDefaultTitle)) then + SetWindowText(FApplicationHWND, PChar(Application.MainForm.Caption)) + else if FTitle.IsEmpty then + SetWindowText(FApplicationHWND, PChar(GetDefaultTitle)) + else + SetWindowText(FApplicationHWND, PChar(FTitle)); + end; +end; + +procedure TPlatformWin.CaptionChangedHandler(const Sender: TObject; const Msg: System.Messaging.TMessage); +begin + UpdateAppTitle; +end; + +procedure TPlatformWin.WakeMainThread(Sender: TObject); +begin + PostMessage(FThreadSyncHandle, WM_NULL, 0, 0); +end; + +{ Text Service } + +function TTextServiceWin.GetMarketTextAttributes: TArray; +var + I: Integer; +begin + if FMarkedText.IsEmpty or (Length(CompAttrBuf) = 0) then + begin + Result := []; + Exit; + end; + + SetLength(Result, FMarkedText.Length); + for I := 0 to FMarkedText.Length - 1 do + case CompAttrBuf[I] of + ATTR_INPUT: + Result[I] := TMarkedTextAttribute.Input; + ATTR_TARGET_CONVERTED: + Result[I] := TMarkedTextAttribute.TargetConverted; + ATTR_CONVERTED: + Result[I] := TMarkedTextAttribute.Converted; + ATTR_TARGET_NOTCONVERTED: + Result[I] := TMarkedTextAttribute.TargetNotConverted; + ATTR_INPUT_ERROR: + Result[I] := TMarkedTextAttribute.InputError; + end; +end; + +procedure TTextServiceWin.SetMarkedTextCursorPosition(const Value: Integer); +begin + FMarkedTextCursorPosition := Value; +end; + +procedure TTextServiceWin.InternalSetMarkedText(const AMarkedText: string); +var + TextInput: ITextInput; +begin + if FIsInputting and Supports(Owner, ITextInput, TextInput) then + begin + FMarkedText := AMarkedText; + FMarkedTextCursorPosition := EnsureRange(FMarkedTextCursorPosition, 0, FMarkedText.Length); + TextInput.IMEStateUpdated; + end; +end; + +procedure TTextServiceWin.InternalStartIMEInput; +var + TextInput: ITextInput; +begin + if not FIsInputting and Supports(Owner, ITextInput, TextInput) then + begin + FIsInputting := True; + Reset; + TextInput.StartIMEInput; + end; +end; + +procedure TTextServiceWin.MarkedTextPositionChanged; +begin + inherited; + if FIsInputting then + RefreshImePosition; +end; + +procedure TTextServiceWin.RecreateImmContext(const AFormHandle: TWindowHandle); +var + IMC: HIMC; + OldIMC: HIMC; + WindowHandle: HWND; +begin + // Our styled controls doesn't have window handle, so form shares IMM context between all text styled controls. + // It leads to issues in IMM with keeping in memory previous IMM composition string, when user switches focus + // between out styled text input controls. Even if we rest composition string by ImmSetCompositionString, + // OS sends WM_IME_COMPOSITION notification message with the previous composition string and this behavior + // is different, when user uses different IMM provides. So the recreating context guarantees blank IME context + // without previous states. + + WindowHandle := WindowHandleToPlatform(AFormHandle).Wnd; + IMC := ImmCreateContext; + OldIMC := ImmAssociateContext(WindowHandle, IMC); + ImmDestroyContext(OldIMC); + ImmReleaseContext(WindowHandle, IMC); +end; + +procedure TTextServiceWin.RefreshImePosition; + + function FindForm: TCommonCustomForm; + var + TmpObject: TFmxObject; + begin + TmpObject := Owner.GetObject; + while (TmpObject <> nil) and not (TmpObject is TCommonCustomForm) do + TmpObject := TmpObject.Parent; + + if TmpObject is TCommonCustomForm then + Result := TCommonCustomForm(TmpObject) + else + Result := nil; + end; + +var + Form: TCommonCustomForm; +begin + inherited; + Form := FindForm; + if Form <> nil then + PlatformWin.ImmManager[Form].UpdateIMEWindowPosition; +end; + +procedure TTextServiceWin.Reset; +begin + CompAttrBuf := nil; + FMarkedText := string.Empty; + FMarkedTextCursorPosition := 0; +end; + +function TTextServiceWin.InternalGetMarkedText: string; +begin + Result := FMarkedText; +end; + +procedure TTextServiceWin.CaretPositionChanged; +begin + inherited; + if FIsInputting then + RefreshImePosition; +end; + +function TTextServiceWin.TargetClausePosition: TPoint; +begin + Result := CaretPosition; + Result.X := Result.X + MarkedTextCursorPosition; +end; + +procedure TTextServiceWin.InternalEndIMEInput; +var + TextInput: ITextInput; +begin + if FIsInputting and Supports(Owner, ITextInput, TextInput) then + begin + FIsInputting := False; + FMarkedTextCursorPosition := 0; + TextInput.EndIMEInput; + FMarkedText := string.Empty; + end; +end; + +procedure TTextServiceWin.EnterControl(const AFormHandle: TWindowHandle); +var + WindowHandle: HWND; +begin + RaiseIfNil(AFormHandle, 'AFormHandle'); + + WindowHandle := WindowHandleToPlatform(AFormHandle).Wnd; + if TPlatformServices.Current.SupportsPlatformService(IFMXWBService) then + SetFocus(WindowHandle); + + if ImeMode <> TImeMode.imDisable then + RecreateImmContext(AFormHandle); + TImeModeHelper.SetIme(WindowHandle, ImeMode); +end; + +procedure TTextServiceWin.ExitControl(const AFormHandle: TWindowHandle); +begin + RaiseIfNil(AFormHandle, 'AFormHandle'); + + if ImeMode <> TImeMode.imDisable then + RecreateImmContext(AFormHandle); + + Reset; + TImeModeHelper.ResetIme(WindowHandleToPlatform(AFormHandle).Wnd, ImeMode); +end; + +procedure TTextServiceWin.DrawSingleLine(const ACanvas: TCanvas; const ARect: TRectF; const AFirstVisibleChar: Integer; + const AFont: TFont; const AOpacity: Single; const AFlags: TFillTextFlags; const ATextAlign: TTextAlign; + const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); +var + S: string; +begin + S := CombinedText; + S := S.Substring(AFirstVisibleChar - 1, S.Length - AFirstVisibleChar + 1); + DrawSingleLine(ACanvas, S, ARect, AFont, AOpacity, AFlags, ATextAlign, AVTextAlign, AWordWrap); +end; + +procedure TTextServiceWin.DrawSingleLine(const ACanvas: TCanvas; const S: string; const ARect: TRectF; const Font: TFont; + const AOpacity: Single; const Flags: TFillTextFlags; const ATextAlign: TTextAlign; + const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); + + procedure UnderlineRegion(const ARegions: TRegion); + var + I: Integer; + Region: TRectF; + HalfThickness: Single; + StartPoint, EndPoint: TPointF; + begin + HalfThickness := ACanvas.Stroke.Thickness / 2; + for I := Low(ARegions) to High(ARegions) do + begin + Region := ACanvas.AlignToPixel(ARegions[I]); + + StartPoint := TPointF.Create(Region.Left, Region.Bottom); + StartPoint.Offset(-HalfThickness, -HalfThickness); + EndPoint := Region.BottomRight; + EndPoint.Offset(-HalfThickness, -HalfThickness); + ACanvas.DrawLine(StartPoint, EndPoint, AOpacity); + end; + end; + + procedure UnderlineMarkedText(const ALayout: TTextLayout; const AAttributes: TArray); + var + SavedState: TCanvasSaveState; + Region: TRegion; + TextRange: TTextRange; + PositionInLine: Integer; + I: Integer; + begin + SavedState := ACanvas.SaveState; + try + ACanvas.Stroke.Assign(ACanvas.Fill); + ACanvas.Stroke.Thickness := 2; + ACanvas.Stroke.Dash := TStrokeDash.Solid; + for I := 0 to FMarkedText.Length - 1 do + begin + case AAttributes[I] of + TMarkedTextAttribute.Input: + begin + ACanvas.Stroke.Thickness := 1; + ACanvas.Stroke.Dash := TStrokeDash.Dash + end; + TMarkedTextAttribute.TargetConverted: + begin + ACanvas.Stroke.Thickness := 2; + ACanvas.Stroke.Dash := TStrokeDash.Solid; + end; + TMarkedTextAttribute.Converted: + begin + ACanvas.Stroke.Thickness := 1; + ACanvas.Stroke.Dash := TStrokeDash.Solid; + end; + TMarkedTextAttribute.TargetNotConverted: + begin + ACanvas.Stroke.Thickness := 4; + ACanvas.Stroke.Dash := TStrokeDash.Solid; + end; + TMarkedTextAttribute.InputError: + begin + ACanvas.Stroke.Thickness := 1; + ACanvas.Stroke.Dash := TStrokeDash.Dot + end; + end; + + // CaretPosition -> MarkedTextPosition + if CaretPosition.X > S.Length - FMarkedText.Length then + PositionInLine := S.Length - FMarkedText.Length + else + PositionInLine := CaretPosition.X; + TextRange := TTextRange.Create(PositionInLine + I, 1); + + Region := ALayout.RegionForRange(TextRange); + UnderlineRegion(Region); + end; + finally + ACanvas.RestoreState(SavedState); + end; + end; + +var + Layout: TTextLayout; + Attributes: TArray; +begin + Layout := TTextLayoutManager.TextLayoutByCanvas(ACanvas.ClassType).Create; + try + Layout.BeginUpdate; + try + Layout.TopLeft := ARect.TopLeft; + Layout.MaxSize := TPointF.Create(ARect.Width, ARect.Height); + Layout.WordWrap := AWordWrap; + Layout.HorizontalAlign := ATextAlign; + Layout.VerticalAlign := AVTextAlign; + Layout.Font := Font; + Layout.Color := ACanvas.Fill.Color; + Layout.Opacity := AOpacity; + Layout.RightToLeft := TFillTextFlag.RightToLeft in Flags; + Layout.Text := S; + finally + Layout.EndUpdate; + end; + Layout.RenderLayout(ACanvas); + + Attributes := GetMarketTextAttributes; + if not FMarkedText.IsEmpty and (Length(Attributes) > 0) then + UnderlineMarkedText(Layout, Attributes); + finally + FreeAndNil(Layout); + end; +end; + +function TTextServiceWin.HasMarkedText: Boolean; +begin + Result := not FMarkedText.IsEmpty; +end; + +function TPlatformWin.GetTextServiceClass: TTextServiceClass; +begin + Result := TTextServiceWin; +end; + +{ Window } + +procedure TWinWindowHandle.ApplyWndBoundsToWnd; +var + CurrentWndRect: TRect; +begin + GetWindowRect(Wnd, CurrentWndRect); + if CurrentWndRect <> FWndBounds then + SetWindowPos(Wnd, 0, FWndBounds.Left, FWndBounds.Top, FWndBounds.Width, FWndBounds.Height, SWP_NOACTIVATE or SWP_NOZORDER); +end; + +procedure TWinWindowHandle.CalcNearestIntegerMultiple; +const + MaxMul = 9; +var + I: Integer; +begin + if not SameValue(Frac(Scale), 0, TEpsilon.Scale) then + begin + FNearestIntegerMultiple := Round(Scale); + for I := 2 to MaxMul do + if SameValue(Frac(Scale * I), 0, TEpsilon.Scale) then + begin + FNearestIntegerMultiple := Trunc(Scale * I); + Break; + end; + end + else + FNearestIntegerMultiple := Round(Scale); +end; + +class procedure TWinWindowHandle.SetForcedScale(const ANewScale: Single); +begin + FForcedScale := Max(1, ANewScale); +end; + +procedure TWinWindowHandle.SetForcedScaleForForm(const ANewScale: Single); +begin + SetForcedScale(ANewScale); + CalcNearestIntegerMultiple; + FWndClientSize := TSizeF.Create(FClientSize.Width * Scale, FClientSize.Height * Scale).Ceiling; + FWndClientSize := RoundWndClientSizeToMatchScale(FWndClientSize); + FClientSize := TSizeF.Create(FWndClientSize.Width / Scale, FWndClientSize.Height / Scale); + ApplyWndClientSizeToWnd; + + if Form <> nil then + Form.RecreateResources; +end; + +constructor TWinWindowHandle.Create(const AForm: TCommonCustomForm; const AWnd: HWND); + + function WndBoundsToBounds(const AWndBounds: TRect): TRectF; + begin + Result.TopLeft := MultiDisplayWin.PXToDP(AWndBounds.TopLeft); + Result.Width := FWndBounds.Width / Scale; + Result.Height := FWndBounds.Height / Scale; + end; + +begin + inherited Create; + FForm := AForm; + FWnd := AWnd; + GetWindowRect(Wnd, FWndBounds); + FBounds := WndBoundsToBounds(FWndBounds); + CalculateClientSizeFromWindow; +end; + +function FindWindow(Handle: HWND): TCommonCustomForm; +begin + Result := nil; + if (Handle <> 0) then + begin + if GlobalFindAtomW(PChar(WindowAtomString)) = WindowAtom then + Result := Pointer(GetProp(Handle, MakeIntAtom(WindowAtom))) + else + Result := nil; + end; +end; + +function FmxHandleToHWND(const FmxHandle: TWindowHandle): HWND; +begin + if FmxHandle <> nil then + Result := WindowHandleToPlatform(FmxHandle).Wnd + else + Result := 0; +end; + +function WindowHandleToPlatform(const AHandle: TWindowHandle): TWinWindowHandle; +begin + Result := TWinWindowHandle(AHandle); +end; + +function FormToHWND(Form: TCommonCustomForm): HWND; +begin + if (Form <> nil) and (Form.Handle is TWinWindowHandle) then + Result := TWinWindowHandle(Form.Handle).Wnd + else + Result := 0; +end; + +function ApplicationHWND: HWND; +begin + if PlatformWin <> nil then + Result := PlatformWin.GetApplicationHWND + else + Result := 0; +end; + +destructor TWinWindowHandle.Destroy; +begin + FreeBuffer; + FreeAndNil(FZOrderManager); + inherited; +end; + +procedure TWinWindowHandle.WMDpiChanged(var AMessage: TWMDpi); +var + NewScale: Single; +begin + NewScale := AMessage.YDpi / StandardDpi; + if not SameValue(FCurrentScale, NewScale, TEpsilon.Scale) then + begin + FCurrentScale := NewScale; + CalcNearestIntegerMultiple; + WndBounds := AMessage.ScaledRect^; + if Form <> nil then + begin + // DPI affects the canvas size and native menu metrics. + Form.RecreateResources; + Form.RecreateOsMenu; + end; + AMessage.Result := 0; + end; +end; + +procedure TWinWindowHandle.CreateBuffer(const Width, Height: Integer); +begin + FreeBuffer; + FBufferSize := TSize.Create(Width, Height); + FBitmapInfo.bmiHeader.biSize := SizeOf(TBitmapInfoHeader); + FBitmapInfo.bmiHeader.biPlanes := 1; + FBitmapInfo.bmiHeader.biBitCount := 32; + FBitmapInfo.bmiHeader.biCompression := BI_RGB; + FBitmapInfo.bmiHeader.biWidth := FBufferSize.Width; + if FBitmapInfo.bmiHeader.biWidth <= 0 then + FBitmapInfo.bmiHeader.biWidth := 1; + FBitmapInfo.bmiHeader.biHeight := -FBufferSize.Height; + if FBitmapInfo.bmiHeader.biHeight >= 0 then + FBitmapInfo.bmiHeader.biHeight := -1; + try + FBufferBitmap := CreateDIBSection(0, FBitmapInfo, DIB_RGB_COLORS, Pointer(FBufferBits), 0, 0); + if FBufferBits = nil then + RaiseLastOSError; + try + FBufferHandle := CreateCompatibleDC(0); + if FBufferHandle = 0 then + RaiseLastOSError; + try + if SelectObject(FBufferHandle, FBufferBitmap) = 0 then + RaiseLastOSError; + except + DeleteDC(FBufferHandle); + FBufferHandle := 0; + raise; + end; + except + DeleteObject(FBufferBitmap); + FBufferBits := nil; + raise; + end; + except + FBufferBitmap := 0; + raise; + end; +end; + +procedure TWinWindowHandle.ResizeBuffer(const Width, Height: Integer); +begin + if FBufferHandle = 0 then + CreateBuffer(Width, Height) + else if (FBitmapInfo.bmiHeader.biWidth <> Width) or (Abs(FBitmapInfo.bmiHeader.biHeight) <> Height) then + begin + FreeBuffer; + CreateBuffer(Width, Height) + end; +end; + +function TWinWindowHandle.RoundWndClientSizeToMatchScale(const AWndClientSize: TSize): TSize; + + function GetScale(const AValue: Integer): Single; + begin + if SameValue(Frac(AValue/ Scale), 0, TEpsilon.Scale) then + Result := Scale + else + Result := NearestIntegerMultiple; + end; + +var + LClientSize: TSizeF; + FinalScale: TPointF; +begin + FinalScale.X := GetScale(AWndClientSize.Width); + FinalScale.Y := GetScale(AWndClientSize.Height); + + LClientSize := TSizeF.Create(Round(AWndClientSize.Width / FinalScale.X), Round(AWndClientSize.Height / FinalScale.Y)); // dp + Result.Width := Round(LClientSize.Width * FinalScale.X); // px + Result.Height := Round(LClientSize.Height * FinalScale.Y); // px +end; + +function TWinWindowHandle.RoundWndSizeToMatchScale(const AWndSize: TSize): TSize; +var + WndClientSize: TSize; +begin + WndClientSize := AWndSize - WndBorderSize; // px + WndClientSize := RoundWndClientSizeToMatchScale(WndClientSize); // px + Result := WndClientSize + WndBorderSize; // px +end; + +function TWinWindowHandle.GetClientSize: TSizeF; +var + LRect: TRect; +begin + // We could return the FClientSize here. However, for the rendering process, it is important for us to know exactly + // the actual size. If the form is on HiDPI screen, we use rounding client size for avoiding rendering artefacts. + Winapi.Windows.GetClientRect(Wnd, LRect); + Result := TSizeF.Create(LRect.Width / Scale, LRect.Height / Scale); +end; + +function TWinWindowHandle.GetNearestIntegerMultiple: Integer; +begin + if FNearestIntegerMultiple = 0 then + CalcNearestIntegerMultiple; + Result := FNearestIntegerMultiple; +end; + +procedure TWinWindowHandle.ApplyWndClientSizeToWnd; +var + LWindowRect: TRect; + NewWindowSize: TSize; +begin + GetWindowRect(Wnd, LWindowRect); // px + NewWindowSize := FWndClientSize + WndBorderSize; // px + + if LWindowRect.Size <> NewWindowSize then + begin + LWindowRect.Size := NewWindowSize; + WndBounds := LWindowRect; + end; +end; + +procedure TWinWindowHandle.SetClientSize(const Value: TSizeF); +begin + if FClientSize <> Value then + begin + FClientSize := Value; + FWndClientSize := TSizeF.Create(Value.Width * Scale, Value.Height * Scale).Ceiling; + FWndClientSize := RoundWndClientSizeToMatchScale(FWndClientSize); + + ApplyWndClientSizeToWnd; + if Form <> nil then + TOpenForm(FForm).ResizeHandle; + end; +end; + +function TWinWindowHandle.GetWndBorderSize: TSize; +var + LClientRect, LWindowRect: TRect; +begin + GetClientRect(Wnd, LClientRect); // px + ClientToScreen(Wnd, LClientRect.TopLeft); + ClientToScreen(Wnd, LClientRect.BottomRight); + GetWindowRect(Wnd, LWindowRect); // px + Result := TSize.Create(LWindowRect.Width - LClientRect.Width, LWindowRect.Height - LClientRect.Height); // px; +end; + +function TWinWindowHandle.GetBounds: TRectF; +begin + Result := FBounds; +end; + +procedure TWinWindowHandle.SetBounds(const Value: TRectF); + + function CalculateNewWndBounds: TRect; + begin + Result.TopLeft := MultiDisplayWin.DpToPx(Value.TopLeft); + if FBounds.Width = Value.Width then + Result.Width := FWndBounds.Width + else + Result.Width := Trunc(Value.Width * Scale); + if FBounds.Height = Value.Height then + Result.Height := FWndBounds.Height + else + Result.Height := Trunc(Value.Height * Scale); + end; + +begin + if FBounds <> Value then + begin + FWndBounds := CalculateNewWndBounds; + FBounds := Value; + ApplyWndBoundsToWnd; + CalculateClientSizeFromWindow; + end; +end; + +function TWinWindowHandle.GetWndBounds: TRect; +begin + Result := FWndBounds; +end; + +procedure TWinWindowHandle.SetWndBounds(const Value: TRect); + + function CalculateNewBounds: TRectF; + begin + Result.TopLeft := MultiDisplayWin.PxToDp(Value.TopLeft); + if FWndBounds.Width = Value.Width then + Result.Width := FBounds.Width + else + Result.Width := Value.Width / Scale; + if FWndBounds.Height = Value.Height then + Result.Height := FBounds.Height + else + Result.Height := Value.Height / Scale; + end; + +begin + if FWndBounds <> Value then + begin + FBounds := CalculateNewBounds; + FWndBounds := Value; + ApplyWndBoundsToWnd; + CalculateClientSizeFromWindow; + end; +end; + +function TWinWindowHandle.GetWndClientSize: TSize; +begin + Result := FWndClientSize; +end; + +procedure TWinWindowHandle.FreeBuffer; +begin + if FBufferHandle <> 0 then + begin + DeleteDC(FBufferHandle); + FBufferHandle := 0; + end; + if FBufferBitmap <> 0 then + begin + DeleteObject(FBufferBitmap); + FBufferBitmap := 0; + end; +end; + +function TWinWindowHandle.GetScale: Single; +begin + if not SameValue(FForcedScale, 0, TEpsilon.Scale) then + Result := FForcedScale + else if not SameValue(FCurrentScale, 0, TEpsilon.Scale) then + Result := FCurrentScale + else + Result := GetWndScale(FWnd); + + FCurrentScale := Result; +end; + +function TWinWindowHandle.GetTransparency: Boolean; +begin + Result := (Form <> nil) and Form.Transparency; +end; + +function TWinWindowHandle.GetZOrderManager: TWinZOrderManager; +begin + if FZOrderManager = nil then + FZOrderManager := TWinZOrderManager.Create(Self); + Result := FZOrderManager; +end; + +procedure TWinWindowHandle.CalculateClientSizeFromWindow; +var + NewWndClientSize: TRect; + WasResized: Boolean; +begin + GetClientRect(Wnd, NewWndClientSize); // px + WasResized := FWndClientSize <> NewWndClientSize.Size; + FWndClientSize := NewWndClientSize.Size; + FClientSize := TSizeF.Create(FWndClientSize.Width / Scale, FWndClientSize.Height / Scale); + + if WasResized and FForm.IsHandleAllocated then + TOpenForm(FForm).ResizeHandle; +end; + +procedure TWinWindowHandle.UpdateLayer; +var + Blend: TBlendFunction; + Origin, Size, BitmapOrigin: TPoint; + ContextObject: IContextObject; +begin + if FBufferHandle <> 0 then + begin + { Copy from Context } + if Supports(Form, IContextObject, ContextObject) and (ContextObject.Context <> nil) then + ContextObject.Context.CopyToBits(FBufferBits, Form.Width * 4, Rect(0, 0, Form.Width, Form.Height)); + { Update } + Origin := WindowHandleToPlatform(Form.Handle).WndBounds.TopLeft; + Size := TPoint(FBufferSize); + Blend.BlendOp := AC_SRC_OVER; + Blend.AlphaFormat := $01; // AC_SRC_ALPHA; + Blend.BlendFlags := 0; + Blend.SourceConstantAlpha := $FF; + BitmapOrigin := Point(0, 0); + UpdateLayeredWindow(Wnd, 0, @Origin, @Size, FBufferHandle, @BitmapOrigin, $00000000, @Blend, ULW_ALPHA); + end; +end; + +function TWinWindowHandle.FormToWnd(const Rect: TRectF): TRectF; +begin + Result := TRectF.Create(Rect.Left * Scale, Rect.Top * Scale, Rect.Right * Scale, Rect.Bottom * Scale); +end; + +function TWinWindowHandle.WndToForm(const Rect: TRect): TRectF; +begin + Result := WndToForm(TRectF.Create(Rect)); +end; + +procedure TWinWindowHandle.WMWindowPosChanging(var AMessage: TWMWindowPosChanging); + + function IsResized(const AWindowPos: PWindowPos): Boolean; + begin + Result := (AWindowPos^.Flags and SWP_NOSIZE) <> SWP_NOSIZE; + end; + +var + WindowPos: PWindowPos; + AdjustedWndSize: TSize; +begin + // We need to round the window size based on the current screen scaling factor for avoiding issue + // with rounding in rendering process. + WindowPos := AMessage.WindowPos; + if IsResized(WindowPos) then + begin + AdjustedWndSize := TSize.Create(WindowPos^.cx, WindowPos^.cy); // px + AdjustedWndSize := RoundWndSizeToMatchScale(AdjustedWndSize); // px + WindowPos^.cx := AdjustedWndSize.Width; // px + WindowPos^.cy := AdjustedWndSize.Height; // px + end; +end; + +procedure TWinWindowHandle.WMWindowPosChanged(var AMessage: TWMWindowPosChanged); +var + WindowPos: PWindowPos; +begin + WindowPos := AMessage.WindowPos; + if (WindowPos^.Flags and SWP_NOSIZE = 0) or (WindowPos^.Flags and SWP_NOMOVE = 0) then + begin + WndBounds := TRect.Create(TPoint.Create(WindowPos^.x, WindowPos^.y), WindowPos^.cx, WindowPos^.cy); + if Form <> nil then + Form.SetBoundsF(Bounds); + end; +end; + +procedure TWinWindowHandle.WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); +var + LMinMaxInfo: PMinMaxInfo; + MinSize: TSize; + MaxSize: TSize; +begin + if csReading in Form.ComponentState then + Exit; + + LMinMaxInfo := Message.MinMaxInfo; + // Calculating constraints based on rounding ClientSize. + MinSize := TSize.Create(Trunc(Form.Constraints.MinWidth * Scale), Trunc(Form.Constraints.MinHeight * Scale)); + MinSize := RoundWndSizeToMatchScale(MinSize); + MaxSize := TSize.Create(Trunc(Form.Constraints.MaxWidth * Scale), Trunc(Form.Constraints.MaxHeight * Scale)); + MaxSize := RoundWndSizeToMatchScale(MaxSize); + + if Form.Constraints.MinWidth > 0 then + LMinMaxInfo^.ptMinTrackSize.x := MinSize.Width; + + if Form.Constraints.MinHeight > 0 then + LMinMaxInfo^.ptMinTrackSize.y := MinSize.Height; + + if Form.Constraints.MaxWidth > 0 then + LMinMaxInfo^.ptMaxTrackSize.x := MaxSize.Width; + + if Form.Constraints.MaxHeight > 0 then + LMinMaxInfo^.ptMaxTrackSize.y := MaxSize.Height; +end; + +procedure TWinWindowHandle.WMSize(var AMessage: TWMSize); +begin + CalculateClientSizeFromWindow; +end; + +function TWinWindowHandle.WndToForm(const Rect: TRectF): TRectF; +begin + Result := TRectF.Create(Rect.Left / Scale, Rect.Top / Scale, Rect.Right / Scale, Rect.Bottom / Scale); +end; + +function WMPaint(HWND: HWND; uMsg: UINT; wParam: wParam; LPARAM: LPARAM): LRESULT; stdcall; +var + I, rgnStatus: Integer; + Region: HRgn; + RegionSize: DWORD; + RegionData: PRgnData; + R: TRect; + LForm: TCommonCustomForm; + UpdateRects, InPaintUpdateRects: TUpdateRects; + PS: TPaintStruct; + Wnd: Winapi.Windows.HWND; + PaintControl: IPaintControl; +begin + LForm := FindWindow(HWND); + if LForm <> nil then + begin + Wnd := FormToHWND(LForm); + GetUpdateRect(Wnd, R, False); + Region := CreateRectRgn(R.Left, R.Top, R.Right, R.Bottom); + if Region <> 0 then + try + rgnStatus := GetUpdateRgn(Wnd, Region, False); + if rgnStatus in [SIMPLEREGION, COMPLEXREGION] then + begin + RegionSize := GetRegionData(Region, $FFFF, nil); + if RegionSize > 0 then + begin + GetMem(RegionData, RegionSize); + try + if RegionSize = GetRegionData(Region, RegionSize, RegionData) then + begin + SetLength(UpdateRects, RegionData.rdh.nCount); + for I := 0 to RegionData.rdh.nCount - 1 do + UpdateRects[I] := WindowHandleToPlatform(LForm.Handle).WndToForm(PRgnRects(@RegionData.buffer[0])[I]); + end; + finally + FreeMem(RegionData, RegionSize); + end; + if Supports(LForm, IPaintControl, PaintControl) then + begin + PaintControl.ContextHandle := BeginPaint(Wnd, PS); + try + if PlatformWin.FInPaintUpdateRects.TryGetValue(LForm.Handle, InPaintUpdateRects) and + (Length(InPaintUpdateRects) > 0) then + begin + // add update rects from FInPaintUpdateRects + for I := 0 to High(InPaintUpdateRects) do + begin + SetLength(UpdateRects, Length(UpdateRects) + 1); + UpdateRects[High(UpdateRects)] := WindowHandleToPlatform(LForm.Handle).WndToForm(InPaintUpdateRects[I]); + end; + end; + PaintControl.PaintRects(UpdateRects); + if PlatformWin.FInPaintUpdateRects.TryGetValue(LForm.Handle, InPaintUpdateRects) and + (Length(InPaintUpdateRects) > 0) then + begin + // paint second time - when Repaint called in painting + PlatformWin.FInPaintUpdateRects.TryGetValue(LForm.Handle, UpdateRects); + SetLength(InPaintUpdateRects, 0); + PlatformWin.FInPaintUpdateRects.AddOrSetValue(LForm.Handle, InPaintUpdateRects); + PaintControl.PaintRects(UpdateRects); + end; + PaintControl.ContextHandle := 0; + finally + EndPaint(Wnd, PS); + end; + end; + end; + end; + finally + DeleteObject(Region); + end; + Result := DefWindowProc(HWND, uMsg, wParam, LPARAM); + end + else + Result := DefWindowProc(HWND, uMsg, wParam, LPARAM); +end; + +// When the WM_GESTURENOTIFY message is received, use SetGestureConfig to specify the gestures to receive. +// This message should always be bubbled up using the DefWindowProc function. +procedure WMGestureNotify(const AForm: TCommonCustomForm; uMsg: UINT; AGestureNotify: LPARAM); +const + // Gestures + CPan: array [Boolean] of Cardinal = (0, GC_PAN); + CZoom: array [Boolean] of Cardinal = (0, GC_ZOOM); + CRotate: array [Boolean] of Cardinal = (0, GC_ROTATE); + CPressAndTap: array [Boolean] of Cardinal = (0, GC_PRESSANDTAP); + CTwoFingerTap: array [Boolean] of Cardinal = (0, GC_TWOFINGERTAP); +var + ScreenPointPx: TPoint; + ScreenPointDp: TPointF; + LControl: TComponent; + LConfigs: array of TGestureConfig; + LGestures: TInteractiveGestures; + LObj: IControl; + LGObj: IGestureControl; + LGestureNotify: ^GESTURENOTIFYSTRUCT; +begin + LGestureNotify := Pointer(AGestureNotify); + + // Get the location of the gesture. + ScreenPointPx := SmallPointToPoint(LGestureNotify.ptsLocation); // px + ScreenPointDp := MultiDisplayWin.PxToDp(ScreenPointPx); // dp + + // Find the object that the gesture belongs to. + LObj := AForm.ObjectAtPoint(ScreenPointDp); + if LObj = nil then + LControl := AForm + else + LControl := LObj.GetObject; + + if Supports(LControl, IGestureControl, LGObj) then + LGestures := LGObj.GetListOfInteractiveGestures; + + SetLength(LConfigs, 5); + ZeroMemory(@LConfigs[0], SizeOf(GestureConfig) * 5); + + // Pan gesture & options + LConfigs[0].dwID := GID_PAN; + LConfigs[0].dwWant := CPan[TInteractiveGesture.Pan in LGestures] or GC_PAN_WITH_SINGLE_FINGER_VERTICALLY or + GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY or GC_PAN_WITH_INERTIA; + LConfigs[0].dwBlock := CPan[not (TInteractiveGesture.Pan in LGestures)] or GC_PAN_WITH_GUTTER; + + // Zoom gesture + LConfigs[1].dwID := GID_ZOOM; + LConfigs[1].dwWant := CZoom[TInteractiveGesture.Zoom in LGestures]; + LConfigs[1].dwBlock := CZoom[not (TInteractiveGesture.Zoom in LGestures)]; + + // Rotate gesture + LConfigs[2].dwID := GID_ROTATE; + LConfigs[2].dwWant := CRotate[TInteractiveGesture.Rotate in LGestures]; + LConfigs[2].dwBlock := CRotate[not (TInteractiveGesture.Rotate in LGestures)]; + + // TwoFingerTap gesture + LConfigs[3].dwID := GID_TWOFINGERTAP; + LConfigs[3].dwWant := CTwoFingerTap[TInteractiveGesture.TwoFingerTap in LGestures]; + LConfigs[3].dwBlock := CTwoFingerTap[not (TInteractiveGesture.TwoFingerTap in LGestures)]; + + // PressAnTap gesture + LConfigs[4].dwID := GID_PRESSANDTAP; + LConfigs[4].dwWant := CPressAndTap[TInteractiveGesture.PressAndTap in LGestures]; + LConfigs[4].dwBlock := CPressAndTap[not (TInteractiveGesture.PressAndTap in LGestures)]; + + SetGestureConfig(FormToHWND(AForm), 0, Length(LConfigs), @LConfigs[0], SizeOf(TGestureConfig)); +end; + +function WMGesture(const AForm: TCommonCustomForm; uMsg: UINT; AParam: wParam; AGestureInfo: LPARAM): LRESULT; + + function PxToDp(const APX: Integer): Single; overload; + begin + Result := APX / AForm.Handle.Scale; + end; + + function PxToDp(const APhysicalPoint: TPointF): TPointF; overload; + begin + Result := APhysicalPoint / AForm.Handle.Scale; + end; + +var + ScreenPointPx: TPoint; + ScreenPointDp: TPointF; + LControl: TComponent; + LGestureInfo: GestureInfo; + EventInfo: TGestureEventInfo; + Obj: IControl; + LGObj: IGestureControl; +begin + Result := 0; + ZeroMemory(@LGestureInfo, SizeOf(LGestureInfo)); + LGestureInfo.cbSize := SizeOf(LGestureInfo); + if GetGestureInfo(AGestureInfo, LGestureInfo) then + try + ZeroMemory(@EventInfo, SizeOf(EventInfo)); + EventInfo.GestureID := LGestureInfo.dwID + igiFirst; + + // Get the control + ScreenPointPx := TPoint.Create(LGestureInfo.ptsLocation.X, LGestureInfo.ptsLocation.Y); // px + ScreenPointDp := MultiDisplayWin.PxToDp(ScreenPointPx); // dp + Obj := AForm.ObjectAtPoint(ScreenPointDp); + if Obj = nil then + LControl := AForm + else + LControl := Obj.GetObject; + + if EventInfo.GestureID = igiBegin then + CapturedGestureControl := LControl; + + // Don't pass GID_BEGIN and GID_END to the control + if (EventInfo.GestureID <> igiBegin) and (EventInfo.GestureID <> igiEnd) then + begin + // Set EventInfo fields from LGestureInfo + EventInfo.Location := AForm.ScreenToClient(ScreenPointDp); + EventInfo.Flags := []; + if LGestureInfo.dwFlags and GF_BEGIN = GF_BEGIN then + Include(EventInfo.Flags, TInteractiveGestureFlag.gfBegin); + if LGestureInfo.dwFlags and GF_INERTIA = GF_INERTIA then + Include(EventInfo.Flags, TInteractiveGestureFlag.gfInertia); + if LGestureInfo.dwFlags and GF_END = GF_END then + Include(EventInfo.Flags, TInteractiveGestureFlag.gfEnd); + case EventInfo.GestureID of + igiPan: + begin + EventInfo.Distance := Trunc(PxToDp(Cardinal(LGestureInfo.ullArguments))); + EventInfo.InertiaVector := PxToDp( + TPointF(SmallPointToPoint(InertiaVectorFromArgument(LGestureInfo.ullArguments)))); + end; + igiZoom, igiTwoFingerTap: + EventInfo.Distance := Cardinal(LGestureInfo.ullArguments); + igiPressAndTap: + begin + // ullArguments is distance/offset. Add to Location to make TapLocation + ScreenPointDp := PxToDp(TPointF(SmallPointToPoint(TSmallPoint(Cardinal(LGestureInfo.ullArguments))))); + // EventInfo.TapLocation := AForm.ScreenToClient(TPointF(ScreenPointDp.X + LGestureInfo.ptsLocation.X, ScreenPointDp.Y + LGestureInfo.ptsLocation.Y)); + end; + igiRotate: + EventInfo.Angle := RotateAngleFromArgument(LGestureInfo.ullArguments); + end; + // send message to the control + if Supports(CapturedGestureControl, IGestureControl, LGObj) then + LGObj.CMGesture(EventInfo); + end + else + Result := DefWindowProc(FormToHWND(AForm), uMsg, AParam, AGestureInfo); + + if EventInfo.GestureID = igiEnd then + CapturedGestureControl := nil; + finally + CloseGestureInfoHandle(AGestureInfo); + end; +end; + +procedure InitializeMultiTouch(const AForm: TCommonCustomForm); +begin + if PlatformWin.FMultiTouchManager = nil then + PlatformWin.FMultiTouchManager := TMultiTouchManagerWin.Create(AForm) + else if PlatformWin.FMultiTouchManager.Parent <> AForm then + PlatformWin.FMultiTouchManager.Parent := AForm; +end; + +function WMTouch(const AForm: TCommonCustomForm; uMsg: UINT; TouchInputCount: wParam; TouchInputInfo: LPARAM): LRESULT; +var + TouchCount: Integer; + Inputs: array of TTouchInput; + Input: TTouchInput; + I: Integer; + Touches: TTouches; + Action: TTouchAction; + Point: TPointF; + Control: IControl; + MidPoint: TPointF; + FormScale: Single; +begin + Result := 0; + TouchCount := LoWord(Cardinal(TouchInputCount)); + SetLength(Inputs, TouchCount); + Action := TTouchAction.None; + FormScale := AForm.Handle.Scale; + + if GetTouchInputInfo(TouchInputInfo, TouchCount, @Inputs[0], SizeOf(TTouchInput)) then + try + SetLength(Touches, TouchCount); + for I := 0 to TouchCount - 1 do + begin + Input := Inputs[I]; + + if (Input.dwFlags and TOUCHEVENTF_DOWN) <> 0 then + Action := TTouchAction.Down + else if (Input.dwFlags and TOUCHEVENTF_UP) <> 0 then + Action := TTouchAction.Up + else if (Input.dwFlags and TOUCHEVENTF_MOVE) <> 0 then + Action := TTouchAction.Move; + + // TOUCHINFO point coordinates is in 1/100 of a pixel + Point := TPointF.Create(Input.X / 100, Input.Y / 100); // px + Point := Point / FormScale; //dp + + Touches[I].Location := AForm.ScreenToClient(Point); + end; + + if Length(Touches) = 1 then + Control := AForm.ObjectAtPoint(Point) + else if Length(Touches) = 2 then + begin + MidPoint := Touches[0].Location.MidPoint(Touches[1].Location); // dp + Control := AForm.ObjectAtPoint(AForm.ClientToScreen(MidPoint)); + end + else + Control := nil; + + InitializeMultiTouch(AForm); + PlatformWin.FMultiTouchManager.SetEnabledGestures(PlatformWin.FEnabledInteractiveGestures); + PlatformWin.FMultiTouchManager.HandleTouches(Touches, Action, Control); + Result := DefWindowProc(FormToHWND(AForm), uMsg, TouchInputCount, TouchInputInfo); + finally + CloseTouchInputHandle(TouchInputInfo); + end; +end; + +procedure HandleMouseGestures(const AForm: TCommonCustomForm; uMsg: UINT; const AScreenPoint: TPointF); +var + GestureObj: IGestureControl; + Control: TComponent; + Obj: IControl; + Action: TTouchAction; + ControlLocalPoint: TPointF; +begin + if not TWinTouchGestureEngine.Supported(AForm) then + Exit; + + if not ((uMsg <> WM_LBUTTONDOWN) and (PlatformWin.FMultiTouchManager = nil)) then + begin + Obj := AForm.ObjectAtPoint(AScreenPoint); + if Obj = nil then + begin + Control := AForm; + ControlLocalPoint := AForm.ScreenToClient(AScreenPoint); + end + else + begin + Control := Obj.GetObject; + ControlLocalPoint := Obj.ScreenToLocal(AScreenPoint); + end; + if Supports(Control, IGestureControl, GestureObj) then + begin + Control := GestureObj.GetFirstControlWithGestureEngine; + if Control <> nil then + begin + case uMsg of + WM_MOUSEMOVE: + Action := TTouchAction.Move; + WM_LBUTTONDOWN: + Action := TTouchAction.Down; + WM_LBUTTONUP: + Action := TTouchAction.Up; + else + Action := TTouchAction.None; + end; + + InitializeMultiTouch(AForm); + PlatformWin.FMultiTouchManager.HandleMouseGestures(ControlLocalPoint, Action, Obj); + end; + end; + end; +end; + +var + LastKeyIsDeadKey: Boolean = False; + LastMousePos: TPoint; + +const + ImpossibleMousePosition: TPoint = (X: Low(FixedInt); Y: Low(FixedInt)); + +function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; +var + UpdateRects: array of TRectF; + LForm: TCommonCustomForm; + Wnd: Winapi.Windows.HWND; + WindowBorder: TWindowBorderWin; + + procedure ProcessUpdateMessages; + var + Msg: TMsg; + begin + SetLength(UpdateRects, 1); + UpdateRects[0] := TRectF.Create(TSmallPoint(Cardinal(wParam)).X, TSmallPoint(Cardinal(wParam)).Y, + TSmallPoint(Cardinal(lParam)).X, TSmallPoint(Cardinal(lParam)).Y); + while PeekMessage(Msg, hwnd, WM_ADDUPDATERECT, WM_ADDUPDATERECT, PM_REMOVE) do + begin + if Msg.Message = WM_QUIT then + begin + { Repost WM_QUIT messages } + PostQuitMessage(Msg.wParam); + Break; + end; + SetLength(UpdateRects, Length(UpdateRects) + 1); + UpdateRects[High(UpdateRects)] := RectF(TSmallPoint(Cardinal(Msg.wParam)).X, TSmallPoint(Cardinal(Msg.wParam)).Y, + TSmallPoint(Cardinal(Msg.lParam)).X, TSmallPoint(Cardinal(Msg.lParam)).Y); + end; + end; + + procedure PrepareClosePopups; + begin + if (Screen <> nil) and (LForm <> nil) and not WindowHandleToPlatform(LForm.Handle).FDisableDeactivate then + begin + if LForm.FormStyle = TFormStyle.Popup then + Screen.PrepareClosePopups(LForm) + else + Screen.PrepareClosePopups(nil); + end; + end; + + procedure ClosePopupList; + begin + if (Screen <> nil) and (LForm <> nil) and not WindowHandleToPlatform(LForm.Handle).FDisableDeactivate then + Screen.ClosePopupForms; + end; + + procedure InitialActionsOfPopups; + begin + case uMsg of + WM_NCLBUTTONDOWN, WM_NCRBUTTONDOWN, WM_NCMBUTTONDOWN, WM_NCLBUTTONDBLCLK, WM_NCRBUTTONDBLCLK, WM_NCMBUTTONDBLCLK: + begin + PrepareClosePopups; + ClosePopupList; + end; + WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MBUTTONDOWN, WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK, WM_MBUTTONDBLCLK: + PrepareClosePopups; + end; + end; + + procedure FinalActionsOfPopups; + begin + case uMsg of + WM_LBUTTONUP, WM_RBUTTONUP, WM_MBUTTONUP, WM_DESTROY: + begin + LForm := FindWindow(hwnd); + ClosePopupList; + end; + end; + end; + + function DispatchMouseWheelToPopups: Boolean; + var + I: Integer; + Handled: Boolean; + begin + Handled := False; + if Screen <> nil then + for I := Screen.PopupFormCount - 1 downto 0 do + if Screen.PopupForms[I].Visible then + begin + Screen.PopupForms[I].MouseWheel(KeysToShiftState(wParam), TSmallPoint(Cardinal(wParam)).Y, Handled); + if Handled then + Break; + end; + Result := Handled; + end; + + procedure CurrentChar(Msg: tagMsg; var Key: Word; var Ch: WideChar; var Shift: TShiftState); + begin + Key := wParam; + Ch := WideChar(Msg.wParam); + Shift := KeyDataToShiftState(lParam); + if (Ch >= ' ') then + begin + if ((Shift * [ssAlt, ssCtrl]) = [ssAlt, ssCtrl]) then + begin + // AltGr + Char (in German keyboard) + Shift := Shift - [ssAlt, ssCtrl]; + end; + if (([ssAlt, ssCtrl, ssCommand] * Shift) = []) then + Key := 0; + end; + if ((([ssAlt, ssCtrl, ssCommand] * Shift) <> []) or (Ch < ' ')) and (Key > 0) then + Ch := #0; + end; + + function FormPxToDp(const AForm: TCommonCustomForm; const APoint: TPoint): TPointF; + var + LScale: Single; + begin + LScale := AForm.Handle.Scale; + Result := (TPointF(APoint) / LScale).Round; + end; + +const + FlagZOrder: UINT = SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE; +var + P: TPoint; + H: Boolean; + Key: Word; + Ch: WideChar; + tme: TTRACKMOUSEEVENT; + Message: TMessage; + Shift: TShiftState; + Placement: TWindowPlacement; + Msg: tagMsg; + PaintControl: IPaintControl; + Obj: IControl; + MenuDisplayed: Boolean; + OldWindowState: TWindowState; + CharMsg, DeadCharMsg: UInt32; + WindowPoint: TPoint; + FormPoint: TPointF; + ScreenPoint: TPointF; +begin + Result := 0; + LForm := FindWindow(hwnd); + //! Launcher Fix + if LForm <> nil then + begin + TMsg.Msg := uMsg; + TMsg.WParam := wParam; + TMsg.LParam := lParam; + TMsg.Result := 0; + + LForm.Dispatch(TMsg); + + uMsg := TMsg.Msg; + wParam := TMsg.WParam; + lParam := TMsg.LParam; + end; + + Message.Msg := uMsg; + Message.WParam := wParam; + Message.LParam := lParam; + Message.Result := 0; + // Check to see if this is a design message + if (LForm <> nil) and (LForm.Designer <> nil) and LForm.Designer.IsDesignMsg(LForm, Message) then + Exit; + + if LForm <> nil then + begin + Wnd := FormToHWND(LForm); + try + InitialActionsOfPopups; + try + case uMsg of + WM_NCHITTEST, + WM_NCACTIVATE, + WM_NCADDUPDATERECT, + WM_NCMOUSEMOVE, + WM_NCLBUTTONDOWN, + WM_NCLBUTTONUP, + WM_NCCALCSIZE, + WM_NCPAINT, + WM_NCMOUSELEAVE: + Result := WMNCMessages(LForm, uMsg, wParam, lParam); + $B000 + 74: // CM_DESTROYHANDLE + begin + if (LForm.ClassName = 'TFormContainerForm') and (wParam = 1) then + begin + // IDE parent recreate + SetParent(Wnd, GetDesktopWindow); + SetWindowPos(Wnd, 0, $A000, $A000, 10, 10, SWP_NOSIZE or SWP_NOZORDER); + end; + end; + WM_DESTROY: + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + WM_ACTIVATE: + begin + if not ((TFmxFormState.Recreating in LForm.FormState) or (LForm.FormStyle = TFormStyle.Popup) or + WindowHandleToPlatform(LForm.Handle).FDisableDeactivate) then + begin + if LoWord(wParam) <> 0 then + begin + if HiWord(wParam) = 0 then + LForm.Activate; + // If the window is minimized, then do nothing. + end + else + begin + PrepareClosePopups; + LForm.Deactivate; + ClosePopupList; + end; + end; + Result := 0; + end; + WM_MOUSEACTIVATE: + begin + if not (TFmxFormState.Recreating in LForm.FormState) then + begin + if LForm.FormStyle = TFormStyle.Popup then + Result := MA_NOACTIVATE + else + // Default result if nothing happens + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; + end; + WM_ERASEBKGND: + begin + Result := 1; + end; + WM_PAINT: + begin + Result := WMPaint(hwnd, uMsg, wParam, lParam); + end; + WM_DPICHANGED: + begin + MultiDisplayWin.UpdateDisplayInformation; + LForm.Handle.Dispatch(Message); + Result := 0; + end; + WM_DISPLAYCHANGE: + begin + MultiDisplayWin.UpdateDisplayInformation; + end; + WM_ADDUPDATERECT: + begin + ProcessUpdateMessages; + if Supports(LForm, IPaintControl, PaintControl) then + PaintControl.PaintRects(UpdateRects); + WindowHandleToPlatform(LForm.Handle).UpdateLayer; + end; + WM_SIZE: + begin + LForm.Handle.Dispatch(Message); + Result := 0; + end; + WM_WINDOWPOSCHANGING: + begin + if [csLoading, csDesigning] * LForm.ComponentState = [csLoading] then + begin + if (LForm.Position in [TFormPosition.Default, TFormPosition.DefaultPosOnly]) and + (LForm.WindowState <> TWindowState.wsMaximized) then + begin + PWindowPos(lParam)^.Flags := PWindowPos(lParam)^.Flags or SWP_NOMOVE; + end; + if (LForm.Position in [TFormPosition.Default, TFormPosition.DefaultSizeOnly]) and + (LForm.BorderStyle in [TFmxFormBorderStyle.Sizeable, TFmxFormBorderStyle.SizeToolWin]) then + begin + PWindowPos(lParam)^.Flags := PWindowPos(lParam)^.Flags or SWP_NOSIZE; + end; + end; + if not ((PWindowPos(lParam)^.Flags and FlagZOrder) = FlagZOrder) then + begin + if (Screen <> nil) and (LForm <> nil) and (not WindowHandleToPlatform(LForm.Handle).FDisableDeactivate) then + if (LForm.FormStyle = TFormStyle.Popup) then + ClosePopupList; + end; + LForm.Handle.Dispatch(Message); + if (TFmxFormState.InDesigner in LForm.FormState) and (TFmxFormState.WasNotShown in LForm.FormState) then + TOpenForm(LForm).ShowInDesigner; + end; + WM_WINDOWPOSCHANGED: + begin + Placement.Length := SizeOf(TWindowPlacement); + GetWindowPlacement(hwnd, Placement); + if (Application.MainForm <> nil) and (LForm = Application.MainForm) and (Placement.showCmd = SW_SHOWMINIMIZED) then + begin + PlatformWin.MinimizeApp; + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end + else + begin + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + LForm.Handle.Dispatch(Message); + { update state } + PlatformWin.FDiableUpdateState := True; + try + OldWindowState := LForm.WindowState; + Placement.Length := SizeOf(TWindowPlacement); + GetWindowPlacement(hwnd, Placement); + case Placement.showCmd of + SW_SHOWMINIMIZED: + LForm.WindowState := TWindowState.wsMinimized; + SW_SHOWMAXIMIZED: + LForm.WindowState := TWindowState.wsMaximized; + else + if csDesigning in LForm.ComponentState then + begin + { for using Metro-style interface in designer we set Maximized but we can change window size } + if LForm.WindowState <> TWindowState.wsMaximized then + LForm.WindowState := TWindowState.wsNormal; + end + else + begin + if not (TFmxFormState.WasNotShown in LForm.FormState) then + LForm.WindowState := TWindowState.wsNormal; + end; + end; + if OldWindowState <> LForm.WindowState then + begin + PostMessage(hwnd, WM_CLOSEMENU, 0, 0); + PrepareClosePopups; + ClosePopupList; + end; + finally + PlatformWin.FDiableUpdateState := False; + end; + WMNCMessages(LForm, uMsg, wParam, lParam); + end; + end; + WM_GETMINMAXINFO: + LForm.Handle.Dispatch(Message); + WM_CLOSE: + LForm.Close; + WM_LBUTTONDOWN: + begin + PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := True; + LastMousePos := ImpossibleMousePosition; + WindowPoint := TWMLButtonDown(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + ScreenPoint := LForm.ClientToScreen(FormPoint); // dp + LForm.MouseDown(TMouseButton.mbLeft, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); + HandleMouseGestures(LForm, uMsg, ScreenPoint); + end; + WM_LBUTTONDBLCLK: + begin + PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := True; + LastMousePos := ImpossibleMousePosition; + WindowPoint := TWMLButtonDblClk(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // Form point in dp + LForm.MouseDown(TMouseButton.mbLeft, MouseToShiftState(wParam) + [ssDouble], FormPoint.X, FormPoint.Y); + end; + WM_CANCELMODE: + begin + // If the user shows dialog from mouse down event, WinApi rejects MouseUp event from queue. In this case, + // Form.Captured control are not reset and we cannot complete click event correctly. As result button stay + // pressed. + // When modal dialog is appeared, WinApi sends WM_CANCELMODE message for rejecting other related events. + // We save this flag for future emulation MouseUp event, if it's required. + + // It's not Ok for FMX, because FMX depends on normal sequence of mouse events Down -> Up, so + // Form waits final MouseUp event. + // If we receive WM_CANCELMODE message while MouseDown is processed, we should emulate MouseUp event. + if PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed then + begin + GetCursorPos(P); + SendMessage(hwnd, WM_LBUTTONUP, 0, PointToLParam(P)); + end; + PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := False; + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; + WM_LBUTTONUP: + begin + PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := False; + WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); + WindowPoint := TWMLButtonUp(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + ScreenPoint := LForm.ClientToScreen(FormPoint); // dp + if LForm.Border.IsSupported and WindowBorder.NCClick then + Result := WMNCMessages(LForm, uMsg, wParam, lParam) + else + begin + LastMousePos := ImpossibleMousePosition; + LForm.MouseUp(TMouseButton.mbLeft, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); + end; + HandleMouseGestures(LForm, uMsg, ScreenPoint); + end; + WM_RBUTTONDOWN, WM_RBUTTONDBLCLK: + begin + LastMousePos := ImpossibleMousePosition; + WindowPoint := TWMMouse(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + ScreenPoint := LForm.ClientToScreen(FormPoint); // dp + Obj := LForm.ObjectAtPoint(ScreenPoint); + if (Obj <> nil) and (Obj.GetObject <> nil) and not (csDesigning in Obj.GetObject.ComponentState) then + begin + Obj.SetFocus; + MenuDisplayed := Obj.ShowContextMenu(ScreenPoint); + end + else + MenuDisplayed := False; + if not MenuDisplayed then + begin + if uMsg = WM_RBUTTONDBLCLK then + LForm.MouseDown(TMouseButton.mbRight, MouseToShiftState(wParam) + [ssDouble], FormPoint.X, FormPoint.Y); + LForm.MouseDown(TMouseButton.mbRight, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); + end; + end; + WM_RBUTTONUP: + begin + LastMousePos := ImpossibleMousePosition; + WindowPoint := TWMRButtonUp(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + LForm.MouseUp(TMouseButton.mbRight, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); + end; + WM_MBUTTONDOWN: + begin + LastMousePos := ImpossibleMousePosition; + WindowPoint := TWMMButtonDown(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + LForm.MouseDown(TMouseButton.mbMiddle, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); + end; + WM_MBUTTONUP: + begin + LastMousePos := ImpossibleMousePosition; + WindowPoint := TWMMButtonUp(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + LForm.MouseUp(TMouseButton.mbMiddle, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); + end; + WM_MBUTTONDBLCLK: + begin + LastMousePos := ImpossibleMousePosition; + WindowPoint := TWMMButtonDblClk(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + LForm.MouseDown(TMouseButton.mbMiddle, MouseToShiftState(wParam) + [ssDouble], FormPoint.X, FormPoint.Y); + end; + WM_MENUSELECT, + WM_INITMENUPOPUP: + MenuServiceWin.Dispatch(Message); + WM_MOUSEMOVE: + begin + WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); + + if LForm.Border.IsSupported then + begin + if WindowBorder.NCClick then + Result := WMNCMessages(LForm, uMsg, wParam, lParam) + else + begin + WindowBorder.MouseLeave; + GetCursorPos(P); + if P <> LastMousePos then + begin + LastMousePos := P; + WindowPoint := TWMMouseMove(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + LForm.MouseMove(MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); + end; + end; + end + else + begin + GetCursorPos(P); + if P <> LastMousePos then + begin + LastMousePos := P; + WindowPoint := TWMMouseMove(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + LForm.MouseMove(MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); + end; + end; + tme.cbSize := SizeOf(tme); + tme.hwndTrack := hwnd; + tme.dwFlags := TME_LEAVE; + tme.dwHoverTime := HOVER_DEFAULT; + TrackMouseEvent(tme); + + WindowPoint := TWMMouseMove(Message).Pos; // Form point in px + FormPoint := FormPxToDp(LForm, WindowPoint); // dp + ScreenPoint := LForm.ClientToScreen(FormPoint); // dp + HandleMouseGestures(LForm, uMsg, ScreenPoint); + end; + WM_MOUSELEAVE: + begin + WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); + if LForm.Border.IsSupported and WindowBorder.NCClick then + Result := WMNCMessages(LForm, uMsg, wParam, lParam) + else + LForm.MouseLeave; + end; + WM_MOUSEWHEEL: + begin + H := DispatchMouseWheelToPopups; + if not H then + LForm.MouseWheel(KeysToShiftState(wParam), TSmallPoint(Cardinal(wParam)).Y, H); + Result := Integer(H = True); + end; + WM_GETDLGCODE: + begin + Result := DLGC_WANTTAB or dlgc_WantArrows or DLGC_WANTCHARS; + end; + WM_CHAR: + begin + Ch := WideChar(wParam); + Key := 0; + LForm.KeyDown(Key, Ch, KeyDataToShiftState(lParam)); + LForm.KeyUp(Key, Ch, KeyDataToShiftState(lParam)); + Result := 0; + end; + WM_KEYDOWN, + WM_SYSKEYDOWN: + begin + // Check if this key translates to a WM_CHAR/WM_SYSCHAR message + // and if it does, pass KeyDown with character code + // and clear the original WM_CHAR from the queue + Msg.hwnd := hwnd; + Msg.Message := uMsg; + Msg.wParam := wParam; + Msg.lParam := lParam; + + Result := 0; + + if uMsg = WM_SYSKEYDOWN then + begin + CharMsg := WM_SYSCHAR; + DeadCharMsg := WM_SYSDEADCHAR; + end + else + begin + CharMsg := WM_CHAR; + DeadCharMsg := WM_DEADCHAR; + end; + + LastKeyIsDeadKey := False; + if PeekMessage(Msg, hwnd, DeadCharMsg, DeadCharMsg, PM_NOREMOVE + PM_NOYIELD) then + LastKeyIsDeadKey := True + else if TranslateMessage(Msg) then + begin + if PeekMessage(Msg, hwnd, CharMsg, CharMsg, PM_REMOVE) then + begin + CurrentChar(Msg, Key, Ch, Shift); + // clear duplicate WM_CHAR + if CharMsg = WM_CHAR then + PeekMessage(Msg, hwnd, CharMsg, CharMsg, PM_REMOVE); + LForm.KeyDown(Key, Ch, Shift); + end + else + begin + Key := wParam; + Ch := #0; + LForm.KeyDown(Key, Ch, KeyDataToShiftState(lParam)); + end; + end; + + // always let the system handle system shortcuts + if uMsg = WM_SYSKEYDOWN then + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; + WM_DEADCHAR: + begin + PeekMessage(Msg, hwnd, WM_DEADCHAR, WM_DEADCHAR, PM_REMOVE); + PeekMessage(Msg, hwnd, WM_CHAR, WM_CHAR, PM_REMOVE); + end; + WM_KEYUP: + begin + Ch := #0; + Key := wParam; + Shift := KeyDataToShiftState(lParam); + if LastKeyIsDeadKey then + begin + Result := 0; + end + else + begin + Msg.hwnd := hwnd; + Msg.Message := WM_KEYDOWN; + Msg.wParam := wParam; + Msg.lParam := Msg.lParam and $7FFFFFFF; + if TranslateMessage(Msg) then + if PeekMessage(Msg, hwnd, WM_CHAR, WM_CHAR, PM_REMOVE) then + begin + CurrentChar(Msg, Key, Ch, Shift); + end; + LForm.KeyUp(Key, Ch, Shift); + Result := 0; + end + end; + WM_SYSKEYUP: + begin + if (wParam = VK_MENU) or (wParam = VK_F10) then + begin + LForm.EnterMenuLoop; + Result := 0; + end + else + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; + WM_RELEASEFORM: + begin + LForm.Free; + end; + { IME } + WM_INPUTLANGCHANGE: + begin + // Result := SetIMECompositionWndPosition(LForm, uMsg, wParam, lParam); + // OnInputLangChange(); + end; + WM_IME_SETCONTEXT, + WM_IME_STARTCOMPOSITION, + WM_IME_COMPOSITION, + WM_IME_NOTIFY, + WM_IME_ENDCOMPOSITION: + begin + PlatformWin.ImmManager[LForm].Dispatch(Message); + Result := Message.Result; + end; + WM_COMMAND: + begin + MenuServiceWin.Dispatch(Message); + Result := Message.Result; + end; + WM_GESTURENOTIFY: + begin + WMGestureNotify(LForm, uMsg, lParam); + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; + WM_GESTURE: + begin + Result := WMGesture(LForm, uMsg, wParam, lParam); + end; + WM_TOUCH: + begin + Result := WMTouch(LForm, uMsg, wParam, lParam); + end; + WM_CTLCOLORMSGBOX..WM_CTLCOLORSTATIC: + Result := SendMessage(lParam, CN_BASE + uMsg, wParam, lParam); + else + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + // Default result if nothing happens + end; + finally + FinalActionsOfPopups; + end; + except + on E: Exception do + Application.HandleException(E); + end; + end + else { if LForm = nil } + begin + if (PlatformWin <> nil) and (hwnd = PlatformWin.FApplicationHWND) then + begin + case uMsg of + WM_SETTINGCHANGE: + MultiDisplayWin.UpdateDisplayInformation; + WM_SYSCOMMAND: + begin + case TWMSysCommand(Message).CmdType and $FFF0 of + SC_MINIMIZE: + begin + PlatformWin.MinimizeApp; + Result := 0; + end; + SC_RESTORE: + begin + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + PlatformWin.RestoreApp; + end + else + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; + end; + WM_CLOSE: + begin + if Application.MainForm <> nil then + begin + try + if Screen <> nil then + Screen.ActiveForm := nil; + Application.MainForm.Close; + except + on E: Exception do + Application.HandleException(E); + end; + Exit; + end; + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; + WM_DESTROY: + Application.Terminate; + WM_ACTIVATEAPP: + begin + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + if BOOL(wParam) then + PlatformWin.RestoreApp; + end; + else + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; + end + else + Result := DefWindowProc(hwnd, uMsg, wParam, lParam); + end; + // Default result if nothing happens +end; + +var + FMAppClass: TWndClass = ( + style: 0; + lpfnWndProc: @WndProc; + cbClsExtra: 0; + cbWndExtra: 0; + hInstance: 0; + hIcon: 0; + hCursor: 0; + hbrBackground: 0; + lpszMenuName: nil; + lpszClassName: 'TFMAppClass'); + +function TPlatformWin.CreateAppHandle: HWND; +var + TempClass: TWndClass; + P: PChar; + ClassRegistered: Boolean; + ModuleName: array [0 .. 255] of Char; +begin + GetModuleFileName(MainInstance, ModuleName, Length(ModuleName)); + P := AnsiStrRScan(ModuleName, '\'); + if P <> nil then + StrCopy(ModuleName, P + 1); + P := AnsiStrScan(ModuleName, '.'); + if P <> nil then + P^ := #0; + CharLower(CharNext(ModuleName)); + FDefaultTitle := ModuleName; + if Application <> nil then + FTitle := Application.Title + else + FTitle := FDefaultTitle; + FMAppClass.hInstance := hInstance; + ClassRegistered := GetClassInfo(hInstance, FMAppClass.lpszClassName, TempClass); + FMAppClass.hIcon := LoadIconW(MainInstance, PChar('MAINICON')); + if not ClassRegistered or (TempClass.lpfnWndProc <> @WndProc) then + begin + if ClassRegistered then + Winapi.Windows.UnregisterClass(FMAppClass.lpszClassName, hInstance); + Winapi.Windows.RegisterClass(FMAppClass); + end; + Result := CreateWindowEx(WS_EX_WINDOWEDGE or WS_EX_APPWINDOW, FMAppClass.lpszClassName, PChar(FTitle), + WS_POPUP or WS_GROUP, 0, 0, 0, 0, GetDesktopWindow, 0, hInstance, nil); + Winapi.Windows.ShowWindow(Result, SW_SHOWNORMAL); +end; + +function TPlatformWin.GetApplicationHWND: HWND; +begin + UpdateApplicationHwnd; + Result := FApplicationHWND; +end; + +function TPlatformWin.CreateWindow(const AForm: TCommonCustomForm): TWindowHandle; +var + DesignerForm: IDesignerForm; + IsDesignerForm: Boolean; + WindowClass: TWndClass; + LDropTarget: TWinDropTarget; + Style, ExStyle: DWORD; + Wnd: HWND; + ParentWnd: HWND; + WndClassName: string; + + procedure DefineWindowStyle(const AForm: TCommonCustomForm; var AStyle: DWORD; var AExStyle: DWORD); + begin + case AForm.FormStyle of + TFormStyle.Popup: + begin + AStyle := AStyle or WS_POPUP; + AExStyle := AExStyle or WS_EX_NOACTIVATE; + end; + TFormStyle.StayOnTop: + AExStyle := AExStyle or WS_EX_TOPMOST; + end; + if AForm.Transparency then + begin + AStyle := AStyle or WS_POPUP; + AExStyle := AExStyle or WS_EX_LAYERED; + end + else + begin + case AForm.BorderStyle of + TFmxFormBorderStyle.None: + AStyle := AStyle or WS_POPUP or WS_SYSMENU; + TFmxFormBorderStyle.Single, TFmxFormBorderStyle.ToolWindow: + AStyle := AStyle or WS_CAPTION or WS_BORDER; + TFmxFormBorderStyle.Sizeable, TFmxFormBorderStyle.SizeToolWin: + AStyle := AStyle or WS_CAPTION or WS_THICKFRAME; + end; + if AForm.BorderStyle in [TFmxFormBorderStyle.ToolWindow, TFmxFormBorderStyle.SizeToolWin] then + AExStyle := AExStyle or WS_EX_TOOLWINDOW; + if AForm.BorderStyle <> TFmxFormBorderStyle.None then + begin + if TBorderIcon.biMinimize in AForm.BorderIcons then + AStyle := AStyle or WS_MINIMIZEBOX; + if TBorderIcon.biMaximize in AForm.BorderIcons then + AStyle := AStyle or WS_MAXIMIZEBOX; + if TBorderIcon.biSystemMenu in AForm.BorderIcons then + AStyle := AStyle or WS_SYSMENU; + end; + end; + end; + + function DefineParentWnd(const AForm: TCommonCustomForm): HWND; + begin + Result := 0; + // Trying to use the parent form + if AForm.ParentForm <> nil then + begin + if AForm.ParentForm.Handle = nil then + raise EArgumentException.CreateFMT(SNotInstance, ['ParentForm.Handle']) at ReturnAddress; + Result := FormToHWND(AForm.ParentForm); + end; + if Result <> 0 then + Exit; + + // For Dialogs and Popups we use a handle of the active form + if ((TFmxFormState.Modal in AForm.FormState) or (AForm.FormStyle = TFormStyle.Popup)) then + if (Screen <> nil) and (Screen.ActiveForm <> nil) then + Result := FormToHWND(Screen.ActiveForm); + if Result <> 0 then + Exit; + + // If none parent then we use handle of Application + Result := ApplicationHWND; + end; + +begin + RaiseIfNil(AForm, 'AForm'); + + LDropTarget := nil; + Style := WS_CLIPSIBLINGS or WS_CLIPCHILDREN; + ExStyle := 0; + WndClassName := 'FM' + AForm.ClassName; + IsDesignerForm := TFmxFormState.InDesigner in AForm.FormState; + if not GetClassInfo(hInstance, PChar(WndClassName), WindowClass) then + begin + FillChar(WindowClass, SizeOf(WindowClass), 0); + WindowClass.style := CS_DBLCLKS or CS_HREDRAW or CS_VREDRAW; + WindowClass.lpfnWndProc := @WndProc; + WindowClass.cbClsExtra := 0; + WindowClass.cbWndExtra := 0; + WindowClass.hInstance := hInstance; + WindowClass.hIcon := LoadIconW(MainInstance, PChar('MAINICON')); + if csDesigning in AForm.ComponentState then + WindowClass.hCursor := LoadCursorW(0, PChar(IDC_ARROW)) + else + WindowClass.hCursor := 0; + WindowClass.hbrBackground := GetStockObject(NULL_BRUSH); + WindowClass.lpszMenuName := nil; + WindowClass.lpszClassName := PChar(WndClassName); + if Winapi.Windows.RegisterClass(WindowClass) = 0 then + RaiseLastOSError; + end; + if (csDesigning in AForm.ComponentState) or IsDesignerForm then + begin + Style := Style or WS_CHILD; + // Parent handle going to set in IDE. + // Now set temporary value + ParentWnd := GetDesktopWindow; + end + else + begin + DefineWindowStyle(AForm, Style, ExStyle); + ParentWnd := DefineParentWnd(AForm); + end; + Wnd := CheckWinapiHandle(CreateWindowEx(ExStyle, WindowClass.lpszClassName, PChar(AForm.Caption), Style, + Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), ParentWnd, 0, + hInstance, nil)); + try + SetProp(Wnd, MakeIntAtom(WindowAtom), THandle(AForm)); + try + if not ((csDesigning in AForm.ComponentState) or Supports(AForm, IDesignerForm, DesignerForm)) then + begin + LDropTarget := TWinDropTarget.Create(nil); + LDropTarget.Form := AForm; + end; + try + if LDropTarget <> nil then + RegisterDragDrop(Wnd, LDropTarget); + Result := TWinWindowHandle.Create(AForm, Wnd); + TWinWindowHandle(Result).FWinDropTarget := LDropTarget; + except + if LDropTarget <> nil then + RevokeDragDrop(Wnd); + raise; + end; + except + FreeAndNil(LDropTarget); + raise; + end; + except + Winapi.Windows.DestroyWindow(Wnd); + raise; + end; + TWinWindowHandle(Result).FWinDropTarget := LDropTarget; + + FImmManagers.Add(AForm, TImmManager.Create(AForm)); + FFormsInfo.Add(AForm, TFormInfo.Create); +end; + +function TPlatformWin.CreateWindowBorder(const AForm: TCommonCustomForm): TWindowBorder; +begin + Result := TWinWindowBorder.Create(AForm); +end; + +procedure TPlatformWin.DestroyWindow(const AForm: TCommonCustomForm); +var + Wnd: HWND; + DesignerForm: IDesignerForm; +begin + RaiseIfNil(AForm, 'AForm'); + + HideWindow(AForm); + Wnd := FormToHWND(AForm); + if not ((csDesigning in AForm.ComponentState) or Supports(AForm, IDesignerForm, DesignerForm)) then + RevokeDragDrop(Wnd); + WindowHandleToPlatform(AForm.Handle).FWinDropTarget.Free; + RemoveProp(Wnd, MakeIntAtom(WindowAtom)); + Winapi.Windows.DestroyWindow(Wnd); + + FImmManagers.Remove(AForm); + FFormsInfo.Remove(AForm); +end; + +procedure TPlatformWin.ReleaseWindow(const AForm: TCommonCustomForm); +begin +end; + +procedure TPlatformWin.InvalidateImmediately(const AForm: TCommonCustomForm); +begin + RaiseIfNil(AForm, 'AForm'); + + InvalidateWindowRect(AForm, AForm.ClientRect); +end; + +procedure TPlatformWin.InvalidateWindowRect(const AForm: TCommonCustomForm; R: TRectF); +var + WR: TRect; + Wnd: HWND; + PaintControl: IPaintControl; + UpdateRects: TUpdateRects; + I: Integer; +begin + RaiseIfNil(AForm, 'AForm'); + + if IntersectRect(R, TRectF.Create(0, 0, AForm.ClientWidth, AForm.ClientHeight)) then + begin + Wnd := FormToHWND(AForm); + if AForm.Transparency and not (csDesigning in AForm.ComponentState) then + begin + PostMessage(Wnd, WM_ADDUPDATERECT, Integer(SmallPoint(Round(R.Left), Round(R.Top))), + Integer(SmallPoint(Round(R.Right), Round(R.Bottom)))); + end + else + begin + R := WindowHandleToPlatform(AForm.Handle).FormToWnd(R); + if Supports(AForm, IPaintControl, PaintControl) and (PaintControl.ContextHandle <> 0) then + begin + // In Paint + if not FInPaintUpdateRects.TryGetValue(AForm.Handle, UpdateRects) then + begin + SetLength(UpdateRects, 1); + UpdateRects[0] := R; + FInPaintUpdateRects.Add(AForm.Handle, UpdateRects); + Exit; + end + else + for I := 0 to High(UpdateRects) do + if (UpdateRects[I] = R) or (UpdateRects[I].Contains(R.TopLeft) and UpdateRects[I].Contains(R.BottomRight)) + then + Exit; + SetLength(UpdateRects, Length(UpdateRects) + 1); + UpdateRects[High(UpdateRects)] := R; + FInPaintUpdateRects.AddOrSetValue(AForm.Handle, UpdateRects); + end + else + begin + WR := TRect.Create(Trunc(R.Left), Trunc(R.Top), Ceil(R.Right), Ceil(R.Bottom)); + Winapi.Windows.InvalidateRect(Wnd, @WR, False); + end; + end; + end; +end; + +procedure TPlatformWin.MinimizeApp; +var + AnimationEnable: Boolean; + + function GetAnimation: Boolean; + var + Info: TAnimationInfo; + begin + Info.cbSize := SizeOf(TAnimationInfo); + if SystemParametersInfo(SPI_GETANIMATION, Info.cbSize, @Info, 0) then + Result := Info.iMinAnimate <> 0 + else + Result := False; + end; + + procedure SetAnimation(Value: Boolean); + var + Info: TAnimationInfo; + begin + Info.cbSize := SizeOf(TAnimationInfo); + Info.iMinAnimate := Integer(BOOL(Value)); + SystemParametersInfo(SPI_SETANIMATION, Info.cbSize, @Info, 0); + end; + + procedure MinimiseAllForms; + var + I: Integer; + WindowHandle: HWND; + begin + for I := 0 to Screen.FormCount - 1 do + begin + WindowHandle := FormToHWND(Screen.Forms[I]); + if IsWindowVisible(WindowHandle) then + DefWindowProc(WindowHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0); + end; + end; + +var + MainForm: TCommonCustomForm; + WndPos: TPoint; +begin + AnimationEnable := GetAnimation; + try + SetAnimation(False); + if Application.MainForm <> nil then + begin + MainForm := Application.MainForm; + WndPos := MultiDisplayWin.DpToPx(TPointF.Create(MainForm.Left, MainForm.Top)); + SetWindowPos(ApplicationHWND, FormToHWND(Application.MainForm), WndPos.X, WndPos.Y, Trunc(MainForm.Width), 0, SWP_SHOWWINDOW); + MinimiseAllForms; + end; + DefWindowProc(ApplicationHWND, WM_SYSCOMMAND, SC_MINIMIZE, 0); + finally + SetAnimation(AnimationEnable); + end; +end; + +function TPlatformWin.GetWindowRect(const AForm: TCommonCustomForm): TRectF; +begin + RaiseIfNil(AForm, 'AForm'); + + if AForm.IsHandleAllocated then + Result := WindowHandleToPlatform(AForm.Handle).Bounds + else + Result := TRectF.Create(0, 0, AForm.Width, AForm.Height); +end; + +function TPlatformWin.GetWindowScale(const AForm: TCommonCustomForm): Single; +begin + RaiseIfNil(AForm, 'AForm'); + + if AForm.IsHandleAllocated then + Result := AForm.Handle.Scale + else + Result := MultiDisplayWin.GetScreenScale; +end; + +procedure TPlatformWin.SetWindowRect(const AForm: TCommonCustomForm; ARect: TRectF); +begin + RaiseIfNil(AForm, 'AForm'); + + { for using Metro-style interface in designer we set Maximized but we can change window size } + if AForm.IsHandleAllocated and (AForm.WindowState in [TWindowState.wsNormal, TWindowState.wsMaximized]) then + WindowHandleToPlatform(AForm.Handle).Bounds := ARect; +end; + +procedure TPlatformWin.SetWindowCaption(const AForm: TCommonCustomForm; const ACaption: string); +begin + RaiseIfNil(AForm, 'AForm'); + + SetWindowText(FormToHWND(AForm), ACaption); +end; + +procedure TPlatformWin.RegisterCanvasClasses; +begin + if GlobalUseGPUCanvas then + FMX.Canvas.GPU.RegisterCanvasClasses; + FMX.Canvas.D2D.RegisterCanvasClasses; + FMX.Canvas.GDIP.RegisterCanvasClasses; +end; + +procedure TPlatformWin.UnhookTouchHandler(const AForm: TCommonCustomForm); +begin + if TOSVersion.Check(6, 1) then + UnregisterTouchWindow(FormToHWND(AForm)); +end; + +procedure TPlatformWin.UnregisterCanvasClasses; +begin + if GlobalUseGPUCanvas then + FMX.Canvas.GPU.UnregisterCanvasClasses; + FMX.Canvas.D2D.UnregisterCanvasClasses; + FMX.Canvas.GDIP.UnregisterCanvasClasses; +end; + +procedure TPlatformWin.RegisterContextClasses; +begin + FMX.Context.DX9.RegisterContextClasses; + FMX.Context.DX11.RegisterContextClasses; +end; + +procedure TPlatformWin.UnregisterContextClasses; +begin + FMX.Context.DX9.UnregisterContextClasses; + FMX.Context.DX11.UnregisterContextClasses; +end; + +procedure TPlatformWin.ReleaseCapture(const AForm: TCommonCustomForm); +begin + Winapi.Windows.ReleaseCapture; +end; + +procedure TPlatformWin.SetApplicationHWNDProc(const Value: TApplicationHWNDProc); +begin + if @FApplicationHWNDProc <> @Value then + begin + FApplicationHWNDProc := Value; + UpdateApplicationHwnd; + end; +end; + +procedure TPlatformWin.SetCapture(const AForm: TCommonCustomForm); +begin + RaiseIfNil(AForm, 'AForm'); + + Winapi.Windows.SetCapture(FormToHWND(AForm)); +end; + +function TPlatformWin.GetClientSize(const AForm: TCommonCustomForm): TPointF; +begin + RaiseIfNil(AForm, 'AForm'); + + if AForm.IsHandleAllocated then + Result := TSizeF.Create(WindowHandleToPlatform(AForm.Handle).ClientSize) + else + Result := TSizeF.Create(AForm.Width, AForm.Height); +end; + +procedure TPlatformWin.SetClientSize(const AForm: TCommonCustomForm; const ASize: TPointF); +begin + RaiseIfNil(AForm, 'AForm'); + + if AForm.IsHandleAllocated then + WindowHandleToPlatform(AForm.Handle).ClientSize := TSizeF.Create(ASize); +end; + +procedure TPlatformWin.SetConstraints(const AForm: TCommonCustomForm; const AMinWidth, AMinHeight, AMaxWidth, AMaxHeight: Single); +begin + RaiseIfNil(AForm, 'AForm'); + // The constraints are set in TWinWindowHandle.WMGetMinMaxInfo. +end; + +procedure TPlatformWin.HideWindow(const AForm: TCommonCustomForm); +begin + RaiseIfNil(AForm, 'AForm'); + + SetWindowPos(FormToHWND(AForm), 0, 0, 0, 0, 0, SWP_HIDEWINDOW or SWP_NOSIZE or SWP_NOMOVE or SWP_NOZORDER or + SWP_NOACTIVATE); +end; + +const + ShowCommands: array [TWindowState] of Integer = (SW_SHOWNORMAL, SW_MINIMIZE, SW_SHOWMAXIMIZED); + ShowPopupCommands: array [TWindowState] of Integer = (SW_SHOWNOACTIVATE, SW_SHOWMINNOACTIVE, SW_SHOWMAXIMIZED); + +procedure TPlatformWin.ShowWindow(const AForm: TCommonCustomForm); +type + TDeactivationState = record + Handle: TWinWindowHandle; + SavedDisableDeactivate: Boolean; + end; + + function GetActiveWindowHandle: TWinWindowHandle; + var + ActiveForm: TCommonCustomForm; + begin + if Screen = nil then + Result := nil + else + begin + ActiveForm := Screen.ActiveForm; + if ActiveForm = nil then + Result := nil + else + Result := WindowHandleToPlatform(ActiveForm.Handle); + end; + end; + + function DisableDeactivating(const AFormHandle: TWinWindowHandle): TDeactivationState; + begin + if AFormHandle = nil then + begin + Result.Handle := nil; + Result.SavedDisableDeactivate := False; + end + else + begin + Result.Handle := AFormHandle; + Result.SavedDisableDeactivate := AFormHandle.FDisableDeactivate; + AFormHandle.FDisableDeactivate := True; + end; + end; + + procedure RestoreDeactivating(const AState: TDeactivationState); + begin + if AState.Handle <> nil then + AState.Handle.FDisableDeactivate := AState.SavedDisableDeactivate; + end; + +const + uFlags = SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE; +var + Wnd, WndParent: HWND; + FormSize: TSize; + DeactivationState: TDeactivationState; +begin + RaiseIfNil(AForm, 'AForm'); + + Wnd := FormToHWND(AForm); + if AForm.FormStyle = TFormStyle.Popup then + begin + // When new popup form is showing, it can lead to closing other popup, for avoiding it we disable autoclosing + // popup on this period. + DeactivationState := DisableDeactivating(GetActiveWindowHandle); + try + Winapi.Windows.ShowWindow(Wnd, ShowPopupCommands[AForm.WindowState]); + finally + RestoreDeactivating(DeactivationState); + end; + end + else + Winapi.Windows.ShowWindow(Wnd, ShowCommands[AForm.WindowState]); + + if AForm.Transparency and not (csDesigning in AForm.ComponentState) then + begin + FormSize := TSize.Create(AForm.Width, AForm.Height); // dp + PostMessage(Wnd, WM_ADDUPDATERECT, Integer(SmallPoint(0, 0)), Integer(SmallPoint(FormSize.Width, FormSize.Height))); + end; + + if AForm.FormStyle in [TFormStyle.StayOnTop, TFormStyle.Popup] then + begin + WndParent := GetParent(Wnd); + if (WndParent = GetDesktopWindow) or (WndParent = 0) then + SetWindowPos(Wnd, HWND_TOPMOST, 0, 0, 0, 0, uFlags) + else + SetWindowPos(Wnd, HWND_TOP, 0, 0, 0, 0, uFlags); + end; +end; + +procedure TPlatformWin.BringToFront(const AForm: TCommonCustomForm); +var + Wnd: HWND; +begin + RaiseIfNil(AForm, 'AForm'); + + Wnd := FormToHWND(AForm); + SetWindowPos(Wnd, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); +end; + +procedure TPlatformWin.SendToBack(const AForm: TCommonCustomForm); +var + Wnd: HWND; +begin + RaiseIfNil(AForm, 'AForm'); + + Wnd := FormToHWND(AForm); + SetWindowPos(Wnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); +end; + +procedure TPlatformWin.Activate(const AForm: TCommonCustomForm); +var + Wnd: HWND; +begin + RaiseIfNil(AForm, 'AForm'); + + Wnd := FormToHWND(AForm); + if not IsWindowVisible(Wnd) or IsIconic(Wnd) then + begin + if AForm.FormStyle = TFormStyle.Popup then + Winapi.Windows.ShowWindow(Wnd, SW_RESTORE or SW_SHOWNOACTIVATE) + else + Winapi.Windows.ShowWindow(Wnd, SW_RESTORE); + end; + if AForm.FormStyle <> TFormStyle.Popup then + Winapi.Windows.SetActiveWindow(Wnd); +end; + +procedure TPlatformWin.SetWindowState(const AForm: TCommonCustomForm; const AState: TWindowState); +var + Wnd: HWND; + + procedure DoSetState(const AState: TWindowState); + begin + if AForm.FormStyle = TFormStyle.Popup then + Winapi.Windows.ShowWindow(Wnd, ShowCommands[AState] or SW_SHOWNOACTIVATE) + else + begin + if (Application.MainForm = AForm) and (AState = TWindowState.wsMinimized) then + Winapi.Windows.ShowWindow(ApplicationHWND, ShowCommands[AState]) + else + Winapi.Windows.ShowWindow(Wnd, ShowCommands[AState]) + end; + end; + +begin + RaiseIfNil(AForm, 'AForm'); + + if AForm.Visible and not FDiableUpdateState then + begin + Wnd := FormToHWND(AForm); + if AForm.FullScreen then + try + FDiableUpdateState := True; + AForm.WindowState := TWindowState.wsMaximized; + if not Winapi.Windows.IsZoomed(Wnd) then + DoSetState(TWindowState.wsMaximized); + finally + FDiableUpdateState := False; + end + else + DoSetState(AState); + end; +end; + +function TPlatformWin.ShowWindowModal(const AForm: TCommonCustomForm): TModalResult; +var + WindowList: Pointer; + CloseRes: TCloseAction; + Wnd: HWND; +begin + RaiseIfNil(AForm, 'AForm'); + + Result := mrNone; + if GetCapture <> 0 then + SendMessage(GetCapture, WM_CANCELMODE, 0, 0); + Winapi.Windows.ReleaseCapture; + AForm.HandleNeeded; + WindowList := DisableTaskWindows(FormToHWND(AForm)); + try + CloseRes := TCloseAction.caNone; + AForm.Show; + AForm.ModalResult := mrNone; + Wnd := FormToHWND(AForm); + SetActiveWindow(Wnd); + SetFocus(Wnd); + Screen.ActiveForm := AForm; + repeat + if not Application.HandleMessage then + WaitMessage; + if Application.Terminated then + Break + else if AForm.ModalResult <> mrNone then + begin + CloseRes := AForm.CloseModal; + Result := AForm.ModalResult; + end; + until Result <> mrNone; + if not Application.Terminated and (CloseRes <> TCloseAction.caFree) then + AForm.Hide; + finally + EnableTaskWindows(WindowList); + end; + + Result := AForm.ModalResult; +end; + +function TPlatformWin.CanShowModal: Boolean; +begin + Result := True; +end; + +function TPlatformWin.ClientToScreen(const AForm: TCommonCustomForm; const Point: TPointF {dp}): TPointF; +var + P: TPoint; + Scale: Single; +begin + RaiseIfNil(AForm, 'AForm'); + + Scale := WindowHandleToPlatform(AForm.Handle).Scale; + P := (Point * Scale).Round; + Winapi.Windows.ClientToScreen(FormToHWND(AForm), P); + + Result := MultiDisplayWin.PxToDp(P); +end; + +function TPlatformWin.ScreenToClient(const AForm: TCommonCustomForm; const Point: TPointF {dp}): TPointF; +var + P: TPoint; + Scale: Single; +begin + RaiseIfNil(AForm, 'AForm'); + + P := MultiDisplayWin.DpToPx(Point); + Winapi.Windows.ScreenToClient(FormToHWND(AForm), P); + Scale := WindowHandleToPlatform(AForm.Handle).Scale; + Result := TPointF.Create(P) / Scale; +end; + +{ Menus } + +procedure TPlatformWin.ThreadSync(var Msg: TMessage); +begin + if Msg.Msg = WM_NULL then + begin + CheckSynchronize; + Msg.Result := 0; + end + else + Msg.Result := DefWindowProc(FThreadSyncHandle, Msg.Msg, Msg.wParam, Msg.LPARAM); +end; + +procedure TPlatformWin.RemoveRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); +begin + Exclude(FEnabledInteractiveGestures, ARec); +end; + +procedure TPlatformWin.RestoreApp; + + function TryFindForm(const AFormHandle: HWND; out AForm: TCommonCustomForm): Boolean; + var + I: Integer; + Form: TCommonCustomForm; + begin + for I := 0 to Screen.FormCount - 1 do + begin + Form := Screen.Forms[I]; + if FormToHWND(Form) = AFormHandle then + begin + AForm := Form; + Exit(True); + end; + end; + Result := False; + end; + +var + LWND: HWND; + Form: TCommonCustomForm; +begin + if Screen = nil then + Exit; + + if Screen.ActiveForm = nil then + begin + LWND := GetActiveWindow; + if (LWND <> 0) and (LWND <> ApplicationHWND) then + begin + if TryFindForm(LWND, Form) then + Form.Activate + else + SetActiveWindow(LWND); + Exit; + end; + + if Application.MainForm <> nil then + Application.MainForm.Activate; + end + else + Screen.ActiveForm.Activate; +end; + +procedure TPlatformWin.HookTouchHandler(const AForm: TCommonCustomForm); +begin + if TOSVersion.Check(6, 1) and TWinTouchGestureEngine.Supported(AForm) then + RegisterTouchWindow(FormToHWND(AForm), TWF_WANTPALM); +end; + +{ Drag and Drop } + +const + SID_IDropTargetHelper = '{4657278B-411B-11d2-839A-00C04FD918D0}'; + CLSID_DragDropHelper: TGUID = (D1: $4657278A; D2: $411B; D3: $11D2; D4: ($83, $9A, $00, $C0, $4F, $D9, $18, $D0)); + +type + IDropTargetHelper = interface(IUnknown) + [SID_IDropTargetHelper] + function DragEnter(hwndTarget: HWND; const dataObj: IDataObject; var pt: TPoint; + dwEffect: Longint): HRESULT; stdcall; + function DragLeave: HRESULT; stdcall; + function DragOver(var pt: TPoint; dwEffect: Longint): HRESULT; stdcall; + function Drop(const dataObj: IDataObject; var pt: TPoint; dwEffect: Longint): HRESULT; stdcall; + function Show(Show: BOOL): HRESULT; stdcall; + end; + +var + FDropTargetHelper: IDropTargetHelper; + FDataObj: IDataObject; + +function TWinDropTarget.GetDataObject: TDragObject; +var + FormatEtc: TFormatEtc; + StgMedium: TStgMedium; + str: string; + Drop: HDrop; + I, numFiles, buflen: Integer; + buffer: MarshaledString; +begin + FillChar(Result, SizeOf(Result), 0); + if FDataObj = nil then + Exit; + // get file name first + FormatEtc.cfFormat := CF_HDROP; + FormatEtc.ptd := nil; + FormatEtc.dwAspect := DVASPECT_CONTENT; + FormatEtc.lindex := -1; + FormatEtc.Tymed := TYMED_HGLOBAL; + // get FireMonkey + if PlatformWin.FDragAndDropActive then + begin + FormatEtc.cfFormat := CF_FMOBJECT; + if FDataObj.GetData(FormatEtc, StgMedium) = S_OK then + begin + Result := TDropSource(StgMedium.HGLOBAL).Data; + Exit; + end; + end; + // files + str := ''; + FormatEtc.cfFormat := CF_HDROP; + if FDataObj.GetData(FormatEtc, StgMedium) = S_OK then + begin + try + Drop := HDrop(GlobalLock(StgMedium.HGLOBAL)); + { Replace Text } + numFiles := DragQueryFile(Drop, $FFFFFFFF, nil, 0); + SetLength(Result.Files, numFiles); + for I := 0 to numFiles - 1 do + begin + // Setting length of buffer plus 1 for string end char (#0) + buflen := DragQueryFile(Drop, I, nil, 0) + 1; + buffer := StrAlloc(buflen); + DragQueryFile(Drop, I, buffer, buflen); + Result.Files[I] := buffer; + StrDispose(buffer); + if I = 0 then + Result.Data := Result.Files[0]; + end; + finally + GlobalUnlock(StgMedium.HGLOBAL); + { Free the memory } + ReleaseStgMedium(StgMedium); + end; + Exit; + end; + // get text + FormatEtc.cfFormat := CF_UNICODETEXT; + if FDataObj.GetData(FormatEtc, StgMedium) = S_OK then + begin + try + { Lock the global memory handle to get a pointer to the data } + str := PChar(GlobalLock(StgMedium.HGLOBAL)); + Result.Data := str; + finally + { Finished with the pointer } + GlobalUnlock(StgMedium.HGLOBAL); + { Free the memory } + ReleaseStgMedium(StgMedium); + end; + Exit; + end; +end; + +function TWinDropTarget.DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; +var + Res: HRESULT; +begin + try + FDataObj := dataObj; + Result := S_OK; + dwEffect := DROPEFFECT_NONE; + if (Succeeded(CoCreateInstance(CLSID_DragDropHelper, nil, CLSCTX_INPROC_SERVER, IDropTargetHelper, + FDropTargetHelper))) and (FDropTargetHelper <> nil) then + begin + Res := FDropTargetHelper.DragEnter(FormToHWND(Form), dataObj, pt, dwEffect); + if (Failed(Res)) then + FDropTargetHelper := nil; + end; + except + dwEffect := DROPEFFECT_NONE; + Result := E_UNEXPECTED; + end; +end; + +function TWinDropTarget.DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; +var + P: TPointF; + Operation: TDragOperation; +begin + Result := E_UNEXPECTED; + try + dwEffect := DROPEFFECT_NONE; + P := MultiDisplayWin.PxToDp(pt); // dp + Operation := TDragOperation.None; + Form.DragOver(GetDataObject, P, Operation); + case Operation of + TDragOperation.None: + dwEffect := DROPEFFECT_NONE; + TDragOperation.Move: + dwEffect := DROPEFFECT_MOVE; + TDragOperation.Copy: + dwEffect := DROPEFFECT_COPY; + TDragOperation.Link: + dwEffect := DROPEFFECT_LINK; + end; + + // do NOT translate the screen coordinates to form coordinates because + // it seems that the drop target helper needs screen coordinates + if FDropTargetHelper <> nil then + FDropTargetHelper.DragOver(pt, dwEffect); + Result := S_OK; + except + dwEffect := DROPEFFECT_NONE; + end; +end; + +function TWinDropTarget.DragLeave: HRESULT; +begin + Form.DragLeave; + if (FDropTargetHelper <> nil) then + FDropTargetHelper.DragLeave; + FDropTargetHelper := nil; + FDataObj := nil; + Result := S_OK; +end; + +function TWinDropTarget.Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; +var + P: TPointF; +begin + Result := S_OK; + try + if dataObj = nil then + Exit; + P := MultiDisplayWin.PxToDp(pt); // dp + Form.DragDrop(GetDataObject, P); + // do NOT translate the screen coordinates to form coordinates because + // it seems that the drop target helper needs screen coordinates + if FDropTargetHelper <> nil then + FDropTargetHelper.Drop(dataObj, pt, dwEffect) + finally + FDataObj := nil; + FDropTargetHelper := nil; + end; +end; + +{ IDropSource } + +function TDropSource.QueryContinueDrag(fEscapePressed: BOOL; grfKeyState: Integer): HRESULT; +var + ContinueDrop: Boolean; +begin + if fEscapePressed then + Result := DRAGDROP_S_CANCEL + else if (grfKeyState and (MK_LBUTTON or MK_RBUTTON) = 0) then + begin + ContinueDrop := True; + if ContinueDrop then + Result := DRAGDROP_S_DROP + else + Result := DRAGDROP_S_CANCEL; + end + else + Result := S_OK; +end; + +function TDropSource.GiveFeedback(dwEffect: Integer): HRESULT; +begin + Result := DRAGDROP_S_USEDEFAULTCURSORS; +end; + +{ IDataObject } + +function TDropSource.dAdvise(const FormatEtc: TFormatEtc; advf: Longint; const advsink: IAdviseSink; + out dwConnection: Longint): HRESULT; +begin + Result := OLE_E_ADVISENOTSUPPORTED; +end; + +function TDropSource.dUnadvise(dwConnection: Longint): HRESULT; +begin + Result := OLE_E_ADVISENOTSUPPORTED; +end; + +function TDropSource.EnumdAdvise(out EnumAdvise: IEnumStatData): HRESULT; +begin + Result := OLE_E_ADVISENOTSUPPORTED; +end; + +function TDropSource.EnumFormatEtc(dwDirection: Longint; out EnumFormatEtc: IEnumFormatEtc): HRESULT; +begin + if (dwDirection = DATADIR_GET) then + Result := OleRegEnumFormatEtc(IEnumFormatEtc, dwDirection, EnumFormatEtc) + else + Result := E_NOTIMPL; +end; + +function TDropSource.GetCanonicalFormatEtc(const FormatEtc: TFormatEtc; out FormatEtcout: TFormatEtc): HRESULT; +begin + Result := DATA_S_SAMEFORMATETC; +end; + +function TDropSource.EqualFormatEtc(FormatEtc1, FormatEtc2: TFormatEtc): Boolean; +begin + Result := (FormatEtc1.cfFormat = FormatEtc2.cfFormat) and (FormatEtc1.ptd = FormatEtc2.ptd) and + (FormatEtc1.dwAspect = FormatEtc2.dwAspect) and (FormatEtc1.lindex = FormatEtc2.lindex) and + (FormatEtc1.Tymed = FormatEtc2.Tymed) +end; + +function TDropSource.FindFormatEtc(TestFormatEtc: TFormatEtc): Integer; +var + I: Integer; + Found: Boolean; +begin + I := 0; + Found := False; + Result := -1; + while (I < Length(Formats)) and not Found do + begin + Found := EqualFormatEtc(Formats[I].FormatEtc, TestFormatEtc); + if Found then + Result := I; + Inc(I); + end +end; + +function TDropSource.HGlobalClone(HGLOBAL: THandle): THandle; +// Returns a global memory block that is a copy of the passed memory block. +var + Size: LongWord; + Data, NewData: PByte; +begin + Size := GlobalSize(HGLOBAL); + Result := GlobalAlloc(GPTR, Size); + Data := GlobalLock(HGLOBAL); + try + NewData := GlobalLock(Result); + try + Move(Data, NewData, Size); + finally + GlobalUnlock(Result); + end + finally + GlobalUnlock(HGLOBAL) + end +end; + +function TDropSource.RetrieveOwnedStgMedium(Format: TFormatEtc; var StgMedium: TStgMedium): HRESULT; +var + I: Integer; +begin + Result := E_INVALIDARG; + I := FindFormatEtc(Format); + if (I > -1) and Formats[I].OwnedByDataObject then + Result := StgMediumIncRef(Formats[I].StgMedium, StgMedium, False) +end; + +function TDropSource.StgMediumIncRef(const InStgMedium: TStgMedium; var OutStgMedium: TStgMedium; + CopyInMedium: Boolean): HRESULT; +begin + Result := S_OK; + // Simply copy all fields to start with. + OutStgMedium := InStgMedium; + case InStgMedium.Tymed of + TYMED_HGLOBAL: + begin + if CopyInMedium then + begin + // Generate a unique copy of the data passed + OutStgMedium.HGLOBAL := HGlobalClone(InStgMedium.HGLOBAL); + if OutStgMedium.HGLOBAL = 0 then + Result := E_OUTOFMEMORY + end + else + // Don't generate a copy just use ourselves and the copy previoiusly saved + MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) // Does increase RefCount + end; + TYMED_FILE: + begin + if CopyInMedium then + begin + OutStgMedium.lpszFileName := CoTaskMemAlloc(lstrLenW(InStgMedium.lpszFileName)); + // !! StrCopyW(PChar(OutStgMedium.lpszFileName), PChar(InStgMedium.lpszFileName)) + end + else + MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) // Does increase RefCount + end; + TYMED_ISTREAM: + + IUnknown(MySTGMEDIUM(OutStgMedium).stm)._AddRef; + TYMED_ISTORAGE: + IUnknown(MySTGMEDIUM(OutStgMedium).stg)._AddRef; + TYMED_GDI: + if not CopyInMedium then + MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) + // Does not increase RefCount + else + Result := DV_E_TYMED; // Don't know how to copy GDI objects right now + TYMED_MFPICT: + if not CopyInMedium then + MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) + // Does not increase RefCount + else + Result := DV_E_TYMED; + // Don't know how to copy MetaFile objects right now + TYMED_ENHMF: + if not CopyInMedium then + MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) + // Does not increase RefCount + else + Result := DV_E_TYMED; + // Don't know how to copy enhanced metafiles objects right now + else + Result := DV_E_TYMED + end; + + // I still have to do this. The Compiler will call _Release on the above Self as IDataObject + // casts which is not what is necessary. The DataObject is released correctly. + if (MySTGMEDIUM(OutStgMedium).UnkForRelease <> nil) and (Result = S_OK) then + IUnknown(MySTGMEDIUM(OutStgMedium).UnkForRelease)._AddRef +end; + +function TDropSource.GetData(const FormatEtcIn: TFormatEtc; out Medium: TStgMedium): HRESULT; +var + Global: Cardinal; + P: Pointer; + TextData: string; + B: TBitmap; + BitmapHandle: HBITMAP; +begin + FillChar(Medium, SizeOf(Medium), 0); + Result := DV_E_FORMATETC; + if QueryGetData(FormatEtcIn) <> S_OK then + Exit; + + case FormatEtcIn.cfFormat of + CF_UNICODETEXT: + begin + TextData := Data.Data.ToString; + Global := GlobalAlloc(0, (Length(TextData) + 1) * 2); + P := GlobalLock(Global); + try + Move(PChar(TextData)^, P^, GlobalSize(Global)); + finally + GlobalUnlock(Global); + end; + Medium.Tymed := TYMED_HGLOBAL; + Medium.HGLOBAL := Global; + Result := S_OK; + end; + CF_BITMAP: + begin + BitmapHandle := 0; + if Data.Data.IsType then + BitmapHandle := BitmapToWinBitmap(TBitmap(Data.Data.AsObject), TAlphaColorRec.White) + else if Data.Data.IsType then + begin + B := TBitmap.Create; + try + B.Assign(TBitmapSurface(Data.Data.AsObject)); + BitmapHandle := BitmapToWinBitmap(B, TAlphaColorRec.White); + finally + B.Free; + end; + end; + if BitmapHandle <> 0 then + begin + Medium.Tymed := TYMED_GDI; + Medium.HBITMAP := BitmapHandle; + Result := S_OK; + end; + end; + CF_FMOBJECT: + if PlatformWin.FDragAndDropActive then + begin + Medium.Tymed := TYMED_HGLOBAL; + Medium.HGLOBAL := THandle(Self); + Result := S_OK; + end; + end; + if (Result <> S_OK) and (Formats <> nil) then + begin + Result := QueryGetData(FormatEtcIn); + if (Result = S_OK) and (RetrieveOwnedStgMedium(FormatEtcIn, Medium) = E_INVALIDARG) then + Result := E_UNEXPECTED + end +end; + +function TDropSource.GetDataHere(const FormatEtc: TFormatEtc; out Medium: TStgMedium): HRESULT; +begin + Result := E_NOTIMPL; +end; + +function TDropSource.QueryGetData(const FormatEtc: TFormatEtc): HRESULT; +var + I: Integer; +begin + Result := DV_E_FORMATETC; + case FormatEtc.cfFormat of + CF_UNICODETEXT: + if not Data.Data.IsObject then + Result := S_OK; + CF_BITMAP: + if Data.Data.IsObject and (Data.Data.IsType or Data.Data.IsType) then + Result := S_OK; + CF_FMOBJECT: + if PlatformWin.FDragAndDropActive then + Result := S_OK; + end; + if Result <> S_OK then + begin + if Formats <> nil then + begin + I := 0; + Result := DV_E_FORMATETC; + while (I < Length(Formats)) and (Result = DV_E_FORMATETC) do + begin + if Formats[I].FormatEtc.cfFormat = FormatEtc.cfFormat then + begin + if (Formats[I].FormatEtc.dwAspect = FormatEtc.dwAspect) then + begin + if (Formats[I].FormatEtc.Tymed and FormatEtc.Tymed <> 0) then + Result := S_OK + else + Result := DV_E_TYMED; + end + else + Result := DV_E_DVASPECT; + end + else + Result := DV_E_FORMATETC; + Inc(I) + end + end + else + Result := E_UNEXPECTED; + end; +end; + +function TDropSource.CanonicalIUnknown(const TestUnknown: IUnknown): IUnknown; +// Uses COM object identity: An explicit call to the IUnknown::QueryInterface +// method, requesting the IUnknown interface, will always return the same +// pointer. +begin + if TestUnknown <> nil then + begin + if Supports(TestUnknown, IUnknown, Result) then + IUnknown(Result)._Release + // Don't actually need it just need the pointer value + else + Result := TestUnknown + end + else + Result := TestUnknown +end; + +function TDropSource.SetData(const FormatEtc: TFormatEtc; var Medium: TStgMedium; fRelease: BOOL): HRESULT; +var + Index: Integer; +begin + // See if we already have a format of that type available. + Index := FindFormatEtc(FormatEtc); + if Index > -1 then + begin + // Yes we already have that format type stored. Just use the TClipboardFormat + // in the List after releasing the data + ReleaseStgMedium(Formats[Index].StgMedium); + FillChar(Formats[Index].StgMedium, SizeOf(Formats[Index].StgMedium), #0); + end + else + begin + // It is a new format so create a new TDataObjectInfo record and store it in + // the Format array + SetLength(Formats, Length(Formats) + 1); + Formats[Length(Formats) - 1].FormatEtc := FormatEtc; + Index := Length(Formats) - 1; + end; + // The data is owned by the TClipboardFormat object + Formats[Index].OwnedByDataObject := True; + + if fRelease then + begin + // We are simply being given the data and we take control of it. + Formats[Index].StgMedium := Medium; + Result := S_OK + end + else + // We need to reference count or copy the data and keep our own references + // to it. + Result := StgMediumIncRef(Medium, Formats[Index].StgMedium, True); + + // Can get a circular reference if the client calls GetData then calls + // SetData with the same StgMedium. Because the unkForRelease and for + // the IDataObject can be marshalled it is necessary to get pointers that + // can be correctly compared. + // See the IDragSourceHelper article by Raymond Chen at MSDN. + if MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease <> nil then + begin + if CanonicalIUnknown(Self) = CanonicalIUnknown(IUnknown(MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease)) then + begin + IUnknown(MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease)._Release; + MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease := nil + end; + end; +end; + +{ Platform DragDrop } + +procedure TPlatformWin.AddRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); +begin + Include(FEnabledInteractiveGestures, ARec); +end; + +procedure TPlatformWin.BeginDragDrop(AForm: TCommonCustomForm; const Data: TDragObject; ABitmap: TBitmap); +var + DropSource: TDropSource; + DropEffect: Longint; + DragSourceHelper: IDragSourceHelper; + SHDRAGIMAGE: TSHDRAGIMAGE; + DragMousePos, Offset: TPointF; + Control: IControl; +begin + DropSource := TDropSource.Create(nil); + try + DropSource.Data := Data; + + DragMousePos := GetMousePos; + // CoCreateInstance takes too long to execute so mouse position becomes different when called later + if (Succeeded(CoCreateInstance(CLSID_DragDropHelper, nil, CLSCTX_INPROC_SERVER, IDragSourceHelper, DragSourceHelper) + )) + and (DragSourceHelper <> nil) then + begin + if Data.Source is TControl then + Offset := TControl(Data.Source).AbsoluteToLocal(AForm.ScreenToClient(DragMousePos)) + else + Offset := PointF((ABitmap.Width div 2), ABitmap.Height div 2); + + FillChar(SHDRAGIMAGE, SizeOf(SHDRAGIMAGE), 0); + SHDRAGIMAGE.sizeDragImage.cx := ABitmap.Width; + SHDRAGIMAGE.sizeDragImage.cy := ABitmap.Height; + SHDRAGIMAGE.ptOffset.X := Round(Offset.X); + SHDRAGIMAGE.ptOffset.Y := Round(Offset.Y); + SHDRAGIMAGE.hbmpDragImage := BitmapToWinBitmap(ABitmap, True); + if not Succeeded(DragSourceHelper.InitializeFromBitmap(@SHDRAGIMAGE, DropSource)) then + DeleteObject(SHDRAGIMAGE.hbmpDragImage); + end; + + if not IsThemeActive then + begin + SetCursor(crDrag); + FDragAndDropActive := True; + try + DoDragDrop(DropSource, DropSource, DROPEFFECT_LINK or DROPEFFECT_COPY or DROPEFFECT_MOVE, DropEffect); + finally + FDragAndDropActive := False; + SetCursor(crDefault); + end; + end + else + try + FDragAndDropActive := True; + DoDragDrop(DropSource, DropSource, DROPEFFECT_LINK or DROPEFFECT_COPY or DROPEFFECT_MOVE, DropEffect); + finally + FDragAndDropActive := False; + end; + + if (DropEffect = 0) and Supports(Data.Source, IControl, Control) then + Control.DragEnd; + + if DragSourceHelper <> nil then + DragSourceHelper := nil; + finally + DropSource.Free; + end; +end; + +{ Mouse } + +procedure TPlatformWin.SetCursor(const ACursor: TCursor); +const + CustomCursorMap: array [crSizeAll .. crNone] of PChar = ( + nil, nil, nil, nil, nil, IDC_SQLWAIT, IDC_MULTIDRAG, nil, nil, IDC_NODROP, IDC_DRAG, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil); + + CursorMap: array [crSizeAll .. crNone] of PChar = ( + IDC_SIZEALL, IDC_HAND, IDC_HELP, IDC_APPSTARTING, IDC_NO, nil, nil, IDC_SIZENS, IDC_SIZEWE, nil, nil, IDC_WAIT, + IDC_UPARROW, IDC_SIZEWE, IDC_SIZENWSE, IDC_SIZENS, IDC_SIZENESW, IDC_SIZEALL, IDC_IBEAM, IDC_CROSS, IDC_ARROW, nil); + + function IsDefaultOrInvalidCursor(const ACursor: TCursor): Boolean; + begin + Result := (ACursor = crDefault) or not InRange(ACursor, crSizeAll, crNone); + end; + +var + NewCursor: HCURSOR; +begin + if not FDragAndDropActive then + begin + // We don't set cursor by default, when we create window. So we should use crArrow cursor by default. + if IsDefaultOrInvalidCursor(ACursor) and not (csDesigning in Application.ComponentState) then + FCursor := crArrow + else + FCursor := ACursor; + + if InRange(FCursor, crSizeAll, crNone) then + begin + if CustomCursorMap[FCursor] <> nil then + NewCursor := LoadCursorW(HInstance, CustomCursorMap[FCursor]) + else + NewCursor := LoadCursorW(0, CursorMap[FCursor]); + Winapi.Windows.SetCursor(NewCursor); + end; + end; +end; + +function TPlatformWin.GetCursor: TCursor; +begin + Result := FCursor; +end; + +function TPlatformWin.GetFullScreen(const AForm: TCommonCustomForm): Boolean; +var + LFSParam: TFullScreenParams; +begin + Result := False; + if FFullScreenSupport.TryGetValue(AForm, LFSParam) then + Result := LFSParam.IsFullScreen; +end; + +function TPlatformWin.GetImmManager(const Index: TCommonCustomForm): TImmManager; +begin + Result := FImmManagers[Index]; +end; + +procedure TPlatformWin.SetFullScreen(const AForm: TCommonCustomForm; const AValue: Boolean); +var + LFSParam: TFullScreenParams; + LClean: TFullScreenParams; +begin + RaiseIfNil(AForm, 'AForm'); + + if AValue and not (TFmxFormState.Showing in AForm.FormState) then + AForm.Visible := True; + FillChar(LFSParam, SizeOf(LFSParam), 0); + if not FFullScreenSupport.TryGetValue(AForm, LFSParam) then + FFullScreenSupport.Add(AForm, LFSParam); + if AValue and (AForm.Visible or (TFmxFormState.Showing in AForm.FormState)) then + begin + LFSParam.WindowState := AForm.WindowState; + LFSParam.BorderStyle := AForm.BorderStyle; + if AForm.WindowState = TWindowState.wsNormal then + begin + LFSParam.Size := TSizeF.Create(AForm.Width, AForm.Height); + LFSParam.Position := TPointF.Create(AForm.Left, AForm.Top); + end; + FFullScreenSupport.Items[AForm] := LFSParam; + if AForm.WindowState = TWindowState.wsMinimized then + AForm.WindowState := TWindowState.wsMaximized; + AForm.BorderStyle := TFmxFormBorderStyle.None; + AForm.WindowState := TWindowState.wsMaximized; + end + else + begin + LClean := LFSParam; + LClean.Clean; + FFullScreenSupport.Items[AForm] := LClean; + if (LFSParam.Size.Width > 0) and (LFSParam.Size.Height > 0) then + begin + AForm.BorderStyle := LFSParam.BorderStyle; + AForm.SetBoundsF(LFSParam.Position.X, LFSParam.Position.Y, LFSParam.Size.Width, LFSParam.Size.Height); + AForm.WindowState := LFSParam.WindowState; + end; + end; +end; + +procedure TPlatformWin.SetShowFullScreenIcon(const AForm: TCommonCustomForm; const AValue: Boolean); +begin +end; + +function TPlatformWin.GetMousePos: TPointF; +var + P: TPoint; +begin + GetCursorPos(P); + Result := MultiDisplayWin.PxToDp(P); +end; + +function TPlatformWin.GetFormInfo(const Index: TCommonCustomForm): TFormInfo; +begin + Result := FFormsInfo[Index]; +end; + +function TPlatformWin.FindForm(const AHandle: TWindowHandle): TCommonCustomForm; +begin + RaiseIfNil(AHandle, 'AHandle'); + + if AHandle is TWinWindowHandle then + Result := TWinWindowHandle(AHandle).Form + else + Result := nil; +end; + +function TPlatformWin.RegisterKeyMapping(const PlatformKey, VirtualKey: Word; const KeyKind: TKeyKind): Boolean; +begin + Result := FKeyMapping.RegisterKeyMapping(PlatformKey, VirtualKey, KeyKind); +end; + +function TPlatformWin.UnregisterKeyMapping(const PlatformKey: Word): Boolean; +begin + Result := FKeyMapping.UnregisterKeyMapping(PlatformKey); +end; + +function TPlatformWin.PlatformKeyToVirtualKey(const PlatformKey: Word; var KeyKind: TKeyKind): Word; +begin + Result := FKeyMapping.PlatformKeyToVirtualKey(PlatformKey, KeyKind); +end; + +function TPlatformWin.VirtualKeyToPlatformKey(const VirtualKey: Word): Word; +begin + Result := FKeyMapping.VirtualKeyToPlatformKey(VirtualKey); +end; + +procedure RegisterApplicationHWNDProc(const Proc: TApplicationHWNDProc); +begin + if PlatformWin <> nil then + PlatformWin.ApplicationHWNDProc := Proc + else + raise EArgumentNilException.Create(SArgumentNil); +end; + +{ TFullScreenParams } + +procedure TFullScreenParams.Clean; +begin + Self.BorderStyle := TFmxFormBorderStyle.None; + Self.WindowState := TWindowState.wsMaximized; +end; + +function TFullScreenParams.IsFullScreen: Boolean; +begin + Result := not ((Self.BorderStyle = TFmxFormBorderStyle.None) and (Self.WindowState = TWindowState.wsMaximized)); +end; + +{ TImmManager } + +constructor TImmManager.Create(const AForm: TCommonCustomForm); +begin + FForm := AForm; +end; + +function TImmManager.GetComposition(const AContext: HIMC): string; +var + BufferLength: Integer; +begin + BufferLength := ImmGetCompositionString(AContext, GCS_COMPSTR, nil, 0); + SetLength(Result, BufferLength div SizeOf(Char)); + ImmGetCompositionString(AContext, GCS_COMPSTR, PChar(Result), BufferLength); +end; + +function TImmManager.GetFormHandle: HWND; +begin + Result := FormToHWND(Form); +end; + +function TImmManager.GetResultComposition(const AContext: HIMC): string; +var + BufferLength: Integer; +begin + BufferLength := ImmGetCompositionString(AContext, GCS_RESULTSTR, nil, 0); + SetLength(Result, BufferLength div SizeOf(Char)); + ImmGetCompositionString(AContext, GCS_RESULTSTR, PChar(Result), BufferLength); +end; + +procedure TImmManager.ProcessImeParameters(const AContext: HIMC; const AParameters: LPARAM; const ATextService: TTextServiceWin); +var + CompositionString: string; +begin + CompositionString := GetComposition(AContext); + ATextService.InternalSetMarkedText(CompositionString); + + if AParameters and GCS_COMPATTR <> 0 then + UpdateCompositionAttributes(AContext, ATextService); + + if AParameters and GCS_CURSORPOS <> 0 then + UpdateCompositionCursorPos(AContext, ATextService) + else if GetKeyboardLayout(0) and $FFFF = TTextServiceWin.LCID_Korean_Default then + // Native Korean IME Input system doesn't use cursor position. Instead of it it hightlights the last character in + // marked text. Since FMX doesn't support displaying character selection, we just move caret in the end of marked + // text and use underline attribute for highlighting last character. + ATextService.MarkedTextCursorPosition := Max(1, ATextService.MarkedText.Length); +end; + +procedure TImmManager.UpdateCompositionAttributes(const AContext: HIMC; const ATextService: TTextServiceWin); +var + BufferLength: Integer; +begin + BufferLength := ImmGetCompositionString(AContext, GCS_COMPATTR, nil, 0); + if BufferLength > 0 then + begin + SetLength(ATextService.CompAttrBuf, BufferLength); + ImmGetCompositionString(AContext, GCS_COMPATTR, @(ATextService.CompAttrBuf[0]), BufferLength); + end; +end; + +procedure TImmManager.UpdateCompositionCursorPos(const AContext: HIMC; const ATextService: TTextServiceWin); +var + CursorPos: Integer; +begin + CursorPos := ImmGetCompositionString(AContext, GCS_CURSORPOS, nil, 0); + if CursorPos >= 0 then + ATextService.MarkedTextCursorPosition := CursorPos; +end; + +function TImmManager.UpdateIMEWindowPosition: LRESULT; + + function DpToPx(const APoint: TPointF): TPoint; overload; + var + FormScale: Single; + begin + FormScale := Form.Handle.Scale; + Result := TPointF.Create(APoint.X * FormScale, APoint.Y * FormScale).Round; + end; + + function DpToPx(const ARect: TRectF): TRect; overload; + begin + Result.TopLeft := DpToPx(ARect.TopLeft); + Result.BottomRight := DpToPx(ARect.BottomRight); + end; + + function DefineControlRect(const AFocusedControl: IControl; const ATextInput: ITextInput): TRectF; + var + SelectionRect: TRectF; + begin + SelectionRect := ATextInput.GetSelectionRect; + Result.TopLeft := Form.ScreenToClient(AFocusedControl.LocalToScreen(SelectionRect.TopLeft)); + Result.BottomRight := Form.ScreenToClient(AFocusedControl.LocalToScreen(SelectionRect.BottomRight)); + end; + +var + IMC: HIMC; + Candidate: TCandidateForm; + TextInput: ITextInput; +begin + Result := 0; + + if not Supports(Form.Focused, ITextInput, TextInput) then + Exit; + + IMC := ImmGetContext(FormHandle); + if IMC = 0 then + Exit; + + try + Candidate.dwIndex := 0; + Candidate.dwStyle := CFS_POINT; + Candidate.ptCurrentPos := DpToPx(TextInput.GetTargetClausePointF); + Result := LRESULT(ImmSetCandidateWindow(IMC, @Candidate)); + + Candidate.dwStyle := CFS_EXCLUDE; + Candidate.rcArea := DpToPx(DefineControlRect(Form.Focused, TextInput)); + ImmSetCandidateWindow(IMC, @Candidate); + finally + ImmReleaseContext(FormHandle, IMC); + end; +end; + +procedure TImmManager.WMComposition(var Message: TMessage); +var + IMC: HIMC; + S: string; + TextInput: ITextInput; + I: Integer; + Key: Word; + Ch: Char; + IsProcessed: Boolean; +begin + UpdateIMEWindowPosition; + + IsProcessed := False; + + // User selected result string + if Message.LParam and GCS_RESULTSTR <> 0 then + begin + IsProcessed := True; + IMC := ImmGetContext(FormHandle); + if IMC <> 0 then + begin + try + if Supports(Form.Focused, ITextInput, TextInput) then + begin + TTextServiceWin(TextInput.GetTextService).Reset; + TextInput.IMEStateUpdated; + end; + S := GetResultComposition(IMC); + finally + ImmReleaseContext(FormHandle, IMC); + end; + + for I := 0 to S.Length - 1 do + begin + Key := 0; + Ch := S.Chars[I]; + Form.KeyDown(Key, Ch, []); + Form.KeyUp(Key, Ch, []); + end; + end; + end; + + // User is inputting current composition string + if Message.LParam and GCS_COMPSTR <> 0 then + begin + IsProcessed := True; + IMC := ImmGetContext(FormHandle); + if IMC <> 0 then + try + if Supports(Form.Focused, ITextInput, TextInput) then + begin + ProcessImeParameters(IMC, Message.LParam, TTextServiceWin(TextInput.GetTextService)); + TextInput.IMEStateUpdated; + end; + finally + ImmReleaseContext(FormHandle, IMC); + end; + end; + + if IsProcessed then + Message.Result := 0 + else + Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam); +end; + +procedure TImmManager.WMEndComposition(var Message: TMessage); +var + TextInput: ITextInput; +begin + UpdateIMEWindowPosition; + + if Supports(Form.Focused, ITextInput, TextInput) then + TTextServiceWin(TextInput.GetTextService).InternalEndIMEInput; +end; + +procedure TImmManager.WMNotify(var Message: TMessage); +begin + if Message.WParam = IMN_OPENCANDIDATE then + Message.Result := UpdateIMEWindowPosition + else + Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam); +end; + +procedure TImmManager.WMSetContext(var Message: TMessage); +begin + Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam and ISC_SHOWUIALLCANDIDATEWINDOW); +end; + +procedure TImmManager.WMStartComposition(var Message: TMessage); +var + TextInput: ITextInput; +begin + UpdateIMEWindowPosition; + + if Supports(Form.Focused, ITextInput, TextInput) then + TTextServiceWin(TextInput.GetTextService).InternalStartIMEInput; + + if System.SysUtils.Win32MajorVersion >= 6 then + Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam) + else + Message.Result := 0; +end; + +procedure ShutDown; +begin + if IsLibrary then + begin + FMX.Canvas.D2D.UnregisterCanvasClasses; + FMX.Context.DX11.UnregisterContextClasses; + FMX.Forms.FinalizeForms; + end; +end; + +initialization + OleInitialize(nil); + CapturedGestureControl := nil; + LastMousePos := ImpossibleMousePosition; +end. diff --git a/src/lib/FMX/DX 11.0/FMX.TreeView.pas b/src/lib/FMX/DX 11.0/FMX.TreeView.pas new file mode 100644 index 0000000..877a63d --- /dev/null +++ b/src/lib/FMX/DX 11.0/FMX.TreeView.pas @@ -0,0 +1,2824 @@ +{*******************************************************} +{ } +{ Delphi FireMonkey Platform } +{ } +{ Copyright(c) 2011-2021 Embarcadero Technologies, Inc. } +{ All rights reserved } +{ } +{*******************************************************} + +unit FMX.TreeView; + +interface + +{$SCOPEDENUMS ON} + +uses + System.Classes, System.Types, System.UITypes, System.Generics.Collections, System.ImageList, FMX.Types, FMX.Layouts, + FMX.StdCtrls, FMX.Controls, FMX.TextLayout, FMX.Graphics, FMX.ActnList, FMX.ImgList; + +type + +{ TTreeViewItem } + + TCustomTreeView = class; + + TTreeViewItem = class(TTextControl, IItemsContainer, IGlyph) + public const + DefaultHeight = 19; + private + FIsExpanded: Boolean; + FExpander: TControl; + FButton: TCustomButton; + FCheck: TCheckBox; + FGlobalIndex: Integer; + FIsChecked: Boolean; + FIsSelected: Boolean; + FContent: TContent; + FNoItemsContent: TLayout; + FVisibleCount: Integer; + FMinItemSize: TSizeF; + FCustomHeight: Boolean; + FChildrenOffset: Single; + FOldButtonVisible: Boolean; + FOldCheckVisible: Boolean; + FOldChecked: Boolean; + FGlyph: TGlyph; + FOldGlyphVisible: Boolean; + FImageLink: TGlyphImageLink; + [Weak] FImages: TCustomImageList; + FCustomChildrenOffset: Single; + function GetLevelOffset: Single; + procedure DoButtonClick(Sender: TObject); + procedure DoCheckClick(Sender: TObject); + function GetCount: Integer; + procedure SetIsChecked(const Value: Boolean); + procedure UpdateCheckBoxVisibility; + procedure UpdateExpandedButtonVisibility; + procedure SetIsSelected(const Value: Boolean); + procedure RecountVisibleItems; + procedure RequestRecount; + function GetImages: TCustomImageList; + procedure SetImages(const Value: TCustomImageList); + { IGlyph } + function GetImageIndex: TImageIndex; + procedure SetImageIndex(const Value: TImageIndex); + function GetImageList: TBaseImageList; inline; + procedure SetImageList(const Value: TBaseImageList); + function IGlyph.GetImages = GetImageList; + procedure IGlyph.SetImages = SetImageList; + { IItemsContainer } + function IItemsContainer.GetItemsCount = GetCount; + function GetItem(const AIndex: Integer): TFmxObject; + function GetMinItemSize: TSizeF; + procedure OnExpandButtonStyleLookup(Sender: TObject); + procedure UpdateChildrenOffset; + procedure SetCustomChildrenOffset(const Value: Single); + function IsCustomChildrenOffsetStored: Boolean; + protected + procedure ChangeOrder; override; + procedure ApplyStyle; override; + procedure FreeStyle; override; + procedure DragEnd; override; + function GetTextSettingsClass: TTextSettingsInfo.TCustomTextSettingsClass; override; + function CalcMinSize: TSizeF; + procedure InvalidateTextSize; + /// Determines whether the ImageIndex property needs to be stored in the fmx-file + /// True if ImageIndex property needs to be stored in the fmx file + function ImageIndexStored: Boolean; virtual; + /// Should be called when you change an instance or reference to instance of TBaseImageList or the + /// ImageIndex property + /// See also FMX.ActnList.IGlyph + procedure ImagesChanged; virtual; + procedure DoChanged; override; + function IsSizeStored: Boolean; override; + function IsPositionStored: Boolean; override; + procedure SetText(const Value: string); override; + procedure DoAddObject(const AObject: TFmxObject); override; + procedure DoInsertObject(Index: Integer; const AObject: TFmxObject); override; + procedure DoRemoveObject(const AObject: TFmxObject); override; + function EnterChildren(AObject: IControl): Boolean; override; + function GetAbsoluteRect: TRectF; override; + function DoGetUpdateRect: TRectF; override; + procedure ContentAddObject(const AObject: TFmxObject); virtual; + procedure ContentInsertObject(const AIndex: Integer; const AObject: TFmxObject); virtual; + procedure ContentRemoveObject(const AObject: TFmxObject); virtual; + procedure DefineProperties(Filer: TFiler); override; + procedure Paint; override; + procedure SetVisible(const Value: Boolean); override; + procedure SetHeight(const Value: Single); override; + procedure SetIsExpanded(const Value: Boolean); virtual; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Sort(Compare: TFmxObjectSortCompare); override; + function ItemByPoint(const X, Y: Single): TTreeViewItem; + function ItemByIndex(const Idx: Integer): TTreeViewItem; + function TreeView: TCustomTreeView; + function Level: Integer; + function ParentItem: TTreeViewItem; + procedure Select; + procedure Deselect; + procedure ExpandAll; + procedure CollapseAll; + procedure Expand; + procedure Collapse; + procedure Inflate; override; + property Count: Integer read GetCount; + property VisibleCount: Integer read FVisibleCount; + property GlobalIndex: Integer read FGlobalIndex; + property MinItemSize: TSizeF read GetMinItemSize; + /// The actual offset in the right of children elements + property ChildrenOffset: Single read FChildrenOffset; + /// The offset of children elements which specified by user if this value is greater or equal to + /// zero otherwise the default value is used. This value affects + /// ChildrenOffset property + property CustomChildrenOffset: Single read FCustomChildrenOffset write SetCustomChildrenOffset + stored IsCustomChildrenOffsetStored nodefault; + property Items[const Index: Integer]: TTreeViewItem read ItemByIndex; default; + property Width: Single read GetWidth; + /// The list of images. Can be nil. See also FMX.ActnList.IGlyph + property Images: TCustomImageList read GetImages; + published + property Align; + property AutoTranslate default True; + property ClipChildren default False; + property ClipParent default False; + property Cursor default crDefault; + property DragMode default TDragMode.dmManual; + property EnableDragHighlight default True; + property Enabled default True; + property StyledSettings; + property TextSettings; + property Locked default False; + property Height; + property HelpContext; + property HelpKeyword; + property HelpType; + {triggers} + property IsChecked: Boolean read FIsChecked write SetIsChecked; + property IsExpanded: Boolean read FIsExpanded write SetIsExpanded; + property IsSelected: Boolean read FIsSelected write SetIsSelected; + /// Zero based index of an image. The default is -1. + /// See also FMX.ActnList.IGlyph + /// If non-existing index is specified, an image is not drawn and no exception is raised + property ImageIndex: TImageIndex read GetImageIndex write SetImageIndex stored ImageIndexStored; + property Padding; + property Opacity; + property Margins; + property PopupMenu; + property Position; + property RotationAngle; + property RotationCenter; + property Scale; + property Size; + property StyleLookup; + property TabOrder; + property TabStop; + property Text; + property Visible default True; + property ParentShowHint; + {events} + property OnApplyStyleLookup; + {Drag and Drop events} + property OnDragEnter; + property OnDragLeave; + property OnDragOver; + property OnDragDrop; + property OnDragEnd; + {Mouse events} + property OnClick; + property OnDblClick; + property OnMouseDown; + property OnMouseMove; + property OnMouseUp; + property OnMouseWheel; + property OnMouseEnter; + property OnMouseLeave; + property OnPainting; + property OnPaint; + property OnResize; + property OnResized; + end; + +{ TTreeView } + + TOnCompareTreeViewItemEvent = function(Item1, Item2: TTreeViewItem): Integer of object; + TOnTreeViewDragChange = procedure(SourceItem, DestItem: TTreeViewItem; + var Allow: Boolean) of object; + +{ TTreeView } + + TCustomTreeView = class(TScrollBox, IItemsContainer, IInflatableContent, IGlyph) + private + FMouseSelecting: Boolean; + FOnChange: TNotifyEvent; + FSelected: TTreeViewItem; + FItemHeight: Single; + FCountExpanded: Integer; + FShowCheckboxes: Boolean; + FOnChangeCheck: TNotifyEvent; + FSorted: Boolean; + FOnCompare: TOnCompareTreeViewItemEvent; + FMultiSelect: Boolean; + FFirstSelect: TTreeViewItem; + FFocusedSelection: TControl; + FSelection: TControl; + FSelections: TControlList; + FAllowDrag: Boolean; + FStartDrag: Boolean; + FDragItem: TTreeViewItem; + FOnDragChange: TOnTreeViewDragChange; + FGlobalList: TList; + FAlternatingRowBackground: Boolean; + FOddFill: TBrush; + FFirstVisibleItem, FLastVisibleItem: Integer; + FNoItemsContent: TContent; + [Weak] FHoveredItem: TTreeViewItem; + FTextLayout: TTextLayout; + FToInflate: TList; + FInflater: TContentInflater; + FSelectionChanging: Boolean; + FImageLink: TGlyphImageLink; + [Weak] FImages: TCustomImageList; + procedure SetItemHeight(const Value: Single); + procedure SetCheckboxesVisibility(const Value: Boolean); + function GetTreeItem(Index: Integer): TTreeViewItem; + procedure SetSorted(const Value: Boolean); + procedure SortItems; + procedure SelectRange(const Item1, Item2: TTreeViewItem); + procedure UpdateSelection; + procedure UpdateVisibleItems; + procedure UpdateGlobalIndexes(const Force: Boolean = False); + procedure SetAllowDrag(const Value: Boolean); + function GetCount: Integer; + procedure SetAlternatingRowBackground(const Value: Boolean); + procedure SetHoveredItem(const Value: TTreeViewItem); + function LocalPointToHoveredItemLocalPoint(const AX, AY: Single): TPointF; + function GetImages: TCustomImageList; + procedure SetImages(const Value: TCustomImageList); + { IGlyph } + function GetImageIndex: TImageIndex; + procedure SetImageIndex(const Value: TImageIndex); + function GetImageList: TBaseImageList; inline; + procedure SetImageList(const Value: TBaseImageList); + function IGlyph.GetImages = GetImageList; + procedure IGlyph.SetImages = SetImageList; + { IItemsContainer } + function IItemsContainer.GetItemsCount = GetCount; + function GetItem(const AIndex: Integer): TFmxObject; + function MouseInContentLayout(const X, Y: Single): Boolean; + function GetGlobalCount: Integer; + procedure InvalidateGlobalList; + procedure ItemSizeMightHaveChanged(const AItem: TTreeViewItem); + { Inflatable } + function GetInflatableItems: TList; + procedure NotifyInflated; + protected + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + procedure DoUpdateAniCalculations(const AAniCalculations: TScrollCalculations); override; + procedure Loaded; override; + /// Should be called when you change an instance or reference to instance of TBaseImageList or + /// ImageIndex property + /// See also FMX.ActnList.IGlyph + procedure ImagesChanged; virtual; + { Selection } + procedure ClearSelection; + procedure SelectAll; + procedure SetSelected(const Value: TTreeViewItem); virtual; + { Styles } + procedure ApplyStyle; override; + procedure FreeStyle; override; + { Tree View Events } + procedure DoChange; virtual; + procedure DoChangeCheck(const Item: TTreeViewItem); virtual; + { Focus } + procedure DoEnter; override; + procedure DoExit; override; + { Children structure } + procedure DoAddObject(const AObject: TFmxObject); override; + procedure DoInsertObject(Index: Integer; const AObject: TFmxObject); override; + procedure DoRemoveObject(const AObject: TFmxObject); override; + function IsAddToContent(const AObject: TFmxObject): Boolean; override; + procedure ContentAddObject(const AObject: TFmxObject); override; + procedure ContentInsertObject(Index: Integer; const AObject: TFmxObject); override; + procedure ContentRemoveObject(const AObject: TFmxObject); override; + procedure ContentBeforeRemoveObject(AObject: TFmxObject); override; + { Content Scrolling } + procedure ViewportPositionChange(const OldViewportPosition, NewViewportPosition: TPointF; + const ContentSizeChanged: Boolean); override; + function CreateScrollContent: TScrollContent; override; + function DoCalcContentBounds: TRectF; override; + function GetItemRect(const Item: TTreeViewItem): TRectF; + { Painting } + procedure DoContentPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); + function IsOpaque: Boolean; override; + { Mouse events } + procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + procedure MouseMove(Shift: TShiftState; X, Y: Single); override; + procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + procedure MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); override; + procedure MouseClick(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + { Keyboards events } + procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); override; + procedure KeyUp(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); override; + { Drag And Drop } + procedure DragOver(const Data: TDragObject; const Point: TPointF; var Operation: TDragOperation); override; + procedure DragDrop(const Data: TDragObject; const Point: TPointF); override; + procedure DragLeave; override; + function ObjectAtPoint(P: TPointF): IControl; override; + procedure ChangeOrder; override; + procedure ItemExpanded(const Item: TTreeViewItem); + property HoveredItem: TTreeViewItem read FHoveredItem write SetHoveredItem; + property FirstSelectedItem: TTreeViewItem read FFirstSelect; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Clear; + procedure ExpandAll; + procedure CollapseAll; + function ItemByText(const AText: string): TTreeViewItem; + function ItemByPoint(const X, Y: Single): TTreeViewItem; + function ItemByIndex(const Idx: Integer): TTreeViewItem; + function ItemByGlobalIndex(const Idx: Integer): TTreeViewItem; + property Count: Integer read GetCount; + property GlobalCount: Integer read GetGlobalCount; + property CountExpanded: Integer read FCountExpanded; + property Selected: TTreeViewItem read FSelected write SetSelected; + property Items[Index: Integer]: TTreeViewItem read GetTreeItem; + property AllowDrag: Boolean read FAllowDrag write SetAllowDrag; + property AlternatingRowBackground: Boolean read FAlternatingRowBackground write SetAlternatingRowBackground; + property ItemHeight: Single read FItemHeight write SetItemHeight; + /// The list of images. Can be nil. See also FMX.ActnList.IGlyph + property Images: TCustomImageList read GetImages write SetImages; + property MultiSelect: Boolean read FMultiSelect write FMultiSelect default False; + property ShowCheckboxes: Boolean read FShowCheckboxes write SetCheckboxesVisibility default False; + property Sorted: Boolean read FSorted write SetSorted default False; + property OnChange: TNotifyEvent read FOnChange write FOnChange; + property OnChangeCheck: TNotifyEvent read FOnChangeCheck write FOnChangeCheck; + property OnCompare: TOnCompareTreeViewItemEvent read FOnCompare write FOnCompare; + property OnDragChange: TOnTreeViewDragChange read FOnDragChange write FOnDragChange; + end; + + TTreeView = class(TCustomTreeView) + published + property StyleLookup; + property CanFocus default True; + property CanParentFocus; + property DisableFocusEffect default True; + property TabOrder; + property TabStop; + property AllowDrag default False; + property AlternatingRowBackground default False; + property Hint; + property ItemHeight; + property Images; + property MultiSelect default False; + property ShowCheckboxes default False; + property Sorted default False; + property ParentShowHint; + property ShowHint; + property OnCanFocus; + property OnChange; + property OnChangeCheck; + property OnCompare; + property OnDragChange; + property OnKeyDown; + property OnKeyUp; + end; + +implementation + +uses + System.Math, System.Math.Vectors, System.RTLConsts, System.SysUtils, FMX.Consts, FMX.Ani, FMX.Utils; + +type + TTreeViewItemContent = class(TContent) + private + FItem: TTreeViewItem; + protected + function GetFirstVisibleObjectIndex: Integer; override; + function GetLastVisibleObjectIndex: Integer; override; + function GetAbsoluteRect: TRectF; override; + function DoGetUpdateRect: TRectF; override; + procedure DoRealign; override; + procedure DoAddObject(const AObject: TFmxObject); override; + procedure DoInsertObject(Index: Integer; const AObject: TFmxObject); override; + procedure DoRemoveObject(const AObject: TFmxObject); override; + public + end; + +{ TTreeViewItemContent } + +procedure TTreeViewItemContent.DoAddObject(const AObject: TFmxObject); +begin + inherited DoAddObject(AObject); + if Parent is TTreeViewItem then + TTreeViewItem(Parent).ContentAddObject(AObject); +end; + +procedure TTreeViewItemContent.DoRemoveObject(const AObject: TFmxObject); +begin + inherited; + if Parent is TTreeViewItem then + TTreeViewItem(Parent).ContentRemoveObject(AObject); +end; + +procedure TTreeViewItemContent.DoInsertObject(Index: Integer; + const AObject: TFmxObject); +begin + inherited DoInsertObject(Index, AObject); + if Parent is TTreeViewItem then + TTreeViewItem(Parent).ContentInsertObject(Index, AObject); +end; + +procedure TTreeViewItemContent.DoRealign; +begin +end; + +function TTreeViewItemContent.GetAbsoluteRect: TRectF; +begin + if FItem <> nil then + Result := FItem.GetAbsoluteRect + else + Result := inherited; +end; + +function TTreeViewItemContent.DoGetUpdateRect: TRectF; +begin + if FItem <> nil then + Result := FItem.DoGetUpdateRect + else + Result := inherited; +end; + +function TTreeViewItemContent.GetFirstVisibleObjectIndex: Integer; +begin + Result := 0; +end; + +function TTreeViewItemContent.GetLastVisibleObjectIndex: Integer; +begin + if FItem.IsExpanded then + Result := ControlsCount + else + Result := 0; +end; + +{ TTreeViewItem } + +constructor TTreeViewItem.Create(AOwner: TComponent); +begin + inherited; + FImageLink := TGlyphImageLink.Create(Self); + AutoTranslate := True; + TextAlign := TTextAlign.Leading; + Size.SetSizeWithoutNotification(TSizeF.Create(Width, 0)); + FCustomHeight := False; + HitTest := False; + CanFocus := False; + FContent := TTreeViewItemContent.Create(Self); + FChildrenOffset := 0; + FCustomChildrenOffset := -1; + TTreeViewItemContent(FContent).FItem := Self; + FContent.Stored := False; + FContent.Parent := Self; + FContent.Locked := True; + FContent.HitTest := False; +end; + +procedure TTreeViewItem.ChangeOrder; +var + LTreeView : TCustomTreeView; +begin + inherited ChangeOrder; + LTreeView := TreeView; + if (LTreeView <> nil) and not LTreeView.IsUpdating then + begin + LTreeView.UpdateGlobalIndexes(True); + LTreeView.RealignContent; + end; +end; + +procedure TTreeViewItem.ContentAddObject(const AObject: TFmxObject); +var + LTreeView : TCustomTreeView; +begin + if not (AObject is TTreeViewItem) then + begin + if FNoItemsContent = nil then + begin + FNoItemsContent := TLayout.Create(nil); + FNoItemsContent.Parent := Self; + FNoItemsContent.SetBounds(0, 0, 0, 0); + FNoItemsContent.Stored := False; + FNoItemsContent.Locked := True; + FNoItemsContent.HitTest := False; + end; + FNoItemsContent.AddObject(AObject) + end + else + begin + LTreeView := TreeView; + if LTreeView <> nil then + begin + if [csLoading, csDestroying] * LTreeView.ComponentState = [] then + TTreeViewItem(AObject).SetImages(LTreeView.Images); + LTreeView.InvalidateGlobalList; + LTreeView.RealignContent; + end; + end; +end; + +type + TTreeViewItemTextSettings = class(TTextSettingsInfo.TCustomTextSettings) + public + constructor Create(const AOwner: TPersistent); override; + property WordWrap default False; + published + property Font; + property FontColor; + property HorzAlign; + end; + +{ TTreeViewItemTextSettings } + +constructor TTreeViewItemTextSettings.Create(const AOwner: TPersistent); +begin + inherited; + WordWrap := False; +end; + +function TTreeViewItem.GetTextSettingsClass: TTextSettingsInfo.TCustomTextSettingsClass; +begin + Result := TTreeViewItemTextSettings; +end; + +procedure TTreeViewItem.ContentInsertObject(const AIndex: Integer; + const AObject: TFmxObject); +begin + ContentAddObject(AObject); +end; + +procedure TTreeViewItem.ContentRemoveObject(const AObject: TFmxObject); +var + LTreeView: TCustomTreeView; +begin + if AObject is TTreeViewItem then + begin + // After removing child item, we need recalculate Visible Items Count + // and update Visible of 'Expand' button + RecountVisibleItems; + UpdateExpandedButtonVisibility; + + TTreeViewItem(AObject).Deselect; + LTreeView := TreeView; + if LTreeView <> nil then + begin + if [csLoading, csDestroying] * LTreeView.ComponentState = [] then + TTreeViewItem(AObject).SetImages(nil); + LTreeView.InvalidateGlobalList; + LTreeView.RealignContent; + end; + end; +end; + +procedure TTreeViewItem.RecountVisibleItems; +var + I: Integer; +begin + FVisibleCount := 0; + for I := 0 to Count - 1 do + if FContent.Controls[I].IsVisible then + Inc(FVisibleCount); +end; + +procedure TTreeViewItem.RequestRecount; +var + LTreeView: TCustomTreeView; +begin + LTreeView := TreeView; + if LTreeView <> nil then + begin + LTreeView.InvalidateGlobalList; + LTreeView.InvalidateContentSize; + end; +end; + +procedure TTreeViewItem.DragEnd; +var + LTreeView : TCustomTreeView; +begin + inherited; + DragLeave; + LTreeView := TreeView; + if (LTreeView <> nil) and (LTreeView.FDragItem <> nil) then + begin + LTreeView.FDragItem.RemoveFreeNotify(LTreeView); + LTreeView.FDragItem := nil; + end; +end; + +function TTreeViewItem.GetAbsoluteRect: TRectF; +var + I: Integer; +begin + Result := inherited GetAbsoluteRect; + if IsExpanded and (Count > 0) then + begin + for I := 0 to Count - 1 do + Result := UnionRect(Result, Items[I].AbsoluteRect); + end; +end; + +function TTreeViewItem.DoGetUpdateRect: TRectF; +var + I: Integer; +begin + Result := inherited DoGetUpdateRect; + if IsExpanded and (Count > 0) then + for I := 0 to Count - 1 do + Result := UnionRect(Result, Items[I].UpdateRect); +end; + +function TTreeViewItem.GetLevelOffset: Single; +var + Item: TTreeViewItem; + Offs: Single; + function NextLevel(var Item: TTreeViewItem): Boolean; + var + P: TFmxObject; + begin + Result := False; + P := Item.Parent; + if (P is TContent) then + P := P.Parent; + if P is TTreeViewItem then + begin + Result := True; + Item := TTreeViewItem(P); + end; + end; +begin + Result := 0; + Item := self; + while NextLevel(Item) do + begin + Offs := Item.ChildrenOffset; + Result := Result + Offs; + end; +end; + +function TTreeViewItem.GetCount: Integer; +begin + Result := FContent.ControlsCount; +end; + +procedure TTreeViewItem.DefineProperties(Filer: TFiler); +begin + inherited; + Filer.DefineProperty('HitTest', IgnoreBooleanValue, nil, False); // do not localize + Filer.DefineProperty('Width', IgnoreFloatValue, nil, False); // do not localize +end; + +procedure TTreeViewItem.Deselect; +begin + IsSelected := False; +end; + +destructor TTreeViewItem.Destroy; + procedure ClearRef(var Value: TTreeViewItem); + begin + if Value = Self then + Value := nil; + end; +var + LTreeView: TCustomTreeView; +begin + LTreeView := TreeView; + if LTreeView <> nil then + begin + ClearRef(LTreeView.FFirstSelect); + ClearRef(LTreeView.FDragItem); + ClearRef(LTreeView.FSelected); + if LTreeView.FGlobalList <> nil then + LTreeView.FGlobalList.Remove(Self); + end; + FImageLink.DisposeOf; + FImageLink := nil; + inherited; +end; + +procedure TTreeViewItem.DoAddObject(const AObject: TFmxObject); +begin + if AObject is TTreeViewItem then + begin + if FUpdating > TTreeViewItem(AObject).FUpdating then + TTreeViewItem(AObject).BeginUpdate; + FContent.AddObject(AObject); + RecountVisibleItems; + UpdateExpandedButtonVisibility; + if IsExpanded then + RequestRecount; + end + else + inherited; +end; + +procedure TTreeViewItem.DoInsertObject(Index: Integer; const AObject: TFmxObject); +begin + if AObject is TTreeViewItem then + begin + if FUpdating > TTreeViewItem(AObject).FUpdating then + TTreeViewItem(AObject).BeginUpdate; + FContent.InsertObject(Index, AObject); + RecountVisibleItems; + UpdateExpandedButtonVisibility; + if IsExpanded then + RequestRecount; + end + else + inherited; +end; + +procedure TTreeViewItem.DoRemoveObject(const AObject: TFmxObject); +begin + if (AObject is TTreeViewItem) and (TTreeViewItem(AObject).TreeView = TreeView) then + begin + TTreeViewItem(AObject).Parent := nil; + TTreeViewItem(AObject).Deselect; + RecountVisibleItems; + UpdateExpandedButtonVisibility; + if IsExpanded then + RequestRecount; + end + else + inherited; +end; + +function TTreeViewItem.GetItem(const AIndex: Integer): TFmxObject; +begin + Result := Items[AIndex]; +end; + +function TTreeViewItem.ItemByPoint(const X, Y: Single): TTreeViewItem; +var + I: Integer; + P, P1: TPointF; + LItem: TTreeViewItem; +begin + P := LocalToAbsolute(TPointF.Create(X, Y)); + for I := 0 to Count - 1 do + begin + LItem := ItemByIndex(I); + if not LItem.Visible then + Continue; + if LItem.PointInObject(P.X, P.Y) then + begin + Result := LItem; + Exit; + end + else if (LItem.Count > 0) and (LItem.IsExpanded) then + begin + P1 := LItem.AbsoluteToLocal(P); + Result := LItem.ItemByPoint(P1.X, P1.Y); + if Result <> nil then + Exit; + end; + end; + Result := nil; +end; + +function TTreeViewItem.IsPositionStored: Boolean; +begin + Result := False; +end; + +function TTreeViewItem.IsSizeStored: Boolean; +begin + Result := FCustomHeight; +end; + +function TTreeViewItem.ItemByIndex(const Idx: Integer): TTreeViewItem; +begin + if (Idx >= 0) and (Idx < Count) then + Result := TTreeViewItem(FContent.Controls[Idx]) + else + raise ERangeError.CreateFMT(sArgumentOutOfRange_Index, [Idx, Count]); +end; + +procedure TTreeViewItem.Paint; +var + R: TRectF; +begin + inherited Paint; + if (csDesigning in ComponentState) and not Locked and not FInPaintTo then + begin + R := LocalRect; + InflateRect(R, -0.5, -0.5); + Canvas.Stroke.Thickness := 1; + Canvas.Stroke.Dash := TStrokeDash.Dash; + Canvas.Stroke.Kind := TBrushKind.Solid; + Canvas.Stroke.Color := $A0909090; + Canvas.DrawRect(R, 0, 0, AllCorners, AbsoluteOpacity); + Canvas.Stroke.Dash := TStrokeDash.Solid; + end; +end; + +function TTreeViewItem.ParentItem: TTreeViewItem; +begin + TFMXObjectHelper.FindNearestParentOfClass(Self, Result); +end; + +function TTreeViewItem.EnterChildren(AObject: IControl): Boolean; +var + LTreeView : TCustomTreeView ; +begin + Result := inherited EnterChildren(AObject); + LTreeView := TreeView; + if LTreeView <> nil then + begin + LTreeView.Selected := Self; + Result := True; + end; +end; + +procedure TTreeViewItem.Collapse; +begin + IsExpanded := False; +end; + +procedure TTreeViewItem.CollapseAll; +var + i: Integer; + Item: TTreeViewItem; +begin + BeginUpdate; + try + Collapse; + for i := Count - 1 downto 0 do + begin + Item := ItemByIndex(i); + if Item <> nil then + Item.CollapseAll; + end; + finally + EndUpdate; + end; +end; + +procedure TTreeViewItem.Expand; +begin + IsExpanded := True; +end; + +procedure TTreeViewItem.ExpandAll; +var + i: Integer; + Item: TTreeViewItem; +begin + BeginUpdate; + try + Expand; + for i := Count - 1 downto 0 do + begin + Item := ItemByIndex(i); + if Item <> nil then + Item.ExpandAll; + end; + finally + EndUpdate; + end; +end; + +function TTreeViewItem.Level: Integer; +var + P: TFmxObject; +begin + Result := 0; + P := Parent; + while (P <> nil) and not (P is TCustomTreeView) do + begin + Result := Result + 1; + P := P.Parent; + if (P is TContent) then + P := P.Parent; + end; +end; + +procedure TTreeViewItem.OnExpandButtonStyleLookup(Sender: TObject); +begin + UpdateExpandedButtonVisibility; +end; + +function TTreeViewItem.TreeView: TCustomTreeView; +begin + TFMXObjectHelper.FindNearestParentOfClass(Self, Result); +end; + +procedure TTreeViewItem.FreeStyle; +begin + inherited; + if FButton <> nil then + begin + FButton.OnClick := nil; + FButton.OnApplyStyleLookup := nil; + FButton.Visible := FOldButtonVisible; + FButton := nil; + end; + FExpander := nil; + if FCheck <> nil then + begin + FCheck.OnClick := nil; + FCheck.OnChange := nil; + FCheck.Visible := FOldCheckVisible; + FCheck.IsChecked := FOldChecked; + FCheck := nil; + end; + if FGlyph <> nil then + begin + FGlyph.BeginUpdate; + try + FGlyph.ImageIndex := -1; + FGlyph.Images := nil; + finally + FGlyph.EndUpdate; + end; + FGlyph := nil; + end; +end; + +procedure TTreeViewItem.UpdateChildrenOffset; +begin + if FCustomChildrenOffset >= 0 then + FChildrenOffset := FCustomChildrenOffset + else if FExpander <> nil then + FChildrenOffset := FExpander.Width + else if FCheck <> nil then + FChildrenOffset := FCheck.Width + else if FButton <> nil then + FChildrenOffset := FButton.Width + else + FChildrenOffset := DefaultHeight; +end; + +procedure TTreeViewItem.ApplyStyle; +var + LTreeView: TCustomTreeView; + LHeight: Single; + LCustomHeight: Boolean; +begin + LCustomHeight := FCustomHeight and (Height > 0); + LHeight := Height; + try + inherited; + FindStyleResource('expander', FExpander); + if FindStyleResource('button', FButton) then + begin + FOldButtonVisible := FButton.Visible; + FButton.OnClick := DoButtonClick; + FButton.OnApplyStyleLookup := OnExpandButtonStyleLookup; + UpdateExpandedButtonVisibility; + end; + if FindStyleResource('check', FCheck) then + begin + FOldCheckVisible := FCheck.Visible; + FOldChecked := FCheck.IsChecked; + FCheck.IsChecked := IsChecked; + FCheck.OnChange := DoCheckClick; + LTreeView := TreeView ; + if LTreeView <> nil then + FCheck.Visible := LTreeView.ShowCheckboxes; + end; + if FindStyleResource('glyphstyle', FGlyph) then + begin + FGlyph.Images := TCustomImageList(FImageLink.Images); + FGlyph.ImageIndex := FImageLink.ImageIndex; + FOldGlyphVisible := FGlyph.Visible; + end + else + FOldGlyphVisible := False; + if IsSelected then + begin + StartTriggerAnimation(Self, 'IsSelected'); + ApplyTriggerEffect(Self, 'IsSelected'); + end; + Align := TAlignLayout.None; + UpdateChildrenOffset; + finally + if LCustomHeight then + Height := LHeight; + FCustomHeight := LCustomHeight; + end; +end; + +function TTreeViewItem.CalcMinSize: TSizeF; +const + MinText = '1'; + + procedure UpdateWidth(const Control: TControl; const VisibleOnly: Boolean); + var + R: TRectF; + begin + if (Control <> nil) and (not VisibleOnly or Control.Visible) then + begin + R := Control.BoundsRect; + R := Control.Margins.MarginRect(R); + Result.cx := Result.cx + R.Width; + end; + end; + + function FirstWord(const Text: string; const NeedEllipsis: Boolean): string; + var + I: Integer; + begin + I := Text.IndexOf(' '); + if I >= 0 then + begin + Result := Text.Substring(0, I); + if NeedEllipsis then + Result := Result + SChrHorizontalEllipsis; + end + else + Result := Text; + end; + +var + R: TRectF; + LLayout: TTextLayout; + LTree: TCustomTreeView; + TextSettings: ITextSettings; +begin + Result := TSizeF.Create(0, 0); + LTree := TreeView; + if LTree = nil then + Exit; + if Visible then + begin + if (TextObject <> nil) and TextObject.GetInterface(ITextSettings, TextSettings) then + begin + LLayout := LTree.FTextLayout; + if LLayout <> nil then + begin + LLayout.BeginUpdate; + try + LLayout.WordWrap := False; + LLayout.HorizontalAlign := TTextAlign.Leading; + LLayout.VerticalAlign := TTextAlign.Leading; + LLayout.Color := TAlphaColorRec.Black; + LLayout.Font := TextSettings.ResultingTextSettings.Font; + LLayout.Opacity := 1; + LLayout.Trimming := TTextTrimming.None; + if Text.IsEmpty then + LLayout.Text := MinText + else + case TextSettings.ResultingTextSettings.Trimming of + TTextTrimming.None: + begin + if TextSettings.ResultingTextSettings.WordWrap then + LLayout.Text := FirstWord(Text, False) + else + LLayout.Text := Text; + end; + TTextTrimming.Character: + LLayout.Text := MinText + SChrHorizontalEllipsis; + TTextTrimming.Word: + LLayout.Text := FirstWord(Text, True); + end; + finally + LLayout.EndUpdate; + end; + R := LLayout.TextRect; + Result.Width := Ceil(R.Width) + 2; + Result.Height := Ceil(R.Height) + 4; + UpdateWidth(FButton, False); + UpdateWidth(FCheck, True); + UpdateWidth(FGlyph, True); + Result.cx := Result.cx + Padding.Left + Padding.Right; + Result.cy := Result.cy + Padding.Top + Padding.Bottom; + end; + end; + end; +end; + +procedure TTreeViewItem.Inflate; +begin + InvalidateTextSize; + inherited; + DisableDisappear := True; + try + ApplyStyleLookup; + finally + DisableDisappear := False; + end; + CalcMinSize; +end; + +procedure TTreeViewItem.InvalidateTextSize; +begin + FMinItemSize := TSizeF.Create(0, 0); +end; + +function TTreeViewItem.GetMinItemSize: TSizeF; +begin + if FMinItemSize.IsZero then + FMinItemSize := CalcMinSize; + Result := FMinItemSize; +end; + +procedure TTreeViewItem.DoChanged; +begin + inherited; + if not FCustomHeight then + InvalidateTextSize; +end; + +procedure TTreeViewItem.DoCheckClick(Sender: TObject); +var + LTreeView : TCustomTreeView; +begin + if FCheck <> nil then + FIsChecked := FCheck.IsChecked; + LTreeView := TreeView; + if LTreeView <> nil then + begin + LTreeView.SetFocus; + LTreeView.DoChangeCheck(Self); + end; +end; + +procedure TTreeViewItem.UpdateCheckBoxVisibility; +var + i, j: Integer; + LTreeView: TCustomTreeView; +begin + LTreeView := TreeView; + if (LTreeView <> nil) and (FCheck <> nil) and + (FCheck.Visible <> LTreeView.ShowCheckboxes) then + begin + FCheck.Visible := LTreeView.ShowCheckboxes; + InvalidateTextSize; + end; + if ControlsCount > 0 then + for i := 0 to ControlsCount - 1 do + if Controls[i] is TTreeViewItem then + TTreeViewItem(Controls[i]).UpdateCheckBoxVisibility + else if Controls[i] is TTreeViewItemContent then + for j := 0 to Controls[i].ControlsCount - 1 do + if Controls[i].Controls[j] is TTreeViewItem then + TTreeViewItem(Controls[i].Controls[j]).UpdateCheckBoxVisibility +end; + +procedure TTreeViewItem.UpdateExpandedButtonVisibility; +begin + if (FButton <> nil) and not (csLoading in ComponentState) then + begin + FButton.Visible := VisibleCount > 0; + if FButton.Visible then + TAnimator.StartTriggerAnimation(FButton, Self, 'IsExpanded'); + end; +end; + +procedure TTreeViewItem.Select; +begin + IsSelected := True; +end; + +function TTreeViewItem.IsCustomChildrenOffsetStored: Boolean; +begin + Result := FCustomChildrenOffset >= 0; +end; + +procedure TTreeViewItem.SetCustomChildrenOffset(const Value: Single); +var + Parent: TTreeViewItem; +begin + if not SameValue(FCustomChildrenOffset, Value, TEpsilon.FontSize) then + begin + FCustomChildrenOffset := Value; + UpdateChildrenOffset; + if not IsUpdating and IsExpanded and (TreeView <> nil) then + begin + Parent := ParentItem; + while Parent <> nil do + if Parent.IsExpanded then + Parent := Parent.ParentItem + else + Exit; + TreeView.RealignContent; + TreeView.UpdateSelection; + end; + end; +end; + +procedure TTreeViewItem.SetHeight(const Value: Single); +var + ItemSize: TSizeF; +begin + if not SameValue(Value, Height) then + begin + if (not (csLoading in ComponentState)) then + begin + if Value <= 0 then + FCustomHeight := False + else + begin + ItemSize := MinItemSize; + if ItemSize.cy > 0 then + FCustomHeight := not SameValue(Value, ItemSize.cy) + else + FCustomHeight := True; + end; + end + else + begin + FCustomHeight := Value >= 1; + end; + end; + inherited; +end; + +procedure TTreeViewItem.SetIsChecked(const Value: Boolean); +var + LTreeView: TCustomTreeView; +begin + if FIsChecked <> Value then + begin + FIsChecked := Value; + if FCheck <> nil then + FCheck.IsChecked := FIsChecked; + LTreeView := TreeView; + if LTreeView <> nil then + LTreeView.DoChangeCheck(Self); + end; +end; + +procedure TTreeViewItem.SetIsSelected(const Value: Boolean); +var + LTreeView : TCustomTreeView; +begin + if FIsSelected <> Value then + begin + FIsSelected := Value; + StartTriggerAnimation(Self, 'IsSelected'); + LTreeView := TreeView; + if LTreeView <> nil then + begin + if not LTreeView.MultiSelect then + if Value then + LTreeView.Selected := Self + else + LTreeView.Selected := nil; + LTreeView.UpdateSelection; + end; + end; +end; + +procedure TTreeViewItem.SetText(const Value: string); +var + LTreeView: TCustomTreeView; +begin + if Value <> Text then + begin + inherited; + InvalidateTextSize; + LTreeView := TreeView; + if LTreeView <> nil then + LTreeView.ItemSizeMightHaveChanged(Self); + end; +end; + +procedure TTreeViewItem.SetVisible(const Value: Boolean); +var + LChanged: Boolean; + LParentItem: TTreeViewItem; + LTreeView: TCustomTreeView; +begin + LChanged := inherited Visible <> Value; + inherited; + if LChanged then + begin + LParentItem := ParentItem; + if LParentItem <> nil then + ParentItem.RecountVisibleItems; + LTreeView := TreeView; + if LTreeView <> nil then + LTreeView.RealignContent; + end; +end; + +procedure TTreeViewItem.Sort(Compare: TFmxObjectSortCompare); +begin + FContent.Sort(Compare); +end; + +procedure TTreeViewItem.DoButtonClick(Sender: TObject); +begin + IsExpanded := not IsExpanded; +end; + +procedure TTreeViewItem.SetIsExpanded(const Value: Boolean); +var + LTreeView: TCustomTreeView; +begin + if FIsExpanded <> Value then + begin + FIsExpanded := Value; + UpdateExpandedButtonVisibility; + InvalidateTextSize; + LTreeView := TreeView; + if LTreeView <> nil then + LTreeView.ItemExpanded(Self); + end; +end; + +function TTreeViewItem.GetImages: TCustomImageList; +begin + if FImageLink <> nil then + Result := TCustomImageList(FImageLink.Images) + else + Result := FImages; +end; + +procedure TTreeViewItem.SetImages(const Value: TCustomImageList); +begin + if FImageLink <> nil then + FImageLink.Images := Value + else + FImages := Value; +end; + +function TTreeViewItem.GetImageIndex: TImageIndex; +begin + if FImageLink <> nil then + Result := FImageLink.ImageIndex + else + Result := -1; +end; + +procedure TTreeViewItem.SetImageIndex(const Value: TImageIndex); +begin + if FImageLink <> nil then + FImageLink.ImageIndex := Value; +end; + +function TTreeViewItem.GetImageList: TBaseImageList; +begin + Result := GetImages; +end; + +procedure TTreeViewItem.SetImageList(const Value: TBaseImageList); +begin + // none. +end; + +function TTreeViewItem.ImageIndexStored: Boolean; +begin + Result := ActionClient or (ImageIndex <> -1); +end; + +procedure TTreeViewItem.ImagesChanged; + + procedure UpdateImages; + var + I: Integer; + begin + if FImages <> FImageLink.Images then + begin + FImages := TCustomImageList(FImageLink.Images); + if [csLoading, csDestroying] * ComponentState = [] then + for I := 0 to Count - 1 do + Items[I].SetImages(FImages); + end; + end; + + procedure UpdateTreeView; + var + LTreeView: TCustomTreeView; + begin + if [csLoading, csDestroying] * ComponentState = [] then + begin + LTreeView := TreeView; + if (LTreeView <> nil) and not LTreeView.IsUpdating then + begin + LTreeView.BeginUpdate; + try + UpdateImages; + InvalidateTextSize; + LTreeView.ItemSizeMightHaveChanged(Self); + finally + LTreeView.EndUpdate; + end; + end + else + UpdateImages; + end; + end; + +var + NewGlyphVisible: Boolean; +begin + if FGlyph <> nil then + begin + FGlyph.BeginUpdate; + try + FGlyph.Images := TCustomImageList(FImageLink.Images); + FGlyph.ImageIndex := FImageLink.ImageIndex; + finally + FGlyph.EndUpdate; + end; + if ([csLoading, csDestroying] * ComponentState = []) then + FGlyph.Repaint; + end; + + NewGlyphVisible := (FGlyph <> nil) and (FGlyph.Visible); + if FOldGlyphVisible <> NewGlyphVisible then + begin + FOldGlyphVisible := NewGlyphVisible; + UpdateTreeView; + end + else + UpdateImages; +end; + +{ TTreeViewContent } + +type + + TTreeViewContent = class(TScrollContent) + private + [Weak] FTreeView: TCustomTreeView; + protected + function GetFirstVisibleObjectIndex: Integer; override; + function GetLastVisibleObjectIndex: Integer; override; + procedure DoRealign; override; + public + end; + +function TTreeViewContent.GetFirstVisibleObjectIndex: Integer; +var + Item: TTreeViewItem; +begin + if FTreeView.FGlobalList.Count > 0 then + begin + Item := FTreeView.FGlobalList[FTreeView.FFirstVisibleItem]; + while Item.ParentItem <> nil do + Item := Item.ParentItem; + Result := Item.Index; + end + else + Result := 0; +end; + +function TTreeViewContent.GetLastVisibleObjectIndex: Integer; +var + Item: TTreeViewItem; +begin + if (FTreeView.FGlobalList.Count > 0) and (FTreeView.FLastVisibleItem < FTreeView.FGlobalList.Count) then + begin + Item := FTreeView.FGlobalList[FTreeView.FLastVisibleItem]; + while Item.ParentItem <> nil do + Item := Item.ParentItem; + Result := Item.Index + 1; + if Result > ControlsCount then + Result := ControlsCount; + end + else + Result := ControlsCount; +end; + +procedure TTreeViewContent.DoRealign; +begin +end; + +{ TTreeView } + +constructor TCustomTreeView.Create(AOwner: TComponent); +begin + inherited; + FImageLink := TGlyphImageLink.Create(Self); + FGlobalList := TList.Create; + FGlobalList.Capacity := 100; + FOddFill := TBrush.Create(TBrushKind.Solid, $20000000); + DisableFocusEffect := True; + CanFocus := True; + AutoCapture := True; + Width := 100; + Height := 100; + FItemHeight := 0; + SetAcceptsControls(False); + FToInflate := TList.Create; + FInflater := TContentInflater.Create(Self); +end; + +function TCustomTreeView.CreateScrollContent: TScrollContent; +begin + Result := TTreeViewContent.Create(Self); + TTreeViewContent(Result).FTreeView := Self; +end; + +destructor TCustomTreeView.Destroy; +begin + FreeAndNil(FSelections); + FreeAndNil(FGlobalList); + FreeAndNil(FOddFill); + FInflater.DisposeOf; + FreeAndNil(FToInflate); + FImageLink.DisposeOf; + inherited; +end; + +procedure TCustomTreeView.ApplyStyle; +var + T: TFmxObject; + ContentLayout: TControl; +begin + inherited ApplyStyle; + if FindStyleResource('content', ContentLayout) then + ContentLayout.OnPainting := DoContentPaint; + if FindStyleResource('selection', FSelection) then + FSelection.Visible := False; + if FindStyleResource('focusedselection', FFocusedSelection) then + FFocusedSelection.Visible := False; + T := FindStyleResource('AlternatingRowBackground'); + if T is TBrushObject then + FOddFill.Assign(TBrushObject(T).Brush); + if T is TControl then + TControl(T).Visible := False; + UpdateSelection; +end; + +procedure TCustomTreeView.FreeStyle; +begin + inherited FreeStyle; + FSelection := nil; + FFocusedSelection := nil; + if FSelections <> nil then + FSelections.Clear; +end; + +procedure TCustomTreeView.UpdateGlobalIndexes(const Force: Boolean); +var + GlobalIdx: Integer; + + procedure RecountItem(const AItem: TTreeViewItem); + var + I: Integer; + begin + if AItem <> nil then + begin + AItem.FGlobalIndex := GlobalIdx; + Inc(GlobalIdx); + FGlobalList.Add(AItem); + if AItem.IsExpanded then + for I := 0 to AItem.Count - 1 do + RecountItem(AItem.ItemByIndex(I)); + end; + end; + +var + I: Integer; +begin + if Force then + FGlobalList.Clear; + if (FGlobalList.Count = 0) and (Count > 0) then + begin + GlobalIdx := 0; + for I := 0 to Count - 1 do + RecountItem(ItemByIndex(I)); + end; +end; + +function CompareTreeItem(Item1, Item2: TFmxObject): Integer; +var + LItem1TV: TCustomTreeView; +begin + if (Item1 is TTreeViewItem) and (Item2 is TTreeViewItem) then + begin + LItem1TV := TTreeViewItem(Item1).TreeView; + if (LItem1TV <> nil) and Assigned(LItem1TV.OnCompare) then + Result := LItem1TV.OnCompare(TTreeViewItem(Item1), + TTreeViewItem(Item2)) + else + Result := CompareText(TTreeViewItem(Item1).Text, + TTreeViewItem(Item2).Text); + end + else + Result := 0; +end; + +procedure TCustomTreeView.SortItems; +begin + if not FSorted then + Exit; + Content.Sort(CompareTreeItem); + InvalidateGlobalList; + UpdateGlobalIndexes; + UpdateVisibleItems; +end; + +function TCustomTreeView.GetItemRect(const Item: TTreeViewItem): TRectF; +begin + if Item <> nil then + begin + Result := TRectF.Create(0, 0, Item.Width, Item.Height); + Result.Offset(Content.AbsoluteToLocal(Item.LocaltoAbsolute(TPointF.Zero))); + end + else + Result := TRectF.Empty; +end; + +function TCustomTreeView.GetInflatableItems: TList; +begin + Result := FToInflate; +end; + +function TCustomTreeView.GetItem(const AIndex: Integer): TFmxObject; +begin + Result := Items[AIndex]; +end; + +procedure TCustomTreeView.UpdateSelection; +var + I: Integer; + P: TPointF; + R: TRectF; + SelRects: array of TRectF; + Clone: TControl; + Item: TTreeViewItem; +begin + if FSelection = nil then + Exit; + // calc rects + SetLength(SelRects, 0); + if GlobalCount > 0 then + for I := FFirstVisibleItem to FLastVisibleItem do + begin + Item := ItemByGlobalIndex(I); + if Item.IsSelected and Item.Visible then + begin + P := Item.LocaltoAbsolute(TPointF.Zero); + if (FSelection.Parent <> nil) and (FSelection.Parent is TControl) then + P := FSelection.ParentControl.AbsoluteToLocal(P); + R := RectF(P.X, P.Y, P.X + Item.Width, + P.Y + Item.Height); + if (Length(SelRects) > 0) and (I > 0) and ItemByGlobalIndex(I - 1).IsSelected then + SelRects[High(SelRects)] := UnionRect(R, SelRects[High(SelRects)]) + else + begin + SetLength(SelRects, Length(SelRects) + 1); + SelRects[High(SelRects)] := R; + end; + end; + end; + // Create selection list + if FSelections = nil then + FSelections := TControlList.Create; + for I := 0 to FSelections.Count - 1 do + FSelections[I].DisposeOf; + FSelections.Clear; + // create selections + for I := 0 to Length(SelRects) - 1 do + begin + if Self.IsFocused and (FFocusedSelection <> nil) then + Clone := TControl(FFocusedSelection.Clone(Self)) + else + Clone := TControl(FSelection.Clone(Self)); + Clone.StyleName := string.Empty; + FSelections.Add(Clone); + Clone.Parent := FSelection.Parent; + end; + // hide if not needed + if Length(SelRects) < FSelections.Count then + for I := Length(SelRects) to FSelections.Count - 1 do + FSelections[I].Visible := False; + // align selections + for I := 0 to High(SelRects) do + begin + FSelections[I].Visible := True; + R := SelRects[I]; + FSelections[I].SetBounds(R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top); + end; +end; + +procedure TCustomTreeView.UpdateVisibleItems; +var + First, Last, Mid: Integer; + R: TRectF; +begin + First := 0; + Last := GlobalCount - 1; + while First < Last do + begin + Mid := First + (Last - First) div 2; + R := FGlobalList[Mid].AbsoluteRect; + R := AbsoluteToLocal(R); + if R.Bottom < 0 then + First := Mid + 1 + else if R.Top > Height then + Last := Mid + else + Break; + end; + FFirstVisibleItem := First; + FLastVisibleItem := Last; + TTreeViewContent(Content).RecalcUpdateRect; + if FNoItemsContent <> nil then + FNoItemsContent.SetBounds(Content.Position.X, Content.Position.Y, Content.Width, Content.Height); +end; + +procedure TCustomTreeView.ItemSizeMightHaveChanged(const AItem: TTreeViewItem); +begin + if (ItemHeight = 0) and not AItem.FCustomHeight then + RealignContent; +end; + +function TCustomTreeView.DoCalcContentBounds: TRectF; +var + FirstItemHeight: Single; + + function UpdateSize(const AItem: TTreeViewItem; const CurY: Single; const ContentWidth: Single; + var BottomRight: TPointF): Single; + var + I: Integer; + OffsetX: Single; + ItemSize: TSizeF; + TopLeft: TPointF; + MinWidth: Single; + begin + Result := CurY; + OffsetX := AItem.GetLevelOffset; + TopLeft := Content.ConvertLocalPointTo(AItem.ParentControl, TPointF.Create(OffsetX + AItem.Margins.Left, CurY + AItem.Margins.Top)); + + if AItem.IsVisible or AItem.ShowInDesigner then + begin + AItem.UpdateExpandedButtonVisibility; + MinWidth := ContentWidth - OffsetX - AItem.Margins.Left - AItem.Margins.Right; + + ItemSize := AItem.MinItemSize; + if FItemHeight > 0 then + ItemSize.cy := FItemHeight + else if AItem.FCustomHeight then + ItemSize.cy := AItem.Height + else if ItemSize.cy <= 0 then + begin + if SameValue(FirstItemHeight, 0, TEpsilon.Position) then + begin + AItem.Inflate; + if AItem.MinItemSize.Height > 0 then + FirstItemHeight := AItem.MinItemSize.Height + else + FirstItemHeight := TTreeViewItem.DefaultHeight; + end; + ItemSize.cy := FirstItemHeight; + end; + + if ItemSize.Width <= 0 then + ItemSize.cx := MinWidth + else + ItemSize.cx := Max(ItemSize.cx, MinWidth); + + Result := CurY + ItemSize.cy + AItem.Margins.Top + AItem.Margins.Bottom; + BottomRight.X := Max(BottomRight.X, OffsetX + ItemSize.cx + AItem.Margins.Left + AItem.Margins.Right); + BottomRight.Y := Max(BottomRight.Y, Result); + AItem.SetBounds(TopLeft.X, TopLeft.Y, AItem.Width, ItemSize.cy); + + if (AItem.Count > 0) and AItem.IsExpanded then + for I := 0 to AItem.Count - 1 do + Result := UpdateSize(AItem.ItemByIndex(I), Result, ContentWidth, BottomRight); + end + else + AItem.SetBounds(TopLeft.X, TopLeft.Y, AItem.Width, 0); + end; + + procedure AdjustWidth(const AItem: TTreeViewItem; const BottomRight: TPointF); + var + I: Integer; + P: TPointF; + begin + if AItem.IsVisible or AItem.ShowInDesigner then + begin + P := Content.LocalToAbsolute(BottomRight); + P := AItem.ParentControl.AbsoluteToLocal(Content.LocalToAbsolute(BottomRight)); + AItem.SetWidth(P.X - AItem.Position.X); + if AItem.IsExpanded then + for I := 0 to AItem.Count - 1 do + AdjustWidth(AItem.ItemByIndex(I), BottomRight); + end; + end; + +var + I: Integer; + CurY: Single; + LLocalRect: TRectF; +begin + FirstItemHeight := 0; + UpdateGlobalIndexes; + if (not IsUpdating) and (ContentLayout <> nil) then + begin + LLocalRect := ContentLayout.LocalRect; + Result := LLocalRect; + if Result.Bottom = Result.Top then + Result.Bottom := Result.Top + 1; + { content } + FCountExpanded := 0; + if Content <> nil then + begin + { Sort if need } + SortItems; + { align } + CurY := 0; + FTextLayout := TTextLayoutManager.DefaultTextLayout.Create; + try + for I := 0 to Count - 1 do + CurY := UpdateSize(ItemByIndex(I), CurY, LLocalRect.Width, Result.BottomRight); + finally + FreeAndNil(FTextLayout); + end; + for I := 0 to Count - 1 do + AdjustWidth(ItemByIndex(I), Result.BottomRight); + end; + UpdateVisibleItems; + end; +end; + +procedure TCustomTreeView.ViewportPositionChange(const OldViewportPosition, NewViewportPosition: TPointF; + const ContentSizeChanged: Boolean); +begin + inherited; + UpdateVisibleItems; + UpdateSelection; +end; + +function TCustomTreeView.ItemByIndex(const Idx: Integer): TTreeViewItem; +begin + if (Idx >= 0) and (Idx < Count) then + begin + Assert(Content.Controls[Idx] is TTreeViewItem); + Result := TTreeViewItem(Content.Controls[Idx]); + end + else + raise ERangeError.CreateFMT(sArgumentOutOfRange_Index, [Idx, Count]); +end; + +function TCustomTreeView.ItemByGlobalIndex(const Idx: Integer): TTreeViewItem; +begin + Result := FGlobalList[Idx]; +end; + +function TCustomTreeView.ObjectAtPoint(P: TPointF): IControl; +var + Local, Abs: TPointF; + Inner: IControl; + function CheckScrollBar(ScrollBar: TScrollBar): Boolean; + var + R: TRectF; + begin + Result := (ScrollBar <> nil) and + (ScrollBar.Visible) and + (ScrollBar.Enabled) and + (ScrollBar.HitTest); + if Result then + begin + R := ScrollBar.AbsoluteRect; + Result := R.Contains(Abs); + end; + end; +begin + Local := ScreenToLocal(P); + if LocalRect.Contains(Local) then + begin + Abs := LocalToAbsolute(Local); + if CheckScrollBar(VScrollBar) then + Result := IControl(VScrollBar).ObjectAtPoint(P) + else if CheckScrollBar(HScrollBar) then + Result := IControl(HScrollBar).ObjectAtPoint(P) + else + begin + if not Supports(ItemByPoint(Local.X, Local.Y), IControl, Result) then + Result := inherited ObjectAtPoint(P) + else + begin + Inner := Result.ObjectAtPoint(P); + if Inner <> nil then + Result := Inner + else + if CheckHitTest(HitTest) then + Result := Self + else + Result := inherited ObjectAtPoint(P); + end; + end; + end + else + Result := nil; +end; + +function TCustomTreeView.ItemByPoint(const X, Y: Single): TTreeViewItem; +var + I: Integer; + P: TPointF; + Item: TTreeViewItem; + + function PointInItem(const Itm: TTreeViewItem; const Pt: TPointF): Boolean; + var + ItemPt: TPointF; + begin + ItemPt := Item.AbsoluteToLocal(Pt); + Result := Content.PointInObject(Pt.X, Pt.Y) + and (ItemPt.Y >= (0 - TouchTargetExpansion.Top)) and (ItemPt.Y <= (Itm.Height + TouchTargetExpansion.Bottom)); + end; + +begin + P := LocaltoAbsolute(PointF(X, Y)); + if GlobalCount > 0 then + for I := FFirstVisibleItem to FLastVisibleItem do + begin + Item := FGlobalList[I]; + if not Item.Visible then + Continue; + if not IntersectRect(Item.UpdateRect, UpdateRect) then + Continue; + if PointInItem(Item, P) then + Exit(Item); + end; + Result := nil; +end; + +function TCustomTreeView.ItemByText(const AText: string): TTreeViewItem; +var + Item: TTreeViewItem; + I: Integer; +begin + Result := nil; + for I := 0 to GlobalCount - 1 do + begin + Item := ItemByGlobalIndex(I); + if CompareText(AText, Item.Text) = 0 then + Exit(Item); + end; +end; + +procedure TCustomTreeView.KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); + + procedure SelectUpperItem; + var + I: Integer; + begin + if Selected.GlobalIndex > 0 then + begin + I := Selected.GlobalIndex - 1; + while (I >= 0) and (ItemByGlobalIndex(I).GlobalIndex > 0) and (not ItemByGlobalIndex(I).IsVisible) do + Dec(I); + if (I >= 0) and ItemByGlobalIndex(I).IsVisible then + Selected := ItemByGlobalIndex(I); + end; + end; + + procedure SelectLowerItem; + var + I: Integer; + begin + if Selected.GlobalIndex < GlobalCount - 1 then + begin + I := Selected.GlobalIndex + 1; + while (I < GlobalCount) and (ItemByGlobalIndex(I).GlobalIndex < Pred(GlobalCount)) and (not ItemByGlobalIndex(I).IsVisible) do + Inc(I); + if (I < GlobalCount) and ItemByGlobalIndex(I).IsVisible then + Selected := ItemByGlobalIndex(I); + end; + end; + +var + LSelParentItem : TTreeViewItem; +begin + inherited KeyDown(Key, KeyChar, Shift); + if (Count > 0) and (Selected <> nil) then + begin + case Key of + vkAdd: + Selected.Expand; + vkSubtract: + Selected.Collapse; + vkHome: + begin + Selected := ItemByGlobalIndex(0); + if not Selected.Visible then + SelectLowerItem; + end; + vkEnd: + begin + Selected := ItemByGlobalIndex(GlobalCount - 1); + if not Selected.Visible then + SelectUpperItem; + end; + vkUp: + SelectUpperItem; + vkDown: + SelectLowerItem; + vkLeft: + if Selected.IsExpanded then + Selected.Collapse + else + begin + LSelParentItem := Selected.ParentItem; + if LSelParentItem <> nil then + begin + Selected := LSelParentItem; + if not Selected.IsVisible then + SelectUpperItem; + end; + end; + vkRight: + if not Selected.IsExpanded then + Selected.Expand + else + if Selected.FContent.ControlsCount > 0 then + SelectLowerItem; + else + Exit; + end; + Key := 0; + end; +end; + +procedure TCustomTreeView.KeyUp(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); +begin + inherited; +end; + +function TCustomTreeView.LocalPointToHoveredItemLocalPoint(const AX, AY: Single): TPointF; +begin + if HoveredItem <> nil then + begin + Result := Self.LocalToScreen(PointF(AX, AY)); + Result := HoveredItem.ScreenToLocal(Result); + end; +end; + +procedure TCustomTreeView.DragOver(const Data: TDragObject; const Point: TPointF; + var Operation: TDragOperation); +var + Obj: TTreeViewItem; +begin + inherited ; + Obj := ItemByPoint(Point.X, Point.Y); + if Obj <> FDragItem then + begin + if FDragItem <> nil then + begin + FDragItem.DragLeave; + FDragItem.RemoveFreeNotify(Self); + end; + FDragItem := Obj; + if FDragItem <> nil then + begin + inherited DragLeave; + FDragItem.AddFreeNotify(Self); + FDragItem.DragEnter(Data, ConvertLocalPointTo(FDragItem, Point)); + + Operation := TDragOperation.Move; + end + else + begin + DragEnter(Data, Point); + Operation := TDragOperation.None; + end; + end + else + Operation := TDragOperation.Move; + + if (Data.Source is TTreeViewItem) and (TTreeViewItem(Data.Source) = FDragItem) then + Operation := TDragOperation.None; +end; + +procedure TCustomTreeView.DragDrop(const Data: TDragObject; const Point: TPointF); +var + Allow: Boolean; + WasSelected: Boolean; + SourceItem, DestItem: TTreeViewItem; +begin + if FDragItem <> nil then + begin + FDragItem.DragLeave; + FDragItem.RemoveFreeNotify(Self); + FDragItem := nil; + end; + DestItem := ItemByPoint(Point.X, Point.Y); + if (Data.Source is TTreeViewItem) and IsChild(TTreeViewItem(Data.Source)) then + begin + SourceItem := TTreeViewItem(Data.Source); + Allow := True; + if Assigned(OnDragChange) then + OnDragChange(SourceItem, DestItem, Allow); + if Allow and not SourceItem.IsChild(DestItem) then + begin + WasSelected := SourceItem.FIsSelected; + if DestItem <> nil then + begin + SourceItem.Parent := DestItem; + DestItem.Expand; + end + else + begin + SourceItem.Parent := Self; + SourceItem.Expand; + end; + SourceItem.IsSelected := WasSelected; + end; + end + else if DestItem <> nil then + DestItem.DragDrop(Data, ConvertLocalPointTo(DestItem, Point)) + else + inherited DragDrop(Data, Point); +end; + +procedure TCustomTreeView.DragLeave; +begin + inherited; + if FDragItem <> nil then + begin + FDragItem.DragLeave; + FDragItem.RemoveFreeNotify(Self); + FDragItem := nil; + end; +end; + +procedure TCustomTreeView.MouseClick(Button: TMouseButton; Shift: TShiftState; + X, Y: Single); +var + P: TPointF; +begin + inherited; + if (HoveredItem <> nil) and MouseInContentLayout(X, Y) then + begin + P := LocalPointToHoveredItemLocalPoint(X, Y); + HoveredItem.MouseClick(Button, Shift, P.X, P.Y); + end; +end; + +procedure TCustomTreeView.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); + + procedure TryMakeMultiSelect; + var + Item: TTreeViewItem; + begin + Item := ItemByPoint(X, Y); + if Item = nil then + Exit; + + if ([ssCtrl, ssCommand] * Shift) <> [] then + Item.IsSelected := not Item.IsSelected + else if ssShift in Shift then + begin + SelectRange(Selected, Item); + Selected := Item; + end + else + begin + SelectRange(Item, Item); + Selected := Item; + end; + FFirstSelect := Item; + end; + + procedure TryMakeSingleSelectAndStartDrag; + var + Item: TTreeViewItem; + begin + Item := ItemByPoint(X, Y); + if Item = nil then + Exit; + Selected := Item; + if AllowDrag then + FStartDrag := True; + end; + +var + P: TPointF; + IsMouseInContent: Boolean; +begin + // It's important to make selection before base mouse down processing. Because developer can remove nodes from this + // event handler. In this case, if he removes selected items, new node on old place will be repeatedly selected again. + IsMouseInContent := MouseInContentLayout(X, Y); + if IsMouseInContent then + begin + // Making selection of Items + if Button = TMouseButton.mbLeft then + begin + if MultiSelect then + TryMakeMultiSelect + else + TryMakeSingleSelectAndStartDrag; + FMouseSelecting := True; + end; + end; + + inherited MouseDown(Button, Shift, X, Y); + + // Transfer Click to Hovered Item + if IsMouseInContent and (HoveredItem <> nil) then + begin + P := LocalPointToHoveredItemLocalPoint(X, Y); + HoveredItem.MouseDown(Button, Shift, P.X, P.Y); + end; +end; + +function TCustomTreeView.MouseInContentLayout(const X, Y: Single): Boolean; +var + P: TPointF; +begin + Result := False; + if ContentLayout <> nil then + begin + P := TPointF.Create(X, Y); + P := LocalToAbsolute(P); + Result := ContentLayout.AbsoluteRect.Contains(P); + end; +end; + +procedure TCustomTreeView.MouseMove(Shift: TShiftState; X, Y: Single); +var + Item: TTreeViewItem; + P: TPointF; + LBitMap: TBitmap; +begin + inherited MouseMove(Shift, X, Y); + if MouseInContentLayout(X, Y) then + begin + Item := ItemByPoint(X, Y); + //! Launcher Fix + /// There is a case when Selected can be equal to nil + /// by doing additional check here, we are + /// saving ourselves from yet another AV error + if AllowDrag and FStartDrag and (Selected <> nil) then + begin + FStartDrag := False; + LBitMap := Selected.MakeScreenshot; + try + Root.BeginInternalDrag(Selected, LBitMap); + finally + LBitMap.Free; + end; + end; + SetHoveredItem(Item); + if HoveredItem <> nil then + begin + P := LocalPointToHoveredItemLocalPoint(X, Y); + HoveredItem.MouseMove(Shift, P.X, P.Y); + end; + end; +end; + +procedure TCustomTreeView.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); +var + P: TPointF; +begin + inherited MouseUp(Button, Shift, X, Y); + FFirstSelect := nil; + FMouseSelecting := False; + if (HoveredItem <> nil) and MouseInContentLayout(X, Y) then + begin + P := LocalPointToHoveredItemLocalPoint(X, Y); + HoveredItem.MouseUp(Button, Shift, P.X, P.Y); + end; + FStartDrag := False; +end; + +procedure TCustomTreeView.MouseWheel(Shift: TShiftState; WheelDelta: Integer; + var Handled: Boolean); +begin + inherited; + if HoveredItem <> nil then + HoveredItem.MouseWheel(Shift, WheelDelta, Handled); +end; + +procedure TCustomTreeView.ChangeOrder; +begin + inherited ChangeOrder; + InvalidateContentSize; + if not IsUpdating then + RealignContent; +end; + +procedure TCustomTreeView.Clear; +var + i: Integer; + TmpObj: TFmxObject; +begin + BeginUpdate; + try + FToInflate.Clear; + if (Content <> nil) and (Count > 0) then + for i := Content.ControlsCount - 1 downto 0 do + if Content.Controls[i] is TTreeViewItem then + begin + TmpObj := Content.Controls[i]; + TmpObj.DisposeOf; + end; + FSelected := nil; + FFirstVisibleItem := 0; + FLastVisibleItem := 0; + UpdateGlobalIndexes; + UpdateSelection; + finally + EndUpdate; + end; +end; + +procedure TCustomTreeView.SelectRange(const Item1, Item2: TTreeViewItem); +var + i: Integer; + FirstItemIndex: Integer; + LastItemIndex: Integer; +begin + if (Item1 = nil) or (Item2 = nil) then + Exit; + FirstItemIndex := Min(Item1.GlobalIndex, Item2.GlobalIndex); + LastItemIndex := Max(Item1.GlobalIndex, Item2.GlobalIndex); + + for i := 0 to FirstItemIndex - 1 do + ItemByGlobalIndex(i).Deselect; + for i := FirstItemIndex to LastItemIndex do + ItemByGlobalIndex(i).Select; + for i := LastItemIndex + 1 to GlobalCount - 1 do + ItemByGlobalIndex(i).Deselect; +end; + +procedure TCustomTreeView.ClearSelection; +var + Item: TTreeViewItem; +begin + for Item in FGlobalList do + Item.IsSelected := False; +end; + +procedure TCustomTreeView.SelectAll; +var + Item: TTreeViewItem; +begin + for Item in FGlobalList do + Item.IsSelected := True; +end; + +procedure TCustomTreeView.DoChange; +begin + if Assigned(FOnChange) and not (csLoading in ComponentState) then + FOnChange(Self); +end; + +procedure TCustomTreeView.DoChangeCheck(const Item: TTreeViewItem); +begin + if Assigned(FOnChangeCheck) then + FOnChangeCheck(Item); +end; + +procedure TCustomTreeView.DoContentPaint(Sender: TObject; Canvas: TCanvas; + const ARect: TRectF); +var + I: Integer; + Item: TTreeViewItem; + P: TPointF; + R: TRectF; +begin + if (Content <> nil) and (ContentLayout <> nil) then + begin + if FAlternatingRowBackground then + begin + Canvas.Fill.Assign(FOddFill); + for I := FFirstVisibleItem to FLastVisibleItem do + begin + if Odd(I) then + begin + Item := ItemByGlobalIndex(I); + P := TControl(Sender).ConvertLocalPointFrom(Item, TPointF.Zero); + R := RectF(0, P.Y, ContentLayout.Width, P.Y + Item.Height); + if not IntersectRect(R, ARect) then + Continue; + Canvas.FillRect(R, 0, 0, [], AbsoluteOpacity); + end; + end; + end; + end; +end; + +procedure TCustomTreeView.DoEnter; +begin + inherited DoEnter; + if Selected <> nil then + UpdateSelection; +end; + +procedure TCustomTreeView.DoExit; +begin + inherited DoExit; + if Selected <> nil then + UpdateSelection; +end; + +procedure TCustomTreeView.DoInsertObject(Index: Integer; const AObject: TFmxObject); +begin + if (Content <> nil) and (AObject is TTreeViewItem) then + begin + if FUpdating > TTreeViewItem(AObject).FUpdating then + TTreeViewItem(AObject).BeginUpdate; + Content.InsertObject(Index, AObject); + if [csLoading, csDestroying] * ComponentState = [] then + TTreeViewItem(AObject).SetImages(Images); + end + else + inherited DoInsertObject(Index, AObject); +end; + +procedure TCustomTreeView.DoAddObject(const AObject: TFmxObject); +begin + if (Content <> nil) and (AObject is TTreeViewItem) then + begin + if FUpdating > TTreeViewItem(AObject).FUpdating then + TTreeViewItem(AObject).BeginUpdate; + Content.AddObject(AObject); + if [csLoading, csDestroying] * ComponentState = [] then + TTreeViewItem(AObject).SetImages(Images); + end + else + inherited DoAddObject(AObject); +end; + +procedure TCustomTreeView.DoRemoveObject(const AObject: TFmxObject); +begin + if (AObject is TTreeViewItem) and (TTreeViewItem(AObject).TreeView = Self) then + begin + TTreeViewItem(AObject).Parent := nil; + if [csLoading, csDestroying] * ComponentState = [] then + TTreeViewItem(AObject).SetImages(nil); + end + else + inherited DoRemoveObject(AObject); +end; + +procedure TCustomTreeView.DoUpdateAniCalculations(const AAniCalculations: TScrollCalculations); +begin + inherited; + AAniCalculations.AutoShowing := False; + AAniCalculations.Animation := False; + AAniCalculations.BoundsAnimation := False; +end; + +function TCustomTreeView.IsAddToContent(const AObject: TFmxObject): Boolean; +begin + Result := inherited IsAddToContent(AObject) and (AObject <> FNoItemsContent); +end; + +function TCustomTreeView.IsOpaque: Boolean; +begin + Result := True; +end; + +procedure TCustomTreeView.ContentAddObject(const AObject: TFmxObject); +begin + if not (AObject is TTreeViewItem) then + begin + if FNoItemsContent = nil then + begin + FNoItemsContent := TContent.Create(Self); + FNoItemsContent.Parent := Self; + FNoItemsContent.SetBounds(0, 0, 0, 0); + FNoItemsContent.Stored := False; + FNoItemsContent.Locked := True; + FNoItemsContent.HitTest := False; + end; + FNoItemsContent.AddObject(AObject) + end + else + begin + InvalidateContentSize; + InvalidateGlobalList; + if not TTreeViewItem(AObject).IsInflated then + FToInflate.Add(TTreeViewItem(AObject)); + if not IsUpdating then + RealignContent; + end; +end; + +procedure TCustomTreeView.ContentInsertObject(Index: Integer; const AObject: TFmxObject); +begin + ContentAddObject(AObject); +end; + +procedure TCustomTreeView.ContentRemoveObject(const AObject: TFmxObject); +begin + inherited; + if AObject is TTreeViewItem and not IsUpdating then + begin + Realign; + UpdateVisibleItems; + UpdateSelection; + end; +end; + +procedure TCustomTreeView.ContentBeforeRemoveObject(AObject: TFmxObject); +begin + inherited; + if AObject is TTreeViewItem then + begin + TTreeViewItem(AObject).FIsSelected := False; + if AObject = FSelected then + FSelected := nil; + InvalidateContentSize; + InvalidateGlobalList; + FToInflate.Remove(TTreeViewItem(AObject)); + end; +end; + +procedure TCustomTreeView.SetSelected(const Value: TTreeViewItem); +var + LFmxObject: TFmxObject; + P: TPointF; +begin + if (FSelected <> Value) and not FSelectionChanging then + begin + FSelectionChanging := True; + try + if (FSelected <> nil) and not MultiSelect then + FSelected.IsSelected := False; + + FSelected := Value; + if (FSelected <> nil) and (Content <> nil) then + begin + LFmxObject := FSelected.Parent; + while ((LFmxObject <> nil) and not (LFmxObject is TCustomTreeView)) do + begin + if LFmxObject is TTreeViewItem then + TTreeViewItem(LFmxObject).Expand; + LFmxObject := LFmxObject.Parent; + end; + if (Content <> nil) and (ContentLayout <> nil) and (VScrollBar <> nil) then + begin + P := ContentLayout.ConvertLocalPointFrom(FSelected, TPointF.Zero); + if P.Y < 0 then + VScrollBar.Value := VScrollBar.Value + P.Y; + if P.Y + FSelected.Margins.Top + FSelected.Margins.Bottom + FSelected.Height > ContentLayout.Height then + VScrollBar.Value := VScrollBar.Value + (P.Y + FSelected.Margins.Top + FSelected.Margins.Bottom + + FSelected.Height - ContentLayout.Height); + end; + FSelected.IsSelected := True; + end; + finally + FSelectionChanging := False; + end; + DoChange; + end; +end; + +procedure TCustomTreeView.Notification(AComponent: TComponent; Operation: TOperation); +begin + inherited; + if Operation = opRemove then + begin + if AComponent = FSelected then + FSelected := nil; + if AComponent = FDragItem then + FDragItem := nil; + if AComponent = FHoveredItem then + FHoveredItem := nil; + if AComponent = FFirstSelect then + FFirstSelect := nil; + end; +end; + +procedure TCustomTreeView.NotifyInflated; +begin + RealignContent; +end; + +procedure TCustomTreeView.SetItemHeight(const Value: Single); +var + OldSetItemHeight, NewSetItemHeight: Boolean; + I: Integer; + procedure ClearHeight(Item: TTreeViewItem); + var + I: Integer; + begin + Item.Height := 0; + for I := 0 to Item.Count - 1 do + ClearHeight(Item.Items[I]); + end; +begin + if FItemHeight <> Value then + begin + OldSetItemHeight := FItemHeight > 0; + FItemHeight := Value; + NewSetItemHeight := FItemHeight > 0; + if (OldSetItemHeight <> NewSetItemHeight) and (not NewSetItemHeight) then + begin + BeginUpdate; + try + for I := 0 to Count - 1 do + ClearHeight(Items[I]); + finally + EndUpdate + end; + end; + RealignContent; + end; +end; + +procedure TCustomTreeView.CollapseAll; +var + i: Integer; + Item: TTreeViewItem; +begin + BeginUpdate; + try + for i := Count - 1 downto 0 do + begin + Item := Items[i]; + if Item <> nil then + Item.CollapseAll; + end; + finally + EndUpdate; + end; +end; + +procedure TCustomTreeView.ExpandAll; +var + i: Integer; + Item: TTreeViewItem; +begin + BeginUpdate; + try + for i := Count - 1 downto 0 do + begin + Item := Items[i]; + if Item <> nil then + Item.ExpandAll; + end; + finally + EndUpdate; + end; +end; + +procedure TCustomTreeView.SetCheckboxesVisibility(const Value: Boolean); +var + i: Integer; + Item : TTreeViewItem; +begin + if FShowCheckboxes <> Value then + begin + FShowCheckboxes := Value; + for i := 0 to Count - 1 do + begin + Item := Items[i]; + if Item <> nil then + Item.UpdateCheckBoxVisibility; + end; + RealignContent; + end; +end; + +function TCustomTreeView.GetTreeItem(Index: Integer): TTreeViewItem; +begin + Result := ItemByIndex(Index); +end; + +procedure TCustomTreeView.SetSorted(const Value: Boolean); +begin + if FSorted <> Value then + begin + FSorted := Value; + RealignContent; + end; +end; + +procedure TCustomTreeView.SetAllowDrag(const Value: Boolean); +begin + if FAllowDrag <> Value then + begin + FAllowDrag := Value; + if FAllowDrag then + EnableDragHighlight := True; + end; +end; + +procedure TCustomTreeView.SetAlternatingRowBackground(const Value: Boolean); +begin + if FAlternatingRowBackground <> Value then + begin + FAlternatingRowBackground := Value; + Repaint; + end; +end; + +procedure TCustomTreeView.SetHoveredItem(const Value: TTreeViewItem); +begin + if FHoveredItem <> Value then + begin + try + if FHoveredItem <> nil then + begin + TComponent(FHoveredItem).RemoveFreeNotification(Self); + FHoveredItem.DoMouseLeave; + end; + finally + FHoveredItem := Value; + if FHoveredItem <> nil then + begin + TComponent(FHoveredItem).FreeNotification(Self); + FHoveredItem.DoMouseEnter; + end; + end; + end; +end; + +function TCustomTreeView.GetCount: Integer; +begin + Result := 0; + if Content <> nil then + Result := Content.ControlsCount; +end; + +function TCustomTreeView.GetGlobalCount: Integer; +begin + UpdateGlobalIndexes(False); + Result := FGlobalList.Count; +end; + +procedure TCustomTreeView.InvalidateGlobalList; +begin + FGlobalList.Clear; +end; + +procedure TCustomTreeView.ItemExpanded(const Item: TTreeViewItem); +var + I: Integer; + Child: TTreeViewItem; +begin + InvalidateGlobalList; + if Item.IsExpanded then + for I := 0 to Item.Count - 1 do + begin + Child := Item.Items[I]; + if not Child.IsInflated then + Child.Inflate; + end; + RealignContent; +end; + +function TCustomTreeView.GetImages: TCustomImageList; +begin + Result := TCustomImageList(FImageLink.Images); +end; + +procedure TCustomTreeView.SetImages(const Value: TCustomImageList); +begin + FImageLink.Images := Value; +end; + +function TCustomTreeView.GetImageIndex: TImageIndex; +begin + Result := -1; +end; + +procedure TCustomTreeView.SetImageIndex(const Value: TImageIndex); +begin + // none +end; + +function TCustomTreeView.GetImageList: TBaseImageList; +begin + Result := GetImages; +end; + +procedure TCustomTreeView.Loaded; +begin + inherited; + ImagesChanged; +end; + +procedure TCustomTreeView.ImagesChanged; +var + I: Integer; +begin + if (FImages <> FImageLink.Images) and ([csDestroying, csLoading] * ComponentState = []) then + begin + FImages := TCustomImageList(FImageLink.Images); + BeginUpdate; + try + for I := 0 to Count - 1 do + Items[I].SetImages(FImages); + finally + EndUpdate; + end; + end; +end; + +procedure TCustomTreeView.SetImageList(const Value: TBaseImageList); +begin + ValidateInheritance(Value, TCustomImageList); + SetImages(TCustomImageList(Value)); +end; + +initialization + RegisterFmxClasses([TTreeView, TTreeViewItem]); +end. diff --git a/src/lib/FMX/DX 10.4.3/FMX.Taskbar.pas b/src/lib/FMX/FMX.Taskbar.pas similarity index 100% rename from src/lib/FMX/DX 10.4.3/FMX.Taskbar.pas rename to src/lib/FMX/FMX.Taskbar.pas From 6a7130dd76de8e2d9d0d475bc3bc345d05a4a8b8 Mon Sep 17 00:00:00 2001 From: LilyStilson Date: Thu, 4 Nov 2021 00:40:04 +1000 Subject: [PATCH 28/29] Removed unused module --- src/AErender_Launcher.dpr | 6 - src/lib/FMX/DX 10.4/FMX.Platform.Win.pas | 6659 ---------------------- src/lib/FMX/DX 11.0/FMX.Platform.Win.pas | 4444 --------------- 3 files changed, 11109 deletions(-) delete mode 100644 src/lib/FMX/DX 10.4/FMX.Platform.Win.pas delete mode 100644 src/lib/FMX/DX 11.0/FMX.Platform.Win.pas diff --git a/src/AErender_Launcher.dpr b/src/AErender_Launcher.dpr index ce708cc..8115656 100644 --- a/src/AErender_Launcher.dpr +++ b/src/AErender_Launcher.dpr @@ -37,9 +37,6 @@ uses FMX.Graphics in 'lib\FMX\DX 10.4\FMX.Graphics.pas', FMX.Ani in 'lib\FMX\DX 10.4\FMX.Ani.pas', FMX.TreeView in 'lib\FMX\DX 10.4\FMX.TreeView.pas', - {$IFDEF MSWINDOWS} - FMX.Platform.Win in 'lib\FMX\DX 10.4\FMX.Platform.Win.pas', - {$ENDIF MSWINDOWS} /// RAD Studio 11.0 Alexandria /// @@ -48,9 +45,6 @@ uses {$ELSE CompilerVersion = 35.0} FMX.Graphics in 'lib\FMX\DX 11.0\FMX.Graphics.pas', FMX.TreeView in 'lib\FMX\DX 11.0\FMX.TreeView.pas', - {$IFDEF MSWINDOWS} - FMX.Platform.Win in 'lib\FMX\DX 11.0\FMX.Platform.Win.pas', - {$ENDIF MSWINDOWS} {$ENDIF} diff --git a/src/lib/FMX/DX 10.4/FMX.Platform.Win.pas b/src/lib/FMX/DX 10.4/FMX.Platform.Win.pas deleted file mode 100644 index 785616d..0000000 --- a/src/lib/FMX/DX 10.4/FMX.Platform.Win.pas +++ /dev/null @@ -1,6659 +0,0 @@ -{*******************************************************} -{ } -{ Delphi FireMonkey Platform } -{ } -{ Copyright(c) 2011-2021 Embarcadero Technologies, Inc. } -{ All rights reserved } -{ } -{*******************************************************} - -unit FMX.Platform.Win; - -(*$HPPEMIT '#if defined(WIN32) && defined(CreateWindow)'*) -(*$HPPEMIT ' #define __SAVE_CREATEWINDOW CreateWindow'*) -(*$HPPEMIT ' #undef CreateWindow'*) -(*$HPPEMIT '#endif'*) - -(*$HPPEMIT END '#if defined(__SAVE_CREATEWINDOW)'*) -(*$HPPEMIT END ' #define CreateWindow __SAVE_CREATEWINDOW'*) -(*$HPPEMIT END ' #undef __SAVE_CREATEWINDOW'*) -(*$HPPEMIT END '#endif'*) - -{$HPPEMIT NOUSINGNAMESPACE} -{$R-} - -interface - -{$SCOPEDENUMS ON} - -uses - Winapi.CommCtrl, Winapi.Windows, Winapi.ActiveX, System.Types, System.Classes, System.UITypes, System.UIConsts, - System.Generics.Collections, FMX.Forms, FMX.Platform, FMX.Types, FMX.Graphics, FMX.ZOrder.Win; - -type - TWinDropTarget = class; - - PRgnRects = ^TRgnRects; - TRgnRects = array [0..MaxInt div SizeOf(TRect) - 1] of TRect; - - TUpdateRects = array of TRectF; - - TWinWindowHandle = class(TWindowHandle) - private class var - FForcedScale: Single; - private - FWnd: HWND; - FZOrderManager: TWinZOrderManager; - FBufferBitmap: THandle; - FBitmapInfo: TBitmapInfo; - FBufferBits: Pointer; - FBufferHandle: THandle; - FBufferSize: TSize; - FForm: TCommonCustomForm; - FDisableDeactivate: Boolean; - FWinDropTarget: TWinDropTarget; - FCurrentScale: Single; - FClientSize: TSizeF; - FWndClientSize: TSize; - FBounds: TRectF; - FWndBounds: TRect; - FNearestIntegerMultiple: Integer; - procedure UpdateLayer; - function GetZOrderManager: TWinZOrderManager; - procedure SetBounds(const Value: TRect); - procedure SetWndBounds(const Value: TRect); - procedure SetClientSize(const Value: TSize); - procedure UpdateClientSize; - procedure SetWindowSizeByClientSize; - procedure CalcNearestIntegerMultiple; - function GetNearestIntegerMultiple: Integer; - protected - function GetBounds: TRect; virtual; - function GetClientSize: TSize; virtual; - function GetWndBounds: TRect; virtual; - function GetWndClientSize: TSize; virtual; - function GetTransparency: Boolean; virtual; - function GetScale: Single; override; - public - constructor Create(const AForm: TCommonCustomForm; const AWnd: HWND); - destructor Destroy; override; - class procedure SetForcedScale(NewScale: Single); - procedure CreateBuffer(const Width, Height: Integer); - procedure ResizeBuffer(const Width, Height: Integer); - procedure FreeBuffer; - /// Rounds physical window bounds to match scale and logical window bounds. - procedure CorrectWindowSize(const WindowPos: PWindowPos); - procedure ScaleChanged; - procedure DpiChanged(const NewDpi: Integer); - /// Converts physical rect to logical. - function WndToForm(const Rect: TRect): TRectF; overload; - /// Converts physical rect to logical. - function WndToForm(const Rect: TRectF): TRectF; overload; - /// Converts logical rect to physical. - function FormToWnd(const Rect: TRectF): TRectF; - property Wnd: HWND read FWnd; - property Form: TCommonCustomForm read FForm; - property BufferBits: Pointer read FBufferBits; - property BufferHandle: THandle read FBufferHandle; - /// Allocated buffer size for native window. - property BufferSize: TSize read FBufferSize; - property ZOrderManager: TWinZOrderManager read GetZOrderManager; - property Transparency: Boolean read GetTransparency; - /// Logical form's client size. - property ClientSize: TSize read GetClientSize write SetClientSize; - property NearestIntegerMultiple: Integer read GetNearestIntegerMultiple; - /// Logical form bounds. - property Bounds: TRect read GetBounds write SetBounds; - /// Logical form bounds. - property BoundsF: TRectF read FBounds; - /// Physical form size. - property WndClientSize: TSize read GetWndClientSize; - /// Physical form bounds. - property WndBounds: TRect read GetWndBounds write SetWndBounds; - end; - - TWinDropTarget = class(TComponent, IDropTarget) - private - Form: TCommonCustomForm; - function GetDataObject: TDragObject; - function DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; - var dwEffect: Longint): HRESULT; stdcall; - function DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; - function DragLeave: HRESULT; stdcall; - function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; - var dwEffect: Longint): HRESULT; stdcall; - end; - -function FindWindow(Handle: HWND): TCommonCustomForm; -function WindowHandleToPlatform(const AHandle: TWindowHandle): TWinWindowHandle; - -function FmxHandleToHWND(const FmxHandle: TWindowHandle): HWND; -function FormToHWND(Form: TCommonCustomForm): HWND; -function ApplicationHWND: HWND; - -procedure RegisterCorePlatformServices; -procedure UnregisterCorePlatformServices; - -const - // We cannot change constant values in update, however we reallocated resources. So new values are placed in the comments below. - IDC_NODROP = PChar(32767); // -> 32760 - IDC_DRAG = PChar(32766); // -> 32759 - IDC_MULTIDRAG = PChar(32763); // -> 32756 - IDC_SQLWAIT = PChar(32762); // -> 32755 - -type - TApplicationHWNDProc = function: HWND; - -procedure RegisterApplicationHWNDProc(const Proc: TApplicationHWNDProc); - -procedure ShutDown; cdecl; - -implementation - -{$SCOPEDENUMS OFF} - -uses - System.Messaging, System.IOUtils, Winapi.CommDlg, Winapi.Messages, Winapi.ShlObj, Winapi.MMSystem, Winapi.ShellAPI, - Winapi.MultiMon, Winapi.Imm, Winapi.UxTheme, Winapi.ShellScaling, System.Variants, System.SysUtils, System.Math, - System.Math.Vectors, System.StrUtils, System.DateUtils, System.RTLConsts, System.SyncObjs, System.Rtti, System.Devices, - FMX.Consts, FMX.Menus, FMX.Helpers.Win, FMX.Printer, FMX.Printer.Win, FMX.Dialogs.Win, FMX.Canvas.GDIP, FMX.Canvas.D2D, - FMX.Context.DX9, FMX.Context.DX11, FMX.Canvas.GPU, FMX.Forms.Border.Win, FMX.Controls.Win, FMX.Gestures.Win, - FMX.TextLayout, FMX.Text, FMX.Types3D, FMX.VirtualKeyboard, FMX.Controls, FMX.BehaviorManager, FMX.Styles, - FMX.MultiTouch.Win, FMX.ImgList, FMX.WebBrowser, FMX.Surfaces, FMX.Utils, FMX.KeyMapping, FMX.AcceleratorKey, - FMX.AcceleratorKey.Win; - -type - EUnavailableMenuId = class(Exception); - - TOpenMenuItem = class(TMenuItem); - - MySTGMEDIUM = record // for compatibility - Tymed: DWORD; - Case Integer Of - 0: - (HBITMAP: HBITMAP; UnkForRelease: Pointer { IUnknown } ); - 1: - (HMETAFILEPICT: THandle); - 2: - (HENHMETAFILE: THandle); - 3: - (HGLOBAL: HGLOBAL); - 4: - (lpszFileName: POleStr); - 5: - (stm: Pointer { IStream } ); - 6: - (stg: Pointer { IStorage } ); - end; - - { TDropSource } - - TDataObjectInfo = record - FormatEtc: TFormatEtc; - StgMedium: TStgMedium; - OwnedByDataObject: Boolean; - end; - - TDataObjectInfoArray = array of TDataObjectInfo; - - TDropSource = class(TComponent, IDataObject, IDropSource) - private - Data: TDragObject; - Formats: TDataObjectInfoArray; - { IDropSource } - function QueryContinueDrag(fEscapePressed: BOOL; grfKeyState: Longint): HRESULT; stdcall; - function GiveFeedback(dwEffect: Longint): HRESULT; stdcall; - { IDataObject } - function GetData(const FormatEtcIn: TFormatEtc; out Medium: TStgMedium): HRESULT; stdcall; - function GetDataHere(const FormatEtc: TFormatEtc; out Medium: TStgMedium): HRESULT; stdcall; - function QueryGetData(const FormatEtc: TFormatEtc): HRESULT; stdcall; - function GetCanonicalFormatEtc(const FormatEtc: TFormatEtc; out FormatEtcout: TFormatEtc): HRESULT; stdcall; - function SetData(const FormatEtc: TFormatEtc; var Medium: TStgMedium; fRelease: BOOL): HRESULT; stdcall; - function EnumFormatEtc(dwDirection: Longint; out EnumFormatEtc: IEnumFormatEtc): HRESULT; stdcall; - function dAdvise(const FormatEtc: TFormatEtc; advf: Longint; const advsink: IAdviseSink; - out dwConnection: Longint): HRESULT; stdcall; - function dUnadvise(dwConnection: Longint): HRESULT; stdcall; - function EnumdAdvise(out EnumAdvise: IEnumStatData): HRESULT; stdcall; - { For IDropSourceHelper } - function FindFormatEtc(TestFormatEtc: TFormatEtc): Integer; - function EqualFormatEtc(FormatEtc1, FormatEtc2: TFormatEtc): Boolean; - function HGlobalClone(HGLOBAL: THandle): THandle; - function RetrieveOwnedStgMedium(Format: TFormatEtc; var StgMedium: TStgMedium): HRESULT; - function StgMediumIncRef(const InStgMedium: TStgMedium; var OutStgMedium: TStgMedium; - CopyInMedium: Boolean): HRESULT; - function CanonicalIUnknown(const TestUnknown: IUnknown): IUnknown; - end; - -type - { TPlatformWin } - - TFullScreenParams = record - BorderStyle: TFmxFormBorderStyle; - WindowState: TWindowState; - Position: TPoint; - Size: TPoint; - public - function IsFullScreen: Boolean; - procedure Clean; - end; - - TFormInfo = class - WasLeftMouseButtonPressed: Boolean; - end; - - TWinTimerService = class; - TImmManager = class; - - TPlatformWin = class(TInterfacedObject, IFMXApplicationService, IFMXSystemFontService, - IFMXWindowService, IFMXDragDropService, IFMXCursorService, IFMXMouseService, - IFMXScreenService, IFMXLocaleService, IFMXTextService, IFMXContextService, IFMXCanvasService, IFMXDeviceService, - IFMXWindowBorderService, IFMXSystemInformationService, IFMXLoggingService, IFMXFullScreenWindowService, - IFMXListingService, IFMXSaveStateService, IFMXDeviceMetricsService, IFMXGestureRecognizersService, - IFMXWindowsTouchService, IFMXDefaultMetricsService, IFMXKeyMappingService) - private const - DefaultWindowsFontSize = 12; - private - FTitle: string; - FDefaultTitle: string; - FApplicationHWNDProc: TApplicationHWNDProc; - FApplicationHWND: HWND; - FIsOutApplicationHWND: Boolean; - FFullScreenSupport: TDictionary; - FDiableUpdateState: Boolean; - FThreadSyncHandle: HWND; - FInPaintUpdateRects: TDictionary; - FTerminating: Boolean; - FRunning: Boolean; - FCursor: TCursor; - FCaptionChangedId: Integer; - FMultiTouchManager: TMultiTouchManagerWin; - FEnabledInteractiveGestures: TInteractiveGestures; - FSaveStateStoragePath: string; - FDragAndDropActive: Boolean; - FKeyMapping: TKeyMapping; - FAcceleratorKeyRegistry: IFMXAcceleratorKeyRegistryService; - FIsPostQuitMessage: Boolean; - FTimerService: TWinTimerService; - FFormsInfo: TObjectDictionary; - { IMM } - FImmManagers: TObjectDictionary; - procedure ThreadSync(var Msg: TMessage); - procedure WakeMainThread(Sender: TObject); - function CreateAppHandle: HWND; - procedure MinimizeApp; - procedure RestoreApp; - // IFMXListingService - function GetListingHeaderBehaviors: TListingHeaderBehaviors; - function GetListingSearchFeatures: TListingSearchFeatures; - function GetListingTransitionFeatures: TListingTransitionFeatures; - function GetListingEditModeFeatures: TListingEditModeFeatures; - function IFMXListingService.GetHeaderBehaviors = GetListingHeaderBehaviors; - function IFMXListingService.GetSearchFeatures = GetListingSearchFeatures; - function IFMXListingService.GetTransitionFeatures = GetListingTransitionFeatures; - function IFMXListingService.GetEditModeFeatures = GetListingEditModeFeatures; - // IFMXSaveStateService - function GetSaveStateFileName(const ABlockName: string): string; - function GetSaveStateBlock(const ABlockName: string; const ABlockData: TStream): Boolean; - function SetSaveStateBlock(const ABlockName: string; const ABlockData: TStream): Boolean; - function GetSaveStateStoragePath: string; - procedure SetSaveStateStoragePath(const ANewPath: string); - function GetSaveStateNotifications: Boolean; - function IFMXSaveStateService.GetBlock = GetSaveStateBlock; - function IFMXSaveStateService.SetBlock = SetSaveStateBlock; - function IFMXSaveStateService.GetStoragePath = GetSaveStateStoragePath; - procedure IFMXSaveStateService.SetStoragePath = SetSaveStateStoragePath; - function IFMXSaveStateService.GetNotifications = GetSaveStateNotifications; - // IFMXDeviceMetricsService - function GetDisplayMetrics: TDeviceDisplayMetrics; - procedure UpdateAppTitle; - procedure CaptionChangedHandler(const Sender: TObject; const Msg: System.Messaging.TMessage); - function GetApplicationHWND: HWND; - procedure SetApplicationHWNDProc(const Value: TApplicationHWNDProc); - procedure UpdateApplicationHwnd; - - //IFMXKeyMappingService - /// Registers a platform key as the given virtual key. - function RegisterKeyMapping(const PlatformKey, VirtualKey: Word; const KeyKind: TKeyKind): Boolean; - /// Unegisters a platform key as the given virtual key. - function UnregisterKeyMapping(const PlatformKey: Word): Boolean; - /// Obtains the virtual key from a given platform key. - function PlatformKeyToVirtualKey(const PlatformKey: Word; var KeyKind: TKeyKind): Word; - /// Obtains the platform key from a given virtual key. - function VirtualKeyToPlatformKey(const VirtualKey: Word): Word; - function GetImmManager(const Index: TCommonCustomForm): TImmManager; - function GetFormInfo(const Index: TCommonCustomForm): TFormInfo; - public - constructor Create; - destructor Destroy; override; - { IFMXApplicationService } - procedure Run; - function HandleMessage: Boolean; - procedure WaitMessage; - function GetDefaultTitle: string; - function GetTitle: string; - procedure SetTitle(const Value: string); - function Terminating: Boolean; - function Running: Boolean; - procedure Terminate; - function GetVersionString: string; - property ApplicationHWND: HWND read GetApplicationHWND; - property ApplicationHWNDProc: TApplicationHWNDProc read FApplicationHWNDProc write SetApplicationHWNDProc; - { IFMXSystemFontService } - function GetDefaultFontFamilyName: string; - function GetDefaultFontSize: Single; - { IFMXWindowService } - function FindForm(const AHandle: TWindowHandle): TCommonCustomForm; - function CreateWindow(const AForm: TCommonCustomForm): TWindowHandle; - procedure DestroyWindow(const AForm: TCommonCustomForm); - procedure ReleaseWindow(const AForm: TCommonCustomForm); - procedure SetWindowState(const AForm: TCommonCustomForm; const AState: TWindowState); - procedure ShowWindow(const AForm: TCommonCustomForm); - procedure HideWindow(const AForm: TCommonCustomForm); - procedure BringToFront(const AForm: TCommonCustomForm); - procedure SendToBack(const AForm: TCommonCustomForm); - procedure Activate(const AForm: TCommonCustomForm); - function ShowWindowModal(const AForm: TCommonCustomForm): TModalResult; - function CanShowModal: Boolean; - procedure InvalidateWindowRect(const AForm: TCommonCustomForm; R: TRectF); - procedure InvalidateImmediately(const AForm: TCommonCustomForm); - procedure SetWindowRect(const AForm: TCommonCustomForm; ARect: TRectF); - function GetWindowRect(const AForm: TCommonCustomForm): TRectF; - function GetClientSize(const AForm: TCommonCustomForm): TPointF; - procedure SetClientSize(const AForm: TCommonCustomForm; const ASize: TPointF); - procedure SetWindowCaption(const AForm: TCommonCustomForm; const ACaption: string); - procedure SetCapture(const AForm: TCommonCustomForm); - procedure ReleaseCapture(const AForm: TCommonCustomForm); - function ClientToScreen(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; - function ScreenToClient(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; - function GetWindowScale(const AForm: TCommonCustomForm): Single; - // for desingtime and testing only - procedure SetFullScreen(const AForm: TCommonCustomForm; const AValue: Boolean); - function GetFullScreen(const AForm: TCommonCustomForm): Boolean; - procedure SetShowFullScreenIcon(const AForm: TCommonCustomForm; const AValue: Boolean); - { IFMXWindowBorderService } - function CreateWindowBorder(const AForm: TCommonCustomForm): TWindowBorder; - { IFMXDragDropService } - procedure BeginDragDrop(AForm: TCommonCustomForm; const Data: TDragObject; ABitmap: TBitmap); - { IFMXCursorService } - procedure SetCursor(const ACursor: TCursor); - function GetCursor: TCursor; - { IFMXMouseService } - function GetMousePos: TPointF; - { IFMXScreenService } - function GetScreenSize: TPointF; - function GetScreenScale: Single; - function GetScreenOrientation: TScreenOrientation; - procedure SetSupportedScreenOrientations(const AOrientations: TScreenOrientations); - { IFMXLocaleService } - function GetCurrentLangID: string; - function GetLocaleFirstDayOfWeek: string; - function GetFirstWeekday: Byte; - { IFMXTextService } - function GetTextServiceClass: TTextServiceClass; - { IFMXContextService } - procedure RegisterContextClasses; - procedure UnregisterContextClasses; - { IFMXCanvasService } - procedure RegisterCanvasClasses; - procedure UnregisterCanvasClasses; - { IFMXSystemInformationService } - function GetScrollingBehaviour: TScrollingBehaviours; - function GetMinScrollThumbSize: Single; - function GetCaretWidth: Integer; - function GetMenuShowDelay: Integer; - { IFMXLoggingService } - procedure Log(const AFormat: string; const AParams: array of const); - { IFMXGestureRecognizersService } - procedure AddRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); - procedure RemoveRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); - { IFMXWindowsTouchService } - procedure HookTouchHandler(const AForm: TCommonCustomForm); - procedure UnhookTouchHandler(const AForm: TCommonCustomForm); - { IFMXDeviceService } - function GetModel: string; - function GetFeatures: TDeviceFeatures; - function GetDeviceClass: TDeviceInfo.TDeviceClass; - { IFMXDefaultMetricsService } - function SupportsDefaultSize(const AComponent: TComponentKind): Boolean; - function GetDefaultSize(const AComponent: TComponentKind): TSize; - - property ImmManager[const Index: TCommonCustomForm]: TImmManager read GetImmManager; - property TimerService: TWinTimerService read FTimerService; - /// Returns additional platform dependent data about fmx form. - property FormInfo[const Index: TCommonCustomForm]: TFormInfo read GetFormInfo; - end; - - TWin32TimerInfo = record - TimerID: UIntPtr; // the Windows timer ID for this timer - TimerHandle: TFmxHandle; // the unique FMX Handle for this timer - TimerFunc: TTimerProc; // owner function to handle timer - end; - - TWinTimerService = class(TInterfacedObject, IFMXTimerService) - private - FHandleCounter: TFmxHandle; - FTimers: TList; - FPerformanceFrequency: Int64; - FTerminating: Boolean; - procedure DestroyTimers; - { Handlers } - class procedure TimerCallback(window_hwnd: HWND; Msg: Longint; idEvent: UINT; dwTime: Longint); static; stdcall; - procedure ApplicationTerminatingHandler(const Sender: TObject; const Msg: System.Messaging.TMessage); - public - constructor Create; - destructor Destroy; override; - - { IFMXTimerService } - function CreateTimer(AInterval: Integer; ATimerFunc: TTimerProc): TFmxHandle; - function DestroyTimer(Timer: TFmxHandle): Boolean; - function GetTick: Double; - end; - - TMenuLooperWin = class - private - FView: IMenuView; - function IsItemSelectable(const Item: TFmxObject): Boolean; - procedure SelectFirstMenuItem(const AView: IMenuView); - procedure SelectLastMenuItem(const AView: IMenuView); - procedure SelectNextMenuItem(const AView: IMenuView; const ABackward: Boolean); - function BackwardSelectNextMenuItem(const AView: IMenuView; const AStartInd, AEndInd: Integer): Boolean; - function ForwardSelectNextMenuItem(const AView: IMenuView; const AStartInd, AEndInd: Integer): Boolean; - public - procedure StartLoop(const AView: IMenuView); - procedure EndLoop(const AView: IMenuView); - end; - - TWin32MenuInfo = record - MenuID: Integer; - FMXMenuItem: TMenuItem; - constructor Create(const AMenuId: Integer; const AnItem: TMenuItem); - end; - - TMenuServiceWin = class(TInterfacedObject, IFMXMenuService) - private type - TState = (CreatingOSMenu, DestroyingMenuItem); - TStates = set of TState; - TMenuId = Integer; - private - FHMenuMap: TDictionary; - FHMenuIdMap: TDictionary; - FStates: TStates; - FMenuLooper: TMenuLooperWin; - { Menu Item Id} - function GenerateMenuId: TMenuId; - function AssignNewIdToMenu(const AParentMenu, AMenu: HMENU): TMenuId; - function FindMenuInfoById(const AMenuItemId: TMenuId; var AMenuInfo: TWin32MenuInfo): Boolean; - { Removing } - procedure DestroysAllMenuItems(const AMenu: IItemsContainer); - procedure RemoveMenuFromMaps(const AMenuHandle: TFmxHandle); - { Menu Item Bitmap } - procedure AddBitmapToMenu(const AParentMenu: HMENU; const AMenuItemId: TMenuId; const ABitmap: HBITMAP); - procedure RemoveBitmapFromMenu(const AParentMenu, AMenu: HMENU); - protected - procedure WMCommand(var Message: TWMCommand); message WM_COMMAND; - procedure WMInitMenuPopup(var Message: TWMInitMenuPopup); message WM_INITMENUPOPUP; - procedure WMMenuSelect(var Message: TWMMenuSelect); message WM_MENUSELECT; - public - constructor Create; - destructor Destroy; override; - - { IFMXMenuService } - - procedure StartMenuLoop(const AView: IMenuView); - function ShortCutToText(ShortCut: TShortCut): string; - procedure ShortCutToKey(ShortCut: TShortCut; var Key: Word; var Shift: TShiftState); - function TextToShortCut(Text: string): Integer; - procedure CreateOSMenu(AForm: TCommonCustomForm; const AMenu: IItemsContainer); - procedure UpdateMenuItem(const AItem: IItemsContainer; AChange: TMenuItemChanges); - procedure DestroyMenuItem(const AItem: IItemsContainer); - function IsMenuBarOnWindowBorder: Boolean; - procedure UpdateMenuBar; - end; - - TVirtualKeyboardWin = class(TInterfacedObject, IFMXVirtualKeyboardService) - private type - TvkbState = (None, Hidden, Shown); - private - FPath: string; - FExeName: string; - FWndClassName: string; - FHTmerLang: TFmxHandle; - FHTmerVisible: TFmxHandle; - FKBPresent: Boolean; - FFormHandle: HWND; - FInst: HINST; - FError: Boolean; - FLastvkbState: TvkbState; - FLastHandle: HWND; - FLastTime: TDateTime; - FNewvkbState: TvkbState; - FWait: Boolean; - FStepActivate: Integer; - FCodeKeyboard: HKL; - FTimerService: IFMXTimerService; - - procedure KillTimerLang; - procedure TimerLangProc; - procedure StartTimerLang; - - procedure KillTimerVisible; - procedure TimerVisibleProc; - procedure StartTimerVisible; - function FindKeyValue(const Key: HKey; const Name, Value, SubKeyName, SubValueName: string): string; - function GetVirtualKeyboardState: TVirtualKeyboardStates; - procedure vkbExecute(FormHandle: HWND); - function vkbHandle: HWND; - function vkbState: TvkbState; - function GetVKBounds: TRect; - protected - procedure Clear; - function IsAutoShow: Boolean; - public - constructor Create; - destructor Destroy; override; - function ShowVirtualKeyboard(const AControl: TFmxObject): Boolean; - function HideVirtualKeyboard: Boolean; - procedure SetTransientState(Value: Boolean); - property VirtualKeyboardState: TVirtualKeyboardStates read GetVirtualKeyboardState; - property ExeName: string read FExeName write FExeName; - property Path: string read FPath write FPath; - property WndClassName: string read FWndClassName write FWndClassName; - end; - -{ TMultiDisplayWin } - - TOrderedDictionary = class - private - FValues: TList; - FIndex: TDictionary; - function GetCount: Integer; - function GetValues(const AIndex: Integer): TValue; - public - constructor Create; - destructor Destroy; override; - procedure Add(const AKey: TKey; const AValue: TValue); - function TryGetValue(const AKey: TKey; out AValue: TValue): Boolean; - procedure Clear; - property Values[const AIndex: Integer]: TValue read GetValues; default; - property Count: Integer read GetCount; - end; - - TMultiDisplayWin = class(TInterfacedObject, IFMXMultiDisplayService) - private type - TParameter = (DisplayCount, Displays, WorkareaRect, DesktopRect); - TParameters = set of TParameter; - private - FDisplays: TOrderedDictionary; - FDisplayCount: Integer; - FWorkAreaRect: TRect; - FDesktopRect: TRect; - FOutdatedParameters: TParameters; - procedure AddDisplay(const AMonitorHandle: HMONITOR); - function FindDisplay(const AMonitorHandle: HMONITOR): TDisplay; - procedure UpdateDisplaysIfNeeded; - class function ScaleRect(const ARect: TRect; const AScale: Single): TRect; - class function GetMonitorScale(const AHandle: HMONITOR): Single; - public - constructor Create; - destructor Destroy; override; - - { IFMXMultiDisplayService } - procedure UpdateDisplayInformation; - function GetDisplayCount: Integer; - function GetWorkAreaRect: TRect; - function GetDesktopRect: TRect; - function GetDisplay(const AIndex: Integer): TDisplay; - function GetDesktopCenterRect(const ASize: TSize): TRect; - function DisplayFromWindow(const AHandle: TWindowHandle): TDisplay; - function DisplayFromPoint(const AHandle: TWindowHandle; const APoint: TPoint): TDisplay; - end; - - TOpenForm = class(TCommonCustomForm); - TTextServiceWin = class; - - TImmManager = class - private - [Weak] FForm: TCommonCustomForm; - function GetFormHandle: HWND; - procedure UpdateCompositionAttributes(const AContext: HIMC; const ATextService: TTextServiceWin); - procedure UpdateCompositionCursorPos(const AContext: HIMC; const ATextService: TTextServiceWin); - procedure ProcessImeParameters(const AContext: HIMC; const AParameters: LPARAM; const ATextService: TTextServiceWin); - protected - procedure WMStartComposition(var Message: TMessage); message WM_IME_STARTCOMPOSITION; - procedure WMComposition(var Message: TMessage); message WM_IME_COMPOSITION; - procedure WMEndComposition(var Message: TMessage); message WM_IME_ENDCOMPOSITION; - procedure WMSetContext(var Message: TMessage); message WM_IME_SETCONTEXT; - procedure WMNotify(var Message: TMessage); message WM_IME_NOTIFY; - - function GetComposition(const AContext: HIMC): string; - function GetResultComposition(const AContext: HIMC): string; - public - constructor Create(const AForm: TCommonCustomForm); - - function UpdateIMEWindowPosition: LRESULT; - - property Form: TCommonCustomForm read FForm; - property FormHandle: HWND read GetFormHandle; - end; - -{ Text Service } - - TTextServiceWin = class(TTextService) - private const - LCID_Korean_Default = (SUBLANG_KOREAN shl 10) + LANG_KOREAN; - private - FMarkedText: string; - FIsInputting: Boolean; - FMarkedTextCursorPosition: Integer; - procedure SetMarkedTextCursorPosition(const Value: Integer); - procedure RecreateImmContext(const AFormHandle: TWindowHandle); - procedure Reset; - protected - procedure MarkedTextPositionChanged; override; - procedure CaretPositionChanged; override; - function GetMarketTextAttributes: TArray; override; - public - CompAttrBuf: array of Byte; - - procedure InternalSetMarkedText(const AMarkedText: string); override; - function InternalGetMarkedText: string; override; - procedure InternalStartIMEInput; - procedure InternalEndIMEInput; - - procedure RefreshImePosition; override; - - function TargetClausePosition: TPoint; override; - - procedure EnterControl(const AFormHandle: TWindowHandle); override; - procedure ExitControl(const AFormHandle: TWindowHandle); override; - - { Deprecated } - procedure DrawSingleLine(const ACanvas: TCanvas; const ARect: TRectF; const AFirstVisibleChar: Integer; - const AFont: TFont; const AOpacity: Single; const AFlags: TFillTextFlags; const ATextAlign: TTextAlign; - const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); overload; override; - procedure DrawSingleLine(const ACanvas: TCanvas; const S: string; const ARect: TRectF; const Font: TFont; - const AOpacity: Single; const Flags: TFillTextFlags; const ATextAlign: TTextAlign; - const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); overload; override; - - function HasMarkedText: Boolean; override; - - /// Returns caret position in MarkedText bounds. - property MarkedTextCursorPosition: Integer read FMarkedTextCursorPosition write SetMarkedTextCursorPosition; - end; - -var - VirtualKeyboardWin: TVirtualKeyboardWin; - MultiDisplayWin: TMultiDisplayWin; - MenuServiceWin: TMenuServiceWin; - -const - CF_FMOBJECT = CF_PRIVATEFIRST + 1; - -var - WindowAtom: TAtom; - WindowAtomString: string; - PlatformWin: TPlatformWin; - CapturedGestureControl: TComponent; - -procedure DisableProcessWindowsGhosting; -var - DisableProcessWindowsGhostingProc: procedure; -begin - DisableProcessWindowsGhostingProc := GetProcAddress(GetModuleHandle('user32.dll'), 'DisableProcessWindowsGhosting'); - if Assigned(DisableProcessWindowsGhostingProc) then - DisableProcessWindowsGhostingProc; -end; - -procedure RegisterCorePlatformServices; -begin - PlatformWin := TPlatformWin.Create; - TPlatformServices.Current.AddPlatformService(IFMXApplicationService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXSystemFontService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXTimerService, PlatformWin.TimerService); - TPlatformServices.Current.AddPlatformService(IFMXWindowService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXDragDropService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXCursorService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXMouseService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXScreenService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXLocaleService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXTextService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXContextService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXCanvasService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXWindowBorderService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXSystemInformationService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXLoggingService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXFullScreenWindowService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXListingService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXSaveStateService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXDeviceMetricsService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXGestureRecognizersService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXWindowsTouchService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXDeviceService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXDefaultMetricsService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXKeyMappingService, PlatformWin); - - VirtualKeyboardWin := TVirtualKeyboardWin.Create; - TPlatformServices.Current.AddPlatformService(IFMXVirtualKeyboardService, VirtualKeyboardWin); - - MultiDisplayWin := TMultiDisplayWin.Create; - TPlatformServices.Current.AddPlatformService(IFMXMultiDisplayService, MultiDisplayWin); - - MenuServiceWin := TMenuServiceWin.Create; - TPlatformServices.Current.AddPlatformService(IFMXMenuService, MenuServiceWin); - - // If application becomes inactive while a modal dialog is opened it may hang, so we have to DisableProcessWindowsGhosting - DisableProcessWindowsGhosting; -end; - -procedure UnregisterCorePlatformServices; -begin - TPlatformServices.Current.RemovePlatformService(IFMXMenuService); - TPlatformServices.Current.RemovePlatformService(IFMXDeviceService); - TPlatformServices.Current.RemovePlatformService(IFMXDeviceMetricsService); - TPlatformServices.Current.RemovePlatformService(IFMXApplicationService); - TPlatformServices.Current.RemovePlatformService(IFMXSystemFontService); - TPlatformServices.Current.RemovePlatformService(IFMXTimerService); - TPlatformServices.Current.RemovePlatformService(IFMXWindowService); - TPlatformServices.Current.RemovePlatformService(IFMXDragDropService); - TPlatformServices.Current.RemovePlatformService(IFMXCursorService); - TPlatformServices.Current.RemovePlatformService(IFMXMouseService); - TPlatformServices.Current.RemovePlatformService(IFMXScreenService); - TPlatformServices.Current.RemovePlatformService(IFMXLocaleService); - TPlatformServices.Current.RemovePlatformService(IFMXTextService); - TPlatformServices.Current.RemovePlatformService(IFMXContextService); - TPlatformServices.Current.RemovePlatformService(IFMXCanvasService); - TPlatformServices.Current.RemovePlatformService(IFMXWindowBorderService); - TPlatformServices.Current.RemovePlatformService(IFMXSystemInformationService); - TPlatformServices.Current.RemovePlatformService(IFMXFullScreenWindowService); - TPlatformServices.Current.RemovePlatformService(IFMXVirtualKeyboardService); - TPlatformServices.Current.RemovePlatformService(IFMXDefaultMetricsService); - TPlatformServices.Current.RemovePlatformService(IFMXLoggingService); - TPlatformServices.Current.RemovePlatformService(IFMXListingService); - TPlatformServices.Current.RemovePlatformService(IFMXSaveStateService); - TPlatformServices.Current.RemovePlatformService(IFMXGestureRecognizersService); - TPlatformServices.Current.RemovePlatformService(IFMXWindowsTouchService); - TPlatformServices.Current.RemovePlatformService(IFMXDefaultMetricsService); - TPlatformServices.Current.RemovePlatformService(IFMXKeyMappingService); -end; - -procedure RaiseIfNil(const AObject: TObject; const AArgumentName: string); -begin - if AObject = nil then - raise EArgumentException.CreateFmt(SParamIsNil, [AArgumentName]); -end; - -{ TPlatformWin } - -constructor TPlatformWin.Create; -begin - inherited; - FIsOutApplicationHWND := False; - WindowAtomString := Format('FIREMONKEY%.8X', [GetCurrentProcessID]); - WindowAtom := GlobalAddAtomW(PChar(WindowAtomString)); - - FFullScreenSupport := TDictionary.Create; - FInPaintUpdateRects := TDictionary.Create; - FThreadSyncHandle := AllocateHWnd(ThreadSync); - FKeyMapping := TKeyMapping.Create; - FAcceleratorKeyRegistry := TWinAcceleratorKeyRegistry.Create; - System.Classes.WakeMainThread := WakeMainThread; - Application := TApplication.Create(nil); - FCaptionChangedId := TMessageManager.DefaultManager.SubscribeToMessage(TMainCaptionChangedMessage, - CaptionChangedHandler); - FRunning := False; - - FImmManagers := TObjectDictionary.Create([doOwnsValues]); - FFormsInfo := TObjectDictionary.Create([doOwnsValues]); - FTimerService := TWinTimerService.Create; -end; - -destructor TPlatformWin.Destroy; -begin - TMessageManager.DefaultManager.Unsubscribe(TMainCaptionChangedMessage, FCaptionChangedId); - FreeAndNil(FFormsInfo); - FreeAndNil(FImmManagers); - FreeAndNil(Application); - FInPaintUpdateRects.Free; - FFullScreenSupport.Free; - FAcceleratorKeyRegistry := nil; - FTimerService := nil; - FKeyMapping.Free; - GlobalDeleteAtom(WindowAtom); - - if FThreadSyncHandle <> 0 then - DeallocateHWnd(FThreadSyncHandle); - if PlatformWin = Self then - PlatformWin := nil; - inherited; -end; - -{ App } - -procedure TPlatformWin.Run; -begin - FRunning := True; - Application.RealCreateForms; - UpdateAppTitle; - repeat - try - Application.HandleMessage; - except - Application.HandleException(Self); - end; - until Application.Terminated; -end; - -function TPlatformWin.Terminating: Boolean; -begin - Result := FTerminating; -end; - -function TPlatformWin.Running: Boolean; -begin - Result := FRunning; -end; - -procedure TPlatformWin.Terminate; -begin - FRunning := False; - FTerminating := True; - FIsPostQuitMessage := True; - - FMultiTouchManager.Free; // release multitouch early so that it does not hold reference to services - - // We don't need destroy application handle, if we receive it from out through ApplicationHWNDProc. - if IsLibrary and FIsOutApplicationHWND and (FApplicationHWND <> 0) then - begin - WinApi.Windows.DestroyWindow(FApplicationHWND); - FApplicationHWND := 0; - end; -end; - -function TPlatformWin.HandleMessage: Boolean; -var - Msg: TMsg; -begin - Result := False; - if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then - begin - Result := True; - if Msg.Message <> WM_QUIT then - begin - TranslateMessage(Msg); - DispatchMessage(Msg); - if FIsPostQuitMessage then - PostQuitMessage(0); - end - else - Application.Terminated := True; - end; -end; - -procedure TPlatformWin.WaitMessage; -begin - Winapi.Windows.WaitMessage; -end; - -function TPlatformWin.GetDefaultTitle: string; -begin - Result := FDefaultTitle; -end; - -function TPlatformWin.GetTitle: string; -begin - Result := FTitle; -end; - -procedure TPlatformWin.SetTitle(const Value: string); -begin - if FTitle <> Value then - begin - if (Value = SAppDefault) and (FDefaultTitle <> '') then - FTitle := FDefaultTitle - else - FTitle := Value; - UpdateAppTitle; - end; -end; - -function TPlatformWin.GetVersionString: string; -const - UndefinedVersionInfo = Cardinal(-1); -var - VersionInfo: Cardinal; -begin - VersionInfo := GetFileVersion(ParamStr(0)); - if VersionInfo <> UndefinedVersionInfo then - Result := Format('%d.%d', [HiWord(VersionInfo), LoWord(VersionInfo)]) - else - Result := string.Empty; -end; - -procedure TPlatformWin.UpdateApplicationHwnd; -var - OldApplicationHandler: HWND; -begin - OldApplicationHandler := FApplicationHWND; - - // The first, we try to extract application handle from IDE. - if Assigned(FApplicationHWNDProc) then - begin - FApplicationHWND := FApplicationHWNDProc; - FIsOutApplicationHWND := FApplicationHWND <> 0; - end; - - // If IDE or user doesn't set outter application handle, we create our own, if it wasn't created before. - if FApplicationHWND = 0 then - begin - FApplicationHWND := CreateAppHandle; - FIsOutApplicationHWND := False; - end; - - if OldApplicationHandler <> FApplicationHWND then - UpdateAppTitle; -end; - -procedure TPlatformWin.UpdateAppTitle; -begin - if FApplicationHWND <> 0 then - begin - { Don't update the title when working in the IDE } - if (Application <> nil) and (Application.MainForm <> nil) and ((FTitle = SAppDefault) or - (FTitle = GetDefaultTitle)) then - SetWindowText(FApplicationHWND, PChar(Application.MainForm.Caption)) - else if FTitle.IsEmpty then - SetWindowText(FApplicationHWND, PChar(GetDefaultTitle)) - else - SetWindowText(FApplicationHWND, PChar(FTitle)); - end; -end; - -procedure TPlatformWin.CaptionChangedHandler(const Sender: TObject; const Msg: System.Messaging.TMessage); -begin - UpdateAppTitle; -end; - -procedure TPlatformWin.WakeMainThread(Sender: TObject); -begin - PostMessage(FThreadSyncHandle, WM_NULL, 0, 0); -end; - -{ Text Service } - -function TTextServiceWin.GetMarketTextAttributes: TArray; -var - I: Integer; -begin - if FMarkedText.IsEmpty or (Length(CompAttrBuf) = 0) then - begin - Result := []; - Exit; - end; - - SetLength(Result, FMarkedText.Length); - for I := 0 to FMarkedText.Length - 1 do - case CompAttrBuf[I] of - ATTR_INPUT: - Result[I] := TMarkedTextAttribute.Input; - ATTR_TARGET_CONVERTED: - Result[I] := TMarkedTextAttribute.TargetConverted; - ATTR_CONVERTED: - Result[I] := TMarkedTextAttribute.Converted; - ATTR_TARGET_NOTCONVERTED: - Result[I] := TMarkedTextAttribute.TargetNotConverted; - ATTR_INPUT_ERROR: - Result[I] := TMarkedTextAttribute.InputError; - end; -end; - -procedure TTextServiceWin.SetMarkedTextCursorPosition(const Value: Integer); -begin - FMarkedTextCursorPosition := Value; -end; - -procedure TTextServiceWin.InternalSetMarkedText(const AMarkedText: string); -var - TextInput: ITextInput; -begin - if FIsInputting and Supports(Owner, ITextInput, TextInput) then - begin - FMarkedText := AMarkedText; - FMarkedTextCursorPosition := EnsureRange(FMarkedTextCursorPosition, 0, FMarkedText.Length); - TextInput.IMEStateUpdated; - end; -end; - -procedure TTextServiceWin.InternalStartIMEInput; -var - TextInput: ITextInput; -begin - if not FIsInputting and Supports(Owner, ITextInput, TextInput) then - begin - FIsInputting := True; - Reset; - TextInput.StartIMEInput; - end; -end; - -procedure TTextServiceWin.MarkedTextPositionChanged; -begin - inherited; - if FIsInputting then - RefreshImePosition; -end; - -procedure TTextServiceWin.RecreateImmContext(const AFormHandle: TWindowHandle); -var - IMC: HIMC; - OldIMC: HIMC; - WindowHandle: HWND; -begin - // Our styled controls doesn't have window handle, so form shares IMM context between all text styled controls. - // It leads to issues in IMM with keeping in memory previous IMM composition string, when user switches focus - // between out styled text input controls. Even if we rest composition string by ImmSetCompositionString, - // OS sends WM_IME_COMPOSITION notification message with the previous composition string and this behavior - // is different, when user uses different IMM provides. So the recreating context guarantees blank IME context - // without previous states. - - WindowHandle := WindowHandleToPlatform(AFormHandle).Wnd; - IMC := ImmCreateContext; - OldIMC := ImmAssociateContext(WindowHandle, IMC); - ImmDestroyContext(OldIMC); - ImmReleaseContext(WindowHandle, IMC); -end; - -procedure TTextServiceWin.RefreshImePosition; - - function FindForm: TCommonCustomForm; - var - TmpObject: TFmxObject; - begin - TmpObject := Owner.GetObject; - while (TmpObject <> nil) and not (TmpObject is TCommonCustomForm) do - TmpObject := TmpObject.Parent; - - if TmpObject is TCommonCustomForm then - Result := TCommonCustomForm(TmpObject) - else - Result := nil; - end; - -var - Form: TCommonCustomForm; -begin - inherited; - Form := FindForm; - if Form <> nil then - PlatformWin.ImmManager[Form].UpdateIMEWindowPosition; -end; - -procedure TTextServiceWin.Reset; -begin - CompAttrBuf := nil; - FMarkedText := string.Empty; - FMarkedTextCursorPosition := 0; -end; - -function TTextServiceWin.InternalGetMarkedText: string; -begin - Result := FMarkedText; -end; - -procedure TTextServiceWin.CaretPositionChanged; -begin - inherited; - if FIsInputting then - RefreshImePosition; -end; - -function TTextServiceWin.TargetClausePosition: TPoint; -begin - Result := CaretPosition; - Result.X := Result.X + MarkedTextCursorPosition; -end; - -procedure TTextServiceWin.InternalEndIMEInput; -var - TextInput: ITextInput; -begin - if FIsInputting and Supports(Owner, ITextInput, TextInput) then - begin - FIsInputting := False; - FMarkedTextCursorPosition := 0; - TextInput.EndIMEInput; - FMarkedText := string.Empty; - end; -end; - -procedure TTextServiceWin.EnterControl(const AFormHandle: TWindowHandle); -var - WindowHandle: HWND; -begin - RaiseIfNil(AFormHandle, 'AFormHandle'); - - WindowHandle := WindowHandleToPlatform(AFormHandle).Wnd; - if TPlatformServices.Current.SupportsPlatformService(IFMXWBService) then - SetFocus(WindowHandle); - - if ImeMode <> TImeMode.imDisable then - RecreateImmContext(AFormHandle); - TImeModeHelper.SetIme(WindowHandle, ImeMode); -end; - -procedure TTextServiceWin.ExitControl(const AFormHandle: TWindowHandle); -begin - RaiseIfNil(AFormHandle, 'AFormHandle'); - - if ImeMode <> TImeMode.imDisable then - RecreateImmContext(AFormHandle); - - Reset; - TImeModeHelper.ResetIme(WindowHandleToPlatform(AFormHandle).Wnd, ImeMode); -end; - -procedure TTextServiceWin.DrawSingleLine(const ACanvas: TCanvas; const ARect: TRectF; const AFirstVisibleChar: Integer; - const AFont: TFont; const AOpacity: Single; const AFlags: TFillTextFlags; const ATextAlign: TTextAlign; - const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); -var - S: string; -begin - S := CombinedText; - S := S.Substring(AFirstVisibleChar - 1, S.Length - AFirstVisibleChar + 1); - DrawSingleLine(ACanvas, S, ARect, AFont, AOpacity, AFlags, ATextAlign, AVTextAlign, AWordWrap); -end; - -procedure TTextServiceWin.DrawSingleLine(const ACanvas: TCanvas; const S: string; const ARect: TRectF; const Font: TFont; - const AOpacity: Single; const Flags: TFillTextFlags; const ATextAlign: TTextAlign; - const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); - - procedure UnderlineRegion(const ARegions: TRegion); - var - I: Integer; - Region: TRectF; - HalfThickness: Single; - StartPoint, EndPoint: TPointF; - begin - HalfThickness := ACanvas.Stroke.Thickness / 2; - for I := Low(ARegions) to High(ARegions) do - begin - Region := ACanvas.AlignToPixel(ARegions[I]); - - StartPoint := TPointF.Create(Region.Left, Region.Bottom); - StartPoint.Offset(-HalfThickness, -HalfThickness); - EndPoint := Region.BottomRight; - EndPoint.Offset(-HalfThickness, -HalfThickness); - ACanvas.DrawLine(StartPoint, EndPoint, AOpacity); - end; - end; - - procedure UnderlineMarkedText(const ALayout: TTextLayout; const AAttributes: TArray); - var - SavedState: TCanvasSaveState; - Region: TRegion; - TextRange: TTextRange; - PositionInLine: Integer; - I: Integer; - begin - SavedState := ACanvas.SaveState; - try - ACanvas.Stroke.Assign(ACanvas.Fill); - ACanvas.Stroke.Thickness := 2; - ACanvas.Stroke.Dash := TStrokeDash.Solid; - for I := 0 to FMarkedText.Length - 1 do - begin - case AAttributes[I] of - TMarkedTextAttribute.Input: - begin - ACanvas.Stroke.Thickness := 1; - ACanvas.Stroke.Dash := TStrokeDash.Dash - end; - TMarkedTextAttribute.TargetConverted: - begin - ACanvas.Stroke.Thickness := 2; - ACanvas.Stroke.Dash := TStrokeDash.Solid; - end; - TMarkedTextAttribute.Converted: - begin - ACanvas.Stroke.Thickness := 1; - ACanvas.Stroke.Dash := TStrokeDash.Solid; - end; - TMarkedTextAttribute.TargetNotConverted: - begin - ACanvas.Stroke.Thickness := 4; - ACanvas.Stroke.Dash := TStrokeDash.Solid; - end; - TMarkedTextAttribute.InputError: - begin - ACanvas.Stroke.Thickness := 1; - ACanvas.Stroke.Dash := TStrokeDash.Dot - end; - end; - - // CaretPosition -> MarkedTextPosition - if CaretPosition.X > S.Length - FMarkedText.Length then - PositionInLine := S.Length - FMarkedText.Length - else - PositionInLine := CaretPosition.X; - TextRange := TTextRange.Create(PositionInLine + I, 1); - - Region := ALayout.RegionForRange(TextRange); - UnderlineRegion(Region); - end; - finally - ACanvas.RestoreState(SavedState); - end; - end; - -var - Layout: TTextLayout; - Attributes: TArray; -begin - Layout := TTextLayoutManager.TextLayoutByCanvas(ACanvas.ClassType).Create; - try - Layout.BeginUpdate; - try - Layout.TopLeft := ARect.TopLeft; - Layout.MaxSize := TPointF.Create(ARect.Width, ARect.Height); - Layout.WordWrap := AWordWrap; - Layout.HorizontalAlign := ATextAlign; - Layout.VerticalAlign := AVTextAlign; - Layout.Font := Font; - Layout.Color := ACanvas.Fill.Color; - Layout.Opacity := AOpacity; - Layout.RightToLeft := TFillTextFlag.RightToLeft in Flags; - Layout.Text := S; - finally - Layout.EndUpdate; - end; - Layout.RenderLayout(ACanvas); - - Attributes := GetMarketTextAttributes; - if not FMarkedText.IsEmpty and (Length(Attributes) > 0) then - UnderlineMarkedText(Layout, Attributes); - finally - FreeAndNil(Layout); - end; -end; - -function TTextServiceWin.HasMarkedText: Boolean; -begin - Result := not FMarkedText.IsEmpty; -end; - -function TPlatformWin.GetTextServiceClass: TTextServiceClass; -begin - Result := TTextServiceWin; -end; - -{ Window } - -procedure TWinWindowHandle.CalcNearestIntegerMultiple; -const - MaxMul = 9; -var - I: Integer; -begin - if not SameValue(Frac(Scale), 0, TEpsilon.Scale) then - begin - FNearestIntegerMultiple := Round(Scale); - for I := 2 to MaxMul do - if SameValue(Frac(Scale * I), 0, TEpsilon.Scale) then - begin - FNearestIntegerMultiple := Trunc(Scale * I); - Break; - end; - end - else - FNearestIntegerMultiple := Round(Scale); -end; - -procedure TWinWindowHandle.CorrectWindowSize(const WindowPos: PWindowPos); -var - LClientSize: TSizeF; - WndClientSize: TSize; - WndClientOffset: TPoint; - LClientRect, LWindowRect: TRect; - FinalScale: TPointF; -begin - GetClientRect(Wnd, LClientRect); // dp - ClientToScreen(Wnd, LClientRect.TopLeft); - ClientToScreen(Wnd, LClientRect.BottomRight); - GetWindowRect(Wnd, LWindowRect); // dp - - WndClientOffset := (LClientRect.TopLeft - LWindowRect.TopLeft) + (LWindowRect.BottomRight - LClientRect.BottomRight); // dp - WndClientSize := TSize.Create(WindowPos^.cx - WndClientOffset.X, WindowPos^.cy - WndClientOffset.Y); // dp - if SameValue(Frac(WndClientSize.Width / Scale), 0, TEpsilon.Scale) then - FinalScale.X := Scale - else - FinalScale.X := NearestIntegerMultiple; - if SameValue(Frac(WndClientSize.Height / Scale), 0, TEpsilon.Scale) then - FinalScale.Y := Scale - else - FinalScale.Y := NearestIntegerMultiple; - - LClientSize := TSizeF.Create(Round(WndClientSize.Width / FinalScale.X), Round(WndClientSize.Height / FinalScale.Y)); // dp - - WindowPos^.cx := Round(LClientSize.Width * FinalScale.X) + WndClientOffset.X; // px - WindowPos^.cy := Round(LClientSize.Height * FinalScale.Y) + WndClientOffset.Y; // px -end; - -class procedure TWinWindowHandle.SetForcedScale(NewScale: Single); -begin - if NewScale < 1 then - NewScale := 1; - if not SameValue(FForcedScale, NewScale, TEpsilon.Scale) then - FForcedScale := NewScale; -end; - -constructor TWinWindowHandle.Create(const AForm: TCommonCustomForm; const AWnd: HWND); -begin - inherited Create; - if not (TCanvasManager.DefaultCanvas.InheritsFrom(TCustomCanvasD2D)) or GlobalUseGPUCanvas then - FForcedScale := 1; - FForm := AForm; - FWnd := AWnd; - GetWindowRect(Wnd, FWndBounds); - FBounds := TRectF.Create(FWndBounds.Left, FWndBounds.Top, FWndBounds.Width / Scale, FWndBounds.Height / Scale); - UpdateClientSize; -end; - -function FindWindow(Handle: HWND): TCommonCustomForm; -begin - Result := nil; - if (Handle <> 0) then - begin - if GlobalFindAtomW(PChar(WindowAtomString)) = WindowAtom then - Result := Pointer(GetProp(Handle, MakeIntAtom(WindowAtom))) - else - Result := nil; - end; -end; - -function FmxHandleToHWND(const FmxHandle: TWindowHandle): HWND; -begin - if FmxHandle <> nil then - Result := WindowHandleToPlatform(FmxHandle).Wnd - else - Result := 0; -end; - -function WindowHandleToPlatform(const AHandle: TWindowHandle): TWinWindowHandle; -begin - Result := TWinWindowHandle(AHandle); -end; - -function FormToHWND(Form: TCommonCustomForm): HWND; -begin - if (Form <> nil) and (Form.Handle is TWinWindowHandle) then - Result := TWinWindowHandle(Form.Handle).Wnd - else - Result := 0; -end; - -function ApplicationHWND: HWND; -begin - if PlatformWin <> nil then - Result := PlatformWin.GetApplicationHWND - else - Result := 0; -end; - -destructor TWinWindowHandle.Destroy; -begin - FreeBuffer; - FZOrderManager.Free; - inherited; -end; - -procedure TWinWindowHandle.ScaleChanged; -begin - CalcNearestIntegerMultiple; - - FWndClientSize := TSize.Create(Ceil(FClientSize.Width * Scale), Ceil(FClientSize.Height * Scale)); - FClientSize := TSizeF.Create(FWndClientSize.Width / Scale, FWndClientSize.Height / Scale); - SetWindowSizeByClientSize; - - Form.RecreateResources; -end; - -procedure TWinWindowHandle.DpiChanged; -var - NewScale: Single; -begin - NewScale := NewDpi / StandardDpi; - if not SameValue(FCurrentScale, NewScale, TEpsilon.Scale) then - begin - FCurrentScale := NewScale; - ScaleChanged; - end; -end; - -procedure TWinWindowHandle.CreateBuffer; -begin - FBufferSize := TSize.Create(Width, Height); - FBitmapInfo.bmiHeader.biSize := SizeOf(TBitmapInfoHeader); - FBitmapInfo.bmiHeader.biPlanes := 1; - FBitmapInfo.bmiHeader.biBitCount := 32; - FBitmapInfo.bmiHeader.biCompression := BI_RGB; - FBitmapInfo.bmiHeader.biWidth := FBufferSize.Width; - if FBitmapInfo.bmiHeader.biWidth <= 0 then - FBitmapInfo.bmiHeader.biWidth := 1; - FBitmapInfo.bmiHeader.biHeight := -FBufferSize.Height; - if FBitmapInfo.bmiHeader.biHeight >= 0 then - FBitmapInfo.bmiHeader.biHeight := -1; - try - FBufferBitmap := CreateDIBSection(0, FBitmapInfo, DIB_RGB_COLORS, Pointer(FBufferBits), 0, 0); - if FBufferBits = nil then - RaiseLastOSError; - try - FBufferHandle := CreateCompatibleDC(0); - if FBufferHandle = 0 then - RaiseLastOSError; - try - if SelectObject(FBufferHandle, FBufferBitmap) = 0 then - RaiseLastOSError; - except - DeleteDC(FBufferHandle); - FBufferHandle := 0; - raise; - end; - except - DeleteObject(FBufferBitmap); - FBufferBits := nil; - raise; - end; - except - FBufferBitmap := 0; - raise; - end; -end; - -procedure TWinWindowHandle.ResizeBuffer(const Width, Height: Integer); -begin - if FBufferHandle = 0 then - CreateBuffer(Width, Height) - else if (FBitmapInfo.bmiHeader.biWidth <> Width) or (Abs(FBitmapInfo.bmiHeader.biHeight) <> Height) then - begin - FreeBuffer; - CreateBuffer(Width, Height) - end; -end; - -function TWinWindowHandle.GetClientSize: TSize; -begin - Result := FClientSize.Ceiling; -end; - -function TWinWindowHandle.GetNearestIntegerMultiple: Integer; -begin - if FNearestIntegerMultiple = 0 then - CalcNearestIntegerMultiple; - Result := FNearestIntegerMultiple; -end; - -procedure TWinWindowHandle.SetWindowSizeByClientSize; -var - LClientRect, LWindowRect: TRect; - NewWindowSize: TSize; - BorderThickness: TSize; -begin - GetClientRect(Wnd, LClientRect); - GetWindowRect(Wnd, LWindowRect); - - BorderThickness := TSize.Create(LWindowRect.Width - LClientRect.Width, LWindowRect.Height - LClientRect.Height); - NewWindowSize := FWndClientSize + BorderThickness; - - if LWindowRect.Size <> NewWindowSize then - begin - FWndBounds.Width := NewWindowSize.Width; - FWndBounds.Height := NewWindowSize.Height; - FBounds.Width := NewWindowSize.Width / Scale; - FBounds.Height := NewWindowSize.Height / Scale; - SetWindowPos(Wnd, 0, LWindowRect.Left, LWindowRect.Top, NewWindowSize.Width, NewWindowSize.Height, - SWP_NOMOVE or SWP_NOZORDER or SWP_NOACTIVATE); - end; -end; - -procedure TWinWindowHandle.SetClientSize(const Value: TSize); -begin - if FClientSize.Ceiling <> Value then - begin - FWndClientSize := TSize.Create(Ceil(Value.Width * Scale), Ceil(Value.Height * Scale)); - FClientSize := Value; - SetWindowSizeByClientSize; - end; -end; - -function TWinWindowHandle.GetBounds: TRect; -begin - Result := FBounds.Ceiling; -end; - -procedure TWinWindowHandle.SetBounds(const Value: TRect); -var - CurrentWndRect: TRect; -begin - if FBounds.Ceiling <> Value then - begin - FWndBounds.Left := Ceil(Value.Left * Scale); - FWndBounds.Top := Ceil(Value.Top * Scale); - FWndBounds.Width := Ceil(Value.Width * Scale); - FWndBounds.Height := Ceil(Value.Height * Scale); - FBounds := Value; - GetWindowRect(Wnd, CurrentWndRect); - if CurrentWndRect <> FWndBounds then - SetWindowPos(Wnd, 0, FWndBounds.Left, FWndBounds.Top, FWndBounds.Width, FWndBounds.Height, - SWP_NOACTIVATE or SWP_NOZORDER); - UpdateClientSize; - end; -end; - -function TWinWindowHandle.GetWndBounds: TRect; -begin - Result := FWndBounds; -end; - -procedure TWinWindowHandle.SetWndBounds(const Value: TRect); -var - CurrentWndRect: TRect; -begin - if FWndBounds <> Value then - begin - FWndBounds := Value; - FBounds.Left := Value.Left / Scale; - FBounds.Top := Value.Top / Scale; - FBounds.Width := Value.Width / Scale; - FBounds.Height := Value.Height / Scale; - GetWindowRect(Wnd, CurrentWndRect); - if CurrentWndRect <> Value then - SetWindowPos(Wnd, 0, Value.Left, Value.Top, Value.Width, Value.Height, SWP_NOACTIVATE or SWP_NOZORDER); - UpdateClientSize; - end; -end; - -function TWinWindowHandle.GetWndClientSize: TSize; -begin - Result := FWndClientSize; -end; - -procedure TWinWindowHandle.FreeBuffer; -begin - if FBufferHandle <> 0 then - begin - DeleteDC(FBufferHandle); - FBufferHandle := 0; - end; - if FBufferBitmap <> 0 then - begin - DeleteObject(FBufferBitmap); - FBufferBitmap := 0; - end; -end; - -function TWinWindowHandle.GetScale: Single; -begin - if not SameValue(FForcedScale, 0, TEpsilon.Scale) then - Result := FForcedScale - else if not SameValue(FCurrentScale, 0, TEpsilon.Scale) then - Result := FCurrentScale - else - Result := GetWndScale(FWnd); - - FCurrentScale := Result; -end; - -function TWinWindowHandle.GetTransparency: Boolean; -begin - Result := (Form <> nil) and Form.Transparency; -end; - -function TWinWindowHandle.GetZOrderManager: TWinZOrderManager; -begin - if FZOrderManager = nil then - FZOrderManager := TWinZOrderManager.Create(Self); - Result := FZOrderManager; -end; - -procedure TWinWindowHandle.UpdateClientSize; -var - R: TRect; - OldWndClientSize: TSize; -begin - GetClientRect(Wnd, R); - OldWndClientSize := FWndClientSize; - FWndClientSize := TSize.Create(R.Width, R.Height); - FClientSize := TSizeF.Create(FWndClientSize.Width / Scale, FWndClientSize.Height / Scale); - - // We need to update canvas size, based on new Client Size value. - if (OldWndClientSize <> FWndClientSize) and FForm.IsHandleAllocated then - TOpenForm(FForm).ResizeHandle; -end; - -procedure TWinWindowHandle.UpdateLayer; -var - Blend: TBlendFunction; - Origin, Size, BitmapOrigin: TPoint; - ContextObject: IContextObject; -begin - if FBufferHandle <> 0 then - begin - { Copy from Context } - if Supports(Form, IContextObject, ContextObject) and (ContextObject.Context <> nil) then - ContextObject.Context.CopyToBits(FBufferBits, Form.Width * 4, Rect(0, 0, Form.Width, Form.Height)); - { Update } - Origin := WindowHandleToPlatform(Form.Handle).WndBounds.TopLeft; - Size := TPoint(FBufferSize); - Blend.BlendOp := AC_SRC_OVER; - Blend.AlphaFormat := $01; // AC_SRC_ALPHA; - Blend.BlendFlags := 0; - Blend.SourceConstantAlpha := $FF; - BitmapOrigin := Point(0, 0); - UpdateLayeredWindow(Wnd, 0, @Origin, @Size, FBufferHandle, @BitmapOrigin, $00000000, @Blend, ULW_ALPHA); - end; -end; - -function TWinWindowHandle.FormToWnd(const Rect: TRectF): TRectF; -begin - Result := TRectF.Create(Rect.Left * Scale, Rect.Top * Scale, Rect.Right * Scale, Rect.Bottom * Scale); -end; - -function TWinWindowHandle.WndToForm(const Rect: TRect): TRectF; -begin - Result := WndToForm(TRectF.Create(Rect)); -end; - -function TWinWindowHandle.WndToForm(const Rect: TRectF): TRectF; -begin - Result := TRectF.Create(Rect.Left / Scale, Rect.Top / Scale, Rect.Right / Scale, Rect.Bottom / Scale); -end; - -function WMPaint(HWND: HWND; uMsg: UINT; wParam: wParam; LPARAM: LPARAM): LRESULT; stdcall; -var - I, rgnStatus: Integer; - Region: HRgn; - RegionSize: DWORD; - RegionData: PRgnData; - R: TRect; - LForm: TCommonCustomForm; - UpdateRects, InPaintUpdateRects: TUpdateRects; - PS: TPaintStruct; - Wnd: Winapi.Windows.HWND; - PaintControl: IPaintControl; -begin - LForm := FindWindow(HWND); - if LForm <> nil then - begin - LForm.Dispatch(Message); - Wnd := FormToHWND(LForm); - GetUpdateRect(Wnd, R, False); - Region := CreateRectRgn(R.Left, R.Top, R.Right, R.Bottom); - if Region <> 0 then - try - rgnStatus := GetUpdateRgn(Wnd, Region, False); - if (rgnStatus = 2) or (rgnStatus = 3) then - begin - RegionSize := GetRegionData(Region, $FFFF, nil); - if RegionSize > 0 then - begin - GetMem(RegionData, RegionSize); - try - if RegionSize = GetRegionData(Region, RegionSize, RegionData) then - begin - SetLength(UpdateRects, RegionData.rdh.nCount); - for I := 0 to RegionData.rdh.nCount - 1 do - UpdateRects[I] := WindowHandleToPlatform(LForm.Handle).WndToForm(PRgnRects(@RegionData.buffer[0])[I]); - end; - finally - FreeMem(RegionData, RegionSize); - end; - if Supports(LForm, IPaintControl, PaintControl) then - begin - PaintControl.ContextHandle := BeginPaint(Wnd, PS); - try - if PlatformWin.FInPaintUpdateRects.TryGetValue(LForm.Handle, InPaintUpdateRects) and - (Length(InPaintUpdateRects) > 0) then - begin - // add update rects from FInPaintUpdateRects - for I := 0 to High(InPaintUpdateRects) do - begin - SetLength(UpdateRects, Length(UpdateRects) + 1); - UpdateRects[High(UpdateRects)] := WindowHandleToPlatform(LForm.Handle).WndToForm(InPaintUpdateRects[I]); - end; - end; - PaintControl.PaintRects(UpdateRects); - if PlatformWin.FInPaintUpdateRects.TryGetValue(LForm.Handle, InPaintUpdateRects) and - (Length(InPaintUpdateRects) > 0) then - begin - // paint second time - when Repaint called in painting - PlatformWin.FInPaintUpdateRects.TryGetValue(LForm.Handle, UpdateRects); - SetLength(InPaintUpdateRects, 0); - PlatformWin.FInPaintUpdateRects.AddOrSetValue(LForm.Handle, InPaintUpdateRects); - PaintControl.PaintRects(UpdateRects); - end; - PaintControl.ContextHandle := 0; - finally - EndPaint(Wnd, PS); - end; - end; - end; - end; - finally - DeleteObject(Region); - end; - Result := DefWindowProc(HWND, uMsg, wParam, LPARAM); - end - else - Result := DefWindowProc(HWND, uMsg, wParam, LPARAM); -end; - -// When the WM_GESTURENOTIFY message is received, use SetGestureConfig to specify the gestures to receive. -// This message should always be bubbled up using the DefWindowProc function. -procedure WMGestureNotify(const AForm: TCommonCustomForm; uMsg: UINT; AGestureNotify: LPARAM); -const - // Gestures - CPan: array [Boolean] of Cardinal = (0, GC_PAN); - CZoom: array [Boolean] of Cardinal = (0, GC_ZOOM); - CRotate: array [Boolean] of Cardinal = (0, GC_ROTATE); - CPressAndTap: array [Boolean] of Cardinal = (0, GC_PRESSANDTAP); - CTwoFingerTap: array [Boolean] of Cardinal = (0, GC_TWOFINGERTAP); -var - LPoint: TPoint; - LPointF: TPointF; - LControl: TComponent; - LConfigs: array of TGestureConfig; - LGestures: TInteractiveGestures; - LObj: IControl; - LGObj: IGestureControl; - LGestureNotify: ^GESTURENOTIFYSTRUCT; -begin - LGestureNotify := Pointer(AGestureNotify); - - // Get the location of the gesture. - LPoint := SmallPointToPoint(LGestureNotify.ptsLocation); - LPointF := TPointF.Create(LPoint.X, LPoint.Y); - - // Find the object that the gesture belongs to. - LObj := AForm.ObjectAtPoint(LPointF); - if LObj <> nil then - LControl := LObj.GetObject - else - LControl := AForm; - - if Supports(LControl, IGestureControl, LGObj) then - LGestures := LGObj.GetListOfInteractiveGestures; - - SetLength(LConfigs, 5); - ZeroMemory(@LConfigs[0], SizeOf(GestureConfig) * 5); - - // Pan gesture & options - LConfigs[0].dwID := GID_PAN; - LConfigs[0].dwWant := CPan[TInteractiveGesture.Pan in LGestures] or GC_PAN_WITH_SINGLE_FINGER_VERTICALLY or - GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY or GC_PAN_WITH_INERTIA; - LConfigs[0].dwBlock := CPan[not (TInteractiveGesture.Pan in LGestures)] or GC_PAN_WITH_GUTTER; - - // Zoom gesture - LConfigs[1].dwID := GID_ZOOM; - LConfigs[1].dwWant := CZoom[TInteractiveGesture.Zoom in LGestures]; - LConfigs[1].dwBlock := CZoom[not (TInteractiveGesture.Zoom in LGestures)]; - - // Rotate gesture - LConfigs[2].dwID := GID_ROTATE; - LConfigs[2].dwWant := CRotate[TInteractiveGesture.Rotate in LGestures]; - LConfigs[2].dwBlock := CRotate[not (TInteractiveGesture.Rotate in LGestures)]; - - // TwoFingerTap gesture - LConfigs[3].dwID := GID_TWOFINGERTAP; - LConfigs[3].dwWant := CTwoFingerTap[TInteractiveGesture.TwoFingerTap in LGestures]; - LConfigs[3].dwBlock := CTwoFingerTap[not (TInteractiveGesture.TwoFingerTap in LGestures)]; - - // PressAnTap gesture - LConfigs[4].dwID := GID_PRESSANDTAP; - LConfigs[4].dwWant := CPressAndTap[TInteractiveGesture.PressAndTap in LGestures]; - LConfigs[4].dwBlock := CPressAndTap[not (TInteractiveGesture.PressAndTap in LGestures)]; - - SetGestureConfig(FormToHWND(AForm), 0, Length(LConfigs), @LConfigs[0], SizeOf(TGestureConfig)); -end; - -function WMGesture(const AForm: TCommonCustomForm; uMsg: UINT; AParam: wParam; AGestureInfo: LPARAM): LRESULT; -var - LPoint: TPointF; - LControl: TComponent; - LGestureInfo: GestureInfo; - EventInfo: TGestureEventInfo; - Obj: IControl; - LGObj: IGestureControl; -begin - Result := 0; - ZeroMemory(@LGestureInfo, SizeOf(LGestureInfo)); - LGestureInfo.cbSize := SizeOf(LGestureInfo); - if GetGestureInfo(AGestureInfo, LGestureInfo) then - try - ZeroMemory(@EventInfo, SizeOf(EventInfo)); - EventInfo.GestureID := LGestureInfo.dwID + igiFirst; - - // Get the control - LPoint := TPointF.Create(LGestureInfo.ptsLocation.X, LGestureInfo.ptsLocation.Y); - Obj := AForm.ObjectAtPoint(LPoint); - if Obj <> nil then - LControl := Obj.GetObject - else - LControl := AForm; - - if EventInfo.GestureID = igiBegin then - CapturedGestureControl := LControl; - - // Don't pass GID_BEGIN and GID_END to the control - if (EventInfo.GestureID <> igiBegin) and - (EventInfo.GestureID <> igiEnd) then - begin - // Set EventInfo fields from LGestureInfo - EventInfo.Location := AForm.ScreenToClient(LPoint); - EventInfo.Flags := []; - if LGestureInfo.dwFlags and GF_BEGIN = GF_BEGIN then - Include(EventInfo.Flags, TInteractiveGestureFlag.gfBegin); - if LGestureInfo.dwFlags and GF_INERTIA = GF_INERTIA then - Include(EventInfo.Flags, TInteractiveGestureFlag.gfInertia); - if LGestureInfo.dwFlags and GF_END = GF_END then - Include(EventInfo.Flags, TInteractiveGestureFlag.gfEnd); - case EventInfo.GestureID of - igiPan: - begin - EventInfo.Distance := Cardinal(LGestureInfo.ullArguments); - EventInfo.InertiaVector := - TPointF(SmallPointToPoint(InertiaVectorFromArgument(LGestureInfo.ullArguments))); - end; - igiZoom, igiTwoFingerTap: - EventInfo.Distance := Cardinal(LGestureInfo.ullArguments); - igiPressAndTap: - begin - // ullArguments is distance/offset. Add to Location to make TapLocation - LPoint := TPointF(SmallPointToPoint(TSmallPoint(Cardinal(LGestureInfo.ullArguments)))); - // EventInfo.TapLocation := AForm.ScreenToClient(TPointF(LPoint.X + LGestureInfo.ptsLocation.X, LPoint.Y + LGestureInfo.ptsLocation.Y)); - end; - igiRotate: - EventInfo.Angle := RotateAngleFromArgument(LGestureInfo.ullArguments); - end; - // send message to the control - if Supports(CapturedGestureControl, IGestureControl, LGObj) then - LGObj.CMGesture(EventInfo); - end - else - Result := DefWindowProc(FormToHWND(AForm), uMsg, AParam, AGestureInfo); - - if EventInfo.GestureID = igiEnd then - CapturedGestureControl := nil; - - finally - CloseGestureInfoHandle(AGestureInfo); - end; -end; - -procedure InitializeMultiTouch(const AForm: TCommonCustomForm); -begin - if PlatformWin.FMultiTouchManager = nil then - PlatformWin.FMultiTouchManager := TMultiTouchManagerWin.Create(AForm) - else if PlatformWin.FMultiTouchManager.Parent <> AForm then - PlatformWin.FMultiTouchManager.Parent := AForm; -end; - -function WMTouch(const AForm: TCommonCustomForm; uMsg: UINT; TouchInputCount: wParam; TouchInputInfo: LPARAM): LRESULT; -var - TouchCount: Integer; - Inputs: array of TTouchInput; - Input: TTouchInput; - I: Integer; - Touches: TTouches; - Action: TTouchAction; - Point: TPointF; - Control: IControl; -begin - Result := 0; - TouchCount := LoWord(Cardinal(TouchInputCount)); - SetLength(Inputs, TouchCount); - Action := TTouchAction.None; - - if GetTouchInputInfo(TouchInputInfo, TouchCount, @Inputs[0], SizeOf(TTouchInput)) then - try - SetLength(Touches, TouchCount); - for I := 0 to TouchCount - 1 do - begin - Input := Inputs[I]; - - if (Input.dwFlags and TOUCHEVENTF_DOWN) <> 0 then - Action := TTouchAction.Down - else if ((Input.dwFlags and TOUCHEVENTF_UP) <> 0) then - Action := TTouchAction.Up - else if ((Input.dwFlags and TOUCHEVENTF_MOVE) <> 0) then - Action := TTouchAction.Move; - - // TOUCHINFO point coordinates is in 1/100 of a pixel - Point := TPointF.Create(Input.X / 100, Input.Y / 100); - Touches[I].Location := AForm.ScreenToClient(Point); - end; - - if Length(Touches) = 1 then - Control := AForm.ObjectAtPoint(Point) - else if Length(Touches) = 2 then - Control := AForm.ObjectAtPoint(AForm.ClientToScreen(Touches[0].Location.MidPoint(Touches[1].Location))) - else - Control := nil; - - InitializeMultiTouch(AForm); - PlatformWin.FMultiTouchManager.SetEnabledGestures(PlatformWin.FEnabledInteractiveGestures); - PlatformWin.FMultiTouchManager.HandleTouches(Touches, Action, Control); - Result := DefWindowProc(FormToHWND(AForm), uMsg, TouchInputCount, TouchInputInfo); - finally - CloseTouchInputHandle(TouchInputInfo); - end; -end; - -procedure HandleMouseGestures(const AForm: TCommonCustomForm; uMsg: UINT; const X, Y: Single); -var - GestureObj: IGestureControl; - Control: TComponent; - Obj: IControl; - Action: TTouchAction; - Point: TPointF; -begin - if TWinTouchGestureEngine.Supported(AForm) then - if not ((uMsg <> WM_LBUTTONDOWN) and (PlatformWin.FMultiTouchManager = nil)) then - begin - Point := TPointF.Create(X, Y); - Obj := AForm.ObjectAtPoint(Point); - if Obj <> nil then - Control := Obj.GetObject - else - Control := AForm; - - if Supports(Control, IGestureControl, GestureObj) then - begin - Control := GestureObj.GetFirstControlWithGestureEngine; - if Control <> nil then - begin - case uMsg of - WM_MOUSEMOVE: - Action := TTouchAction.Move; - WM_LBUTTONDOWN: - Action := TTouchAction.Down; - WM_LBUTTONUP: - Action := TTouchAction.Up; - else - Action := TTouchAction.None; - end; - - InitializeMultiTouch(AForm); - PlatformWin.FMultiTouchManager.HandleMouseGestures(Point, Action, Obj); - end; - end; - end; -end; - -type - PDestroyChildData = ^TDestroyChildData; - - TDestroyChildData = record - Parent: HWND; - Recreating: Boolean; - end; - -var - LastKeyIsDeadKey: Boolean = False; - LastMousePos: TPoint; - -const - ImpossibleMousePosition: TPoint = (X: Low(FixedInt); Y: Low(FixedInt)); - -function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; -var - UpdateRects: array of TRectF; - LForm: TCommonCustomForm; - Wnd: Winapi.Windows.HWND; - WindowBorder: TWindowBorderWin; - - procedure ProcessUpdateMessages; - var - Msg: TMsg; - begin - SetLength(UpdateRects, 1); - UpdateRects[0] := TRectF.Create(TSmallPoint(Cardinal(wParam)).X, TSmallPoint(Cardinal(wParam)).Y, - TSmallPoint(Cardinal(lParam)).X, TSmallPoint(Cardinal(lParam)).Y); - while PeekMessage(Msg, hwnd, WM_ADDUPDATERECT, WM_ADDUPDATERECT, PM_REMOVE) do - begin - if Msg.Message = WM_QUIT then - begin - { Repost WM_QUIT messages } - PostQuitMessage(Msg.wParam); - Break; - end; - SetLength(UpdateRects, Length(UpdateRects) + 1); - UpdateRects[High(UpdateRects)] := RectF(TSmallPoint(Cardinal(Msg.wParam)).X, TSmallPoint(Cardinal(Msg.wParam)).Y, - TSmallPoint(Cardinal(Msg.lParam)).X, TSmallPoint(Cardinal(Msg.lParam)).Y); - end; - end; - - procedure PrepareClosePopups; - begin - if (Screen <> nil) and (LForm <> nil) and (not WindowHandleToPlatform(LForm.Handle).FDisableDeactivate) then - begin - if LForm.FormStyle = TFormStyle.Popup then - Screen.PrepareClosePopups(LForm) - else - Screen.PrepareClosePopups(nil); - end; - end; - - procedure ClosePopupList; - begin - if (Screen <> nil) and (LForm <> nil) and (not WindowHandleToPlatform(LForm.Handle).FDisableDeactivate) then - Screen.ClosePopupForms; - end; - - procedure InitialActionsOfPopups; - begin - case uMsg of - WM_NCLBUTTONDOWN, WM_NCRBUTTONDOWN, WM_NCMBUTTONDOWN, WM_NCLBUTTONDBLCLK, WM_NCRBUTTONDBLCLK, WM_NCMBUTTONDBLCLK: - begin - PrepareClosePopups; - ClosePopupList; - end; - WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MBUTTONDOWN, WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK, WM_MBUTTONDBLCLK: - PrepareClosePopups; - end; - end; - - procedure FinalActionsOfPopups; - begin - case uMsg of - WM_LBUTTONUP, WM_RBUTTONUP, WM_MBUTTONUP, WM_DESTROY: - begin - LForm := FindWindow(hwnd); - ClosePopupList; - end; - end; - end; - - function DispatchMouseWheelToPopups: Boolean; - var - I: Integer; - Handled: Boolean; - begin - Handled := False; - if Screen <> nil then - for I := Screen.PopupFormCount - 1 downto 0 do - if Screen.PopupForms[I].Visible then - begin - Screen.PopupForms[I].MouseWheel(KeysToShiftState(wParam), TSmallPoint(Cardinal(wParam)).Y, Handled); - if Handled then - Break; - end; - Result := Handled; - end; - - procedure CurrentChar(Msg: tagMsg; var Key: Word; var Ch: WideChar; var Shift: TShiftState); - begin - Key := wParam; - Ch := WideChar(Msg.wParam); - Shift := KeyDataToShiftState(lParam); - if (Ch >= ' ') then - begin - if ((Shift * [ssAlt, ssCtrl]) = [ssAlt, ssCtrl]) then - begin - // AltGr + Char (in German keyboard) - Shift := Shift - [ssAlt, ssCtrl]; - end; - if (([ssAlt, ssCtrl, ssCommand] * Shift) = []) then - Key := 0; - end; - if ((([ssAlt, ssCtrl, ssCommand] * Shift) <> []) or (Ch < ' ')) and (Key > 0) then - Ch := #0; - end; - - procedure ScaleMousePos(const Handle: TWindowHandle; var P: TPoint); - begin - ScreenToClient(WindowHandleToPlatform(Handle).Wnd, P); - P := TPoint.Create(Round(P.X / Handle.Scale), Round(P.Y / Handle.Scale)); - end; - -const - FlagZOrder: UINT = SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE; -var - R: TRect; - P: TPoint; - H: Boolean; - Key: Word; - Ch: WideChar; - tme: TTRACKMOUSEEVENT; - Message: TMessage; - Shift: TShiftState; - Placement: TWindowPlacement; - Msg: tagMsg; - PaintControl: IPaintControl; - Obj: IControl; - MenuDisplayed: Boolean; - OldWindowState: TWindowState; - CharMsg, DeadCharMsg: UInt32; -begin - - Result := 0; - LForm := FindWindow(hwnd); - //! Launcher Fix - if LForm <> nil then - begin - TMsg.Msg := uMsg; - TMsg.WParam := wParam; - TMsg.LParam := lParam; - TMsg.Result := 0; - - LForm.Dispatch(TMsg); - - uMsg := TMsg.Msg; - wParam := TMsg.WParam; - lParam := TMsg.LParam; - end; - - Message.Msg := uMsg; - Message.WParam := wParam; - Message.LParam := lParam; - Message.Result := 0; - // Check to see if this is a design message - if (LForm <> nil) and (LForm.Designer <> nil) and LForm.Designer.IsDesignMsg(LForm, Message) then - Exit; - - if LForm <> nil then - begin - Wnd := FormToHWND(LForm); - try - InitialActionsOfPopups; - try - case uMsg of - WM_NCHITTEST, - WM_NCACTIVATE, - WM_NCADDUPDATERECT, - WM_NCMOUSEMOVE, WM_NCLBUTTONDOWN, WM_NCLBUTTONUP, - WM_NCCALCSIZE, WM_NCPAINT: - Result := WMNCMessages(LForm, uMsg, wParam, lParam); - $B000 + 74: // CM_DESTROYHANDLE - begin - if (LForm.ClassName = 'TFormContainerForm') and (wParam = 1) then - begin - // IDE parent recreate - SetParent(Wnd, GetDesktopWindow); - SetWindowPos(Wnd, 0, $A000, $A000, 10, 10, SWP_NOSIZE or SWP_NOZORDER); - end; - end; - WM_DESTROY: - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - WM_ACTIVATE: - begin - if not ((TFmxFormState.Recreating in LForm.FormState) or (LForm.FormStyle = TFormStyle.Popup) or - (WindowHandleToPlatform(LForm.Handle).FDisableDeactivate)) then - begin - if LoWord(wParam) <> 0 then - begin - if HiWord(wParam) = 0 then - LForm.Activate; - // If the window is minimized, then do nothing. - end - else - begin - PrepareClosePopups; - LForm.Deactivate; - ClosePopupList; - end; - end; - Result := 0; - end; - WM_MOUSEACTIVATE: - begin - if not (TFmxFormState.Recreating in LForm.FormState) then - begin - if (LForm.FormStyle = TFormStyle.Popup) then - Result := MA_NOACTIVATE - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - // Default result if nothing happens - end; - end; - WM_ERASEBKGND: - begin - Result := 1; - end; - WM_PAINT: - begin - Result := WMPaint(hwnd, uMsg, wParam, lParam); - end; - WM_DPICHANGED: - begin - MultiDisplayWin.UpdateDisplayInformation; - WindowHandleToPlatform(LForm.Handle).DpiChanged(HiWord(wParam)); - Result := 0; - end; - WM_DISPLAYCHANGE: - begin - MultiDisplayWin.UpdateDisplayInformation; - end; - WM_ADDUPDATERECT: - begin - ProcessUpdateMessages; - if Supports(LForm, IPaintControl, PaintControl) then - PaintControl.PaintRects(UpdateRects); - WindowHandleToPlatform(LForm.Handle).UpdateLayer; - end; - WM_WINDOWPOSCHANGING: - begin - if ([csLoading, csDesigning] * LForm.ComponentState = [csLoading]) then - begin - if (LForm.Position in [TFormPosition.Default, TFormPosition.DefaultPosOnly]) and - (LForm.WindowState <> TWindowState.wsMaximized) then - begin - PWindowPos(lParam)^.Flags := PWindowPos(lParam)^.Flags or SWP_NOMOVE; - end; - if (LForm.Position in [TFormPosition.Default, TFormPosition.DefaultSizeOnly]) and - (LForm.BorderStyle in [TFmxFormBorderStyle.Sizeable, TFmxFormBorderStyle.SizeToolWin]) then - begin - PWindowPos(lParam)^.Flags := PWindowPos(lParam)^.Flags or SWP_NOSIZE; - end; - end; - if (not ((PWindowPos(lParam)^.Flags and FlagZOrder) = FlagZOrder)) then - begin - if (Screen <> nil) and (LForm <> nil) and (not WindowHandleToPlatform(LForm.Handle).FDisableDeactivate) - then - begin - if (LForm.FormStyle = TFormStyle.Popup) then - ClosePopupList; - end; - end; - if (not ((PWindowPos(lParam)^.Flags and SWP_NOSIZE) = SWP_NOSIZE)) then - WindowHandleToPlatform(LForm.Handle).CorrectWindowSize(PWindowPos(lParam)); - if (TFmxFormState.InDesigner in LForm.FormState) and (TFmxFormState.WasNotShown in LForm.FormState) then - TOpenForm(LForm).ShowInDesigner; - end; - WM_WINDOWPOSCHANGED: - begin - Placement.Length := SizeOf(TWindowPlacement); - GetWindowPlacement(hwnd, Placement); - if (Application.MainForm <> nil) and (LForm = Application.MainForm) - and (Placement.showCmd = SW_SHOWMINIMIZED) then - begin - PlatformWin.MinimizeApp; - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end - else - begin - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - if (PWindowPos(lParam)^.Flags and SWP_NOSIZE = 0) or - (PWindowPos(lParam)^.Flags and SWP_NOMOVE = 0) then - begin - GetWindowRect(hwnd, R); - WindowHandleToPlatform(LForm.Handle).WndBounds := R; - R := WindowHandleToPlatform(LForm.Handle).Bounds; - LForm.SetBounds(R.Left, R.Top, R.Width, R.Height); - end; - if PWindowPos(lParam)^.Flags and SWP_FRAMECHANGED = SWP_FRAMECHANGED then - WindowHandleToPlatform(LForm.Handle).UpdateClientSize; - { update state } - PlatformWin.FDiableUpdateState := True; - try - OldWindowState := LForm.WindowState; - Placement.Length := SizeOf(TWindowPlacement); - GetWindowPlacement(hwnd, Placement); - case Placement.showCmd of - SW_SHOWMINIMIZED: - LForm.WindowState := TWindowState.wsMinimized; - SW_SHOWMAXIMIZED: - LForm.WindowState := TWindowState.wsMaximized; - else - if csDesigning in LForm.ComponentState then - begin - { for using Metro-style interface in designer we set Maximized but we can change window size } - if LForm.WindowState <> TWindowState.wsMaximized then - LForm.WindowState := TWindowState.wsNormal; - end - else - begin - if not (TFmxFormState.WasNotShown in LForm.FormState) then - LForm.WindowState := TWindowState.wsNormal; - end; - end; - if OldWindowState <> LForm.WindowState then - begin - PostMessage(hwnd, WM_CLOSEMENU, 0, 0); - PrepareClosePopups; - ClosePopupList; - end; - finally - PlatformWin.FDiableUpdateState := False; - end; - WMNCMessages(LForm, uMsg, wParam, lParam); - end; - end; - WM_CLOSE: - LForm.Close; - WM_LBUTTONDOWN: - begin - PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := True; - GetCursorPos(P); - LastMousePos := ImpossibleMousePosition; - ScaleMousePos(LForm.Handle, P); - LForm.MouseDown(TMouseButton.mbLeft, MouseToShiftState(wParam), P.X, P.Y); - HandleMouseGestures(LForm, uMsg, P.X, P.Y); - end; - WM_LBUTTONDBLCLK: - begin - PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := True; - GetCursorPos(P); - LastMousePos := ImpossibleMousePosition; - ScaleMousePos(LForm.Handle, P); - LForm.MouseDown(TMouseButton.mbLeft, MouseToShiftState(wParam) + [ssDouble], P.X, P.Y); - end; - WM_CANCELMODE: - begin - // If the user shows dialog from mouse down event, WinApi rejects MouseUp event from queue. In this case, - // Form.Captured control are not reset and we cannot complete click event correctly. As result button stay - // pressed. - // When modal dialog is appeared, WinApi sends WM_CANCELMODE message for rejecting other related events. - // We save this flag for future emulation MouseUp event, if it's required. - - // It's not Ok for FMX, because FMX depends on normal sequence of mouse events Down -> Up, so - // Form waits final MouseUp event. - // If we receive WM_CANCELMODE message while MouseDown is processed, we should emulate MouseUp event. - if PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed then - begin - GetCursorPos(P); - SendMessage(hwnd, WM_LBUTTONUP, 0, PointToLParam(P)); - end; - PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := False; - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_LBUTTONUP: - begin - PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := False; - WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); - if LForm.Border.IsSupported and WindowBorder.NCClick then - Result := WMNCMessages(LForm, uMsg, wParam, lParam) - else - begin - GetCursorPos(P); - LastMousePos := ImpossibleMousePosition; - ScaleMousePos(LForm.Handle, P); - LForm.MouseUp(TMouseButton.mbLeft, MouseToShiftState(wParam), P.X, P.Y); - end; - HandleMouseGestures(LForm, uMsg, P.X, P.Y); - end; - WM_RBUTTONDOWN, WM_RBUTTONDBLCLK: - begin - GetCursorPos(P); - LastMousePos := ImpossibleMousePosition; - Obj := IControl(LForm.ObjectAtPoint(P)); - if (Obj <> nil) and (Obj.GetObject <> nil) and not (csDesigning in Obj.GetObject.ComponentState) then - begin - Obj.SetFocus; - MenuDisplayed := Obj.ShowContextMenu(P); - end - else - MenuDisplayed := False; - if not MenuDisplayed then - begin - ScaleMousePos(LForm.Handle, P); - if uMsg = WM_RBUTTONDBLCLK then - LForm.MouseDown(TMouseButton.mbRight, MouseToShiftState(wParam) + [ssDouble], P.X, P.Y) - else - LForm.MouseDown(TMouseButton.mbRight, MouseToShiftState(wParam), P.X, P.Y); - end; - end; - WM_RBUTTONUP: - begin - GetCursorPos(P); - LastMousePos := ImpossibleMousePosition; - ScaleMousePos(LForm.Handle, P); - LForm.MouseUp(TMouseButton.mbRight, MouseToShiftState(wParam), P.X, P.Y); - end; - WM_MBUTTONDOWN: - begin - GetCursorPos(P); - LastMousePos := ImpossibleMousePosition; - ScaleMousePos(LForm.Handle, P); - LForm.MouseDown(TMouseButton.mbMiddle, MouseToShiftState(wParam), P.X, P.Y); - end; - WM_MBUTTONUP: - begin - GetCursorPos(P); - LastMousePos := ImpossibleMousePosition; - ScaleMousePos(LForm.Handle, P); - LForm.MouseUp(TMouseButton.mbMiddle, MouseToShiftState(wParam), P.X, P.Y); - end; - WM_MBUTTONDBLCLK: - begin - GetCursorPos(P); - LastMousePos := ImpossibleMousePosition; - ScaleMousePos(LForm.Handle, P); - LForm.MouseDown(TMouseButton.mbMiddle, MouseToShiftState(wParam) + [ssDouble], P.X, P.Y); - end; - WM_MENUSELECT, - WM_INITMENUPOPUP: - MenuServiceWin.Dispatch(Message); - WM_MOUSEMOVE: - begin - WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); - if LForm.Border.IsSupported then - begin - if WindowBorder.NCClick then - Result := WMNCMessages(LForm, uMsg, wParam, lParam) - else - begin - WindowBorder.MouseLeave; - GetCursorPos(P); - if P <> LastMousePos then - begin - LastMousePos := P; - ScaleMousePos(LForm.Handle, P); - LForm.MouseMove(MouseToShiftState(wParam), P.X, P.Y); - end; - end; - end - else - begin - GetCursorPos(P); - if P <> LastMousePos then - begin - LastMousePos := P; - ScaleMousePos(LForm.Handle, P); - LForm.MouseMove(MouseToShiftState(wParam), P.X, P.Y); - end; - end; - tme.cbSize := SizeOf(tme); - tme.hwndTrack := hwnd; - tme.dwFlags := TME_LEAVE; - tme.dwHoverTime := HOVER_DEFAULT; - TrackMouseEvent(tme); - HandleMouseGestures(LForm, uMsg, P.X, P.Y); - end; - WM_MOUSELEAVE: - begin - WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); - if LForm.Border.IsSupported and WindowBorder.NCClick then - Result := WMNCMessages(LForm, uMsg, wParam, lParam) - else - LForm.MouseLeave; - end; - WM_MOUSEWHEEL: - begin - H := DispatchMouseWheelToPopups; - - if not H then - LForm.MouseWheel(KeysToShiftState(wParam), - TSmallPoint(Cardinal(wParam)).Y, H); - - Result := Integer(H = True); - end; - WM_GETDLGCODE: - begin - Result := DLGC_WANTTAB or dlgc_WantArrows or DLGC_WANTCHARS; - end; - WM_CHAR: - begin - Ch := WideChar(wParam); - Key := 0; - LForm.KeyDown(Key, Ch, KeyDataToShiftState(lParam)); - LForm.KeyUp(Key, Ch, KeyDataToShiftState(lParam)); - Result := 0; - end; - WM_KEYDOWN, - WM_SYSKEYDOWN: - begin - // Check if this key translates to a WM_CHAR/WM_SYSCHAR message - // and if it does, pass KeyDown with character code - // and clear the original WM_CHAR from the queue - Msg.hwnd := hwnd; - Msg.Message := uMsg; - Msg.wParam := wParam; - Msg.lParam := lParam; - - Result := 0; - - if uMsg = WM_SYSKEYDOWN then - begin - CharMsg := WM_SYSCHAR; - DeadCharMsg := WM_SYSDEADCHAR; - end - else - begin - CharMsg := WM_CHAR; - DeadCharMsg := WM_DEADCHAR; - end; - - LastKeyIsDeadKey := False; - if PeekMessage(Msg, hwnd, DeadCharMsg, DeadCharMsg, PM_NOREMOVE + PM_NOYIELD) then - LastKeyIsDeadKey := True - else if TranslateMessage(Msg) then - begin - if PeekMessage(Msg, hwnd, CharMsg, CharMsg, PM_REMOVE) then - begin - CurrentChar(Msg, Key, Ch, Shift); - // clear duplicate WM_CHAR - if CharMsg = WM_CHAR then - PeekMessage(Msg, hwnd, CharMsg, CharMsg, PM_REMOVE); - LForm.KeyDown(Key, Ch, Shift); - end - else - begin - Key := wParam; - Ch := #0; - LForm.KeyDown(Key, Ch, KeyDataToShiftState(lParam)); - end; - end; - - // always let the system handle system shortcuts - if uMsg = WM_SYSKEYDOWN then - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_DEADCHAR: - begin - PeekMessage(Msg, hwnd, WM_DEADCHAR, WM_DEADCHAR, PM_REMOVE); - PeekMessage(Msg, hwnd, WM_CHAR, WM_CHAR, PM_REMOVE); - end; - WM_KEYUP: - begin - Ch := #0; - Key := wParam; - Shift := KeyDataToShiftState(lParam); - if LastKeyIsDeadKey then - begin - Result := 0; - end - else - begin - Msg.hwnd := hwnd; - Msg.Message := WM_KEYDOWN; - Msg.wParam := wParam; - Msg.lParam := Msg.lParam and $7FFFFFFF; - if TranslateMessage(Msg) then - if PeekMessage(Msg, hwnd, WM_CHAR, WM_CHAR, PM_REMOVE) then - begin - CurrentChar(Msg, Key, Ch, Shift); - end; - LForm.KeyUp(Key, Ch, Shift); - Result := 0; - end - end; - WM_SYSKEYUP: - begin - if (wParam = VK_MENU) or (wParam = VK_F10) then - begin - LForm.EnterMenuLoop; - Result := 0; - end - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_RELEASEFORM: - begin - LForm.Free; - end; - { IME } - WM_INPUTLANGCHANGE: - begin - // Result := SetIMECompositionWndPosition(LForm, uMsg, wParam, lParam); - // OnInputLangChange(); - end; - WM_IME_SETCONTEXT, - WM_IME_STARTCOMPOSITION, - WM_IME_COMPOSITION, - WM_IME_NOTIFY, - WM_IME_ENDCOMPOSITION: - begin - PlatformWin.ImmManager[LForm].Dispatch(Message); - Result := Message.Result; - end; - WM_COMMAND: - begin - MenuServiceWin.Dispatch(Message); - Result := Message.Result; - end; - WM_GESTURENOTIFY: - begin - WMGestureNotify(LForm, uMsg, lParam); - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_GESTURE: - begin - Result := WMGesture(LForm, uMsg, wParam, lParam); - end; - WM_TOUCH: - begin - GetCursorPos(P); - Result := WMTouch(LForm, uMsg, wParam, lParam); - ScreenToClient(Wnd, P); - end; - WM_CTLCOLORMSGBOX..WM_CTLCOLORSTATIC: - Result := SendMessage(lParam, CN_BASE + uMsg, wParam, lParam); - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - // Default result if nothing happens - end; - finally - FinalActionsOfPopups; - end; - except - on E: Exception do - Application.HandleException(E); - end; - end - else { if LForm = nil } - begin - if (PlatformWin <> nil) and (hwnd = PlatformWin.FApplicationHWND) then - begin - case uMsg of - WM_SYSCOMMAND: - begin - case TWMSysCommand(Message).CmdType of - SC_MINIMIZE: - begin - PlatformWin.MinimizeApp; - Result := 0; - end; - SC_RESTORE: - begin - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - PlatformWin.RestoreApp; - end - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - end; - WM_CLOSE: - begin - if Application.MainForm <> nil then - begin - try - if Screen <> nil then - Screen.ActiveForm := nil; - Application.MainForm.Close; - except - on E: Exception do - Application.HandleException(E); - end; - Exit; - end; - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_DESTROY: - Application.Terminate; - WM_ACTIVATEAPP: - begin - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - if BOOL(wParam) then - PlatformWin.RestoreApp; - end; - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - end - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - // Default result if nothing happens -end; - -var - FMAppClass: TWndClass = ( - style: 0; - lpfnWndProc: @WndProc; - cbClsExtra: 0; - cbWndExtra: 0; - hInstance: 0; - hIcon: 0; - hCursor: 0; - hbrBackground: 0; - lpszMenuName: nil; - lpszClassName: 'TFMAppClass'); - -function TPlatformWin.CreateAppHandle: HWND; -var - TempClass: TWndClass; - P: PChar; - ClassRegistered: Boolean; - ModuleName: array [0 .. 255] of Char; -begin - GetModuleFileName(MainInstance, ModuleName, Length(ModuleName)); - P := AnsiStrRScan(ModuleName, '\'); - if P <> nil then - StrCopy(ModuleName, P + 1); - P := AnsiStrScan(ModuleName, '.'); - if P <> nil then - P^ := #0; - CharLower(CharNext(ModuleName)); - FDefaultTitle := ModuleName; - if Application <> nil then - FTitle := Application.Title - else - FTitle := FDefaultTitle; - FMAppClass.hInstance := hInstance; - ClassRegistered := GetClassInfo(hInstance, FMAppClass.lpszClassName, TempClass); - FMAppClass.hIcon := LoadIconW(MainInstance, PChar('MAINICON')); - if not ClassRegistered or (TempClass.lpfnWndProc <> @WndProc) then - begin - if ClassRegistered then - Winapi.Windows.UnregisterClass(FMAppClass.lpszClassName, hInstance); - Winapi.Windows.RegisterClass(FMAppClass); - end; - Result := CreateWindowEx(WS_EX_WINDOWEDGE or WS_EX_APPWINDOW, FMAppClass.lpszClassName, PChar(FTitle), - WS_POPUP or WS_GROUP, 0, 0, 0, 0, GetDesktopWindow, 0, hInstance, nil); - Winapi.Windows.ShowWindow(Result, SW_SHOWNORMAL); -end; - -function TPlatformWin.GetApplicationHWND: HWND; -begin - UpdateApplicationHwnd; - Result := FApplicationHWND; -end; - -function TPlatformWin.CreateWindow(const AForm: TCommonCustomForm): TWindowHandle; -var - DesignerForm: IDesignerForm; - IsDesignerForm: Boolean; - WindowClass: TWndClass; - LDropTarget: TWinDropTarget; - Style, ExStyle: DWORD; - Wnd: HWND; - ParentWnd: HWND; - WndClassName: string; - LForm, LParentForm: TCommonCustomForm; - - function GetParentFormHandle: HWND; - begin - Result := 0; - if LForm.ParentForm <> nil then - begin - if LForm.ParentForm.Handle = nil then - raise EArgumentException.CreateFMT(SNotInstance, ['ParentForm.Handle'])at ReturnAddress; - Result := FormToHWND(LForm.ParentForm); - end; - end; - -begin - RaiseIfNil(AForm, 'AForm'); - - LDropTarget := nil; - LForm := AForm; - Style := WS_CLIPSIBLINGS or WS_CLIPCHILDREN; - ExStyle := 0; - WndClassName := 'FM' + LForm.ClassName; - IsDesignerForm := TFmxFormState.InDesigner in LForm.FormState; - if not GetClassInfo(hInstance, PChar(WndClassName), WindowClass) then - begin - FillChar(WindowClass, SizeOf(WindowClass), 0); - WindowClass.style := CS_DBLCLKS or CS_HREDRAW or CS_VREDRAW; - WindowClass.lpfnWndProc := @WndProc; - WindowClass.cbClsExtra := 0; - WindowClass.cbWndExtra := 0; - WindowClass.hInstance := hInstance; - WindowClass.hIcon := LoadIconW(MainInstance, PChar('MAINICON')); - if csDesigning in LForm.ComponentState then - WindowClass.hCursor := LoadCursorW(0, PChar(IDC_ARROW)) - else - WindowClass.hCursor := 0; - WindowClass.hbrBackground := GetStockObject(NULL_BRUSH); - WindowClass.lpszMenuName := nil; - WindowClass.lpszClassName := PChar(WndClassName); - if Winapi.Windows.RegisterClass(WindowClass) = 0 then - RaiseLastOSError; - end; - if (csDesigning in LForm.ComponentState) or IsDesignerForm then - begin - Style := Style or WS_CHILD; - // Parent handle going to set in IDE. - // Now set temporary value - ParentWnd := GetDesktopWindow; - end - else - begin - case LForm.FormStyle of - TFormStyle.Popup: - begin - Style := style or WS_POPUP; - ExStyle := ExStyle or WS_EX_NOACTIVATE; - end; - TFormStyle.StayOnTop: - begin - ExStyle := ExStyle or WS_EX_TOPMOST; - end; - end; - if LForm.Transparency then - begin - Style := style or WS_POPUP; - ExStyle := ExStyle or WS_EX_LAYERED; - end - else - begin - case LForm.BorderStyle of - TFmxFormBorderStyle.None: - Style := Style or WS_POPUP or WS_SYSMENU; - TFmxFormBorderStyle.Single, TFmxFormBorderStyle.ToolWindow: - Style := Style or (WS_CAPTION or WS_BORDER); - TFmxFormBorderStyle.Sizeable, TFmxFormBorderStyle.SizeToolWin: - Style := Style or (WS_CAPTION or WS_THICKFRAME); - end; - if LForm.BorderStyle in [TFmxFormBorderStyle.ToolWindow, TFmxFormBorderStyle.SizeToolWin] then - ExStyle := ExStyle or WS_EX_TOOLWINDOW; - if LForm.BorderStyle <> TFmxFormBorderStyle.None then - begin - if TBorderIcon.biMinimize in LForm.BorderIcons then - Style := Style or WS_MINIMIZEBOX; - if TBorderIcon.biMaximize in LForm.BorderIcons then - Style := Style or WS_MAXIMIZEBOX; - if TBorderIcon.biSystemMenu in LForm.BorderIcons then - Style := Style or WS_SYSMENU; - end; - end; - // Use handle of parent form - ParentWnd := GetParentFormHandle; - // For Dialogs and Popups we used handle of active form - if (ParentWnd = 0) and ((TFmxFormState.Modal in LForm.FormState) or (LForm.FormStyle = TFormStyle.Popup)) then - begin - if (Screen <> nil) and (Screen.ActiveForm <> nil) then - ParentWnd := FormToHWND(Screen.ActiveForm); - if (ParentWnd = 0) then - begin - ParentWnd := GetActiveWindow; - LParentForm := FindWindow(ParentWnd); - if LParentForm = nil then - ParentWnd := 0; - end; - end; - // If none parent then we use handle of Application - if ParentWnd = 0 then - ParentWnd := ApplicationHWND; - end; - Wnd := CheckWinapiHandle(CreateWindowEx(ExStyle, WindowClass.lpszClassName, PChar(LForm.Caption), style, - Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), ParentWnd, 0, - hInstance, nil)); - try - SetProp(Wnd, MakeIntAtom(WindowAtom), THandle(LForm)); - try - if not ((csDesigning in AForm.ComponentState) or Supports(AForm, IDesignerForm, DesignerForm)) then - begin - LDropTarget := TWinDropTarget.Create(nil); - LDropTarget.Form := LForm; - end; - try - if LDropTarget <> nil then - RegisterDragDrop(Wnd, LDropTarget); - Result := TWinWindowHandle.Create(LForm, Wnd); - TWinWindowHandle(Result).FWinDropTarget := LDropTarget; - except - if LDropTarget <> nil then - RevokeDragDrop(Wnd); - raise; - end; - except - FreeAndNil(LDropTarget); - raise; - end; - except - Winapi.Windows.DestroyWindow(Wnd); - raise; - end; - TWinWindowHandle(Result).FWinDropTarget := LDropTarget; - - FImmManagers.Add(AForm, TImmManager.Create(AForm)); - FFormsInfo.Add(AForm, TFormInfo.Create); -end; - -function TPlatformWin.CreateWindowBorder(const AForm: TCommonCustomForm): TWindowBorder; -begin - Result := FMX.Forms.Border.Win.CreateWindowBorder(AForm); -end; - -procedure TPlatformWin.DestroyWindow(const AForm: TCommonCustomForm); -var - Wnd: HWND; - DesignerForm: IDesignerForm; -begin - RaiseIfNil(AForm, 'AForm'); - - HideWindow(AForm); - Wnd := FormToHWND(AForm); - if not ((csDesigning in AForm.ComponentState) or Supports(AForm, IDesignerForm, DesignerForm)) then - RevokeDragDrop(Wnd); - WindowHandleToPlatform(AForm.Handle).FWinDropTarget.Free; - RemoveProp(Wnd, MakeIntAtom(WindowAtom)); - Winapi.Windows.DestroyWindow(Wnd); - - FImmManagers.Remove(AForm); - FFormsInfo.Remove(AForm); -end; - -procedure TPlatformWin.ReleaseWindow(const AForm: TCommonCustomForm); -begin -end; - -procedure TPlatformWin.InvalidateImmediately(const AForm: TCommonCustomForm); -begin - RaiseIfNil(AForm, 'AForm'); - - InvalidateWindowRect(AForm, AForm.ClientRect); -end; - -procedure TPlatformWin.InvalidateWindowRect(const AForm: TCommonCustomForm; R: TRectF); -var - WR: TRect; - Wnd: HWND; - PaintControl: IPaintControl; - UpdateRects: TUpdateRects; - I: Integer; -begin - RaiseIfNil(AForm, 'AForm'); - - if IntersectRect(R, TRectF.Create(0, 0, AForm.ClientWidth, AForm.ClientHeight)) then - begin - Wnd := FormToHWND(AForm); - if AForm.Transparency and not (csDesigning in AForm.ComponentState) then - begin - PostMessage(Wnd, WM_ADDUPDATERECT, Integer(SmallPoint(Round(R.Left), Round(R.Top))), - Integer(SmallPoint(Round(R.Right), Round(R.Bottom)))); - end - else - begin - R := WindowHandleToPlatform(AForm.Handle).FormToWnd(R); - if Supports(AForm, IPaintControl, PaintControl) and (PaintControl.ContextHandle <> 0) then - begin - // In Paint - if not FInPaintUpdateRects.TryGetValue(AForm.Handle, UpdateRects) then - begin - SetLength(UpdateRects, 1); - UpdateRects[0] := R; - FInPaintUpdateRects.Add(AForm.Handle, UpdateRects); - Exit; - end - else - for I := 0 to High(UpdateRects) do - if (UpdateRects[I] = R) or (UpdateRects[I].Contains(R.TopLeft) and UpdateRects[I].Contains(R.BottomRight)) - then - Exit; - SetLength(UpdateRects, Length(UpdateRects) + 1); - UpdateRects[High(UpdateRects)] := R; - FInPaintUpdateRects.AddOrSetValue(AForm.Handle, UpdateRects); - end - else - begin - WR := TRect.Create(Trunc(R.Left), Trunc(R.Top), Ceil(R.Right), Ceil(R.Bottom)); - Winapi.Windows.InvalidateRect(Wnd, @WR, False); - end; - end; - end; -end; - -procedure TPlatformWin.MinimizeApp; -var - AnimationEnable: Boolean; - - function GetAnimation: Boolean; - var - Info: TAnimationInfo; - begin - Info.cbSize := SizeOf(TAnimationInfo); - if SystemParametersInfo(SPI_GETANIMATION, Info.cbSize, @Info, 0) then - Result := Info.iMinAnimate <> 0 - else - Result := False; - end; - - procedure SetAnimation(Value: Boolean); - var - Info: TAnimationInfo; - begin - Info.cbSize := SizeOf(TAnimationInfo); - Info.iMinAnimate := Integer(BOOL(Value)); - SystemParametersInfo(SPI_SETANIMATION, Info.cbSize, @Info, 0); - end; - - procedure MinimiseAllForms; - var - I: Integer; - WindowHandle: HWND; - begin - for I := 0 to Screen.FormCount - 1 do - begin - WindowHandle := FormToHWND(Screen.Forms[I]); - if IsWindowVisible(WindowHandle) then - DefWindowProc(WindowHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0); - end; - end; - -begin - AnimationEnable := GetAnimation; - try - SetAnimation(False); - if Application.MainForm <> nil then - begin - SetWindowPos(ApplicationHWND, FormToHWND(Application.MainForm), Application.MainForm.Left, - Application.MainForm.Top, Application.MainForm.Width, 0, SWP_SHOWWINDOW); - MinimiseAllForms; - end; - DefWindowProc(ApplicationHWND, WM_SYSCOMMAND, SC_MINIMIZE, 0); - finally - SetAnimation(AnimationEnable); - end; -end; - -function TPlatformWin.GetWindowRect(const AForm: TCommonCustomForm): TRectF; -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.IsHandleAllocated then - Result := WindowHandleToPlatform(AForm.Handle).Bounds - else - Result := TRectF.Create(0, 0, AForm.Width, AForm.Height); -end; - -function TPlatformWin.GetWindowScale(const AForm: TCommonCustomForm): Single; -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.IsHandleAllocated then - Result := AForm.Handle.Scale - else - Result := GetScreenScale; -end; - -procedure TPlatformWin.SetWindowRect(const AForm: TCommonCustomForm; ARect: TRectF); -begin - RaiseIfNil(AForm, 'AForm'); - - { for using Metro-style interface in designer we set Maximized but we can change window size } - if AForm.IsHandleAllocated and (AForm.WindowState in [TWindowState.wsNormal, TWindowState.wsMaximized]) then - WindowHandleToPlatform(AForm.Handle).Bounds := ARect.Round; -end; - -procedure TPlatformWin.SetWindowCaption(const AForm: TCommonCustomForm; const ACaption: string); -begin - RaiseIfNil(AForm, 'AForm'); - - SetWindowText(FormToHWND(AForm), ACaption); -end; - -procedure TPlatformWin.RegisterCanvasClasses; -begin - if GlobalUseGPUCanvas then - FMX.Canvas.GPU.RegisterCanvasClasses; - FMX.Canvas.D2D.RegisterCanvasClasses; - FMX.Canvas.GDIP.RegisterCanvasClasses; -end; - -procedure TPlatformWin.UnhookTouchHandler(const AForm: TCommonCustomForm); -begin - if TOSVersion.Check(6, 1) then - UnregisterTouchWindow(FormToHWND(AForm)); -end; - -procedure TPlatformWin.UnregisterCanvasClasses; -begin - if GlobalUseGPUCanvas then - FMX.Canvas.GPU.UnregisterCanvasClasses; - FMX.Canvas.D2D.UnregisterCanvasClasses; - FMX.Canvas.GDIP.UnregisterCanvasClasses; -end; - -procedure TPlatformWin.RegisterContextClasses; -begin - FMX.Context.DX9.RegisterContextClasses; - FMX.Context.DX11.RegisterContextClasses; -end; - -procedure TPlatformWin.UnregisterContextClasses; -begin - FMX.Context.DX9.UnregisterContextClasses; - FMX.Context.DX11.UnregisterContextClasses; -end; - -procedure TPlatformWin.ReleaseCapture(const AForm: TCommonCustomForm); -begin - Winapi.Windows.ReleaseCapture; -end; - -procedure TPlatformWin.SetApplicationHWNDProc(const Value: TApplicationHWNDProc); -begin - if @FApplicationHWNDProc <> @Value then - begin - FApplicationHWNDProc := Value; - UpdateApplicationHwnd; - end; -end; - -procedure TPlatformWin.SetCapture(const AForm: TCommonCustomForm); -begin - RaiseIfNil(AForm, 'AForm'); - - Winapi.Windows.SetCapture(FormToHWND(AForm)); -end; - -function TPlatformWin.GetCaretWidth: Integer; -begin - Result := 1; -end; - -function TPlatformWin.GetClientSize(const AForm: TCommonCustomForm): TPointF; -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.IsHandleAllocated then - Result := TSizeF.Create(WindowHandleToPlatform(AForm.Handle).ClientSize) - else - Result := TSizeF.Create(AForm.Width, AForm.Height); -end; - -procedure TPlatformWin.SetClientSize(const AForm: TCommonCustomForm; const ASize: TPointF); -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.IsHandleAllocated then - WindowHandleToPlatform(AForm.Handle).ClientSize := TSizeF.Create(ASize).Ceiling; -end; - -procedure TPlatformWin.HideWindow(const AForm: TCommonCustomForm); -begin - RaiseIfNil(AForm, 'AForm'); - - SetWindowPos(FormToHWND(AForm), 0, 0, 0, 0, 0, SWP_HIDEWINDOW or SWP_NOSIZE or SWP_NOMOVE or SWP_NOZORDER or - SWP_NOACTIVATE); -end; - -const - ShowCommands: array [TWindowState] of Integer = (SW_SHOWNORMAL, SW_MINIMIZE, SW_SHOWMAXIMIZED); - -procedure TPlatformWin.ShowWindow(const AForm: TCommonCustomForm); -const - uFlags = SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE; -var - Wnd, WndParent: HWND; - nCmdShow: Integer; - OldActiveForm: TCommonCustomForm; - OldDisableDeactivate: Boolean; - OldActiveHandle: TWinWindowHandle; -begin - RaiseIfNil(AForm, 'AForm'); - - Wnd := FormToHWND(AForm); - nCmdShow := ShowCommands[AForm.WindowState]; - if (AForm.FormStyle = TFormStyle.Popup) then - begin - nCmdShow := nCmdShow or SW_SHOWNOACTIVATE; - OldDisableDeactivate := False; - OldActiveHandle := nil; - if Screen <> nil then - begin - OldActiveForm := Screen.ActiveForm; - if OldActiveForm <> nil then - OldActiveHandle := WindowHandleToPlatform(OldActiveForm.Handle); - end; - try - if OldActiveHandle <> nil then - begin - OldDisableDeactivate := OldActiveHandle.FDisableDeactivate; - OldActiveHandle.FDisableDeactivate := True; - end; - Winapi.Windows.ShowWindow(Wnd, nCmdShow); - if OldActiveHandle <> nil then - SetWindowPos(OldActiveHandle.Wnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER); - finally - if OldActiveHandle <> nil then - OldActiveHandle.FDisableDeactivate := OldDisableDeactivate; - end; - end - else - Winapi.Windows.ShowWindow(Wnd, nCmdShow); - - if AForm.Transparency and not (csDesigning in AForm.ComponentState) then - PostMessage(FormToHWND(AForm), WM_ADDUPDATERECT, Integer(SmallPoint(0, 0)), - Integer(SmallPoint(AForm.Width, AForm.Height))); - - if AForm.FormStyle in [TFormStyle.StayOnTop, TFormStyle.Popup] then - begin - WndParent := GetParent(Wnd); - if (WndParent = GetDesktopWindow) or (WndParent = 0) then - SetWindowPos(Wnd, HWND_TOPMOST, 0, 0, 0, 0, uFlags) - else - SetWindowPos(Wnd, HWND_TOP, 0, 0, 0, 0, uFlags); - end; -end; - -procedure TPlatformWin.BringToFront(const AForm: TCommonCustomForm); -var - Wnd: HWND; -begin - RaiseIfNil(AForm, 'AForm'); - - Wnd := FormToHWND(AForm); - SetWindowPos(Wnd, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); -end; - -procedure TPlatformWin.SendToBack(const AForm: TCommonCustomForm); -var - Wnd: HWND; -begin - RaiseIfNil(AForm, 'AForm'); - - Wnd := FormToHWND(AForm); - SetWindowPos(Wnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); -end; - -procedure TPlatformWin.Activate(const AForm: TCommonCustomForm); -var - Wnd: HWND; -begin - RaiseIfNil(AForm, 'AForm'); - - Wnd := FormToHWND(AForm); - if not IsWindowVisible(Wnd) or IsIconic(Wnd) then - begin - if AForm.FormStyle = TFormStyle.Popup then - Winapi.Windows.ShowWindow(Wnd, SW_RESTORE or SW_SHOWNOACTIVATE) - else - Winapi.Windows.ShowWindow(Wnd, SW_RESTORE); - end; - if AForm.FormStyle <> TFormStyle.Popup then - Winapi.Windows.SetActiveWindow(Wnd); -end; - -procedure TPlatformWin.SetWindowState(const AForm: TCommonCustomForm; const AState: TWindowState); -var - Wnd: HWND; - - procedure DoSetState(const AState: TWindowState); - begin - if AForm.FormStyle = TFormStyle.Popup then - Winapi.Windows.ShowWindow(Wnd, ShowCommands[AState] or SW_SHOWNOACTIVATE) - else - begin - if (Application.MainForm = AForm) and (AState = TWindowState.wsMinimized) then - Winapi.Windows.ShowWindow(ApplicationHWND, ShowCommands[AState]) - else - Winapi.Windows.ShowWindow(Wnd, ShowCommands[AState]) - end; - end; - -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.Visible and not FDiableUpdateState then - begin - Wnd := FormToHWND(AForm); - if AForm.FullScreen then - try - FDiableUpdateState := True; - AForm.WindowState := TWindowState.wsMaximized; - if not Winapi.Windows.IsZoomed(Wnd) then - DoSetState(TWindowState.wsMaximized); - finally - FDiableUpdateState := False; - end - else - DoSetState(AState); - end; -end; - -function TPlatformWin.ShowWindowModal(const AForm: TCommonCustomForm): TModalResult; -var - WindowList: Pointer; - AppService: IFMXApplicationService; - CloseRes: TCloseAction; -begin - RaiseIfNil(AForm, 'AForm'); - - Result := mrNone; - if GetCapture <> 0 then - SendMessage(GetCapture, WM_CANCELMODE, 0, 0); - Winapi.Windows.ReleaseCapture; - AForm.HandleNeeded; - WindowList := DisableTaskWindows(FormToHWND(AForm)); - try - CloseRes := TCloseAction.caNone; - AForm.Show; - AForm.ModalResult := mrNone; - SetActiveWindow(FormToHWND(AForm)); - SetFocus(FormToHWND(AForm)); - Screen.ActiveForm := AForm; - AppService := IFMXApplicationService(TPlatformServices.Current.GetPlatformService(IFMXApplicationService)); - repeat - if not Application.HandleMessage then - AppService.WaitMessage; - if Application.Terminated then - Break - else if AForm.ModalResult <> mrNone then - begin - CloseRes := AForm.CloseModal; - Result := AForm.ModalResult; - end; - until Result <> mrNone; - if not Application.Terminated and (CloseRes <> TCloseAction.caFree) then - AForm.Hide; - finally - EnableTaskWindows(WindowList); - end; - - Result := AForm.ModalResult; -end; - -function TPlatformWin.CanShowModal: Boolean; -begin - Result := True; -end; - -function TPlatformWin.ClientToScreen(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; -var - P: TPoint; - Scale: Single; -begin - RaiseIfNil(AForm, 'AForm'); - - Scale := WindowHandleToPlatform(AForm.Handle).Scale; - P := (Point * Scale).Round; - Winapi.Windows.ClientToScreen(FormToHWND(AForm), P); - Result := TPointF.Create(P) / Scale; -end; - -function TPlatformWin.ScreenToClient(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; -var - P: TPoint; - Scale: Single; -begin - RaiseIfNil(AForm, 'AForm'); - - Scale := WindowHandleToPlatform(AForm.Handle).Scale; - P := (Point * Scale).Round; - Winapi.Windows.ScreenToClient(FormToHWND(AForm), P); - Result := TPointF.Create(P) / Scale; -end; - -{ Menus } - -function TPlatformWin.SupportsDefaultSize(const AComponent: TComponentKind): Boolean; -begin - Result := AComponent = TComponentKind.Calendar; -end; - -procedure TPlatformWin.ThreadSync(var Msg: TMessage); -begin - if Msg.Msg = WM_NULL then - begin - CheckSynchronize; - Msg.Result := 0; - end - else - Msg.Result := DefWindowProc(FThreadSyncHandle, Msg.Msg, Msg.wParam, Msg.LPARAM); -end; - -procedure TPlatformWin.RemoveRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); -begin - Exclude(FEnabledInteractiveGestures, ARec); -end; - -procedure TPlatformWin.RestoreApp; - - function TryFindForm(const AFormHandle: HWND; out AForm: TCommonCustomForm): Boolean; - var - I: Integer; - Form: TCommonCustomForm; - begin - for I := 0 to Screen.FormCount - 1 do - begin - Form := Screen.Forms[I]; - if FormToHWND(Form) = AFormHandle then - begin - AForm := Form; - Exit(True); - end; - end; - Result := False; - end; - -var - LWND: HWND; - Form: TCommonCustomForm; -begin - if Screen = nil then - Exit; - - if Screen.ActiveForm <> nil then - Screen.ActiveForm.Activate - else - begin - LWND := GetActiveWindow; - if LWND <> 0 then - begin - if TryFindForm(LWND, Form) then - Form.Activate - else - SetActiveWindow(LWND); - Exit; - end; - - if Application.MainForm <> nil then - Application.MainForm.Activate; - end; -end; - -procedure TPlatformWin.HookTouchHandler(const AForm: TCommonCustomForm); -begin - if TOSVersion.Check(6, 1) and TWinTouchGestureEngine.Supported(AForm) then - RegisterTouchWindow(FormToHWND(AForm), TWF_WANTPALM); -end; - -{ Drag and Drop } - -const - SID_IDropTargetHelper = '{4657278B-411B-11d2-839A-00C04FD918D0}'; - CLSID_DragDropHelper: TGUID = (D1: $4657278A; D2: $411B; D3: $11D2; D4: ($83, $9A, $00, $C0, $4F, $D9, $18, $D0)); - -type - IDropTargetHelper = interface(IUnknown) - [SID_IDropTargetHelper] - function DragEnter(hwndTarget: HWND; const dataObj: IDataObject; var pt: TPoint; - dwEffect: Longint): HRESULT; stdcall; - function DragLeave: HRESULT; stdcall; - function DragOver(var pt: TPoint; dwEffect: Longint): HRESULT; stdcall; - function Drop(const dataObj: IDataObject; var pt: TPoint; dwEffect: Longint): HRESULT; stdcall; - function Show(Show: BOOL): HRESULT; stdcall; - end; - -var - FDropTargetHelper: IDropTargetHelper; - FDataObj: IDataObject; - -function TWinDropTarget.GetDataObject: TDragObject; -var - FormatEtc: TFormatEtc; - StgMedium: TStgMedium; - str: string; - Drop: HDrop; - I, numFiles, buflen: Integer; - buffer: MarshaledString; -begin - FillChar(Result, SizeOf(Result), 0); - if FDataObj = nil then - Exit; - // get file name first - FormatEtc.cfFormat := CF_HDROP; - FormatEtc.ptd := nil; - FormatEtc.dwAspect := DVASPECT_CONTENT; - FormatEtc.lindex := -1; - FormatEtc.Tymed := TYMED_HGLOBAL; - // get FireMonkey - if PlatformWin.FDragAndDropActive then - begin - FormatEtc.cfFormat := CF_FMOBJECT; - if FDataObj.GetData(FormatEtc, StgMedium) = S_OK then - begin - Result := TDropSource(StgMedium.HGLOBAL).Data; - Exit; - end; - end; - // files - str := ''; - FormatEtc.cfFormat := CF_HDROP; - if FDataObj.GetData(FormatEtc, StgMedium) = S_OK then - begin - try - Drop := HDrop(GlobalLock(StgMedium.HGLOBAL)); - { Replace Text } - numFiles := DragQueryFile(Drop, $FFFFFFFF, nil, 0); - SetLength(Result.Files, numFiles); - for I := 0 to numFiles - 1 do - begin - // Setting length of buffer plus 1 for string end char (#0) - buflen := DragQueryFile(Drop, I, nil, 0) + 1; - buffer := StrAlloc(buflen); - DragQueryFile(Drop, I, buffer, buflen); - Result.Files[I] := buffer; - StrDispose(buffer); - if I = 0 then - Result.Data := Result.Files[0]; - end; - finally - GlobalUnlock(StgMedium.HGLOBAL); - { Free the memory } - ReleaseStgMedium(StgMedium); - end; - Exit; - end; - // get text - FormatEtc.cfFormat := CF_UNICODETEXT; - if FDataObj.GetData(FormatEtc, StgMedium) = S_OK then - begin - try - { Lock the global memory handle to get a pointer to the data } - str := PChar(GlobalLock(StgMedium.HGLOBAL)); - Result.Data := str; - finally - { Finished with the pointer } - GlobalUnlock(StgMedium.HGLOBAL); - { Free the memory } - ReleaseStgMedium(StgMedium); - end; - Exit; - end; -end; - -function TWinDropTarget.DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; - var dwEffect: Longint): HRESULT; -var - Res: HRESULT; -begin - try - FDataObj := dataObj; - Result := S_OK; - dwEffect := DROPEFFECT_NONE; - if (Succeeded(CoCreateInstance(CLSID_DragDropHelper, nil, CLSCTX_INPROC_SERVER, IDropTargetHelper, - FDropTargetHelper))) and (FDropTargetHelper <> nil) then - begin - Res := FDropTargetHelper.DragEnter(FormToHWND(Form), dataObj, pt, dwEffect); - if (Failed(Res)) then - FDropTargetHelper := nil; - end; - except - dwEffect := DROPEFFECT_NONE; - Result := E_UNEXPECTED; - end; -end; - -function TWinDropTarget.DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; -var - P: TPointF; - Operation: TDragOperation; -begin - Result := E_UNEXPECTED; - try - dwEffect := DROPEFFECT_NONE; - P := PointF(pt.X, pt.Y); - Operation := TDragOperation.None; - Form.DragOver(GetDataObject, P, Operation); - case Operation of - TDragOperation.None: - dwEffect := DROPEFFECT_NONE; - TDragOperation.Move: - dwEffect := DROPEFFECT_MOVE; - TDragOperation.Copy: - dwEffect := DROPEFFECT_COPY; - TDragOperation.Link: - dwEffect := DROPEFFECT_LINK; - end; - - // do NOT translate the screen coordinates to form coordinates because - // it seems that the drop target helper needs screen coordinates - if FDropTargetHelper <> nil then - FDropTargetHelper.DragOver(pt, dwEffect); - Result := S_OK; - except - dwEffect := DROPEFFECT_NONE; - end; -end; - -function TWinDropTarget.DragLeave: HRESULT; -begin - Form.DragLeave; - if (FDropTargetHelper <> nil) then - FDropTargetHelper.DragLeave; - FDropTargetHelper := nil; - FDataObj := nil; - Result := S_OK; -end; - -function TWinDropTarget.Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; - var dwEffect: Longint): HRESULT; -var - P: TPointF; -begin - Result := S_OK; - try - if (dataObj = nil) then - Exit; - P := PointF(pt.X, pt.Y); - Form.DragDrop(GetDataObject, P); - // do NOT translate the screen coordinates to form coordinates because - // it seems that the drop target helper needs screen coordinates - if (FDropTargetHelper <> nil) then - FDropTargetHelper.Drop(dataObj, pt, dwEffect) - finally - FDataObj := nil; - FDropTargetHelper := nil; - end; -end; - -{ TDropSource } - -{ IDropSource } - -function TDropSource.QueryContinueDrag(fEscapePressed: BOOL; grfKeyState: Integer): HRESULT; -var - ContinueDrop: Boolean; -begin - if fEscapePressed then - Result := DRAGDROP_S_CANCEL - else if (grfKeyState and (MK_LBUTTON or MK_RBUTTON) = 0) then - begin - ContinueDrop := True; - if ContinueDrop then - Result := DRAGDROP_S_DROP - else - Result := DRAGDROP_S_CANCEL; - end - else - Result := S_OK; -end; - -function TDropSource.GiveFeedback(dwEffect: Integer): HRESULT; -begin - Result := DRAGDROP_S_USEDEFAULTCURSORS; -end; - -{ IDataObject } - -function TDropSource.dAdvise(const FormatEtc: TFormatEtc; advf: Longint; const advsink: IAdviseSink; - out dwConnection: Longint): HRESULT; -begin - Result := OLE_E_ADVISENOTSUPPORTED; -end; - -function TDropSource.dUnadvise(dwConnection: Longint): HRESULT; -begin - Result := OLE_E_ADVISENOTSUPPORTED; -end; - -function TDropSource.EnumdAdvise(out EnumAdvise: IEnumStatData): HRESULT; -begin - Result := OLE_E_ADVISENOTSUPPORTED; -end; - -function TDropSource.EnumFormatEtc(dwDirection: Longint; out EnumFormatEtc: IEnumFormatEtc): HRESULT; -begin - if (dwDirection = DATADIR_GET) then - Result := OleRegEnumFormatEtc(IEnumFormatEtc, dwDirection, EnumFormatEtc) - else - Result := E_NOTIMPL; -end; - -function TDropSource.GetCanonicalFormatEtc(const FormatEtc: TFormatEtc; out FormatEtcout: TFormatEtc): HRESULT; -begin - Result := DATA_S_SAMEFORMATETC; -end; - -function TDropSource.EqualFormatEtc(FormatEtc1, FormatEtc2: TFormatEtc): Boolean; -begin - Result := (FormatEtc1.cfFormat = FormatEtc2.cfFormat) and (FormatEtc1.ptd = FormatEtc2.ptd) and - (FormatEtc1.dwAspect = FormatEtc2.dwAspect) and (FormatEtc1.lindex = FormatEtc2.lindex) and - (FormatEtc1.Tymed = FormatEtc2.Tymed) -end; - -function TDropSource.FindFormatEtc(TestFormatEtc: TFormatEtc): Integer; -var - I: Integer; - Found: Boolean; -begin - I := 0; - Found := False; - Result := -1; - while (I < Length(Formats)) and not Found do - begin - Found := EqualFormatEtc(Formats[I].FormatEtc, TestFormatEtc); - if Found then - Result := I; - Inc(I); - end -end; - -function TDropSource.HGlobalClone(HGLOBAL: THandle): THandle; -// Returns a global memory block that is a copy of the passed memory block. -var - Size: LongWord; - Data, NewData: PByte; -begin - Size := GlobalSize(HGLOBAL); - Result := GlobalAlloc(GPTR, Size); - Data := GlobalLock(HGLOBAL); - try - NewData := GlobalLock(Result); - try - Move(Data, NewData, Size); - finally - GlobalUnlock(Result); - end - finally - GlobalUnlock(HGLOBAL) - end -end; - -function TDropSource.RetrieveOwnedStgMedium(Format: TFormatEtc; var StgMedium: TStgMedium): HRESULT; -var - I: Integer; -begin - Result := E_INVALIDARG; - I := FindFormatEtc(Format); - if (I > -1) and Formats[I].OwnedByDataObject then - Result := StgMediumIncRef(Formats[I].StgMedium, StgMedium, False) -end; - -function TDropSource.StgMediumIncRef(const InStgMedium: TStgMedium; var OutStgMedium: TStgMedium; - CopyInMedium: Boolean): HRESULT; -begin - Result := S_OK; - // Simply copy all fields to start with. - OutStgMedium := InStgMedium; - case InStgMedium.Tymed of - TYMED_HGLOBAL: - begin - if CopyInMedium then - begin - // Generate a unique copy of the data passed - OutStgMedium.HGLOBAL := HGlobalClone(InStgMedium.HGLOBAL); - if OutStgMedium.HGLOBAL = 0 then - Result := E_OUTOFMEMORY - end - else - // Don't generate a copy just use ourselves and the copy previoiusly saved - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) // Does increase RefCount - end; - TYMED_FILE: - begin - if CopyInMedium then - begin - OutStgMedium.lpszFileName := CoTaskMemAlloc(lstrLenW(InStgMedium.lpszFileName)); - // !! StrCopyW(PChar(OutStgMedium.lpszFileName), PChar(InStgMedium.lpszFileName)) - end - else - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) // Does increase RefCount - end; - TYMED_ISTREAM: - - IUnknown(MySTGMEDIUM(OutStgMedium).stm)._AddRef; - TYMED_ISTORAGE: - IUnknown(MySTGMEDIUM(OutStgMedium).stg)._AddRef; - TYMED_GDI: - if not CopyInMedium then - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) - // Does not increase RefCount - else - Result := DV_E_TYMED; // Don't know how to copy GDI objects right now - TYMED_MFPICT: - if not CopyInMedium then - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) - // Does not increase RefCount - else - Result := DV_E_TYMED; - // Don't know how to copy MetaFile objects right now - TYMED_ENHMF: - if not CopyInMedium then - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) - // Does not increase RefCount - else - Result := DV_E_TYMED; - // Don't know how to copy enhanced metafiles objects right now - else - Result := DV_E_TYMED - end; - - // I still have to do this. The Compiler will call _Release on the above Self as IDataObject - // casts which is not what is necessary. The DataObject is released correctly. - if (MySTGMEDIUM(OutStgMedium).UnkForRelease <> nil) and (Result = S_OK) then - IUnknown(MySTGMEDIUM(OutStgMedium).UnkForRelease)._AddRef -end; - -function TDropSource.GetData(const FormatEtcIn: TFormatEtc; out Medium: TStgMedium): HRESULT; -var - Global: Cardinal; - P: Pointer; - TextData: string; - B: TBitmap; - BitmapHandle: HBITMAP; -begin - FillChar(Medium, SizeOf(Medium), 0); - Result := DV_E_FORMATETC; - if QueryGetData(FormatEtcIn) <> S_OK then - Exit; - - case FormatEtcIn.cfFormat of - CF_UNICODETEXT: - begin - TextData := Data.Data.ToString; - Global := GlobalAlloc(0, (Length(TextData) + 1) * 2); - P := GlobalLock(Global); - try - Move(PChar(TextData)^, P^, GlobalSize(Global)); - finally - GlobalUnlock(Global); - end; - Medium.Tymed := TYMED_HGLOBAL; - Medium.HGLOBAL := Global; - Result := S_OK; - end; - CF_BITMAP: - begin - BitmapHandle := 0; - if Data.Data.IsType then - BitmapHandle := BitmapToWinBitmap(TBitmap(Data.Data.AsObject), TAlphaColorRec.White) - else if Data.Data.IsType then - begin - B := TBitmap.Create; - try - B.Assign(TBitmapSurface(Data.Data.AsObject)); - BitmapHandle := BitmapToWinBitmap(B, TAlphaColorRec.White); - finally - B.Free; - end; - end; - if BitmapHandle <> 0 then - begin - Medium.Tymed := TYMED_GDI; - Medium.HBITMAP := BitmapHandle; - Result := S_OK; - end; - end; - CF_FMOBJECT: - if PlatformWin.FDragAndDropActive then - begin - Medium.Tymed := TYMED_HGLOBAL; - Medium.HGLOBAL := THandle(Self); - Result := S_OK; - end; - end; - if (Result <> S_OK) and (Formats <> nil) then - begin - Result := QueryGetData(FormatEtcIn); - if (Result = S_OK) and (RetrieveOwnedStgMedium(FormatEtcIn, Medium) = E_INVALIDARG) then - Result := E_UNEXPECTED - end -end; - -function TDropSource.GetDataHere(const FormatEtc: TFormatEtc; out Medium: TStgMedium): HRESULT; -begin - Result := E_NOTIMPL; -end; - -function TDropSource.QueryGetData(const FormatEtc: TFormatEtc): HRESULT; -var - I: Integer; -begin - Result := DV_E_FORMATETC; - case FormatEtc.cfFormat of - CF_UNICODETEXT: - if not Data.Data.IsObject then - Result := S_OK; - CF_BITMAP: - if Data.Data.IsObject and (Data.Data.IsType or Data.Data.IsType) then - Result := S_OK; - CF_FMOBJECT: - if PlatformWin.FDragAndDropActive then - Result := S_OK; - end; - if Result <> S_OK then - begin - if Formats <> nil then - begin - I := 0; - Result := DV_E_FORMATETC; - while (I < Length(Formats)) and (Result = DV_E_FORMATETC) do - begin - if Formats[I].FormatEtc.cfFormat = FormatEtc.cfFormat then - begin - if (Formats[I].FormatEtc.dwAspect = FormatEtc.dwAspect) then - begin - if (Formats[I].FormatEtc.Tymed and FormatEtc.Tymed <> 0) then - Result := S_OK - else - Result := DV_E_TYMED; - end - else - Result := DV_E_DVASPECT; - end - else - Result := DV_E_FORMATETC; - Inc(I) - end - end - else - Result := E_UNEXPECTED; - end; -end; - -function TDropSource.CanonicalIUnknown(const TestUnknown: IUnknown): IUnknown; -// Uses COM object identity: An explicit call to the IUnknown::QueryInterface -// method, requesting the IUnknown interface, will always return the same -// pointer. -begin - if TestUnknown <> nil then - begin - if Supports(TestUnknown, IUnknown, Result) then - IUnknown(Result)._Release - // Don't actually need it just need the pointer value - else - Result := TestUnknown - end - else - Result := TestUnknown -end; - -function TDropSource.SetData(const FormatEtc: TFormatEtc; var Medium: TStgMedium; fRelease: BOOL): HRESULT; -var - Index: Integer; -begin - // See if we already have a format of that type available. - Index := FindFormatEtc(FormatEtc); - if Index > -1 then - begin - // Yes we already have that format type stored. Just use the TClipboardFormat - // in the List after releasing the data - ReleaseStgMedium(Formats[Index].StgMedium); - FillChar(Formats[Index].StgMedium, SizeOf(Formats[Index].StgMedium), #0); - end - else - begin - // It is a new format so create a new TDataObjectInfo record and store it in - // the Format array - SetLength(Formats, Length(Formats) + 1); - Formats[Length(Formats) - 1].FormatEtc := FormatEtc; - Index := Length(Formats) - 1; - end; - // The data is owned by the TClipboardFormat object - Formats[Index].OwnedByDataObject := True; - - if fRelease then - begin - // We are simply being given the data and we take control of it. - Formats[Index].StgMedium := Medium; - Result := S_OK - end - else - // We need to reference count or copy the data and keep our own references - // to it. - Result := StgMediumIncRef(Medium, Formats[Index].StgMedium, True); - - // Can get a circular reference if the client calls GetData then calls - // SetData with the same StgMedium. Because the unkForRelease and for - // the IDataObject can be marshalled it is necessary to get pointers that - // can be correctly compared. - // See the IDragSourceHelper article by Raymond Chen at MSDN. - if MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease <> nil then - begin - if CanonicalIUnknown(Self) = CanonicalIUnknown(IUnknown(MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease)) then - begin - IUnknown(MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease)._Release; - MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease := nil - end; - end; -end; - -{ Platform DragDrop } - -procedure TPlatformWin.AddRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); -begin - Include(FEnabledInteractiveGestures, ARec); -end; - -procedure TPlatformWin.BeginDragDrop(AForm: TCommonCustomForm; const Data: TDragObject; ABitmap: TBitmap); -var - DropSource: TDropSource; - DropEffect: Longint; - DragSourceHelper: IDragSourceHelper; - SHDRAGIMAGE: TSHDRAGIMAGE; - DragMousePos, Offset: TPointF; - Control: IControl; -begin - DropSource := TDropSource.Create(nil); - try - DropSource.Data := Data; - - DragMousePos := GetMousePos; - // CoCreateInstance takes too long to execute so mouse position becomes different when called later - if (Succeeded(CoCreateInstance(CLSID_DragDropHelper, nil, CLSCTX_INPROC_SERVER, IDragSourceHelper, DragSourceHelper) - )) - and (DragSourceHelper <> nil) then - begin - if Data.Source is TControl then - Offset := TControl(Data.Source).AbsoluteToLocal(AForm.ScreenToClient(DragMousePos)) - else - Offset := PointF((ABitmap.Width div 2), ABitmap.Height div 2); - - FillChar(SHDRAGIMAGE, SizeOf(SHDRAGIMAGE), 0); - SHDRAGIMAGE.sizeDragImage.cx := ABitmap.Width; - SHDRAGIMAGE.sizeDragImage.cy := ABitmap.Height; - SHDRAGIMAGE.ptOffset.X := Round(Offset.X); - SHDRAGIMAGE.ptOffset.Y := Round(Offset.Y); - SHDRAGIMAGE.hbmpDragImage := BitmapToWinBitmap(ABitmap, True); - if not Succeeded(DragSourceHelper.InitializeFromBitmap(@SHDRAGIMAGE, DropSource)) then - DeleteObject(SHDRAGIMAGE.hbmpDragImage); - end; - - if not IsThemeActive then - begin - SetCursor(crDrag); - FDragAndDropActive := True; - try - DoDragDrop(DropSource, DropSource, DROPEFFECT_LINK or DROPEFFECT_COPY or DROPEFFECT_MOVE, DropEffect); - finally - FDragAndDropActive := False; - SetCursor(crDefault); - end; - end - else - try - FDragAndDropActive := True; - DoDragDrop(DropSource, DropSource, DROPEFFECT_LINK or DROPEFFECT_COPY or DROPEFFECT_MOVE, DropEffect); - finally - FDragAndDropActive := False; - end; - - if (DropEffect = 0) and Supports(Data.Source, IControl, Control) then - Control.DragEnd; - - if DragSourceHelper <> nil then - DragSourceHelper := nil; - finally - DropSource.Free; - end; -end; - -{ Mouse } - -procedure TPlatformWin.SetCursor(const ACursor: TCursor); -const - CustomCursorMap: array [crSizeAll .. crNone] of PChar = ( - nil, nil, nil, nil, nil, { IDC_SQLWAIT } PChar(32755), { IDC_MULTIDRAG } PChar(32756), nil, nil, { IDC_NODROP } PChar(32760), { IDC_DRAG } PChar(32759), nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil); -const - CursorMap: array [crSizeAll .. crNone] of PChar = ( - IDC_SIZEALL, IDC_HAND, IDC_HELP, IDC_APPSTARTING, IDC_NO, nil, nil, IDC_SIZENS, IDC_SIZEWE, nil, nil, IDC_WAIT, - IDC_UPARROW, IDC_SIZEWE, IDC_SIZENWSE, IDC_SIZENS, IDC_SIZENESW, IDC_SIZEALL, IDC_IBEAM, IDC_CROSS, IDC_ARROW, nil); -var - NewCursor: HCURSOR; -begin - if not FDragAndDropActive then - begin - // We don't set cursor by default, when we create window. So we should use crArrow cursor by default. - if (ACursor = crDefault) and not (csDesigning in Application.ComponentState) then - FCursor := crArrow - else - FCursor := ACursor; - - if FCursor < 0 then - begin - if CustomCursorMap[FCursor] <> nil then - NewCursor := LoadCursorW(HInstance, CustomCursorMap[FCursor]) - else - NewCursor := LoadCursorW(0, CursorMap[FCursor]); - Winapi.Windows.SetCursor(NewCursor); - end; - end; -end; - -function TPlatformWin.GetCursor: TCursor; -begin - Result := FCursor; -end; - -function TPlatformWin.GetFullScreen(const AForm: TCommonCustomForm): Boolean; -var - LFSParam: TFullScreenParams; -begin - Result := False; - if FFullScreenSupport.TryGetValue(AForm, LFSParam) then - Result := LFSParam.IsFullScreen; -end; - -function TPlatformWin.GetImmManager(const Index: TCommonCustomForm): TImmManager; -begin - Result := FImmManagers[Index]; -end; - -procedure TPlatformWin.SetFullScreen(const AForm: TCommonCustomForm; const AValue: Boolean); -var - LFSParam: TFullScreenParams; - LClean: TFullScreenParams; -begin - RaiseIfNil(AForm, 'AForm'); - - if AValue and not (TFmxFormState.Showing in AForm.FormState) then - AForm.Visible := True; - FillChar(LFSParam, SizeOf(LFSParam), 0); - if not FFullScreenSupport.TryGetValue(AForm, LFSParam) then - FFullScreenSupport.Add(AForm, LFSParam); - if AValue and (AForm.Visible or (TFmxFormState.Showing in AForm.FormState)) then - begin - LFSParam.WindowState := AForm.WindowState; - LFSParam.BorderStyle := AForm.BorderStyle; - if AForm.WindowState = TWindowState.wsNormal then - begin - LFSParam.Size := Point(AForm.Width, AForm.Height); - LFSParam.Position := Point(AForm.Left, AForm.Top); - end; - FFullScreenSupport.Items[AForm] := LFSParam; - if AForm.WindowState = TWindowState.wsMinimized then - AForm.WindowState := TWindowState.wsMaximized; - AForm.BorderStyle := TFmxFormBorderStyle.None; - AForm.WindowState := TWindowState.wsMaximized; - end - else - begin - LClean := LFSParam; - LClean.Clean; - FFullScreenSupport.Items[AForm] := LClean; - if (LFSParam.Size.X > 0) and (LFSParam.Size.Y > 0) then - begin - AForm.BorderStyle := LFSParam.BorderStyle; - AForm.SetBounds(LFSParam.Position.X, LFSParam.Position.Y, LFSParam.Size.X, LFSParam.Size.Y); - AForm.WindowState := LFSParam.WindowState; - end; - end; -end; - -procedure TPlatformWin.SetShowFullScreenIcon(const AForm: TCommonCustomForm; const AValue: Boolean); -begin -end; - -function TPlatformWin.GetMousePos: TPointF; -var - P: TPoint; - Scale: Single; -begin - GetCursorPos(P); - Scale := GetScreenScale; - Result := TPoint.Create(Round(P.X / Scale), Round(P.Y / Scale)); -end; - -{ Screen } - -function TPlatformWin.GetScreenSize: TPointF; -var - WR: TRect; - Scale: Single; -begin - Winapi.Windows.GetWindowRect(GetDesktopWindow, WR); - Scale := GetScreenScale; - Result := PointF(WR.Width / Scale, WR.Height / Scale); -end; - -function TPlatformWin.GetScreenScale: Single; -var - DC: HDC; -begin - DC := GetDC(0); - try - Result := GetDCScale(DC); - finally - ReleaseDC(0, DC); - end; -end; - -function TPlatformWin.GetScreenOrientation: TScreenOrientation; -begin - Result := TScreenOrientation.Landscape; -end; - -procedure TPlatformWin.SetSupportedScreenOrientations(const AOrientations: TScreenOrientations); -begin - // Not needed for Windows -end; - -{ IFMXDeviceService } - -function TPlatformWin.GetFeatures: TDeviceFeatures; -var - Value: Integer; -begin - Value := GetSystemMetrics(SM_DIGITIZER); - if ((Value and NID_READY) = NID_READY) and (((Value and NID_MULTI_INPUT) = NID_MULTI_INPUT)) then - Result := [TDeviceFeature.HasTouchScreen] - else - Result := []; -end; - -function TPlatformWin.GetFirstWeekday: Byte; -const - MondayOffset = 1; -var - buffer: DWORD; -begin - // On Windows zero index corresponds to Monday, so we need to add offset to match DayMonday = 1 in RTL - if GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_IFIRSTDAYOFWEEK, @buffer, SizeOf(buffer) div SizeOf(Char)) > 0 then - Result := buffer - Ord('0') + MondayOffset - else - Result := DayMonday; -end; - -function TPlatformWin.GetFormInfo(const Index: TCommonCustomForm): TFormInfo; -begin - Result := FFormsInfo[Index]; -end; - -function TPlatformWin.GetModel: string; -begin - Result := ''; -end; - -function TPlatformWin.GetDeviceClass: TDeviceInfo.TDeviceClass; -begin - if (GetSystemMetrics(SM_TABLETPC) <> 0) and (GetSystemMetrics(SM_DIGITIZER) and NID_MULTI_INPUT = NID_MULTI_INPUT) - then - Result := TDeviceInfo.TDeviceClass.Tablet - else - Result := TDeviceInfo.TDeviceClass.Desktop; -end; - -{ IFMXSystemInformationService } - -function TPlatformWin.GetScrollingBehaviour: TScrollingBehaviours; -var - Value: Integer; -begin - Value := GetSystemMetrics(SM_DIGITIZER); - if ((Value and NID_READY) = NID_READY) and (((Value and NID_MULTI_INPUT) = NID_MULTI_INPUT)) then - Result := [TScrollingBehaviour.Animation, TScrollingBehaviour.TouchTracking] - else - Result := []; -end; - -function TPlatformWin.GetMinScrollThumbSize: Single; -begin - Result := 15; -end; - -function TPlatformWin.GetMenuShowDelay: Integer; -begin - if SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, @Result, 0) then - Result := Result div 2 - else - Result := 0; -end; - -function TPlatformWin.GetCurrentLangID: string; -var - buffer: MarshaledString; - UserLCID: LCID; - buflen: Integer; -begin - // defaults - UserLCID := GetUserDefaultLCID; - buflen := GetLocaleInfo(UserLCID, LOCALE_SISO639LANGNAME, nil, 0); - buffer := StrAlloc(buflen); - if GetLocaleInfo(UserLCID, LOCALE_SISO639LANGNAME, buffer, buflen) <> 0 then - Result := buffer - else - Result := 'en'; - StrDispose(buffer); -end; - -function TPlatformWin.GetDefaultFontFamilyName: string; -begin - if TOSVersion.Check(6) then - Result := 'Segoe UI' - else - Result := 'Tahoma'; -end; - -function TPlatformWin.GetDefaultFontSize: Single; -begin - Result := DefaultWindowsFontSize; -end; - -function TPlatformWin.GetDefaultSize(const AComponent: TComponentKind): TSize; -begin - if AComponent = TComponentKind.Calendar then - Result := TSize.Create(202, 180) - else - Result := TSize.Create(80, 22); -end; - -function TPlatformWin.GetLocaleFirstDayOfWeek: string; -var - buffer: DWORD; -begin - GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_IFIRSTDAYOFWEEK, @buffer, SizeOf(buffer) div SizeOf(Char)); - Result := Chr(buffer); -end; - -function TPlatformWin.FindForm(const AHandle: TWindowHandle): TCommonCustomForm; -begin - RaiseIfNil(AHandle, 'AHandle'); - - if AHandle is TWinWindowHandle then - Result := TWinWindowHandle(AHandle).Form - else - Result := nil; -end; - -procedure TPlatformWin.Log(const AFormat: string; const AParams: array of const); -begin - if Length(AParams) = 0 then - OutputDebugString(PChar(AFormat)) - else - OutputDebugString(PChar(Format(AFormat, AParams))); -end; - -function TPlatformWin.GetListingHeaderBehaviors: TListingHeaderBehaviors; -begin - Result := []; -end; - -function TPlatformWin.GetListingSearchFeatures: TListingSearchFeatures; -begin - Result := [TListingSearchFeature.StayOnTop]; -end; - -function TPlatformWin.GetListingTransitionFeatures: TListingTransitionFeatures; -begin - Result := []; -end; - -function TPlatformWin.GetListingEditModeFeatures: TListingEditModeFeatures; -begin - Result := []; -end; - -function TPlatformWin.GetSaveStateFileName(const ABlockName: string): string; -const - Prefix = '~'; - Separator = '_'; -var - S: TStringBuilder; - FilePath: string; -begin - if FSaveStateStoragePath.IsEmpty then - FilePath := TPath.GetTempPath - else - FilePath := FSaveStateStoragePath; - S := TStringBuilder.Create(FilePath.Length + Length(Prefix) + Length(Separator) + ABlockName.Length); - try - S.Append(FilePath); - S.Append(Prefix); - S.Append(ChangeFileExt(ExtractFileName(ParamStr(0)), '')); - S.Append(Separator); - S.Append(ABlockName); - Result := S.ToString(True); - finally - S.Free; - end; -end; - -function TPlatformWin.GetSaveStateBlock(const ABlockName: string; const ABlockData: TStream): Boolean; - - procedure ReadPersistent(const AFileName: string); - var - S: TFileStream; - begin - S := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite); - try - ABlockData.CopyFrom(S, S.Size); - finally - S.Free; - end; - end; - -var - LFileName: string; -begin - if ABlockName.IsEmpty or (ABlockData = nil) then - Exit(False); - LFileName := GetSaveStateFileName(ABlockName); - if not TFile.Exists(LFileName) then - Exit(False); - try - ReadPersistent(LFileName); - except - Exit(False); - end; - Result := True; -end; - -function TPlatformWin.SetSaveStateBlock(const ABlockName: string; const ABlockData: TStream): Boolean; - - procedure WritePersistent(const AFileName: string); - var - S: TFileStream; - begin - S := TFileStream.Create(AFileName, fmCreate or fmShareExclusive); - try - ABlockData.Seek(0, TSeekOrigin.soBeginning); - S.CopyFrom(ABlockData, ABlockData.Size); - finally - S.Free; - end; - end; - -var - LFileName: string; -begin - if ABlockName.IsEmpty then - Exit(False); - LFileName := GetSaveStateFileName(ABlockName); - if (ABlockData = nil) or (ABlockData.Size < 1) then - begin - if TFile.Exists(LFileName) then - TFile.Delete(LFileName); - end - else - try - WritePersistent(LFileName); - except - Exit(False); - end; - Result := True; -end; - -function TPlatformWin.GetSaveStateStoragePath: string; -begin - Result := FSaveStateStoragePath; -end; - -procedure TPlatformWin.SetSaveStateStoragePath(const ANewPath: string); -begin - if not ANewPath.IsEmpty then - FSaveStateStoragePath := IncludeTrailingPathDelimiter(ANewPath) - else - FSaveStateStoragePath := ''; -end; - -function TPlatformWin.GetSaveStateNotifications: Boolean; -begin - Result := False; -end; - -function TPlatformWin.GetDisplayMetrics: TDeviceDisplayMetrics; -var - R: TRect; -begin - Winapi.Windows.GetWindowRect(GetDesktopWindow, R); - Result.PhysicalScreenSize := TSize.Create(R.Width, R.Height); - Result.RawScreenSize := Result.PhysicalScreenSize; - Result.LogicalScreenSize := Result.PhysicalScreenSize; - if Result.PhysicalScreenSize.cx > 0 then - Result.AspectRatio := Result.PhysicalScreenSize.cy / Result.PhysicalScreenSize.cx - else - Result.AspectRatio := 1; - Result.PixelsPerInch := 96; // Windows Default - Result.ScreenScale := 1; - Result.FontScale := 1; -end; - -function TPlatformWin.RegisterKeyMapping(const PlatformKey, VirtualKey: Word; const KeyKind: TKeyKind): Boolean; -begin - Result := FKeyMapping.RegisterKeyMapping(PlatformKey, VirtualKey, KeyKind); -end; - -function TPlatformWin.UnregisterKeyMapping(const PlatformKey: Word): Boolean; -begin - Result := FKeyMapping.UnregisterKeyMapping(PlatformKey); -end; - -function TPlatformWin.PlatformKeyToVirtualKey(const PlatformKey: Word; var KeyKind: TKeyKind): Word; -begin - Result := FKeyMapping.PlatformKeyToVirtualKey(PlatformKey, KeyKind); -end; - -function TPlatformWin.VirtualKeyToPlatformKey(const VirtualKey: Word): Word; -begin - Result := FKeyMapping.VirtualKeyToPlatformKey(VirtualKey); -end; - -procedure RegisterApplicationHWNDProc(const Proc: TApplicationHWNDProc); -begin - if PlatformWin <> nil then - PlatformWin.ApplicationHWNDProc := Proc - else - raise EArgumentNilException.Create(SArgumentNil); -end; - -{ TVirtualKeyboardWin } - -constructor TVirtualKeyboardWin.Create; -var - L: Integer; - S: string; - HID: HKey; -begin - S := ''; - inherited Create; - SetLength(S, MAX_PATH); - L := GetSystemDirectory(PChar(S), MAX_PATH); - SetLength(S, L); - FPath := S; - FExeName := 'osk.exe'; - FWndClassName := 'OSKMainClass'; - FKBPresent := True; - if not TOSVersion.Check(6, 2) then - begin - if Winapi.Windows.RegOpenKeyEx(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Enum', 0, KEY_READ, - HID) = ERROR_SUCCESS then - try - S := FindKeyValue(HID, 'ClassGUID', '{4D36E96B-E325-11CE-BFC1-08002BE10318}', 'Control', - 'ActiveService'); - FKBPresent := S <> ''; - finally - RegCloseKey(HID); - end; - end; - FNewvkbState := vkbState; - StartTimerLang; -end; - -procedure TVirtualKeyboardWin.Clear; -var - H: HWND; -begin - H := vkbHandle; - if (H <> 0) and (FInst > 32) then - begin - PostMessage(H, WM_SYSCOMMAND, SC_CLOSE, 0); - end; - KillTimerVisible; - KillTimerLang; - FInst := 0; - FError := False; - FLastTime := 0; - FLastHandle := 0; -end; - -destructor TVirtualKeyboardWin.Destroy; -begin - Clear; - inherited; -end; - -function TVirtualKeyboardWin.FindKeyValue(const Key: HKey; const Name, Value, SubKeyName, SubValueName: string): string; -var - Buf, Val: string; - R, I, J: Integer; - SubKey: HKey; - BufSize, T, ValSize: Cardinal; -begin - Result := ''; - I := 0; - Buf := ''; - Val := ''; - BufSize := 2048; - SetLength(Buf, BufSize); - ValSize := BufSize; - SetLength(Val, ValSize); - repeat - BufSize := Length(Buf); - ValSize := Length(Val); - R := Winapi.Windows.RegEnumValue(Key, I, @Buf[1], BufSize, nil, @T, @Val[1], @ValSize); - if (R = ERROR_SUCCESS) then - begin - if (string(PChar(Buf)) = Name) and (T = REG_SZ) and (SameText(string(PChar(Val)), Value)) then - begin - if Winapi.Windows.RegOpenKeyEx(Key, PChar(SubKeyName), 0, KEY_READ, SubKey) = ERROR_SUCCESS - then - try - J := 0; - repeat - BufSize := Length(Buf); - ValSize := Length(Val); - R := Winapi.Windows.RegEnumValue(SubKey, J, @Buf[1], BufSize, nil, @T, @Val[1], - @ValSize); - if (R = ERROR_SUCCESS) and (string(PChar(Buf)) = SubValueName) and (T = REG_SZ) and - (string(PChar(Val)) <> '') then - begin - Result := string(PChar(Val)); - end; - Inc(J); - until (Result <> '') or (R <> ERROR_SUCCESS); - finally - RegCloseKey(SubKey); - end; - end; - Inc(I); - end; - until (Result <> '') or (R <> ERROR_SUCCESS); - if Result = '' then - begin - I := 0; - repeat - R := Winapi.Windows.RegEnumKey(Key, I, PChar(Buf), BufSize); - if R = ERROR_SUCCESS then - begin - if Winapi.Windows.RegOpenKeyEx(Key, PChar(Buf), 0, KEY_READ, SubKey) = ERROR_SUCCESS then - try - Result := FindKeyValue(SubKey, Name, Value, SubKeyName, SubValueName); - finally - RegCloseKey(SubKey); - end; - Inc(I); - end; - until (Result <> '') or (R <> ERROR_SUCCESS); - end; -end; - -function TVirtualKeyboardWin.GetVirtualKeyboardState: TVirtualKeyboardStates; -var - LState: TvkbState; -begin - if FError then - Result := [TVirtualKeyboardState.Error] - else - Result := []; - if IsAutoShow then - Result := Result + [TVirtualKeyboardState.AutoShow]; - if not FError then - begin - if Abs(Now - FLastTime) > 1 / SecsPerDay then - LState := vkbState - else - LState := FLastvkbState; - if LState = TvkbState.Shown then - Result := Result + [TVirtualKeyboardState.Visible]; - end; -end; - -function TVirtualKeyboardWin.GetVKBounds: TRect; -begin - if FLastHandle <> 0 then - GetWindowRect(FLastHandle, Result); -end; - -function TVirtualKeyboardWin.HideVirtualKeyboard: Boolean; -begin - Result := not FError; - if (not FError) then - begin - if IsAutoShow then - FNewvkbState := TvkbState.Hidden - else - FNewvkbState := TvkbState.None; - if FNewvkbState <> vkbState then - begin - StartTimerVisible; - end; - end; -end; - -procedure TVirtualKeyboardWin.SetTransientState(Value: Boolean); -begin -end; - -function TVirtualKeyboardWin.ShowVirtualKeyboard(const AControl: TFmxObject): Boolean; -var - Root: IRoot; -begin - Result := not FError; - if (not FError) then - begin - FNewvkbState := TvkbState.Shown; - if FNewvkbState <> vkbState then - StartTimerVisible; - FWait := True; - FFormHandle := 0; - if (AControl <> nil) then - begin - Root := AControl.Root; - if (Root <> nil) and (Root.GetObject is TCommonCustomForm) then - FFormHandle := FormToHWND(TCommonCustomForm(Root.GetObject)); - end; - end; -end; - -function TVirtualKeyboardWin.IsAutoShow: Boolean; -begin - Result := (VKAutoShowMode = TVKAutoShowMode.Always) or ((VKAutoShowMode = TVKAutoShowMode.DefinedBySystem) and - (not FKBPresent)); -end; - -procedure TVirtualKeyboardWin.KillTimerLang; -begin - if FHTmerLang <> 0 then - begin - if (FTimerService <> nil) or - TPlatformServices.Current.SupportsPlatformService(IFMXTimerService, FTimerService) then - begin - FTimerService.DestroyTimer(FHTmerLang); - FHTmerLang := 0; - end - else - raise EUnsupportedPlatformService.Create('IFMXTimerService'); - end; -end; - -procedure TVirtualKeyboardWin.StartTimerLang; -begin - if FHTmerLang = 0 then - begin - if (FTimerService <> nil) or - TPlatformServices.Current.SupportsPlatformService(IFMXTimerService, FTimerService) then - begin - FHTmerLang := FTimerService.CreateTimer(250, TimerLangProc); - end - else - raise EUnsupportedPlatformService.Create('IFMXTimerService'); - end; -end; - -procedure TVirtualKeyboardWin.TimerLangProc; -var - LCodeKeyboard: HKL; -begin - if FStepActivate > 0 then - begin - FLastHandle := vkbHandle; - case FStepActivate of - 1: - begin - SetActiveWindow(FLastHandle); - SetFocus(FLastHandle); - end; - 4: - begin - SetActiveWindow(FFormHandle); - end; - 5: - begin - SetFocus(FFormHandle); - FCodeKeyboard := GetKeyboardLayout(0); - end; - end; - if FStepActivate = 5 then - FStepActivate := 0 - else - begin - Inc(FStepActivate); - Exit; - end; - end - else - begin - if vkbState = TvkbState.Shown then - begin - LCodeKeyboard := GetKeyboardLayout(0); - if FCodeKeyboard <> LCodeKeyboard then - begin - SetActiveWindow(0); - SetActiveWindow(FFormHandle); - SetFocus(FFormHandle); - FCodeKeyboard := LCodeKeyboard; - end; - end; - end; -end; - -procedure TVirtualKeyboardWin.KillTimerVisible; -begin - if FHTmerVisible <> 0 then - begin - if (FTimerService <> nil) or - TPlatformServices.Current.SupportsPlatformService(IFMXTimerService, FTimerService) then - begin - FTimerService.DestroyTimer(FHTmerVisible); - FHTmerVisible := 0; - end - else - raise EUnsupportedPlatformService.Create('IFMXTimerService'); - end; -end; - -procedure TVirtualKeyboardWin.StartTimerVisible; -begin - if FHTmerVisible = 0 then - begin - if (FTimerService <> nil) or - TPlatformServices.Current.SupportsPlatformService(IFMXTimerService, FTimerService) then - begin - FHTmerVisible := FTimerService.CreateTimer(100, TimerVisibleProc); - end - else - raise EUnsupportedPlatformService.Create('IFMXTimerService'); - end; -end; - -procedure TVirtualKeyboardWin.TimerVisibleProc; -var - LState: TvkbState; - procedure Quit; - begin - if FLastHandle <> 0 then - PostMessage(FLastHandle, WM_SYSCOMMAND, SC_CLOSE, 0); - Sleep(40); - FLastHandle := 0; - TMessageManager.DefaultManager.SendMessage(Self, TVKStateChangeMessage.Create(False, TRect.Empty), True); - end; - procedure Restore; - begin - if FLastHandle <> 0 then - begin - if Winapi.Windows.GetActiveWindow <> FLastHandle then - begin - SendMessage(FLastHandle, WM_SYSCOMMAND, SC_RESTORE, 0); - TMessageManager.DefaultManager.SendMessage(Self, TVKStateChangeMessage.Create(True, GetVKBounds), True); - end; - end; - end; - procedure Hide; - begin - if FLastHandle <> 0 then - PostMessage(FLastHandle, WM_SYSCOMMAND, SC_CLOSE, 0); - FWait := True; - FLastHandle := 0; - TMessageManager.DefaultManager.SendMessage(Self, TVKStateChangeMessage.Create(False, TRect.Empty), True); - end; - -begin - if FWait then - begin - FLastHandle := vkbHandle; - FWait := False; - Exit; - end; - FWait := True; - LState := vkbState; - if LState <> FNewvkbState then - begin - case LState of - TvkbState.None: - case FNewvkbState of - TvkbState.Hidden: { none } - ; - TvkbState.Shown: - begin - vkbExecute(FFormHandle); - FWait := False; - FStepActivate := 1; - Exit; - end; - end; - TvkbState.Hidden: - case FNewvkbState of - TvkbState.None: - Quit; - TvkbState.Shown: - Restore; - end; - TvkbState.Shown: - case FNewvkbState of - TvkbState.None: - Quit; - TvkbState.Hidden: - Hide; - end; - end; - FNewvkbState := vkbState; - end - else if (FNewvkbState = TvkbState.Shown) and (FStepActivate = 1) then - // Here we are sending a deferred message, otherwise there will be incorrect coordinates - TMessageManager.DefaultManager.SendMessage(Self, TVKStateChangeMessage.Create(True, GetVKBounds), True); - KillTimerVisible; -end; - -procedure TVirtualKeyboardWin.vkbExecute(FormHandle: HWND); - - function IsFileExisted(const AFileName: string): Boolean; - begin - if FileExists(AFileName) then - Exit(True); - - TWow64Redirection.Current.Disable; - try - Result := FileExists(AFileName); - finally - TWow64Redirection.Current.Restore; - end; - end; - - function LaunchVirtualKeyboardApp(const AFileName: string): HINST; - begin - TWow64Redirection.Current.Disable; - try - Result := ShellExecute(FormHandle, 'open', PChar(AFileName), nil, PChar(ExtractFileDir(AFileName)), SW_SHOWNOACTIVATE); - finally - TWow64Redirection.Current.Restore; - end; - end; - - function WaitLaunchingVirtualKeyboardApp: Boolean; - const - StepPause = 40; //msec - MaxAttemptsCount = 100; - var - AttemptsCount: Integer; - begin - AttemptsCount := 0; - while (AttemptsCount < MaxAttemptsCount) and (vkbState = TvkbState.None) do - begin - Inc(AttemptsCount); - Sleep(StepPause); - end; - Result := AttemptsCount < MaxAttemptsCount; - end; - -var - VKAppFileName: string; - H: HWND; -begin - if FError then - Exit; - H := vkbHandle; - if H = 0 then - begin - VKAppFileName := TPath.Combine(Path, ExeName); - - if IsFileExisted(VKAppFileName) then - FInst := LaunchVirtualKeyboardApp(VKAppFileName) - else - FInst := 0; - - if FInst <= 32 then - FError := True - else if not WaitLaunchingVirtualKeyboardApp then - begin - FInst := 0; - FError := True; - end; - end; -end; - -function TVirtualKeyboardWin.vkbHandle: HWND; -begin - Result := Winapi.Windows.FindWindow(PChar(FWndClassName), nil); -end; - -function TVirtualKeyboardWin.vkbState: TvkbState; -var - H: HWND; -begin - H := vkbHandle; - if (H <> INVALID_HANDLE_VALUE) and (H <> 0) then - begin - if (not IsWindowVisible(H)) or (IsIconic(H)) then - Result := TvkbState.Hidden - else - Result := TvkbState.Shown; - FLastHandle := H; - end - else - begin - Result := TvkbState.None; - FLastHandle := 0; - end; - FLastvkbState := Result; - FLastTime := Now; -end; - -{ TOrderedDictionary } - -procedure TOrderedDictionary.Add(const AKey: TKey; const AValue: TValue); -var - Index: Integer; -begin - Index := FValues.Add(AValue); - FIndex.Add(AKey, Index); -end; - -procedure TOrderedDictionary.Clear; -begin - FValues.Clear; - FIndex.Clear; -end; - -constructor TOrderedDictionary.Create; -begin - FValues := TList.Create; - FIndex := TDictionary.Create; -end; - -destructor TOrderedDictionary.Destroy; -begin - FreeAndNil(FIndex); - FreeAndNil(FValues); - inherited; -end; - -function TOrderedDictionary.GetCount: Integer; -begin - Result := FValues.Count; -end; - -function TOrderedDictionary.GetValues(const AIndex: Integer): TValue; -begin - Result := FValues[AIndex]; -end; - -function TOrderedDictionary.TryGetValue(const AKey: TKey; out AValue: TValue): Boolean; -var - Index: Integer; -begin - Result := FIndex.TryGetValue(AKey, Index); - if Result then - AValue := FValues[Index]; -end; - -{ TMultiDisplayWin } - -procedure TMultiDisplayWin.AddDisplay(const AMonitorHandle: HMONITOR); -var - MonInfo: TMonitorInfo; - Scale: Single; - IsPrimary: Boolean; - Bounds: TRect; - WorkArea: TRect; - Display: TDisplay; -begin - MonInfo.cbSize := SizeOf(MonInfo); - if GetMonitorInfo(AMonitorHandle, @MonInfo) then - begin - Scale := GetMonitorScale(AMonitorHandle); - IsPrimary := (MonInfo.dwFlags and MONITORINFOF_PRIMARY) <> 0; - Bounds := TMultiDisplayWin.ScaleRect(MonInfo.rcMonitor, Scale); // dp - WorkArea := TMultiDisplayWin.ScaleRect(MonInfo.rcWork, Scale); // dp - Display := TDisplay.Create(FDisplays.Count, IsPrimary, Bounds, WorkArea); - - FDisplays.Add(AMonitorHandle, Display); - end; -end; - -constructor TMultiDisplayWin.Create; -begin - FDisplays := TOrderedDictionary.Create; - FWorkAreaRect := TRect.Empty; - FDesktopRect := TRect.Empty; - FOutdatedParameters := [Low(TParameter)..High(TParameter)]; -end; - -destructor TMultiDisplayWin.Destroy; -begin - FreeAndNil(FDisplays); - inherited; -end; - -function TMultiDisplayWin.GetDisplayCount: Integer; -begin - if TParameter.DisplayCount in FOutdatedParameters then - begin - FDisplayCount := GetSystemMetrics(SM_CMONITORS); - Exclude(FOutdatedParameters, TParameter.DisplayCount); - end; - Result := FDisplayCount; -end; - -class function TMultiDisplayWin.GetMonitorScale(const AHandle: HMONITOR): Single; -const - StandardDpi = 96; -var - DpiX, DpiY: Cardinal; -begin - if TOSVersion.Check(6, 3) then - begin - if GetDPIForMonitor(AHandle, MDT_Default, DpiX, DpiY) = S_OK then - Result := DpiX / StandardDpi - else - Result := 1; - end - else - Result := 1; -end; - -function TMultiDisplayWin.GetDesktopCenterRect(const ASize: TSize): TRect; - - function PointOutOfDisplay(const P: TPoint): Boolean; - var - I: Integer; - begin - for I := 0 to GetDisplayCount - 1 do - if PtInRect(GetDisplay(I).Bounds, P) then - Exit(False); - Result := True; - end; - - function CornerOutOfDisplay(const R: TRect): Boolean; - begin - Result := PointOutOfDisplay(R.TopLeft) or PointOutOfDisplay(TPoint.Create(R.Right, R.Top)) or - PointOutOfDisplay(R.BottomRight) or PointOutOfDisplay(TPoint.Create(R.Left, R.Bottom)); - end; - -var - I, MinI: Integer; - DesktopCenter: TPoint; - Dist, MinDist: Double; - WorkArea: TRect; -begin - DesktopCenter := GetDesktopRect.CenterPoint; - Result := TRect.Create(TPoint.Create(DesktopCenter.X - ASize.cx div 2, DesktopCenter.Y - ASize.cy div 2), ASize.cx, ASize.cy); - MinDist := MaxInt; - MinI := -1; - - for I := 0 to GetDisplayCount - 1 do - begin - Dist := GetDisplay(I).WorkArea.CenterPoint.Distance(DesktopCenter); - if Dist < MinDist then - begin - MinDist := Dist; - MinI := I; - end; - end; - WorkArea := GetDisplay(MinI).WorkArea; - if CornerOutOfDisplay(Result) then - begin - if Result.Top < WorkArea.Top then - Result.SetLocation(Result.Left, WorkArea.Top); - if Result.Bottom > WorkArea.Bottom then - Result.SetLocation(Result.Left, WorkArea.Bottom - Result.Height); - if CornerOutOfDisplay(Result) then - begin - if Result.Left < WorkArea.Left then - Result.SetLocation(WorkArea.Left, Result.Top); - if Result.Right > WorkArea.Right then - Result.SetLocation(WorkArea.Right - Result.Width, Result.Top); - end; - end; -end; - -function TMultiDisplayWin.GetDesktopRect: TRect; -begin - if TParameter.DesktopRect in FOutdatedParameters then - begin - FDesktopRect.Left := GetSystemMetrics(SM_XVIRTUALSCREEN); - FDesktopRect.Top := GetSystemMetrics(SM_YVIRTUALSCREEN); - FDesktopRect.Width := GetSystemMetrics(SM_CXVIRTUALSCREEN); - FDesktopRect.Height := GetSystemMetrics(SM_CYVIRTUALSCREEN); - Exclude(FOutdatedParameters, TParameter.DesktopRect); - end; - - Result := FDesktopRect; -end; - -function TMultiDisplayWin.GetWorkAreaRect: TRect; -begin - if (TParameter.WorkareaRect in FOutdatedParameters) and SystemParametersInfo(SPI_GETWORKAREA, 0, FWorkAreaRect, 0) then - Exclude(FOutdatedParameters, TParameter.WorkareaRect); - Result := FWorkAreaRect; -end; - -class function TMultiDisplayWin.ScaleRect(const ARect: TRect; const AScale: Single): TRect; -begin - Result.Left := Round(ARect.Left / AScale); - Result.Right := Round(ARect.Right / AScale); - Result.Top := Round(ARect.Top / AScale); - Result.Bottom := Round(ARect.Bottom / AScale); -end; - -procedure TMultiDisplayWin.UpdateDisplayInformation; -begin - FOutdatedParameters := [Low(TParameter)..High(TParameter)]; -end; - -function TMultiDisplayWin.FindDisplay(const AMonitorHandle: HMONITOR): TDisplay; -begin - UpdateDisplaysIfNeeded; - - if not FDisplays.TryGetValue(AMonitorHandle, Result) then - raise EInvalidArgument.Create(sArgumentInvalid) -end; - -function IsPopupForm(const AForm: TCommonCustomForm): Boolean; -begin - Result := (AForm <> nil) and ((AForm.FormStyle = TFormStyle.Popup) or (AForm.Owner is TPopup) or (AForm is TCustomPopupForm)); -end; - -function TMultiDisplayWin.DisplayFromWindow(const AHandle: TWindowHandle): TDisplay; -var - Wnd: TWinWindowHandle; - Form, ParentForm: TCommonCustomForm; - ParentControl: TFmxObject; - Control: TControl; - P: TPointF; - ScreenPosition: TPoint; - Scene: IScene; -begin - RaiseIfNil(AHandle, 'AHandle'); - - Wnd := WindowHandleToPlatform(AHandle); - Form := FindWindow(Wnd.Wnd); - ParentControl := nil; - if IsPopupForm(Form) then - begin - if Form is TCustomPopupForm then - begin - if GetKeyState(VK_RBUTTON) <> 0 then - begin - GetCursorPos(ScreenPosition); - Result := FindDisplay(Winapi.MultiMon.MonitorFromPoint(ScreenPosition, MONITOR_DEFAULTTONEAREST)); - Exit; - end; - ParentControl := TCustomPopupForm(Form).PlacementTarget; - end; - ParentForm := Form.ParentForm; - if (ParentControl = nil) and (ParentForm <> nil) then - begin - while IsPopupForm(ParentForm) and (ParentForm.ParentForm <> nil) do - ParentForm := ParentForm.ParentForm; - if ParentControl = nil then - begin - ParentControl := Form.Parent; - while (ParentControl <> nil) and (ParentControl.Root <> nil) and (ParentControl.Root.GetObject <> ParentForm) do - ParentControl := ParentControl.Parent; - while (ParentControl <> nil) and not (ParentControl is TControl) do - ParentControl := ParentControl.Parent; - end; - if (ParentControl = nil) and (ParentForm <> nil) and (ParentForm.Focused <> nil) then - ParentControl := ParentForm.Focused.GetObject; - end; - if ParentControl is TControl then - begin - Control := TControl(ParentControl); - P := Control.Padding.Rect.TopLeft; - P := Control.LocalToAbsolute(P); - if Supports(Control.Root.GetObject, IScene, Scene) then - P := Scene.LocalToScreen(P); - P.Offset((Control.Width - Control.Padding.Right) / 2, (Control.Height - Control.Padding.Bottom) / 2); - ScreenPosition := TPoint.Create(Round(P.X), Round(P.Y)); - Result := FindDisplay(Winapi.MultiMon.MonitorFromPoint(ScreenPosition, MONITOR_DEFAULTTONEAREST)); - Exit; - end; - if ParentForm <> nil then - Wnd := WindowHandleToPlatform(ParentForm.Handle); - end; - if (Wnd = nil) or (Wnd.Wnd = 0) then - raise EArgumentException.Create(sArgumentInvalid); - Result := FindDisplay(Winapi.MultiMon.MonitorFromWindow(Wnd.Wnd, MONITOR_DEFAULTTONEAREST)); -end; - -function TMultiDisplayWin.DisplayFromPoint(const AHandle: TWindowHandle; const APoint: TPoint): TDisplay; -var - Wnd: TWinWindowHandle; - Form: TCommonCustomForm; - DispByPoint, DispByMouse: TDisplay; - PointF: TPointF; - ScreenPosition: TPoint; -begin - RaiseIfNil(AHandle, 'AHandle'); - - Wnd := WindowHandleToPlatform(AHandle); - if (Wnd = nil) or (Wnd.Wnd = 0) then - raise EArgumentException.Create(sArgumentInvalid); - Form := FindWindow(Wnd.Wnd); - if not IsPopupForm(Form) then - begin - PointF := TPointF.Create(APoint); - ScreenPosition := Form.ClientToScreen(PointF).Round; - DispByPoint := FindDisplay(Winapi.MultiMon.MonitorFromPoint(ScreenPosition, MONITOR_DEFAULTTONEAREST)); - if (GetKeyState(VK_RBUTTON) <> 0) or (GetKeyState(VK_LBUTTON) <> 0) or (GetKeyState(VK_MBUTTON) <> 0) then - begin - Result := DisplayFromWindow(AHandle); - GetCursorPos(ScreenPosition); - DispByMouse := FindDisplay(Winapi.MultiMon.MonitorFromPoint(ScreenPosition, MONITOR_DEFAULTTONEAREST)); - if DispByMouse.Index <> Result.Index then - Result := DispByPoint; - end - else - Result := DispByPoint; - end - else if Form.Visible and (Form is TCustomPopupForm) then - Result := FindDisplay(Winapi.MultiMon.MonitorFromWindow(Wnd.Wnd, MONITOR_DEFAULTTONEAREST)) - else - Result := DisplayFromWindow(AHandle); -end; - -function EnumMonitorsProc(hm: HMONITOR; dc: HDC; R: PRect; Data: Pointer): Boolean; stdcall; -var - Sender: TMultiDisplayWin; -begin - Sender := TMultiDisplayWin(Data); - Sender.AddDisplay(hm); - Result := True; -end; - -procedure TMultiDisplayWin.UpdateDisplaysIfNeeded; -begin - if TParameter.Displays in FOutdatedParameters then - begin - FDisplays.Clear; - EnumDisplayMonitors(0, nil, @EnumMonitorsProc, Winapi.Windows.LPARAM(Self)); - Exclude(FOutdatedParameters, TParameter.Displays); - end; -end; - -function TMultiDisplayWin.GetDisplay(const AIndex: Integer): TDisplay; -begin - UpdateDisplaysIfNeeded; - - if (AIndex < 0) or (AIndex >= GetDisplayCount) then - raise EListError.CreateFMT(SListIndexError, [AIndex]); - Result := FDisplays[AIndex]; -end; - -{ TFullScreenParams } - -procedure TFullScreenParams.Clean; -begin - Self.BorderStyle := TFmxFormBorderStyle.None; - Self.WindowState := TWindowState.wsMaximized; -end; - -function TFullScreenParams.IsFullScreen: Boolean; -begin - Result := not ((Self.BorderStyle = TFmxFormBorderStyle.None) and (Self.WindowState = TWindowState.wsMaximized)); -end; - -{ TWin32MenuInfo } - -constructor TWin32MenuInfo.Create(const AMenuId: Integer; const AnItem: TMenuItem); -begin - MenuID := AMenuId; - FMXMenuItem := AnItem; -end; - -procedure ShutDown; -begin - if IsLibrary then - begin - FMX.Canvas.D2D.UnregisterCanvasClasses; - FMX.Context.DX11.UnregisterContextClasses; - FMX.Forms.FinalizeForms; - end; -end; - -{ TMenuServiceWin } - -procedure TMenuServiceWin.AddBitmapToMenu(const AParentMenu: HMENU; const AMenuItemId: TMenuId; const ABitmap: HBITMAP); -var - MenuItemInfo: tagMENUITEMINFOW; -begin - if ABitmap <> 0 then - begin - FillChar(MenuItemInfo, SizeOf(MenuItemInfo), 0); - MenuItemInfo.cbSize := SizeOf(MenuItemInfo); - MenuItemInfo.fMask := MIIM_BITMAP; - if not GetMenuItemInfo(AParentMenu, AMenuItemId, False, MenuItemInfo) then - RaiseLastOSError; - MenuItemInfo.hbmpItem := ABitmap; - try - if not SetMenuItemInfo(AParentMenu, AMenuItemId, False, MenuItemInfo) then - RaiseLastOSError; - except - MenuItemInfo.hbmpItem := 0; - SetMenuItemInfo(AParentMenu, AMenuItemId, False, MenuItemInfo); - raise; - end; - end; -end; - -function TMenuServiceWin.AssignNewIdToMenu(const AParentMenu, AMenu: HMENU): TMenuId; -var - MenuItemInfo: tagMENUITEMINFOW; -begin - Result := GenerateMenuId; - - FillChar(MenuItemInfo, SizeOf(MenuItemInfo), 0); - MenuItemInfo.cbSize := SizeOf(MenuItemInfo); - MenuItemInfo.fMask := MIIM_ID; - if not GetMenuItemInfo(AParentMenu, AMenu, False, MenuItemInfo) then - RaiseLastOSError; - MenuItemInfo.wID := Result; - try - if not SetMenuItemInfo(AParentMenu, AMenu, False, MenuItemInfo) then - RaiseLastOSError; - FHMenuIdMap.Add(Result, AMenu); - except - MenuItemInfo.wID := 0; - SetMenuItemInfo(AParentMenu, AMenu, False, MenuItemInfo); - raise; - end; -end; - -constructor TMenuServiceWin.Create; -begin - FHMenuMap := TDictionary.Create; - FHMenuIdMap := TDictionary.Create; - FMenuLooper := TMenuLooperWin.Create; -end; - -procedure TMenuServiceWin.CreateOSMenu(AForm: TCommonCustomForm; const AMenu: IItemsContainer); - - function CalculateItemFlags(const AMenuItem: TMenuItem): Integer; - begin - Result := 0; - if AMenuItem.Text = SMenuSeparator then - Result := Result or MF_SEPARATOR - else - begin - if AMenuItem.IsChecked then - Result := Result or MF_CHECKED; - - if not AMenuItem.Enabled then - Result := Result or MF_DISABLED; - - Result := Result or MF_STRING; - end; - end; - - function CalculateVisibleCount(const AMenu: IItemsContainer): Integer; - var - I: Integer; - begin - Result := 0; - for I := 0 to AMenu.GetItemsCount - 1 do - if (AMenu.GetItem(I) is TMenuItem) and TMenuItem(AMenu.GetItem(I)).Visible then - Inc(Result); - end; - - procedure InsertItems(const AParent: HMENU; AChild: IItemsContainer; const AMenuLevel: Integer); - var - I, Flags, VisibleCount: Integer; - PopupMenu: HMENU; - Native: INativeControl; - MenuItem: TMenuItem; - SubChild: IItemsContainer; - S: string; - Bitmap: HBITMAP; - begin - if (AChild <> nil) and (AChild.GetObject is TMenuItem) then - begin - Bitmap := 0; - MenuItem := TMenuItem(AChild.GetObject); - if MenuItem.Visible and Supports(MenuItem, INativeControl, Native) then - begin - Flags := CalculateItemFlags(MenuItem); - VisibleCount := CalculateVisibleCount(AChild); - if VisibleCount > 0 then - Flags := Flags or MF_POPUP; - - Native.Handle := 0; - PopupMenu := CreateMenu; - if PopupMenu = 0 then - RaiseLastOSError; - try - if AMenuLevel > 0 then - S := ShortCutToText(MenuItem.ShortCut) - else - S := string.Empty; - if not S.IsEmpty then - S := #9 + S; - S := MenuItem.Text + S; - if AppendMenu(AParent, Flags, PopupMenu, PChar(S)) then - begin - Bitmap := ImageListToMenuBitmap(AMenuLevel = 0, MenuItem.Images, MenuItem.ImageIndex); - if Bitmap = 0 then - Bitmap := BitmapToMenuBitmap(AMenuLevel = 0, MenuItem.Bitmap); - if Bitmap <> 0 then - try - AddBitmapToMenu(AParent, PopupMenu, Bitmap); - except - DeleteObject(Bitmap); - Bitmap := 0; - raise; - end; - FHMenuMap.Add(PopupMenu, TWin32MenuInfo.Create(AssignNewIdToMenu(AParent, PopupMenu), MenuItem)); - if VisibleCount > 0 then - for I := 0 to AChild.GetItemsCount - 1 do - if Supports(AChild.GetItem(I), IItemsContainer, SubChild) then - InsertItems(PopupMenu, SubChild, AMenuLevel + 1); - Native.Handle := PopupMenu; - end - else - RaiseLastOSError; - except - if Bitmap <> 0 then - RemoveBitmapFromMenu(AParent, PopupMenu); - DestroyMenu(PopupMenu); - raise; - end; - end; - end; - end; - -var - Handle: HMENU; - Wnd: HWND; - I, VisibleCount: Integer; - WindowBorder: TWindowBorderWin; - Native: INativeControl; - SavedWindowState: TWindowState; -begin - if TState.CreatingOSMenu in FStates then - Exit; - SavedWindowState := AForm.WindowState; - try - Include(FStates, TState.CreatingOSMenu); - Wnd := FormToHWND(AForm); - if Wnd = 0 then - Exit; - - VisibleCount := 0; - Native := nil; - if AMenu <> nil then - begin - DestroysAllMenuItems(AMenu); - Supports(AMenu.GetObject, INativeControl, Native); - if not (csDesigning in AForm.ComponentState) and AForm.Border.IsSupported then - begin - WindowBorder := TWindowBorderWin(AForm.Border.WindowBorder); - WindowBorder.CreateOSMenu(AMenu); - end - else if (Native <> nil) and Native.HandleSupported then - VisibleCount := CalculateVisibleCount(AMenu); - end; - Handle := GetMenu(Wnd); - if VisibleCount > 0 then - begin - if Handle = 0 then - begin - Native.Handle := 0; - Handle := CreateMenu; - if Handle = 0 then - RaiseLastOSError; - end; - try - for I := 0 to AMenu.GetItemsCount - 1 do - if AMenu.GetItem(I) is TMenuItem and TMenuItem(AMenu.GetItem(I)).Visible then - InsertItems(Handle, TMenuItem(AMenu.GetItem(I)), 0); - except - DestroyMenu(Handle); - raise; - end; - SetMenu(Wnd, Handle); - end - else if Handle <> 0 then - begin - if not DestroyMenu(Handle) then - RaiseLastOSError; - SetMenu(Wnd, 0); - Handle := 0; - end; - if Native <> nil then - Native.Handle := Handle; - finally - AForm.WindowState := SavedWindowState; - Exclude(FStates, TState.CreatingOSMenu); - end; -end; - -destructor TMenuServiceWin.Destroy; -begin - FreeAndNil(FMenuLooper); - FreeAndNil(FHMenuMap); - FreeAndNil(FHMenuIdMap); - - inherited; -end; - -procedure TMenuServiceWin.DestroyMenuItem(const AItem: IItemsContainer); -var - Form: TCommonCustomForm; - MenuItem: TFmxObject; - Wnd: HWND; - MenuHandle, Handle: TFmxHandle; - Native: INativeControl; - Root: IRoot; -begin - if not (TState.DestroyingMenuItem in FStates) and (AItem <> nil) and (AItem.GetObject is TFmxObject) then - MenuItem := AItem.GetObject - else - Exit; - Include(FStates, TState.DestroyingMenuItem); - try - Root := MenuItem.Root; - if (Root <> nil) and (Root.GetObject is TCommonCustomForm) then - begin - Form := TCommonCustomForm(Root.GetObject); - if (MenuItem <> nil) and Supports(MenuItem, INativeControl, Native) and (Native.Handle <> 0) then - begin - Handle := Native.Handle; - if not (csDesigning in Form.ComponentState) and (Form.Border.WindowBorder is TWindowBorderWin) and - TWindowBorderWin(Form.Border.WindowBorder).HandleExists(Handle) then - begin - TWindowBorderWin(Form.Border.WindowBorder).RemoveHandle(Handle); - end - else - begin - if Handle <> INVALID_HANDLE_VALUE then - begin - Wnd := FormToHWND(Form); - MenuHandle := GetMenu(Wnd); - if MenuHandle = Handle then - begin - CreateOSMenu(Form, nil); - SetMenu(Wnd, 0) - end - else if MenuHandle <> 0 then - RemoveBitmapFromMenu(MenuHandle, Handle); - if IsMenu(Handle) then - CheckWinapiResult(DestroyMenu(Handle)); - end; - RemoveMenuFromMaps(Handle); - end; - Native.Handle := 0 - end; - end; - finally - Exclude(FStates, TState.DestroyingMenuItem); - end; -end; - -function TMenuServiceWin.FindMenuInfoById(const AMenuItemId: TMenuId; var AMenuInfo: TWin32MenuInfo): Boolean; -var - FmxHandle: TFmxHandle; -begin - Result := FHMenuIdMap.TryGetValue(AMenuItemId, FmxHandle) and FHMenuMap.TryGetValue(FmxHandle, AMenuInfo); -end; - -function TMenuServiceWin.GenerateMenuId: TMenuId; -begin - Result := NewUniqueMenuCommand; - if Result > 65535 then - begin - FreeUniqueMenuCommand(Result); - raise EUnavailableMenuId.Create(SUnavailableMenuId); - end; -end; - -function TMenuServiceWin.IsMenuBarOnWindowBorder: Boolean; -begin - Result := True; -end; - -procedure TMenuServiceWin.RemoveBitmapFromMenu(const AParentMenu, AMenu: HMENU); -var - MenuItemInfo: tagMENUITEMINFOW; - MenuInfo: TWin32MenuInfo; - MenuId: TMenuId; -begin - if FHMenuMap.TryGetValue(AMenu, MenuInfo) then - MenuId := MenuInfo.MenuID - else - Exit; - FillChar(MenuItemInfo, SizeOf(MenuItemInfo), 0); - MenuItemInfo.cbSize := SizeOf(MenuItemInfo); - MenuItemInfo.fMask := MIIM_BITMAP; - if not GetMenuItemInfo(AParentMenu, MenuId, False, MenuItemInfo) then - RaiseLastOSError; - if (MenuItemInfo.hbmpItem <> HBITMAP(-1)) and (MenuItemInfo.hbmpItem > HBMMENU_POPUP_MINIMIZE) then - begin - if not DeleteObject(MenuItemInfo.hbmpItem) then - RaiseLastOSError; - - MenuItemInfo.hbmpItem := HBITMAP(-1); - if not SetMenuItemInfo(AParentMenu, MenuId, False, MenuItemInfo) then - RaiseLastOSError; - end; -end; - -procedure TMenuServiceWin.DestroysAllMenuItems(const AMenu: IItemsContainer); -var - I: Integer; - ItemsContainer: IItemsContainer; -begin - for I := 0 to AMenu.GetItemsCount - 1 do - if Supports(AMenu.GetItem(I), IItemsContainer, ItemsContainer) then - DestroysAllMenuItems(ItemsContainer); - DestroyMenuItem(AMenu); -end; - -procedure TMenuServiceWin.RemoveMenuFromMaps(const AMenuHandle: TFmxHandle); -var - Pair: TPair; -begin - FHMenuMap.Remove(AMenuHandle); - - for Pair in FHMenuIdMap do - if Pair.Value = AMenuHandle then - begin - FreeUniqueMenuCommand(Pair.Key); - FHMenuIdMap.Remove(Pair.Key); - Break; - end; -end; - -procedure TMenuServiceWin.ShortCutToKey(ShortCut: TShortCut; var Key: Word; var Shift: TShiftState); -begin - FMX.Helpers.Win.ShortCutToKey(ShortCut, Key, Shift); -end; - -function TMenuServiceWin.ShortCutToText(ShortCut: TShortCut): string; -begin - Result := FMX.Helpers.Win.ShortCutToText(ShortCut); -end; - -procedure TMenuServiceWin.StartMenuLoop(const AView: IMenuView); -begin - FMenuLooper.StartLoop(AView); -end; - -function TMenuServiceWin.TextToShortCut(Text: string): Integer; -begin - Result := FMX.Helpers.Win.TextToShortCut(Text); -end; - -procedure TMenuServiceWin.UpdateMenuBar; -begin -end; - -procedure TMenuServiceWin.UpdateMenuItem(const AItem: IItemsContainer; AChange: TMenuItemChanges); - - function GetParentMenuItemHandle(const AMenuItem: TMenuItem): TFmxHandle; - var - NativeControl: INativeControl; - begin - if Supports(AMenuItem.ParentMenuItem, INativeControl, NativeControl) or Supports(AMenuItem.MainMenu, INativeControl, NativeControl) then - Result := NativeControl.Handle - else - Result := 0; - end; - - function GetBitmap(const AMenuItem: TMenuItem): HBITMAP; - var - IsTopLevelItem: Boolean; - begin - IsTopLevelItem := AMenuItem.Parent is TMainMenu; - Result := ImageListToMenuBitmap(IsTopLevelItem, AMenuItem.Images, AMenuItem.ImageIndex); - if Result = 0 then - Result := BitmapToMenuBitmap(IsTopLevelItem, AMenuItem.Bitmap); - end; - - procedure UpdateBitmap(const AMenuItem: TMenuItem); - var - ParentHandle: TFmxHandle; - Bitmap: HBITMAP; - MenuItemHandle: TFmxHandle; - begin - MenuItemHandle := (AMenuItem as INativeControl).Handle; - ParentHandle := GetParentMenuItemHandle(AMenuItem); - if ParentHandle = 0 then - Exit; - - Bitmap := GetBitmap(AMenuItem); - if Bitmap <> 0 then - try - AddBitmapToMenu(ParentHandle, FHMenuMap[MenuItemHandle].Menuid, Bitmap); - except - DeleteObject(Bitmap); - raise; - end - else - RemoveBitmapFromMenu(ParentHandle, MenuItemHandle); - end; - - procedure UpdateEnabled(const AMenuItem: TMenuItem); - const - Enables: array[Boolean] of DWORD = (MF_DISABLED or MF_GRAYED, MF_ENABLED); - var - ParentHandle: TFmxHandle; - MenuItemHandle: TFmxHandle; - begin - MenuItemHandle := (AMenuItem as INativeControl).Handle; - ParentHandle := GetParentMenuItemHandle(AMenuItem); - if ParentHandle = 0 then - Exit; - - EnableMenuItem(ParentHandle, FHMenuMap[MenuItemHandle].Menuid, MF_BYCOMMAND or Enables[AMenuItem.enabled]); - end; - - procedure UpdateChecked(const AMenuItem: TMenuItem); - const - Checks: array[Boolean] of DWORD = (MF_UNCHECKED, MF_CHECKED); - var - ParentHandle: TFmxHandle; - MenuItemHandle: TFmxHandle; - begin - MenuItemHandle := (AMenuItem as INativeControl).Handle; - ParentHandle := GetParentMenuItemHandle(AMenuItem); - if ParentHandle = 0 then - Exit; - - CheckMenuItem(ParentHandle, FHMenuMap[MenuItemHandle].Menuid, MF_BYCOMMAND or Checks[AMenuItem.IsChecked]); - end; - - procedure RecreateMainMenu(const AMenuItem: TMenuItem); - var - MainMenu: TMainMenu; - begin - MainMenu := AMenuItem.MainMenu; - if MainMenu <> nil then - MainMenu.RecreateOSMenu; - end; - - function IsStyledBorder(const AMenuItem: TMenuItem): Boolean; - var - Form: TCommonCustomForm; - begin - if AMenuItem.Root = nil then - Exit(False); - - Form := AMenuItem.Root.GetObject as TCommonCustomForm; - Result := Form.Border.IsSupported; - end; - -var - MenuItem: TMenuItem; - MenuItemHandle: TFmxHandle; -begin - if not (AItem.GetObject is TMenuItem) then - Exit; - - MenuItem := TMenuItem(AItem.GetObject); - MenuItemHandle := (MenuItem as INativeControl).Handle; - if (MenuItemHandle = 0) or IsStyledBorder(MenuItem) then - begin - RecreateMainMenu(MenuItem); - Exit; - end; - - if MenuItemHandle = INVALID_HANDLE_VALUE then - raise EInvalidFmxHandle.CreateFMT(SInvalidFmxHandle, [HexDisplayPrefix, SizeOf(MenuItemHandle) * 2, MenuItemHandle]); - - if AChange = [TMenuItemChange.Bitmap] then - UpdateBitmap(MenuItem) - else if AChange = [TMenuItemChange.Enabled] then - UpdateEnabled(MenuItem) - else if AChange = [TMenuItemChange.Checked] then - UpdateChecked(MenuItem) - else - // If Visible, Text or Shortcut are changed, then we need to rebuild menu. Because WinApi doesn't support - RecreateMainMenu(MenuItem); -end; - -procedure TMenuServiceWin.WMCommand(var Message: TWMCommand); -var - MenuInfo: TWin32MenuInfo; -begin - if FindMenuInfoById(Message.ItemId, MenuInfo) then - begin - TOpenMenuItem(MenuInfo.FMXMenuItem).Click; - Message.Result := 0; - end; -end; - -procedure TMenuServiceWin.WMInitMenuPopup(var Message: TWMInitMenuPopup); -var - MenuInfo: TWin32MenuInfo; -begin - if FHMenuMap.TryGetValue(Message.MenuPopup, MenuInfo) then - TOpenMenuItem(MenuInfo.FMXMenuItem).Click; -end; - -procedure TMenuServiceWin.WMMenuSelect(var Message: TWMMenuSelect); -var - MenuInfo: TWin32MenuInfo; - MenuHandle: HMENU; -begin - MenuHandle := GetSubMenu(Message.Menu, Message.IDItem); - if MenuHandle = 0 then - Exit; - - if FindMenuInfoById(Message.IDItem, MenuInfo) then - Application.Hint := MenuInfo.FMXMenuItem.Hint - else - Application.Hint := string.Empty; -end; - -{ TMenuLooperWin } - -function TMenuLooperWin.BackwardSelectNextMenuItem(const AView: IMenuView; const AStartInd, AEndInd: Integer): Boolean; -var - I: Integer; -begin - Result := False; - if AView <> nil then - for I := AStartInd downto AEndInd do - if IsItemSelectable(AView.GetItem(I)) then - begin - AView.Selected := TMenuItem(AView.GetItem(I)); - Result := True; - Break; - end; -end; - -procedure TMenuLooperWin.EndLoop(const AView: IMenuView); -var - View: IMenuView; -begin - View := AView; - while View <> nil do - begin - View.Loop := False; - View.Selected := nil; - View := View.ParentView; - end; -end; - -function TMenuLooperWin.ForwardSelectNextMenuItem(const AView: IMenuView; const AStartInd, AEndInd: Integer): Boolean; -var - I: Integer; -begin - Result := False; - if AView <> nil then - for I := AStartInd to AEndInd do - if IsItemSelectable(AView.GetItem(I)) then - begin - AView.Selected := TMenuItem(AView.GetItem(I)); - Result := True; - Break; - end; -end; - -function TMenuLooperWin.IsItemSelectable(const Item: TFmxObject): Boolean; -begin - Result := (Item is TMenuItem) and TMenuItem(Item).Visible and (TMenuItem(Item).Text <> SMenuSeparator); -end; - -procedure TMenuLooperWin.SelectFirstMenuItem(const AView: IMenuView); -var - I: Integer; -begin - if AView <> nil then - begin - I := 0; - while (I < AView.GetItemsCount) and not IsItemSelectable(AView.GetItem(I)) do - Inc(I); - if I < AView.GetItemsCount then - AView.Selected := TMenuItem(AView.GetItem(I)); - end; -end; - -procedure TMenuLooperWin.SelectLastMenuItem(const AView: IMenuView); -var - I: Integer; -begin - if AView <> nil then - begin - I := AView.GetItemsCount - 1; - while (I >= 0) and not IsItemSelectable(AView.GetItem(I)) do - Dec(I); - if I >= 0 then - AView.Selected := TMenuItem(AView.GetItem(I)); - end; -end; - -procedure TMenuLooperWin.SelectNextMenuItem(const AView: IMenuView; const ABackward: Boolean); -begin - if ABackward then - begin - if (AView.Selected = nil) or not BackwardSelectNextMenuItem(AView, AView.Selected.Index - 1, 0) then - SelectLastMenuItem(AView); - // otherwise nothing - end - else - begin - if (AView.Selected = nil) or not ForwardSelectNextMenuItem(AView, AView.Selected.Index + 1, AView.GetItemsCount - 1) then - SelectFirstMenuItem(AView); - // otherwise nothing - end; -end; - -procedure TMenuLooperWin.StartLoop(const AView: IMenuView); -var - FirstLoop: Boolean; - - function ContinueLoop: Boolean; - begin - Result := AView.Loop; - end; - - function ParentWindow(AView: IMenuView): HWND; - var - Obj: TFmxObject; - Form: TCommonCustomForm; - begin - Result := 0; - if (AView <> nil) and (AView.Parent <> nil) then - begin - Obj := AView.Parent; - while (Obj <> nil) and not (Obj is TCommonCustomForm) do - Obj := Obj.Parent; - if Obj is TCommonCustomForm then - begin - Form := TCommonCustomForm(Obj); - while (Form <> nil) and IsPopup(Form) do - Form := Form.ParentForm; - if (Form <> nil) and (Form.Handle <> nil) then - Result := WindowHandleToPlatform(Form.Handle).Wnd; - end; - end; - end; - - function GetDpMousePos(const AView: IMenuView; const AMsg: TMsg): TPointF; - var - WP: TPoint; - Form: TCommonCustomForm; - Scale: Single; - begin - // WP is client point in Native window in px. - {$IFDEF CPUX64} - WP := SmallPointToPoint(TSmallPoint(Cardinal(AMsg.LPARAM))); // px - {$ELSE} - WP := SmallPointToPoint(TSmallPoint(AMsg.LPARAM)); // px - {$ENDIF} - Winapi.Windows.ClientToScreen(AMsg.HWND, WP); - if AView.GetObject.Root.GetObject is TCommonCustomForm then - begin - Form := TCommonCustomForm(AView.GetObject.Root.GetObject); - Scale := Form.Handle.Scale; - Result := TPoint.Create(Round(WP.X / Scale), Round(WP.Y / Scale)); - end - else - Result := WP; - end; - -var - Msg: TMsg; - WP: TPoint; - ParentWnd: HWND; - P: TPointF; - InMenus: Boolean; - CurrentView, NewView: IMenuView; - Obj: IControl; - TimerID: THandle; - MenuItem: TMenuItem; -begin - FView := AView; - AView.Loop := True; - TimerID := SetTimer(0, 0, 50, nil); - try - FirstLoop := True; - while ContinueLoop do - begin - - if FirstLoop then - FirstLoop := False - else - WaitMessage; - - while ContinueLoop and PeekMessage(Msg, 0, 0, 0, PM_NOREMOVE) do - begin - case Msg.Message of - WM_WINDOWPOSCHANGING: - begin - EndLoop(AView); - Exit; - end; - WM_QUIT { , WM_NCLBUTTONDOWN..WM_NCMBUTTONDBLCLK } : - begin - EndLoop(AView); - Continue; - end; - WM_TIMER: - begin - TranslateMessage(Msg); - end; - end; - if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then - begin - case Msg.Message of - WM_CLOSEMENU: - EndLoop(AView); - WM_NCMOUSEMOVE, WM_NCLBUTTONDOWN, WM_NCRBUTTONDOWN, WM_NCLBUTTONUP: - begin - case Msg.Message of - WM_NCMOUSEMOVE: - begin - { Handle MouseOver } - P := GetDpMousePos(AView, Msg); // dp - Obj := AView.ObjectAtPoint(P); - TranslateMessage(Msg); - DispatchMessage(Msg); - { Find top level menu } - CurrentView := AView; - while CurrentView.ParentView <> nil do - CurrentView := CurrentView.ParentView; - { Check all items } - while CurrentView <> nil do - begin - Obj := CurrentView.ObjectAtPoint(P); - if (Obj <> nil) and (Obj.GetObject is TMenuItem) and not (TMenuItem(Obj.GetObject).IsSelected) then - begin - if (CurrentView <> AView) then - begin - NewView := AView; - while NewView <> CurrentView do - begin - NewView.Loop := False; - NewView := NewView.ParentView; - end; - TOpenMenuItem(Obj.GetObject).NeedPopup; - Exit; - end; - end; - CurrentView := CurrentView.ChildView; - end; - Continue; - end; - WM_NCLBUTTONDOWN, WM_NCRBUTTONDOWN: - begin - { Handle MouseOver if mouse over not menuitem } - P := GetDpMousePos(AView, Msg); // dp - Obj := AView.ObjectAtPoint(P); - if (Obj <> nil) and not (Obj is TMenuItem) then - begin - TranslateMessage(Msg); - DispatchMessage(Msg); - Continue; - end; - { Menus } - if (Obj <> nil) and (Obj.GetObject is TMenuItem) then - begin - MenuItem := TMenuItem(Obj.GetObject); - if not MenuItem.IsSelected and MenuItem.HavePopup then - TOpenMenuItem(MenuItem).NeedPopup - else if MenuItem.CanBeClicked then - begin - EndLoop(AView); - TOpenMenuItem(Obj.GetObject).Click; - end; - end - else - begin - CurrentView := AView; - InMenus := False; - while (CurrentView <> nil) and not InMenus do - begin - if not (CurrentView.IsMenuBar) and (CurrentView.ObjectAtPoint(P) <> nil) then - InMenus := True; - CurrentView := CurrentView.ParentView; - end; - if not InMenus then - EndLoop(AView); - end; - end; - WM_NCLBUTTONUP: - begin - { Handle MouseOver if mouse over not menuitem } - P := GetDpMousePos(AView, Msg); // dp - Obj := AView.ObjectAtPoint(P); - if (Obj <> nil) and not (Obj is TMenuItem) then - begin - TranslateMessage(Msg); - DispatchMessage(Msg); - Continue; - end; - end; - end; - end; - WM_MOUSEFIRST .. WM_MOUSELAST: - begin - { Handle MouseOver if mouse over not menuitem } -{$IFDEF CPUX64} - WP := SmallPointToPoint(TSmallPoint(Cardinal(Msg.LPARAM))); -{$ELSE} - WP := SmallPointToPoint(TSmallPoint(Msg.LPARAM)); -{$ENDIF} - Winapi.Windows.ClientToScreen(Msg.HWND, WP); - case Msg.Message of - WM_MOUSEMOVE: - begin - TranslateMessage(Msg); - DispatchMessage(Msg); - Continue; - end; - WM_LBUTTONDOWN, WM_RBUTTONDOWN: - begin - P := GetDpMousePos(AView, Msg); // dp - Obj := AView.ObjectAtPoint(P); - if (Obj <> nil) and not (Obj is TMenuItem) then - begin - TranslateMessage(Msg); - DispatchMessage(Msg); - Continue; - end; - { Menus } - if (Obj <> nil) and (Obj.GetObject is TMenuItem) then - begin - MenuItem := TMenuItem(Obj.GetObject); - if not MenuItem.IsSelected and MenuItem.HavePopup then - TOpenMenuItem(MenuItem).NeedPopup - else if MenuItem.CanBeClicked then - begin - EndLoop(AView); - TOpenMenuItem(MenuItem).Click; - end; - end - else - begin - CurrentView := AView; - InMenus := False; - while (CurrentView <> nil) and not InMenus do - begin - if not (CurrentView.IsMenuBar) and (CurrentView.ObjectAtPoint(P) <> nil) then - InMenus := True; - CurrentView := CurrentView.ParentView; - end; - if not InMenus then - begin - EndLoop(AView); - ParentWnd := ParentWindow(AView); - if ParentWnd <> 0 then - begin - // Redirect messages to the parent form - Winapi.Windows.ScreenToClient(ParentWnd, WP); - Msg.LPARAM := Cardinal(PointToSmallPoint(WP)); - PostMessage(ParentWnd, Msg.Message, Msg.wParam, Msg.LPARAM); - end; - end; - end; - end; - WM_LBUTTONUP, WM_RBUTTONUP: - begin - P := GetDpMousePos(AView, Msg); // dp - Obj := AView.ObjectAtPoint(P); - if (Obj <> nil) and not (Obj is TMenuItem) then - begin - TranslateMessage(Msg); - DispatchMessage(Msg); - Continue; - end; - end; - end; - end; - WM_KEYFIRST .. WM_KEYLAST: - if (GetKeyState(VK_LBUTTON) >= 0) then - case Msg.Message of - WM_KEYDOWN, WM_SYSKEYDOWN: - case Msg.wParam of - VK_RETURN: - begin - if AView.Selected <> nil then - begin - if AView.Selected.HavePopup then - AView.Selected.NeedPopup - else if AView.Selected.CanBeClicked then - begin - TOpenMenuItem(AView.Selected).Click; - EndLoop(AView); - end; - end - else - EndLoop(AView); - end; - VK_ESCAPE: - begin - AView.Selected := nil; - Exit; - end; - VK_MENU, VK_F10: - EndLoop(AView); - VK_LEFT, VK_RIGHT: - if AView.IsMenuBar then - SelectNextMenuItem(AView, Msg.wParam = VK_LEFT) - else if AView.ParentView <> nil then - if (AView.Selected <> nil) and AView.Selected.HavePopup and (Msg.wParam = VK_RIGHT) then - AView.Selected.NeedPopup - else if AView.ParentView.IsMenuBar then - begin - AView.Loop := False; - SelectNextMenuItem(AView.ParentView, Msg.wParam = VK_LEFT); - if AView.ParentView.Selected <> nil then - AView.ParentView.Selected.NeedPopup; - Exit; - end - else - AView.Loop := False; - VK_UP, VK_DOWN: - if AView.IsMenuBar then - begin - if (AView.Selected <> nil) and (Msg.wParam = VK_DOWN) then - AView.Selected.NeedPopup; - end - else - SelectNextMenuItem(AView, Msg.wParam = VK_UP); - end; - end; - else - TranslateMessage(Msg); - DispatchMessage(Msg); - end; - end; - end; - end; - finally - KillTimer(0, TimerID); - AView.Loop := False; - Winapi.Windows.ReleaseCapture; - FView := nil; - end; -end; - -{ TWinTimerService } - -procedure TWinTimerService.ApplicationTerminatingHandler(const Sender: TObject; const Msg: System.Messaging.TMessage); -begin - FTerminating := True; - DestroyTimers; -end; - -constructor TWinTimerService.Create; -begin - inherited; - FTimers := TList.Create; - FHandleCounter := 128; // Start counting handles at 128. All valid handles have lower nibble = 0; - FTerminating := False; - if not QueryPerformanceFrequency(FPerformanceFrequency) then - FPerformanceFrequency := 0; - - TMessageManager.DefaultManager.SubscribeToMessage(TApplicationTerminatingMessage, ApplicationTerminatingHandler); -end; - -destructor TWinTimerService.Destroy; -begin - TMessageManager.DefaultManager.Unsubscribe(TApplicationTerminatingMessage, ApplicationTerminatingHandler); - - FreeAndNil(FTimers); - inherited; -end; - -function TWinTimerService.CreateTimer(AInterval: Integer; ATimerFunc: TTimerProc): TFmxHandle; -var - TimerInfo: TWin32TimerInfo; -begin - Result := 0; - if not FTerminating and (AInterval > 0) and Assigned(ATimerFunc) then - begin - TimerInfo.TimerFunc := ATimerFunc; - TimerInfo.TimerID := Winapi.Windows.SetTimer(0, 0, AInterval, @TimerCallback); - if TimerInfo.TimerID <> 0 then - begin -{$IFDEF CPUX64} - TimerInfo.TimerHandle := TInterlocked.Add(Int64(FHandleCounter), 16); -{$ENDIF} -{$IFDEF CPUX86} - TimerInfo.TimerHandle := TInterlocked.Add(Integer(FHandleCounter), 16); -{$ENDIF} - FTimers.Add(TimerInfo); - Result := TimerInfo.TimerHandle; - end - else - raise Exception.CreateFmt(SCannotCreateTimer, [GetLastError]); - end; -end; - -function TWinTimerService.DestroyTimer(Timer: TFmxHandle): Boolean; -var - Index: Integer; - TimerInfo: TWin32TimerInfo; -begin - Result := False; - Index := FTimers.Count; - while (Index > 0) do - begin - Dec(Index); - TimerInfo := FTimers[Index]; - if TimerInfo.TimerHandle = Timer then - begin - Result := Winapi.Windows.KillTimer(0, TimerInfo.TimerID); - FTimers.Delete(Index); - end; - end; -end; - -procedure TWinTimerService.DestroyTimers; -var - I: Integer; -begin - for I := FTimers.Count - 1 downto 0 do - try - DestroyTimer(FTimers[I].TimerHandle); - except - end; -end; - -function TWinTimerService.GetTick: Double; -var - PerformanceCounter: Int64; -begin - if FPerformanceFrequency <> 0 then - begin - QueryPerformanceCounter(PerformanceCounter); - Result := PerformanceCounter / FPerformanceFrequency; - end - else - Result := timeGetTime / 1000; -end; - -class procedure TWinTimerService.TimerCallback(window_hwnd: HWND; Msg: Longint; idEvent: UINT; dwTime: Longint); -var - Index: Integer; -begin - try - Index := PlatformWin.TimerService.FTimers.Count; - while (Index > 0) do - begin - Dec(Index); - if PlatformWin.TimerService.FTimers[Index].TimerID = idEvent then - begin - PlatformWin.TimerService.FTimers[Index].TimerFunc; - Break; - end; - end; - except - on E: Exception do - begin - if Application <> nil then - Application.HandleException(nil) - else - raise; - end; - end; -end; - -{ TImmManager } - -constructor TImmManager.Create(const AForm: TCommonCustomForm); -begin - FForm := AForm; -end; - -function TImmManager.GetComposition(const AContext: HIMC): string; -var - BufferLength: Integer; -begin - BufferLength := ImmGetCompositionString(AContext, GCS_COMPSTR, nil, 0); - SetLength(Result, BufferLength div SizeOf(Char)); - ImmGetCompositionString(AContext, GCS_COMPSTR, PChar(Result), BufferLength); -end; - -function TImmManager.GetFormHandle: HWND; -begin - Result := FormToHWND(Form); -end; - -function TImmManager.GetResultComposition(const AContext: HIMC): string; -var - BufferLength: Integer; -begin - BufferLength := ImmGetCompositionString(AContext, GCS_RESULTSTR, nil, 0); - SetLength(Result, BufferLength div SizeOf(Char)); - ImmGetCompositionString(AContext, GCS_RESULTSTR, PChar(Result), BufferLength); -end; - -procedure TImmManager.ProcessImeParameters(const AContext: HIMC; const AParameters: LPARAM; const ATextService: TTextServiceWin); -var - CompositionString: string; -begin - CompositionString := GetComposition(AContext); - ATextService.InternalSetMarkedText(CompositionString); - - if AParameters and GCS_COMPATTR <> 0 then - UpdateCompositionAttributes(AContext, ATextService); - - if AParameters and GCS_CURSORPOS <> 0 then - UpdateCompositionCursorPos(AContext, ATextService) - else if GetKeyboardLayout(0) and $FFFF = TTextServiceWin.LCID_Korean_Default then - // Native Korean IME Input system doesn't use cursor position. Instead of it it hightlights the last character in - // marked text. Since FMX doesn't support displaying character selection, we just move caret in the end of marked - // text and use underline attribute for highlighting last character. - ATextService.MarkedTextCursorPosition := Max(1, ATextService.MarkedText.Length); -end; - -procedure TImmManager.UpdateCompositionAttributes(const AContext: HIMC; const ATextService: TTextServiceWin); -var - BufferLength: Integer; -begin - BufferLength := ImmGetCompositionString(AContext, GCS_COMPATTR, nil, 0); - if BufferLength > 0 then - begin - SetLength(ATextService.CompAttrBuf, BufferLength); - ImmGetCompositionString(AContext, GCS_COMPATTR, @(ATextService.CompAttrBuf[0]), BufferLength); - end; -end; - -procedure TImmManager.UpdateCompositionCursorPos(const AContext: HIMC; const ATextService: TTextServiceWin); -var - CursorPos: Integer; -begin - CursorPos := ImmGetCompositionString(AContext, GCS_CURSORPOS, nil, 0); - if CursorPos >= 0 then - ATextService.MarkedTextCursorPosition := CursorPos; -end; - -function TImmManager.UpdateIMEWindowPosition: LRESULT; - - function DpToPx(const APoint: TPointF): TPoint; overload; - var - FormScale: Single; - begin - FormScale := Form.Handle.Scale; - Result := TPointF.Create(APoint.X * FormScale, APoint.Y * FormScale).Round; - end; - - function DpToPx(const ARect: TRectF): TRect; overload; - begin - Result.TopLeft := DpToPx(ARect.TopLeft); - Result.BottomRight := DpToPx(ARect.BottomRight); - end; - - function DefineControlRect(const AFocusedControl: IControl; const ATextInput: ITextInput): TRectF; - var - SelectionRect: TRectF; - begin - SelectionRect := ATextInput.GetSelectionRect; - Result.TopLeft := Form.ScreenToClient(AFocusedControl.LocalToScreen(SelectionRect.TopLeft)); - Result.BottomRight := Form.ScreenToClient(AFocusedControl.LocalToScreen(SelectionRect.BottomRight)); - end; - -var - IMC: HIMC; - Candidate: TCandidateForm; - TextInput: ITextInput; -begin - Result := 0; - - if not Supports(Form.Focused, ITextInput, TextInput) then - Exit; - - IMC := ImmGetContext(FormHandle); - if IMC = 0 then - Exit; - - try - Candidate.dwIndex := 0; - Candidate.dwStyle := CFS_POINT; - Candidate.ptCurrentPos := DpToPx(TextInput.GetTargetClausePointF); - Result := LRESULT(ImmSetCandidateWindow(IMC, @Candidate)); - - Candidate.dwStyle := CFS_EXCLUDE; - Candidate.rcArea := DpToPx(DefineControlRect(Form.Focused, TextInput)); - ImmSetCandidateWindow(IMC, @Candidate); - finally - ImmReleaseContext(FormHandle, IMC); - end; -end; - -procedure TImmManager.WMComposition(var Message: TMessage); -var - IMC: HIMC; - S: string; - TextInput: ITextInput; - I: Integer; - Key: Word; - Ch: Char; - IsProcessed: Boolean; -begin - UpdateIMEWindowPosition; - - IsProcessed := False; - - // User selected result string - if Message.LParam and GCS_RESULTSTR <> 0 then - begin - IsProcessed := True; - IMC := ImmGetContext(FormHandle); - if IMC <> 0 then - begin - try - if Supports(Form.Focused, ITextInput, TextInput) then - begin - TTextServiceWin(TextInput.GetTextService).Reset; - TextInput.IMEStateUpdated; - end; - S := GetResultComposition(IMC); - finally - ImmReleaseContext(FormHandle, IMC); - end; - - for I := 0 to S.Length - 1 do - begin - Key := 0; - Ch := S.Chars[I]; - Form.KeyDown(Key, Ch, []); - Form.KeyUp(Key, Ch, []); - end; - end; - end; - - // User is inputting current composition string - if Message.LParam and GCS_COMPSTR <> 0 then - begin - IsProcessed := True; - IMC := ImmGetContext(FormHandle); - if IMC <> 0 then - try - if Supports(Form.Focused, ITextInput, TextInput) then - begin - ProcessImeParameters(IMC, Message.LParam, TTextServiceWin(TextInput.GetTextService)); - TextInput.IMEStateUpdated; - end; - finally - ImmReleaseContext(FormHandle, IMC); - end; - end; - - if IsProcessed then - Message.Result := 0 - else - Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam); -end; - -procedure TImmManager.WMEndComposition(var Message: TMessage); -var - TextInput: ITextInput; -begin - UpdateIMEWindowPosition; - - if Supports(Form.Focused, ITextInput, TextInput) then - TTextServiceWin(TextInput.GetTextService).InternalEndIMEInput; -end; - -procedure TImmManager.WMNotify(var Message: TMessage); -begin - if Message.WParam = IMN_OPENCANDIDATE then - Message.Result := UpdateIMEWindowPosition - else - Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam); -end; - -procedure TImmManager.WMSetContext(var Message: TMessage); -begin - Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam and ISC_SHOWUIALLCANDIDATEWINDOW); -end; - -procedure TImmManager.WMStartComposition(var Message: TMessage); -var - TextInput: ITextInput; -begin - UpdateIMEWindowPosition; - - if Supports(Form.Focused, ITextInput, TextInput) then - TTextServiceWin(TextInput.GetTextService).InternalStartIMEInput; - - if System.SysUtils.Win32MajorVersion >= 6 then - Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam) - else - Message.Result := 0; -end; - -initialization - OleInitialize(nil); - CapturedGestureControl := nil; - LastMousePos := ImpossibleMousePosition; -end. \ No newline at end of file diff --git a/src/lib/FMX/DX 11.0/FMX.Platform.Win.pas b/src/lib/FMX/DX 11.0/FMX.Platform.Win.pas deleted file mode 100644 index 400a52b..0000000 --- a/src/lib/FMX/DX 11.0/FMX.Platform.Win.pas +++ /dev/null @@ -1,4444 +0,0 @@ -{*******************************************************} -{ } -{ Delphi FireMonkey Platform } -{ } -{ Copyright(c) 2011-2021 Embarcadero Technologies, Inc. } -{ All rights reserved } -{ } -{*******************************************************} - -unit FMX.Platform.Win; - -(*$HPPEMIT '#if defined(WIN32) && defined(CreateWindow)'*) -(*$HPPEMIT ' #define __SAVE_CREATEWINDOW CreateWindow'*) -(*$HPPEMIT ' #undef CreateWindow'*) -(*$HPPEMIT '#endif'*) - -(*$HPPEMIT END '#if defined(__SAVE_CREATEWINDOW)'*) -(*$HPPEMIT END ' #define CreateWindow __SAVE_CREATEWINDOW'*) -(*$HPPEMIT END ' #undef __SAVE_CREATEWINDOW'*) -(*$HPPEMIT END '#endif'*) - -{$HPPEMIT NOUSINGNAMESPACE} -{$R-} - -interface - -{$SCOPEDENUMS ON} - -uses - System.Messaging, Winapi.CommCtrl, Winapi.Windows, Winapi.ActiveX, System.Types, Winapi.Messages, System.Classes, - System.UITypes, System.UIConsts, System.Generics.Collections, FMX.Forms, FMX.Platform, FMX.Types, FMX.Graphics, - FMX.ZOrder.Win; - -type - TWinDropTarget = class; - - PRgnRects = ^TRgnRects; - TRgnRects = array [0..MaxInt div SizeOf(TRect) - 1] of TRect; - - TUpdateRects = array of TRectF; - - TWinWindowHandle = class(TWindowHandle) - private class var - FForcedScale: Single; - private - FForm: TCommonCustomForm; - FWnd: HWND; - FZOrderManager: TWinZOrderManager; - FBufferBitmap: THandle; - FBitmapInfo: TBitmapInfo; - FBufferBits: Pointer; - FBufferHandle: THandle; - FBufferSize: TSize; - FDisableDeactivate: Boolean; - FWinDropTarget: TWinDropTarget; - FCurrentScale: Single; - FClientSize: TSizeF; - FWndClientSize: TSize; - FBounds: TRectF; - FWndBounds: TRect; - FNearestIntegerMultiple: Integer; - procedure UpdateLayer; - function GetZOrderManager: TWinZOrderManager; - procedure SetBounds(const Value: TRectF); - procedure SetWndBounds(const Value: TRect); - procedure SetClientSize(const Value: TSizeF); - procedure CalculateClientSizeFromWindow; - procedure ApplyWndBoundsToWnd; - procedure ApplyWndClientSizeToWnd; - procedure CalcNearestIntegerMultiple; - function GetNearestIntegerMultiple: Integer; - function GetWndBorderSize: TSize; - protected - function GetBounds: TRectF; virtual; - function GetClientSize: TSizeF; virtual; - function GetWndBounds: TRect; virtual; - function GetWndClientSize: TSize; virtual; - function GetTransparency: Boolean; virtual; - function GetScale: Single; override; - { WinAPI Messages } - procedure WMDpiChanged(var AMessage: TWMDpi); message WM_DPICHANGED; - procedure WMWindowPosChanging(var AMessage: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING; - procedure WMWindowPosChanged(var AMessage: TWMWindowPosChanged); message WM_WINDOWPOSCHANGED; - procedure WMSize(var AMessage: TWMSize); message WM_SIZE; - procedure WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); message WM_GETMINMAXINFO; - public - constructor Create(const AForm: TCommonCustomForm; const AWnd: HWND); - destructor Destroy; override; - class procedure SetForcedScale(const ANewScale: Single); - procedure SetForcedScaleForForm(const ANewScale: Single); - { Buffer } - procedure CreateBuffer(const Width, Height: Integer); - procedure ResizeBuffer(const Width, Height: Integer); - procedure FreeBuffer; - { Rounding to match scale } - /// Rounds physical size of client window to match scale and logical client window size. - function RoundWndClientSizeToMatchScale(const AWndClientSize: TSize): TSize; - /// Rounds physical size of window to match scale and logical window bounds. - function RoundWndSizeToMatchScale(const AWndSize: TSize): TSize; - { PX to DP conversions } - /// Converts physical rect to logical. - function WndToForm(const Rect: TRect): TRectF; overload; - /// Converts physical rect to logical. - function WndToForm(const Rect: TRectF): TRectF; overload; - /// Converts logical rect to physical. - function FormToWnd(const Rect: TRectF): TRectF; - property NearestIntegerMultiple: Integer read GetNearestIntegerMultiple; - public - /// Native WinAPI window handle. - property Wnd: HWND read FWnd; - /// Returns related FMX form. - property Form: TCommonCustomForm read FForm; - /// The Z-Order manager responsible for using native controls on this form. - property ZOrderManager: TWinZOrderManager read GetZOrderManager; - /// Is form transparent or not? - property Transparency: Boolean read GetTransparency; - { Buffer } - property BufferBits: Pointer read FBufferBits; - property BufferHandle: THandle read FBufferHandle; - /// Allocated buffer size for native window. - property BufferSize: TSize read FBufferSize; - { Frame/Bounds } - /// Logical form's client size (dp). - property ClientSize: TSizeF read GetClientSize write SetClientSize; - /// Logical form bounds (dp). - property Bounds: TRectF read GetBounds write SetBounds; - /// Physical size of client part (px). - property WndClientSize: TSize read GetWndClientSize; - /// Physical form bounds (px). - property WndBounds: TRect read GetWndBounds write SetWndBounds; - /// Total physical thickness of window frame (px). - property WndBorderSize: TSize read GetWndBorderSize; - end; - - TWinDropTarget = class(TComponent, IDropTarget) - private - Form: TCommonCustomForm; - function GetDataObject: TDragObject; - function DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; - function DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; - function DragLeave: HRESULT; stdcall; - function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; - end; - -function PxToDp(const AValue: TPoint): TPointF; -function DpToPx(const AValue: TPointF): TPoint; - -function FindWindow(Handle: HWND): TCommonCustomForm; -function WindowHandleToPlatform(const AHandle: TWindowHandle): TWinWindowHandle; - -function FmxHandleToHWND(const FmxHandle: TWindowHandle): HWND; -function FormToHWND(Form: TCommonCustomForm): HWND; -function ApplicationHWND: HWND; - -procedure RegisterCorePlatformServices; -procedure UnregisterCorePlatformServices; - -const - IDC_NODROP = PChar(32760); - IDC_DRAG = PChar(32759); - IDC_MULTIDRAG = PChar(32756); - IDC_SQLWAIT = PChar(32755); - -type - TApplicationHWNDProc = function: HWND; - -procedure RegisterApplicationHWNDProc(const Proc: TApplicationHWNDProc); - -procedure ShutDown; cdecl; - -implementation - -{$SCOPEDENUMS OFF} - -uses - System.IOUtils, Winapi.CommDlg, Winapi.ShlObj, Winapi.MMSystem, Winapi.ShellAPI, - Winapi.MultiMon, Winapi.Imm, Winapi.UxTheme, Winapi.ShellScaling, System.Variants, System.SysUtils, System.Math, - System.Math.Vectors, System.StrUtils, System.DateUtils, System.RTLConsts, System.SyncObjs, System.Rtti, System.Devices, - FMX.Consts, FMX.Menus, FMX.Helpers.Win, FMX.Printer, FMX.Printer.Win, FMX.Dialogs.Win, FMX.Canvas.GDIP, FMX.Canvas.D2D, - FMX.Context.DX9, FMX.Context.DX11, FMX.Canvas.GPU, FMX.Forms.Border.Win, FMX.Controls.Win, FMX.Gestures.Win, - FMX.TextLayout, FMX.Text, FMX.Types3D, FMX.VirtualKeyboard, FMX.Controls, FMX.BehaviorManager, FMX.Styles, - FMX.MultiTouch.Win, FMX.ImgList, FMX.WebBrowser, FMX.Surfaces, FMX.Utils, FMX.KeyMapping, FMX.AcceleratorKey, - FMX.AcceleratorKey.Win, FMX.Platform.Screen.Win, FMX.Platform.SaveState.Win, FMX.Platform.Device.Win, - FMX.Platform.Metrics.Win, FMX.VirtualKeyboard.Win, FMX.Platform.Timer.Win, FMX.Platform.Logger.Win, - FMX.Platform.Menu.Win; - -type - MySTGMEDIUM = record // for compatibility - Tymed: DWORD; - case Integer Of - 0: - (HBITMAP: HBITMAP; UnkForRelease: Pointer { IUnknown } ); - 1: - (HMETAFILEPICT: THandle); - 2: - (HENHMETAFILE: THandle); - 3: - (HGLOBAL: HGLOBAL); - 4: - (lpszFileName: POleStr); - 5: - (stm: Pointer { IStream } ); - 6: - (stg: Pointer { IStorage } ); - end; - - { TDropSource } - - TDataObjectInfo = record - FormatEtc: TFormatEtc; - StgMedium: TStgMedium; - OwnedByDataObject: Boolean; - end; - - TDataObjectInfoArray = array of TDataObjectInfo; - - TDropSource = class(TComponent, IDataObject, IDropSource) - private - Data: TDragObject; - Formats: TDataObjectInfoArray; - { IDropSource } - function QueryContinueDrag(fEscapePressed: BOOL; grfKeyState: Longint): HRESULT; stdcall; - function GiveFeedback(dwEffect: Longint): HRESULT; stdcall; - { IDataObject } - function GetData(const FormatEtcIn: TFormatEtc; out Medium: TStgMedium): HRESULT; stdcall; - function GetDataHere(const FormatEtc: TFormatEtc; out Medium: TStgMedium): HRESULT; stdcall; - function QueryGetData(const FormatEtc: TFormatEtc): HRESULT; stdcall; - function GetCanonicalFormatEtc(const FormatEtc: TFormatEtc; out FormatEtcout: TFormatEtc): HRESULT; stdcall; - function SetData(const FormatEtc: TFormatEtc; var Medium: TStgMedium; fRelease: BOOL): HRESULT; stdcall; - function EnumFormatEtc(dwDirection: Longint; out EnumFormatEtc: IEnumFormatEtc): HRESULT; stdcall; - function dAdvise(const FormatEtc: TFormatEtc; advf: Longint; const advsink: IAdviseSink; - out dwConnection: Longint): HRESULT; stdcall; - function dUnadvise(dwConnection: Longint): HRESULT; stdcall; - function EnumdAdvise(out EnumAdvise: IEnumStatData): HRESULT; stdcall; - { For IDropSourceHelper } - function FindFormatEtc(TestFormatEtc: TFormatEtc): Integer; - function EqualFormatEtc(FormatEtc1, FormatEtc2: TFormatEtc): Boolean; - function HGlobalClone(HGLOBAL: THandle): THandle; - function RetrieveOwnedStgMedium(Format: TFormatEtc; var StgMedium: TStgMedium): HRESULT; - function StgMediumIncRef(const InStgMedium: TStgMedium; var OutStgMedium: TStgMedium; - CopyInMedium: Boolean): HRESULT; - function CanonicalIUnknown(const TestUnknown: IUnknown): IUnknown; - end; - -type - { TPlatformWin } - - TFullScreenParams = record - BorderStyle: TFmxFormBorderStyle; - WindowState: TWindowState; - Position: TPointF; - Size: TSizeF; - public - function IsFullScreen: Boolean; - procedure Clean; - end; - - TFormInfo = class - WasLeftMouseButtonPressed: Boolean; - end; - - TImmManager = class; - - TPlatformWin = class(TInterfacedObject, IFMXApplicationService, IFMXWindowService, IFMXDragDropService, - IFMXCursorService, IFMXMouseService, IFMXTextService, IFMXContextService, IFMXCanvasService, IFMXWindowBorderService, - IFMXFullScreenWindowService, IFMXGestureRecognizersService, IFMXWindowsTouchService, IFMXKeyMappingService, - IFMXWindowConstraintsService) - private - FTitle: string; - FDefaultTitle: string; - FApplicationHWNDProc: TApplicationHWNDProc; - FApplicationHWND: HWND; - FIsOutApplicationHWND: Boolean; - FFullScreenSupport: TDictionary; - FDiableUpdateState: Boolean; - FThreadSyncHandle: HWND; - FInPaintUpdateRects: TDictionary; - FTerminating: Boolean; - FRunning: Boolean; - FCursor: TCursor; - FCaptionChangedId: Integer; - FMultiTouchManager: TMultiTouchManagerWin; - FEnabledInteractiveGestures: TInteractiveGestures; - FDragAndDropActive: Boolean; - FKeyMapping: TKeyMapping; - FAcceleratorKeyRegistry: IFMXAcceleratorKeyRegistryService; - FIsPostQuitMessage: Boolean; - FTimerService: TWinTimerService; - FFormsInfo: TObjectDictionary; - { IMM } - FImmManagers: TObjectDictionary; - procedure ThreadSync(var Msg: TMessage); - procedure WakeMainThread(Sender: TObject); - function CreateAppHandle: HWND; - procedure MinimizeApp; - procedure RestoreApp; - procedure UpdateAppTitle; - procedure CaptionChangedHandler(const Sender: TObject; const Msg: System.Messaging.TMessage); - function GetApplicationHWND: HWND; - procedure SetApplicationHWNDProc(const Value: TApplicationHWNDProc); - procedure UpdateApplicationHwnd; - - { IFMXKeyMappingService } - /// Registers a platform key as the given virtual key. - function RegisterKeyMapping(const PlatformKey, VirtualKey: Word; const KeyKind: TKeyKind): Boolean; - /// Unegisters a platform key as the given virtual key. - function UnregisterKeyMapping(const PlatformKey: Word): Boolean; - /// Obtains the virtual key from a given platform key. - function PlatformKeyToVirtualKey(const PlatformKey: Word; var KeyKind: TKeyKind): Word; - /// Obtains the platform key from a given virtual key. - function VirtualKeyToPlatformKey(const VirtualKey: Word): Word; - function GetImmManager(const Index: TCommonCustomForm): TImmManager; - function GetFormInfo(const Index: TCommonCustomForm): TFormInfo; - public - constructor Create; - destructor Destroy; override; - { IFMXApplicationService } - procedure Run; - function HandleMessage: Boolean; - procedure WaitMessage; - function GetDefaultTitle: string; - function GetTitle: string; - procedure SetTitle(const Value: string); - function Terminating: Boolean; - function Running: Boolean; - procedure Terminate; - function GetVersionString: string; - property ApplicationHWND: HWND read GetApplicationHWND; - property ApplicationHWNDProc: TApplicationHWNDProc read FApplicationHWNDProc write SetApplicationHWNDProc; - { IFMXWindowService } - function FindForm(const AHandle: TWindowHandle): TCommonCustomForm; - function CreateWindow(const AForm: TCommonCustomForm): TWindowHandle; - procedure DestroyWindow(const AForm: TCommonCustomForm); - procedure ReleaseWindow(const AForm: TCommonCustomForm); - procedure SetWindowState(const AForm: TCommonCustomForm; const AState: TWindowState); - procedure ShowWindow(const AForm: TCommonCustomForm); - procedure HideWindow(const AForm: TCommonCustomForm); - procedure BringToFront(const AForm: TCommonCustomForm); - procedure SendToBack(const AForm: TCommonCustomForm); - procedure Activate(const AForm: TCommonCustomForm); - function ShowWindowModal(const AForm: TCommonCustomForm): TModalResult; - function CanShowModal: Boolean; - procedure InvalidateWindowRect(const AForm: TCommonCustomForm; R: TRectF); - procedure InvalidateImmediately(const AForm: TCommonCustomForm); - procedure SetWindowRect(const AForm: TCommonCustomForm; ARect: TRectF); - function GetWindowRect(const AForm: TCommonCustomForm): TRectF; - function GetClientSize(const AForm: TCommonCustomForm): TPointF; - procedure SetClientSize(const AForm: TCommonCustomForm; const ASize: TPointF); - procedure SetWindowCaption(const AForm: TCommonCustomForm; const ACaption: string); - procedure SetCapture(const AForm: TCommonCustomForm); - procedure ReleaseCapture(const AForm: TCommonCustomForm); - function ClientToScreen(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; - function ScreenToClient(const AForm: TCommonCustomForm; const Point: TPointF): TPointF; - function GetWindowScale(const AForm: TCommonCustomForm): Single; - { IFMXWindowConstraintsService } - procedure SetConstraints(const AForm: TCommonCustomForm; const AMinWidth, AMinHeight, AMaxWidth, AMaxHeight: Single); - { IFMXFullScreenWindowService } - // for desingtime and testing only - procedure SetFullScreen(const AForm: TCommonCustomForm; const AValue: Boolean); - function GetFullScreen(const AForm: TCommonCustomForm): Boolean; - procedure SetShowFullScreenIcon(const AForm: TCommonCustomForm; const AValue: Boolean); - { IFMXWindowBorderService } - function CreateWindowBorder(const AForm: TCommonCustomForm): TWindowBorder; - { IFMXDragDropService } - procedure BeginDragDrop(AForm: TCommonCustomForm; const Data: TDragObject; ABitmap: TBitmap); - { IFMXCursorService } - procedure SetCursor(const ACursor: TCursor); - function GetCursor: TCursor; - { IFMXMouseService } - function GetMousePos: TPointF; - { IFMXTextService } - function GetTextServiceClass: TTextServiceClass; - { IFMXContextService } - procedure RegisterContextClasses; - procedure UnregisterContextClasses; - { IFMXCanvasService } - procedure RegisterCanvasClasses; - procedure UnregisterCanvasClasses; - { IFMXGestureRecognizersService } - procedure AddRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); - procedure RemoveRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); - { IFMXWindowsTouchService } - procedure HookTouchHandler(const AForm: TCommonCustomForm); - procedure UnhookTouchHandler(const AForm: TCommonCustomForm); - - property ImmManager[const Index: TCommonCustomForm]: TImmManager read GetImmManager; - property TimerService: TWinTimerService read FTimerService; - /// Returns additional platform dependent data about fmx form. - property FormInfo[const Index: TCommonCustomForm]: TFormInfo read GetFormInfo; - end; - - TOpenForm = class(TCommonCustomForm); - TTextServiceWin = class; - - TImmManager = class - private - [Weak] FForm: TCommonCustomForm; - function GetFormHandle: HWND; - procedure UpdateCompositionAttributes(const AContext: HIMC; const ATextService: TTextServiceWin); - procedure UpdateCompositionCursorPos(const AContext: HIMC; const ATextService: TTextServiceWin); - procedure ProcessImeParameters(const AContext: HIMC; const AParameters: LPARAM; const ATextService: TTextServiceWin); - protected - procedure WMStartComposition(var Message: TMessage); message WM_IME_STARTCOMPOSITION; - procedure WMComposition(var Message: TMessage); message WM_IME_COMPOSITION; - procedure WMEndComposition(var Message: TMessage); message WM_IME_ENDCOMPOSITION; - procedure WMSetContext(var Message: TMessage); message WM_IME_SETCONTEXT; - procedure WMNotify(var Message: TMessage); message WM_IME_NOTIFY; - - function GetComposition(const AContext: HIMC): string; - function GetResultComposition(const AContext: HIMC): string; - public - constructor Create(const AForm: TCommonCustomForm); - - function UpdateIMEWindowPosition: LRESULT; - - property Form: TCommonCustomForm read FForm; - property FormHandle: HWND read GetFormHandle; - end; - -{ Text Service } - - TTextServiceWin = class(TTextService) - private const - LCID_Korean_Default = (SUBLANG_KOREAN shl 10) + LANG_KOREAN; - private - FMarkedText: string; - FIsInputting: Boolean; - FMarkedTextCursorPosition: Integer; - procedure SetMarkedTextCursorPosition(const Value: Integer); - procedure RecreateImmContext(const AFormHandle: TWindowHandle); - procedure Reset; - protected - procedure MarkedTextPositionChanged; override; - procedure CaretPositionChanged; override; - function GetMarketTextAttributes: TArray; override; - public - CompAttrBuf: array of Byte; - - procedure InternalSetMarkedText(const AMarkedText: string); override; - function InternalGetMarkedText: string; override; - procedure InternalStartIMEInput; - procedure InternalEndIMEInput; - - procedure RefreshImePosition; override; - - function TargetClausePosition: TPoint; override; - - procedure EnterControl(const AFormHandle: TWindowHandle); override; - procedure ExitControl(const AFormHandle: TWindowHandle); override; - - function HasMarkedText: Boolean; override; - - { Deprecated } - procedure DrawSingleLine(const ACanvas: TCanvas; const ARect: TRectF; const AFirstVisibleChar: Integer; - const AFont: TFont; const AOpacity: Single; const AFlags: TFillTextFlags; const ATextAlign: TTextAlign; - const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); overload; override; - procedure DrawSingleLine(const ACanvas: TCanvas; const S: string; const ARect: TRectF; const Font: TFont; - const AOpacity: Single; const Flags: TFillTextFlags; const ATextAlign: TTextAlign; - const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); overload; override; - - /// Returns caret position in MarkedText bounds. - property MarkedTextCursorPosition: Integer read FMarkedTextCursorPosition write SetMarkedTextCursorPosition; - end; - -var - VirtualKeyboardWin: TWinVirtualKeyboard; - MultiDisplayWin: TWinMultiDisplay; - MenuServiceWin: TWinMenuService; - -const - CF_FMOBJECT = CF_PRIVATEFIRST + 1; - -var - WindowAtom: TAtom; - WindowAtomString: string; - PlatformWin: TPlatformWin; - CapturedGestureControl: TComponent; - -function PxToDp(const AValue: TPoint): TPointF; -begin - if MultiDisplayWin = nil then - Result := AValue - else - Result := MultiDisplayWin.PxToDp(AValue); -end; - -function DpToPx(const AValue: TPointF): TPoint; -begin - if MultiDisplayWin = nil then - Result := AValue.Truncate - else - Result := MultiDisplayWin.DpToPx(AValue); -end; - -procedure DisableProcessWindowsGhosting; -var - DisableProcessWindowsGhostingProc: procedure; -begin - DisableProcessWindowsGhostingProc := GetProcAddress(GetModuleHandle('user32.dll'), 'DisableProcessWindowsGhosting'); - if Assigned(DisableProcessWindowsGhostingProc) then - DisableProcessWindowsGhostingProc; -end; - -procedure RegisterCorePlatformServices; -var - MetricsService: TWinMetricsServices; -begin - PlatformWin := TPlatformWin.Create; - TPlatformServices.Current.AddPlatformService(IFMXApplicationService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXTimerService, PlatformWin.TimerService); - TPlatformServices.Current.AddPlatformService(IFMXWindowService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXWindowConstraintsService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXDragDropService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXCursorService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXMouseService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXTextService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXContextService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXCanvasService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXWindowBorderService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXLoggingService, TWinLoggerService.Create); - TPlatformServices.Current.AddPlatformService(IFMXFullScreenWindowService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXGestureRecognizersService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXWindowsTouchService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXKeyMappingService, PlatformWin); - TPlatformServices.Current.AddPlatformService(IFMXDeviceService, TWinDeviceServices.Create); - TPlatformServices.Current.AddPlatformService(IFMXSaveStateService, TWinSaveStateService.Create); - - MetricsService := TWinMetricsServices.Create; - TPlatformServices.Current.AddPlatformService(IFMXLocaleService, MetricsService); - TPlatformServices.Current.AddPlatformService(IFMXDefaultMetricsService, MetricsService); - TPlatformServices.Current.AddPlatformService(IFMXSystemInformationService, MetricsService); - TPlatformServices.Current.AddPlatformService(IFMXSystemFontService, MetricsService); - TPlatformServices.Current.AddPlatformService(IFMXListingService, MetricsService); - - VirtualKeyboardWin := TWinVirtualKeyboard.Create; - TPlatformServices.Current.AddPlatformService(IFMXVirtualKeyboardService, VirtualKeyboardWin); - - MultiDisplayWin := TWinMultiDisplay.Create; - TPlatformServices.Current.AddPlatformService(IFMXMultiDisplayService, MultiDisplayWin); - TPlatformServices.Current.AddPlatformService(IFMXScreenService, MultiDisplayWin); - TPlatformServices.Current.AddPlatformService(IFMXDeviceMetricsService, MultiDisplayWin); - - MenuServiceWin := TWinMenuService.Create; - TPlatformServices.Current.AddPlatformService(IFMXMenuService, MenuServiceWin); - - // If application becomes inactive while a modal dialog is opened it may hang, so we have to DisableProcessWindowsGhosting - DisableProcessWindowsGhosting; -end; - -procedure UnregisterCorePlatformServices; -begin - TPlatformServices.Current.RemovePlatformService(IFMXMenuService); - TPlatformServices.Current.RemovePlatformService(IFMXDeviceService); - TPlatformServices.Current.RemovePlatformService(IFMXDeviceMetricsService); - TPlatformServices.Current.RemovePlatformService(IFMXApplicationService); - TPlatformServices.Current.RemovePlatformService(IFMXSystemFontService); - TPlatformServices.Current.RemovePlatformService(IFMXTimerService); - TPlatformServices.Current.RemovePlatformService(IFMXWindowConstraintsService); - TPlatformServices.Current.RemovePlatformService(IFMXWindowService); - TPlatformServices.Current.RemovePlatformService(IFMXDragDropService); - TPlatformServices.Current.RemovePlatformService(IFMXCursorService); - TPlatformServices.Current.RemovePlatformService(IFMXMouseService); - TPlatformServices.Current.RemovePlatformService(IFMXScreenService); - TPlatformServices.Current.RemovePlatformService(IFMXLocaleService); - TPlatformServices.Current.RemovePlatformService(IFMXTextService); - TPlatformServices.Current.RemovePlatformService(IFMXContextService); - TPlatformServices.Current.RemovePlatformService(IFMXCanvasService); - TPlatformServices.Current.RemovePlatformService(IFMXWindowBorderService); - TPlatformServices.Current.RemovePlatformService(IFMXSystemInformationService); - TPlatformServices.Current.RemovePlatformService(IFMXFullScreenWindowService); - TPlatformServices.Current.RemovePlatformService(IFMXVirtualKeyboardService); - TPlatformServices.Current.RemovePlatformService(IFMXDefaultMetricsService); - TPlatformServices.Current.RemovePlatformService(IFMXLoggingService); - TPlatformServices.Current.RemovePlatformService(IFMXListingService); - TPlatformServices.Current.RemovePlatformService(IFMXSaveStateService); - TPlatformServices.Current.RemovePlatformService(IFMXGestureRecognizersService); - TPlatformServices.Current.RemovePlatformService(IFMXWindowsTouchService); - TPlatformServices.Current.RemovePlatformService(IFMXDefaultMetricsService); - TPlatformServices.Current.RemovePlatformService(IFMXKeyMappingService); -end; - -procedure RaiseIfNil(const AObject: TObject; const AArgumentName: string); -begin - if AObject = nil then - raise EArgumentException.CreateFmt(SParamIsNil, [AArgumentName]); -end; - -{ TPlatformWin } - -constructor TPlatformWin.Create; -begin - inherited; - FIsOutApplicationHWND := False; - WindowAtomString := Format('FIREMONKEY%.8X', [GetCurrentProcessID]); - WindowAtom := GlobalAddAtomW(PChar(WindowAtomString)); - - FFullScreenSupport := TDictionary.Create; - FInPaintUpdateRects := TDictionary.Create; - FThreadSyncHandle := AllocateHWnd(ThreadSync); - FKeyMapping := TKeyMapping.Create; - FAcceleratorKeyRegistry := TWinAcceleratorKeyRegistry.Create; - System.Classes.WakeMainThread := WakeMainThread; - Application := TApplication.Create(nil); - FCaptionChangedId := TMessageManager.DefaultManager.SubscribeToMessage(TMainCaptionChangedMessage, - CaptionChangedHandler); - FRunning := False; - - FImmManagers := TObjectDictionary.Create([doOwnsValues]); - FFormsInfo := TObjectDictionary.Create([doOwnsValues]); - FTimerService := TWinTimerService.Create; -end; - -destructor TPlatformWin.Destroy; -begin - TMessageManager.DefaultManager.Unsubscribe(TMainCaptionChangedMessage, FCaptionChangedId); - FreeAndNil(FFormsInfo); - FreeAndNil(FImmManagers); - FreeAndNil(Application); - FInPaintUpdateRects.Free; - FFullScreenSupport.Free; - FAcceleratorKeyRegistry := nil; - FTimerService := nil; - FKeyMapping.Free; - GlobalDeleteAtom(WindowAtom); - - if FThreadSyncHandle <> 0 then - DeallocateHWnd(FThreadSyncHandle); - if PlatformWin = Self then - PlatformWin := nil; - inherited; -end; - -{ App } - -{$WARN SYMBOL_PLATFORM OFF} -procedure TPlatformWin.Run; -var - MainForm: TCommonCustomForm; -begin - FRunning := True; - Application.RealCreateForms; - UpdateAppTitle; - if Application.MainForm <> nil then - begin - MainForm := Application.MainForm; - case CmdShow of - SW_SHOWMINNOACTIVE: - MainForm.WindowState := TWindowState.wsMinimized; - SW_SHOWMAXIMIZED: - MainForm.WindowState := TWindowState.wsMaximized; - end; - end; - - repeat - try - Application.HandleMessage; - except - Application.HandleException(Self); - end; - until Application.Terminated; -end; -{$WARN SYMBOL_PLATFORM DEFAULT} - -function TPlatformWin.Terminating: Boolean; -begin - Result := FTerminating; -end; - -function TPlatformWin.Running: Boolean; -begin - Result := FRunning; -end; - -procedure TPlatformWin.Terminate; -begin - FRunning := False; - FTerminating := True; - FIsPostQuitMessage := True; - TMessageManager.DefaultManager.SendMessage(nil, TApplicationTerminatingMessage.Create); - - FMultiTouchManager.Free; // release multitouch early so that it does not hold reference to services - - // We don't need destroy application handle, if we receive it from out through ApplicationHWNDProc. - if IsLibrary and FIsOutApplicationHWND and (FApplicationHWND <> 0) then - begin - WinApi.Windows.DestroyWindow(FApplicationHWND); - FApplicationHWND := 0; - end; -end; - -function TPlatformWin.HandleMessage: Boolean; -var - Msg: TMsg; -begin - Result := False; - if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then - begin - Result := True; - if Msg.Message <> WM_QUIT then - begin - TranslateMessage(Msg); - DispatchMessage(Msg); - if FIsPostQuitMessage then - PostQuitMessage(0); - end - else - Application.Terminated := True; - end; -end; - -procedure TPlatformWin.WaitMessage; -begin - Winapi.Windows.WaitMessage; -end; - -function TPlatformWin.GetDefaultTitle: string; -begin - Result := FDefaultTitle; -end; - -function TPlatformWin.GetTitle: string; -begin - Result := FTitle; -end; - -procedure TPlatformWin.SetTitle(const Value: string); -begin - if FTitle <> Value then - begin - if (Value = SAppDefault) and (FDefaultTitle <> '') then - FTitle := FDefaultTitle - else - FTitle := Value; - UpdateAppTitle; - end; -end; - -function TPlatformWin.GetVersionString: string; -const - UndefinedVersionInfo = Cardinal(-1); -var - VersionInfo: Cardinal; -begin - VersionInfo := GetFileVersion(ParamStr(0)); - if VersionInfo <> UndefinedVersionInfo then - Result := Format('%d.%d', [HiWord(VersionInfo), LoWord(VersionInfo)]) - else - Result := string.Empty; -end; - -procedure TPlatformWin.UpdateApplicationHwnd; -var - OldApplicationHandler: HWND; -begin - OldApplicationHandler := FApplicationHWND; - - // The first, we try to extract application handle from IDE. - if Assigned(FApplicationHWNDProc) then - begin - FApplicationHWND := FApplicationHWNDProc; - FIsOutApplicationHWND := FApplicationHWND <> 0; - end; - - // If IDE or user doesn't set outter application handle, we create our own, if it wasn't created before. - if FApplicationHWND = 0 then - begin - FApplicationHWND := CreateAppHandle; - FIsOutApplicationHWND := False; - end; - - if OldApplicationHandler <> FApplicationHWND then - UpdateAppTitle; -end; - -procedure TPlatformWin.UpdateAppTitle; -begin - if FApplicationHWND <> 0 then - begin - { Don't update the title when working in the IDE } - if (Application <> nil) and (Application.MainForm <> nil) and ((FTitle = SAppDefault) or - (FTitle = GetDefaultTitle)) then - SetWindowText(FApplicationHWND, PChar(Application.MainForm.Caption)) - else if FTitle.IsEmpty then - SetWindowText(FApplicationHWND, PChar(GetDefaultTitle)) - else - SetWindowText(FApplicationHWND, PChar(FTitle)); - end; -end; - -procedure TPlatformWin.CaptionChangedHandler(const Sender: TObject; const Msg: System.Messaging.TMessage); -begin - UpdateAppTitle; -end; - -procedure TPlatformWin.WakeMainThread(Sender: TObject); -begin - PostMessage(FThreadSyncHandle, WM_NULL, 0, 0); -end; - -{ Text Service } - -function TTextServiceWin.GetMarketTextAttributes: TArray; -var - I: Integer; -begin - if FMarkedText.IsEmpty or (Length(CompAttrBuf) = 0) then - begin - Result := []; - Exit; - end; - - SetLength(Result, FMarkedText.Length); - for I := 0 to FMarkedText.Length - 1 do - case CompAttrBuf[I] of - ATTR_INPUT: - Result[I] := TMarkedTextAttribute.Input; - ATTR_TARGET_CONVERTED: - Result[I] := TMarkedTextAttribute.TargetConverted; - ATTR_CONVERTED: - Result[I] := TMarkedTextAttribute.Converted; - ATTR_TARGET_NOTCONVERTED: - Result[I] := TMarkedTextAttribute.TargetNotConverted; - ATTR_INPUT_ERROR: - Result[I] := TMarkedTextAttribute.InputError; - end; -end; - -procedure TTextServiceWin.SetMarkedTextCursorPosition(const Value: Integer); -begin - FMarkedTextCursorPosition := Value; -end; - -procedure TTextServiceWin.InternalSetMarkedText(const AMarkedText: string); -var - TextInput: ITextInput; -begin - if FIsInputting and Supports(Owner, ITextInput, TextInput) then - begin - FMarkedText := AMarkedText; - FMarkedTextCursorPosition := EnsureRange(FMarkedTextCursorPosition, 0, FMarkedText.Length); - TextInput.IMEStateUpdated; - end; -end; - -procedure TTextServiceWin.InternalStartIMEInput; -var - TextInput: ITextInput; -begin - if not FIsInputting and Supports(Owner, ITextInput, TextInput) then - begin - FIsInputting := True; - Reset; - TextInput.StartIMEInput; - end; -end; - -procedure TTextServiceWin.MarkedTextPositionChanged; -begin - inherited; - if FIsInputting then - RefreshImePosition; -end; - -procedure TTextServiceWin.RecreateImmContext(const AFormHandle: TWindowHandle); -var - IMC: HIMC; - OldIMC: HIMC; - WindowHandle: HWND; -begin - // Our styled controls doesn't have window handle, so form shares IMM context between all text styled controls. - // It leads to issues in IMM with keeping in memory previous IMM composition string, when user switches focus - // between out styled text input controls. Even if we rest composition string by ImmSetCompositionString, - // OS sends WM_IME_COMPOSITION notification message with the previous composition string and this behavior - // is different, when user uses different IMM provides. So the recreating context guarantees blank IME context - // without previous states. - - WindowHandle := WindowHandleToPlatform(AFormHandle).Wnd; - IMC := ImmCreateContext; - OldIMC := ImmAssociateContext(WindowHandle, IMC); - ImmDestroyContext(OldIMC); - ImmReleaseContext(WindowHandle, IMC); -end; - -procedure TTextServiceWin.RefreshImePosition; - - function FindForm: TCommonCustomForm; - var - TmpObject: TFmxObject; - begin - TmpObject := Owner.GetObject; - while (TmpObject <> nil) and not (TmpObject is TCommonCustomForm) do - TmpObject := TmpObject.Parent; - - if TmpObject is TCommonCustomForm then - Result := TCommonCustomForm(TmpObject) - else - Result := nil; - end; - -var - Form: TCommonCustomForm; -begin - inherited; - Form := FindForm; - if Form <> nil then - PlatformWin.ImmManager[Form].UpdateIMEWindowPosition; -end; - -procedure TTextServiceWin.Reset; -begin - CompAttrBuf := nil; - FMarkedText := string.Empty; - FMarkedTextCursorPosition := 0; -end; - -function TTextServiceWin.InternalGetMarkedText: string; -begin - Result := FMarkedText; -end; - -procedure TTextServiceWin.CaretPositionChanged; -begin - inherited; - if FIsInputting then - RefreshImePosition; -end; - -function TTextServiceWin.TargetClausePosition: TPoint; -begin - Result := CaretPosition; - Result.X := Result.X + MarkedTextCursorPosition; -end; - -procedure TTextServiceWin.InternalEndIMEInput; -var - TextInput: ITextInput; -begin - if FIsInputting and Supports(Owner, ITextInput, TextInput) then - begin - FIsInputting := False; - FMarkedTextCursorPosition := 0; - TextInput.EndIMEInput; - FMarkedText := string.Empty; - end; -end; - -procedure TTextServiceWin.EnterControl(const AFormHandle: TWindowHandle); -var - WindowHandle: HWND; -begin - RaiseIfNil(AFormHandle, 'AFormHandle'); - - WindowHandle := WindowHandleToPlatform(AFormHandle).Wnd; - if TPlatformServices.Current.SupportsPlatformService(IFMXWBService) then - SetFocus(WindowHandle); - - if ImeMode <> TImeMode.imDisable then - RecreateImmContext(AFormHandle); - TImeModeHelper.SetIme(WindowHandle, ImeMode); -end; - -procedure TTextServiceWin.ExitControl(const AFormHandle: TWindowHandle); -begin - RaiseIfNil(AFormHandle, 'AFormHandle'); - - if ImeMode <> TImeMode.imDisable then - RecreateImmContext(AFormHandle); - - Reset; - TImeModeHelper.ResetIme(WindowHandleToPlatform(AFormHandle).Wnd, ImeMode); -end; - -procedure TTextServiceWin.DrawSingleLine(const ACanvas: TCanvas; const ARect: TRectF; const AFirstVisibleChar: Integer; - const AFont: TFont; const AOpacity: Single; const AFlags: TFillTextFlags; const ATextAlign: TTextAlign; - const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); -var - S: string; -begin - S := CombinedText; - S := S.Substring(AFirstVisibleChar - 1, S.Length - AFirstVisibleChar + 1); - DrawSingleLine(ACanvas, S, ARect, AFont, AOpacity, AFlags, ATextAlign, AVTextAlign, AWordWrap); -end; - -procedure TTextServiceWin.DrawSingleLine(const ACanvas: TCanvas; const S: string; const ARect: TRectF; const Font: TFont; - const AOpacity: Single; const Flags: TFillTextFlags; const ATextAlign: TTextAlign; - const AVTextAlign: TTextAlign = TTextAlign.Center; const AWordWrap: Boolean = False); - - procedure UnderlineRegion(const ARegions: TRegion); - var - I: Integer; - Region: TRectF; - HalfThickness: Single; - StartPoint, EndPoint: TPointF; - begin - HalfThickness := ACanvas.Stroke.Thickness / 2; - for I := Low(ARegions) to High(ARegions) do - begin - Region := ACanvas.AlignToPixel(ARegions[I]); - - StartPoint := TPointF.Create(Region.Left, Region.Bottom); - StartPoint.Offset(-HalfThickness, -HalfThickness); - EndPoint := Region.BottomRight; - EndPoint.Offset(-HalfThickness, -HalfThickness); - ACanvas.DrawLine(StartPoint, EndPoint, AOpacity); - end; - end; - - procedure UnderlineMarkedText(const ALayout: TTextLayout; const AAttributes: TArray); - var - SavedState: TCanvasSaveState; - Region: TRegion; - TextRange: TTextRange; - PositionInLine: Integer; - I: Integer; - begin - SavedState := ACanvas.SaveState; - try - ACanvas.Stroke.Assign(ACanvas.Fill); - ACanvas.Stroke.Thickness := 2; - ACanvas.Stroke.Dash := TStrokeDash.Solid; - for I := 0 to FMarkedText.Length - 1 do - begin - case AAttributes[I] of - TMarkedTextAttribute.Input: - begin - ACanvas.Stroke.Thickness := 1; - ACanvas.Stroke.Dash := TStrokeDash.Dash - end; - TMarkedTextAttribute.TargetConverted: - begin - ACanvas.Stroke.Thickness := 2; - ACanvas.Stroke.Dash := TStrokeDash.Solid; - end; - TMarkedTextAttribute.Converted: - begin - ACanvas.Stroke.Thickness := 1; - ACanvas.Stroke.Dash := TStrokeDash.Solid; - end; - TMarkedTextAttribute.TargetNotConverted: - begin - ACanvas.Stroke.Thickness := 4; - ACanvas.Stroke.Dash := TStrokeDash.Solid; - end; - TMarkedTextAttribute.InputError: - begin - ACanvas.Stroke.Thickness := 1; - ACanvas.Stroke.Dash := TStrokeDash.Dot - end; - end; - - // CaretPosition -> MarkedTextPosition - if CaretPosition.X > S.Length - FMarkedText.Length then - PositionInLine := S.Length - FMarkedText.Length - else - PositionInLine := CaretPosition.X; - TextRange := TTextRange.Create(PositionInLine + I, 1); - - Region := ALayout.RegionForRange(TextRange); - UnderlineRegion(Region); - end; - finally - ACanvas.RestoreState(SavedState); - end; - end; - -var - Layout: TTextLayout; - Attributes: TArray; -begin - Layout := TTextLayoutManager.TextLayoutByCanvas(ACanvas.ClassType).Create; - try - Layout.BeginUpdate; - try - Layout.TopLeft := ARect.TopLeft; - Layout.MaxSize := TPointF.Create(ARect.Width, ARect.Height); - Layout.WordWrap := AWordWrap; - Layout.HorizontalAlign := ATextAlign; - Layout.VerticalAlign := AVTextAlign; - Layout.Font := Font; - Layout.Color := ACanvas.Fill.Color; - Layout.Opacity := AOpacity; - Layout.RightToLeft := TFillTextFlag.RightToLeft in Flags; - Layout.Text := S; - finally - Layout.EndUpdate; - end; - Layout.RenderLayout(ACanvas); - - Attributes := GetMarketTextAttributes; - if not FMarkedText.IsEmpty and (Length(Attributes) > 0) then - UnderlineMarkedText(Layout, Attributes); - finally - FreeAndNil(Layout); - end; -end; - -function TTextServiceWin.HasMarkedText: Boolean; -begin - Result := not FMarkedText.IsEmpty; -end; - -function TPlatformWin.GetTextServiceClass: TTextServiceClass; -begin - Result := TTextServiceWin; -end; - -{ Window } - -procedure TWinWindowHandle.ApplyWndBoundsToWnd; -var - CurrentWndRect: TRect; -begin - GetWindowRect(Wnd, CurrentWndRect); - if CurrentWndRect <> FWndBounds then - SetWindowPos(Wnd, 0, FWndBounds.Left, FWndBounds.Top, FWndBounds.Width, FWndBounds.Height, SWP_NOACTIVATE or SWP_NOZORDER); -end; - -procedure TWinWindowHandle.CalcNearestIntegerMultiple; -const - MaxMul = 9; -var - I: Integer; -begin - if not SameValue(Frac(Scale), 0, TEpsilon.Scale) then - begin - FNearestIntegerMultiple := Round(Scale); - for I := 2 to MaxMul do - if SameValue(Frac(Scale * I), 0, TEpsilon.Scale) then - begin - FNearestIntegerMultiple := Trunc(Scale * I); - Break; - end; - end - else - FNearestIntegerMultiple := Round(Scale); -end; - -class procedure TWinWindowHandle.SetForcedScale(const ANewScale: Single); -begin - FForcedScale := Max(1, ANewScale); -end; - -procedure TWinWindowHandle.SetForcedScaleForForm(const ANewScale: Single); -begin - SetForcedScale(ANewScale); - CalcNearestIntegerMultiple; - FWndClientSize := TSizeF.Create(FClientSize.Width * Scale, FClientSize.Height * Scale).Ceiling; - FWndClientSize := RoundWndClientSizeToMatchScale(FWndClientSize); - FClientSize := TSizeF.Create(FWndClientSize.Width / Scale, FWndClientSize.Height / Scale); - ApplyWndClientSizeToWnd; - - if Form <> nil then - Form.RecreateResources; -end; - -constructor TWinWindowHandle.Create(const AForm: TCommonCustomForm; const AWnd: HWND); - - function WndBoundsToBounds(const AWndBounds: TRect): TRectF; - begin - Result.TopLeft := MultiDisplayWin.PXToDP(AWndBounds.TopLeft); - Result.Width := FWndBounds.Width / Scale; - Result.Height := FWndBounds.Height / Scale; - end; - -begin - inherited Create; - FForm := AForm; - FWnd := AWnd; - GetWindowRect(Wnd, FWndBounds); - FBounds := WndBoundsToBounds(FWndBounds); - CalculateClientSizeFromWindow; -end; - -function FindWindow(Handle: HWND): TCommonCustomForm; -begin - Result := nil; - if (Handle <> 0) then - begin - if GlobalFindAtomW(PChar(WindowAtomString)) = WindowAtom then - Result := Pointer(GetProp(Handle, MakeIntAtom(WindowAtom))) - else - Result := nil; - end; -end; - -function FmxHandleToHWND(const FmxHandle: TWindowHandle): HWND; -begin - if FmxHandle <> nil then - Result := WindowHandleToPlatform(FmxHandle).Wnd - else - Result := 0; -end; - -function WindowHandleToPlatform(const AHandle: TWindowHandle): TWinWindowHandle; -begin - Result := TWinWindowHandle(AHandle); -end; - -function FormToHWND(Form: TCommonCustomForm): HWND; -begin - if (Form <> nil) and (Form.Handle is TWinWindowHandle) then - Result := TWinWindowHandle(Form.Handle).Wnd - else - Result := 0; -end; - -function ApplicationHWND: HWND; -begin - if PlatformWin <> nil then - Result := PlatformWin.GetApplicationHWND - else - Result := 0; -end; - -destructor TWinWindowHandle.Destroy; -begin - FreeBuffer; - FreeAndNil(FZOrderManager); - inherited; -end; - -procedure TWinWindowHandle.WMDpiChanged(var AMessage: TWMDpi); -var - NewScale: Single; -begin - NewScale := AMessage.YDpi / StandardDpi; - if not SameValue(FCurrentScale, NewScale, TEpsilon.Scale) then - begin - FCurrentScale := NewScale; - CalcNearestIntegerMultiple; - WndBounds := AMessage.ScaledRect^; - if Form <> nil then - begin - // DPI affects the canvas size and native menu metrics. - Form.RecreateResources; - Form.RecreateOsMenu; - end; - AMessage.Result := 0; - end; -end; - -procedure TWinWindowHandle.CreateBuffer(const Width, Height: Integer); -begin - FreeBuffer; - FBufferSize := TSize.Create(Width, Height); - FBitmapInfo.bmiHeader.biSize := SizeOf(TBitmapInfoHeader); - FBitmapInfo.bmiHeader.biPlanes := 1; - FBitmapInfo.bmiHeader.biBitCount := 32; - FBitmapInfo.bmiHeader.biCompression := BI_RGB; - FBitmapInfo.bmiHeader.biWidth := FBufferSize.Width; - if FBitmapInfo.bmiHeader.biWidth <= 0 then - FBitmapInfo.bmiHeader.biWidth := 1; - FBitmapInfo.bmiHeader.biHeight := -FBufferSize.Height; - if FBitmapInfo.bmiHeader.biHeight >= 0 then - FBitmapInfo.bmiHeader.biHeight := -1; - try - FBufferBitmap := CreateDIBSection(0, FBitmapInfo, DIB_RGB_COLORS, Pointer(FBufferBits), 0, 0); - if FBufferBits = nil then - RaiseLastOSError; - try - FBufferHandle := CreateCompatibleDC(0); - if FBufferHandle = 0 then - RaiseLastOSError; - try - if SelectObject(FBufferHandle, FBufferBitmap) = 0 then - RaiseLastOSError; - except - DeleteDC(FBufferHandle); - FBufferHandle := 0; - raise; - end; - except - DeleteObject(FBufferBitmap); - FBufferBits := nil; - raise; - end; - except - FBufferBitmap := 0; - raise; - end; -end; - -procedure TWinWindowHandle.ResizeBuffer(const Width, Height: Integer); -begin - if FBufferHandle = 0 then - CreateBuffer(Width, Height) - else if (FBitmapInfo.bmiHeader.biWidth <> Width) or (Abs(FBitmapInfo.bmiHeader.biHeight) <> Height) then - begin - FreeBuffer; - CreateBuffer(Width, Height) - end; -end; - -function TWinWindowHandle.RoundWndClientSizeToMatchScale(const AWndClientSize: TSize): TSize; - - function GetScale(const AValue: Integer): Single; - begin - if SameValue(Frac(AValue/ Scale), 0, TEpsilon.Scale) then - Result := Scale - else - Result := NearestIntegerMultiple; - end; - -var - LClientSize: TSizeF; - FinalScale: TPointF; -begin - FinalScale.X := GetScale(AWndClientSize.Width); - FinalScale.Y := GetScale(AWndClientSize.Height); - - LClientSize := TSizeF.Create(Round(AWndClientSize.Width / FinalScale.X), Round(AWndClientSize.Height / FinalScale.Y)); // dp - Result.Width := Round(LClientSize.Width * FinalScale.X); // px - Result.Height := Round(LClientSize.Height * FinalScale.Y); // px -end; - -function TWinWindowHandle.RoundWndSizeToMatchScale(const AWndSize: TSize): TSize; -var - WndClientSize: TSize; -begin - WndClientSize := AWndSize - WndBorderSize; // px - WndClientSize := RoundWndClientSizeToMatchScale(WndClientSize); // px - Result := WndClientSize + WndBorderSize; // px -end; - -function TWinWindowHandle.GetClientSize: TSizeF; -var - LRect: TRect; -begin - // We could return the FClientSize here. However, for the rendering process, it is important for us to know exactly - // the actual size. If the form is on HiDPI screen, we use rounding client size for avoiding rendering artefacts. - Winapi.Windows.GetClientRect(Wnd, LRect); - Result := TSizeF.Create(LRect.Width / Scale, LRect.Height / Scale); -end; - -function TWinWindowHandle.GetNearestIntegerMultiple: Integer; -begin - if FNearestIntegerMultiple = 0 then - CalcNearestIntegerMultiple; - Result := FNearestIntegerMultiple; -end; - -procedure TWinWindowHandle.ApplyWndClientSizeToWnd; -var - LWindowRect: TRect; - NewWindowSize: TSize; -begin - GetWindowRect(Wnd, LWindowRect); // px - NewWindowSize := FWndClientSize + WndBorderSize; // px - - if LWindowRect.Size <> NewWindowSize then - begin - LWindowRect.Size := NewWindowSize; - WndBounds := LWindowRect; - end; -end; - -procedure TWinWindowHandle.SetClientSize(const Value: TSizeF); -begin - if FClientSize <> Value then - begin - FClientSize := Value; - FWndClientSize := TSizeF.Create(Value.Width * Scale, Value.Height * Scale).Ceiling; - FWndClientSize := RoundWndClientSizeToMatchScale(FWndClientSize); - - ApplyWndClientSizeToWnd; - if Form <> nil then - TOpenForm(FForm).ResizeHandle; - end; -end; - -function TWinWindowHandle.GetWndBorderSize: TSize; -var - LClientRect, LWindowRect: TRect; -begin - GetClientRect(Wnd, LClientRect); // px - ClientToScreen(Wnd, LClientRect.TopLeft); - ClientToScreen(Wnd, LClientRect.BottomRight); - GetWindowRect(Wnd, LWindowRect); // px - Result := TSize.Create(LWindowRect.Width - LClientRect.Width, LWindowRect.Height - LClientRect.Height); // px; -end; - -function TWinWindowHandle.GetBounds: TRectF; -begin - Result := FBounds; -end; - -procedure TWinWindowHandle.SetBounds(const Value: TRectF); - - function CalculateNewWndBounds: TRect; - begin - Result.TopLeft := MultiDisplayWin.DpToPx(Value.TopLeft); - if FBounds.Width = Value.Width then - Result.Width := FWndBounds.Width - else - Result.Width := Trunc(Value.Width * Scale); - if FBounds.Height = Value.Height then - Result.Height := FWndBounds.Height - else - Result.Height := Trunc(Value.Height * Scale); - end; - -begin - if FBounds <> Value then - begin - FWndBounds := CalculateNewWndBounds; - FBounds := Value; - ApplyWndBoundsToWnd; - CalculateClientSizeFromWindow; - end; -end; - -function TWinWindowHandle.GetWndBounds: TRect; -begin - Result := FWndBounds; -end; - -procedure TWinWindowHandle.SetWndBounds(const Value: TRect); - - function CalculateNewBounds: TRectF; - begin - Result.TopLeft := MultiDisplayWin.PxToDp(Value.TopLeft); - if FWndBounds.Width = Value.Width then - Result.Width := FBounds.Width - else - Result.Width := Value.Width / Scale; - if FWndBounds.Height = Value.Height then - Result.Height := FBounds.Height - else - Result.Height := Value.Height / Scale; - end; - -begin - if FWndBounds <> Value then - begin - FBounds := CalculateNewBounds; - FWndBounds := Value; - ApplyWndBoundsToWnd; - CalculateClientSizeFromWindow; - end; -end; - -function TWinWindowHandle.GetWndClientSize: TSize; -begin - Result := FWndClientSize; -end; - -procedure TWinWindowHandle.FreeBuffer; -begin - if FBufferHandle <> 0 then - begin - DeleteDC(FBufferHandle); - FBufferHandle := 0; - end; - if FBufferBitmap <> 0 then - begin - DeleteObject(FBufferBitmap); - FBufferBitmap := 0; - end; -end; - -function TWinWindowHandle.GetScale: Single; -begin - if not SameValue(FForcedScale, 0, TEpsilon.Scale) then - Result := FForcedScale - else if not SameValue(FCurrentScale, 0, TEpsilon.Scale) then - Result := FCurrentScale - else - Result := GetWndScale(FWnd); - - FCurrentScale := Result; -end; - -function TWinWindowHandle.GetTransparency: Boolean; -begin - Result := (Form <> nil) and Form.Transparency; -end; - -function TWinWindowHandle.GetZOrderManager: TWinZOrderManager; -begin - if FZOrderManager = nil then - FZOrderManager := TWinZOrderManager.Create(Self); - Result := FZOrderManager; -end; - -procedure TWinWindowHandle.CalculateClientSizeFromWindow; -var - NewWndClientSize: TRect; - WasResized: Boolean; -begin - GetClientRect(Wnd, NewWndClientSize); // px - WasResized := FWndClientSize <> NewWndClientSize.Size; - FWndClientSize := NewWndClientSize.Size; - FClientSize := TSizeF.Create(FWndClientSize.Width / Scale, FWndClientSize.Height / Scale); - - if WasResized and FForm.IsHandleAllocated then - TOpenForm(FForm).ResizeHandle; -end; - -procedure TWinWindowHandle.UpdateLayer; -var - Blend: TBlendFunction; - Origin, Size, BitmapOrigin: TPoint; - ContextObject: IContextObject; -begin - if FBufferHandle <> 0 then - begin - { Copy from Context } - if Supports(Form, IContextObject, ContextObject) and (ContextObject.Context <> nil) then - ContextObject.Context.CopyToBits(FBufferBits, Form.Width * 4, Rect(0, 0, Form.Width, Form.Height)); - { Update } - Origin := WindowHandleToPlatform(Form.Handle).WndBounds.TopLeft; - Size := TPoint(FBufferSize); - Blend.BlendOp := AC_SRC_OVER; - Blend.AlphaFormat := $01; // AC_SRC_ALPHA; - Blend.BlendFlags := 0; - Blend.SourceConstantAlpha := $FF; - BitmapOrigin := Point(0, 0); - UpdateLayeredWindow(Wnd, 0, @Origin, @Size, FBufferHandle, @BitmapOrigin, $00000000, @Blend, ULW_ALPHA); - end; -end; - -function TWinWindowHandle.FormToWnd(const Rect: TRectF): TRectF; -begin - Result := TRectF.Create(Rect.Left * Scale, Rect.Top * Scale, Rect.Right * Scale, Rect.Bottom * Scale); -end; - -function TWinWindowHandle.WndToForm(const Rect: TRect): TRectF; -begin - Result := WndToForm(TRectF.Create(Rect)); -end; - -procedure TWinWindowHandle.WMWindowPosChanging(var AMessage: TWMWindowPosChanging); - - function IsResized(const AWindowPos: PWindowPos): Boolean; - begin - Result := (AWindowPos^.Flags and SWP_NOSIZE) <> SWP_NOSIZE; - end; - -var - WindowPos: PWindowPos; - AdjustedWndSize: TSize; -begin - // We need to round the window size based on the current screen scaling factor for avoiding issue - // with rounding in rendering process. - WindowPos := AMessage.WindowPos; - if IsResized(WindowPos) then - begin - AdjustedWndSize := TSize.Create(WindowPos^.cx, WindowPos^.cy); // px - AdjustedWndSize := RoundWndSizeToMatchScale(AdjustedWndSize); // px - WindowPos^.cx := AdjustedWndSize.Width; // px - WindowPos^.cy := AdjustedWndSize.Height; // px - end; -end; - -procedure TWinWindowHandle.WMWindowPosChanged(var AMessage: TWMWindowPosChanged); -var - WindowPos: PWindowPos; -begin - WindowPos := AMessage.WindowPos; - if (WindowPos^.Flags and SWP_NOSIZE = 0) or (WindowPos^.Flags and SWP_NOMOVE = 0) then - begin - WndBounds := TRect.Create(TPoint.Create(WindowPos^.x, WindowPos^.y), WindowPos^.cx, WindowPos^.cy); - if Form <> nil then - Form.SetBoundsF(Bounds); - end; -end; - -procedure TWinWindowHandle.WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); -var - LMinMaxInfo: PMinMaxInfo; - MinSize: TSize; - MaxSize: TSize; -begin - if csReading in Form.ComponentState then - Exit; - - LMinMaxInfo := Message.MinMaxInfo; - // Calculating constraints based on rounding ClientSize. - MinSize := TSize.Create(Trunc(Form.Constraints.MinWidth * Scale), Trunc(Form.Constraints.MinHeight * Scale)); - MinSize := RoundWndSizeToMatchScale(MinSize); - MaxSize := TSize.Create(Trunc(Form.Constraints.MaxWidth * Scale), Trunc(Form.Constraints.MaxHeight * Scale)); - MaxSize := RoundWndSizeToMatchScale(MaxSize); - - if Form.Constraints.MinWidth > 0 then - LMinMaxInfo^.ptMinTrackSize.x := MinSize.Width; - - if Form.Constraints.MinHeight > 0 then - LMinMaxInfo^.ptMinTrackSize.y := MinSize.Height; - - if Form.Constraints.MaxWidth > 0 then - LMinMaxInfo^.ptMaxTrackSize.x := MaxSize.Width; - - if Form.Constraints.MaxHeight > 0 then - LMinMaxInfo^.ptMaxTrackSize.y := MaxSize.Height; -end; - -procedure TWinWindowHandle.WMSize(var AMessage: TWMSize); -begin - CalculateClientSizeFromWindow; -end; - -function TWinWindowHandle.WndToForm(const Rect: TRectF): TRectF; -begin - Result := TRectF.Create(Rect.Left / Scale, Rect.Top / Scale, Rect.Right / Scale, Rect.Bottom / Scale); -end; - -function WMPaint(HWND: HWND; uMsg: UINT; wParam: wParam; LPARAM: LPARAM): LRESULT; stdcall; -var - I, rgnStatus: Integer; - Region: HRgn; - RegionSize: DWORD; - RegionData: PRgnData; - R: TRect; - LForm: TCommonCustomForm; - UpdateRects, InPaintUpdateRects: TUpdateRects; - PS: TPaintStruct; - Wnd: Winapi.Windows.HWND; - PaintControl: IPaintControl; -begin - LForm := FindWindow(HWND); - if LForm <> nil then - begin - Wnd := FormToHWND(LForm); - GetUpdateRect(Wnd, R, False); - Region := CreateRectRgn(R.Left, R.Top, R.Right, R.Bottom); - if Region <> 0 then - try - rgnStatus := GetUpdateRgn(Wnd, Region, False); - if rgnStatus in [SIMPLEREGION, COMPLEXREGION] then - begin - RegionSize := GetRegionData(Region, $FFFF, nil); - if RegionSize > 0 then - begin - GetMem(RegionData, RegionSize); - try - if RegionSize = GetRegionData(Region, RegionSize, RegionData) then - begin - SetLength(UpdateRects, RegionData.rdh.nCount); - for I := 0 to RegionData.rdh.nCount - 1 do - UpdateRects[I] := WindowHandleToPlatform(LForm.Handle).WndToForm(PRgnRects(@RegionData.buffer[0])[I]); - end; - finally - FreeMem(RegionData, RegionSize); - end; - if Supports(LForm, IPaintControl, PaintControl) then - begin - PaintControl.ContextHandle := BeginPaint(Wnd, PS); - try - if PlatformWin.FInPaintUpdateRects.TryGetValue(LForm.Handle, InPaintUpdateRects) and - (Length(InPaintUpdateRects) > 0) then - begin - // add update rects from FInPaintUpdateRects - for I := 0 to High(InPaintUpdateRects) do - begin - SetLength(UpdateRects, Length(UpdateRects) + 1); - UpdateRects[High(UpdateRects)] := WindowHandleToPlatform(LForm.Handle).WndToForm(InPaintUpdateRects[I]); - end; - end; - PaintControl.PaintRects(UpdateRects); - if PlatformWin.FInPaintUpdateRects.TryGetValue(LForm.Handle, InPaintUpdateRects) and - (Length(InPaintUpdateRects) > 0) then - begin - // paint second time - when Repaint called in painting - PlatformWin.FInPaintUpdateRects.TryGetValue(LForm.Handle, UpdateRects); - SetLength(InPaintUpdateRects, 0); - PlatformWin.FInPaintUpdateRects.AddOrSetValue(LForm.Handle, InPaintUpdateRects); - PaintControl.PaintRects(UpdateRects); - end; - PaintControl.ContextHandle := 0; - finally - EndPaint(Wnd, PS); - end; - end; - end; - end; - finally - DeleteObject(Region); - end; - Result := DefWindowProc(HWND, uMsg, wParam, LPARAM); - end - else - Result := DefWindowProc(HWND, uMsg, wParam, LPARAM); -end; - -// When the WM_GESTURENOTIFY message is received, use SetGestureConfig to specify the gestures to receive. -// This message should always be bubbled up using the DefWindowProc function. -procedure WMGestureNotify(const AForm: TCommonCustomForm; uMsg: UINT; AGestureNotify: LPARAM); -const - // Gestures - CPan: array [Boolean] of Cardinal = (0, GC_PAN); - CZoom: array [Boolean] of Cardinal = (0, GC_ZOOM); - CRotate: array [Boolean] of Cardinal = (0, GC_ROTATE); - CPressAndTap: array [Boolean] of Cardinal = (0, GC_PRESSANDTAP); - CTwoFingerTap: array [Boolean] of Cardinal = (0, GC_TWOFINGERTAP); -var - ScreenPointPx: TPoint; - ScreenPointDp: TPointF; - LControl: TComponent; - LConfigs: array of TGestureConfig; - LGestures: TInteractiveGestures; - LObj: IControl; - LGObj: IGestureControl; - LGestureNotify: ^GESTURENOTIFYSTRUCT; -begin - LGestureNotify := Pointer(AGestureNotify); - - // Get the location of the gesture. - ScreenPointPx := SmallPointToPoint(LGestureNotify.ptsLocation); // px - ScreenPointDp := MultiDisplayWin.PxToDp(ScreenPointPx); // dp - - // Find the object that the gesture belongs to. - LObj := AForm.ObjectAtPoint(ScreenPointDp); - if LObj = nil then - LControl := AForm - else - LControl := LObj.GetObject; - - if Supports(LControl, IGestureControl, LGObj) then - LGestures := LGObj.GetListOfInteractiveGestures; - - SetLength(LConfigs, 5); - ZeroMemory(@LConfigs[0], SizeOf(GestureConfig) * 5); - - // Pan gesture & options - LConfigs[0].dwID := GID_PAN; - LConfigs[0].dwWant := CPan[TInteractiveGesture.Pan in LGestures] or GC_PAN_WITH_SINGLE_FINGER_VERTICALLY or - GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY or GC_PAN_WITH_INERTIA; - LConfigs[0].dwBlock := CPan[not (TInteractiveGesture.Pan in LGestures)] or GC_PAN_WITH_GUTTER; - - // Zoom gesture - LConfigs[1].dwID := GID_ZOOM; - LConfigs[1].dwWant := CZoom[TInteractiveGesture.Zoom in LGestures]; - LConfigs[1].dwBlock := CZoom[not (TInteractiveGesture.Zoom in LGestures)]; - - // Rotate gesture - LConfigs[2].dwID := GID_ROTATE; - LConfigs[2].dwWant := CRotate[TInteractiveGesture.Rotate in LGestures]; - LConfigs[2].dwBlock := CRotate[not (TInteractiveGesture.Rotate in LGestures)]; - - // TwoFingerTap gesture - LConfigs[3].dwID := GID_TWOFINGERTAP; - LConfigs[3].dwWant := CTwoFingerTap[TInteractiveGesture.TwoFingerTap in LGestures]; - LConfigs[3].dwBlock := CTwoFingerTap[not (TInteractiveGesture.TwoFingerTap in LGestures)]; - - // PressAnTap gesture - LConfigs[4].dwID := GID_PRESSANDTAP; - LConfigs[4].dwWant := CPressAndTap[TInteractiveGesture.PressAndTap in LGestures]; - LConfigs[4].dwBlock := CPressAndTap[not (TInteractiveGesture.PressAndTap in LGestures)]; - - SetGestureConfig(FormToHWND(AForm), 0, Length(LConfigs), @LConfigs[0], SizeOf(TGestureConfig)); -end; - -function WMGesture(const AForm: TCommonCustomForm; uMsg: UINT; AParam: wParam; AGestureInfo: LPARAM): LRESULT; - - function PxToDp(const APX: Integer): Single; overload; - begin - Result := APX / AForm.Handle.Scale; - end; - - function PxToDp(const APhysicalPoint: TPointF): TPointF; overload; - begin - Result := APhysicalPoint / AForm.Handle.Scale; - end; - -var - ScreenPointPx: TPoint; - ScreenPointDp: TPointF; - LControl: TComponent; - LGestureInfo: GestureInfo; - EventInfo: TGestureEventInfo; - Obj: IControl; - LGObj: IGestureControl; -begin - Result := 0; - ZeroMemory(@LGestureInfo, SizeOf(LGestureInfo)); - LGestureInfo.cbSize := SizeOf(LGestureInfo); - if GetGestureInfo(AGestureInfo, LGestureInfo) then - try - ZeroMemory(@EventInfo, SizeOf(EventInfo)); - EventInfo.GestureID := LGestureInfo.dwID + igiFirst; - - // Get the control - ScreenPointPx := TPoint.Create(LGestureInfo.ptsLocation.X, LGestureInfo.ptsLocation.Y); // px - ScreenPointDp := MultiDisplayWin.PxToDp(ScreenPointPx); // dp - Obj := AForm.ObjectAtPoint(ScreenPointDp); - if Obj = nil then - LControl := AForm - else - LControl := Obj.GetObject; - - if EventInfo.GestureID = igiBegin then - CapturedGestureControl := LControl; - - // Don't pass GID_BEGIN and GID_END to the control - if (EventInfo.GestureID <> igiBegin) and (EventInfo.GestureID <> igiEnd) then - begin - // Set EventInfo fields from LGestureInfo - EventInfo.Location := AForm.ScreenToClient(ScreenPointDp); - EventInfo.Flags := []; - if LGestureInfo.dwFlags and GF_BEGIN = GF_BEGIN then - Include(EventInfo.Flags, TInteractiveGestureFlag.gfBegin); - if LGestureInfo.dwFlags and GF_INERTIA = GF_INERTIA then - Include(EventInfo.Flags, TInteractiveGestureFlag.gfInertia); - if LGestureInfo.dwFlags and GF_END = GF_END then - Include(EventInfo.Flags, TInteractiveGestureFlag.gfEnd); - case EventInfo.GestureID of - igiPan: - begin - EventInfo.Distance := Trunc(PxToDp(Cardinal(LGestureInfo.ullArguments))); - EventInfo.InertiaVector := PxToDp( - TPointF(SmallPointToPoint(InertiaVectorFromArgument(LGestureInfo.ullArguments)))); - end; - igiZoom, igiTwoFingerTap: - EventInfo.Distance := Cardinal(LGestureInfo.ullArguments); - igiPressAndTap: - begin - // ullArguments is distance/offset. Add to Location to make TapLocation - ScreenPointDp := PxToDp(TPointF(SmallPointToPoint(TSmallPoint(Cardinal(LGestureInfo.ullArguments))))); - // EventInfo.TapLocation := AForm.ScreenToClient(TPointF(ScreenPointDp.X + LGestureInfo.ptsLocation.X, ScreenPointDp.Y + LGestureInfo.ptsLocation.Y)); - end; - igiRotate: - EventInfo.Angle := RotateAngleFromArgument(LGestureInfo.ullArguments); - end; - // send message to the control - if Supports(CapturedGestureControl, IGestureControl, LGObj) then - LGObj.CMGesture(EventInfo); - end - else - Result := DefWindowProc(FormToHWND(AForm), uMsg, AParam, AGestureInfo); - - if EventInfo.GestureID = igiEnd then - CapturedGestureControl := nil; - finally - CloseGestureInfoHandle(AGestureInfo); - end; -end; - -procedure InitializeMultiTouch(const AForm: TCommonCustomForm); -begin - if PlatformWin.FMultiTouchManager = nil then - PlatformWin.FMultiTouchManager := TMultiTouchManagerWin.Create(AForm) - else if PlatformWin.FMultiTouchManager.Parent <> AForm then - PlatformWin.FMultiTouchManager.Parent := AForm; -end; - -function WMTouch(const AForm: TCommonCustomForm; uMsg: UINT; TouchInputCount: wParam; TouchInputInfo: LPARAM): LRESULT; -var - TouchCount: Integer; - Inputs: array of TTouchInput; - Input: TTouchInput; - I: Integer; - Touches: TTouches; - Action: TTouchAction; - Point: TPointF; - Control: IControl; - MidPoint: TPointF; - FormScale: Single; -begin - Result := 0; - TouchCount := LoWord(Cardinal(TouchInputCount)); - SetLength(Inputs, TouchCount); - Action := TTouchAction.None; - FormScale := AForm.Handle.Scale; - - if GetTouchInputInfo(TouchInputInfo, TouchCount, @Inputs[0], SizeOf(TTouchInput)) then - try - SetLength(Touches, TouchCount); - for I := 0 to TouchCount - 1 do - begin - Input := Inputs[I]; - - if (Input.dwFlags and TOUCHEVENTF_DOWN) <> 0 then - Action := TTouchAction.Down - else if (Input.dwFlags and TOUCHEVENTF_UP) <> 0 then - Action := TTouchAction.Up - else if (Input.dwFlags and TOUCHEVENTF_MOVE) <> 0 then - Action := TTouchAction.Move; - - // TOUCHINFO point coordinates is in 1/100 of a pixel - Point := TPointF.Create(Input.X / 100, Input.Y / 100); // px - Point := Point / FormScale; //dp - - Touches[I].Location := AForm.ScreenToClient(Point); - end; - - if Length(Touches) = 1 then - Control := AForm.ObjectAtPoint(Point) - else if Length(Touches) = 2 then - begin - MidPoint := Touches[0].Location.MidPoint(Touches[1].Location); // dp - Control := AForm.ObjectAtPoint(AForm.ClientToScreen(MidPoint)); - end - else - Control := nil; - - InitializeMultiTouch(AForm); - PlatformWin.FMultiTouchManager.SetEnabledGestures(PlatformWin.FEnabledInteractiveGestures); - PlatformWin.FMultiTouchManager.HandleTouches(Touches, Action, Control); - Result := DefWindowProc(FormToHWND(AForm), uMsg, TouchInputCount, TouchInputInfo); - finally - CloseTouchInputHandle(TouchInputInfo); - end; -end; - -procedure HandleMouseGestures(const AForm: TCommonCustomForm; uMsg: UINT; const AScreenPoint: TPointF); -var - GestureObj: IGestureControl; - Control: TComponent; - Obj: IControl; - Action: TTouchAction; - ControlLocalPoint: TPointF; -begin - if not TWinTouchGestureEngine.Supported(AForm) then - Exit; - - if not ((uMsg <> WM_LBUTTONDOWN) and (PlatformWin.FMultiTouchManager = nil)) then - begin - Obj := AForm.ObjectAtPoint(AScreenPoint); - if Obj = nil then - begin - Control := AForm; - ControlLocalPoint := AForm.ScreenToClient(AScreenPoint); - end - else - begin - Control := Obj.GetObject; - ControlLocalPoint := Obj.ScreenToLocal(AScreenPoint); - end; - if Supports(Control, IGestureControl, GestureObj) then - begin - Control := GestureObj.GetFirstControlWithGestureEngine; - if Control <> nil then - begin - case uMsg of - WM_MOUSEMOVE: - Action := TTouchAction.Move; - WM_LBUTTONDOWN: - Action := TTouchAction.Down; - WM_LBUTTONUP: - Action := TTouchAction.Up; - else - Action := TTouchAction.None; - end; - - InitializeMultiTouch(AForm); - PlatformWin.FMultiTouchManager.HandleMouseGestures(ControlLocalPoint, Action, Obj); - end; - end; - end; -end; - -var - LastKeyIsDeadKey: Boolean = False; - LastMousePos: TPoint; - -const - ImpossibleMousePosition: TPoint = (X: Low(FixedInt); Y: Low(FixedInt)); - -function WndProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; -var - UpdateRects: array of TRectF; - LForm: TCommonCustomForm; - Wnd: Winapi.Windows.HWND; - WindowBorder: TWindowBorderWin; - - procedure ProcessUpdateMessages; - var - Msg: TMsg; - begin - SetLength(UpdateRects, 1); - UpdateRects[0] := TRectF.Create(TSmallPoint(Cardinal(wParam)).X, TSmallPoint(Cardinal(wParam)).Y, - TSmallPoint(Cardinal(lParam)).X, TSmallPoint(Cardinal(lParam)).Y); - while PeekMessage(Msg, hwnd, WM_ADDUPDATERECT, WM_ADDUPDATERECT, PM_REMOVE) do - begin - if Msg.Message = WM_QUIT then - begin - { Repost WM_QUIT messages } - PostQuitMessage(Msg.wParam); - Break; - end; - SetLength(UpdateRects, Length(UpdateRects) + 1); - UpdateRects[High(UpdateRects)] := RectF(TSmallPoint(Cardinal(Msg.wParam)).X, TSmallPoint(Cardinal(Msg.wParam)).Y, - TSmallPoint(Cardinal(Msg.lParam)).X, TSmallPoint(Cardinal(Msg.lParam)).Y); - end; - end; - - procedure PrepareClosePopups; - begin - if (Screen <> nil) and (LForm <> nil) and not WindowHandleToPlatform(LForm.Handle).FDisableDeactivate then - begin - if LForm.FormStyle = TFormStyle.Popup then - Screen.PrepareClosePopups(LForm) - else - Screen.PrepareClosePopups(nil); - end; - end; - - procedure ClosePopupList; - begin - if (Screen <> nil) and (LForm <> nil) and not WindowHandleToPlatform(LForm.Handle).FDisableDeactivate then - Screen.ClosePopupForms; - end; - - procedure InitialActionsOfPopups; - begin - case uMsg of - WM_NCLBUTTONDOWN, WM_NCRBUTTONDOWN, WM_NCMBUTTONDOWN, WM_NCLBUTTONDBLCLK, WM_NCRBUTTONDBLCLK, WM_NCMBUTTONDBLCLK: - begin - PrepareClosePopups; - ClosePopupList; - end; - WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MBUTTONDOWN, WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK, WM_MBUTTONDBLCLK: - PrepareClosePopups; - end; - end; - - procedure FinalActionsOfPopups; - begin - case uMsg of - WM_LBUTTONUP, WM_RBUTTONUP, WM_MBUTTONUP, WM_DESTROY: - begin - LForm := FindWindow(hwnd); - ClosePopupList; - end; - end; - end; - - function DispatchMouseWheelToPopups: Boolean; - var - I: Integer; - Handled: Boolean; - begin - Handled := False; - if Screen <> nil then - for I := Screen.PopupFormCount - 1 downto 0 do - if Screen.PopupForms[I].Visible then - begin - Screen.PopupForms[I].MouseWheel(KeysToShiftState(wParam), TSmallPoint(Cardinal(wParam)).Y, Handled); - if Handled then - Break; - end; - Result := Handled; - end; - - procedure CurrentChar(Msg: tagMsg; var Key: Word; var Ch: WideChar; var Shift: TShiftState); - begin - Key := wParam; - Ch := WideChar(Msg.wParam); - Shift := KeyDataToShiftState(lParam); - if (Ch >= ' ') then - begin - if ((Shift * [ssAlt, ssCtrl]) = [ssAlt, ssCtrl]) then - begin - // AltGr + Char (in German keyboard) - Shift := Shift - [ssAlt, ssCtrl]; - end; - if (([ssAlt, ssCtrl, ssCommand] * Shift) = []) then - Key := 0; - end; - if ((([ssAlt, ssCtrl, ssCommand] * Shift) <> []) or (Ch < ' ')) and (Key > 0) then - Ch := #0; - end; - - function FormPxToDp(const AForm: TCommonCustomForm; const APoint: TPoint): TPointF; - var - LScale: Single; - begin - LScale := AForm.Handle.Scale; - Result := (TPointF(APoint) / LScale).Round; - end; - -const - FlagZOrder: UINT = SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE; -var - P: TPoint; - H: Boolean; - Key: Word; - Ch: WideChar; - tme: TTRACKMOUSEEVENT; - Message: TMessage; - Shift: TShiftState; - Placement: TWindowPlacement; - Msg: tagMsg; - PaintControl: IPaintControl; - Obj: IControl; - MenuDisplayed: Boolean; - OldWindowState: TWindowState; - CharMsg, DeadCharMsg: UInt32; - WindowPoint: TPoint; - FormPoint: TPointF; - ScreenPoint: TPointF; -begin - Result := 0; - LForm := FindWindow(hwnd); - //! Launcher Fix - if LForm <> nil then - begin - TMsg.Msg := uMsg; - TMsg.WParam := wParam; - TMsg.LParam := lParam; - TMsg.Result := 0; - - LForm.Dispatch(TMsg); - - uMsg := TMsg.Msg; - wParam := TMsg.WParam; - lParam := TMsg.LParam; - end; - - Message.Msg := uMsg; - Message.WParam := wParam; - Message.LParam := lParam; - Message.Result := 0; - // Check to see if this is a design message - if (LForm <> nil) and (LForm.Designer <> nil) and LForm.Designer.IsDesignMsg(LForm, Message) then - Exit; - - if LForm <> nil then - begin - Wnd := FormToHWND(LForm); - try - InitialActionsOfPopups; - try - case uMsg of - WM_NCHITTEST, - WM_NCACTIVATE, - WM_NCADDUPDATERECT, - WM_NCMOUSEMOVE, - WM_NCLBUTTONDOWN, - WM_NCLBUTTONUP, - WM_NCCALCSIZE, - WM_NCPAINT, - WM_NCMOUSELEAVE: - Result := WMNCMessages(LForm, uMsg, wParam, lParam); - $B000 + 74: // CM_DESTROYHANDLE - begin - if (LForm.ClassName = 'TFormContainerForm') and (wParam = 1) then - begin - // IDE parent recreate - SetParent(Wnd, GetDesktopWindow); - SetWindowPos(Wnd, 0, $A000, $A000, 10, 10, SWP_NOSIZE or SWP_NOZORDER); - end; - end; - WM_DESTROY: - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - WM_ACTIVATE: - begin - if not ((TFmxFormState.Recreating in LForm.FormState) or (LForm.FormStyle = TFormStyle.Popup) or - WindowHandleToPlatform(LForm.Handle).FDisableDeactivate) then - begin - if LoWord(wParam) <> 0 then - begin - if HiWord(wParam) = 0 then - LForm.Activate; - // If the window is minimized, then do nothing. - end - else - begin - PrepareClosePopups; - LForm.Deactivate; - ClosePopupList; - end; - end; - Result := 0; - end; - WM_MOUSEACTIVATE: - begin - if not (TFmxFormState.Recreating in LForm.FormState) then - begin - if LForm.FormStyle = TFormStyle.Popup then - Result := MA_NOACTIVATE - else - // Default result if nothing happens - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - end; - WM_ERASEBKGND: - begin - Result := 1; - end; - WM_PAINT: - begin - Result := WMPaint(hwnd, uMsg, wParam, lParam); - end; - WM_DPICHANGED: - begin - MultiDisplayWin.UpdateDisplayInformation; - LForm.Handle.Dispatch(Message); - Result := 0; - end; - WM_DISPLAYCHANGE: - begin - MultiDisplayWin.UpdateDisplayInformation; - end; - WM_ADDUPDATERECT: - begin - ProcessUpdateMessages; - if Supports(LForm, IPaintControl, PaintControl) then - PaintControl.PaintRects(UpdateRects); - WindowHandleToPlatform(LForm.Handle).UpdateLayer; - end; - WM_SIZE: - begin - LForm.Handle.Dispatch(Message); - Result := 0; - end; - WM_WINDOWPOSCHANGING: - begin - if [csLoading, csDesigning] * LForm.ComponentState = [csLoading] then - begin - if (LForm.Position in [TFormPosition.Default, TFormPosition.DefaultPosOnly]) and - (LForm.WindowState <> TWindowState.wsMaximized) then - begin - PWindowPos(lParam)^.Flags := PWindowPos(lParam)^.Flags or SWP_NOMOVE; - end; - if (LForm.Position in [TFormPosition.Default, TFormPosition.DefaultSizeOnly]) and - (LForm.BorderStyle in [TFmxFormBorderStyle.Sizeable, TFmxFormBorderStyle.SizeToolWin]) then - begin - PWindowPos(lParam)^.Flags := PWindowPos(lParam)^.Flags or SWP_NOSIZE; - end; - end; - if not ((PWindowPos(lParam)^.Flags and FlagZOrder) = FlagZOrder) then - begin - if (Screen <> nil) and (LForm <> nil) and (not WindowHandleToPlatform(LForm.Handle).FDisableDeactivate) then - if (LForm.FormStyle = TFormStyle.Popup) then - ClosePopupList; - end; - LForm.Handle.Dispatch(Message); - if (TFmxFormState.InDesigner in LForm.FormState) and (TFmxFormState.WasNotShown in LForm.FormState) then - TOpenForm(LForm).ShowInDesigner; - end; - WM_WINDOWPOSCHANGED: - begin - Placement.Length := SizeOf(TWindowPlacement); - GetWindowPlacement(hwnd, Placement); - if (Application.MainForm <> nil) and (LForm = Application.MainForm) and (Placement.showCmd = SW_SHOWMINIMIZED) then - begin - PlatformWin.MinimizeApp; - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end - else - begin - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - LForm.Handle.Dispatch(Message); - { update state } - PlatformWin.FDiableUpdateState := True; - try - OldWindowState := LForm.WindowState; - Placement.Length := SizeOf(TWindowPlacement); - GetWindowPlacement(hwnd, Placement); - case Placement.showCmd of - SW_SHOWMINIMIZED: - LForm.WindowState := TWindowState.wsMinimized; - SW_SHOWMAXIMIZED: - LForm.WindowState := TWindowState.wsMaximized; - else - if csDesigning in LForm.ComponentState then - begin - { for using Metro-style interface in designer we set Maximized but we can change window size } - if LForm.WindowState <> TWindowState.wsMaximized then - LForm.WindowState := TWindowState.wsNormal; - end - else - begin - if not (TFmxFormState.WasNotShown in LForm.FormState) then - LForm.WindowState := TWindowState.wsNormal; - end; - end; - if OldWindowState <> LForm.WindowState then - begin - PostMessage(hwnd, WM_CLOSEMENU, 0, 0); - PrepareClosePopups; - ClosePopupList; - end; - finally - PlatformWin.FDiableUpdateState := False; - end; - WMNCMessages(LForm, uMsg, wParam, lParam); - end; - end; - WM_GETMINMAXINFO: - LForm.Handle.Dispatch(Message); - WM_CLOSE: - LForm.Close; - WM_LBUTTONDOWN: - begin - PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := True; - LastMousePos := ImpossibleMousePosition; - WindowPoint := TWMLButtonDown(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - ScreenPoint := LForm.ClientToScreen(FormPoint); // dp - LForm.MouseDown(TMouseButton.mbLeft, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); - HandleMouseGestures(LForm, uMsg, ScreenPoint); - end; - WM_LBUTTONDBLCLK: - begin - PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := True; - LastMousePos := ImpossibleMousePosition; - WindowPoint := TWMLButtonDblClk(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // Form point in dp - LForm.MouseDown(TMouseButton.mbLeft, MouseToShiftState(wParam) + [ssDouble], FormPoint.X, FormPoint.Y); - end; - WM_CANCELMODE: - begin - // If the user shows dialog from mouse down event, WinApi rejects MouseUp event from queue. In this case, - // Form.Captured control are not reset and we cannot complete click event correctly. As result button stay - // pressed. - // When modal dialog is appeared, WinApi sends WM_CANCELMODE message for rejecting other related events. - // We save this flag for future emulation MouseUp event, if it's required. - - // It's not Ok for FMX, because FMX depends on normal sequence of mouse events Down -> Up, so - // Form waits final MouseUp event. - // If we receive WM_CANCELMODE message while MouseDown is processed, we should emulate MouseUp event. - if PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed then - begin - GetCursorPos(P); - SendMessage(hwnd, WM_LBUTTONUP, 0, PointToLParam(P)); - end; - PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := False; - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_LBUTTONUP: - begin - PlatformWin.FormInfo[LForm].WasLeftMouseButtonPressed := False; - WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); - WindowPoint := TWMLButtonUp(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - ScreenPoint := LForm.ClientToScreen(FormPoint); // dp - if LForm.Border.IsSupported and WindowBorder.NCClick then - Result := WMNCMessages(LForm, uMsg, wParam, lParam) - else - begin - LastMousePos := ImpossibleMousePosition; - LForm.MouseUp(TMouseButton.mbLeft, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); - end; - HandleMouseGestures(LForm, uMsg, ScreenPoint); - end; - WM_RBUTTONDOWN, WM_RBUTTONDBLCLK: - begin - LastMousePos := ImpossibleMousePosition; - WindowPoint := TWMMouse(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - ScreenPoint := LForm.ClientToScreen(FormPoint); // dp - Obj := LForm.ObjectAtPoint(ScreenPoint); - if (Obj <> nil) and (Obj.GetObject <> nil) and not (csDesigning in Obj.GetObject.ComponentState) then - begin - Obj.SetFocus; - MenuDisplayed := Obj.ShowContextMenu(ScreenPoint); - end - else - MenuDisplayed := False; - if not MenuDisplayed then - begin - if uMsg = WM_RBUTTONDBLCLK then - LForm.MouseDown(TMouseButton.mbRight, MouseToShiftState(wParam) + [ssDouble], FormPoint.X, FormPoint.Y); - LForm.MouseDown(TMouseButton.mbRight, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); - end; - end; - WM_RBUTTONUP: - begin - LastMousePos := ImpossibleMousePosition; - WindowPoint := TWMRButtonUp(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - LForm.MouseUp(TMouseButton.mbRight, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); - end; - WM_MBUTTONDOWN: - begin - LastMousePos := ImpossibleMousePosition; - WindowPoint := TWMMButtonDown(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - LForm.MouseDown(TMouseButton.mbMiddle, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); - end; - WM_MBUTTONUP: - begin - LastMousePos := ImpossibleMousePosition; - WindowPoint := TWMMButtonUp(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - LForm.MouseUp(TMouseButton.mbMiddle, MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); - end; - WM_MBUTTONDBLCLK: - begin - LastMousePos := ImpossibleMousePosition; - WindowPoint := TWMMButtonDblClk(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - LForm.MouseDown(TMouseButton.mbMiddle, MouseToShiftState(wParam) + [ssDouble], FormPoint.X, FormPoint.Y); - end; - WM_MENUSELECT, - WM_INITMENUPOPUP: - MenuServiceWin.Dispatch(Message); - WM_MOUSEMOVE: - begin - WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); - - if LForm.Border.IsSupported then - begin - if WindowBorder.NCClick then - Result := WMNCMessages(LForm, uMsg, wParam, lParam) - else - begin - WindowBorder.MouseLeave; - GetCursorPos(P); - if P <> LastMousePos then - begin - LastMousePos := P; - WindowPoint := TWMMouseMove(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - LForm.MouseMove(MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); - end; - end; - end - else - begin - GetCursorPos(P); - if P <> LastMousePos then - begin - LastMousePos := P; - WindowPoint := TWMMouseMove(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - LForm.MouseMove(MouseToShiftState(wParam), FormPoint.X, FormPoint.Y); - end; - end; - tme.cbSize := SizeOf(tme); - tme.hwndTrack := hwnd; - tme.dwFlags := TME_LEAVE; - tme.dwHoverTime := HOVER_DEFAULT; - TrackMouseEvent(tme); - - WindowPoint := TWMMouseMove(Message).Pos; // Form point in px - FormPoint := FormPxToDp(LForm, WindowPoint); // dp - ScreenPoint := LForm.ClientToScreen(FormPoint); // dp - HandleMouseGestures(LForm, uMsg, ScreenPoint); - end; - WM_MOUSELEAVE: - begin - WindowBorder := TWindowBorderWin(LForm.Border.WindowBorder); - if LForm.Border.IsSupported and WindowBorder.NCClick then - Result := WMNCMessages(LForm, uMsg, wParam, lParam) - else - LForm.MouseLeave; - end; - WM_MOUSEWHEEL: - begin - H := DispatchMouseWheelToPopups; - if not H then - LForm.MouseWheel(KeysToShiftState(wParam), TSmallPoint(Cardinal(wParam)).Y, H); - Result := Integer(H = True); - end; - WM_GETDLGCODE: - begin - Result := DLGC_WANTTAB or dlgc_WantArrows or DLGC_WANTCHARS; - end; - WM_CHAR: - begin - Ch := WideChar(wParam); - Key := 0; - LForm.KeyDown(Key, Ch, KeyDataToShiftState(lParam)); - LForm.KeyUp(Key, Ch, KeyDataToShiftState(lParam)); - Result := 0; - end; - WM_KEYDOWN, - WM_SYSKEYDOWN: - begin - // Check if this key translates to a WM_CHAR/WM_SYSCHAR message - // and if it does, pass KeyDown with character code - // and clear the original WM_CHAR from the queue - Msg.hwnd := hwnd; - Msg.Message := uMsg; - Msg.wParam := wParam; - Msg.lParam := lParam; - - Result := 0; - - if uMsg = WM_SYSKEYDOWN then - begin - CharMsg := WM_SYSCHAR; - DeadCharMsg := WM_SYSDEADCHAR; - end - else - begin - CharMsg := WM_CHAR; - DeadCharMsg := WM_DEADCHAR; - end; - - LastKeyIsDeadKey := False; - if PeekMessage(Msg, hwnd, DeadCharMsg, DeadCharMsg, PM_NOREMOVE + PM_NOYIELD) then - LastKeyIsDeadKey := True - else if TranslateMessage(Msg) then - begin - if PeekMessage(Msg, hwnd, CharMsg, CharMsg, PM_REMOVE) then - begin - CurrentChar(Msg, Key, Ch, Shift); - // clear duplicate WM_CHAR - if CharMsg = WM_CHAR then - PeekMessage(Msg, hwnd, CharMsg, CharMsg, PM_REMOVE); - LForm.KeyDown(Key, Ch, Shift); - end - else - begin - Key := wParam; - Ch := #0; - LForm.KeyDown(Key, Ch, KeyDataToShiftState(lParam)); - end; - end; - - // always let the system handle system shortcuts - if uMsg = WM_SYSKEYDOWN then - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_DEADCHAR: - begin - PeekMessage(Msg, hwnd, WM_DEADCHAR, WM_DEADCHAR, PM_REMOVE); - PeekMessage(Msg, hwnd, WM_CHAR, WM_CHAR, PM_REMOVE); - end; - WM_KEYUP: - begin - Ch := #0; - Key := wParam; - Shift := KeyDataToShiftState(lParam); - if LastKeyIsDeadKey then - begin - Result := 0; - end - else - begin - Msg.hwnd := hwnd; - Msg.Message := WM_KEYDOWN; - Msg.wParam := wParam; - Msg.lParam := Msg.lParam and $7FFFFFFF; - if TranslateMessage(Msg) then - if PeekMessage(Msg, hwnd, WM_CHAR, WM_CHAR, PM_REMOVE) then - begin - CurrentChar(Msg, Key, Ch, Shift); - end; - LForm.KeyUp(Key, Ch, Shift); - Result := 0; - end - end; - WM_SYSKEYUP: - begin - if (wParam = VK_MENU) or (wParam = VK_F10) then - begin - LForm.EnterMenuLoop; - Result := 0; - end - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_RELEASEFORM: - begin - LForm.Free; - end; - { IME } - WM_INPUTLANGCHANGE: - begin - // Result := SetIMECompositionWndPosition(LForm, uMsg, wParam, lParam); - // OnInputLangChange(); - end; - WM_IME_SETCONTEXT, - WM_IME_STARTCOMPOSITION, - WM_IME_COMPOSITION, - WM_IME_NOTIFY, - WM_IME_ENDCOMPOSITION: - begin - PlatformWin.ImmManager[LForm].Dispatch(Message); - Result := Message.Result; - end; - WM_COMMAND: - begin - MenuServiceWin.Dispatch(Message); - Result := Message.Result; - end; - WM_GESTURENOTIFY: - begin - WMGestureNotify(LForm, uMsg, lParam); - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_GESTURE: - begin - Result := WMGesture(LForm, uMsg, wParam, lParam); - end; - WM_TOUCH: - begin - Result := WMTouch(LForm, uMsg, wParam, lParam); - end; - WM_CTLCOLORMSGBOX..WM_CTLCOLORSTATIC: - Result := SendMessage(lParam, CN_BASE + uMsg, wParam, lParam); - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - // Default result if nothing happens - end; - finally - FinalActionsOfPopups; - end; - except - on E: Exception do - Application.HandleException(E); - end; - end - else { if LForm = nil } - begin - if (PlatformWin <> nil) and (hwnd = PlatformWin.FApplicationHWND) then - begin - case uMsg of - WM_SETTINGCHANGE: - MultiDisplayWin.UpdateDisplayInformation; - WM_SYSCOMMAND: - begin - case TWMSysCommand(Message).CmdType and $FFF0 of - SC_MINIMIZE: - begin - PlatformWin.MinimizeApp; - Result := 0; - end; - SC_RESTORE: - begin - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - PlatformWin.RestoreApp; - end - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - end; - WM_CLOSE: - begin - if Application.MainForm <> nil then - begin - try - if Screen <> nil then - Screen.ActiveForm := nil; - Application.MainForm.Close; - except - on E: Exception do - Application.HandleException(E); - end; - Exit; - end; - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - WM_DESTROY: - Application.Terminate; - WM_ACTIVATEAPP: - begin - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - if BOOL(wParam) then - PlatformWin.RestoreApp; - end; - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - end - else - Result := DefWindowProc(hwnd, uMsg, wParam, lParam); - end; - // Default result if nothing happens -end; - -var - FMAppClass: TWndClass = ( - style: 0; - lpfnWndProc: @WndProc; - cbClsExtra: 0; - cbWndExtra: 0; - hInstance: 0; - hIcon: 0; - hCursor: 0; - hbrBackground: 0; - lpszMenuName: nil; - lpszClassName: 'TFMAppClass'); - -function TPlatformWin.CreateAppHandle: HWND; -var - TempClass: TWndClass; - P: PChar; - ClassRegistered: Boolean; - ModuleName: array [0 .. 255] of Char; -begin - GetModuleFileName(MainInstance, ModuleName, Length(ModuleName)); - P := AnsiStrRScan(ModuleName, '\'); - if P <> nil then - StrCopy(ModuleName, P + 1); - P := AnsiStrScan(ModuleName, '.'); - if P <> nil then - P^ := #0; - CharLower(CharNext(ModuleName)); - FDefaultTitle := ModuleName; - if Application <> nil then - FTitle := Application.Title - else - FTitle := FDefaultTitle; - FMAppClass.hInstance := hInstance; - ClassRegistered := GetClassInfo(hInstance, FMAppClass.lpszClassName, TempClass); - FMAppClass.hIcon := LoadIconW(MainInstance, PChar('MAINICON')); - if not ClassRegistered or (TempClass.lpfnWndProc <> @WndProc) then - begin - if ClassRegistered then - Winapi.Windows.UnregisterClass(FMAppClass.lpszClassName, hInstance); - Winapi.Windows.RegisterClass(FMAppClass); - end; - Result := CreateWindowEx(WS_EX_WINDOWEDGE or WS_EX_APPWINDOW, FMAppClass.lpszClassName, PChar(FTitle), - WS_POPUP or WS_GROUP, 0, 0, 0, 0, GetDesktopWindow, 0, hInstance, nil); - Winapi.Windows.ShowWindow(Result, SW_SHOWNORMAL); -end; - -function TPlatformWin.GetApplicationHWND: HWND; -begin - UpdateApplicationHwnd; - Result := FApplicationHWND; -end; - -function TPlatformWin.CreateWindow(const AForm: TCommonCustomForm): TWindowHandle; -var - DesignerForm: IDesignerForm; - IsDesignerForm: Boolean; - WindowClass: TWndClass; - LDropTarget: TWinDropTarget; - Style, ExStyle: DWORD; - Wnd: HWND; - ParentWnd: HWND; - WndClassName: string; - - procedure DefineWindowStyle(const AForm: TCommonCustomForm; var AStyle: DWORD; var AExStyle: DWORD); - begin - case AForm.FormStyle of - TFormStyle.Popup: - begin - AStyle := AStyle or WS_POPUP; - AExStyle := AExStyle or WS_EX_NOACTIVATE; - end; - TFormStyle.StayOnTop: - AExStyle := AExStyle or WS_EX_TOPMOST; - end; - if AForm.Transparency then - begin - AStyle := AStyle or WS_POPUP; - AExStyle := AExStyle or WS_EX_LAYERED; - end - else - begin - case AForm.BorderStyle of - TFmxFormBorderStyle.None: - AStyle := AStyle or WS_POPUP or WS_SYSMENU; - TFmxFormBorderStyle.Single, TFmxFormBorderStyle.ToolWindow: - AStyle := AStyle or WS_CAPTION or WS_BORDER; - TFmxFormBorderStyle.Sizeable, TFmxFormBorderStyle.SizeToolWin: - AStyle := AStyle or WS_CAPTION or WS_THICKFRAME; - end; - if AForm.BorderStyle in [TFmxFormBorderStyle.ToolWindow, TFmxFormBorderStyle.SizeToolWin] then - AExStyle := AExStyle or WS_EX_TOOLWINDOW; - if AForm.BorderStyle <> TFmxFormBorderStyle.None then - begin - if TBorderIcon.biMinimize in AForm.BorderIcons then - AStyle := AStyle or WS_MINIMIZEBOX; - if TBorderIcon.biMaximize in AForm.BorderIcons then - AStyle := AStyle or WS_MAXIMIZEBOX; - if TBorderIcon.biSystemMenu in AForm.BorderIcons then - AStyle := AStyle or WS_SYSMENU; - end; - end; - end; - - function DefineParentWnd(const AForm: TCommonCustomForm): HWND; - begin - Result := 0; - // Trying to use the parent form - if AForm.ParentForm <> nil then - begin - if AForm.ParentForm.Handle = nil then - raise EArgumentException.CreateFMT(SNotInstance, ['ParentForm.Handle']) at ReturnAddress; - Result := FormToHWND(AForm.ParentForm); - end; - if Result <> 0 then - Exit; - - // For Dialogs and Popups we use a handle of the active form - if ((TFmxFormState.Modal in AForm.FormState) or (AForm.FormStyle = TFormStyle.Popup)) then - if (Screen <> nil) and (Screen.ActiveForm <> nil) then - Result := FormToHWND(Screen.ActiveForm); - if Result <> 0 then - Exit; - - // If none parent then we use handle of Application - Result := ApplicationHWND; - end; - -begin - RaiseIfNil(AForm, 'AForm'); - - LDropTarget := nil; - Style := WS_CLIPSIBLINGS or WS_CLIPCHILDREN; - ExStyle := 0; - WndClassName := 'FM' + AForm.ClassName; - IsDesignerForm := TFmxFormState.InDesigner in AForm.FormState; - if not GetClassInfo(hInstance, PChar(WndClassName), WindowClass) then - begin - FillChar(WindowClass, SizeOf(WindowClass), 0); - WindowClass.style := CS_DBLCLKS or CS_HREDRAW or CS_VREDRAW; - WindowClass.lpfnWndProc := @WndProc; - WindowClass.cbClsExtra := 0; - WindowClass.cbWndExtra := 0; - WindowClass.hInstance := hInstance; - WindowClass.hIcon := LoadIconW(MainInstance, PChar('MAINICON')); - if csDesigning in AForm.ComponentState then - WindowClass.hCursor := LoadCursorW(0, PChar(IDC_ARROW)) - else - WindowClass.hCursor := 0; - WindowClass.hbrBackground := GetStockObject(NULL_BRUSH); - WindowClass.lpszMenuName := nil; - WindowClass.lpszClassName := PChar(WndClassName); - if Winapi.Windows.RegisterClass(WindowClass) = 0 then - RaiseLastOSError; - end; - if (csDesigning in AForm.ComponentState) or IsDesignerForm then - begin - Style := Style or WS_CHILD; - // Parent handle going to set in IDE. - // Now set temporary value - ParentWnd := GetDesktopWindow; - end - else - begin - DefineWindowStyle(AForm, Style, ExStyle); - ParentWnd := DefineParentWnd(AForm); - end; - Wnd := CheckWinapiHandle(CreateWindowEx(ExStyle, WindowClass.lpszClassName, PChar(AForm.Caption), Style, - Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), ParentWnd, 0, - hInstance, nil)); - try - SetProp(Wnd, MakeIntAtom(WindowAtom), THandle(AForm)); - try - if not ((csDesigning in AForm.ComponentState) or Supports(AForm, IDesignerForm, DesignerForm)) then - begin - LDropTarget := TWinDropTarget.Create(nil); - LDropTarget.Form := AForm; - end; - try - if LDropTarget <> nil then - RegisterDragDrop(Wnd, LDropTarget); - Result := TWinWindowHandle.Create(AForm, Wnd); - TWinWindowHandle(Result).FWinDropTarget := LDropTarget; - except - if LDropTarget <> nil then - RevokeDragDrop(Wnd); - raise; - end; - except - FreeAndNil(LDropTarget); - raise; - end; - except - Winapi.Windows.DestroyWindow(Wnd); - raise; - end; - TWinWindowHandle(Result).FWinDropTarget := LDropTarget; - - FImmManagers.Add(AForm, TImmManager.Create(AForm)); - FFormsInfo.Add(AForm, TFormInfo.Create); -end; - -function TPlatformWin.CreateWindowBorder(const AForm: TCommonCustomForm): TWindowBorder; -begin - Result := TWinWindowBorder.Create(AForm); -end; - -procedure TPlatformWin.DestroyWindow(const AForm: TCommonCustomForm); -var - Wnd: HWND; - DesignerForm: IDesignerForm; -begin - RaiseIfNil(AForm, 'AForm'); - - HideWindow(AForm); - Wnd := FormToHWND(AForm); - if not ((csDesigning in AForm.ComponentState) or Supports(AForm, IDesignerForm, DesignerForm)) then - RevokeDragDrop(Wnd); - WindowHandleToPlatform(AForm.Handle).FWinDropTarget.Free; - RemoveProp(Wnd, MakeIntAtom(WindowAtom)); - Winapi.Windows.DestroyWindow(Wnd); - - FImmManagers.Remove(AForm); - FFormsInfo.Remove(AForm); -end; - -procedure TPlatformWin.ReleaseWindow(const AForm: TCommonCustomForm); -begin -end; - -procedure TPlatformWin.InvalidateImmediately(const AForm: TCommonCustomForm); -begin - RaiseIfNil(AForm, 'AForm'); - - InvalidateWindowRect(AForm, AForm.ClientRect); -end; - -procedure TPlatformWin.InvalidateWindowRect(const AForm: TCommonCustomForm; R: TRectF); -var - WR: TRect; - Wnd: HWND; - PaintControl: IPaintControl; - UpdateRects: TUpdateRects; - I: Integer; -begin - RaiseIfNil(AForm, 'AForm'); - - if IntersectRect(R, TRectF.Create(0, 0, AForm.ClientWidth, AForm.ClientHeight)) then - begin - Wnd := FormToHWND(AForm); - if AForm.Transparency and not (csDesigning in AForm.ComponentState) then - begin - PostMessage(Wnd, WM_ADDUPDATERECT, Integer(SmallPoint(Round(R.Left), Round(R.Top))), - Integer(SmallPoint(Round(R.Right), Round(R.Bottom)))); - end - else - begin - R := WindowHandleToPlatform(AForm.Handle).FormToWnd(R); - if Supports(AForm, IPaintControl, PaintControl) and (PaintControl.ContextHandle <> 0) then - begin - // In Paint - if not FInPaintUpdateRects.TryGetValue(AForm.Handle, UpdateRects) then - begin - SetLength(UpdateRects, 1); - UpdateRects[0] := R; - FInPaintUpdateRects.Add(AForm.Handle, UpdateRects); - Exit; - end - else - for I := 0 to High(UpdateRects) do - if (UpdateRects[I] = R) or (UpdateRects[I].Contains(R.TopLeft) and UpdateRects[I].Contains(R.BottomRight)) - then - Exit; - SetLength(UpdateRects, Length(UpdateRects) + 1); - UpdateRects[High(UpdateRects)] := R; - FInPaintUpdateRects.AddOrSetValue(AForm.Handle, UpdateRects); - end - else - begin - WR := TRect.Create(Trunc(R.Left), Trunc(R.Top), Ceil(R.Right), Ceil(R.Bottom)); - Winapi.Windows.InvalidateRect(Wnd, @WR, False); - end; - end; - end; -end; - -procedure TPlatformWin.MinimizeApp; -var - AnimationEnable: Boolean; - - function GetAnimation: Boolean; - var - Info: TAnimationInfo; - begin - Info.cbSize := SizeOf(TAnimationInfo); - if SystemParametersInfo(SPI_GETANIMATION, Info.cbSize, @Info, 0) then - Result := Info.iMinAnimate <> 0 - else - Result := False; - end; - - procedure SetAnimation(Value: Boolean); - var - Info: TAnimationInfo; - begin - Info.cbSize := SizeOf(TAnimationInfo); - Info.iMinAnimate := Integer(BOOL(Value)); - SystemParametersInfo(SPI_SETANIMATION, Info.cbSize, @Info, 0); - end; - - procedure MinimiseAllForms; - var - I: Integer; - WindowHandle: HWND; - begin - for I := 0 to Screen.FormCount - 1 do - begin - WindowHandle := FormToHWND(Screen.Forms[I]); - if IsWindowVisible(WindowHandle) then - DefWindowProc(WindowHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0); - end; - end; - -var - MainForm: TCommonCustomForm; - WndPos: TPoint; -begin - AnimationEnable := GetAnimation; - try - SetAnimation(False); - if Application.MainForm <> nil then - begin - MainForm := Application.MainForm; - WndPos := MultiDisplayWin.DpToPx(TPointF.Create(MainForm.Left, MainForm.Top)); - SetWindowPos(ApplicationHWND, FormToHWND(Application.MainForm), WndPos.X, WndPos.Y, Trunc(MainForm.Width), 0, SWP_SHOWWINDOW); - MinimiseAllForms; - end; - DefWindowProc(ApplicationHWND, WM_SYSCOMMAND, SC_MINIMIZE, 0); - finally - SetAnimation(AnimationEnable); - end; -end; - -function TPlatformWin.GetWindowRect(const AForm: TCommonCustomForm): TRectF; -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.IsHandleAllocated then - Result := WindowHandleToPlatform(AForm.Handle).Bounds - else - Result := TRectF.Create(0, 0, AForm.Width, AForm.Height); -end; - -function TPlatformWin.GetWindowScale(const AForm: TCommonCustomForm): Single; -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.IsHandleAllocated then - Result := AForm.Handle.Scale - else - Result := MultiDisplayWin.GetScreenScale; -end; - -procedure TPlatformWin.SetWindowRect(const AForm: TCommonCustomForm; ARect: TRectF); -begin - RaiseIfNil(AForm, 'AForm'); - - { for using Metro-style interface in designer we set Maximized but we can change window size } - if AForm.IsHandleAllocated and (AForm.WindowState in [TWindowState.wsNormal, TWindowState.wsMaximized]) then - WindowHandleToPlatform(AForm.Handle).Bounds := ARect; -end; - -procedure TPlatformWin.SetWindowCaption(const AForm: TCommonCustomForm; const ACaption: string); -begin - RaiseIfNil(AForm, 'AForm'); - - SetWindowText(FormToHWND(AForm), ACaption); -end; - -procedure TPlatformWin.RegisterCanvasClasses; -begin - if GlobalUseGPUCanvas then - FMX.Canvas.GPU.RegisterCanvasClasses; - FMX.Canvas.D2D.RegisterCanvasClasses; - FMX.Canvas.GDIP.RegisterCanvasClasses; -end; - -procedure TPlatformWin.UnhookTouchHandler(const AForm: TCommonCustomForm); -begin - if TOSVersion.Check(6, 1) then - UnregisterTouchWindow(FormToHWND(AForm)); -end; - -procedure TPlatformWin.UnregisterCanvasClasses; -begin - if GlobalUseGPUCanvas then - FMX.Canvas.GPU.UnregisterCanvasClasses; - FMX.Canvas.D2D.UnregisterCanvasClasses; - FMX.Canvas.GDIP.UnregisterCanvasClasses; -end; - -procedure TPlatformWin.RegisterContextClasses; -begin - FMX.Context.DX9.RegisterContextClasses; - FMX.Context.DX11.RegisterContextClasses; -end; - -procedure TPlatformWin.UnregisterContextClasses; -begin - FMX.Context.DX9.UnregisterContextClasses; - FMX.Context.DX11.UnregisterContextClasses; -end; - -procedure TPlatformWin.ReleaseCapture(const AForm: TCommonCustomForm); -begin - Winapi.Windows.ReleaseCapture; -end; - -procedure TPlatformWin.SetApplicationHWNDProc(const Value: TApplicationHWNDProc); -begin - if @FApplicationHWNDProc <> @Value then - begin - FApplicationHWNDProc := Value; - UpdateApplicationHwnd; - end; -end; - -procedure TPlatformWin.SetCapture(const AForm: TCommonCustomForm); -begin - RaiseIfNil(AForm, 'AForm'); - - Winapi.Windows.SetCapture(FormToHWND(AForm)); -end; - -function TPlatformWin.GetClientSize(const AForm: TCommonCustomForm): TPointF; -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.IsHandleAllocated then - Result := TSizeF.Create(WindowHandleToPlatform(AForm.Handle).ClientSize) - else - Result := TSizeF.Create(AForm.Width, AForm.Height); -end; - -procedure TPlatformWin.SetClientSize(const AForm: TCommonCustomForm; const ASize: TPointF); -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.IsHandleAllocated then - WindowHandleToPlatform(AForm.Handle).ClientSize := TSizeF.Create(ASize); -end; - -procedure TPlatformWin.SetConstraints(const AForm: TCommonCustomForm; const AMinWidth, AMinHeight, AMaxWidth, AMaxHeight: Single); -begin - RaiseIfNil(AForm, 'AForm'); - // The constraints are set in TWinWindowHandle.WMGetMinMaxInfo. -end; - -procedure TPlatformWin.HideWindow(const AForm: TCommonCustomForm); -begin - RaiseIfNil(AForm, 'AForm'); - - SetWindowPos(FormToHWND(AForm), 0, 0, 0, 0, 0, SWP_HIDEWINDOW or SWP_NOSIZE or SWP_NOMOVE or SWP_NOZORDER or - SWP_NOACTIVATE); -end; - -const - ShowCommands: array [TWindowState] of Integer = (SW_SHOWNORMAL, SW_MINIMIZE, SW_SHOWMAXIMIZED); - ShowPopupCommands: array [TWindowState] of Integer = (SW_SHOWNOACTIVATE, SW_SHOWMINNOACTIVE, SW_SHOWMAXIMIZED); - -procedure TPlatformWin.ShowWindow(const AForm: TCommonCustomForm); -type - TDeactivationState = record - Handle: TWinWindowHandle; - SavedDisableDeactivate: Boolean; - end; - - function GetActiveWindowHandle: TWinWindowHandle; - var - ActiveForm: TCommonCustomForm; - begin - if Screen = nil then - Result := nil - else - begin - ActiveForm := Screen.ActiveForm; - if ActiveForm = nil then - Result := nil - else - Result := WindowHandleToPlatform(ActiveForm.Handle); - end; - end; - - function DisableDeactivating(const AFormHandle: TWinWindowHandle): TDeactivationState; - begin - if AFormHandle = nil then - begin - Result.Handle := nil; - Result.SavedDisableDeactivate := False; - end - else - begin - Result.Handle := AFormHandle; - Result.SavedDisableDeactivate := AFormHandle.FDisableDeactivate; - AFormHandle.FDisableDeactivate := True; - end; - end; - - procedure RestoreDeactivating(const AState: TDeactivationState); - begin - if AState.Handle <> nil then - AState.Handle.FDisableDeactivate := AState.SavedDisableDeactivate; - end; - -const - uFlags = SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE; -var - Wnd, WndParent: HWND; - FormSize: TSize; - DeactivationState: TDeactivationState; -begin - RaiseIfNil(AForm, 'AForm'); - - Wnd := FormToHWND(AForm); - if AForm.FormStyle = TFormStyle.Popup then - begin - // When new popup form is showing, it can lead to closing other popup, for avoiding it we disable autoclosing - // popup on this period. - DeactivationState := DisableDeactivating(GetActiveWindowHandle); - try - Winapi.Windows.ShowWindow(Wnd, ShowPopupCommands[AForm.WindowState]); - finally - RestoreDeactivating(DeactivationState); - end; - end - else - Winapi.Windows.ShowWindow(Wnd, ShowCommands[AForm.WindowState]); - - if AForm.Transparency and not (csDesigning in AForm.ComponentState) then - begin - FormSize := TSize.Create(AForm.Width, AForm.Height); // dp - PostMessage(Wnd, WM_ADDUPDATERECT, Integer(SmallPoint(0, 0)), Integer(SmallPoint(FormSize.Width, FormSize.Height))); - end; - - if AForm.FormStyle in [TFormStyle.StayOnTop, TFormStyle.Popup] then - begin - WndParent := GetParent(Wnd); - if (WndParent = GetDesktopWindow) or (WndParent = 0) then - SetWindowPos(Wnd, HWND_TOPMOST, 0, 0, 0, 0, uFlags) - else - SetWindowPos(Wnd, HWND_TOP, 0, 0, 0, 0, uFlags); - end; -end; - -procedure TPlatformWin.BringToFront(const AForm: TCommonCustomForm); -var - Wnd: HWND; -begin - RaiseIfNil(AForm, 'AForm'); - - Wnd := FormToHWND(AForm); - SetWindowPos(Wnd, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); -end; - -procedure TPlatformWin.SendToBack(const AForm: TCommonCustomForm); -var - Wnd: HWND; -begin - RaiseIfNil(AForm, 'AForm'); - - Wnd := FormToHWND(AForm); - SetWindowPos(Wnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); -end; - -procedure TPlatformWin.Activate(const AForm: TCommonCustomForm); -var - Wnd: HWND; -begin - RaiseIfNil(AForm, 'AForm'); - - Wnd := FormToHWND(AForm); - if not IsWindowVisible(Wnd) or IsIconic(Wnd) then - begin - if AForm.FormStyle = TFormStyle.Popup then - Winapi.Windows.ShowWindow(Wnd, SW_RESTORE or SW_SHOWNOACTIVATE) - else - Winapi.Windows.ShowWindow(Wnd, SW_RESTORE); - end; - if AForm.FormStyle <> TFormStyle.Popup then - Winapi.Windows.SetActiveWindow(Wnd); -end; - -procedure TPlatformWin.SetWindowState(const AForm: TCommonCustomForm; const AState: TWindowState); -var - Wnd: HWND; - - procedure DoSetState(const AState: TWindowState); - begin - if AForm.FormStyle = TFormStyle.Popup then - Winapi.Windows.ShowWindow(Wnd, ShowCommands[AState] or SW_SHOWNOACTIVATE) - else - begin - if (Application.MainForm = AForm) and (AState = TWindowState.wsMinimized) then - Winapi.Windows.ShowWindow(ApplicationHWND, ShowCommands[AState]) - else - Winapi.Windows.ShowWindow(Wnd, ShowCommands[AState]) - end; - end; - -begin - RaiseIfNil(AForm, 'AForm'); - - if AForm.Visible and not FDiableUpdateState then - begin - Wnd := FormToHWND(AForm); - if AForm.FullScreen then - try - FDiableUpdateState := True; - AForm.WindowState := TWindowState.wsMaximized; - if not Winapi.Windows.IsZoomed(Wnd) then - DoSetState(TWindowState.wsMaximized); - finally - FDiableUpdateState := False; - end - else - DoSetState(AState); - end; -end; - -function TPlatformWin.ShowWindowModal(const AForm: TCommonCustomForm): TModalResult; -var - WindowList: Pointer; - CloseRes: TCloseAction; - Wnd: HWND; -begin - RaiseIfNil(AForm, 'AForm'); - - Result := mrNone; - if GetCapture <> 0 then - SendMessage(GetCapture, WM_CANCELMODE, 0, 0); - Winapi.Windows.ReleaseCapture; - AForm.HandleNeeded; - WindowList := DisableTaskWindows(FormToHWND(AForm)); - try - CloseRes := TCloseAction.caNone; - AForm.Show; - AForm.ModalResult := mrNone; - Wnd := FormToHWND(AForm); - SetActiveWindow(Wnd); - SetFocus(Wnd); - Screen.ActiveForm := AForm; - repeat - if not Application.HandleMessage then - WaitMessage; - if Application.Terminated then - Break - else if AForm.ModalResult <> mrNone then - begin - CloseRes := AForm.CloseModal; - Result := AForm.ModalResult; - end; - until Result <> mrNone; - if not Application.Terminated and (CloseRes <> TCloseAction.caFree) then - AForm.Hide; - finally - EnableTaskWindows(WindowList); - end; - - Result := AForm.ModalResult; -end; - -function TPlatformWin.CanShowModal: Boolean; -begin - Result := True; -end; - -function TPlatformWin.ClientToScreen(const AForm: TCommonCustomForm; const Point: TPointF {dp}): TPointF; -var - P: TPoint; - Scale: Single; -begin - RaiseIfNil(AForm, 'AForm'); - - Scale := WindowHandleToPlatform(AForm.Handle).Scale; - P := (Point * Scale).Round; - Winapi.Windows.ClientToScreen(FormToHWND(AForm), P); - - Result := MultiDisplayWin.PxToDp(P); -end; - -function TPlatformWin.ScreenToClient(const AForm: TCommonCustomForm; const Point: TPointF {dp}): TPointF; -var - P: TPoint; - Scale: Single; -begin - RaiseIfNil(AForm, 'AForm'); - - P := MultiDisplayWin.DpToPx(Point); - Winapi.Windows.ScreenToClient(FormToHWND(AForm), P); - Scale := WindowHandleToPlatform(AForm.Handle).Scale; - Result := TPointF.Create(P) / Scale; -end; - -{ Menus } - -procedure TPlatformWin.ThreadSync(var Msg: TMessage); -begin - if Msg.Msg = WM_NULL then - begin - CheckSynchronize; - Msg.Result := 0; - end - else - Msg.Result := DefWindowProc(FThreadSyncHandle, Msg.Msg, Msg.wParam, Msg.LPARAM); -end; - -procedure TPlatformWin.RemoveRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); -begin - Exclude(FEnabledInteractiveGestures, ARec); -end; - -procedure TPlatformWin.RestoreApp; - - function TryFindForm(const AFormHandle: HWND; out AForm: TCommonCustomForm): Boolean; - var - I: Integer; - Form: TCommonCustomForm; - begin - for I := 0 to Screen.FormCount - 1 do - begin - Form := Screen.Forms[I]; - if FormToHWND(Form) = AFormHandle then - begin - AForm := Form; - Exit(True); - end; - end; - Result := False; - end; - -var - LWND: HWND; - Form: TCommonCustomForm; -begin - if Screen = nil then - Exit; - - if Screen.ActiveForm = nil then - begin - LWND := GetActiveWindow; - if (LWND <> 0) and (LWND <> ApplicationHWND) then - begin - if TryFindForm(LWND, Form) then - Form.Activate - else - SetActiveWindow(LWND); - Exit; - end; - - if Application.MainForm <> nil then - Application.MainForm.Activate; - end - else - Screen.ActiveForm.Activate; -end; - -procedure TPlatformWin.HookTouchHandler(const AForm: TCommonCustomForm); -begin - if TOSVersion.Check(6, 1) and TWinTouchGestureEngine.Supported(AForm) then - RegisterTouchWindow(FormToHWND(AForm), TWF_WANTPALM); -end; - -{ Drag and Drop } - -const - SID_IDropTargetHelper = '{4657278B-411B-11d2-839A-00C04FD918D0}'; - CLSID_DragDropHelper: TGUID = (D1: $4657278A; D2: $411B; D3: $11D2; D4: ($83, $9A, $00, $C0, $4F, $D9, $18, $D0)); - -type - IDropTargetHelper = interface(IUnknown) - [SID_IDropTargetHelper] - function DragEnter(hwndTarget: HWND; const dataObj: IDataObject; var pt: TPoint; - dwEffect: Longint): HRESULT; stdcall; - function DragLeave: HRESULT; stdcall; - function DragOver(var pt: TPoint; dwEffect: Longint): HRESULT; stdcall; - function Drop(const dataObj: IDataObject; var pt: TPoint; dwEffect: Longint): HRESULT; stdcall; - function Show(Show: BOOL): HRESULT; stdcall; - end; - -var - FDropTargetHelper: IDropTargetHelper; - FDataObj: IDataObject; - -function TWinDropTarget.GetDataObject: TDragObject; -var - FormatEtc: TFormatEtc; - StgMedium: TStgMedium; - str: string; - Drop: HDrop; - I, numFiles, buflen: Integer; - buffer: MarshaledString; -begin - FillChar(Result, SizeOf(Result), 0); - if FDataObj = nil then - Exit; - // get file name first - FormatEtc.cfFormat := CF_HDROP; - FormatEtc.ptd := nil; - FormatEtc.dwAspect := DVASPECT_CONTENT; - FormatEtc.lindex := -1; - FormatEtc.Tymed := TYMED_HGLOBAL; - // get FireMonkey - if PlatformWin.FDragAndDropActive then - begin - FormatEtc.cfFormat := CF_FMOBJECT; - if FDataObj.GetData(FormatEtc, StgMedium) = S_OK then - begin - Result := TDropSource(StgMedium.HGLOBAL).Data; - Exit; - end; - end; - // files - str := ''; - FormatEtc.cfFormat := CF_HDROP; - if FDataObj.GetData(FormatEtc, StgMedium) = S_OK then - begin - try - Drop := HDrop(GlobalLock(StgMedium.HGLOBAL)); - { Replace Text } - numFiles := DragQueryFile(Drop, $FFFFFFFF, nil, 0); - SetLength(Result.Files, numFiles); - for I := 0 to numFiles - 1 do - begin - // Setting length of buffer plus 1 for string end char (#0) - buflen := DragQueryFile(Drop, I, nil, 0) + 1; - buffer := StrAlloc(buflen); - DragQueryFile(Drop, I, buffer, buflen); - Result.Files[I] := buffer; - StrDispose(buffer); - if I = 0 then - Result.Data := Result.Files[0]; - end; - finally - GlobalUnlock(StgMedium.HGLOBAL); - { Free the memory } - ReleaseStgMedium(StgMedium); - end; - Exit; - end; - // get text - FormatEtc.cfFormat := CF_UNICODETEXT; - if FDataObj.GetData(FormatEtc, StgMedium) = S_OK then - begin - try - { Lock the global memory handle to get a pointer to the data } - str := PChar(GlobalLock(StgMedium.HGLOBAL)); - Result.Data := str; - finally - { Finished with the pointer } - GlobalUnlock(StgMedium.HGLOBAL); - { Free the memory } - ReleaseStgMedium(StgMedium); - end; - Exit; - end; -end; - -function TWinDropTarget.DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; -var - Res: HRESULT; -begin - try - FDataObj := dataObj; - Result := S_OK; - dwEffect := DROPEFFECT_NONE; - if (Succeeded(CoCreateInstance(CLSID_DragDropHelper, nil, CLSCTX_INPROC_SERVER, IDropTargetHelper, - FDropTargetHelper))) and (FDropTargetHelper <> nil) then - begin - Res := FDropTargetHelper.DragEnter(FormToHWND(Form), dataObj, pt, dwEffect); - if (Failed(Res)) then - FDropTargetHelper := nil; - end; - except - dwEffect := DROPEFFECT_NONE; - Result := E_UNEXPECTED; - end; -end; - -function TWinDropTarget.DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; -var - P: TPointF; - Operation: TDragOperation; -begin - Result := E_UNEXPECTED; - try - dwEffect := DROPEFFECT_NONE; - P := MultiDisplayWin.PxToDp(pt); // dp - Operation := TDragOperation.None; - Form.DragOver(GetDataObject, P, Operation); - case Operation of - TDragOperation.None: - dwEffect := DROPEFFECT_NONE; - TDragOperation.Move: - dwEffect := DROPEFFECT_MOVE; - TDragOperation.Copy: - dwEffect := DROPEFFECT_COPY; - TDragOperation.Link: - dwEffect := DROPEFFECT_LINK; - end; - - // do NOT translate the screen coordinates to form coordinates because - // it seems that the drop target helper needs screen coordinates - if FDropTargetHelper <> nil then - FDropTargetHelper.DragOver(pt, dwEffect); - Result := S_OK; - except - dwEffect := DROPEFFECT_NONE; - end; -end; - -function TWinDropTarget.DragLeave: HRESULT; -begin - Form.DragLeave; - if (FDropTargetHelper <> nil) then - FDropTargetHelper.DragLeave; - FDropTargetHelper := nil; - FDataObj := nil; - Result := S_OK; -end; - -function TWinDropTarget.Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; -var - P: TPointF; -begin - Result := S_OK; - try - if dataObj = nil then - Exit; - P := MultiDisplayWin.PxToDp(pt); // dp - Form.DragDrop(GetDataObject, P); - // do NOT translate the screen coordinates to form coordinates because - // it seems that the drop target helper needs screen coordinates - if FDropTargetHelper <> nil then - FDropTargetHelper.Drop(dataObj, pt, dwEffect) - finally - FDataObj := nil; - FDropTargetHelper := nil; - end; -end; - -{ IDropSource } - -function TDropSource.QueryContinueDrag(fEscapePressed: BOOL; grfKeyState: Integer): HRESULT; -var - ContinueDrop: Boolean; -begin - if fEscapePressed then - Result := DRAGDROP_S_CANCEL - else if (grfKeyState and (MK_LBUTTON or MK_RBUTTON) = 0) then - begin - ContinueDrop := True; - if ContinueDrop then - Result := DRAGDROP_S_DROP - else - Result := DRAGDROP_S_CANCEL; - end - else - Result := S_OK; -end; - -function TDropSource.GiveFeedback(dwEffect: Integer): HRESULT; -begin - Result := DRAGDROP_S_USEDEFAULTCURSORS; -end; - -{ IDataObject } - -function TDropSource.dAdvise(const FormatEtc: TFormatEtc; advf: Longint; const advsink: IAdviseSink; - out dwConnection: Longint): HRESULT; -begin - Result := OLE_E_ADVISENOTSUPPORTED; -end; - -function TDropSource.dUnadvise(dwConnection: Longint): HRESULT; -begin - Result := OLE_E_ADVISENOTSUPPORTED; -end; - -function TDropSource.EnumdAdvise(out EnumAdvise: IEnumStatData): HRESULT; -begin - Result := OLE_E_ADVISENOTSUPPORTED; -end; - -function TDropSource.EnumFormatEtc(dwDirection: Longint; out EnumFormatEtc: IEnumFormatEtc): HRESULT; -begin - if (dwDirection = DATADIR_GET) then - Result := OleRegEnumFormatEtc(IEnumFormatEtc, dwDirection, EnumFormatEtc) - else - Result := E_NOTIMPL; -end; - -function TDropSource.GetCanonicalFormatEtc(const FormatEtc: TFormatEtc; out FormatEtcout: TFormatEtc): HRESULT; -begin - Result := DATA_S_SAMEFORMATETC; -end; - -function TDropSource.EqualFormatEtc(FormatEtc1, FormatEtc2: TFormatEtc): Boolean; -begin - Result := (FormatEtc1.cfFormat = FormatEtc2.cfFormat) and (FormatEtc1.ptd = FormatEtc2.ptd) and - (FormatEtc1.dwAspect = FormatEtc2.dwAspect) and (FormatEtc1.lindex = FormatEtc2.lindex) and - (FormatEtc1.Tymed = FormatEtc2.Tymed) -end; - -function TDropSource.FindFormatEtc(TestFormatEtc: TFormatEtc): Integer; -var - I: Integer; - Found: Boolean; -begin - I := 0; - Found := False; - Result := -1; - while (I < Length(Formats)) and not Found do - begin - Found := EqualFormatEtc(Formats[I].FormatEtc, TestFormatEtc); - if Found then - Result := I; - Inc(I); - end -end; - -function TDropSource.HGlobalClone(HGLOBAL: THandle): THandle; -// Returns a global memory block that is a copy of the passed memory block. -var - Size: LongWord; - Data, NewData: PByte; -begin - Size := GlobalSize(HGLOBAL); - Result := GlobalAlloc(GPTR, Size); - Data := GlobalLock(HGLOBAL); - try - NewData := GlobalLock(Result); - try - Move(Data, NewData, Size); - finally - GlobalUnlock(Result); - end - finally - GlobalUnlock(HGLOBAL) - end -end; - -function TDropSource.RetrieveOwnedStgMedium(Format: TFormatEtc; var StgMedium: TStgMedium): HRESULT; -var - I: Integer; -begin - Result := E_INVALIDARG; - I := FindFormatEtc(Format); - if (I > -1) and Formats[I].OwnedByDataObject then - Result := StgMediumIncRef(Formats[I].StgMedium, StgMedium, False) -end; - -function TDropSource.StgMediumIncRef(const InStgMedium: TStgMedium; var OutStgMedium: TStgMedium; - CopyInMedium: Boolean): HRESULT; -begin - Result := S_OK; - // Simply copy all fields to start with. - OutStgMedium := InStgMedium; - case InStgMedium.Tymed of - TYMED_HGLOBAL: - begin - if CopyInMedium then - begin - // Generate a unique copy of the data passed - OutStgMedium.HGLOBAL := HGlobalClone(InStgMedium.HGLOBAL); - if OutStgMedium.HGLOBAL = 0 then - Result := E_OUTOFMEMORY - end - else - // Don't generate a copy just use ourselves and the copy previoiusly saved - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) // Does increase RefCount - end; - TYMED_FILE: - begin - if CopyInMedium then - begin - OutStgMedium.lpszFileName := CoTaskMemAlloc(lstrLenW(InStgMedium.lpszFileName)); - // !! StrCopyW(PChar(OutStgMedium.lpszFileName), PChar(InStgMedium.lpszFileName)) - end - else - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) // Does increase RefCount - end; - TYMED_ISTREAM: - - IUnknown(MySTGMEDIUM(OutStgMedium).stm)._AddRef; - TYMED_ISTORAGE: - IUnknown(MySTGMEDIUM(OutStgMedium).stg)._AddRef; - TYMED_GDI: - if not CopyInMedium then - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) - // Does not increase RefCount - else - Result := DV_E_TYMED; // Don't know how to copy GDI objects right now - TYMED_MFPICT: - if not CopyInMedium then - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) - // Does not increase RefCount - else - Result := DV_E_TYMED; - // Don't know how to copy MetaFile objects right now - TYMED_ENHMF: - if not CopyInMedium then - MySTGMEDIUM(OutStgMedium).UnkForRelease := Pointer(Self as IDataObject) - // Does not increase RefCount - else - Result := DV_E_TYMED; - // Don't know how to copy enhanced metafiles objects right now - else - Result := DV_E_TYMED - end; - - // I still have to do this. The Compiler will call _Release on the above Self as IDataObject - // casts which is not what is necessary. The DataObject is released correctly. - if (MySTGMEDIUM(OutStgMedium).UnkForRelease <> nil) and (Result = S_OK) then - IUnknown(MySTGMEDIUM(OutStgMedium).UnkForRelease)._AddRef -end; - -function TDropSource.GetData(const FormatEtcIn: TFormatEtc; out Medium: TStgMedium): HRESULT; -var - Global: Cardinal; - P: Pointer; - TextData: string; - B: TBitmap; - BitmapHandle: HBITMAP; -begin - FillChar(Medium, SizeOf(Medium), 0); - Result := DV_E_FORMATETC; - if QueryGetData(FormatEtcIn) <> S_OK then - Exit; - - case FormatEtcIn.cfFormat of - CF_UNICODETEXT: - begin - TextData := Data.Data.ToString; - Global := GlobalAlloc(0, (Length(TextData) + 1) * 2); - P := GlobalLock(Global); - try - Move(PChar(TextData)^, P^, GlobalSize(Global)); - finally - GlobalUnlock(Global); - end; - Medium.Tymed := TYMED_HGLOBAL; - Medium.HGLOBAL := Global; - Result := S_OK; - end; - CF_BITMAP: - begin - BitmapHandle := 0; - if Data.Data.IsType then - BitmapHandle := BitmapToWinBitmap(TBitmap(Data.Data.AsObject), TAlphaColorRec.White) - else if Data.Data.IsType then - begin - B := TBitmap.Create; - try - B.Assign(TBitmapSurface(Data.Data.AsObject)); - BitmapHandle := BitmapToWinBitmap(B, TAlphaColorRec.White); - finally - B.Free; - end; - end; - if BitmapHandle <> 0 then - begin - Medium.Tymed := TYMED_GDI; - Medium.HBITMAP := BitmapHandle; - Result := S_OK; - end; - end; - CF_FMOBJECT: - if PlatformWin.FDragAndDropActive then - begin - Medium.Tymed := TYMED_HGLOBAL; - Medium.HGLOBAL := THandle(Self); - Result := S_OK; - end; - end; - if (Result <> S_OK) and (Formats <> nil) then - begin - Result := QueryGetData(FormatEtcIn); - if (Result = S_OK) and (RetrieveOwnedStgMedium(FormatEtcIn, Medium) = E_INVALIDARG) then - Result := E_UNEXPECTED - end -end; - -function TDropSource.GetDataHere(const FormatEtc: TFormatEtc; out Medium: TStgMedium): HRESULT; -begin - Result := E_NOTIMPL; -end; - -function TDropSource.QueryGetData(const FormatEtc: TFormatEtc): HRESULT; -var - I: Integer; -begin - Result := DV_E_FORMATETC; - case FormatEtc.cfFormat of - CF_UNICODETEXT: - if not Data.Data.IsObject then - Result := S_OK; - CF_BITMAP: - if Data.Data.IsObject and (Data.Data.IsType or Data.Data.IsType) then - Result := S_OK; - CF_FMOBJECT: - if PlatformWin.FDragAndDropActive then - Result := S_OK; - end; - if Result <> S_OK then - begin - if Formats <> nil then - begin - I := 0; - Result := DV_E_FORMATETC; - while (I < Length(Formats)) and (Result = DV_E_FORMATETC) do - begin - if Formats[I].FormatEtc.cfFormat = FormatEtc.cfFormat then - begin - if (Formats[I].FormatEtc.dwAspect = FormatEtc.dwAspect) then - begin - if (Formats[I].FormatEtc.Tymed and FormatEtc.Tymed <> 0) then - Result := S_OK - else - Result := DV_E_TYMED; - end - else - Result := DV_E_DVASPECT; - end - else - Result := DV_E_FORMATETC; - Inc(I) - end - end - else - Result := E_UNEXPECTED; - end; -end; - -function TDropSource.CanonicalIUnknown(const TestUnknown: IUnknown): IUnknown; -// Uses COM object identity: An explicit call to the IUnknown::QueryInterface -// method, requesting the IUnknown interface, will always return the same -// pointer. -begin - if TestUnknown <> nil then - begin - if Supports(TestUnknown, IUnknown, Result) then - IUnknown(Result)._Release - // Don't actually need it just need the pointer value - else - Result := TestUnknown - end - else - Result := TestUnknown -end; - -function TDropSource.SetData(const FormatEtc: TFormatEtc; var Medium: TStgMedium; fRelease: BOOL): HRESULT; -var - Index: Integer; -begin - // See if we already have a format of that type available. - Index := FindFormatEtc(FormatEtc); - if Index > -1 then - begin - // Yes we already have that format type stored. Just use the TClipboardFormat - // in the List after releasing the data - ReleaseStgMedium(Formats[Index].StgMedium); - FillChar(Formats[Index].StgMedium, SizeOf(Formats[Index].StgMedium), #0); - end - else - begin - // It is a new format so create a new TDataObjectInfo record and store it in - // the Format array - SetLength(Formats, Length(Formats) + 1); - Formats[Length(Formats) - 1].FormatEtc := FormatEtc; - Index := Length(Formats) - 1; - end; - // The data is owned by the TClipboardFormat object - Formats[Index].OwnedByDataObject := True; - - if fRelease then - begin - // We are simply being given the data and we take control of it. - Formats[Index].StgMedium := Medium; - Result := S_OK - end - else - // We need to reference count or copy the data and keep our own references - // to it. - Result := StgMediumIncRef(Medium, Formats[Index].StgMedium, True); - - // Can get a circular reference if the client calls GetData then calls - // SetData with the same StgMedium. Because the unkForRelease and for - // the IDataObject can be marshalled it is necessary to get pointers that - // can be correctly compared. - // See the IDragSourceHelper article by Raymond Chen at MSDN. - if MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease <> nil then - begin - if CanonicalIUnknown(Self) = CanonicalIUnknown(IUnknown(MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease)) then - begin - IUnknown(MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease)._Release; - MySTGMEDIUM(Formats[Index].StgMedium).UnkForRelease := nil - end; - end; -end; - -{ Platform DragDrop } - -procedure TPlatformWin.AddRecognizer(const ARec: TInteractiveGesture; const AForm: TCommonCustomForm); -begin - Include(FEnabledInteractiveGestures, ARec); -end; - -procedure TPlatformWin.BeginDragDrop(AForm: TCommonCustomForm; const Data: TDragObject; ABitmap: TBitmap); -var - DropSource: TDropSource; - DropEffect: Longint; - DragSourceHelper: IDragSourceHelper; - SHDRAGIMAGE: TSHDRAGIMAGE; - DragMousePos, Offset: TPointF; - Control: IControl; -begin - DropSource := TDropSource.Create(nil); - try - DropSource.Data := Data; - - DragMousePos := GetMousePos; - // CoCreateInstance takes too long to execute so mouse position becomes different when called later - if (Succeeded(CoCreateInstance(CLSID_DragDropHelper, nil, CLSCTX_INPROC_SERVER, IDragSourceHelper, DragSourceHelper) - )) - and (DragSourceHelper <> nil) then - begin - if Data.Source is TControl then - Offset := TControl(Data.Source).AbsoluteToLocal(AForm.ScreenToClient(DragMousePos)) - else - Offset := PointF((ABitmap.Width div 2), ABitmap.Height div 2); - - FillChar(SHDRAGIMAGE, SizeOf(SHDRAGIMAGE), 0); - SHDRAGIMAGE.sizeDragImage.cx := ABitmap.Width; - SHDRAGIMAGE.sizeDragImage.cy := ABitmap.Height; - SHDRAGIMAGE.ptOffset.X := Round(Offset.X); - SHDRAGIMAGE.ptOffset.Y := Round(Offset.Y); - SHDRAGIMAGE.hbmpDragImage := BitmapToWinBitmap(ABitmap, True); - if not Succeeded(DragSourceHelper.InitializeFromBitmap(@SHDRAGIMAGE, DropSource)) then - DeleteObject(SHDRAGIMAGE.hbmpDragImage); - end; - - if not IsThemeActive then - begin - SetCursor(crDrag); - FDragAndDropActive := True; - try - DoDragDrop(DropSource, DropSource, DROPEFFECT_LINK or DROPEFFECT_COPY or DROPEFFECT_MOVE, DropEffect); - finally - FDragAndDropActive := False; - SetCursor(crDefault); - end; - end - else - try - FDragAndDropActive := True; - DoDragDrop(DropSource, DropSource, DROPEFFECT_LINK or DROPEFFECT_COPY or DROPEFFECT_MOVE, DropEffect); - finally - FDragAndDropActive := False; - end; - - if (DropEffect = 0) and Supports(Data.Source, IControl, Control) then - Control.DragEnd; - - if DragSourceHelper <> nil then - DragSourceHelper := nil; - finally - DropSource.Free; - end; -end; - -{ Mouse } - -procedure TPlatformWin.SetCursor(const ACursor: TCursor); -const - CustomCursorMap: array [crSizeAll .. crNone] of PChar = ( - nil, nil, nil, nil, nil, IDC_SQLWAIT, IDC_MULTIDRAG, nil, nil, IDC_NODROP, IDC_DRAG, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil); - - CursorMap: array [crSizeAll .. crNone] of PChar = ( - IDC_SIZEALL, IDC_HAND, IDC_HELP, IDC_APPSTARTING, IDC_NO, nil, nil, IDC_SIZENS, IDC_SIZEWE, nil, nil, IDC_WAIT, - IDC_UPARROW, IDC_SIZEWE, IDC_SIZENWSE, IDC_SIZENS, IDC_SIZENESW, IDC_SIZEALL, IDC_IBEAM, IDC_CROSS, IDC_ARROW, nil); - - function IsDefaultOrInvalidCursor(const ACursor: TCursor): Boolean; - begin - Result := (ACursor = crDefault) or not InRange(ACursor, crSizeAll, crNone); - end; - -var - NewCursor: HCURSOR; -begin - if not FDragAndDropActive then - begin - // We don't set cursor by default, when we create window. So we should use crArrow cursor by default. - if IsDefaultOrInvalidCursor(ACursor) and not (csDesigning in Application.ComponentState) then - FCursor := crArrow - else - FCursor := ACursor; - - if InRange(FCursor, crSizeAll, crNone) then - begin - if CustomCursorMap[FCursor] <> nil then - NewCursor := LoadCursorW(HInstance, CustomCursorMap[FCursor]) - else - NewCursor := LoadCursorW(0, CursorMap[FCursor]); - Winapi.Windows.SetCursor(NewCursor); - end; - end; -end; - -function TPlatformWin.GetCursor: TCursor; -begin - Result := FCursor; -end; - -function TPlatformWin.GetFullScreen(const AForm: TCommonCustomForm): Boolean; -var - LFSParam: TFullScreenParams; -begin - Result := False; - if FFullScreenSupport.TryGetValue(AForm, LFSParam) then - Result := LFSParam.IsFullScreen; -end; - -function TPlatformWin.GetImmManager(const Index: TCommonCustomForm): TImmManager; -begin - Result := FImmManagers[Index]; -end; - -procedure TPlatformWin.SetFullScreen(const AForm: TCommonCustomForm; const AValue: Boolean); -var - LFSParam: TFullScreenParams; - LClean: TFullScreenParams; -begin - RaiseIfNil(AForm, 'AForm'); - - if AValue and not (TFmxFormState.Showing in AForm.FormState) then - AForm.Visible := True; - FillChar(LFSParam, SizeOf(LFSParam), 0); - if not FFullScreenSupport.TryGetValue(AForm, LFSParam) then - FFullScreenSupport.Add(AForm, LFSParam); - if AValue and (AForm.Visible or (TFmxFormState.Showing in AForm.FormState)) then - begin - LFSParam.WindowState := AForm.WindowState; - LFSParam.BorderStyle := AForm.BorderStyle; - if AForm.WindowState = TWindowState.wsNormal then - begin - LFSParam.Size := TSizeF.Create(AForm.Width, AForm.Height); - LFSParam.Position := TPointF.Create(AForm.Left, AForm.Top); - end; - FFullScreenSupport.Items[AForm] := LFSParam; - if AForm.WindowState = TWindowState.wsMinimized then - AForm.WindowState := TWindowState.wsMaximized; - AForm.BorderStyle := TFmxFormBorderStyle.None; - AForm.WindowState := TWindowState.wsMaximized; - end - else - begin - LClean := LFSParam; - LClean.Clean; - FFullScreenSupport.Items[AForm] := LClean; - if (LFSParam.Size.Width > 0) and (LFSParam.Size.Height > 0) then - begin - AForm.BorderStyle := LFSParam.BorderStyle; - AForm.SetBoundsF(LFSParam.Position.X, LFSParam.Position.Y, LFSParam.Size.Width, LFSParam.Size.Height); - AForm.WindowState := LFSParam.WindowState; - end; - end; -end; - -procedure TPlatformWin.SetShowFullScreenIcon(const AForm: TCommonCustomForm; const AValue: Boolean); -begin -end; - -function TPlatformWin.GetMousePos: TPointF; -var - P: TPoint; -begin - GetCursorPos(P); - Result := MultiDisplayWin.PxToDp(P); -end; - -function TPlatformWin.GetFormInfo(const Index: TCommonCustomForm): TFormInfo; -begin - Result := FFormsInfo[Index]; -end; - -function TPlatformWin.FindForm(const AHandle: TWindowHandle): TCommonCustomForm; -begin - RaiseIfNil(AHandle, 'AHandle'); - - if AHandle is TWinWindowHandle then - Result := TWinWindowHandle(AHandle).Form - else - Result := nil; -end; - -function TPlatformWin.RegisterKeyMapping(const PlatformKey, VirtualKey: Word; const KeyKind: TKeyKind): Boolean; -begin - Result := FKeyMapping.RegisterKeyMapping(PlatformKey, VirtualKey, KeyKind); -end; - -function TPlatformWin.UnregisterKeyMapping(const PlatformKey: Word): Boolean; -begin - Result := FKeyMapping.UnregisterKeyMapping(PlatformKey); -end; - -function TPlatformWin.PlatformKeyToVirtualKey(const PlatformKey: Word; var KeyKind: TKeyKind): Word; -begin - Result := FKeyMapping.PlatformKeyToVirtualKey(PlatformKey, KeyKind); -end; - -function TPlatformWin.VirtualKeyToPlatformKey(const VirtualKey: Word): Word; -begin - Result := FKeyMapping.VirtualKeyToPlatformKey(VirtualKey); -end; - -procedure RegisterApplicationHWNDProc(const Proc: TApplicationHWNDProc); -begin - if PlatformWin <> nil then - PlatformWin.ApplicationHWNDProc := Proc - else - raise EArgumentNilException.Create(SArgumentNil); -end; - -{ TFullScreenParams } - -procedure TFullScreenParams.Clean; -begin - Self.BorderStyle := TFmxFormBorderStyle.None; - Self.WindowState := TWindowState.wsMaximized; -end; - -function TFullScreenParams.IsFullScreen: Boolean; -begin - Result := not ((Self.BorderStyle = TFmxFormBorderStyle.None) and (Self.WindowState = TWindowState.wsMaximized)); -end; - -{ TImmManager } - -constructor TImmManager.Create(const AForm: TCommonCustomForm); -begin - FForm := AForm; -end; - -function TImmManager.GetComposition(const AContext: HIMC): string; -var - BufferLength: Integer; -begin - BufferLength := ImmGetCompositionString(AContext, GCS_COMPSTR, nil, 0); - SetLength(Result, BufferLength div SizeOf(Char)); - ImmGetCompositionString(AContext, GCS_COMPSTR, PChar(Result), BufferLength); -end; - -function TImmManager.GetFormHandle: HWND; -begin - Result := FormToHWND(Form); -end; - -function TImmManager.GetResultComposition(const AContext: HIMC): string; -var - BufferLength: Integer; -begin - BufferLength := ImmGetCompositionString(AContext, GCS_RESULTSTR, nil, 0); - SetLength(Result, BufferLength div SizeOf(Char)); - ImmGetCompositionString(AContext, GCS_RESULTSTR, PChar(Result), BufferLength); -end; - -procedure TImmManager.ProcessImeParameters(const AContext: HIMC; const AParameters: LPARAM; const ATextService: TTextServiceWin); -var - CompositionString: string; -begin - CompositionString := GetComposition(AContext); - ATextService.InternalSetMarkedText(CompositionString); - - if AParameters and GCS_COMPATTR <> 0 then - UpdateCompositionAttributes(AContext, ATextService); - - if AParameters and GCS_CURSORPOS <> 0 then - UpdateCompositionCursorPos(AContext, ATextService) - else if GetKeyboardLayout(0) and $FFFF = TTextServiceWin.LCID_Korean_Default then - // Native Korean IME Input system doesn't use cursor position. Instead of it it hightlights the last character in - // marked text. Since FMX doesn't support displaying character selection, we just move caret in the end of marked - // text and use underline attribute for highlighting last character. - ATextService.MarkedTextCursorPosition := Max(1, ATextService.MarkedText.Length); -end; - -procedure TImmManager.UpdateCompositionAttributes(const AContext: HIMC; const ATextService: TTextServiceWin); -var - BufferLength: Integer; -begin - BufferLength := ImmGetCompositionString(AContext, GCS_COMPATTR, nil, 0); - if BufferLength > 0 then - begin - SetLength(ATextService.CompAttrBuf, BufferLength); - ImmGetCompositionString(AContext, GCS_COMPATTR, @(ATextService.CompAttrBuf[0]), BufferLength); - end; -end; - -procedure TImmManager.UpdateCompositionCursorPos(const AContext: HIMC; const ATextService: TTextServiceWin); -var - CursorPos: Integer; -begin - CursorPos := ImmGetCompositionString(AContext, GCS_CURSORPOS, nil, 0); - if CursorPos >= 0 then - ATextService.MarkedTextCursorPosition := CursorPos; -end; - -function TImmManager.UpdateIMEWindowPosition: LRESULT; - - function DpToPx(const APoint: TPointF): TPoint; overload; - var - FormScale: Single; - begin - FormScale := Form.Handle.Scale; - Result := TPointF.Create(APoint.X * FormScale, APoint.Y * FormScale).Round; - end; - - function DpToPx(const ARect: TRectF): TRect; overload; - begin - Result.TopLeft := DpToPx(ARect.TopLeft); - Result.BottomRight := DpToPx(ARect.BottomRight); - end; - - function DefineControlRect(const AFocusedControl: IControl; const ATextInput: ITextInput): TRectF; - var - SelectionRect: TRectF; - begin - SelectionRect := ATextInput.GetSelectionRect; - Result.TopLeft := Form.ScreenToClient(AFocusedControl.LocalToScreen(SelectionRect.TopLeft)); - Result.BottomRight := Form.ScreenToClient(AFocusedControl.LocalToScreen(SelectionRect.BottomRight)); - end; - -var - IMC: HIMC; - Candidate: TCandidateForm; - TextInput: ITextInput; -begin - Result := 0; - - if not Supports(Form.Focused, ITextInput, TextInput) then - Exit; - - IMC := ImmGetContext(FormHandle); - if IMC = 0 then - Exit; - - try - Candidate.dwIndex := 0; - Candidate.dwStyle := CFS_POINT; - Candidate.ptCurrentPos := DpToPx(TextInput.GetTargetClausePointF); - Result := LRESULT(ImmSetCandidateWindow(IMC, @Candidate)); - - Candidate.dwStyle := CFS_EXCLUDE; - Candidate.rcArea := DpToPx(DefineControlRect(Form.Focused, TextInput)); - ImmSetCandidateWindow(IMC, @Candidate); - finally - ImmReleaseContext(FormHandle, IMC); - end; -end; - -procedure TImmManager.WMComposition(var Message: TMessage); -var - IMC: HIMC; - S: string; - TextInput: ITextInput; - I: Integer; - Key: Word; - Ch: Char; - IsProcessed: Boolean; -begin - UpdateIMEWindowPosition; - - IsProcessed := False; - - // User selected result string - if Message.LParam and GCS_RESULTSTR <> 0 then - begin - IsProcessed := True; - IMC := ImmGetContext(FormHandle); - if IMC <> 0 then - begin - try - if Supports(Form.Focused, ITextInput, TextInput) then - begin - TTextServiceWin(TextInput.GetTextService).Reset; - TextInput.IMEStateUpdated; - end; - S := GetResultComposition(IMC); - finally - ImmReleaseContext(FormHandle, IMC); - end; - - for I := 0 to S.Length - 1 do - begin - Key := 0; - Ch := S.Chars[I]; - Form.KeyDown(Key, Ch, []); - Form.KeyUp(Key, Ch, []); - end; - end; - end; - - // User is inputting current composition string - if Message.LParam and GCS_COMPSTR <> 0 then - begin - IsProcessed := True; - IMC := ImmGetContext(FormHandle); - if IMC <> 0 then - try - if Supports(Form.Focused, ITextInput, TextInput) then - begin - ProcessImeParameters(IMC, Message.LParam, TTextServiceWin(TextInput.GetTextService)); - TextInput.IMEStateUpdated; - end; - finally - ImmReleaseContext(FormHandle, IMC); - end; - end; - - if IsProcessed then - Message.Result := 0 - else - Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam); -end; - -procedure TImmManager.WMEndComposition(var Message: TMessage); -var - TextInput: ITextInput; -begin - UpdateIMEWindowPosition; - - if Supports(Form.Focused, ITextInput, TextInput) then - TTextServiceWin(TextInput.GetTextService).InternalEndIMEInput; -end; - -procedure TImmManager.WMNotify(var Message: TMessage); -begin - if Message.WParam = IMN_OPENCANDIDATE then - Message.Result := UpdateIMEWindowPosition - else - Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam); -end; - -procedure TImmManager.WMSetContext(var Message: TMessage); -begin - Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam and ISC_SHOWUIALLCANDIDATEWINDOW); -end; - -procedure TImmManager.WMStartComposition(var Message: TMessage); -var - TextInput: ITextInput; -begin - UpdateIMEWindowPosition; - - if Supports(Form.Focused, ITextInput, TextInput) then - TTextServiceWin(TextInput.GetTextService).InternalStartIMEInput; - - if System.SysUtils.Win32MajorVersion >= 6 then - Message.Result := DefWindowProc(FormHandle, Message.Msg, Message.WParam, Message.LParam) - else - Message.Result := 0; -end; - -procedure ShutDown; -begin - if IsLibrary then - begin - FMX.Canvas.D2D.UnregisterCanvasClasses; - FMX.Context.DX11.UnregisterContextClasses; - FMX.Forms.FinalizeForms; - end; -end; - -initialization - OleInitialize(nil); - CapturedGestureControl := nil; - LastMousePos := ImpossibleMousePosition; -end. From 7296b658656d266f1d46581b60613d7985888aa2 Mon Sep 17 00:00:00 2001 From: LilyStilson Date: Thu, 4 Nov 2021 00:43:06 +1000 Subject: [PATCH 29/29] Updated build instructions --- build/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build/README.md b/build/README.md index 0135f8e..96f5930 100644 --- a/build/README.md +++ b/build/README.md @@ -7,18 +7,18 @@ To build **Launcher** you first of all need to install a RAD Studio *(Delphi, we 3) Click on "Get community edition free" 4) Complete form, download and install Delphi Community Edition 10.3.3 with macOS/OSX dev tools -**Downsides:** You will have outdated version of Delphi. If you try to build **Launcher**, it will build, but I won't guarantee you 100% functionality, because there was a lot of bugfixes since 10.3.3 to the newest version +**Downsides:** You will have outdated version of Delphi. If you try to build **Launcher**, it will build, but I won't guarantee you 100% functionality and error-free expirience. Community Edition was recently updated to RAD Studio 10.4.2 Seattle and the code was migrated to RAD Studio 11.0 Alexandria. Compability-wise I left previoius versions of libs untouched, so it should be possible to compile it in the Community Edition ### Option 2 - Legal, but Trial 1) Go to https://www.embarcadero.com/ 2) Go to Products -> RAD Studio 3) Click on "Start a Free Trial" -4) Complete form, download and install RAD Studio Trial 10.4.2 with macOS/OSX dev tools +4) Complete form, download and install RAD Studio Trial 11.0 with macOS/OSX dev tools ### Option 3 - Illegal, but no Trial -1) Find whereever a pirated version of RAD Studio Architect 10.4.2 +1) Find whereever a pirated version of RAD Studio Architect 11.0 2) ... -3) Install and crack RAD Studio Architect 10.4.2 +3) Install and crack RAD Studio Architect 11.0 *btw, I don't support this, but oh well...*